gigatron/extensions/sound card/gasm/sn_test.gasm
2025-01-28 19:17:01 +03:00

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