asm-test/shift.asm.in

96 lines
2.0 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: LDX # ff
TXS i
;; xxxSSSxx
LDA # hh(ACR_SR_OUT_PHI2)
STA a ACR
LDA # %10000000
STA a PORTA
LDA # %10000000
STA a DDRA
LDA # %01111111
STA a IER
LDA # %10000100
STA a IER
;; R T FEN SHD TM RM PM RAM
;; 1 1 1 0 0 0 0 0
LDX # %11100000 ; write configuration
;; IR ST PE L B3 B2 B1 B0
;; 0 0 0 0 0 0 0 1 ; 115200
LDY # %00000001
JSR a :spi16
;; R T FEN SHD TM RM PM RAM
;; 1 1 1 0 0 0 0 0
LDX # %11100000 ; write configuration
;; IR ST PE L B3 B2 B1 B0
;; 0 0 0 0 0 0 0 1 ; 115200
LDY # %00000001
JSR a :spi16
;; R T FEN SHD TM RM PM RAM
;; 1 1 1 0 0 0 0 0
LDX # %01000000 ; read configuration
;; IR ST PE L B3 B2 B1 B0
;; 0 0 0 0 0 0 0 1 ; 115200
LDY # %00000000
JSR a :spi16
;; R T FEN SHD TM RM PM RAM
;; 1 1 1 0 0 0 0 0
LDX # %01000000 ; read configuration
;; IR ST PE L B3 B2 B1 B0
;; 0 0 0 0 0 0 0 1 ; 115200
LDY # %00000000
JSR a :spi16
LDX # %00000000 ; read data
LDY # %00000000
JSR a :spi16
LDX # %10000000 ; write data
LDY # ca
JSR a :spi16
LDX # %10000010 ; write data
LDY # ca
JSR a :spi16
forever: BRA r :forever
spi16: CLI i
LDA # %00000000
STA a PORTA
STX a SR
WAI i
STY a SR
WAI i
LDA # %10000000
STA a PORTA
SEI i
RTS s