asm-test/shift2-old.asm.in

75 lines
1.4 KiB
NASM

; -*-asm-*-
include(`common.m4')
BRA r :reset ; RESB
BRA r :irq ; IRQB
irq: PHA s
LDA a %10000000
STA a IFR
PLA s
RTI s
;; reset stack
reset: SEI i
LDX # ff
TXS i
;; xxxSSSxx
LDA # hh(ACR_SR_OUT_PHI2)
STA a ACR
LDA # %10000000
STA a PORTA
;; CS SCLK DO x x x x x
LDA # %11100000
STA a DDRA
;; LDA # %01111111
;; STA a IER
;; LDA # %10000100
;; STA a IER
;; low byte
LDX # %11000000 ; write conf
LDY # %00000001
JSR a :spi16
LDX # %10000000 ; write data
LDY # ca
JSR a :spi16
forever: BRA r :forever
;; CS low
spi16: LDA # %00000000
STA a PORTA
STX zp 1
STY zp 2
LDY # 2
_spi_next: LDX # 8
CLC i
ASL zp,y 0
LDA # %00000000 ; clear DO
BCC r :_spi_z
ORA # %00100000 ; set DO
_spi_z: STA a PORTA
NOP i
ORA # %01000000 ; set SCLK
STA a PORTA
AND # %10111111 ; clear SCLK
STA a PORTA
DEX i
BNE r :_spi_next
DEY i
BNE r :_spi_next
;; CS high
LDA # %10000000
STA a PORTA
RTS s