📄 hpibak.asm
字号:
;the HPI space in our system
;0x8000 8 HPIC0 bit 7 6 5 4 3 2 1 0
;0X8001 9 HPIC1 TL1 TL0 BIL
;0X8002 a HPID0(AUTO) 00 HPIC
;0X8003 b HPID1(AUTO) 01 HPID (ATO)
;0X8004 c HPIA0 10 HPIA
;0X8005 d HPIA1 11 HPID (NO ATO)
;0X8006 e HPID0(NO AUTO)
;0X8007 f HPID1(NO AUTO)
;result is 0x1002=AA 0x1003=DD
;A0-->HBIL HBIL
;A1-->HCNTL0 HCNTL0
;A2-->HCNTL1 HCNTL1
;A15-->HCS }C_HCS
;A3-->
;other pins connection
;HAS-->1
;HDS1-->IOSTRB IOSTRB
;HDS2-->1
;HINT-->INT0 INT0
;HREADY-->BREADY BREADY
;HR/W-->R/W R/W
;###########################################################
.global _main
.ref _InitC5402
.mmregs
_main:
NOP
NOP
CALL _InitC5402
NOP
stm 0x1000,ar1
st 0x00,*ar1
portw *ar1,0x8008 ;write 0x00 to HPIC0
st 0x00,*ar1
portw *ar1,0x8009 ;write 0x00 to HPIC1
NOP
st 0x10,*ar1
portw *ar1,0x800C ;write 0x10 to HPIA0
st 0x20,*ar1
NOP
portw *ar1,0x800D ;write 0x20 to HPIA1
NOP
NOP
NOP
;then the address is:0x1020
loop:
st 0x1A,*ar1
NOP
portw *ar1,0x800A ;write 0x1a to HPID0(AUTO)
NOP
st 0x2B,*ar1
NOP
portw *ar1,0x800B ;write 0x2b to HPID1(AUTO)
NOP
NOP
NOP
stm 0x1010,ar2
NOP
portr 0x800A,*ar2 ;read data from HPID0(AUTO)
NOP
stm 0x1011,ar2
NOP
portr 0x800B,*ar2 ;read data from HPID1(AUTO)
NOP
nop
st 0x3C,*ar1
NOP
portw *ar1,0x800A ;write 0x1a to HPID0(AUTO)
NOP
st 0x4D,*ar1
NOP
portw *ar1,0x800B ;write 0x2b to HPID1(AUTO)
NOP
NOP
NOP
stm 0x1012,ar2
NOP
portr 0x800A,*ar2 ;read data from HPID0(AUTO)
NOP
stm 0x1013,ar2
NOP
portr 0x800B,*ar2 ;read data from HPID1(AUTO)
NOP
nop
st 0x5E,*ar1
NOP
portw *ar1,0x800A ;write 0x1a to HPID0(AUTO)
NOP
st 0x6F,*ar1
NOP
portw *ar1,0x800B ;write 0x2b to HPID1(AUTO)
NOP
NOP
NOP
stm 0x1014,ar2
NOP
portr 0x800A,*ar2 ;read data from HPID0(AUTO)
NOP
stm 0x1015,ar2
NOP
portr 0x800B,*ar2 ;read data from HPID1(AUTO)
NOP
nop
hear
b hear
.end
;###########################################################
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -