; -*-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