📄 hco00_00.asm
字号:
;
;
;
;
;
;
;
;PUBLIC SYSTEM
CRC EQU 0;1=crc,0=noncrc
MAXDDLL EQU 0H
MAXDDLH EQU 0C35H
NEGTIVE EQU 3
POSITIVE EQU -20
;DEFINE KEYS
LEFTKEY EQU 1
SUBKEY EQU 5
UPKEY EQU 7
ADDKEY EQU 0
ESC EQU 2
RHTKEY EQU 3
ENTER EQU 4
DOWNKEY EQU 6
;DEFINE LED
RDAM202 EQU 0203H
RDAS202 EQU 0207H
STAM202 EQU 0202H
STAS202 EQU 0206H
WDAM202 EQU 0201H
WDAS202 EQU 0205H
SETPAM202 EQU 0200H
SETPAS202 EQU 0204H
SETADDM202 EQU 0200H
SETADDS202 EQU 0204H
QDM202 EQU 0200H
QDS202 EQU 0204H
SHHM202 EQU 0200H
SHHS202 EQU 0204H
;DEFINE WATCHDOG
ADWDRST EQU 0400H
;DEFINE KEYBOARD
ADORDER EQU 0600H
ADLIGHTL EQU 0601H
ADLIGHTH EQU 0602H
R0 EQU 00H
ADCOM EQU 02H
HSIMOD EQU 03H
HSOTIM EQU 04H
HSITIM EQU 04H
HSOCOM EQU 06H
HSISTA EQU 06H
SBUF EQU 07H
INTMAS EQU 08H
INTPEN EQU 09H
WATCHD EQU 0AH
TIMER1 EQU 0AH
TIMER2 EQU 0CH
BAUDRA EQU 0EH
PORT0 EQU 0EH
PORT1 EQU 0FH
PORT2 EQU 10H
SPCON EQU 11H
SPSTAT EQU 11H
IOC0 EQU 15H
IOS0 EQU 15H
IOC1 EQU 16H
IOS1 EQU 16H
PAGE EQU 1AH
PAGE1 EQU 1BH
VKW1 EQU 1CH
VKW1H EQU 1DH
VKW2 EQU 1EH
VKW2H EQU 1FH
VKW3 EQU 20H
VKW3H EQU 21H
VKW4 EQU 22H
VKW4H EQU 23H
FLAGP1 EQU 24H
FLAGP2 EQU 25H
FLAGP3 EQU 26H
FLAGP4 EQU 27H
FLAGPJ EQU 28H
FLAGP5 EQU FLAGPJ
FLAGPJ1 EQU 29H
FLAGPJ2 EQU 2AH
FLAGPJ3 EQU 2BH
TIME EQU 2CH
CLOCKL EQU 2CH
TIMEH EQU 2DH
TDQ EQU 2EH
TDQL EQU 2EH
TDQH EQU 2FH
MLOOP EQU 30H
SWITI EQU 31H
SWITI1 EQU 32H
SWITI2 EQU 33H
SW1 EQU 34H
SW2 EQU 35H
SW3 EQU 36H
SW4 EQU 37H
SW5 EQU 38H
SW6 EQU 39H
CLKAX EQU 3AH
CLKAXH EQU 3BH
BLIGHT EQU 3CH
ADDRBR1 EQU 3EH
ACQAX EQU 40H
ACQAXH EQU 41H
ACQBX EQU 42H
ACQBXH EQU 43H
ACQCX EQU 44H
ACQCXL EQU 44H
ACQCXH EQU 45H
ACQDX EQU 46H
ACQDXH EQU 47H
MAX EQU 48H
MAL EQU 48H
MAXH EQU 49H
MAH EQU 49H
MBX EQU 4AH
MBL EQU 4AH
MBXH EQU 4BH
MBH EQU 4BH
MCX EQU 4CH
MCL EQU 4CH
MCXH EQU 4DH
MCH EQU 4DH
MDX EQU 4EH
MDL EQU 4EH
MDXH EQU 4FH
MEX EQU 50H
MEXH EQU 51H
MFX EQU 52H
MFXL EQU 52H
MFXH EQU 53H
MPNT EQU 54H
MPNTH EQU 55H
MCNT EQU 56H
MCNTH EQU 57H
CMAX EQU 58H
CMAXL EQU 58H
CMAH EQU 59H
CMAXH EQU 59H
CMBX EQU 5AH
CMBXL EQU 5AH
CMBH EQU 5BH
CMBXH EQU 5BH
CMCX EQU 5CH
CMCXL EQU 5CH
CMCH EQU 5DH
CMCXH EQU 5DH
CMDX EQU 5EH
CMDXL EQU 5EH
CMDH EQU 5FH
CMDXH EQU 5FH
CMEX EQU 60H
CMEXL EQU 60H
CMEH EQU 61H
CMEXH EQU 61H
CMFX EQU 62H
CMFXL EQU 62H
CMFH EQU 63H
CMFXH EQU 63H
DZAX EQU 64H
DZAXL EQU 64H
DZAH EQU 65H
DZAXH EQU 65H
DZBX EQU 66H
DZBXL EQU 66H
DZBH EQU 67H
DZBXH EQU 67H
DZCX EQU 68H
DZCXL EQU 68H
DZCH EQU 69H
DZCXH EQU 69H
DZDX EQU 6AH
DZDXL EQU 6AH
DZDH EQU 6BH
DZDXH EQU 6BH
DZEX EQU 6CH
DZEXL EQU 6CH
DZEH EQU 6DH
DZEXH EQU 6DH
DZFX EQU 6EH
DZFXL EQU 6EH
DZFH EQU 6FH
DZFXH EQU 6FH
SAX EQU 70H
SAL EQU 70H
SAH EQU 71H
SAXH EQU SAH
SBX EQU 72H
SBL EQU 72H
SBH EQU 73H
SBXH EQU SBH
SCX EQU 74H
SCL EQU 74H
SCH EQU 75H
SCXH EQU SCH
SDX EQU 76H
SDL EQU 76H
SDH EQU 77H
SDXH EQU SDH
SEX EQU 78H
SEL EQU 78H
SEH EQU 79H
SEXH EQU SEH
SFX EQU 7AH
SFL EQU 7AH
SFH EQU 7BH
SFXH EQU SFH
LENGTH EQU 7CH
SADDR EQU 7EH
BAUDSP EQU 7FH
PEVENT1 EQU 80H
FLAGP6 EQU 82H
FLAGP7 EQU 83H
CLKBX EQU 84H
CLKBXH EQU 85H
PWD EQU 86H
PWDL EQU 86H
POPA MACRO
DCB 0F5H
ENDM
;
PUSHA MACRO
DCB 0F4H
ENDM
;
IDLPD MACRO VAL
DCB 0F6H,VAL
ENDM
;
CMPL MACRO VALS,VALD
DCB 0C5H,VALD,VALS
ENDM
;
BMOV MACRO VALS,VALD
DCB 0C1H,VALD,VALS
ENDM
;
DJNZW MACRO VALS,VALD
DCB 0E1H,VALS,VALD-$-3
ENDM
;
MOD1 MACRO X
MUL ACQAX,X&A,X&A
MUL ACQCX,X&B,X&B
ADD ACQAX,ACQCX
ADDC ACQBX,ACQDX
ENDM
CSEG AT 2000H
DCW CLKINT
DCW RET1
DCW RET1
DCW RET1
DCW RET1
DCW ACQ
DCW RET1
DCW RET1
ORG 2018H
DCB 0DH
ORG 2080H
;INITIAL
START: LD 18H,#100H
DI
GBLIGHT:LDB MAXH,#03EH
GBLIT1: LDB MAX,STAM202[0]
JBS MAX,7,GBLIT1
STB MAXH,QDM202[0]
GBLIT2: LDB MAX,STAS202[0]
JBS MAX,7,GBLIT2
STB MAXH,QDS202[0]
LD BLIGHT,#2
STB R0,ADWDRST[R0]
LDB IOC1,#74H
LDB HSOCOM,#23H
ADD HSOTIM,TIMER1,#0003H
;choice system back-check
IF CRC=1
;system back-check start
;lled back-check start
XTZJ: CALL QDLIGHT
CALL ZJJX
LDB MCX,#1
LDB MCXH,#16
STB R0,601H[0]
LDB MAX,#0FFH
DLXJ7: LDB MAXH,#3
DLXJ6: LD MBX,#04444H
DLXJ: XORB MAX,MCX
STB MAX,601H[0]
LDB MAX,#0FFH
STB R0,ADWDRST[0]
DJNZW MBX,DLXJ
DJNZ MAXH,DLXJ6
CMPB MCXH,#8
JNE DLXJ3
LDB MCX,#80H
DLXJ3: CMPB MCXH,#8
JNH DLXJ1
SHLB MCX,#1
SJMP DLXJ2
DLXJ1: SHRB MCX,#1
DLXJ2: DJNZ MCXH,DLXJ7
LDB MBX,#16
ZJ1: LD MCX,#400H
ZJ2: DJNZW MCX,ZJ2
STB R0,ADWDRST[0]
STB R0,601H[0]
DJNZ MBX,ZJ1
;62256 ram back-check start
;62256 address region A000H-FFFFH
LD MAX,#0A000H
LD MBX,#3000H
STEP0: ST R0,[MAX]+
STB R0,ADWDRST[0]
DJNZW MBX,STEP0
LD MAX,#0A000H
LD MBX,#3000H
LD MCX,#7777H
STEP1: ST MCX,[MAX]+
STB R0,ADWDRST[0]
DJNZW MBX,STEP1
LD MAX,#0A000H
LD MBX,#3000H
STEP2: LD MCX,[MAX]+
XOR MCX,#7777H
JE STEP3
LDB MBX,#1
CALL GJ
STEP3: DJNZW MBX,STEP2
LD MAX,#0A000H
LD MBX,#3000H
STEP4: ST R0,[MAX]+
STB R0,ADWDRST[0]
DJNZW MBX,STEP4
;62256 pass
;idt7132 address region 9800-9fffh
;idt7132 ram back-check start
LD MAX,#9800H
LD MBX,#400H
CR0: ST R0,[MAX]+
STB R0,ADWDRST[0]
DJNZW MBX,CR0
LD MAX,#9800H
LD MBX,#400H
LD MCX,#8888H
CR1: ST MCX,[MAX]+
STB R0,ADWDRST[0]
DJNZW MBX,CR1
LD MAX,#9800H
LD MBX,#400H
CR2: LD MCX,[MAX]+
XOR MCX,#8888H
JE CR3
LDB MBX,#4
CALL GJ
CR3: DJNZW MBX,CR2
LD MAX,#9800H
LD MBX,#400H
CR4: ST R0,[MAX]+
STB R0,ADWDRST[0]
DJNZW MBX,CR4
;idt7132 pass
;6264 ram back-check start
;628128 ram back-check start
;wait for idt7132 save as result
;wait for 1s
CALL WAIT
LD MAX,#IDTRAM
LD MBX,#5
STEP5: LD MCX,[MAX]+
CMP MCX,#5555H
JNE STEP6
DJNZ MBX,STEP5
SJMP STEP7
STEP6: LDB MBX,#2
CALL GJ
;6264 pass
STEP7: LD MBX,#5
STEP8: LD MCX,[MAX]+
CMP MCX,#6666H
JNE STEP9
DJNZ MBX,STEP8
SJMP STEP10
STEP9: LDB MBX,#3
CALL GJ
STEP10: NOP
ENDIF
;628128 pass
;initial data
;idt7132 20th address include
;address,dznum,baud,length
CALL WAIT
LD MAX,#9814H
LD MBX,#1
LDB MCX,[MAX]+
STB MCX,SADDR
CLR MCX
LDB MCX,[MAX]+
ST MCX,BRNUM[0]
ST MCX,RNUM[0]
LDB MCX,[MAX]+
STB MCX,BAUDSP
LDB MCX,[MAX]+
STB MCX,LENGTH
LD MCX,[MAX]+ ;02/01/06
ST MCX,RWORD[0] ;
ST MCX,BRWORD[0] ;
;constant be over
;start fixed value
LD MAX,#9D00H
LDB MBX,LENGTH
LD MDX,#RISW
STEP11: LDB MCX,[MAX]+
STB MCX,[MDX]+
DJNZ MBX,STEP11
LDB MCX,[MAX]+
STB MCX,[MDX]+
LDB MBX,LENGTH
INCB MBX
LD MCX,#RISW
LD MDX,#BRISW
STEP12: LDB MAX,[MCX]+
STB MAX,[MDX]+
DJNZ MBX,STEP12
;initial start
LDB MAX,#0FFH
STB MAX,LLED3[0]
LD PEVENT1,#EVTTOP1
LD ADDRBR1,#SUREP1
LD PWD,#PWDS
ST R0,BA14CHA[0]
ST R0,BA1400H[0]
CLRB SWITI
CLRB SWITI1
CLRB SWITI2
;clear register start
CLR FLAGP1
CLR FLAGP3
CLR FLAGPJ
CLR FLAGPJ2
CLR CLKAX
CLRB SW4
CLRB SW5
CLRB SW6
LD MAX,#CMAX
LDB MBX,#18
STEP13: ST R0,[MAX]+
DJNZ MBX,STEP13
LD MAX,#MESS
LD MBX,#100H
STEP14: STB R0,[MAX]+
DJNZW MBX,STEP14
ST R0,TEMP0[0]
ST R0,TEMP1[0]
ST R0,TEMP2[0]
ST R0,TEMP3[0]
ST R0,TEMP4[0]
ST R0,TEMP5[0]
ST R0,TEMP6[0]
ST R0,TEMP7[0]
ST R0,TEMP8[0]
ST R0,TEMP9[0]
ST R0,TEMP10[0]
ST R0,TEMP11[0]
ST R0,TEMP12[0]
;initial control register start
INI485: lDB SPCON,#00001010B;0AH
LDB IOC0,#81H
LDB HSIMOD,#01H
LDB INTMAS,#01101101B;#0EDH ;TOTAL 6 INT
LDB INTPEN,R0
LDB HSOCOM,#38H
ADD HSOTIM,TIMER1,#263H
;INI END
EI
LOOP: ST MAX,LMAX[0]
ST MBX,LMBX[0]
ST MCX,LMCX[0]
ST MDX,LMDX[0]
ST MEX,LMEX[0]
ST MFX,LMFX[0]
ST MCNT,LMCNT[0]
ST MPNT,LMPNT[0]
JBS FLAGP4,4,LOOP1
LD ADDRBR1,#SUREP1
CMPB CLKAXH,R0
JNE LOOP1
LDB MAX,TEMP6[0]
LDB CLKAXH,#30
AND MAX,#3
SHL MAX,#1
LD MCX,X_XSJM[MAX]
CALL XSJM
LDB MAX,TEMP6[0]
INCB MAX
STB MAX,TEMP6[0]
SJMP LOOP1
XSJM: BR [MCX]
LOOP1: CALL QDLIGHT
;start loop
;start cal.
;start take events record back
LD MAX,#981EH
LDB MBX,#5
CLR MEX
HX1: LD MDX,[MAX]
LD MCX,[MAX]+
XOR MEX,MCX
DJNZ MBX,HX1
XOR MDX,MEX
JNE HX4
ADD MAX,MEX,#3600H
LD MDX,MAX
SUBB MDXH,#0A0H
DIVUB MDX,#0AH
CMPB MDXH,R0
JNE HX4
CMP MAX,#EVTTOP1
JNE HX2
LD PEVENT1,#EVTTOP1
SJMP HX4
HX2: CMP MAX,PEVENT1
JE HX4
SUB MBX,MAX,#EVTTOP1
LD MAX,#9828H
LD PEVENT1,#EVTTOP1
HX3: LDB MCX,[MAX]+
STB MCX,[PEVENT1]+
DJNZW MBX,HX3
;start take data back
HX4: LD MAX,#9B00H
LD MBX,#80H
LD MDX,#MESS
HX5: LDB MCX,[MAX]+
STB MCX,[MDX]+
DJNZW MBX,HX5
LD MAX,#MESS+32
LD MBX,[MAX]
ST MBX,SWD1[0]
LD MAX,#9B22H
LD MBX,SWD2[0]
ST MBX,[MAX]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -