sdrv_functions_jp.lst
来自「一种彩屏驱动以及画点,填充图片和填充数据的一些程序」· LST 代码 · 共 398 行 · 第 1/2 页
LST
398 行
\ 0075 09 ADD HL,BC
\ 0076 4D LD C,L
\ 0077 44 LD B,H
\ 0078 ED5B0200 LD DE,(region_win+2)
\ 007C 1600 LD D,0
\ 007E 2A0000 LD HL,(region_win)
\ 0081 62 LD H,D
\ 0082 19 ADD HL,DE
\ 0083 F680 OR 128
\ 0085 ED42 SBC HL,BC
\ 0087 E28B00 JP PO,?0052
\ 008A AC XOR H
\ 008B ?0052:
\ 008B FA1D01 JP M,?0068
\ 008E ?0012:
91 {
92 DUMP(RESULT_PUTCHAR_X_ERR);
93 PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
94 return FALSE;
95 }
\ 008E ?0013:
96 if (region.y+ASCII_LARGE_HEIGHT_DEF > region_win.y+region_win.height)
\ 008E ED4B0100 LD BC,(region+1)
\ 0092 42 LD B,D
\ 0093 211000 LD HL,16
\ 0096 09 ADD HL,BC
\ 0097 4D LD C,L
\ 0098 44 LD B,H
\ 0099 ED5B0300 LD DE,(region_win+3)
\ 009D 1600 LD D,0
\ 009F 2A0100 LD HL,(region_win+1)
\ 00A2 62 LD H,D
\ 00A3 19 ADD HL,DE
\ 00A4 F680 OR 128
\ 00A6 ED42 SBC HL,BC
\ 00A8 E2AC00 JP PO,?0053
\ 00AB AC XOR H
\ 00AC ?0053:
\ 00AC F25201 JP P,?0005
\ 00AF ?0014:
97 {
98 DUMP(RESULT_PUTCHAR_Y_ERR);
99 PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
\ 00AF C34601 JP ?0069
100 return FALSE;
101 }
\ 00B2 ?0015:
102 break;
\ 00B2 ?0016:
103
104 case CharMode1616://16*16点阵模式(汉字)
105 if (region.x+CHINESE_WIDTH_DEF > region_win.x+region_win.width)
\ 00B2 ED4B0000 LD BC,(region)
\ 00B6 0600 LD B,0
\ 00B8 211000 LD HL,16
\ 00BB 09 ADD HL,BC
\ 00BC 4D LD C,L
\ 00BD 44 LD B,H
\ 00BE ED5B0200 LD DE,(region_win+2)
\ 00C2 1600 LD D,0
\ 00C4 2A0000 LD HL,(region_win)
\ 00C7 62 LD H,D
\ 00C8 19 ADD HL,DE
\ 00C9 F680 OR 128
\ 00CB ED42 SBC HL,BC
\ 00CD E2D100 JP PO,?0054
\ 00D0 AC XOR H
\ 00D1 ?0054:
\ 00D1 FA1D01 JP M,?0068
\ 00D4 ?0017:
106 {
107 DUMP(RESULT_PUTCHAR_X_ERR);
108 PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
109 return FALSE;
110 }
\ 00D4 ?0018:
111 if (region.y+CHINESE_HEIGHT_DEF > region_win.y+region_win.height)
\ 00D4 ED4B0100 LD BC,(region+1)
\ 00D8 42 LD B,D
\ 00D9 211000 LD HL,16
\ 00DC 09 ADD HL,BC
\ 00DD 4D LD C,L
\ 00DE 44 LD B,H
\ 00DF ED5B0300 LD DE,(region_win+3)
\ 00E3 1600 LD D,0
\ 00E5 2A0100 LD HL,(region_win+1)
\ 00E8 62 LD H,D
\ 00E9 19 ADD HL,DE
\ 00EA F680 OR 128
\ 00EC ED42 SBC HL,BC
\ 00EE E2F200 JP PO,?0055
\ 00F1 AC XOR H
\ 00F2 ?0055:
\ 00F2 F25201 JP P,?0005
\ 00F5 ?0019:
112 {
113 DUMP(RESULT_PUTCHAR_Y_ERR);
114 PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
\ 00F5 184F JR ?0069
115 return FALSE;
116 }
\ 00F7 ?0020:
117 break;
\ 00F7 ?0021:
118
119 case PicDisMode://图形显示模式
120 if (region.x+region.width > region_win.x+region_win.width)
\ 00F7 ED4B0200 LD BC,(region+2)
\ 00FB 0600 LD B,0
\ 00FD ED5B0000 LD DE,(region)
\ 0101 50 LD D,B
\ 0102 69 LD L,C
\ 0103 60 LD H,B
\ 0104 19 ADD HL,DE
\ 0105 4D LD C,L
\ 0106 44 LD B,H
\ 0107 ED5B0200 LD DE,(region_win+2)
\ 010B 1600 LD D,0
\ 010D 2A0000 LD HL,(region_win)
\ 0110 62 LD H,D
\ 0111 19 ADD HL,DE
\ 0112 F680 OR 128
\ 0114 ED42 SBC HL,BC
\ 0116 E21A01 JP PO,?0056
\ 0119 AC XOR H
\ 011A ?0056:
\ 011A F22101 JP P,?0023
\ 011D ?0022:
121 {
122 DUMP(RESULT_PUTCHAR_X_ERR);
123 PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
\ 011D ?0068:
\ 011D 3E01 LD A,1
\ 011F 182B JR ?0065
124 return FALSE;
125 }
\ 0121 ?0023:
126 if (region.y+region.height > region_win.y+region_win.height)
\ 0121 ED4B0300 LD BC,(region+3)
\ 0125 42 LD B,D
\ 0126 ED5B0100 LD DE,(region+1)
\ 012A 50 LD D,B
\ 012B 69 LD L,C
\ 012C 60 LD H,B
\ 012D 19 ADD HL,DE
\ 012E 4D LD C,L
\ 012F 44 LD B,H
\ 0130 ED5B0300 LD DE,(region_win+3)
\ 0134 1600 LD D,0
\ 0136 2A0100 LD HL,(region_win+1)
\ 0139 62 LD H,D
\ 013A 19 ADD HL,DE
\ 013B F680 OR 128
\ 013D ED42 SBC HL,BC
\ 013F E24301 JP PO,?0057
\ 0142 AC XOR H
\ 0143 ?0057:
\ 0143 F25201 JP P,?0005
\ 0146 ?0024:
127 {
128 DUMP(RESULT_PUTCHAR_Y_ERR);
129 PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
\ 0146 ?0069:
\ 0146 3E02 LD A,2
\ 0148 1802 JR ?0065
130 return FALSE;
131 }
\ 014A ?0025:
132 break;
\ 014A ?0026:
133
134 default:
135 DUMP(RESULT_PUTCHAR_OTHER_ERR);
136 PutCharErrFlag = RESULT_PUTCHAR_OTHER_ERR;//不知类型的也不显示
\ 014A 3E03 LD A,3
\ 014C ?0065:
\ 014C 320000 LD (PutCharErrFlag),A
137 return FALSE;
\ 014F AF XOR A
138 }
\ 0150 1802 JR ?0027
\ 0152 ?0005:
139 return TRUE;
\ 0152 3E01 LD A,1
140 }
\ 0154 ?0027:
\ 0154 E1 POP HL
\ 0155 C1 POP BC
\ 0156 C9 RET
141 //================================================================================
\ 0157 END
Errors: none
Warnings: none
Code size: 343
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?