📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile ./main.c
0000 .dbfunc e TD_init _TD_init fV
0000 _TD_init::
0000 .dbline -1
0000 .dbline 54
0000 ; // Switch S1 is connected to P0.2 (Down=Start Movement/Up=Stop Movement)
0000 ; // Switch S2 is connected to P0.3 (Down=Left Button Down/Up=Left Button Up)
0000 ; // Switch S3 is connected to P0.4 (Not used)
0000 ; //
0000 ; // LED D1 is connected to P0.5 (Tracks S1: On=Down/Off=Up)
0000 ; // LED D2 is connected to P0.6 (Tracks S2: On=Down/Off=Up)
0000 ; // LED D3 is connected to P1.3 (Not used)
0000 ; //
0000 ; //----------------------------------------------------------------------------
0000 ;
0000 ; #include <m8c.h> // part specific constants and macros
0000 ; #include "PSoCAPI.h" // PSoC API definitions for all User Modules
0000 ;
0000 ; // Constant for button handling
0000 ; #define GO 1
0000 ; #define STOP 0
0000 ; #define UP 0
0000 ; #define DOWN 1
0000 ; #define NULL 0
0000 ; #define FULL 1
0000 ; // Constants for the mouse reports
0000 ; #define STEP_SIZE 1
0000 ; #define X_SIGN 1
0000 ; #define Y_SIGN 1
0000 ; #define Cap_L_UP 1
0000 ; #define Cap_L_DOWN 0
0000 ; #define Shift_UP 1
0000 ; #define Shift_DOWN 0
0000 ; // Movement Vectors for the letters U, S, and B
0000 ;
0000 ; /*#define STEP(ctl,NULL,char1,char2,char3,char4,char5,char6) ( ctl ), \
0000 ; (NULL),(char1),(char2),(char3),(char4),(char5),(char6),0
0000 ;
0000 ; const BYTE a_logo_vectors[] =
0000 ; {
0000 ; STEP(NULL, NULL,0x00,0x00,0x00,0x00,0x00,0x97), // ;1
0000 ; STEP(Shift_DOWN,NULL,0x00,0x00,0x00,0x00,0x00,0x97), // ;1
0000 ; };
0000 ;
0000 ; void delay(unsigned char ch)
0000 ; {
0000 ; unsigned char couter;
0000 ; while(ch)
0000 ; {
0000 ; couter=0xff;
0000 ; while(couter)
0000 ; couter--;
0000 ; ch--;
0000 ; }
0000 ; return;
0000 ; }
0000 ; */
0000 ; void TD_init()
0000 ; {
0000 .dbline 55
0000 ; M8C_EnableGInt;
0000 7101 or F, 01h
0002
0002 .dbline 62
0002 ;
0002 ; // USB_INTERFACE_0_OUT_RPT_DATA[0] = 0;
0002 ;
0002 ; // OSC_CR0 &= ~OSC_CR0_CPU;
0002 ; // OSC_CR0 |= OSC_CR0_CPU_24MHz;
0002 ;
0002 ; USB_Start(0);
0002 10 push X
0003 5000 mov A,0
0005 7C0000 xcall _USB_Start
0008 20 pop X
0009 L3:
0009 .dbline 63
0009 L4:
0009 .dbline 63
0009 ; while(USB_bGetConfiguration() == 0);
0009 10 push X
000A 7C0000 xcall _USB_bGetConfiguration
000D 20 pop X
000E 3900 cmp A,0
0010 AFF8 jz L3
0012 .dbline -2
0012 .dbline 66
0012 ;
0012 ; // while(USB_INTERFACE_0_OUT_RPT_DATA[0] == 0);
0012 ; }
0012 L2:
0012 .dbline 0 ; func end
0012 7F ret
0013 .dbend
.area data(ram, con, rel)
0000 .dbfile ./main.c
0000 _a_ram::
0000 .blkb 2
.area idata
0000 0000 .byte 0,0
.area data(ram, con, rel)
0000 .dbfile ./main.c
0000 .blkb 2
.area idata
0002 5300 .byte 'S,0
.area data(ram, con, rel)
0000 .dbfile ./main.c
0000 .blkb 2
.area idata
0004 0000 .byte 0,0
.area data(ram, con, rel)
0000 .dbfile ./main.c
0000 .blkb 2
.area idata
0006 0000 .byte 0,0
.area data(ram, con, rel)
0000 .dbfile ./main.c
0000 .dbsym e a_ram _a_ram A[8:8]c
0000 _b_ram::
0000 .blkb 2
.area idata
0008 0000 .byte 0,0
.area data(ram, con, rel)
0000 .dbfile ./main.c
0000 .blkb 2
.area idata
000A 4700 .byte 'G,0
.area data(ram, con, rel)
0000 .dbfile ./main.c
0000 .blkb 2
.area idata
000C 0000 .byte 0,0
.area data(ram, con, rel)
0000 .dbfile ./main.c
0000 .blkb 2
.area idata
000E 0000 .byte 0,0
.area data(ram, con, rel)
0000 .dbfile ./main.c
0000 .dbsym e b_ram _b_ram A[8:8]c
0000 _c_ram::
0000 .blkb 2
.area idata
0010 0000 .byte 0,0
.area data(ram, con, rel)
0000 .dbfile ./main.c
0000 .blkb 2
.area idata
0012 0000 .byte 0,0
.area data(ram, con, rel)
0000 .dbfile ./main.c
0000 .blkb 2
.area idata
0014 0000 .byte 0,0
.area data(ram, con, rel)
0000 .dbfile ./main.c
0000 .blkb 2
.area idata
0016 0000 .byte 0,0
.area data(ram, con, rel)
0000 .dbfile ./main.c
0000 .dbsym e c_ram _c_ram A[8:8]c
0000 _d_ram::
0000 .blkb 2
.area idata
0018 0000 .byte 0,0
.area data(ram, con, rel)
0000 .dbfile ./main.c
0000 .blkb 2
.area idata
001A 3900 .byte 57,0
.area data(ram, con, rel)
0000 .dbfile ./main.c
0000 .blkb 2
.area idata
001C 0000 .byte 0,0
.area data(ram, con, rel)
0000 .dbfile ./main.c
0000 .blkb 2
.area idata
001E 0000 .byte 0,0
.area data(ram, con, rel)
0000 .dbfile ./main.c
0000 .dbsym e d_ram _d_ram A[8:8]c
.area text(rom, con, rel)
0013 .dbfile ./main.c
0013 .dbfunc e main _main fV
0013 _main::
0013 .dbline -1
0013 10 push X
0014 4F mov X,SP
0015 3808 add SP,8
0017 .dbline 77
0017 ; //
0017 ; BYTE left_button;
0017 ; BYTE move,right_button;
0017 ; BYTE pre_move,pre_LB_down,pre_RB_down;
0017 ; BYTE a_ram[8]={0x00, 0x00,0x53,0x00,0x00,0x00,0x00,0x00};
0017 ; BYTE b_ram[8]={0x00, 0x00,0x47,0x00,0x00,0x00,0x00,0x00};
0017 ; BYTE c_ram[8]={0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00};
0017 ; BYTE d_ram[8]={0x00, 0x00,0x39,0x00,0x00,0x00,0x00,0x00};
0017 ; //unsigned char *p_data;
0017 ; void main()
0017 ; {
0017 .dbline 78
0017 ; TD_init();
0017 9FE7 xcall _TD_init
0019 .dbline 82
0019 ;
0019 ; //p_data = &a_logo_vectors[0]; // Point to the first of the logo vectors
0019 ;
0019 ; move = STOP;
0019 550400 mov [_move],0
001C .dbline 83
001C ; left_button = UP;
001C 550500 mov [_left_button],0
001F .dbline 84
001F ; right_button= UP;
001F 550300 mov [_right_button],0
0022 .dbline 85
0022 ; pre_move=UP;
0022 550200 mov [_pre_move],0
0025 .dbline 86
0025 ; pre_LB_down=UP;
0025 550100 mov [_pre_LB_down],0
0028 .dbline 87
0028 ; pre_RB_down=UP;
0028 550000 mov [_pre_RB_down],0
002B .dbline 89
002B ;
002B ; P0DATA |= (0x20); // P0.5 low (on)
002B 430020 or REG[ 0],32
002E .dbline 90
002E ; P0DATA |= (0x40); // P0.6 low (on)
002E 430040 or REG[ 0],64
0031 .dbline 91
0031 ; P1DATA |= (0x08); // P1.3 low (on)
0031 430108 or REG[0x1],8
0034 814A xjmp L8
0036 L7:
0036 .dbline 94
0036 ;
0036 ; while (1)
0036 ; {
0036 .dbline 95
0036 ; move = ((P0DATA & 0x04) ? STOP : GO); // P0.2 Up or Down
0036 490004 tst REG[ 0],4
0039 A009 jz L11
003B 560100 mov [X+1],0
003E 560000 mov [X+0],0
0041 8007 xjmp L12
0043 L11:
0043 560101 mov [X+1],1
0046 560000 mov [X+0],0
0049 L12:
0049 5201 mov A,[X+1]
004B 5304 mov [_move],A
004D .dbline 96
004D ; left_button = ((P0DATA & 0x08) ? UP : DOWN); // P0.3 Up or Down
004D 490008 tst REG[ 0],8
0050 A009 jz L14
0052 560300 mov [X+3],0
0055 560200 mov [X+2],0
0058 8007 xjmp L15
005A L14:
005A 560301 mov [X+3],1
005D 560200 mov [X+2],0
0060 L15:
0060 5203 mov A,[X+3]
0062 5305 mov [_left_button],A
0064 .dbline 97
0064 ; right_button = ((P0DATA & 0x10) ? UP : DOWN); // P0.4 Up or Down
0064 490010 tst REG[ 0],16
0067 A009 jz L17
0069 560500 mov [X+5],0
006C 560400 mov [X+4],0
006F 8007 xjmp L18
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -