📄 main.src
字号:
; void disp_char(char row, char col, unsigned char c)
RSEG ?PR?_disp_char?MAIN
L?0200:
USING 0
L?0201:
MOV R5,col?866
MOV R7,row?865
_disp_char:
USING 0
; SOURCE LINE # 150
;---- Variable 'row?140' assigned to Register 'R7' ----
;---- Variable 'c?142' assigned to Register 'R6' ----
MOV R6,AR3
;---- Variable 'col?141' assigned to Register 'R5' ----
; {
; SOURCE LINE # 151
; unsigned char v = c;
; SOURCE LINE # 152
;---- Variable 'v?143' assigned to Register 'R3' ----
; if (c >= '0' && c <= '9')
; SOURCE LINE # 153
MOV A,R6
CLR C
SUBB A,#030H
JC ?C0002
MOV A,R6
SETB C
SUBB A,#039H
JNC ?C0002
; v = c - '0' + 1;
; SOURCE LINE # 154
MOV A,R6
ADD A,#0D1H
MOV R3,A
?C0002:
; if (c >= 'A' && c <= 'N')
; SOURCE LINE # 155
MOV A,R6
CLR C
SUBB A,#041H
JC ?C0003
MOV A,R6
SETB C
SUBB A,#04EH
JNC ?C0003
; v = c - 'A' + 11;
; SOURCE LINE # 156
MOV A,R6
ADD A,#0CAH
MOV R3,A
?C0003:
; if (c == 'O')
; SOURCE LINE # 157
CJNE R6,#04FH,?C0004
; v = 1;
; SOURCE LINE # 158
MOV R3,#01H
?C0004:
; if (c >= 'P' && c <= 'Z')
; SOURCE LINE # 159
MOV A,R6
CLR C
SUBB A,#050H
JC ?C0005
MOV A,R6
SETB C
SUBB A,#05AH
JNC ?C0005
; v = c - 'A' + 10;
; SOURCE LINE # 160
MOV A,R6
ADD A,#0C9H
MOV R3,A
?C0005:
; if (c >= 'a' && c <= 'z')
; SOURCE LINE # 161
MOV A,R6
CLR C
SUBB A,#061H
JC ?C0006
MOV A,R6
SETB C
SUBB A,#07AH
JNC ?C0006
; v = c - 'a' + 36;
; SOURCE LINE # 162
MOV A,R6
ADD A,#0C3H
MOV R3,A
?C0006:
; if (c == ' ')
; SOURCE LINE # 163
CJNE R6,#020H,?C0007
; v = 0;
; SOURCE LINE # 164
CLR A
MOV R3,A
?C0007:
; mtv130_putd(row, col, v);
; SOURCE LINE # 165
LJMP _mtv130_putd
; END OF _disp_char
; }
;
; void disp_str(char row, char col, unsigned char *str)
RSEG ?PR?_disp_str?MAIN
_disp_str:
USING 0
; SOURCE LINE # 168
MOV row?244,R7
MOV col?245,R5
MOV str?246,R3
MOV str?246+01H,R2
MOV str?246+02H,R1
; {
; SOURCE LINE # 169
?C0009:
; unsigned char c;
; while ((c = *str++) != 0) {
; SOURCE LINE # 171
MOV R3,str?246
INC str?246+02H
MOV A,str?246+02H
MOV R2,str?246+01H
JNZ ?C0190
INC str?246+01H
?C0190:
DEC A
MOV R1,A
LCALL ?C?CLDPTR
;---- Variable 'c?247' assigned to Register 'R1' ----
MOV R1,A
JZ ?C0011
; disp_char(row, col, c);
; SOURCE LINE # 172
MOV R3,A
MOV R5,col?245
MOV R7,row?244
LCALL _disp_char
; col += 1;
; SOURCE LINE # 173
INC col?245
; }
; SOURCE LINE # 174
SJMP ?C0009
; }
; SOURCE LINE # 175
?C0011:
RET
; END OF _disp_str
;
; void disp_str2(char row, char col, unsigned char code *str, unsigned char color)
RSEG ?PR?_disp_str2?MAIN
_disp_str2:
USING 0
; SOURCE LINE # 177
MOV row?348,R7
MOV str?350,R2
MOV str?350+01H,R3
;---- Variable 'col?349' assigned to Register 'R1' ----
MOV R1,AR5
; {
; SOURCE LINE # 178
?C0012:
; unsigned char c;
; while ((c = *str++) != 0) {//先加地址,再取里面的数据。
; SOURCE LINE # 180
INC str?350+01H
MOV A,str?350+01H
MOV R6,str?350
JNZ ?C0191
INC str?350
?C0191:
DEC A
MOV DPL,A
MOV DPH,R6
CLR A
MOVC A,@A+DPTR
MOV c?352,A
JZ ?C0014
; disp_char(row, col, c);
; SOURCE LINE # 181
MOV R5,AR1
MOV R3,A
MOV R7,row?348
LCALL _disp_char
; mtv130_puta(row, col, color);
; SOURCE LINE # 182
MOV R5,AR1
MOV R3,color?351
MOV R7,row?348
LCALL _mtv130_puta
; col += 1;
; SOURCE LINE # 183
INC R1
; }
; SOURCE LINE # 184
SJMP ?C0012
; }
; SOURCE LINE # 185
?C0014:
RET
; END OF _disp_str2
;
; void disp_str3(char row, char col, unsigned char code *str)
RSEG ?PR?_disp_str3?MAIN
L?0202:
USING 0
CLR A
MOVC A,@A+DPTR
MOV R2,A
MOV A,#01H
MOVC A,@A+DPTR
MOV R3,A
_disp_str3:
USING 0
; SOURCE LINE # 187
;---- Variable 'row?453' assigned to Register 'R7' ----
;---- Variable 'str?455' assigned to Register 'R2/R3' ----
;---- Variable 'col?454' assigned to Register 'R5' ----
; {
; SOURCE LINE # 188
; disp_str(row, col, str);
; SOURCE LINE # 189
MOV R1,AR3
MOV R3,#0FFH
LJMP _disp_str
; END OF _disp_str3
; }
;
; unsigned char data *get_num_str(unsigned char num)
RSEG ?PR?_get_num_str?MAIN
_get_num_str:
USING 0
; SOURCE LINE # 192
;---- Variable 'num?556' assigned to Register 'R7' ----
; {
; SOURCE LINE # 193
; static unsigned char num_str[4];
; char end = 3;
; SOURCE LINE # 195
;---- Variable 'end?558' assigned to Register 'R6' ----
MOV R6,#03H
;
; num_str[end] = 0;
; SOURCE LINE # 197
MOV A,#LOW (num_str?557)
ADD A,R6
MOV R0,A
CLR A
MOV @R0,A
; end--;
; SOURCE LINE # 198
DEC R6
?C0016:
;
; while (end >= 0) {
; SOURCE LINE # 200
CLR C
MOV A,R6
XRL A,#080H
SUBB A,#080H
JC ?C0019
; num_str[end] = '0'+num%10;
; SOURCE LINE # 201
MOV A,R7
MOV B,#0AH
DIV AB
MOV A,B
ADD A,#030H
MOV R5,A
MOV A,#LOW (num_str?557)
ADD A,R6
MOV R0,A
MOV @R0,AR5
; end--;
; SOURCE LINE # 202
DEC R6
; num /= 10;
; SOURCE LINE # 203
MOV A,R7
MOV B,#0AH
DIV AB
MOV R7,A
; if (num == 0)
; SOURCE LINE # 204
JNZ ?C0016
; break;
; SOURCE LINE # 205
; }
; SOURCE LINE # 206
?C0019:
; while (end >= 0) {
; SOURCE LINE # 207
CLR C
MOV A,R6
XRL A,#080H
SUBB A,#080H
JC ?C0020
; num_str[end] = ' ';
; SOURCE LINE # 208
MOV A,#LOW (num_str?557)
ADD A,R6
MOV R0,A
MOV @R0,#020H
; end--;
; SOURCE LINE # 209
DEC R6
; }
; SOURCE LINE # 210
SJMP ?C0019
?C0020:
; return num_str;
; SOURCE LINE # 211
MOV R7,#LOW (num_str?557)
; }
; SOURCE LINE # 212
?C0021:
RET
; END OF _get_num_str
;
; void paint_line(char row, char col, unsigned char count, unsigned char color)
RSEG ?PR?_paint_line?MAIN
_paint_line:
USING 0
; SOURCE LINE # 214
MOV row?659,R7
MOV col?660,R5
;---- Variable 'count?661' assigned to Register 'R1' ----
MOV R1,AR3
; {
; SOURCE LINE # 215
?C0022:
; while (count--)
; SOURCE LINE # 216
MOV R7,AR1
DEC R1
MOV A,R7
JZ ?C0024
; mtv130_puta(row, col++, color);
; SOURCE LINE # 217
MOV R5,col?660
INC col?660
MOV R3,color?662
MOV R7,row?659
LCALL _mtv130_puta
SJMP ?C0022
; }
; SOURCE LINE # 218
?C0024:
RET
; END OF _paint_line
;
; void clear_line(char row)
RSEG ?PR?_clear_line?MAIN
_clear_line:
USING 0
; SOURCE LINE # 220
MOV row?763,R7
; {
; SOURCE LINE # 221
; char col;
; for (col = 0; col != 30; col++) {
; SOURCE LINE # 223
;---- Variable 'col?764' assigned to Register 'R1' ----
CLR A
MOV R1,A
?C0025:
; osd_putchar(row, col, 0, 0);
; SOURCE LINE # 224
MOV R5,AR1
CLR A
MOV R3,A
MOV R7,row?763
LCALL _mtv130_putd
MOV R5,AR1
CLR A
MOV R3,A
MOV R7,row?763
LCALL _mtv130_puta
; }
; SOURCE LINE # 225
INC R1
CJNE R1,#01EH,?C0025
; }
; SOURCE LINE # 226
?C0031:
RET
; END OF _clear_line
;
; void draw_progbar(char row, char col, struct progbar_struct data *pb)
RSEG ?PR?_draw_progbar?MAIN
_draw_progbar:
USING 0
; SOURCE LINE # 228
MOV row?865,R7
MOV col?866,R5
;---- Variable 'pb?867' assigned to Register 'R3' ----
; {
; SOURCE LINE # 229
; unsigned char range = pb->range, step = pb->step, pos = pb->pos;
; SOURCE LINE # 230
MOV A,R3
INC A
MOV R0,A
MOV A,@R0
MOV range?868,A
MOV A,R3
ADD A,#03H
MOV R0,A
MOV A,@R0
MOV step?869,A
MOV A,R3
ADD A,#02H
MOV R0,A
MOV A,@R0
MOV pos?870,A
; unsigned char i = 0, c;
; SOURCE LINE # 231
;---- Variable 'i?871' assigned to Register 'R1' ----
CLR A
MOV R1,A
;
; osd_setrowattr(row, 0);
; SOURCE LINE # 233
MOV R3,A
MOV R5,#01EH
LCALL _mtv130_putd
;
; disp_char(row, col, BAR_B);
; SOURCE LINE # 235
MOV R3,#080H
LCALL L?0200
; col += 1;
; SOURCE LINE # 236
INC col?866
;
; for (; i < pos*step/BAR_N; i++) {
; SOURCE LINE # 238
?C0032:
MOV A,pos?870
MOV B,step?869
MUL AB
RRC A
RRC A
ANL A,#03FH
MOV R7,A
MOV A,R1
CLR C
SUBB A,R7
JNC ?C0033
; disp_char(row, col, BAR_F);
; SOURCE LINE # 239
MOV R3,#081H
LCALL L?0200
; col += 1;
; SOURCE LINE # 240
INC col?866
; }
; SOURCE LINE # 241
INC R1
SJMP ?C0032
?C0033:
;
; if ((c = pos*step%BAR_N) > 0) {
; SOURCE LINE # 243
MOV A,pos?870
MOV B,step?869
MUL AB
ANL A,#03H
MOV R7,A
;---- Variable 'c?872' assigned to Register 'R7' ----
SETB C
SUBB A,#00H
JC ?C0036
; disp_char(row, col, BAR_F + BAR_N - c);
; SOURCE LINE # 244
MOV A,#085H
SUBB A,R7
MOV R3,A
; col += 1;
; SOURCE LINE # 245
; i++;
; SOURCE LINE # 246
; }
; SOURCE LINE # 247
;
; for (; i < range*step/BAR_N; i++) {
; SOURCE LINE # 249
SJMP ?C0196
?C0036:
MOV A,range?868
MOV B,step?869
MUL AB
RRC A
RRC A
ANL A,#03FH
MOV R7,A
MOV A,R1
CLR C
SUBB A,R7
JNC ?C0037
; disp_char(row, col, BAR_F+BAR_N);
; SOURCE LINE # 250
MOV R3,#085H
?C0196:
LCALL L?0201
; col += 1;
; SOURCE LINE # 251
INC col?866
; }
; SOURCE LINE # 252
INC R1
SJMP ?C0036
?C0037:
; disp_char(row, col, BAR_E);
; SOURCE LINE # 253
MOV R3,#086H
LCALL L?0201
;
; disp_str(row-1, col-3, get_num_str(pos/*pb->val*/));
; SOURCE LINE # 255
MOV R7,pos?870
LCALL _get_num_str
MOV R1,AR7
MOV R2,#00H
MOV R3,#00H
MOV A,row?865
DEC A
MOV R7,A
MOV A,col?866
ADD A,#0FDH
MOV R5,A
LJMP _disp_str
; END OF _draw_progbar
; }
;
; #ifdef CWS
; #define ROW_BRI 0
; #else
; #define ROW_BRI 0
; #endif
;
; /*-----------------------------------------------------------------------------------------------*/
;
; #define check_value(val, off, range) \
; (((val) < (off) || (val) > (off)+(range)) ? (off)+(range)/2 : (val))
; #define check_value2(val, off, range, def) \
; (((val) < (off) || (val) > (off)+(range)) ? (def) : (val))
; #define step_value(val, fac, inc) \
; ((inc) ? (val)+(fac) : (val)-(fac))
; #define inc_value(val, off, range, fac) \
; (((val)+(fac) < (off) || (val)+(fac) > (off)+(range)) ? (off)+(range) : (val)+(fac))
; #define dec_value(val, off, range, fac) \
; (((val)-(fac) < (off) || (val)-(fac) > (off)+(range)) ? (off) : (val)-(fac))
;
; unsigned char bri_read(unsigned char addr)
RSEG ?PR?_bri_read?MAIN
_bri_read:
USING 0
; SOURCE LINE # 277
;---- Variable 'addr?973' assigned to Register 'R7' ----
; {
; SOURCE LINE # 278
; unsigned char c = simple_read(addr);
; SOURCE LINE # 279
LCALL _simple_read
;---- Variable 'c?974' assigned to Register 'R7' ----
; return check_value(c, BRI_OFF, BRI_RANGE);
; SOURCE LINE # 280
MOV A,R7
CLR C
SUBB A,#042H
JC ?C0042
MOV A,R7
SETB C
SUBB A,#09EH
JC ?C0040
?C0042:
MOV R7,#070H
SJMP ?C0041
?C0040:
?C0041:
; }
; SOURCE LINE # 281
?C0043:
RET
; END OF _bri_read
;
; unsigned char cont_read(unsigned char addr)
RSEG ?PR?_cont_read?MAIN
_cont_read:
USING 0
; SOURCE LINE # 283
;---- Variable 'addr?1075' assigned to Register 'R7' ----
; {
; SOURCE LINE # 284
; unsigned char c = simple_read(addr);
; SOURCE LINE # 285
LCALL _simple_read
;---- Variable 'c?1076' assigned to Register 'R7' ----
; return check_value(c, CONT_OFF, CONT_RANGE);
; SOURCE LINE # 286
MOV A,R7
CLR C
SUBB A,#042H
JC ?C0046
MOV A,R7
SETB C
SUBB A,#09EH
JC ?C0044
?C0046:
MOV R7,#070H
SJMP ?C0045
?C0044:
?C0045:
; }
; SOURCE LINE # 287
?C0047:
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -