📄 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 0013 C0EC CALL INITMCU
0106
0107 ;LDI PARM,0AH;上电延时100mS之后启动
0108 ;CALL DELAY_N_10mS
0109
0110 ;MAIN_SELFTEST:
0111 ; LDI PS2SNDH,0AH
0112 ; LDI PS2SNDL,0AH
0113 ; CALL PS2OUTB ;发送自检Pass指令
0114 ; LDA PS2RET
0115 ; BNZ MAIN_SELFTEST
0116
0117 0014 MAIN_LOOP:
0118 0014 E05A JMP MAIN_LOOP_YAOKONG
0119 0015 C240 CALL PS2INB
0120 0016 3847 LDA PS2RET
0121 0017 805A BNZ MAIN_LOOP_YAOKONG
0122
0123 0018 78A4 LDI PARM,1
0124 0019 C102 CALL DELAY_N_mS
0125
0126 001A 3840 LDA PS2INH
0127 001B 3C3A STA CMP0H
0128 001C 3841 LDA PS2INL
0129 001D 3C3B STA CMP0L
0130
0131 001E 7F3C LDI CMP1H,0EH
0132 001F 7F3D LDI CMP1L,0EH
0133 0020 C0FC CALL BYTECMP
0134 0021 8027 BNZ MAIN_LOOP_CMD_1
0135 ;EE指令 ECHO
0136 0022 7F43 LDI PS2SNDH,0EH
0137 0023 7F44 LDI PS2SNDL,0EH
0138 0024 C1B1 CALL PS2OUTB ;发送响应指令
0139
0140 0025 FFFF NOP
0141
0142 0026 E014 JMP MAIN_LOOP
0143
0144 0027 MAIN_LOOP_CMD_1:
0145 0027 7FBC LDI CMP1H,0FH
0146 0028 793D LDI CMP1L,02H
0147 0029 C0FC CALL BYTECMP
0148 002A 803A BNZ MAIN_LOOP_CMD_2
0149 ;F2指令 ID
0150 002B 7FC3 LDI PS2SNDH,0FH
0151 002C 7D44 LDI PS2SNDL,0AH
0152 002D C1B1 CALL PS2OUTB ;发送响应指令
0153
0154 002E 78A4 LDI PARM,1
0155 002F C102 CALL DELAY_N_mS
0156
0157 0030 7D43 LDI PS2SNDH,0AH
0158 0031 7DC4 LDI PS2SNDL,0BH
0159 0032 C1B1 CALL PS2OUTB ;ID BYTE1
0160
0161 0033 78A4 LDI PARM,1
0162 0034 C102 CALL DELAY_N_mS
0163
0164 0035 7C43 LDI PS2SNDH,08H
0165 0036 79C4 LDI PS2SNDL,03H
0166 0037 C1B1 CALL PS2OUTB ;ID BYTE2
0167
0168 0038 FFFF NOP
0169
0170 0039 E014 JMP MAIN_LOOP
0171 003A MAIN_LOOP_CMD_2:
0172 003A 7FBC LDI CMP1H,0FH
0173 003B 7FBD LDI CMP1L,0FH
0174 003C C0FC CALL BYTECMP
0175
0176 003D 804A BNZ MAIN_LOOP_CMD_3
0177 003E 78A4 LDI PARM,1
0178 003F C102 CALL DELAY_N_mS
0179 0040 7FC3 LDI PS2SNDH,0FH
0180 0041 7D44 LDI PS2SNDL,0AH
0181 0042 C1B1 CALL PS2OUTB ;发送响应指令
0182
0183 0043 78A4 LDI PARM,1
0184 0044 C102 CALL DELAY_N_mS
0185
0186 0045 7D43 LDI PS2SNDH,0AH
0187 0046 7D44 LDI PS2SNDL,0AH
0188 0047 C1B1 CALL PS2OUTB
0189
0190 0048 FFFF NOP
0191 0049 E014 JMP MAIN_LOOP
0192
0193 004A MAIN_LOOP_CMD_3:
0194 004A 7FBC LDI CMP1H,0FH
0195 004B 79BD LDI CMP1L,03H
0196 004C C0FC CALL BYTECMP
0197
0198 004D 8055 BNZ MAIN_LOOP_CMD_ALL
0199 004E 78A4 LDI PARM,1
0200 004F C102 CALL DELAY_N_mS
0201
0202 0050 7FC3 LDI PS2SNDH,0FH
0203 0051 7D44 LDI PS2SNDL,0AH
0204 0052 C1B1 CALL PS2OUTB ;发送响应指令
0205 0053 FFFF NOP
0206 0054 E014 JMP MAIN_LOOP
0207 0055 MAIN_LOOP_CMD_ALL:
0208 ;不解释的指令全部返回FA
0209 0055 7FC3 LDI PS2SNDH,0FH
0210 0056 7D44 LDI PS2SNDL,0AH
0211 0057 C1B1 CALL PS2OUTB ;发送响应指令
0212
0213 0058 FFFF NOP
0214
0215 0059 E014 JMP MAIN_LOOP
0216
0217 005A MAIN_LOOP_YAOKONG:
0218 005A C140 CALL YAOKONG
0219 005B 3828 LDA IRRES,00H
0220 005C 9014 BAZ MAIN_LOOP
0221
0222 005D 50A8 SBI IRRES,01H
0223 005E 80A3 BNZ MAIN_LOOP_KEYPLAY
0224
0225 005F 3834 LDA IRD0H,00H
0226 0060 3C0E STA TBR,00H
0227 0061 3835 LDA IRD0L,00H
0228 0062 C2FF CALL TABCH-1
0229 0063 3C44 STA PS2SNDL,00H
0230 0064 380E LDA TBR,00H
0231 0065 3C43 STA PS2SNDH,00H
0232
0233 0066 MAIN_LOOP_YK_1:
0234 0066 C1B1 CALL PS2OUTB
0235 0067 3847 LDA PS2RET
0236 0068 8066 BNZ MAIN_LOOP_YK_1
0237
0238
0239 0069 78A4 LDI PARM,1
0240 006A C102 CALL DELAY_N_mS
0241
0242 006B 5743 SBI PS2SNDH,0EH
0243 006C 8814 BNC MAIN_LOOP
0244
0245 006D 3834 LDA IRD0H,00H
0246 006E 3C0E STA TBR,00H
0247 006F 4B8E ADIM TBR,FNOFF
0248 0070 3835 LDA IRD0L,00H
0249 0071 C36F CALL TABFN-1
0250 0072 3C44 STA PS2SNDL,00H
0251 0073 380E LDA TBR,00H
0252 0074 3C43 STA PS2SNDH,00H
0253
0254 0075 MAIN_LOOP_YK_2:
0255 0075 C1B1 CALL PS2OUTB
0256 0076 3847 LDA PS2RET
0257 0077 8075 BNZ MAIN_LOOP_YK_2
0258
0259 0078 78A4 LDI PARM,1
0260 0079 C102 CALL DELAY_N_mS
0261
0262 007A MAIN_LOOP_YK_3:
0263 007A 7D24 LDI PARM,0AH
0264 007B C102 CALL DELAY_N_mS
0265
0266 007C 3834 LDA IRD0H,00H
0267 007D 3C0E STA TBR,00H
0268 007E 3835 LDA IRD0L,00H
0269 007F C2FF CALL TABCH-1
0270 0080 3C44 STA PS2SNDL,00H
0271 0081 380E LDA TBR,00H
0272 0082 3C43 STA PS2SNDH,00H
0273
0274 0083 5743 SBI PS2SNDH,0EH
0275 0084 808E BNZ MAIN_LOOP_YK_5
0276 0085 5044 SBI PS2SNDL,00H
0277 0086 808E BNZ MAIN_LOOP_YK_5
0278 ;若发送码为E0H,这样发送
0279
0280 0087 7F43 LDI PS2SNDH,0EH
0281 0088 7844 LDI PS2SNDL,00H
0282 0089 MAIN_LOOP_YK_4_1:
0283 0089 C1B1 CALL PS2OUTB
0284 008A 3847 LDA PS2RET
0285 008B 8089 BNZ MAIN_LOOP_YK_4_1
0286
0287 008C 78A4 LDI PARM,01H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -