// target-independent things #if not(ARCH_6502) #warn stdlib_6502 module should be only used on 6502-compatible targets #endif word nmi_routine_addr @$FFFA word reset_routine_addr @$FFFC word irq_routine_addr @$FFFE macro asm void poke(word const addr, byte a) { STA addr } macro asm byte peek(word const addr) { LDA addr } macro asm void disable_irq() { SEI } macro asm void enable_irq() { CLI } asm byte hi_nibble_to_hex(byte a) { LSR LSR LSR LSR JMP lo_nibble_to_hex } asm byte lo_nibble_to_hex(byte a) { AND #$F CLC ADC #$30 CMP #$3A BCC _lo_nibble_to_hex_lbl ADC #$6 // carry is set _lo_nibble_to_hex_lbl: RTS } macro asm void panic() { JSR _panic } array __constant8 = [8]