📄 main.lis
字号:
001F .dbline 64
001F ; left_button = UP;
001F 550700 mov [_left_button],0
0022 80DE xjmp L7
0024 L6:
0024 .dbline 67
0024 ;
0024 ; while (1)
0024 ; {
0024 .dbline 68
0024 ; move = ((P0DATA & 0x04) ? STOP : GO); // P0.2 Up or Down
0024 490004 tst REG[ 0],4
0027 A009 jz L10
0029 560100 mov [X+1],0
002C 560000 mov [X+0],0
002F 8007 xjmp L11
0031 L10:
0031 560101 mov [X+1],1
0034 560000 mov [X+0],0
0037 L11:
0037 5201 mov A,[X+1]
0039 5306 mov [_move],A
003B .dbline 69
003B ; left_button = ((P0DATA & 0x08) ? UP : DOWN); // P0.3 Up or Down
003B 490008 tst REG[ 0],8
003E A009 jz L13
0040 560300 mov [X+3],0
0043 560200 mov [X+2],0
0046 8007 xjmp L14
0048 L13:
0048 560301 mov [X+3],1
004B 560200 mov [X+2],0
004E L14:
004E 5203 mov A,[X+3]
0050 5307 mov [_left_button],A
0052 .dbline 70
0052 ; if (move == STOP)
0052 3C0600 cmp [_move],0
0055 B006 jnz L15
0057 .dbline 71
0057 ; { P0DATA |= 0x20; // P0.5 high (off)
0057 .dbline 71
0057 430020 or REG[ 0],32
005A .dbline 72
005A 8004 xjmp L16
005C L15:
005C .dbline 72
005C ; }else {
005C .dbline 73
005C ; P0DATA &= ~(0x20); // P0.5 low (on)
005C 4100DF and REG[ 0],-33
005F .dbline 74
005F ; }
005F L16:
005F .dbline 75
005F ; if (left_button == UP)
005F 3C0700 cmp [_left_button],0
0062 B006 jnz L17
0064 .dbline 76
0064 ; { P0DATA |= 0x40; // P0.6 high (off)
0064 .dbline 76
0064 430040 or REG[ 0],64
0067 .dbline 77
0067 8004 xjmp L18
0069 L17:
0069 .dbline 77
0069 ; }else{
0069 .dbline 78
0069 ; P0DATA &= ~(0x40); // P0.6 low (on)
0069 4100BF and REG[ 0],-65
006C .dbline 79
006C ; }
006C L18:
006C .dbline 81
006C ;
006C ; if (move == GO)
006C 3C0601 cmp [_move],1
006F B091 jnz L19
0071 .dbline 82
0071 ; {
0071 .dbline 84
0071 ; // Check to see if the endpoint is empty
0071 ; if (USB_bGetEPState(1) == IN_BUFFER_EMPTY)
0071 10 push X
0072 5001 mov A,1
0074 7C0000 xcall _USB_bGetEPState
0077 20 pop X
0078 3901 cmp A,1
007A B086 jnz L21
007C .dbline 85
007C ; {
007C .dbline 86
007C ; a_ram[0] = ((left_button == DOWN) ? *p_data : *p_data & ~(LB_DOWN));
007C 3C0701 cmp [_left_button],1
007F B012 jnz L24
0081 5F0001 mov [__r1],[_p_data+1]
0084 5100 mov A,[_p_data]
0086 10 push X
0087 5800 mov X,[__r1]
0089 28 romx
008A 20 pop X
008B 5405 mov [X+5],A
008D 560400 mov [X+4],0
0090 8012 xjmp L25
0092 L24:
0092 5F0001 mov [__r1],[_p_data+1]
0095 5100 mov A,[_p_data]
0097 10 push X
0098 5800 mov X,[__r1]
009A 28 romx
009B 20 pop X
009C 21FE and A,-2
009E 5405 mov [X+5],A
00A0 560400 mov [X+4],0
00A3 L25:
00A3 5205 mov A,[X+5]
00A5 5302 mov [_a_ram],A
00A7 .dbline 87
00A7 ; p_data++;
00A7 7601 inc [_p_data+1]
00A9 0E0000 adc [_p_data],0
00AC .dbline 88
00AC ; a_ram[1] = *p_data; p_data++;
00AC 5F0001 mov [__r1],[_p_data+1]
00AF 5100 mov A,[_p_data]
00B1 10 push X
00B2 5800 mov X,[__r1]
00B4 28 romx
00B5 20 pop X
00B6 5303 mov [_a_ram+1],A
00B8 .dbline 88
00B8 7601 inc [_p_data+1]
00BA 0E0000 adc [_p_data],0
00BD .dbline 89
00BD ; a_ram[2] = *p_data; p_data++;
00BD 5F0001 mov [__r1],[_p_data+1]
00C0 5100 mov A,[_p_data]
00C2 10 push X
00C3 5800 mov X,[__r1]
00C5 28 romx
00C6 20 pop X
00C7 5304 mov [_a_ram+2],A
00C9 .dbline 89
00C9 7601 inc [_p_data+1]
00CB 0E0000 adc [_p_data],0
00CE .dbline 90
00CE ; a_ram[3] = *p_data; p_data++;
00CE 5F0001 mov [__r1],[_p_data+1]
00D1 5100 mov A,[_p_data]
00D3 10 push X
00D4 5800 mov X,[__r1]
00D6 28 romx
00D7 20 pop X
00D8 5305 mov [_a_ram+3],A
00DA .dbline 90
00DA 7601 inc [_p_data+1]
00DC 0E0000 adc [_p_data],0
00DF .dbline 91
00DF ; if (p_data > &a_logo_vectors[sizeof(a_logo_vectors) - 1])
00DF 50EF mov A,<_a_logo_vectors+239
00E1 1201 sub A,[_p_data+1]
00E3 50EF mov A,>_a_logo_vectors+239
00E5 1A00 sbb A,[_p_data]
00E7 D007 jnc L29
00E9 X1:
00E9 .dbline 92
00E9 ; p_data = &a_logo_vectors[0];
00E9 550100 mov [_p_data+1],<_a_logo_vectors
00EC 550000 mov [_p_data],>_a_logo_vectors
00EF L29:
00EF .dbline 93
00EF ; USB_LoadEP(1, &a_ram[0], 3);
00EF 550001 mov [_USB_APIEPNumber],1
00F2 .dbline 93
00F2 550003 mov [_USB_APICount],3
00F5 .dbline 93
00F5 10 push X
00F6 5002 mov A,>_a_ram
00F8 08 push A
00F9 5002 mov A,<_a_ram
00FB 5C mov X,A
00FC 18 pop A
00FD 7C0000 xcall _USB_XLoadEP
0100 20 pop X
0101 .dbline 94
0101 ; }
0101 L21:
0101 .dbline 95
0101 ; }
0101 L19:
0101 .dbline 96
0101 L7:
0101 .dbline 66
0101 8F22 xjmp L6
0103 X0:
0103 .dbline -2
0103 .dbline 97
0103 ; }
0103 ; }
0103 L2:
0103 38FA add SP,-6
0105 20 pop X
0106 .dbline 0 ; func end
0106 8FFF jmp .
0108 .dbend
.area bss(ram, con, rel)
0000 .dbfile ./main.c
0000 _p_data::
0000 .blkb 2
0002 .dbsym e p_data _p_data pc
0002 _a_ram::
0002 .blkb 4
0006 .dbsym e a_ram _a_ram A[4:4]c
0006 _move::
0006 .blkb 1
0007 .dbsym e move _move c
0007 _left_button::
0007 .blkb 1
0008 .dbsym e left_button _left_button c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -