passport/src/wrapper.a

69 lines
2.1 KiB
Plaintext
Raw Normal View History

!cpu 6502
*=$2000
!to "../build/PASSPORT.SYSTEM",plain
2019-06-15 19:23:02 +00:00
!source "../build/vars.a"
lda $BF98 ; ProDOS MachineID
and #$20 ; at least 64K?
2019-08-27 17:53:01 +00:00
bne good_mem
jsr $BF00 ; immediately quit on 48K machine
!byte $65 ; (but congratulations on launching Passport at all)
2019-08-27 17:53:01 +00:00
!word quit
quit !byte 4
good_mem
jsr $FE89 ; PR#0
jsr $FE93 ; IN#0
jsr $FB2F ; TEXT
jsr $FC58 ; HOME
jsr decrunch
sty $fe ;;zp_dest_lo
OneTimeSetup
ldy #0 ; save a copy of ProDOS system global page
- lda $BF00, y ; (will be copied back and forth by SwapProDOS later)
sta $0F00, y
iny
bne -
lda $FBB3 ; ROM MachineID
cmp #$EA ; ][+?
bne +
lda #$DF ; AND mask to force characters to uppercase on ][+
sta kForceLower
+
jsr ScanForDiskII ; scan slots for Disk II drives
lda DiskIIArray+5
bne +
lda #s_noslot6 ; no Disk II in slot 6, this is fatal
jsr PrintByID
jsr WaitForKey
jmp CleanExit
+
jsr ScanForRAMAndHardDisks; scan for things that look like RAM disks or hard disks
jsr LoadPrefs ; load preferences (if available)
jmp ($fe) ; jump to decompressed code (FirstMover)
!source "apidefs.a"
!source "strings/enid.a"
!source "initscan.a"
SHOW_PROGRESS_DURING_DECRUNCH = 1 ; activates optional UI code in exodecrunch
!source "exodecrunch.s"
get_crunched_byte
lda _byte_lo
bne _byte_skip_hi
dec _byte_hi
_byte_skip_hi
dec _byte_lo
_byte_lo = * + 1
_byte_hi = * + 2
lda packend ; needs to be set correctly before decrunch_file is called
rts
!bin "../build/passport.pak"
!word HIGHPOINT
packend