mirror of
https://github.com/cc65/cc65.git
synced 2024-12-23 19:29:37 +00:00
cleanup and document CHARGEN_RELOC change
This commit is contained in:
parent
fe75788015
commit
37ed72bc89
@ -3,6 +3,19 @@
|
||||
;
|
||||
; Christian Groessler, chris@groessler.org, 19-Sep-2013
|
||||
;
|
||||
;
|
||||
; Defines which modify the operation of the macros:
|
||||
;
|
||||
; CHARGEN_RELOC: If defined, CHBAS and CHBASE are updated when
|
||||
; enabling or disabling the ROM.
|
||||
; If the ROM is enabled, $E0 is written to CHBAS
|
||||
; and CHBASE.
|
||||
; If the ROM is disabled, the upper byte of
|
||||
; __CHARGEN_START__ is written to CHBAS and CHBASE.
|
||||
; USEWSYNC: If defined, the code waits for horizontal retrace
|
||||
; before switching the ROM and updating CHBAS and
|
||||
; CHBASE. This define only has effect if CHAGEN_RELOC
|
||||
; is also defined.
|
||||
|
||||
|
||||
.ifdef __ATARIXL__
|
||||
@ -10,68 +23,76 @@
|
||||
USEWSYNC = 1
|
||||
CHARGEN_RELOC = 1
|
||||
|
||||
|
||||
.ifdef CHARGEN_RELOC
|
||||
|
||||
.macro set_chbase val
|
||||
lda #val
|
||||
sta CHBAS
|
||||
sta CHBASE
|
||||
.endmacro
|
||||
|
||||
.else
|
||||
|
||||
.macro set_chbase val
|
||||
.endmacro
|
||||
|
||||
.endif ; .ifdef CHARGEN_RELOC
|
||||
|
||||
|
||||
.if .defined(USEWSYNC) .and .defined(CHARGEN_RELOC)
|
||||
|
||||
.macro wsync
|
||||
sta WSYNC
|
||||
.endmacro
|
||||
.else
|
||||
|
||||
.else ; above
|
||||
|
||||
.macro wsync
|
||||
.endmacro
|
||||
|
||||
.endif
|
||||
|
||||
|
||||
; "disable ROM" macros
|
||||
|
||||
.macro disable_rom
|
||||
lda PORTB
|
||||
and #$fe
|
||||
wsync
|
||||
sta PORTB
|
||||
.ifdef CHARGEN_RELOC
|
||||
lda #>__CHARGEN_START__
|
||||
sta CHBAS
|
||||
sta CHBASE
|
||||
.endif
|
||||
set_chbase >__CHARGEN_START__
|
||||
.endmacro
|
||||
|
||||
.macro disable_rom_quick
|
||||
lda PORTB
|
||||
and #$fe
|
||||
sta PORTB
|
||||
.ifdef CHARGEN_RELOC
|
||||
lda #>__CHARGEN_START__
|
||||
sta CHBAS
|
||||
sta CHBASE
|
||||
.endif
|
||||
set_chbase >__CHARGEN_START__
|
||||
.endmacro
|
||||
|
||||
.macro disable_rom_val val
|
||||
lda val
|
||||
wsync
|
||||
sta PORTB
|
||||
.ifdef CHARGEN_RELOC
|
||||
lda #>__CHARGEN_START__
|
||||
sta CHBAS
|
||||
sta CHBASE
|
||||
.endif
|
||||
set_chbase >__CHARGEN_START__
|
||||
.endmacro
|
||||
|
||||
; "enable ROM" macros
|
||||
|
||||
.macro enable_rom
|
||||
lda PORTB
|
||||
ora #1
|
||||
wsync
|
||||
sta PORTB
|
||||
.ifdef CHARGEN_RELOC
|
||||
lda #$E0
|
||||
sta CHBAS
|
||||
sta CHBASE
|
||||
.endif
|
||||
set_chbase $E0
|
||||
.endmacro
|
||||
|
||||
.macro enable_rom_quick
|
||||
lda PORTB
|
||||
ora #1
|
||||
sta PORTB
|
||||
.ifdef CHARGEN_RELOC
|
||||
lda #$E0
|
||||
sta CHBAS
|
||||
sta CHBASE
|
||||
.endif
|
||||
set_chbase $E0
|
||||
.endmacro
|
||||
|
||||
.else ; above __ATARIXL__, below not
|
||||
|
Loading…
Reference in New Issue
Block a user