📄 t6620.lst
字号:
0001 ;ProgramTEST for SH66P20
0002
0003 ; Date 2003.09.25
0004
0005 ; AuthorWilliam Guo
0006
0007 LIST P=69P20
0008
0009 TITLE T6620
0010
0011 ; Define Symbols
0012
0013 ; 00h->1fhSystem RAM for Register 32*4bit
0014 0000 IE EQU 0
0015 0001 IRQ EQU 1
0016 0002 TM0MOD EQU 2
0017 0004 T0L EQU 4
0018 0005 T0H EQU 5
0019
0020 0008 PORTA EQU 8
0021 0009 PORTB EQU PORTA+1
0022 000A PORTC EQU PORTA+2
0023
0024 000E TBR EQU PORTA+6
0025 000F INX EQU PORTA+7
0026
0027 0010 DPTRL EQU 10H
0028 0011 DPTRM EQU DPTRL+1
0029 0012 DPTRH EQU DPTRL+2
0030
0031
0032 0016 PAOUT EQU 16H
0033 0017 PBOUT EQU PAOUT+1
0034 0018 PCOUT EQU PAOUT+2
0035 0019 PLCTL EQU 19H
0036
0037
0038 001E WDT EQU 1EH
0039
0040 ;20h->5Fh USER RAM 64*4 Bit
0041 0020 ACCBUF EQU 20H
0042 0021 CT0 EQU 21H
0043 0022 CT1 EQU 22H
0044 0023 CT2 EQU 23H
0045 0024 PARM EQU 24H
0046
0047 0025 IRCNTH EQU 25H
0048 0026 IRCNTL EQU 26H
0049 0027 IRTEMP EQU 27H
0050 0028 IRRES EQU 28H
0051
0052 0030 IRC0 EQU 30H
0053 0031 IRC1 EQU IRC0+1
0054 0032 IRC2 EQU IRC0+2
0055 0033 IRC3 EQU IRC0+3 ;4*4=16BIT Custom CODE
0056 0034 IRD0H EQU IRC0+4
0057 0035 IRD0L EQU IRC0+5 ;2*4=8BITIR Data CODE
0058 0036 IRD1H EQU IRC0+6
0059 0037 IRD1L EQU IRC0+7 ;2*4=8BITIR Invert Data CODE
0060
0061
0062 0040 PS2INH EQU 40H
0063 0041 PS2INL EQU PS2INH+1
0064 0042 PS2CNTL EQU 42H
0065 0043 PS2SNDH EQU 43H
0066 0044 PS2SNDL EQU 44H
0067 0047 PS2RET EQU 47H
0068 0048 PS2TEMP EQU 48H
0069 0049 PS2BUF EQU 49H
0070
0071 003A CMP0H EQU 3AH
0072 003B CMP0L EQU 3BH
0073 003C CMP1H EQU 3CH
0074 003D CMP1L EQU 3DH
0075 003E KEYCNT EQU 3EH
0076
0077 ;MARSK
0078 000D MPS2CLK0EQU 1101B
0079 0002 MPS2CLK1EQU 0010B
0080 000B MPS2D0 EQU 1011B
0081 0004 MPS2D1 EQU 0100B
0082 0005 KEYTHRS EQU 05H
0083 0300 TABCH EQU 0300H
0084 0370 TABFN EQU 0370H
0085 0007 FNOFF EQU 07H
0086 ; Port Assign
0087
0088 ; Program Begins
0089
0090 0000 ORG 0
0091
0092 0000 E010 JMP INI
0093
0094 0001 D400 RTNI
0095 0002 D400 RTNI
0096 0003 D400 RTNI
0097 0004 D400 RTNI
0098
0099 0010 ORG 10h
0100
0101 0010 INI:
0102 0010 FFFF NOP
0103 0011 FFFF NOP
0104 0012 FFFF NOP
0105
0106 0013 C125 CALL INITMCU
0107 0014 C131 CALL INITWDT
0108 ;LDI PARM,0AH;上电延时100mS之后启动
0109 ;CALL DELAY_N_10mS
0110
0111 ;MAIN_SELFTEST:
0112 ; LDI PS2SNDH,0AH
0113 ; LDI PS2SNDL,0AH
0114 ; CALL PS2OUTB ;发送自检Pass指令
0115 ; LDA PS2RET
0116 ; BNZ MAIN_SELFTEST
0117
0118 0015 MAIN_LOOP:
0119 0015 C134 CALL RSTWDT
0120 0016 E05C JMP MAIN_LOOP_YAOKONG
0121
0122 0017 C269 CALL PS2INB
0123 0018 3847 LDA PS2RET
0124 0019 805C BNZ MAIN_LOOP_YAOKONG
0125
0126 001A 78A4 LDI PARM,1
0127 001B C13E CALL DELAY_N_mS
0128
0129 001C 3840 LDA PS2INH
0130 001D 3C3A STA CMP0H
0131 001E 3841 LDA PS2INL
0132 001F 3C3B STA CMP0L
0133
0134 0020 7F3C LDI CMP1H,0EH
0135 0021 7F3D LDI CMP1L,0EH
0136 0022 C138 CALL BYTECMP
0137 0023 8029 BNZ MAIN_LOOP_CMD_1
0138 ;EE指令 ECHO
0139 0024 7F43 LDI PS2SNDH,0EH
0140 0025 7F44 LDI PS2SNDL,0EH
0141 0026 C1F0 CALL PS2OUTB ;发送响应指令
0142
0143 0027 FFFF NOP
0144
0145 0028 E015 JMP MAIN_LOOP
0146
0147 0029 MAIN_LOOP_CMD_1:
0148 0029 7FBC LDI CMP1H,0FH
0149 002A 793D LDI CMP1L,02H
0150 002B C138 CALL BYTECMP
0151 002C 803C BNZ MAIN_LOOP_CMD_2
0152 ;F2指令 ID
0153 002D 7FC3 LDI PS2SNDH,0FH
0154 002E 7D44 LDI PS2SNDL,0AH
0155 002F C1F0 CALL PS2OUTB ;发送响应指令
0156
0157 0030 78A4 LDI PARM,1
0158 0031 C13E CALL DELAY_N_mS
0159
0160 0032 7D43 LDI PS2SNDH,0AH
0161 0033 7DC4 LDI PS2SNDL,0BH
0162 0034 C1F0 CALL PS2OUTB ;ID BYTE1
0163
0164 0035 78A4 LDI PARM,1
0165 0036 C13E CALL DELAY_N_mS
0166
0167 0037 7C43 LDI PS2SNDH,08H
0168 0038 79C4 LDI PS2SNDL,03H
0169 0039 C1F0 CALL PS2OUTB ;ID BYTE2
0170
0171 003A FFFF NOP
0172
0173 003B E015 JMP MAIN_LOOP
0174 003C MAIN_LOOP_CMD_2:
0175 003C 7FBC LDI CMP1H,0FH
0176 003D 7FBD LDI CMP1L,0FH
0177 003E C138 CALL BYTECMP
0178
0179 003F 804C BNZ MAIN_LOOP_CMD_3
0180 0040 78A4 LDI PARM,1
0181 0041 C13E CALL DELAY_N_mS
0182 0042 7FC3 LDI PS2SNDH,0FH
0183 0043 7D44 LDI PS2SNDL,0AH
0184 0044 C1F0 CALL PS2OUTB ;发送响应指令
0185
0186 0045 78A4 LDI PARM,1
0187 0046 C13E CALL DELAY_N_mS
0188
0189 0047 7D43 LDI PS2SNDH,0AH
0190 0048 7D44 LDI PS2SNDL,0AH
0191 0049 C1F0 CALL PS2OUTB
0192
0193 004A FFFF NOP
0194 004B E015 JMP MAIN_LOOP
0195
0196 004C MAIN_LOOP_CMD_3:
0197 004C 7FBC LDI CMP1H,0FH
0198 004D 79BD LDI CMP1L,03H
0199 004E C138 CALL BYTECMP
0200
0201 004F 8057 BNZ MAIN_LOOP_CMD_ALL
0202 0050 78A4 LDI PARM,1
0203 0051 C13E CALL DELAY_N_mS
0204
0205 0052 7FC3 LDI PS2SNDH,0FH
0206 0053 7D44 LDI PS2SNDL,0AH
0207 0054 C1F0 CALL PS2OUTB ;发送响应指令
0208 0055 FFFF NOP
0209 0056 E015 JMP MAIN_LOOP
0210 0057 MAIN_LOOP_CMD_ALL:
0211 ;不解释的指令全部返回FA
0212 0057 7FC3 LDI PS2SNDH,0FH
0213 0058 7D44 LDI PS2SNDL,0AH
0214 0059 C1F0 CALL PS2OUTB ;发送响应指令
0215
0216 005A FFFF NOP
0217
0218 005B E015 JMP MAIN_LOOP
0219
0220 005C MAIN_LOOP_YAOKONG:
0221 005C C17C CALL YAOKONG
0222 005D 3828 LDA IRRES,00H
0223 005E 9015 BAZ MAIN_LOOP
0224
0225 005F 50A8 SBI IRRES,01H
0226 0060 80BE BNZ MAIN_LOOP_KEYPLAY
0227
0228 0061 3834 LDA IRD0H,00H
0229 0062 3C0E STA TBR,00H
0230 0063 3835 LDA IRD0L,00H
0231 0064 C2FF CALL TABCH-1
0232 0065 3C44 STA PS2SNDL,00H
0233 0066 380E LDA TBR,00H
0234 0067 3C43 STA PS2SNDH,00H
0235
0236 0068 MAIN_LOOP_YK_1:
0237 0068 C1F0 CALL PS2OUTB
0238 0069 3847 LDA PS2RET
0239 006A 8068 BNZ MAIN_LOOP_YK_1
0240
0241
0242 006B 78A4 LDI PARM,1
0243 006C C13E CALL DELAY_N_mS
0244
0245 006D 5743 SBI PS2SNDH,0EH
0246 006E 8815 BNC MAIN_LOOP
0247
0248 006F 3834 LDA IRD0H,00H
0249 0070 3C0E STA TBR,00H
0250 0071 4B8E ADIM TBR,FNOFF
0251 0072 3835 LDA IRD0L,00H
0252 0073 C36F CALL TABFN-1
0253 0074 3C44 STA PS2SNDL,00H
0254 0075 380E LDA TBR,00H
0255 0076 3C43 STA PS2SNDH,00H
0256
0257 0077 MAIN_LOOP_YK_2:
0258 0077 C1F0 CALL PS2OUTB
0259 0078 3847 LDA PS2RET
0260 0079 8077 BNZ MAIN_LOOP_YK_2
0261
0262 007A 78A4 LDI PARM,1
0263 007B C13E CALL DELAY_N_mS
0264
0265 007C MAIN_LOOP_YK_3:
0266 007C 7FA4 LDI PARM,0FH
0267 007D C13E CALL DELAY_N_mS
0268 007E 7FA4 LDI PARM,0FH
0269 007F C13E CALL DELAY_N_mS
0270 0080 7FA4 LDI PARM,0FH
0271 0081 C13E CALL DELAY_N_mS
0272
0273 0082 3834 LDA IRD0H,00H
0274 0083 3C0E STA TBR,00H
0275 0084 3835 LDA IRD0L,00H
0276 0085 C2FF CALL TABCH-1
0277 0086 3C44 STA PS2SNDL,00H
0278 0087 380E LDA TBR,00H
0279 0088 3C43 STA PS2SNDH,00H
0280
0281 0089 5743 SBI PS2SNDH,0EH
0282 008A 80A9 BNZ MAIN_LOOP_YK_7
0283 008B 5044 SBI PS2SNDL,00H
0284 008C 80A9 BNZ MAIN_LOOP_YK_7
0285 ;若发送码为E0H,这样发送
0286
0287 008D 7F43 LDI PS2SNDH,0EH
0288 008E 7844 LDI PS2SNDL,00H
0289 008F MAIN_LOOP_YK_4_1:
0290 008F C1F0 CALL PS2OUTB
0291 0090 3847 LDA PS2RET
0292 0091 808F BNZ MAIN_LOOP_YK_4_1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -