Merge pull request #13 from peterferrie/master

switch Optimum to ProDOS write method
This commit is contained in:
4am 2017-02-11 13:42:12 -05:00 committed by GitHub
commit 7659056630
2 changed files with 29 additions and 26 deletions

View File

@ -138,6 +138,8 @@ _optimum
;track 0, find the region with replaced page ;track 0, find the region with replaced page
.reread1 .reread1
lda #s_construct
jsr PrintByID
ldy #8 ldy #8
jsr SearchTrack jsr SearchTrack
!byte $20,$5D,$B6 ;JSR $B65D !byte $20,$5D,$B6 ;JSR $B65D
@ -191,40 +193,36 @@ _optimum
cpy #$FF cpy #$FF
bne - bne -
;write replaced page ;read other page in block
lda gRWTSParams+1
pha
lda gRWTSParams+2
pha
lda SLOT
asl
asl
asl
asl
sta gRWTSParams+1
sta gRWTSParams+$0F
lda DRIVE
and #$0F
sta gRWTSParams+2
lda #1 lda #1
sta gTrack sta gTrack
lda #$0F
sta gSector sta gSector
inc gRWTSParams+$0C dec gAddress+1
ldy #<gRWTSParams ldy #<gRWTSParams
lda #>gRWTSParams lda #>gRWTSParams
jsr $BD00 jsr $BD00
dec gRWTSParams+$0C
pla
sta gRWTSParams+2
pla
sta gRWTSParams+$0F
sta gRWTSParams+1
;restore original page ;write replaced block
lda #(BASEPAGE+$0E)
sta mliparam+3 ; hi byte of data buffer
dec mliparam+4 ; lo byte of block number
jsr SwapProDOS
lda #$81 ; 'write block' command
ldy #$03 ; parameter count
jsr mli
jsr SwapProDOS
;restore original pages
dec gTrack dec gTrack
inc gSector
ldy #<gRWTSParams
lda #>gRWTSParams
jsr $BD00
inc gSector
inc gAddress+1
ldy #<gRWTSParams ldy #<gRWTSParams
lda #>gRWTSParams lda #>gRWTSParams
jsr $BD00 jsr $BD00

View File

@ -89,7 +89,8 @@ s_eab0 = $46
s_eatrk6 = $47 s_eatrk6 = $47
s_eeef = $48 s_eeef = $48
s_poke = $49 s_poke = $49
STRINGCOUNT = $4A s_construct= $4A
STRINGCOUNT = $4B
!zone { !zone {
StringTable StringTable
@ -167,6 +168,7 @@ StringTable
!word .eatrk6 !word .eatrk6
!word .eeef !word .eeef
!word .poke !word .poke
!word .construct
; ;
; Text can contain substitution strings, which ; Text can contain substitution strings, which
; are replaced by current values at runtime. Each ; are replaced by current values at runtime. Each
@ -192,7 +194,7 @@ StringTable
; can be set directly before calling PrintByID. ; can be set directly before calling PrintByID.
; ;
.header .header
!text "Passport by 4am 2017-02-09",00 !text "Passport by 4am 2017-02-10",00
.mainmenu .mainmenu
!text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D !text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D
!text " " !text " "
@ -427,4 +429,7 @@ StringTable
.poke .poke
!text "T%t,S%0 BASIC program POKEs protection",$8D !text "T%t,S%0 BASIC program POKEs protection",$8D
!text "check into memory and CALLs it.",$8D,$00 !text "check into memory and CALLs it.",$8D,$00
.construct
!text "Constructing complete T01S0F content.",$8D
!text "Protected version is only partial.",$8D,$00
} }