📄 display.lst
字号:
000000D1 00 +0 805 805 db 0y00000000 ; 2bh
000000D2 00 +0 806 806 db 0y00000000 ; 2ch
+0 807 807 ;V4.01 db 0y00000000 ; 2dh
+0 808 808 ;V4.01 db 0y00000000 ; 2eh
+0 809 809 ;V4.01 db 0y00000000 ; 2fh
+0 810 810 ;V4.01 db 0y00000000 ; 30h
+0 811 811 ;V4.01 db 0y00000000 ; 31h
+0 812 812 ;V4.01 db 0y00000000 ; 32h
+0 813 813 ;V4.01 db 0y00000000 ; 33h
+0 814 814 ;V4.01 db 0y00000000 ; 34h
+0 815 815 ;V4.01 db 0y00000000 ; 35h
+0 816 816 ;V4.01 db 0y00000000 ; 36h
+0 817 817 ;V4.01 db 0y00000000 ; 37h
+0 818 818 ;V4.01 db 0y00000000 ; 38h
+0 819 819 ;V4.01 db 0y00000000 ; 39h
+0 820 820 ;V4.01 db 0y00000000 ; 3ah
+0 821 821 ;V4.01 db 0y00000000 ; 3bh
+0 822 822 ;V4.01 db 0y00000000 ; 3ch
+0 823 823 ;V4.01 db 0y00000000 ; 3dh
+0 824 824 ;V4.01 db 0y00000000 ; 3eh
+0 825 825 ;V4.01 db 0y00000000 ; 3fh
+0 826 826 ;V4.01 db 0y00000000 ; 40h
000000D3 +0 827 827 tbl_vft_ini:
+0 828 828 ; V7------V0
000000D3 01 +0 829 829 db 0y00000001
000000D4 02 +0 830 830 db 0y00000010
000000D5 04 +0 831 831 db 0y00000100
000000D6 08 +0 832 832 db 0y00001000
000000D7 10 +0 833 833 db 0y00010000
000000D8 20 +0 834 834 db 0y00100000
000000D9 40 +0 835 835 db 0y01000000
000000DA 80 +0 836 836 db 0y10000000
000000DB 00 +0 837 837 db 0y00000000
000000DC 00 +0 838 838 db 0y00000000
000000DD 00 +0 839 839 db 0y00000000
000000DE 00 +0 840 840 db 0y00000000
000000DF 00 +0 841 841 db 0y00000000
000000E0 00 +0 842 842 db 0y00000000
000000E1 00 +0 843 843 db 0y00000000
000000E2 00 +0 844 844 db 0y00000000
+0 845 845
+0 846 846 ; 15-----V8
000000E3 00 +0 847 847 db 0y00000000
000000E4 00 +0 848 848 db 0y00000000
000000E5 00 +0 849 849 db 0y00000000
000000E6 00 +0 850 850 db 0y00000000
000000E7 00 +0 851 851 db 0y00000000
000000E8 00 +0 852 852 db 0y00000000
000000E9 00 +0 853 853 db 0y00000000
000000EA 00 +0 854 854 db 0y00000000
000000EB 01 +0 855 855 db 0y00000001
000000EC 02 +0 856 856 db 0y00000010
000000ED 04 +0 857 857 db 0y00000100
000000EE 08 +0 858 858 db 0y00001000
000000EF 10 +0 859 859 db 0y00010000
000000F0 20 +0 860 860 db 0y00100000
000000F1 40 +0 861 861 db 0y01000000
000000F2 80 +0 862 862 db 0y10000000
000000F3 +0 863 863 tbl_vft_ini_end:
+0 864 864
+0 865 865 ;==============================================================================
+0 866 866 ; Name: edit_disp
+0 867 867 ; Function: copy work resister data to DISP with zero suppression and
+0 868 868 ; set commma, DP, minus sign
+0 869 869 ; Input: hl <- work resister address
+0 870 870 ; Output: DISP +0~+13,ICON_MIN flag
+0 871 871 ; Work reg.: ix,iy,c,a,w
+0 872 872 ;==============================================================================
000000F3 +0 873 873 edit_disp:
000000F3 480000 R +0 874 874 ld wa,F_DOFF
000000F6 E10000F2 R +0 875 875 set (F_DOFF>>4).a
000000FA EB4C +0 876 876 ld ix,hl
000000FC EC690000 R +0 877 877 add ix,OFF_LSD ;ix..address of work register
00000100 4D0000 R +0 878 878 ld iy,DISP_LSD ;iy..address of DISP
00000103 1A00 +0 879 879 ld c,0 ;c...digit pointer of DISP(0-13)
00000105 +0 880 880 edit_disp0:
00000105 E440 +0 881 881 ld a,(ix)
00000107 EA58 +0 882 882 ld cf,c.0 ;check digit pointer
00000109 DB03 +0 883 883 j cc,edit_disp2 ;c is even number? yes->
0000010B E8FF +0 884 884 swap a ;swap by nibble
0000010D 3C +0 885 885 dec ix ;odd digit -> move source address to next digit
0000010E +0 886 886 edit_disp2:
0000010E 640F +0 887 887 and a,0x0f ;get low nibble data
00000110 D70017 R +0 888 888 cmp c,(hl+OFF_DP) ;check DP location
00000113 D80B +0 889 889 j eq,edit_disp4
00000115 F578 +0 890 890 ld (iy),a ;store to DISP
00000117 3D +0 891 891 dec iy ;move distination address to next digit
00000118 22 +0 892 892 inc c ;digit counter +1
00000119 EA6700 R +0 893 893 cmp c,LENG_WK*2
0000011C DAE7 +0 894 894 j lt,edit_disp0 ;transfer end? no->loop
0000011E FC22 +0 895 895 j edit_disp9 ;for make sure
+0 896 896 ;Found DP...............
00000120 +0 897 897 edit_disp4:
00000120 E8C6 +0 898 898 set a.6 ;set DP flag to DISP
00000122 F578 +0 899 899 ld (iy),a ;store to DISP
00000124 3D +0 900 900 dec iy ;move distination address to next digit
00000125 22 +0 901 901 inc c ;digit counter+1
00000126 1902 +0 902 902 ld w,2 ;for set comma separater
00000128 +0 903 903 edit_disp5:
00000128 E440 +0 904 904 ld a,(ix) ;get source data
0000012A EA58 +0 905 905 ld cf,c.0 ;check digit pointer
0000012C DB03 +0 906 906 j cc,edit_disp6 ;even digit? yes->
0000012E E8FF +0 907 907 swap a ;odd digit -> swap by nibble
00000130 3C +0 908 908 dec ix ;odd digit -> move source address to next digit
00000131 +0 909 909 edit_disp6:
00000131 640F +0 910 910 and a,0x0f ;get low nibble data
00000133 29 +0 911 911 dec w
00000134 A3 +0 912 912 j f,edit_disp8 ;if no borrow? yes->
+0 913 913
+0 914 914 ;V4.13 @if(@eqs(@UP_COM,@ON))then(
+0 915 915 ;V4.13 or (iy+1),0y10000000 ;set comma to DISP(current DISP address-1) <- for upper ' display style
+0 916 916 ;V4.13 )else(
00000135 E8C7 +0 917 917 set a.7 ;set comma flag to DISP(current DISP) <- for lower , display style
+0 918 918 ;V4.13 )fi
+0 919 919
00000137 1902 +0 920 920 ld w,2 ;for set comma separater
00000139 +0 921 921 edit_disp8:
00000139 F578 +0 922 922 ld (iy),a ;store to DISP
0000013B 3D +0 923 923 dec iy ;move distination address to next digit
0000013C 22 +0 924 924 inc c ;digit counter+1
0000013D EA6700 R +0 925 925 cmp c,LENG_WK*2 ;transfer end?
00000140 DAE6 +0 926 926 j lt,edit_disp5 ;no ->loop
00000142 +0 927 927 edit_disp9:
+0 928 928 ;zero suppression...............
00000142 35 +0 929 929 inc iy ;DISP address move to MSD
00000143 2A +0 930 930 dec c
00000144 +0 931 931 edit_disp10:
00000144 E540 +0 932 932 ld a,(iy) ;check DISP data from MSD
00000146 643F +0 933 933 and a,0y00111111 ;hide comma,DP flag
00000148 D910 +0 934 934 j nz,edit_disp11 ;found data yes-> stop zero suppression
+0 935 935 ;current digit is zero.....
0000014A E540 +0 936 936 ld a,(iy) ;check current DISP digit
0000014C 6440 +0 937 937 and a,0y01000000 ;check DP
0000014E D90A +0 938 938 j nz,edit_disp11 ;found DP yes-> stop zero suppression (in case of 0.xxx--- format)
00000150 F5F93F +0 939 939 ld (iy),D_SPC ;fill space code
00000153 35 +0 940 940 inc iy ;DISP address move to next digit
00000154 2A +0 941 941 dec c ;digit counter -1
00000155 EA6700 +0 942 942 cmp c,0 ;LSD?
00000158 DDEA +0 943 943 j gt,edit_disp10 ;no-> loop
0000015A +0 944 944 edit_disp11:
+0 945 945 ;V4.13 @if(@eqs(@UP_COM,@ON))then(
+0 946 946 ;V4.13 and (iy),0y01111111 ;clear commma for left most digit <- for upper ' display style (no need this instruction when lower , display)
+0 947 947 ;V4.13 )else(
+0 948 948 ;V4.13 )fi
+0 949 949
+0 950 950 ;set minus sign...........
0000015A 480000 R +0 951 951 ld wa,ICON_MIN
0000015D E10000FA R +0 952 952 clr (ICON_MIN>>4).a
00000161 D70040 R +0 953 953 ld a,(hl+OFF_S) ;-value?
00000164 D82E +0 954 954 j z,edit_disp19 ;no ->exit
+0 955 955 ;V3.00 @BBS (M_JET,edit_disp12) ;V2.07
+0 956 956 ;V1.21 @if(@eqs(@D14,@ON))then(
+0 957 957 ;V1.21 cmp c,LENG_WK*2-1 ;MSD? in case of 14digit
+0 958 958 ;V1.21 )else(
+0 959 959 ;V1.21 cmp c,(LENG_WK-1)*2-1 ;MSD? in case of 12digit
+0 960 960 ;V1.21 )fi
+0 961 961
+0 962 962 ;V2.07 push wa ;V1.21
00000166 480000 R +0 963 963 ld wa,M14
00000169 E10000FC R +0 964 964 test (M14>>4).a ;bit -reverse-> jump status
0000016D AD +0 965 965 j f,edit_disp11x ;if jump status is 0 -> branch
0000016E 480000 R +0 966 966 ld wa,M10
00000171 E10000FC R +0 967 967 test (M10>>4).a ;bit -reverse-> jump status
00000175 8B +0 968 968 j t,edit_disp11y ;if jump status is 1 -> branch
+0 969 969 ;V2.07 pop wa ;V1.21
00000176 EA6700 R +0 970 970 cmp C,(LENG_WK-2)*2-1 ;V1.21
00000179 FE0000 R +0 971 971 jp edit_disp11z ;V1.21
0000017C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -