mirror of
https://github.com/a2-4am/passport.git
synced 2024-09-07 23:54:47 +00:00
300 lines
12 KiB
Plaintext
300 lines
12 KiB
Plaintext
;-------------------------------
|
|
; globally-accessible variables
|
|
; in fixed position to allow
|
|
; compressed code to work
|
|
; offsets must match apidefs.a
|
|
;-------------------------------
|
|
|
|
;gNIBTable
|
|
!byte $80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$8A,$8B,$8C,$8D,$8E,$8F
|
|
!byte $90,$91,$92,$93,$94,$95,$00,$01,$98,$99,$02,$03,$9C,$04,$05,$06
|
|
!byte $A0,$A1,$A2,$A3,$A4,$A5,$07,$08,$A8,$A9,$AA,$09,$0A,$0B,$0C,$0D
|
|
!byte $B0,$B1,$0E,$0F,$10,$11,$12,$13,$B8,$14,$15,$16,$17,$18,$19,$1A
|
|
!byte $C0,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$CA,$1B,$CC,$1C,$1D,$1E
|
|
!byte $D0,$D1,$D2,$1F,$D4,$D5,$20,$21,$D8,$22,$23,$24,$25,$26,$27,$28
|
|
!byte $E0,$E1,$E2,$E3,$E4,$29,$2A,$2B,$E8,$2C,$2D,$2E,$2F,$30,$31,$32
|
|
!byte $F0,$F1,$33,$34,$35,$36,$37,$38,$F8,$39,$3A,$3B,$3C,$3D,$3E
|
|
;gNIBTableFF
|
|
!byte $3F
|
|
|
|
;jConstructStandardDelivery
|
|
jmp ConstructStandardDelivery
|
|
;jCopyUniversalAnywhere
|
|
jmp CopyUniversalAnywhere
|
|
;jCopyMemory
|
|
jmp CopyMemory
|
|
;jCallRWTS
|
|
jmp $FF59 ; modified at runtime
|
|
;jSearchTrack
|
|
jmp SearchTrack
|
|
;jPrintByID
|
|
jmp PrintByID
|
|
;jmodify
|
|
jmp modify
|
|
;jmodify1
|
|
jmp modify1
|
|
;jmodify2
|
|
jmp modify2
|
|
;jmodify3
|
|
jmp modify3
|
|
;jcompare
|
|
jmp compare
|
|
;jcompare1
|
|
jmp compare1
|
|
;jcompare2
|
|
jmp compare2
|
|
;jcompare3
|
|
jmp compare3
|
|
;gDisplayBytes
|
|
!fill 10 ; array of ten bytes for use as
|
|
; substitution strings
|
|
;gHardDiskRef
|
|
!byte 00 ; ProDOS file reference number of target file on hard disk
|
|
; non-zero if open
|
|
;gRAMDiskRef
|
|
!byte 00 ; ProDOS file reference number of temporary file on RAM disk
|
|
; non-zero if open
|
|
;gTargetType
|
|
!byte FALSE ; target type (disk drive, CFFA virtual drive, file on hard disk)
|
|
; see apidefs.a for values
|
|
|
|
;gIsRW18
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootFailure() after reading T00
|
|
|
|
;gMECCFastloadType
|
|
!byte 00 ; int
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
|
|
;gIs13Sector
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootFailure() after reading T00
|
|
|
|
;gIsInfocom18
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootFailure() after reading T00
|
|
|
|
FIRSTFILTER
|
|
;gIsEnlightenment
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gIsBaudville
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gIsLowDOS
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDVolumeName() after identifying ProDOS bootloader
|
|
;gPossibleB4BBBasic
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in xB4BB() after tracing DOS 3.3-shaped RWTS
|
|
;gPossibleWoodbury
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in TraceDOS33c() after tracing DOS 3.3-shaped RWTS
|
|
;gPossibleMECCSwapper
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in TraceDOS33c() after tracing DOS 3.3-shaped RWTS
|
|
;gIsTSR
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gIsDiversi
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gIsPhoenix
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gIsHolle
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gIsMUSERWTS
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gIsRDOS13
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gIsDavidson
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set after reading T22,S00
|
|
;gIsPanglosDOS
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gIsAdvent
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gForceDiskVol
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in patchers/f7f6
|
|
;gPolarwareTamperCheck
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in patchers/polarware
|
|
; used to avoid an expensive search
|
|
;gIsTrillium
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in patchers/trillium
|
|
; used to avoid an expensive search
|
|
;gIsF7F6
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in analyze (SetupF7F6SecondRound)
|
|
; used to avoid an expensive search
|
|
;gIsSierra13
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in sierra13 patcher
|
|
; used to avoid an expensive search
|
|
;gIsSierra
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in sierra patcher
|
|
; used to avoid an expensive search
|
|
;gIsDatasoft
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gIsLaureate
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gAdventureInternational
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in TraceDOS33c() after tracing DOS 3.3-shaped RWTS
|
|
;gIsMilliken1
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in TraceDOS33c() after tracing DOS 3.3-shaped RWTS
|
|
;gIs8b3
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gPossibleD5D5F7
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gIsOptimum
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gPossibleGamco
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in SkipTrack() after reading T22
|
|
;gIsEA
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gIsDavidDOS
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gIsProtDOS
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gIsPascal
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gIsDinkeyDOS
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gIsProDOS
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gCapturedDiskVolumeNumber
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in patchers/t11diskvol.a after reading T11,S00
|
|
;gIsBoot0
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
;gIsDOS32
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set in IDBootloader() after reading T00,S00
|
|
LASTFILTER
|
|
|
|
;gDiskVolumeNumber
|
|
!byte 00 ; int
|
|
; disk volume number from address field of T11,S00
|
|
; only valid if gCapturedDiskVolumeNumber is TRUE
|
|
; never explicitly reset to any default value
|
|
;gLastTrack
|
|
!byte 00 ; int
|
|
; the last track that we should try to read
|
|
; (assuming reading from T22 down to T00)
|
|
; reset to 0 before each operation, but some
|
|
; disks (like DOS3.3P) will change it because
|
|
; they write out the first few DOS tracks
|
|
; manually before seeking up to T22 to convert
|
|
; the rest of the disk
|
|
;gChangedPrefs
|
|
!byte FALSE ; 0=true, 1=false
|
|
; whether we should try to write the configuration file
|
|
; when the program exits
|
|
; set to #TRUE when changing slots
|
|
;gSaidWriting
|
|
!byte FALSE ; 0=true, 1=false
|
|
; reset before each operation
|
|
; set to #TRUE after we print WRITING TO S%s,D%d
|
|
;gTriedUniv
|
|
!byte FALSE ; 0=true, 1=false
|
|
; whether or not we've already tried the built-in RWTS
|
|
; (and therefore a read error is fatal)
|
|
; reset before each operation
|
|
;gPatchCount
|
|
!byte 00 ; int
|
|
; number of patches we've applied to this disk
|
|
; reset before each operation
|
|
; incremented in modify()
|
|
;gMode
|
|
!byte %00000000 ; bit 7 0=verify, 1=see bit 6
|
|
; bit 6 0=demuffin, 1=crack
|
|
; set based on main menu choice
|
|
;HardDiskImagePath
|
|
!fill 37
|
|
;RAMDiskImagePath
|
|
!fill 21
|
|
;HardDiskArray
|
|
!fill 15
|
|
;DiskIIArray
|
|
!fill 7
|
|
;T00PakPtr
|
|
!word $3200
|
|
;kForceLower
|
|
!byte $FF
|
|
;OnlineReturn
|
|
!byte 0
|
|
;VolumeName
|
|
!fill 15
|
|
;mliparam
|
|
!fill 26
|
|
;gSector
|
|
!byte 0
|
|
;gTrack
|
|
!byte 0
|