on DOS 3.2 disks that load into B700, let original code load DOS

This commit is contained in:
4am 2017-08-18 18:48:06 -04:00
parent 4682ae095d
commit 98ee070bbd
3 changed files with 15 additions and 13 deletions

View File

@ -28,11 +28,22 @@
ldx #$11 ; #BASEPAGE+1
ldy #$01
jsr CopyMemory
; If original disk loads boot1 into $3700 (and expects the RWTS at $3800),
; we let Standard Delivery load boot1+RWTS+DOS and patch boot1 here so it
; doesn't try to call the RWTS itself. Boot1 will exit via the standard
; relocation routine at $1B03, after which both RWTS and DOS will be
; in higher memory.
;
; This will all fail horribly if the relocation routine decides not to
; relocate (on old Apple II machines with less than 48K), and I have made
; peace with that.
lda #$01
ldx #$38
ldy #$02
ldy #$03
jsr compare
!byte $20,$93
!byte $20,$93,$37
bcs +
ldy #$01
jsr modify

View File

@ -89,11 +89,6 @@ ConstructStandardDelivery
; Address array does NOT include T00,S00. This sector holds the Standard Delivery
; code and can not be reloaded at another address (unlike DOS 3.3).
; Currently, all parameter tables are the same length (loading T00,S01-T02,S0F),
; but this is not required. Standard Delivery can load an arbitrary number of
; sectors and will move to the next track automatically.
;
SD_DOS33p
; exit via JMP $10B3
!byte $b3,$10
@ -109,11 +104,7 @@ SD_DOS32
; exit via JMP $B700
!byte $00,$B7
; track 0
!byte $00,$00,$9E,$9D,$00,$BF,$BE,$BD,$BC,$BB,$BA,$B9,$B8,$B7,$00
; track 1
!byte $9F,$00,$00,$AB,$AA,$A9,$A8,$A7,$A6,$A5,$A4,$A3,$A2,$A1,$A0,$00
; track 2
!byte $AC,$00,$00,$00,$00,$00,$B5,$B4,$B3,$B2,$B1,$B0,$AF,$AE,$AD,$00
!byte $00,$00,$00,$00,$00,$BF,$BE,$BD,$BC,$BB,$BA,$B9,$B8,$B7
!byte $C0
SD_DOS32LO

View File

@ -228,7 +228,7 @@ StringTable
; can be set directly before calling PrintByID.
;
.header
!text "Passport by 4am 2017-08-17",$00
!text "Passport by 4am 2017-08-18",$00
.mainmenu
!text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D
!text " "