📄 main.lst
字号:
+0 664 664
+0 665 665 ;V3.00 ld (YEAR),0x05 ;\
+0 666 666 ;V3.00 ld (MON),0x01 ;|
+0 667 667 ;V3.00 ld (DAY),0x01 ;|;initialize Time base timer for RTC
0000A020 FC32 +0 668 668 j init_hw_wk
0000A022 +0 669 669 resume:
+0 670 670 ;RAM clear except RTC,TAX rate ..........................
0000A022 4B0000 R +0 671 671 ld hl,RAM_TOP ;\
0000A025 1800 +0 672 672 ld a,0 ;|
0000A027 +0 673 673 ram_clr1: ;|clear RAM from RAM_TOP-->WO_CLR
0000A027 0F +0 674 674 ld (hl),a ;|
0000A028 +0 675 675 ram_clr2:
0000A028 33 +0 676 676 inc hl ;|
0000A029 EB6F0000 R +0 677 677 cmp hl,MDSW ; mdsw-->dp_pos no clear
0000A02D DA06 +0 678 678 j lt,ram_clr3 ;
0000A02F EB6F0000 R +0 679 679 cmp hl,DP_POS ;
0000A033 DCF3 +0 680 680 j le,ram_clr2 ;
0000A035 +0 681 681 ram_clr3: ;
0000A035 EB6F0000 R +0 682 682 cmp hl,W1_CLR ;/
0000A039 DAEC +0 683 683 j lt,ram_clr1 ;
+0 684 684 ;-------------------------------------------------------------
0000A03B E10000642C R +0 685 685 and (FLG_ICON),0y00101100 ;just keep ICOM_M and ICOM_GT and F_ICPM flag only
0000A040 FD0000 R +0 686 686 call gt_clear ;V1.30
0000A043 480000 R +0 687 687 ld wa,ICON_GT
0000A046 E10000FA R +0 688 688 clr (ICON_GT>>4).a
0000A04A FD0000 R +0 689 689 call mem1_clear ;V1.39d
0000A04D 480000 R +0 690 690 ld wa,ICON_M
0000A050 E10000FA R +0 691 691 clr (ICON_M>>4).a
0000A054 +0 692 692 init_hw_wk:
+0 693 693 ;V3.00 ld (T_Y20),0x20 ;V1.32
0000A054 480000 R +0 694 694 ld wa,F_DOFF
0000A057 E10000F2 R +0 695 695 set (F_DOFF>>4).a
0000A05B +0 696 696 pwr_wait:
0000A05B 480000 R +0 697 697 ld wa,IO_PF
0000A05E E000FC R +0 698 698 test (IO_PF>>4).a ;bit -reverse-> jump status
0000A061 B8 +0 699 699 j f,pwr_wait ;if jump status is 0 -> branch
0000A062 00 +0 700 700 nop ;V2.06 mode switch will be initialed in subroutine "initial_mdsw_update"
0000A063 00 +0 701 701 nop ;V2.06
0000A064 00 +0 702 702 nop
0000A065 480000 R +0 703 703 ld wa,IO_PF
0000A068 E000FC R +0 704 704 test (IO_PF>>4).a ;bit -reverse-> jump status
0000A06B DFEE +0 705 705 j f,pwr_wait ;if jump status is 0 -> branch
0000A06D FD0000 R +0 706 706 call all_clear ;h/w initialize, work area clear, interrupt enable
0000A070 FD7DA2 +0 707 707 call model_select ;select printer model, logic model
+0 708 708 ;---------------------------------------------------------------
+0 709 709 ;V3.00 @BBS (RTC_INIT,pwr_wait_z) ;V1.46
+0 710 710 ;V3.00 call init_rtc ;V1.45
0000A073 +0 711 711 pwr_wait_z: ;V1.45
+0 712 712 ;---------------------------------------------------------------
0000A073 C83A +0 713 713 di
0000A075 FD0000 R +0 714 714 call initial_mdsw_update ;V1.30;V1.27
0000A078 C03A +0 715 715 ei
0000A07A 0A0000 R +0 716 716 ld (MDCHK),0 ;V1.20
0000A07D FD0000 R +0 717 717 call mdsw_update ;V1.20
+0 718 718 ;V4.13 @BBS (SW_OFF_RT,init_hw_wk9) ;if OFF? yes -> no initial print
0000A080 480000 R +0 719 719 ld wa,SW_NP_RT
0000A083 E10000FC R +0 720 720 test (SW_NP_RT>>4).a ;bit -reverse-> jump status
0000A087 DF24 +0 721 721 j f,pwr_wait_1 ;if jump status is 0 -> branch
+0 722 722 ;V3.00 @BBC (F_WAKE,pwr_wait_0) ;V1.17
+0 723 723 ;V3.00 call feed_1
0000A089 480000 R +0 724 724 ld wa,F_INIREQ
0000A08C E10000F2 R +0 725 725 set (F_INIREQ>>4).a
0000A090 480000 R +0 726 726 ld wa,M_5514T
0000A093 E10000FC R +0 727 727 test (M_5514T>>4).a ;bit -reverse-> jump status
0000A097 A9 +0 728 728 j f,pwr_wait_0 ;if jump status is 0 -> branch
0000A098 480000 R +0 729 729 ld wa,F_INIREQ
0000A09B E10000FA R +0 730 730 clr (F_INIREQ>>4).a
0000A09F FD0000 R +0 731 731 call prn_init ;V3.00
0000A0A2 +0 732 732 pwr_wait_0: ;V1.17
0000A0A2 480000 R +0 733 733 ld wa,P_ERR
0000A0A5 E10000FC R +0 734 734 test (P_ERR>>4).a ;bit -reverse-> jump status
0000A0A9 82 +0 735 735 j t,pwr_wait_1 ;if jump status is 1 -> branch
0000A0AA FD0000 R +0 736 736 call prn_init ;printer initialize
0000A0AD +0 737 737 pwr_wait_1:
+0 738 738 ;//test call check_slftst
0000A0AD FD0000 R +0 739 739 call rate_init_check
0000A0B0 480000 R +0 740 740 ld wa,RATE_INI
0000A0B3 E10000FC R +0 741 741 test (RATE_INI>>4).a ;bit -reverse-> jump status
0000A0B7 DF1D +0 742 742 j f,pwr_wait_2 ;if jump status is 0 -> branch
0000A0B9 480000 R +0 743 743 ld wa,SW_NP_RT
0000A0BC E10000FC R +0 744 744 test (SW_NP_RT>>4).a ;bit -reverse-> jump status
0000A0C0 DF17 +0 745 745 j f,init_hw_wk9 ;if jump status is 0 -> branch
0000A0C2 0A000E R +0 746 746 ld (PRE_KEY),K_CEC ;
0000A0C5 480000 R +0 747 747 ld wa,M_5514T
0000A0C8 E10000FC R +0 748 748 test (M_5514T>>4).a ;bit -reverse-> jump status
0000A0CC AB +0 749 749 j f,init_hw_wk9 ;if jump status is 0 -> branch
0000A0CD FD0000 R +0 750 750 call wkup_print ;print 'C'
+0 751 751
0000A0D0 FD0000 R +0 752 752 call feed_1
0000A0D3 FED9A0 +0 753 753 jp init_hw_wk9 ;
0000A0D6 +0 754 754 pwr_wait_2: ;
0000A0D6 FD8BA6 +0 755 755 call rate_init_flag_print ; out print to indicate all rate initialed
0000A0D9 +0 756 756 init_hw_wk9:
0000A0D9 480000 R +0 757 757 ld wa,IO_MT
0000A0DC E10000FC R +0 758 758 test (IO_MT>>4).a ;bit -reverse-> jump status
0000A0E0 B7 +0 759 759 j f,init_hw_wk9 ;if jump status is 0 -> branch
0000A0E1 FD0000 R +0 760 760 call eeprom_check ;to check EEPROM initialed?
0000A0E4 DB03 +0 761 761 j cc,no_init_eeprom ;EEPROM initialed?
0000A0E6 FD0000 R +0 762 762 call ee_rate_init ;write check code into (EE_TEST)
0000A0E9 +0 763 763 no_init_eeprom:
0000A0E9 FD0000 R +0 764 764 call init_keybuf ;clear key counter,pointer
0000A0EC 480000 R +0 765 765 ld wa,RATE_INI
0000A0EF E10000FC R +0 766 766 test (RATE_INI>>4).a ;bit -reverse-> jump status
0000A0F3 DE25 +0 767 767 j t,init_hw_wk90 ;if jump status is 1 -> branch
0000A0F5 FD0000 R +0 768 768 call ee_rate_init ;yes, initial
0000A0F8 480000 R +0 769 769 ld wa,EP_FAIL
0000A0FB E10000FC R +0 770 770 test (EP_FAIL>>4).a ;bit -reverse-> jump status
0000A0FF DF19 +0 771 771 j f,init_hw_wk90 ;if jump status is 0 -> branch
0000A101 FD0000 R +0 772 772 call init_rate_dispaly ;display "r-cc"
0000A104 +0 773 773 wait_key_in:
0000A104 FD0000 R +0 774 774 call wait_50ms
0000A107 +0 775 775 wait_key_in_1:
0000A107 FD24A5 +0 776 776 call check_mdsw ;to check slide
0000A10A E100006700 R +0 777 777 cmp (KEY_CT),0
0000A10F D8F6 +0 778 778 j z,wait_key_in_1
0000A111 FD0000 R +0 779 779 call all_clear
0000A114 FDCCA2 +0 780 780 call init_all_rate
0000A117 FE3AA2 +0 781 781 j feed_key_end
0000A11A +0 782 782 init_hw_wk90:
+0 783 783
0000A11A FD0000 R +0 784 784 call init_keybuf ;clear key counter,pointer
0000A11D FDCCA2 +0 785 785 call init_all_rate
+0 786 786 ;V4.13 @BBS (SW_OFF_RT,main_loop) ;OFF position? yes -> does not display for avoid display flash in OFF mode
0000A120 FE3AA2 +0 787 787 j feed_key_end ;'0' display and go to main loop
+0 788 788
+0 789 789
+0 790 790 ;===============================================================================
+0 791 791 ; Main routine(wait for key entry and jump to each function)
+0 792 792 ;===============================================================================
0000A123 +0 793 793 main_loop:
+0 794 794 ;V4.11 @BBS (F_WAKE,enter_stop) ;jump to auto off function
0000A123 FD24A5 +0 795 795 call check_mdsw ;check OFF,NP,RATE key movement
0000A126 DB03FE50A2 +0 796 796 j cs,function_end9
0000A12B E1000040 R +0 797 797 ld a,(KEY_CT) ;Any key in?
0000A12F D8F2 +0 798 798 j z,main_loop ; no-> loop
+0 799 799
+0 800 800 ;V4.04 ld wa,AUTOOFFTIME
+0 801 801 ;V4.04 ld (AUTO_OFF_TIM),wa
0000A131 FD0000 R +0 802 802 call update_md ;MDFLG update from MDFLG_RT
+0 803 803 ;V2.03main_loop_ignore_dp_update:
+0 804 804 ;V4.11 @BBS (F_OFF,no_operation) ;if OFF mode? yes->ignore key entry
0000A134 FD0000 R +0 805 805 call key_get ;reg.a <- key code
0000A137 DA03FE6BA2 +0 806 806 j cc,no_operation ;illegal key code? yes-> ignore
0000A13C 480000 R +0 807 807 ld wa,P_ERR
0000A13F E10000FC R +0 808 808 test (P_ERR>>4).a ;bit -reverse-> jump status
0000A143 82FEBDA3 +0 809 809 j f,error_recov ;if jump status is 0 -> branch
0000A147 FD2DA3 +0 810 810 call check_perexe_flag_clearornot
0000A14A E10000671F R +0 811 811 cmp (KEYIN),K_IC
0000A14F D83C +0 812 812 j eq,not_ic_key
0000A151 480000 R +0 813 813 ld wa,IC_PROG
0000A154 E10000FC R +0 814 814 test (IC_PROG>>4).a ;bit -reverse-> jump status
0000A158 DE2C +0 815 815 j t,relate_to_icx ;if jump status is 1 -> branch
0000A15A E100006710 R +0 816 816 cmp (KEYIN),K_PLS
0000A15F D81C +0 817 817 j eq,relate_to_ic
0000A161 E100006711 R +0 818 818 cmp (KEYIN),K_MIN
0000A166 D815 +0 819 819 j eq,relate_to_ic
0000A168 E10000670E R +0 820 820 cmp (KEYIN),K_CEC
0000A16D D80E +0 821 821 j eq,relate_to_ic
0000A16F E10000670D R +0 822 822 cmp (KEYIN),K_CE
0000A174 D807 +0 823 823 j eq,relate_to_ic
0000A176 480000 R +0 824 824 ld wa,IC_PROG
0000A179 E10000FA R +0 825 825 clr (IC_PROG>>4).a
+0 826 826
0000A17D +0 827 827 relate_to_ic:
0000A17D 4B0000 R +0 828 828 ld hl,TENKEY
0000A180 FD0000 R +0 829 829 call edit_disp
0000A183 FD0000 R +0 830 830 call disp_to_dbr
0000A186 +0 831 831 relate_to_icx:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -