📄 main.lst
字号:
375 3 TM2=HSI_TIME;
376 3 T1=T1OVER;
377 3 T1OVER=0;
378 3 IF BITTST(.STATUS,0) THEN DO;
380 4 IF BITTST(.STATUS,1) THEN ORDER=0;
382 4 ELSE ORDER=2;
383 4 END;
384 3 ELSE IF BITTST(.STATUS,2) THEN DO;
386 4 IF BITTST(.STATUS,3) THEN ORDER=1;
388 4 ELSE ORDER=3;
389 4 END;
390 3 IF T1<15 THEN DO;
392 4 T_SPAN=(T1*65536+TM2)-TM1;
393 4 temp=1875000/T_SPAN;
394 4 END;
395 3 ELSE TEMP=0;
396 3 TM1=TM2;
PL/M-96 COMPILER MAIN 06/12/:5 17:37:49 PAGE 8
397 3 END;
398 2 sum=run_spd*23+temp;
399 2 run_spd=sum/24;
400 2 ENABLE;
401 2 IF START_SIGN=1 THEN CALL HSO_PROCESS;
403 2 ELSE CALL STOP;
404 2 END HSI_INT;
/*高速输出处理程序*/
405 1 HSO_PROCESS:PROCEDURE ;
406 2 DISABLE;
407 2 IF DIRECT=1 THEN DO;
409 3 IF RUN_SPD<60 THEN DO;
411 4 TURNON=02H;
412 4 TURNOFF=02H;
413 4 DO CASE ORDER;
414 5 T00:DO;
415 6 HSO_COMMAND=20H;
416 6 HSO_TIME=TIMER1+TURNON;
417 6 R0=0;
418 6 R0=0;
419 6 HSO_COMMAND=02H;
420 6 HSO_TIME=TIMER1+TURNOFF;
421 6 R0=0;
422 6 R0=0;
423 6 END;
424 5 T01:DO;
425 6 HSO_COMMAND=21H;
426 6 HSO_TIME=TIMER1+TURNON;
427 6 R0=0;
428 6 R0=0;
429 6 HSO_COMMAND=03H;
430 6 HSO_TIME=TIMER1+TURNOFF;
431 6 R0=0;
432 6 R0=0;
433 6 END;
434 5 T02:DO;
435 6 HSO_COMMAND=22H;
436 6 HSO_TIME=TIMER1+TURNON;
437 6 R0=0;
438 6 R0=0;
439 6 HSO_COMMAND=00H;
440 6 HSO_TIME=TIMER1+TURNOFF;
441 6 R0=0;
442 6 R0=0;
443 6 END;
444 5 T03:DO;
445 6 HSO_COMMAND=23H;
446 6 HSO_TIME=TIMER1+TURNON;
447 6 R0=0;
448 6 R0=0;
449 6 HSO_COMMAND=01H;
450 6 HSO_TIME=TIMER1+TURNOFF;
451 6 R0=0;
452 6 R0=0;
453 6 END;
454 5 END;
PL/M-96 COMPILER MAIN 06/12/:5 17:37:49 PAGE 9
455 4 END;
456 3 ELSE IF AIM_SPD>=1600 THEN DO;
458 4 TURNON=T_SPAN*4/5;
459 4 TURNOFF=T_SPAN/3;
460 4 DO CASE ORDER;
461 5 T40:DO;
462 6 HSO_COMMAND=21H;
463 6 HSO_TIME=TIMER1+TURNON;
464 6 R0=0;
465 6 R0=0;
466 6 HSO_COMMAND=03H;
467 6 HSO_TIME=TIMER1+TURNOFF;
468 6 R0=0;
469 6 R0=0;
470 6 HSO_COMMAND=02H;
471 6 HSO_TIME=TIMER1+04H;
472 6 END;
473 5 T41:DO;
474 6 HSO_COMMAND=22H;
475 6 HSO_TIME=TIMER1+TURNON;
476 6 R0=0;
477 6 R0=0;
478 6 HSO_COMMAND=00H;
479 6 HSO_TIME=TIMER1+TURNOFF;
480 6 R0=0;
481 6 R0=0;
482 6 HSO_COMMAND=03H;
483 6 HSO_TIME=TIMER1+04H;
484 6 END;
485 5 T42:DO;
486 6 HSO_COMMAND=23H;
487 6 HSO_TIME=TIMER1+TURNON;
488 6 R0=0;
489 6 R0=0;
490 6 HSO_COMMAND=01H;
491 6 HSO_TIME=TIMER1+TURNOFF;
492 6 R0=0;
493 6 R0=0;
494 6 HSO_COMMAND=00H;
495 6 HSO_TIME=TIMER1+04H;
496 6 END;
497 5 T43:DO;
498 6 HSO_COMMAND=20H;
499 6 HSO_TIME=TIMER1+TURNON;
500 6 R0=0;
501 6 R0=0;
502 6 HSO_COMMAND=02H;
503 6 HSO_TIME=TIMER1+TURNOFF;
504 6 R0=0;
505 6 R0=0;
506 6 HSO_COMMAND=01H;
507 6 HSO_TIME=TIMER1+04H;
508 6 END;
509 5 END;
510 4 END;
511 3 ELSE IF AIM_SPD>=1200 THEN DO;
513 4 TURNON=T_SPAN*14/15;
PL/M-96 COMPILER MAIN 06/12/:5 17:37:49 PAGE 10
514 4 TURNOFF=T_SPAN/3;
515 4 DO CASE ORDER;
516 5 T35:DO;
517 6 HSO_COMMAND=21H;
518 6 HSO_TIME=TIMER1+TURNON;
519 6 R0=0;
520 6 R0=0;
521 6 HSO_COMMAND=03H;
522 6 HSO_TIME=TIMER1+TURNOFF;
523 6 R0=0;
524 6 R0=0;
525 6 HSO_COMMAND=02H;
526 6 HSO_TIME=TIMER1+04H;
527 6 END;
528 5 T36:DO;
529 6 HSO_COMMAND=22H;
530 6 HSO_TIME=TIMER1+TURNON;
531 6 R0=0;
532 6 R0=0;
533 6 HSO_COMMAND=00H;
534 6 HSO_TIME=TIMER1+TURNOFF;
535 6 R0=0;
536 6 R0=0;
537 6 HSO_COMMAND=03H;
538 6 HSO_TIME=TIMER1+04H;
539 6 END;
540 5 T37:DO;
541 6 HSO_COMMAND=23H;
542 6 HSO_TIME=TIMER1+TURNON;
543 6 R0=0;
544 6 R0=0;
545 6 HSO_COMMAND=01H;
546 6 HSO_TIME=TIMER1+TURNOFF;
547 6 R0=0;
548 6 R0=0;
549 6 HSO_COMMAND=00H;
550 6 HSO_TIME=TIMER1+04H;
551 6 END;
552 5 T38:DO;
553 6 HSO_COMMAND=20H;
554 6 HSO_TIME=TIMER1+TURNON;
555 6 R0=0;
556 6 R0=0;
557 6 HSO_COMMAND=02H;
558 6 HSO_TIME=TIMER1+TURNOFF;
559 6 R0=0;
560 6 R0=0;
561 6 HSO_COMMAND=01H;
562 6 HSO_TIME=TIMER1+04H;
563 6 END;
564 5 END;
565 4 END;
566 3 ELSE IF AIM_SPD>=800 THEN DO;
568 4 TURNON=T_SPAN/15;
569 4 TURNOFF=T_SPAN/3;
570 4 DO CASE ORDER;
571 5 T30:DO;
PL/M-96 COMPILER MAIN 06/12/:5 17:37:49 PAGE 11
572 6 HSO_COMMAND=20H;
573 6 HSO_TIME=TIMER1+TURNON;
574 6 R0=0;
575 6 R0=0;
576 6 HSO_COMMAND=03H;
577 6 HSO_TIME=TIMER1+TURNOFF;
578 6 R0=0;
579 6 R0=0;
580 6 HSO_COMMAND=02H;
581 6 HSO_TIME=TIMER1+04H;
582 6 END;
583 5 T31:DO;
584 6 HSO_COMMAND=21H;
585 6 HSO_TIME=TIMER1+TURNON;
586 6 R0=0;
587 6 R0=0;
588 6 HSO_COMMAND=00H;
589 6 HSO_TIME=TIMER1+TURNOFF;
590 6 R0=0;
591 6 R0=0;
592 6 HSO_COMMAND=03H;
593 6 HSO_TIME=TIMER1+04H;
594 6 R0=0;
595 6 R0=0;
596 6 END;
597 5 T32:DO;
598 6 HSO_COMMAND=22H;
599 6 HSO_TIME=TIMER1+TURNON;
600 6 R0=0;
601 6 R0=0;
602 6 HSO_COMMAND=01H;
603 6 HSO_TIME=TIMER1+TURNOFF;
604 6 R0=0;
605 6 R0=0;
606 6 HSO_COMMAND=00H;
607 6 HSO_TIME=TIMER1+04H;
608 6 R0=0;
609 6 R0=0;
610 6 END;
611 5 T33:DO;
612 6 HSO_COMMAND=23H;
613 6 HSO_TIME=TIMER1+TURNON;
614 6 R0=0;
615 6 R0=0;
616 6 HSO_COMMAND=02H;
617 6 HSO_TIME=TIMER1+TURNOFF;
618 6 R0=0;
619 6 R0=0;
620 6 HSO_COMMAND=01H;
621 6 HSO_TIME=TIMER1+04H;
622 6 R0=0;
623 6 R0=0;
624 6 END;
625 5 END;
626 4 END;
627 3 ELSE IF AIM_SPD>=400 THEN DO;
PL/M-96 COMPILER MAIN 06/12/:5 17:37:49 PAGE 12
629 4 TURNON=T_SPAN/3;
630 4 TURNOFF=T_SPAN/3;
631 4 DO CASE ORDER;
632 5 T20:DO;
633 6 HSO_COMMAND=20H;
634 6 HSO_TIME=TIMER1+TURNON;
635 6 R0=0;
636 6 R0=0;
637 6 HSO_COMMAND=03H;
638 6 HSO_TIME=TIMER1+TURNOFF;
639 6 R0=0;
640 6 R0=0;
641 6 HSO_COMMAND=02H;
642 6 HSO_TIME=TIMER1+04H;
643 6 R0=0;
644 6 R0=0;
645 6 END;
646 5 T21:DO;
647 6 HSO_COMMAND=21H;
648 6 HSO_TIME=TIMER1+TURNON;
649 6 R0=0;
650 6 R0=0;
651 6 HSO_COMMAND=00H;
652 6 HSO_TIME=TIMER1+TURNOFF;
653 6 R0=0;
654 6 R0=0;
655 6 HSO_COMMAND=03H;
656 6 HSO_TIME=TIMER1+04H;
657 6 R0=0;
658 6 R0=0;
659 6 END;
660 5 T22:DO;
661 6 HSO_COMMAND=22H;
662 6 HSO_TIME=TIMER1+TURNON;
663 6 R0=0;
664 6 R0=0;
665 6 HSO_COMMAND=01H;
666 6 HSO_TIME=TIMER1+TURNOFF;
667 6 R0=0;
668 6 R0=0;
669 6 HSO_COMMAND=00H;
670 6 HSO_TIME=TIMER1+04H;
671 6 R0=0;
672 6 R0=0;
673 6 END;
674 5 T23:DO;
675 6 HSO_COMMAND=23H;
676 6 HSO_TIME=TIMER1+TURNON;
677 6 R0=0;
678 6 R0=0;
679 6 HSO_COMMAND=02H;
680 6 HSO_TIME=TIMER1+TURNOFF;
681 6 R0=0;
682 6 R0=0;
683 6 HSO_COMMAND=01H;
684 6 HSO_TIME=TIMER1+04H;
685 6 R0=0;
PL/M-96 COMPILER MAIN 06/12/:5 17:37:49 PAGE 13
686 6 R0=0;
687 6 END;
688 5 END;
689 4 END;
690 3 ELSE IF AIM_SPD>=200 THEN DO;
692 4 TURNON=T_SPAN*3/5;
693 4 TURNOFF=T_SPAN/3;
694 4 DO CASE ORDER;
695 5 T10:DO;
696 6 HSO_COMMAND=20H;
697 6 HSO_TIME=TIMER1+TURNON;
698 6 R0=0;
699 6 R0=0;
700 6 HSO_COMMAND=03H;
701 6 HSO_TIME=TIMER1+TURNOFF;
702 6 R0=0;
703 6 R0=0;
704 6 HSO_COMMAND=02H;
705 6 HSO_TIME=TIMER1+04H;
706 6 R0=0;
707 6 R0=0;
708 6 END;
709 5 T11:DO;
710 6 HSO_COMMAND=21H;
711 6 HSO_TIME=TIMER1+TURNON;
712 6 R0=0;
713 6 R0=0;
714 6 HSO_COMMAND=00H;
715 6 HSO_TIME=TIMER1+TURNOFF;
716 6 R0=0;
717 6 R0=0;
718 6 HSO_COMMAND=03H;
719 6 HSO_TIME=TIMER1+04H;
720 6 R0=0;
721 6 R0=0;
722 6 END;
723 5 T12:DO;
724 6 HSO_COMMAND=22H;
725 6 HSO_TIME=TIMER1+TURNON;
726 6 R0=0;
727 6 R0=0;
728 6 HSO_COMMAND=01H;
729 6 HSO_TIME=TIMER1+TURNOFF;
730 6 R0=0;
731 6 R0=0;
732 6 HSO_COMMAND=00H;
733 6 HSO_TIME=TIMER1+04H;
734 6 R0=0;
735 6 R0=0;
736 6 END;
737 5 T13:DO;
738 6 HSO_COMMAND=23H;
739 6 HSO_TIME=TIMER1+TURNOFF;
740 6 R0=0;
741 6 R0=0;
PL/M-96 COMPILER MAIN 06/12/:5 17:37:49 PAGE 14
742 6 HSO_COMMAND=02H;
743 6 HSO_TIME=TIMER1+TURNON;
744 6 R0=0;
745 6 R0=0;
746 6 HSO_COMMAND=01H;
747 6 HSO_TIME=TIMER1+04H;
748 6 R0=0;
749 6 R0=0;
750 6 END;
751 5 END;
752 4 END;
753 3 ELSE DO;
754 4 TURNON=T_SPAN*4/5;
755 4 TURNOFF=T_SPAN/5;
756 4 DO CASE ORDER;
757 5 T05:DO;
758 6 HSO_COMMAND=20H;
759 6 HSO_TIME=TIMER1+TURNON;
760 6 R0=0;
761 6 R0=0;
762 6 HSO_COMMAND=03H;
763 6 HSO_TIME=TIMER1+TURNOFF;
764 6 R0=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -