mirror of
https://github.com/a2-4am/passport.git
synced 2025-08-15 15:27:24 +00:00
auto-crack Choplifter (read-only)
also make one-time procs discardable and double stringtable capacity
This commit is contained in:
205
src/initscan.a
Normal file
205
src/initscan.a
Normal file
@@ -0,0 +1,205 @@
|
|||||||
|
;-------------------------------
|
||||||
|
; ScanForDiskII
|
||||||
|
; scan all slots for things that
|
||||||
|
; look like Disk II cards
|
||||||
|
;
|
||||||
|
; out: all registers clobbered
|
||||||
|
; all flags clobbered
|
||||||
|
; DiskIIArray filled with 00 or FF
|
||||||
|
;-------------------------------
|
||||||
|
!zone {
|
||||||
|
ScanForDiskII
|
||||||
|
lda #$00
|
||||||
|
sta cmp1
|
||||||
|
ldx #$07
|
||||||
|
.fingerprint
|
||||||
|
txa
|
||||||
|
ora #$C0
|
||||||
|
sta cmp1+1
|
||||||
|
ldy #$01
|
||||||
|
lda (cmp1),y
|
||||||
|
cmp #$20
|
||||||
|
bne .next
|
||||||
|
ldy #$03
|
||||||
|
lda (cmp1),y
|
||||||
|
bne .next
|
||||||
|
ldy #$05
|
||||||
|
lda (cmp1),y
|
||||||
|
cmp #$03
|
||||||
|
bne .next
|
||||||
|
ldy #$FF
|
||||||
|
lda (cmp1),y
|
||||||
|
bne .next
|
||||||
|
tya
|
||||||
|
sta DiskIIArray-1,x
|
||||||
|
.next
|
||||||
|
dex
|
||||||
|
bne .fingerprint
|
||||||
|
rts
|
||||||
|
}
|
||||||
|
|
||||||
|
!zone {
|
||||||
|
ScanForRAMDisk
|
||||||
|
lda #$00
|
||||||
|
sta iunit
|
||||||
|
- lda iunit
|
||||||
|
clc
|
||||||
|
adc #$10
|
||||||
|
sta iunit
|
||||||
|
beq .done
|
||||||
|
cmp #$80
|
||||||
|
beq -
|
||||||
|
pha
|
||||||
|
and #$70
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
tay
|
||||||
|
pla
|
||||||
|
ldx DiskIIArray-1,y
|
||||||
|
bne -
|
||||||
|
jsr GetVolumeName
|
||||||
|
bcs -
|
||||||
|
lda OnlineReturn
|
||||||
|
beq -
|
||||||
|
jsr GetVolumeInfo
|
||||||
|
|
||||||
|
;watch for RAM disk type
|
||||||
|
|
||||||
|
lda filetype
|
||||||
|
and #$0F
|
||||||
|
cmp #$0F
|
||||||
|
bne -
|
||||||
|
|
||||||
|
;check for RAM[x] by name
|
||||||
|
|
||||||
|
ldy OnlineReturn
|
||||||
|
cpy #4
|
||||||
|
beq +
|
||||||
|
cpy #5
|
||||||
|
bne -
|
||||||
|
dey
|
||||||
|
+
|
||||||
|
-- lda SlashRAM-1,y
|
||||||
|
cmp VolumeName-1,y
|
||||||
|
bne -
|
||||||
|
dey
|
||||||
|
bne --
|
||||||
|
|
||||||
|
;check free space
|
||||||
|
;need at least $118 blocks
|
||||||
|
|
||||||
|
sec
|
||||||
|
lda auxtype
|
||||||
|
sbc blocks
|
||||||
|
tax
|
||||||
|
lda auxtype+1
|
||||||
|
sbc blocks+1
|
||||||
|
cmp #1
|
||||||
|
bcc -
|
||||||
|
bne +
|
||||||
|
cpx #$18
|
||||||
|
bcc -
|
||||||
|
+ lda #TRUE
|
||||||
|
sta gUsingRAMDisk
|
||||||
|
.done
|
||||||
|
rts
|
||||||
|
|
||||||
|
SlashRAM !byte $2F, $52, $41, $4D
|
||||||
|
}
|
||||||
|
|
||||||
|
;-------------------------------
|
||||||
|
; LoadPrefs
|
||||||
|
; load preferences from file
|
||||||
|
;
|
||||||
|
; in: ProDOS must be in memory
|
||||||
|
;-------------------------------
|
||||||
|
LoadPrefs
|
||||||
|
lda #$FF
|
||||||
|
sta PREFSVER
|
||||||
|
jsr LoadFile1Shot
|
||||||
|
!word PREFSFILE
|
||||||
|
!word PREFSVER
|
||||||
|
!word PREFSREADLEN
|
||||||
|
!word PREFSBUFFER
|
||||||
|
jsr ValidatePrefs
|
||||||
|
bcc .goodprefs
|
||||||
|
jmp SavePrefs
|
||||||
|
|
||||||
|
.goodprefs
|
||||||
|
rts
|
||||||
|
|
||||||
|
;-------------------------------
|
||||||
|
; LoadFile1Shot
|
||||||
|
; load a file into memory all at once,
|
||||||
|
; using ProDOS MLI calls
|
||||||
|
;
|
||||||
|
; in: stack contains 8 bytes of parameters:
|
||||||
|
; +1 address of pathname
|
||||||
|
; +3 address of data buffer (to receive file contents)
|
||||||
|
; +5 [word] maximum length of data to read
|
||||||
|
; +7 address of ProDOS file buffer
|
||||||
|
; out: if C set, load failed and A contains error code
|
||||||
|
; from open or read
|
||||||
|
; if C clear, load succeeded and ($02) contains
|
||||||
|
; data loaded from file
|
||||||
|
; all other flags clobbered
|
||||||
|
; all registers clobbered
|
||||||
|
; stack set to next instruction after parameters
|
||||||
|
;-------------------------------
|
||||||
|
!zone {
|
||||||
|
LoadFile1Shot
|
||||||
|
clc
|
||||||
|
pla
|
||||||
|
adc #$08
|
||||||
|
sta $00
|
||||||
|
tax
|
||||||
|
pla
|
||||||
|
adc #$00
|
||||||
|
sta $01
|
||||||
|
pha
|
||||||
|
txa
|
||||||
|
pha
|
||||||
|
|
||||||
|
ldy #$01
|
||||||
|
lda ($00),y ; lo byte of pathname
|
||||||
|
sta mliparam+1
|
||||||
|
iny
|
||||||
|
lda ($00),y ; hi byte of pathname
|
||||||
|
sta mliparam+2
|
||||||
|
ldy #$07
|
||||||
|
lda ($00),y ; lo byte of ProDOS file buffer
|
||||||
|
sta mliparam+3
|
||||||
|
iny
|
||||||
|
lda ($00),y ; hi byte of ProDOS file buffer
|
||||||
|
sta mliparam+4
|
||||||
|
|
||||||
|
jsr OpenFile
|
||||||
|
bcs .loadfile1s ; C set on error
|
||||||
|
|
||||||
|
pha ; push file reference number
|
||||||
|
ldy #$03
|
||||||
|
lda ($00),y ; lo address of data buffer
|
||||||
|
sta mliparam+2
|
||||||
|
iny
|
||||||
|
lda ($00),y ; hi address of data buffer
|
||||||
|
sta mliparam+3
|
||||||
|
iny
|
||||||
|
lda ($00),y ; lo data length
|
||||||
|
sta mliparam+4
|
||||||
|
iny
|
||||||
|
lda ($00),y ; hi data length
|
||||||
|
sta mliparam+5
|
||||||
|
pla ; pull file reference number
|
||||||
|
jsr ReadFile
|
||||||
|
php ; save flags from readfile
|
||||||
|
pha
|
||||||
|
jsr CloseFile ; always close whether read worked or not
|
||||||
|
pla
|
||||||
|
plp ; restore flags from readfile
|
||||||
|
; (so caller gets codes from read attempt,
|
||||||
|
; not close)
|
||||||
|
.loadfile1s
|
||||||
|
rts
|
||||||
|
}
|
100
src/mli.a
100
src/mli.a
@@ -139,21 +139,16 @@ WriteTrackMLI
|
|||||||
;-------------------------------
|
;-------------------------------
|
||||||
!zone {
|
!zone {
|
||||||
SaveFile1Shot
|
SaveFile1Shot
|
||||||
pla
|
|
||||||
sta $00
|
|
||||||
pla
|
|
||||||
sta $01
|
|
||||||
tax
|
|
||||||
lda #$0B
|
|
||||||
clc
|
clc
|
||||||
adc $00
|
pla
|
||||||
bcc .noinc
|
adc #$0B
|
||||||
inx
|
sta $00
|
||||||
.noinc
|
tax
|
||||||
tay
|
pla
|
||||||
txa
|
adc #$00
|
||||||
|
sta $01
|
||||||
pha
|
pha
|
||||||
tya
|
txa
|
||||||
pha
|
pha
|
||||||
|
|
||||||
ldy #$01
|
ldy #$01
|
||||||
@@ -211,85 +206,6 @@ SaveFile1Shot
|
|||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
|
|
||||||
;-------------------------------
|
|
||||||
; LoadFile1Shot
|
|
||||||
; load a file into memory all at once,
|
|
||||||
; using ProDOS MLI calls
|
|
||||||
;
|
|
||||||
; in: stack contains 8 bytes of parameters:
|
|
||||||
; +1 address of pathname
|
|
||||||
; +3 address of data buffer (to receive file contents)
|
|
||||||
; +5 [word] maximum length of data to read
|
|
||||||
; +7 address of ProDOS file buffer
|
|
||||||
; out: if C set, load failed and A contains error code
|
|
||||||
; from open or read
|
|
||||||
; if C clear, load succeeded and ($02) contains
|
|
||||||
; data loaded from file
|
|
||||||
; all other flags clobbered
|
|
||||||
; all registers clobbered
|
|
||||||
; stack set to next instruction after parameters
|
|
||||||
;-------------------------------
|
|
||||||
!zone {
|
|
||||||
LoadFile1Shot
|
|
||||||
pla
|
|
||||||
sta $00
|
|
||||||
pla
|
|
||||||
sta $01
|
|
||||||
tax
|
|
||||||
lda #$08
|
|
||||||
clc
|
|
||||||
adc $00
|
|
||||||
bcc .noinc
|
|
||||||
inx
|
|
||||||
.noinc
|
|
||||||
tay
|
|
||||||
txa
|
|
||||||
pha
|
|
||||||
tya
|
|
||||||
pha
|
|
||||||
|
|
||||||
ldy #$01
|
|
||||||
lda ($00),y ; lo byte of pathname
|
|
||||||
sta mliparam+1
|
|
||||||
iny
|
|
||||||
lda ($00),y ; hi byte of pathname
|
|
||||||
sta mliparam+2
|
|
||||||
ldy #$07
|
|
||||||
lda ($00),y ; lo byte of ProDOS file buffer
|
|
||||||
sta mliparam+3
|
|
||||||
iny
|
|
||||||
lda ($00),y ; hi byte of ProDOS file buffer
|
|
||||||
sta mliparam+4
|
|
||||||
|
|
||||||
jsr OpenFile
|
|
||||||
bcs .loadfile1s ; C set on error
|
|
||||||
|
|
||||||
pha ; push file reference number
|
|
||||||
ldy #$03
|
|
||||||
lda ($00),y ; lo address of data buffer
|
|
||||||
sta mliparam+2
|
|
||||||
iny
|
|
||||||
lda ($00),y ; hi address of data buffer
|
|
||||||
sta mliparam+3
|
|
||||||
iny
|
|
||||||
lda ($00),y ; lo data length
|
|
||||||
sta mliparam+4
|
|
||||||
iny
|
|
||||||
lda ($00),y ; hi data length
|
|
||||||
sta mliparam+5
|
|
||||||
pla ; pull file reference number
|
|
||||||
jsr ReadFile
|
|
||||||
php ; save flags from readfile
|
|
||||||
pha
|
|
||||||
jsr CloseFile ; always close whether read worked or not
|
|
||||||
pla
|
|
||||||
plp ; restore flags from readfile
|
|
||||||
; (so caller gets codes from read attempt,
|
|
||||||
; not close)
|
|
||||||
.loadfile1s
|
|
||||||
rts
|
|
||||||
}
|
|
||||||
|
|
||||||
;-------------------------------
|
;-------------------------------
|
||||||
; open file via ProDOS MLI
|
; open file via ProDOS MLI
|
||||||
;
|
;
|
||||||
|
@@ -96,7 +96,26 @@ FM lda LastMover - 256,x
|
|||||||
lda FM+5
|
lda FM+5
|
||||||
cmp #(>RELBASE)-((>(RELBASE+255))->RELBASE)-1
|
cmp #(>RELBASE)-((>(RELBASE+255))->RELBASE)-1
|
||||||
bne FM
|
bne FM
|
||||||
jmp OneTimeSetup
|
|
||||||
|
OneTimeSetup
|
||||||
|
lda $C0E8
|
||||||
|
jsr SaveProDOS
|
||||||
|
ldx MACHINEID
|
||||||
|
cpx #$EA
|
||||||
|
bne .slotscan
|
||||||
|
lda #$DF
|
||||||
|
sta kForceLower
|
||||||
|
.slotscan
|
||||||
|
jsr ScanForDiskII
|
||||||
|
lda DiskIIArray+5
|
||||||
|
bne .founds6
|
||||||
|
jmp FatalNoSlot6
|
||||||
|
.founds6
|
||||||
|
jsr ScanForRAMDisk
|
||||||
|
jsr LoadPrefs ; load preferences (if available)
|
||||||
|
jmp ResetVector
|
||||||
|
|
||||||
|
!source "initscan.a"
|
||||||
|
|
||||||
FirstMover
|
FirstMover
|
||||||
!pseudopc RELBASE {
|
!pseudopc RELBASE {
|
||||||
@@ -165,24 +184,6 @@ FirstMover
|
|||||||
!source "rwts.a"
|
!source "rwts.a"
|
||||||
!source "standarddelivery.a"
|
!source "standarddelivery.a"
|
||||||
|
|
||||||
OneTimeSetup
|
|
||||||
lda $C0E8
|
|
||||||
jsr SaveProDOS
|
|
||||||
ldx MACHINEID
|
|
||||||
cpx #$EA
|
|
||||||
bne .slotscan
|
|
||||||
lda #$DF
|
|
||||||
sta kForceLower
|
|
||||||
.slotscan
|
|
||||||
jsr ScanForDiskII
|
|
||||||
lda DiskIIArray+5
|
|
||||||
bne .founds6
|
|
||||||
jmp FatalNoSlot6
|
|
||||||
.founds6
|
|
||||||
jsr ScanForRAMDisk
|
|
||||||
jsr LoadPrefs ; load preferences (if available)
|
|
||||||
bcc ResetVector
|
|
||||||
jsr SavePrefs ; save preferences (if possible)
|
|
||||||
ResetVector
|
ResetVector
|
||||||
lda #<ResetVector
|
lda #<ResetVector
|
||||||
sta $03F2
|
sta $03F2
|
||||||
@@ -871,6 +872,6 @@ LastMover
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
!if (HIGHPOINT - (LastMover - FirstMover)) < LOWPOINT {
|
!if (HIGHPOINT - (LastMover - FirstMover)) < LOWPOINT {
|
||||||
!serious "code is too large to fit in available space!"
|
!serious "code end (", HIGHPOINT - (LastMover - FirstMover), ") is below minimum (", LOWPOINT, ")!"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,10 @@ Choplifter
|
|||||||
|
|
||||||
.read
|
.read
|
||||||
lda KEY
|
lda KEY
|
||||||
bmi .cancel
|
bpl .continue
|
||||||
|
jmp .cancel
|
||||||
|
|
||||||
|
.continue
|
||||||
asl gTrack
|
asl gTrack
|
||||||
jsr ReadChoplifter
|
jsr ReadChoplifter
|
||||||
lsr gTrack
|
lsr gTrack
|
||||||
@@ -32,9 +35,69 @@ Choplifter
|
|||||||
lda gTrack
|
lda gTrack
|
||||||
cmp #$23
|
cmp #$23
|
||||||
bne .read
|
bne .read
|
||||||
|
|
||||||
|
; start with RDOS as a minimal SD base
|
||||||
|
; and copy SD code for free
|
||||||
|
|
||||||
|
ldx #ID_RDOS13
|
||||||
|
jsr ConstructStandardDelivery
|
||||||
|
ldx #$B0
|
||||||
|
stx $104E ; exit address
|
||||||
|
stx $1050 ; next-stage addressing
|
||||||
|
inx
|
||||||
|
stx $104F ; next-stage addressing
|
||||||
|
inx
|
||||||
|
stx $105D ; next-stage addressing
|
||||||
|
|
||||||
|
lda #$10
|
||||||
|
sta modsrc+1
|
||||||
|
lda #$5E
|
||||||
|
sta modsrc
|
||||||
|
ldx #$27
|
||||||
|
lda #$67
|
||||||
|
jsr .inittable
|
||||||
|
|
||||||
|
lda #$1F
|
||||||
|
sta modsrc+1
|
||||||
|
lda #$00
|
||||||
|
sta modsrc
|
||||||
|
ldx #$87
|
||||||
|
lda #$C7
|
||||||
|
jsr .inittable
|
||||||
|
|
||||||
|
dec modsrc+1
|
||||||
|
ldx #$0F
|
||||||
|
lda #$27
|
||||||
|
jsr .inittable
|
||||||
|
ldx #$47
|
||||||
|
lda #$87
|
||||||
|
jsr .inittable2
|
||||||
|
|
||||||
|
dec $1E00
|
||||||
|
lda #$C0
|
||||||
|
sta $10DD
|
||||||
|
sta $1EAF
|
||||||
|
sta $1F7F
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
- lda .stage2,y
|
||||||
|
sta $1D00,y
|
||||||
|
iny
|
||||||
|
bne -
|
||||||
|
|
||||||
|
lda #s_bootwrite
|
||||||
|
jsr PrintByID
|
||||||
|
lda #$00
|
||||||
|
sta gTrack
|
||||||
|
jsr WriteTrackNA
|
||||||
|
inc gPatchCount
|
||||||
jsr .cleanup
|
jsr .cleanup
|
||||||
jmp Pass
|
jmp Pass
|
||||||
|
|
||||||
|
.cancel
|
||||||
|
jsr .cleanup
|
||||||
|
jmp Cancel
|
||||||
|
|
||||||
.cleanup
|
.cleanup
|
||||||
lda $C0E8
|
lda $C0E8
|
||||||
lda #$01
|
lda #$01
|
||||||
@@ -42,15 +105,6 @@ Choplifter
|
|||||||
sta dct+1
|
sta dct+1
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.fatal
|
|
||||||
jsr .cleanup
|
|
||||||
; if we get to here, we've
|
|
||||||
jmp FatalError ; decided the read error is fatal
|
|
||||||
|
|
||||||
.cancel
|
|
||||||
jsr .cleanup
|
|
||||||
jmp Cancel
|
|
||||||
|
|
||||||
ReadChoplifter
|
ReadChoplifter
|
||||||
lda #BASEPAGE
|
lda #BASEPAGE
|
||||||
sta modsrc+1
|
sta modsrc+1
|
||||||
@@ -82,6 +136,7 @@ ReadChoplifter
|
|||||||
|
|
||||||
.checkkey1
|
.checkkey1
|
||||||
lda KEY
|
lda KEY
|
||||||
|
.linkcancel1
|
||||||
bmi .cancel
|
bmi .cancel
|
||||||
jsr .readnib
|
jsr .readnib
|
||||||
- cmp #$DD
|
- cmp #$DD
|
||||||
@@ -92,6 +147,9 @@ ReadChoplifter
|
|||||||
jsr .readnib
|
jsr .readnib
|
||||||
cmp #$D5
|
cmp #$D5
|
||||||
bne -- ; this is the same bug
|
bne -- ; this is the same bug
|
||||||
|
nop ; timing bits
|
||||||
|
nop ; timing bits
|
||||||
|
nop ; timing bits
|
||||||
ldx #$03
|
ldx #$03
|
||||||
- jsr .read4x4
|
- jsr .read4x4
|
||||||
jsr .read4x4
|
jsr .read4x4
|
||||||
@@ -123,11 +181,12 @@ ReadChoplifter
|
|||||||
|
|
||||||
.retry0
|
.retry0
|
||||||
dex
|
dex
|
||||||
beq .jmpfatal
|
beq .fatal
|
||||||
|
|
||||||
.checkkey0
|
.checkkey0
|
||||||
lda KEY
|
lda KEY
|
||||||
bmi .jmpcancel
|
.linkcancel2
|
||||||
|
bmi .linkcancel1
|
||||||
jsr .readnib
|
jsr .readnib
|
||||||
- cmp cmp2+1
|
- cmp cmp2+1
|
||||||
bne .checkkey0
|
bne .checkkey0
|
||||||
@@ -138,6 +197,9 @@ ReadChoplifter
|
|||||||
cmp cmp1+1
|
cmp cmp1+1
|
||||||
bne -- ; this is a bug
|
bne -- ; this is a bug
|
||||||
; it allows PR0 PR1 [any] PR1 PR2 instead of requiring PR0 PR1 PR2
|
; it allows PR0 PR1 [any] PR1 PR2 instead of requiring PR0 PR1 PR2
|
||||||
|
nop ; timing bits
|
||||||
|
nop ; timing bits
|
||||||
|
nop ; timing bits
|
||||||
ldy #0
|
ldy #0
|
||||||
-- jsr .read4x4
|
-- jsr .read4x4
|
||||||
sta (modsrc), y
|
sta (modsrc), y
|
||||||
@@ -160,11 +222,10 @@ ReadChoplifter
|
|||||||
sta cmp1+0 ; epilog
|
sta cmp1+0 ; epilog
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.jmpfatal
|
.fatal
|
||||||
jmp .fatal
|
jsr .cleanup
|
||||||
|
; if we get to here, we've
|
||||||
.jmpcancel
|
jmp FatalError ; decided the read error is fatal
|
||||||
jmp .cancel
|
|
||||||
|
|
||||||
.checktrack20
|
.checktrack20
|
||||||
beq .readtrack20
|
beq .readtrack20
|
||||||
@@ -184,7 +245,8 @@ ReadChoplifter
|
|||||||
|
|
||||||
.checkkey2
|
.checkkey2
|
||||||
lda KEY
|
lda KEY
|
||||||
bmi .jmpcancel
|
.linkcancel3
|
||||||
|
bmi .linkcancel2
|
||||||
jsr .readnib
|
jsr .readnib
|
||||||
.prolog1
|
.prolog1
|
||||||
- cmp #$D1 ; SMC
|
- cmp #$D1 ; SMC
|
||||||
@@ -198,15 +260,17 @@ ReadChoplifter
|
|||||||
cmp #$D1 ; SMC
|
cmp #$D1 ; SMC
|
||||||
bne -- ; this is the same bug
|
bne -- ; this is the same bug
|
||||||
nop ; timing bits
|
nop ; timing bits
|
||||||
|
nop ; timing bits
|
||||||
|
nop ; timing bits
|
||||||
ldx #$00
|
ldx #$00
|
||||||
- jsr .read4x4
|
- jsr .read4x4
|
||||||
sta (BASEPAGE+1)<<8,x
|
sta (BASEPAGE+8)<<8,x
|
||||||
inx
|
inx
|
||||||
jsr .read4x4
|
jsr .read4x4
|
||||||
sta (BASEPAGE+1)<<8,x
|
sta (BASEPAGE+8)<<8,x
|
||||||
inx
|
inx
|
||||||
jsr .read4x4
|
jsr .read4x4
|
||||||
sta (BASEPAGE+1)<<8,x
|
sta (BASEPAGE+8)<<8,x
|
||||||
inx
|
inx
|
||||||
cmp #$EA
|
cmp #$EA
|
||||||
bne -
|
bne -
|
||||||
@@ -222,7 +286,7 @@ ReadChoplifter
|
|||||||
dex
|
dex
|
||||||
beq ++
|
beq ++
|
||||||
+ lda KEY
|
+ lda KEY
|
||||||
bmi .jmpcancel
|
bmi .linkcancel3
|
||||||
jsr .readnib
|
jsr .readnib
|
||||||
- cmp #$D5
|
- cmp #$D5
|
||||||
bne .checkkey3
|
bne .checkkey3
|
||||||
@@ -232,6 +296,9 @@ ReadChoplifter
|
|||||||
jsr .readnib
|
jsr .readnib
|
||||||
cmp #$DD
|
cmp #$DD
|
||||||
bne -- ; this is the same bug
|
bne -- ; this is the same bug
|
||||||
|
nop ; timing bits
|
||||||
|
nop ; timing bits
|
||||||
|
nop ; timing bits
|
||||||
ldx #$00
|
ldx #$00
|
||||||
- jsr .read4x4
|
- jsr .read4x4
|
||||||
sta BASEPAGE<<8,x
|
sta BASEPAGE<<8,x
|
||||||
@@ -254,4 +321,118 @@ ReadChoplifter
|
|||||||
- lda $C0EC
|
- lda $C0EC
|
||||||
bpl -
|
bpl -
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
.inittable
|
||||||
|
ldy #$08
|
||||||
|
|
||||||
|
.inittable2
|
||||||
|
sta tmp
|
||||||
|
|
||||||
|
.buildtable
|
||||||
|
txa
|
||||||
|
sta (modsrc),y
|
||||||
|
dex
|
||||||
|
iny
|
||||||
|
tya
|
||||||
|
and #$0F
|
||||||
|
cmp #$0F
|
||||||
|
bne .buildtable
|
||||||
|
tya
|
||||||
|
sbc #$0F
|
||||||
|
tay
|
||||||
|
txa
|
||||||
|
sta (modsrc),y
|
||||||
|
tya
|
||||||
|
adc #$17 ; carry set by sbc
|
||||||
|
tay
|
||||||
|
txa
|
||||||
|
adc #$0F
|
||||||
|
tax
|
||||||
|
cmp tmp
|
||||||
|
bne .buildtable
|
||||||
|
rts
|
||||||
|
|
||||||
|
.stage2 !pseudopc $B000 { ; high address that won't be hit on the first round of SD
|
||||||
|
lda $c057
|
||||||
|
lda $c052
|
||||||
|
lda $c050
|
||||||
|
ldy #0
|
||||||
|
- lda .stager,y
|
||||||
|
sta $500,y
|
||||||
|
lda (*+$ff) and $ff00,y
|
||||||
|
sta $200,y
|
||||||
|
lda (*+$1ff) and $ff00,y
|
||||||
|
sta $400,y
|
||||||
|
iny
|
||||||
|
bne -
|
||||||
|
jsr .dostep4
|
||||||
|
ldy #2 ; pagehi, first table
|
||||||
|
sty $807
|
||||||
|
ldy #$60 ; rts
|
||||||
|
sty $84c
|
||||||
|
jsr .callSD ; including original $8xx to $7xx
|
||||||
|
asl $807 ; 4xx, second table
|
||||||
|
jmp $500
|
||||||
|
|
||||||
|
.stager !pseudopc $500 {
|
||||||
|
jsr .callSD
|
||||||
|
jsr .step
|
||||||
|
lda #$60
|
||||||
|
sta $801
|
||||||
|
lda #4
|
||||||
|
sta $27
|
||||||
|
jsr $823 ; read patch table
|
||||||
|
ldy #0 ; avoid CFFA bug
|
||||||
|
- lda $400,y
|
||||||
|
sta .patcher+1
|
||||||
|
lda $401,y
|
||||||
|
sta .patcher+2
|
||||||
|
lda $402,y
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
|
||||||
|
.patcher
|
||||||
|
sta $d1d1
|
||||||
|
cmp #$ea
|
||||||
|
bne -
|
||||||
|
jsr .dostep2 ; reach track $22
|
||||||
|
sta $3d
|
||||||
|
dec $27
|
||||||
|
jsr $823 ; read high scores
|
||||||
|
lsr $27
|
||||||
|
lda #7
|
||||||
|
sta $26
|
||||||
|
jsr $823 ; read half of write routine to $207
|
||||||
|
asl $27
|
||||||
|
lda #0
|
||||||
|
sta $26
|
||||||
|
jsr $823 ; read half of write routine to $600
|
||||||
|
ldy #0 ; avoid CFFA bug
|
||||||
|
- lda ($26),y
|
||||||
|
sta $800,y
|
||||||
|
lda $600,y
|
||||||
|
sta $300,y
|
||||||
|
iny
|
||||||
|
bne -
|
||||||
|
jmp ($20)
|
||||||
|
|
||||||
|
.callSD
|
||||||
|
sta $806 ; pagelo
|
||||||
|
ldy #$ff
|
||||||
|
jsr $805
|
||||||
|
beq .step
|
||||||
|
|
||||||
|
.dostep4
|
||||||
|
jsr .dostep2
|
||||||
|
|
||||||
|
.dostep2
|
||||||
|
jsr .step
|
||||||
|
|
||||||
|
.step
|
||||||
|
jsr $82F
|
||||||
|
lsr $40
|
||||||
|
rts
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
16
src/prefs.a
16
src/prefs.a
@@ -20,22 +20,6 @@ DRIVE !byte $FF
|
|||||||
!text "+---PREFS VERSION (DO NOT CHANGE)",$8D
|
!text "+---PREFS VERSION (DO NOT CHANGE)",$8D
|
||||||
PREFSWRITELEN = *-PREFSVER
|
PREFSWRITELEN = *-PREFSVER
|
||||||
|
|
||||||
;-------------------------------
|
|
||||||
; LoadPrefs
|
|
||||||
; load preferences from file
|
|
||||||
;
|
|
||||||
; in: ProDOS must be in memory
|
|
||||||
;-------------------------------
|
|
||||||
LoadPrefs
|
|
||||||
lda #$FF
|
|
||||||
sta PREFSVER
|
|
||||||
jsr LoadFile1Shot
|
|
||||||
!word PREFSFILE
|
|
||||||
!word PREFSVER
|
|
||||||
!word PREFSREADLEN
|
|
||||||
!word PREFSBUFFER
|
|
||||||
jmp ValidatePrefs
|
|
||||||
|
|
||||||
;-------------------------------
|
;-------------------------------
|
||||||
; SavePrefs
|
; SavePrefs
|
||||||
; save preferences to file
|
; save preferences to file
|
||||||
|
10
src/print.a
10
src/print.a
@@ -14,15 +14,14 @@ kForceLower !byte $FF ; AND mask for lowercase letters
|
|||||||
;-------------------------------
|
;-------------------------------
|
||||||
!zone {
|
!zone {
|
||||||
PrintByID
|
PrintByID
|
||||||
stx .x
|
stx .x+1
|
||||||
ldy #0 ; substitution mode flag
|
ldy #0 ; substitution mode flag
|
||||||
cmp #STRINGCOUNT
|
cmp #STRINGCOUNT
|
||||||
bcs .error
|
bcs .error
|
||||||
asl
|
|
||||||
tax
|
tax
|
||||||
lda StringTable,x
|
lda StringTableLow,x
|
||||||
sta .print+1
|
sta .print+1
|
||||||
lda StringTable+1,x
|
lda StringTableHigh,x
|
||||||
sta .print+2
|
sta .print+2
|
||||||
.print
|
.print
|
||||||
lda $FFFF ; modified at runtime
|
lda $FFFF ; modified at runtime
|
||||||
@@ -83,9 +82,8 @@ PrintByID
|
|||||||
.done
|
.done
|
||||||
clc
|
clc
|
||||||
.error
|
.error
|
||||||
ldx .x
|
.x ldx #$d1
|
||||||
rts
|
rts
|
||||||
.x !byte 00
|
|
||||||
|
|
||||||
;-------------------------------
|
;-------------------------------
|
||||||
; PrintByte
|
; PrintByte
|
||||||
|
111
src/slots.a
111
src/slots.a
@@ -1,46 +1,6 @@
|
|||||||
DiskIIArray
|
DiskIIArray
|
||||||
!byte 00,00,00,00,00,00,00
|
!byte 00,00,00,00,00,00,00
|
||||||
|
|
||||||
;-------------------------------
|
|
||||||
; ScanForDiskII
|
|
||||||
; scan all slots for things that
|
|
||||||
; look like Disk II cards
|
|
||||||
;
|
|
||||||
; out: all registers clobbered
|
|
||||||
; all flags clobbered
|
|
||||||
; DiskIIArray filled with 00 or FF
|
|
||||||
;-------------------------------
|
|
||||||
!zone {
|
|
||||||
ScanForDiskII
|
|
||||||
lda #$00
|
|
||||||
sta cmp1
|
|
||||||
ldx #$07
|
|
||||||
.fingerprint
|
|
||||||
txa
|
|
||||||
ora #$C0
|
|
||||||
sta cmp1+1
|
|
||||||
ldy #$01
|
|
||||||
lda (cmp1),y
|
|
||||||
cmp #$20
|
|
||||||
bne .next
|
|
||||||
ldy #$03
|
|
||||||
lda (cmp1),y
|
|
||||||
bne .next
|
|
||||||
ldy #$05
|
|
||||||
lda (cmp1),y
|
|
||||||
cmp #$03
|
|
||||||
bne .next
|
|
||||||
ldy #$FF
|
|
||||||
lda (cmp1),y
|
|
||||||
bne .next
|
|
||||||
tya
|
|
||||||
sta DiskIIArray-1,x
|
|
||||||
.next
|
|
||||||
dex
|
|
||||||
bne .fingerprint
|
|
||||||
rts
|
|
||||||
}
|
|
||||||
|
|
||||||
;-------------------------------
|
;-------------------------------
|
||||||
; NextSlot
|
; NextSlot
|
||||||
;-------------------------------
|
;-------------------------------
|
||||||
@@ -76,74 +36,3 @@ NextSlot
|
|||||||
.reallydone
|
.reallydone
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
|
|
||||||
!zone {
|
|
||||||
ScanForRAMDisk
|
|
||||||
lda #$00
|
|
||||||
sta iunit
|
|
||||||
- lda iunit
|
|
||||||
clc
|
|
||||||
adc #$10
|
|
||||||
sta iunit
|
|
||||||
beq .done
|
|
||||||
cmp #$80
|
|
||||||
beq -
|
|
||||||
pha
|
|
||||||
and #$70
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
pla
|
|
||||||
ldx DiskIIArray-1,y
|
|
||||||
bne -
|
|
||||||
jsr GetVolumeName
|
|
||||||
bcs -
|
|
||||||
lda OnlineReturn
|
|
||||||
beq -
|
|
||||||
jsr GetVolumeInfo
|
|
||||||
|
|
||||||
;watch for RAM disk type
|
|
||||||
|
|
||||||
lda filetype
|
|
||||||
and #$0F
|
|
||||||
cmp #$0F
|
|
||||||
bne -
|
|
||||||
|
|
||||||
;check for RAM[x] by name
|
|
||||||
|
|
||||||
ldy OnlineReturn
|
|
||||||
cpy #4
|
|
||||||
beq +
|
|
||||||
cpy #5
|
|
||||||
bne -
|
|
||||||
dey
|
|
||||||
+
|
|
||||||
-- lda SlashRAM-1,y
|
|
||||||
cmp VolumeName-1,y
|
|
||||||
bne -
|
|
||||||
dey
|
|
||||||
bne --
|
|
||||||
|
|
||||||
;check free space
|
|
||||||
;need at least $118 blocks
|
|
||||||
|
|
||||||
sec
|
|
||||||
lda auxtype
|
|
||||||
sbc blocks
|
|
||||||
tax
|
|
||||||
lda auxtype+1
|
|
||||||
sbc blocks+1
|
|
||||||
cmp #1
|
|
||||||
bcc -
|
|
||||||
bne +
|
|
||||||
cpx #$18
|
|
||||||
bcc -
|
|
||||||
+ lda #TRUE
|
|
||||||
sta gUsingRAMDisk
|
|
||||||
.done
|
|
||||||
rts
|
|
||||||
|
|
||||||
SlashRAM !byte $2F, $52, $41, $4D
|
|
||||||
}
|
|
||||||
|
361
src/strings/en.a
361
src/strings/en.a
@@ -15,125 +15,246 @@ k_redo_with_ignore = $92; <Ctrl-R>
|
|||||||
|
|
||||||
!source "strings/enid.a"
|
!source "strings/enid.a"
|
||||||
!zone {
|
!zone {
|
||||||
StringTable
|
StringTableLow
|
||||||
!word .header
|
!byte <.header
|
||||||
!word .mainmenu
|
!byte <.mainmenu
|
||||||
!word .progbar
|
!byte <.progbar
|
||||||
!word .reading
|
!byte <.reading
|
||||||
!word .diskrwts
|
!byte <.diskrwts
|
||||||
!word .bb00
|
!byte <.bb00
|
||||||
!word .sunburst
|
!byte <.sunburst
|
||||||
!word .optimum
|
!byte <.optimum
|
||||||
!word .builtin
|
!byte <.builtin
|
||||||
!word .switch
|
!byte <.switch
|
||||||
!word .writing
|
!byte <.writing
|
||||||
!word .unformat
|
!byte <.unformat
|
||||||
!word .f7
|
!byte <.f7
|
||||||
!word .sync
|
!byte <.sync
|
||||||
!word .optbad
|
!byte <.optbad
|
||||||
!word .passver
|
!byte <.passver
|
||||||
!word .passdemuf
|
!byte <.passdemuf
|
||||||
!word .passcrack
|
!byte <.passcrack
|
||||||
!word .passcrack0
|
!byte <.passcrack0
|
||||||
!word .fail
|
!byte <.fail
|
||||||
!word .fatal0000
|
!byte <.fatal0000
|
||||||
!word .fatal220f
|
!byte <.fatal220f
|
||||||
!word .done
|
!byte <.done
|
||||||
!word .noslot6
|
!byte <.noslot6
|
||||||
!word .writeerr
|
!byte <.writeerr
|
||||||
!word .writeioerr
|
!byte <.writeioerr
|
||||||
!word .writenodev
|
!byte <.writenodev
|
||||||
!word .writeprot
|
!byte <.writeprot
|
||||||
!word .othermli
|
!byte <.othermli
|
||||||
!word .canttrace
|
!byte <.canttrace
|
||||||
!word .canceled
|
!byte <.canceled
|
||||||
!word .bademu
|
!byte <.bademu
|
||||||
!word .reset
|
!byte <.reset
|
||||||
!word .modify
|
!byte <.modify
|
||||||
!word .modifyto
|
!byte <.modifyto
|
||||||
!word .dos33boot0
|
!byte <.dos33boot0
|
||||||
!word .prodosboot0
|
!byte <.prodosboot0
|
||||||
!word .pascalboot0
|
!byte <.pascalboot0
|
||||||
!word .mecc
|
!byte <.mecc
|
||||||
!word .sierra
|
!byte <.sierra
|
||||||
!word .a6bc95
|
!byte <.a6bc95
|
||||||
!word .jmpbcf0
|
!byte <.jmpbcf0
|
||||||
!word .rol1e
|
!byte <.rol1e
|
||||||
!word .runhello
|
!byte <.runhello
|
||||||
!word .e7
|
!byte <.e7
|
||||||
!word .jmpb4bb
|
!byte <.jmpb4bb
|
||||||
!word .jmpb400
|
!byte <.jmpb400
|
||||||
!word .jmpbeca
|
!byte <.jmpbeca
|
||||||
!word .bb03
|
!byte <.bb03
|
||||||
!word .thunder
|
!byte <.thunder
|
||||||
!word .jmpae8e
|
!byte <.jmpae8e
|
||||||
!word .diskvol
|
!byte <.diskvol
|
||||||
!word .d5d5f7
|
!byte <.d5d5f7
|
||||||
!word .construct
|
!byte <.construct
|
||||||
!word .datasoftb0
|
!byte <.datasoftb0
|
||||||
!word .datasoft
|
!byte <.datasoft
|
||||||
!word .lsr6a
|
!byte <.lsr6a
|
||||||
!word .bcs08
|
!byte <.bcs08
|
||||||
!word .jmpb660
|
!byte <.jmpb660
|
||||||
!word .protdos
|
!byte <.protdos
|
||||||
!word .decryptrwts
|
!byte <.decryptrwts
|
||||||
!word .protserial
|
!byte <.protserial
|
||||||
!word .fbff
|
!byte <.fbff
|
||||||
!word .encoded44
|
!byte <.encoded44
|
||||||
!word .encoded53
|
!byte <.encoded53
|
||||||
!word .specdel
|
!byte <.specdel
|
||||||
!word .bytrack
|
!byte <.bytrack
|
||||||
!word .a5count
|
!byte <.a5count
|
||||||
!word .restart
|
!byte <.restart
|
||||||
!word .corrupter
|
!byte <.corrupter
|
||||||
!word .eaboot0
|
!byte <.eaboot0
|
||||||
!word .eatrk6
|
!byte <.eatrk6
|
||||||
!word .eeef
|
!byte <.eeef
|
||||||
!word .poke
|
!byte <.poke
|
||||||
!word .bootcounter
|
!byte <.bootcounter
|
||||||
!word .milliken
|
!byte <.milliken
|
||||||
!word .jsr8b3
|
!byte <.jsr8b3
|
||||||
!word .daviddos
|
!byte <.daviddos
|
||||||
!word .quickdos
|
!byte <.quickdos
|
||||||
!word .diversidos
|
!byte <.diversidos
|
||||||
!word .prontodos
|
!byte <.prontodos
|
||||||
!word .jmpb412
|
!byte <.jmpb412
|
||||||
!word .laureate
|
!byte <.laureate
|
||||||
!word .bbf9
|
!byte <.bbf9
|
||||||
!word .micrograms
|
!byte <.micrograms
|
||||||
!word .cmpbne0
|
!byte <.cmpbne0
|
||||||
!word .writeram
|
!byte <.writeram
|
||||||
!word .d5timing
|
!byte <.d5timing
|
||||||
!word .advint
|
!byte <.advint
|
||||||
!word .dos32boot0
|
!byte <.dos32boot0
|
||||||
!word .bootwrite
|
!byte <.bootwrite
|
||||||
!word .rwtswrite
|
!byte <.rwtswrite
|
||||||
!word .rdos
|
!byte <.rdos
|
||||||
!word .sra
|
!byte <.sra
|
||||||
!word .muse
|
!byte <.muse
|
||||||
!word .origin
|
!byte <.origin
|
||||||
!word .volumename
|
!byte <.volumename
|
||||||
!word .dinkeydos
|
!byte <.dinkeydos
|
||||||
!word .trillium
|
!byte <.trillium
|
||||||
!word .tamper
|
!byte <.tamper
|
||||||
!word .microfun
|
!byte <.microfun
|
||||||
!word .advent
|
!byte <.advent
|
||||||
!word .gathering
|
!byte <.gathering
|
||||||
!word .davidson
|
!byte <.davidson
|
||||||
!word .rdos13
|
!byte <.rdos13
|
||||||
!word .ssi
|
!byte <.ssi
|
||||||
!word .aacount
|
!byte <.aacount
|
||||||
!word .infocom18
|
!byte <.infocom18
|
||||||
!word .toverify
|
!byte <.toverify
|
||||||
!word .sector13
|
!byte <.sector13
|
||||||
!word .dakin5
|
!byte <.dakin5
|
||||||
!word .springboard
|
!byte <.springboard
|
||||||
!word .hallabs
|
!byte <.hallabs
|
||||||
!word .holle
|
!byte <.holle
|
||||||
!word .hoffman
|
!byte <.hoffman
|
||||||
!word .diskvol0
|
!byte <.diskvol0
|
||||||
!word .e7everywhere
|
!byte <.e7everywhere
|
||||||
!word .choplifter
|
!byte <.choplifter
|
||||||
|
|
||||||
|
StringTableHigh
|
||||||
|
!byte >.header
|
||||||
|
!byte >.mainmenu
|
||||||
|
!byte >.progbar
|
||||||
|
!byte >.reading
|
||||||
|
!byte >.diskrwts
|
||||||
|
!byte >.bb00
|
||||||
|
!byte >.sunburst
|
||||||
|
!byte >.optimum
|
||||||
|
!byte >.builtin
|
||||||
|
!byte >.switch
|
||||||
|
!byte >.writing
|
||||||
|
!byte >.unformat
|
||||||
|
!byte >.f7
|
||||||
|
!byte >.sync
|
||||||
|
!byte >.optbad
|
||||||
|
!byte >.passver
|
||||||
|
!byte >.passdemuf
|
||||||
|
!byte >.passcrack
|
||||||
|
!byte >.passcrack0
|
||||||
|
!byte >.fail
|
||||||
|
!byte >.fatal0000
|
||||||
|
!byte >.fatal220f
|
||||||
|
!byte >.done
|
||||||
|
!byte >.noslot6
|
||||||
|
!byte >.writeerr
|
||||||
|
!byte >.writeioerr
|
||||||
|
!byte >.writenodev
|
||||||
|
!byte >.writeprot
|
||||||
|
!byte >.othermli
|
||||||
|
!byte >.canttrace
|
||||||
|
!byte >.canceled
|
||||||
|
!byte >.bademu
|
||||||
|
!byte >.reset
|
||||||
|
!byte >.modify
|
||||||
|
!byte >.modifyto
|
||||||
|
!byte >.dos33boot0
|
||||||
|
!byte >.prodosboot0
|
||||||
|
!byte >.pascalboot0
|
||||||
|
!byte >.mecc
|
||||||
|
!byte >.sierra
|
||||||
|
!byte >.a6bc95
|
||||||
|
!byte >.jmpbcf0
|
||||||
|
!byte >.rol1e
|
||||||
|
!byte >.runhello
|
||||||
|
!byte >.e7
|
||||||
|
!byte >.jmpb4bb
|
||||||
|
!byte >.jmpb400
|
||||||
|
!byte >.jmpbeca
|
||||||
|
!byte >.bb03
|
||||||
|
!byte >.thunder
|
||||||
|
!byte >.jmpae8e
|
||||||
|
!byte >.diskvol
|
||||||
|
!byte >.d5d5f7
|
||||||
|
!byte >.construct
|
||||||
|
!byte >.datasoftb0
|
||||||
|
!byte >.datasoft
|
||||||
|
!byte >.lsr6a
|
||||||
|
!byte >.bcs08
|
||||||
|
!byte >.jmpb660
|
||||||
|
!byte >.protdos
|
||||||
|
!byte >.decryptrwts
|
||||||
|
!byte >.protserial
|
||||||
|
!byte >.fbff
|
||||||
|
!byte >.encoded44
|
||||||
|
!byte >.encoded53
|
||||||
|
!byte >.specdel
|
||||||
|
!byte >.bytrack
|
||||||
|
!byte >.a5count
|
||||||
|
!byte >.restart
|
||||||
|
!byte >.corrupter
|
||||||
|
!byte >.eaboot0
|
||||||
|
!byte >.eatrk6
|
||||||
|
!byte >.eeef
|
||||||
|
!byte >.poke
|
||||||
|
!byte >.bootcounter
|
||||||
|
!byte >.milliken
|
||||||
|
!byte >.jsr8b3
|
||||||
|
!byte >.daviddos
|
||||||
|
!byte >.quickdos
|
||||||
|
!byte >.diversidos
|
||||||
|
!byte >.prontodos
|
||||||
|
!byte >.jmpb412
|
||||||
|
!byte >.laureate
|
||||||
|
!byte >.bbf9
|
||||||
|
!byte >.micrograms
|
||||||
|
!byte >.cmpbne0
|
||||||
|
!byte >.writeram
|
||||||
|
!byte >.d5timing
|
||||||
|
!byte >.advint
|
||||||
|
!byte >.dos32boot0
|
||||||
|
!byte >.bootwrite
|
||||||
|
!byte >.rwtswrite
|
||||||
|
!byte >.rdos
|
||||||
|
!byte >.sra
|
||||||
|
!byte >.muse
|
||||||
|
!byte >.origin
|
||||||
|
!byte >.volumename
|
||||||
|
!byte >.dinkeydos
|
||||||
|
!byte >.trillium
|
||||||
|
!byte >.tamper
|
||||||
|
!byte >.microfun
|
||||||
|
!byte >.advent
|
||||||
|
!byte >.gathering
|
||||||
|
!byte >.davidson
|
||||||
|
!byte >.rdos13
|
||||||
|
!byte >.ssi
|
||||||
|
!byte >.aacount
|
||||||
|
!byte >.infocom18
|
||||||
|
!byte >.toverify
|
||||||
|
!byte >.sector13
|
||||||
|
!byte >.dakin5
|
||||||
|
!byte >.springboard
|
||||||
|
!byte >.hallabs
|
||||||
|
!byte >.holle
|
||||||
|
!byte >.hoffman
|
||||||
|
!byte >.diskvol0
|
||||||
|
!byte >.e7everywhere
|
||||||
|
!byte >.choplifter
|
||||||
|
|
||||||
;
|
;
|
||||||
; 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
|
||||||
@@ -159,7 +280,7 @@ StringTable
|
|||||||
; can be set directly before calling PrintByID.
|
; can be set directly before calling PrintByID.
|
||||||
;
|
;
|
||||||
.header
|
.header
|
||||||
!text "Passport by 4am 2019-04-13",$00
|
!text "Passport by 4am 2019-04-15",$00
|
||||||
.mainmenu
|
.mainmenu
|
||||||
!text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D
|
!text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D
|
||||||
!text " "
|
!text " "
|
||||||
|
Reference in New Issue
Block a user