📄 sdrv_functions.lst
字号:
\ 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:
93 {
94 DUMP(RESULT_PUTCHAR_X_ERR);
95 PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
96 return FALSE;
97 }
\ 008E ?0013:
98 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:
99 {
100 DUMP(RESULT_PUTCHAR_Y_ERR);
101 PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
\ 00AF C34601 JP ?0069
102 return FALSE;
103 }
\ 00B2 ?0015:
104 break;
\ 00B2 ?0016:
105
106 case CharMode1616://16*16点阵模式(汉字)
107 if (region.x+CHINESE_WIDTH_DEF > region_win.x+region_win.width)
\ 00B2 ED4B0000 LD BC,(region)
\ 00B6 0600 LD B,0
\ 00B8 210C00 LD HL,12
\ 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:
108 {
109 DUMP(RESULT_PUTCHAR_X_ERR);
110 PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
111 return FALSE;
112 }
\ 00D4 ?0018:
113 if (region.y+CHINESE_HEIGHT_DEF > region_win.y+region_win.height)
\ 00D4 ED4B0100 LD BC,(region+1)
\ 00D8 42 LD B,D
\ 00D9 210C00 LD HL,12
\ 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:
114 {
115 DUMP(RESULT_PUTCHAR_Y_ERR);
116 PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
\ 00F5 184F JR ?0069
117 return FALSE;
118 }
\ 00F7 ?0020:
119 break;
\ 00F7 ?0021:
120
121 case PicDisMode://图形显示模式
122 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:
123 {
124 DUMP(RESULT_PUTCHAR_X_ERR);
125 PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
\ 011D ?0068:
\ 011D 3E01 LD A,1
\ 011F 182B JR ?0065
126 return FALSE;
127 }
\ 0121 ?0023:
128 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:
129 {
130 DUMP(RESULT_PUTCHAR_Y_ERR);
131 PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
\ 0146 ?0069:
\ 0146 3E02 LD A,2
\ 0148 1802 JR ?0065
132 return FALSE;
133 }
\ 014A ?0025:
134 break;
\ 014A ?0026:
135
136 default:
137 DUMP(RESULT_PUTCHAR_OTHER_ERR);
138 PutCharErrFlag = RESULT_PUTCHAR_OTHER_ERR;//不知类型的也不显示
\ 014A 3E03 LD A,3
\ 014C ?0065:
\ 014C 320000 LD (PutCharErrFlag),A
139 return FALSE;
\ 014F AF XOR A
140 }
\ 0150 1802 JR ?0027
\ 0152 ?0005:
141 return TRUE;
\ 0152 3E01 LD A,1
142 }
\ 0154 ?0027:
\ 0154 E1 POP HL
\ 0155 C1 POP BC
\ 0156 C9 RET
143 //================================================================================
\ 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -