don't clobber ProDOS shim, that's rude

This commit is contained in:
4am 2020-11-24 21:02:14 -05:00
parent 83f7e02279
commit 8d1d9c0bc5
4 changed files with 18 additions and 16 deletions

View File

@ -60,11 +60,12 @@ DHGR.FLICK
# name of the next transition effect is stored in the global prefs, so this
# file should not contain duplicates.
#
# Transition effects are binary files loaded at $6000 and called with DHGR
# page 1 showing and the next DHGR graphic already loaded at $4000/main and
# $4000/aux. A transition effect has full use of main and auxiliary memory,
# including zero pages and text pages if needed. LC RAM banks 1 and 2 are
# reserved for the launcher.
# Transition effects are binary files loaded at $6000 and called with main
# memory banked in, DHGR page 1 showing, and the next DHGR graphic already
# loaded at $4000/main and $4000/aux. A transition effect has full use of
# auxiliary memory, zero pages (both), text pages (both, but preserve screen
# holes), and main memory $6000-$BEFF. $BF00-$BFFF/main is reserved for the
# ProDOS shim. LC RAM banks 1 and 2 are reserved for the launcher.
#
# Important: LC RAM bank 1 will be read/write on entry and must be read/write
# on exit. If you need ROM routines, you are responsible for switching to ROM

View File

@ -129,9 +129,10 @@ FLICK
#
# Transition effects are binary files loaded at $6000 and called with
# hi-res page 1 showing and the next HGR graphic already loaded at $4000.
# A transition effect can use $6000-$BFFF in main memory, zero page, and
# A transition effect can use $6000-$BEFF in main memory, zero page, and
# text page if needed (but preserve the screen holes). $800-$1FFF is reserved
# for the slideshow data. LC RAM banks 1 and 2 are reserved for the launcher.
# for the slideshow data. $BF00-$BFFF is reserved for the ProDOS shim.
# LC RAM banks 1 and 2 are reserved for the launcher.
#
# Important: LC RAM bank 1 will be read/write on entry and must be read/write
# on exit. If you need ROM routines, you are responsible for switching to ROM

View File

@ -32,12 +32,12 @@ copymasks = $6200 ; [256 bytes, page-aligned, duplicated in a
sta $C005
sta addrs, x
sta $C004
eor #$80
eor #$A0
sta addrs+1, x
sta $C005
sta addrs+1, x
sta $C004
eor #$80
eor #$A0
adc #1
inx
inx
@ -50,11 +50,11 @@ copymasks = $6200 ; [256 bytes, page-aligned, duplicated in a
start
!pseudopc 0 {
!byte %00000011
copyaux sta $C003 ; copy $4000/aux to $A000/main
copyaux sta $C003 ; copy $4000/aux to $8000/main
ldx #$20
ldy #$00
a lda $4000, y
b sta $A000, y
b sta $8000, y
iny
bne a
inc a+2
@ -97,7 +97,7 @@ exit lda $4000 ; last lousy byte (because LFSR never hits
aux sta $C055 ; switch $2000 access to aux memory (read/write!)
sta <auxsrc+2
eor #$80
eor #$A0
sta <auxdst+2
lda (<auxdst+1), y
auxsrc eor $FD00, y

View File

@ -11,7 +11,7 @@ addrs=$C0 ; [$40 bytes]
- txa
eor #$20
sta addrs, x
eor #$80
eor #$A0
sta addrs+$20, x
dex
bpl -
@ -24,11 +24,11 @@ addrs=$C0 ; [$40 bytes]
start
!pseudopc 0 {
copyaux sta $C003 ; copy $4000/aux to $A000/main
copyaux sta $C003 ; copy $4000/aux to $8000/main
ldx #$20
ldy #$00
a lda $4000, y
b sta $A000, y
b sta $8000, y
iny
bne a
inc a+2
@ -68,7 +68,7 @@ exit lda $4000 ; last lousy byte (because LFSR never hits
rts
aux sta $C055 ; switch $2000 access to aux memory (read/write!)
sta <auxsrc+2
eor #$80
eor #$A0
sta <auxdst+2
auxsrc lda $FD00, y
auxdst sta $FD00, y