only use swap region in DiversiDOS

This commit is contained in:
Peter Ferrie 2016-11-10 16:19:41 -08:00
parent b55382049e
commit 021e6e6ada

View File

@ -47,6 +47,7 @@
SWAPCOPY = $368 SWAPCOPY = $368
SWAPBUFFER = $800 ; (LoadSaveEnd - LoadSaveStart) size SWAPBUFFER = $800 ; (LoadSaveEnd - LoadSaveStart) size
; currently $39A bytes! ; currently $39A bytes!
; needed by DiversiDOS
A2E = $06 A2E = $06
INVSPACE = $20 INVSPACE = $20
LTARROW = $88 LTARROW = $88
@ -78,7 +79,7 @@
Install Install
;switch cursor type depending on Apple revision ;switch cursor type depending on Apple revision
;can't delay in case ROM is banked out because Diversi-DOS ;can't delay in case ROM is banked out because DiversiDOS
lda APLDETECT lda APLDETECT
cmp #A2E cmp #A2E
@ -99,6 +100,14 @@ Install
cmp #$BF cmp #$BF
bne + bne +
!if <SWAPBUFFER {
ldy #<SWAPBUFFER
}
sty ReadBuffer + BankedCopyStart - $D000
lda #>SWAPBUFFER
sta ReadBuffer + 1 + BankedCopyStart - $D000
lda #$A9
sta ExchangeSwapBanked + SWAPCOPYStart - SWAPCOPY
lda LCBANK2 lda LCBANK2
lda LCBANK2 lda LCBANK2
lda #$DD lda #$DD
@ -283,7 +292,6 @@ GetKey
jmp GetKey jmp GetKey
SwapFILEMAN SwapFILEMAN
lda ROMIN1
jsr FILEMAN jsr FILEMAN
BankInRAM1 BankInRAM1
@ -296,7 +304,8 @@ ReuseRts
;sorry, I couldn't find a simpler way... ;sorry, I couldn't find a simpler way...
ExchangeSwapBanked ExchangeSwapBanked
lda #<(SWAPBUFFER + LoadSaveEnd - LoadSaveStart) rts ;self-modified to LDA in DiversiDOS environment
!byte <(SWAPBUFFER + LoadSaveEnd - LoadSaveStart)
sta ExchangeSwapSource1 + 1 sta ExchangeSwapSource1 + 1
sta ExchangeSwapTarget1 + 1 sta ExchangeSwapTarget1 + 1
lda #((>SWAPBUFFER) - >((<(LoadSaveEnd - LoadSaveStart)) + 255)) lda #((>SWAPBUFFER) - >((<(LoadSaveEnd - LoadSaveStart)) + 255))
@ -808,7 +817,7 @@ WriteSize
;number of bytes ;number of bytes
ReadBuffer ReadBuffer
WriteBuffer WriteBuffer
!word SWAPBUFFER ;buffer !word LoadSaveStart ;buffer, self-modified in DiversiDOS
ReadMLI_e ReadMLI_e
jmp ExchangeSwapBanked jmp ExchangeSwapBanked