2 ; Macros to disable and enable the ROM on Atari XL systems.
4 ; Christian Groessler, chris@groessler.org, 19-Sep-2013
7 ; Defines which modify the operation of the macros:
9 ; CHARGEN_RELOC: If defined, CHBAS and CHBASE are updated when
10 ; enabling or disabling the ROM.
11 ; If the ROM is enabled, $E0 is written to CHBAS
13 ; If the ROM is disabled, the upper byte of
14 ; __CHARGEN_START__ is written to CHBAS and CHBASE.
15 ; USEWSYNC: If defined, the code waits for horizontal retrace
16 ; before switching the ROM and updating CHBAS and
17 ; CHBASE. This define only has effect if CHARGEN_RELOC
31 .else ; above CHARGEN_RELOC, below not
36 .endif ; .ifdef CHARGEN_RELOC
39 .if .defined(USEWSYNC) .and .defined(CHARGEN_RELOC)
45 .else ; above USEWSYNC, below not
53 ; "disable ROM" macros
60 set_chbase >__CHARGEN_START__
63 .macro disable_rom_quick
67 set_chbase >__CHARGEN_START__
70 .macro disable_rom_val val
74 set_chbase >__CHARGEN_START__
87 .macro enable_rom_quick
94 .else ; above __ATARIXL__, below not