118 lines
2.8 KiB
Plaintext
118 lines
2.8 KiB
Plaintext
start EQU 0x200
|
|
wr377 EQU 0x08A1
|
|
|
|
SYS_ExpanderControl_v4_40 EQU 0x0b09
|
|
SYS_SpiExchangeBytes_v4_134 EQU 0x0b15
|
|
|
|
sysFn EQU 0x22
|
|
sysArgs0 EQU 0x24
|
|
sysArgs2 EQU 0x26
|
|
sysArgs4 EQU 0x28
|
|
sysArgs6 EQU 0x2A
|
|
|
|
Temp EQU 0x81
|
|
Counter EQU 0x83
|
|
TLow EQU 0x84
|
|
THigh EQU 0x85
|
|
IOAddr EQU 0x84
|
|
OutValue EQU 0x85
|
|
j EQU 0x86
|
|
i EQU 0x87
|
|
|
|
frame EQU 0x9E
|
|
giga_frameCount EQU 0x0E
|
|
|
|
_startAddress_ EQU 0x0200
|
|
|
|
_callTable_ EQU 0x007E
|
|
|
|
start LDWI SYS_ExpanderControl_v4_40
|
|
STW sysFn
|
|
LDWI 0x0100 ; /WR auf high
|
|
SYS 40
|
|
|
|
LDI 0x9f ; ton 1 aus
|
|
CALL wr76489
|
|
LDI 0xbf ; ton 2 aus
|
|
CALL wr76489
|
|
LDI 0xdf ; ton 3 aus
|
|
CALL wr76489
|
|
LDI 0xff ; rauschen aus
|
|
CALL wr76489
|
|
|
|
LDI 0x90
|
|
CALL wr76489
|
|
|
|
LDI 0x05
|
|
ST j
|
|
loopJ LD j ; FOR J=5 TO 17
|
|
SUBI 0x12 ; 0x12=18=Abbruch
|
|
BEQ NextJ
|
|
LDI 0x80
|
|
ST i
|
|
loopI LD i ; FOR I=128 TO 143
|
|
SUBI 0x90 ; 0x90=144=Abbruch
|
|
BEQ NextI
|
|
LD i
|
|
CALL wr76489 ; OUT N, I (0x80..8F)
|
|
LD j
|
|
CALL wr76489 ; OUT N, J (0x05..11)
|
|
|
|
LDWI -150 ; FOR D=0 TO 10; NEXT D; REM DELAY LOOP 10ms [-300 ~20..23ms]
|
|
STW Temp
|
|
wait1 LDW Temp ; delay
|
|
ADDI 0x01
|
|
STW Temp
|
|
BNE wait1
|
|
|
|
INC i
|
|
BRA loopI
|
|
NextI INC j ; nach NEXT I
|
|
BRA loopJ
|
|
|
|
NextJ LDI 0x9f ; nach NEXT J / ton 1 aus
|
|
CALL wr76489
|
|
LDI 0xe4 ; 0xe4=228 rauschen auf maximum
|
|
CALL wr76489
|
|
|
|
LDI 0xf0 ; 0xe4=240
|
|
ST i
|
|
loopI2 LD i ; FOR I=240 TO 255
|
|
SUBI 0x00
|
|
BEQ NextI2
|
|
LD i
|
|
CALL wr76489
|
|
|
|
LDWI -1600 ; FOR D=0 TO 75; NEXT D; REM DELAY LOOP 114ms [-300 ~180..182ms]
|
|
STW Temp
|
|
wait2 LDW Temp ; delay
|
|
ADDI 0x01
|
|
STW Temp
|
|
BNE wait2
|
|
|
|
INC i
|
|
BRA loopI2
|
|
|
|
NextI2 LDWI -30000 ; maximum warteschleife [0 ~ 4,9s | 1 ~ 76,3µs]
|
|
STW Temp
|
|
wait3 LDW Temp ; delay
|
|
ADDI 0x01
|
|
STW Temp
|
|
BNE wait3
|
|
|
|
BRA start ; nach NEXT I
|
|
|
|
wr76489 ST OutValue
|
|
LDWI SYS_ExpanderControl_v4_40
|
|
STW sysFn
|
|
LDI 0x10 ; DEVADDR0 = 0x00, DEVADDR1 = 0x10
|
|
ST IOAddr
|
|
LDW IOAddr ; vAC = (0x82,0x83) Low Byte = DEVADDRx, High Byte = Data = Couter
|
|
SYS 40
|
|
LDWI 0x0000 ; /WR low
|
|
SYS 40
|
|
LDWI 0x0100 ; dalay 8µS nötig
|
|
LDWI 0x0100 ; /WR high
|
|
SYS 40
|
|
RET
|