📄 main.s
字号:
.dbline 186
; } while (rl & StatusBUSY);
tst [_rl],-128
jnz L8
.dbline -2
.dbline 188
;
; }
L7:
.dbline 0 ; func end
ret
.dbend
.dbfunc e CS1_select _CS1_select fV
_CS1_select::
.dbline -1
.dbline 192
;
; // Controller #1
; void CS1_select ()
; {
.dbline 193
; Ctrl &= ~CS2;
and REG[0x4],-17
.dbline 194
; Ctrl |= CS1;
or REG[0x4],8
.dbline -2
.dbline 195
; }
L11:
.dbline 0 ; func end
ret
.dbend
.dbfunc e CS2_select _CS2_select fV
_CS2_select::
.dbline -1
.dbline 199
;
; // Controller #2
; void CS2_select ()
; {
.dbline 200
; Ctrl &= ~CS1;
and REG[0x4],-9
.dbline 201
; Ctrl |= CS2;
or REG[0x4],16
.dbline -2
.dbline 202
; }
L12:
.dbline 0 ; func end
ret
.dbend
.dbfunc e cs_l _cs_l fV
_cs_l::
.dbline -1
.dbline 205
;
; //duplicate
; void cs_l () {
.dbline 206
; CS1_select ();
xcall _CS1_select
.dbline -2
.dbline 207
; }
L13:
.dbline 0 ; func end
ret
.dbend
.dbfunc e cs_r _cs_r fV
_cs_r::
.dbline -1
.dbline 209
;
; void cs_r () {
.dbline 210
; CS2_select ();
xcall _CS2_select
.dbline -2
.dbline 211
; }
L14:
.dbline 0 ; func end
ret
.dbend
.dbfunc e Write _Write fV
_Write::
.dbline -1
.dbline 216
;
; // read write A0_instruction A0_Data
;
; void Write ()
; {
.dbline 217
; Ctrl |= WR;
or REG[0x4],-128
.dbline 218
; Ctrl &= ~WR;
and REG[0x4],127
.dbline -2
.dbline 219
; }
L15:
.dbline 0 ; func end
ret
.dbend
.dbfunc e Read _Read fV
_Read::
.dbline -1
.dbline 222
;
; void Read ()
; {
.dbline 223
; Ctrl &= ~WR;
and REG[0x4],127
.dbline 224
; Ctrl |= WR;
or REG[0x4],-128
.dbline -2
.dbline 225
; }
L16:
.dbline 0 ; func end
ret
.dbend
.dbfunc e A0_Instruction _A0_Instruction fV
_A0_Instruction::
.dbline -1
.dbline 228
;
; void A0_Instruction ()
; {
.dbline 229
; Ctrl |= A0;
or REG[0x4],4
.dbline 230
; Ctrl &= ~A0;
and REG[0x4],-5
.dbline -2
.dbline 231
; }
L17:
.dbline 0 ; func end
ret
.dbend
.dbfunc e A0_Data _A0_Data fV
_A0_Data::
.dbline -1
.dbline 234
;
; void A0_Data ()
; {
.dbline 235
; Ctrl &= ~A0;
and REG[0x4],-5
.dbline 236
; Ctrl |= A0;
or REG[0x4],4
.dbline -2
.dbline 237
; }
L18:
.dbline 0 ; func end
ret
.dbend
.dbfunc e PRT2_HZ _PRT2_HZ fV
_PRT2_HZ::
.dbline -1
.dbline 253
;
;
; // ports operate
;
; // DM2 DM1 DM0 Mode
; // 0 0 0 Resistive Pull Down
; // 0 0 1 Strong Drive
; // 0 1 0 High Impedence
; // 0 1 1 Resistive Pull Up
; // 1 0 0 Open Drain, Drives High
; // 1 0 1 Slow Strong Drive
; // 1 1 0 High Impedence Analog
; // 1 1 1 Open Drain, Drives Low
;
;
; void PRT2_HZ () {
.dbline 254
; M8C_SetBank1;
or F, 10h
.dbline 255
; PRT2DM0 &= 0b00000000;
or F,0x10 ; iopage = 1
mov REG[0x8],0
.dbline 256
; PRT2DM1 |= 0b11111111;
or REG[0x9],-1
and F,0xEF ; iopage = 0
.dbline 257
; M8C_SetBank0;
and F, EFh
.dbline 258
; PRT2DM2 &= 0b00000000;
mov REG[0xb],0
.dbline -2
.dbline 259
; }
L19:
.dbline 0 ; func end
ret
.dbend
.dbfunc e PRT2_PD _PRT2_PD fV
_PRT2_PD::
.dbline -1
.dbline 261
;
; void PRT2_PD () {
.dbline 262
; M8C_SetBank1;
or F, 10h
.dbline 263
; PRT2DM0 &= 0b00000000;
or F,0x10 ; iopage = 1
mov REG[0x8],0
.dbline 264
; PRT2DM1 &= 0b00000000;
mov REG[0x9],0
and F,0xEF ; iopage = 0
.dbline 265
; M8C_SetBank0;
and F, EFh
.dbline 266
; PRT2DM2 &= 0b00000000;
mov REG[0xb],0
.dbline -2
.dbline 267
; }
L20:
.dbline 0 ; func end
ret
.dbend
.dbfunc e test_logo _test_logo fV
; a22 -> X+0
_test_logo::
.dbline -1
push X
mov X,SP
add SP,1
.dbline 270
;
;
; void test_logo(){
.dbline 273
; BYTE a22;
;
; if (x<= 60){
cmp [_x],60
jz X0
jnc L22
X0:
.dbline 273
.dbline 274
; cs_l();
xcall _cs_l
.dbline 275
; a22 = x;
mov A,[_x]
mov [X+0],A
.dbline 276
; }
xjmp L23
L22:
.dbline 277
; else {
.dbline 278
; cs_r();
xcall _cs_r
.dbline 279
; a22=(x-61);
mov A,[_x]
sub A,61
mov [X+0],A
.dbline 280
; }
L23:
.dbline 283
;
;
; yByte = y ;//>> 3;
mov [_yByte],[_y]
.dbline 284
; bitnum = y & 0x07;
mov A,[_y]
and A,7
mov [_bitnum],A
.dbline 285
; bitmask = l_mask_array[bitnum];
mov [__r1],[_bitnum]
mov [__r0],0
add [__r1],<_l_mask_array
adc [__r0],>_l_mask_array
mov A,[__r0]
push X
mov X,[__r1]
romx
pop X
mov [_bitmask],A
.dbline 288
;
;
; Data = ColumnAdressSet | a22;
mov A,[X+0]
mov REG[0x8],A
.dbline 289
; write_instruction ();
xcall _write_instruction
.dbline 291
;
; Data = PageAddressSet | yByte;
mov A,[_yByte]
or A,-72
mov REG[0x8],A
.dbline 292
; write_instruction ();
xcall _write_instruction
.dbline 294
;
; Data = DisplayStartLine;
mov REG[0x8],-64
.dbline 295
; write_instruction ();
xcall _write_instruction
.dbline 297
;
; Data = psoc_bmp[str];
mov A,[_str+1]
add A,<_psoc_bmp
mov [__r1],A
mov A,[_str]
adc A,>_psoc_bmp
push X
mov X,[__r1]
romx
pop X
mov REG[0x8],A
.dbline 299
;
; write_data ();
xcall _write_data
.dbline -2
.dbline 302
;
;
; }
L21:
add SP,-1
pop X
.dbline 0 ; func end
ret
.dbsym l a22 0 c
.dbend
.dbfunc e test_PSoC _test_PSoC fV
; st -> X+0
_test_PSoC::
.dbline -1
push X
mov X,SP
add SP,1
.dbline 304
;
; void test_PSoC(){
.dbline 306
; BYTE st;
; str=0;
mov [_str+1],0
mov [_str],0
.dbline 307
mov [_x],0
xjmp L28
L25:
.dbline 307
; for (x=0;x<122;x++){
.dbline 309
mov [X+0],0
xjmp L32
L29:
.dbline 309
.dbline 310
mov A,[X+0]
mov [_y],A
.dbline 312
xcall _test_logo
.dbline 313
inc [_str+1]
adc [_str],0
.dbline 314
L30:
.dbline 309
inc [X+0]
L32:
.dbline 309
cmp [X+0],4
jz X1
jc L29
X1:
.dbline 316
L26:
.dbline 307
inc [_x]
L28:
.dbline 307
cmp [_x],122
jz X2
jc L25
X2:
.dbline -2
.dbline 319
;
; for (st=0;st<4;st++) {
; y=st;
;
; test_logo();
; str++;
; }
;
; }
;
;
; }
L24:
add SP,-1
pop X
.dbline 0 ; func end
ret
.dbsym l st 0 c
.dbend
.dbfunc e display _display fV
_display::
.dbline -1
.dbline 324
;
;
; //enable lcd
;
; void display() {
.dbline 325
; Data = Display_OFF;
mov REG[0x8],-82
.dbline 326
; write_instruction ();
xcall _write_instruction
.dbline 327
; Ctrl &= ~CS1;
and REG[0x4],-9
.dbline 328
; Ctrl &= ~CS2;
and REG[0x4],-17
.dbline 329
; Data = Display_ON;
mov REG[0x8],-81
.dbline 330
; write_instruction ();
xcall _write_instruction
.dbline -2
.dbline 331
; }
L33:
.dbline 0 ; func end
ret
.dbend
.dbfunc e delay _delay fV
; i -> X+0
; delay_input -> X-5
_delay::
.dbline -1
push X
mov X,SP
add SP,2
.dbline 337
;
;
;
;
; void delay (INT delay_input)
; {
.dbline 339
mov [X+1],0
mov [X+0],0
xjmp L38
L35:
.dbline 339
L36:
.dbline 339
inc [X+1]
adc [X+0],0
L38:
.dbline 339
; INT i;
; for (i=0; i<delay_input; i++) ;
mov A,[X+0]
xor A,-128
mov [__rY],A
mov A,[X-5]
xor A,-128
mov [__rZ],A
mov [__rX],0
mov A,[X+1]
sub A,[X-4]
or [__rX],A
mov A,[__rY]
sbb A,[__rZ]
or [__rX],A
jc L35
X3:
.dbline -2
.dbline 340
; }
L34:
add SP,-2
pop X
.dbline 0 ; func end
ret
.dbsym l i 0 I
.dbsym l delay_input -5 I
.dbend
.dbfunc e ports_init _ports_init fV
_ports_init::
.dbline -1
.dbline 343
;
;
; void ports_init () {
.dbline 345
; // configure reset pin PD
; M8C_SetBank1;
or F, 10h
.dbline 346
; PRT0DM0 &= ~bit0;
or F,0x10 ; iopage = 1
and REG[ 0],-2
.dbline 347
; PRT0DM1 &= ~bit0;
and REG[0x1],-2
and F,0xEF ; iopage = 0
.dbline 348
; M8C_SetBank0;
and F, EFh
.dbline 349
; PRT0DM2 &= ~bit0;
and REG[0x3],-2
.dbline 352
;
; // configure P1 pins PD
; M8C_SetBank1;
or F, 10h
.dbline 353
; PRT1DM0 &= 0b00000000;
or F,0x10 ; iopage = 1
mov REG[0x4],0
.dbline 354
; PRT1DM1 &= 0b00000000;
mov REG[0x5],0
and F,0xEF ; iopage = 0
.dbline 355
; M8C_SetBank0;
and F, EFh
.dbline 356
; PRT1DM2 &= 0b00000000;
mov REG[0x7],0
.dbline 359
;
; // configure P2 pins PD
; M8C_SetBank1;
or F, 10h
.dbline 360
; PRT2DM0 &= 0b00000000;
or F,0x10 ; iopage = 1
mov REG[0x8],0
.dbline 361
; PRT2DM1 &= 0b00000000;
mov REG[0x9],0
and F,0xEF ; iopage = 0
.dbline 362
; M8C_SetBank0;
and F, EFh
.dbline 363
; PRT2DM2 &= 0b00000000;
mov REG[0xb],0
.dbline -2
.dbline 364
; }
L39:
.dbline 0 ; func end
ret
.dbend
.area bss(ram, con, rel)
.dbfile ./main.c
_j::
.blkb 2
.dbsym e j _j I
_i::
.blkb 2
.dbsym e i _i I
_str::
.blkb 2
.dbsym e str _str i
_yByte::
.blkb 1
.dbsym e yByte _yByte c
_bitmask::
.blkb 1
.dbsym e bitmask _bitmask c
_bitnum::
.blkb 1
.dbsym e bitnum _bitnum c
_y::
.blkb 1
.dbsym e y _y c
_x::
.blkb 1
.dbsym e x _x c
_rl::
.blkb 1
.dbsym e rl _rl c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -