!cpu 6502 *=$2000 !to "../build/PASSPORT.SYSTEM",plain !source "../build/vars.a" lda $BF98 ; ProDOS MachineID and #$20 ; at least 64K? bne good_mem jsr $BF00 ; immediately quit on 48K machine !byte $65 ; (but congratulations on launching Passport at all) !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