; ; Macros to disable and enable the ROM on Atari XL systems. ; ; Christian Groessler, chris@groessler.org, 19-Sep-2013 ; .ifdef __ATARIXL__ USEWSYNC = 1 CHARGEN_RELOC = 1 .if .defined(USEWSYNC) .and .defined(CHARGEN_RELOC) .macro wsync sta WSYNC .endmacro .else .macro wsync .endmacro .endif .macro disable_rom lda PORTB and #$fe wsync sta PORTB .ifdef CHARGEN_RELOC lda #>__CHARGEN_START__ sta CHBAS sta CHBASE .endif .endmacro .macro disable_rom_quick lda PORTB and #$fe sta PORTB .ifdef CHARGEN_RELOC lda #>__CHARGEN_START__ sta CHBAS sta CHBASE .endif .endmacro .macro disable_rom_val val lda val wsync sta PORTB .ifdef CHARGEN_RELOC lda #>__CHARGEN_START__ sta CHBAS sta CHBASE .endif .endmacro .macro enable_rom lda PORTB ora #1 wsync sta PORTB .ifdef CHARGEN_RELOC lda #$E0 sta CHBAS sta CHBASE .endif .endmacro .macro enable_rom_quick lda PORTB ora #1 sta PORTB .ifdef CHARGEN_RELOC lda #$E0 sta CHBAS sta CHBASE .endif .endmacro .else ; above __ATARIXL__, below not .macro disable_rom .endmacro .macro enable_rom .endmacro .endif