// testing some more complicated defines #define spi_enable(mask) \ lda SPISSRB :\ and #255-(mask) :\ sta SPISSRB #define spi_disable(mask) \ lda SPISSRB :\ ora #(mask) :\ sta SPISSRB #define spi_wra() \ .( :\ sta SPIDR :\ l_ bit SPISR :\ bpl l_ :\ lda SPIDR :\ .) #define max3420e_enable() \ spi_enable(MAX3420E_EnMask) #define max3420e_disable() \ spi_disable(MAX3420E_EnMask) #define wrac(reg) \ pha :\ max3420e_enable() :\ lda #(reg) | 0x02 :\ spi_wra() :\ pla :\ spi_wra() :\ max3420e_disable() // just the definition of this macro hangs the xa indefinitely... #define CLRBIT(reg, val) \ rreg(reg) :\ and #255-val :\ wrac(reg)