96 lines
2.0 KiB
NASM
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
|