sdrv_functions_he.lst
来自「一种彩屏驱动以及画点,填充图片和填充数据的一些程序」· LST 代码 · 共 400 行 · 第 1/2 页
LST
400 行
\ 0071 210800 LD HL,8
\ 0074 09 ADD HL,BC
\ 0075 4D LD C,L
\ 0076 44 LD B,H
\ 0077 ED5B0200 LD DE,(region_win+2)
\ 007B 1600 LD D,0
\ 007D 2A0000 LD HL,(region_win)
\ 0080 62 LD H,D
\ 0081 19 ADD HL,DE
\ 0082 F680 OR 128
\ 0084 ED42 SBC HL,BC
\ 0086 E28A00 JP PO,?0054
\ 0089 AC XOR H
\ 008A ?0054:
\ 008A FA1C01 JP M,?0070
\ 008D ?0012:
92 {
93 DUMP(RESULT_PUTCHAR_X_ERR);
94 PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
95 return FALSE;
96 }
\ 008D ?0013:
97 if (region.y+ASCII_LARGE_HEIGHT_DEF > region_win.y+region_win.height)
\ 008D ED4B0100 LD BC,(region+1)
\ 0091 42 LD B,D
\ 0092 211000 LD HL,16
\ 0095 09 ADD HL,BC
\ 0096 4D LD C,L
\ 0097 44 LD B,H
\ 0098 ED5B0300 LD DE,(region_win+3)
\ 009C 1600 LD D,0
\ 009E 2A0100 LD HL,(region_win+1)
\ 00A1 62 LD H,D
\ 00A2 19 ADD HL,DE
\ 00A3 F680 OR 128
\ 00A5 ED42 SBC HL,BC
\ 00A7 E2AB00 JP PO,?0055
\ 00AA AC XOR H
\ 00AB ?0055:
\ 00AB F25101 JP P,?0005
\ 00AE ?0014:
98 {
99 DUMP(RESULT_PUTCHAR_Y_ERR);
100 PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
\ 00AE C34501 JP ?0071
101 return FALSE;
102 }
\ 00B1 ?0015:
103 break;
\ 00B1 ?0016:
104
105 case CharMode1616://16*16点阵模式(汉字)
106 if (region.x+CHINESE_WIDTH_DEF > region_win.x+region_win.width)
\ 00B1 ED4B0000 LD BC,(region)
\ 00B5 0600 LD B,0
\ 00B7 211000 LD HL,16
\ 00BA 09 ADD HL,BC
\ 00BB 4D LD C,L
\ 00BC 44 LD B,H
\ 00BD ED5B0200 LD DE,(region_win+2)
\ 00C1 1600 LD D,0
\ 00C3 2A0000 LD HL,(region_win)
\ 00C6 62 LD H,D
\ 00C7 19 ADD HL,DE
\ 00C8 F680 OR 128
\ 00CA ED42 SBC HL,BC
\ 00CC E2D000 JP PO,?0056
\ 00CF AC XOR H
\ 00D0 ?0056:
\ 00D0 FA1C01 JP M,?0070
\ 00D3 ?0017:
107 {
108 DUMP(RESULT_PUTCHAR_X_ERR);
109 PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
110 return FALSE;
111 }
\ 00D3 ?0018:
112 if (region.y+CHINESE_HEIGHT_DEF > region_win.y+region_win.height)
\ 00D3 ED4B0100 LD BC,(region+1)
\ 00D7 42 LD B,D
\ 00D8 211000 LD HL,16
\ 00DB 09 ADD HL,BC
\ 00DC 4D LD C,L
\ 00DD 44 LD B,H
\ 00DE ED5B0300 LD DE,(region_win+3)
\ 00E2 1600 LD D,0
\ 00E4 2A0100 LD HL,(region_win+1)
\ 00E7 62 LD H,D
\ 00E8 19 ADD HL,DE
\ 00E9 F680 OR 128
\ 00EB ED42 SBC HL,BC
\ 00ED E2F100 JP PO,?0057
\ 00F0 AC XOR H
\ 00F1 ?0057:
\ 00F1 F25101 JP P,?0005
\ 00F4 ?0019:
113 {
114 DUMP(RESULT_PUTCHAR_Y_ERR);
115 PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
\ 00F4 184F JR ?0071
116 return FALSE;
117 }
\ 00F6 ?0020:
118 break;
\ 00F6 ?0021:
119
120 case PicDisMode://图形显示模式
121 if (region.x+region.width > region_win.x+region_win.width)
\ 00F6 ED4B0200 LD BC,(region+2)
\ 00FA 0600 LD B,0
\ 00FC ED5B0000 LD DE,(region)
\ 0100 50 LD D,B
\ 0101 69 LD L,C
\ 0102 60 LD H,B
\ 0103 19 ADD HL,DE
\ 0104 4D LD C,L
\ 0105 44 LD B,H
\ 0106 ED5B0200 LD DE,(region_win+2)
\ 010A 1600 LD D,0
\ 010C 2A0000 LD HL,(region_win)
\ 010F 62 LD H,D
\ 0110 19 ADD HL,DE
\ 0111 F680 OR 128
\ 0113 ED42 SBC HL,BC
\ 0115 E21901 JP PO,?0058
\ 0118 AC XOR H
\ 0119 ?0058:
\ 0119 F22001 JP P,?0023
\ 011C ?0022:
122 {
123 DUMP(RESULT_PUTCHAR_X_ERR);
124 PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
\ 011C ?0070:
\ 011C 3E01 LD A,1
\ 011E 182B JR ?0067
125 return FALSE;
126 }
\ 0120 ?0023:
127 if (region.y+region.height > region_win.y+region_win.height)
\ 0120 ED4B0300 LD BC,(region+3)
\ 0124 42 LD B,D
\ 0125 ED5B0100 LD DE,(region+1)
\ 0129 50 LD D,B
\ 012A 69 LD L,C
\ 012B 60 LD H,B
\ 012C 19 ADD HL,DE
\ 012D 4D LD C,L
\ 012E 44 LD B,H
\ 012F ED5B0300 LD DE,(region_win+3)
\ 0133 1600 LD D,0
\ 0135 2A0100 LD HL,(region_win+1)
\ 0138 62 LD H,D
\ 0139 19 ADD HL,DE
\ 013A F680 OR 128
\ 013C ED42 SBC HL,BC
\ 013E E24201 JP PO,?0059
\ 0141 AC XOR H
\ 0142 ?0059:
\ 0142 F25101 JP P,?0005
\ 0145 ?0024:
128 {
129 DUMP(RESULT_PUTCHAR_Y_ERR);
130 PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
\ 0145 ?0071:
\ 0145 3E02 LD A,2
\ 0147 1802 JR ?0067
131 return FALSE;
132 }
\ 0149 ?0025:
133 break;
\ 0149 ?0026:
134
135 default:
136 DUMP(RESULT_PUTCHAR_OTHER_ERR);
137 PutCharErrFlag = RESULT_PUTCHAR_OTHER_ERR;//不知类型的也不显示
\ 0149 3E03 LD A,3
\ 014B ?0067:
\ 014B 320000 LD (PutCharErrFlag),A
138 return FALSE;
\ 014E AF XOR A
139 }
\ 014F 1802 JR ?0027
\ 0151 ?0005:
140 return TRUE;
\ 0151 3E01 LD A,1
141 }
\ 0153 ?0027:
\ 0153 E1 POP HL
\ 0154 C1 POP BC
\ 0155 C9 RET
142 //================================================================================
\ 0156 END
Errors: none
Warnings: none
Code size: 342
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?