54 lines
1.3 KiB
Plaintext
54 lines
1.3 KiB
Plaintext
; First test of the SN76489
|
|
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
|
|
tmpArg EQU 0x83 ; count of data
|
|
ptr EQU 0x85 ; pointer to data
|
|
cnt EQU 0x87
|
|
|
|
|
|
|
|
start LDWI SYS_ExpanderControl_v4_40
|
|
STW sysFn
|
|
|
|
LDWI 0x0100 ; SN76489 /WE = 1
|
|
SYS 40
|
|
|
|
LDWI data - 1 ; pointer is incented before data is read
|
|
STW ptr ; init pointer to data
|
|
LDWI -7
|
|
STW cnt ; init count of data
|
|
|
|
LDI 0x10 ; DEVADDR0 = 0x00 (bit0 /WR), DEVADDR1 = 0x10 (data SN76489)
|
|
ST tmpArg
|
|
|
|
loop1 LDW ptr ; data value
|
|
ADDI 0x01
|
|
STW ptr
|
|
PEEK
|
|
ST tmpArg + 1
|
|
LDW tmpArg ; vAC Low Byte = DEVADDRx, High Byte = Data = Couter
|
|
SYS 40
|
|
|
|
LDWI 0x0000 ; SN76489 /WE = 0
|
|
SYS 40
|
|
LDWI 0x0100 ; SN76489 /WE = 1
|
|
SYS 40
|
|
|
|
LDW cnt
|
|
ADDI 0x01
|
|
STW cnt
|
|
BNE loop1
|
|
|
|
loop BRA loop
|
|
|
|
data DB 0x9F 0xBF 0xDF 0xFF ; init
|
|
DB 0xA1 0x0E 0xB0 ; C#5 @ 554Hz
|
|
DB 0xB0 0xB0 0xB0 |