mirror of
https://github.com/a2-4am/pitch-dark.git
synced 2025-02-08 03:30:35 +00:00
.
This commit is contained in:
parent
92778d4d66
commit
4d3508a65f
59
src/action.a
59
src/action.a
@ -277,62 +277,5 @@ callback_clues
|
|||||||
jmp SoftBell
|
jmp SoftBell
|
||||||
}
|
}
|
||||||
|
|
||||||
!zone {
|
|
||||||
callback_play
|
callback_play
|
||||||
LaunchInterpreter
|
jmp LaunchInterpreter
|
||||||
jsr SaveGlobalPreferences
|
|
||||||
jsr LoadInterpreter
|
|
||||||
bcs .playError
|
|
||||||
; change prefix to folder of file we want the interpreter to open
|
|
||||||
jsr ResetPath
|
|
||||||
lda #<kGameRootDirectory
|
|
||||||
ldy #>kGameRootDirectory
|
|
||||||
jsr AddToPath
|
|
||||||
|
|
||||||
jsr okvs_get
|
|
||||||
!word gPrefsStore
|
|
||||||
!word kLastPlayed
|
|
||||||
jsr AddToPath
|
|
||||||
|
|
||||||
jsr SetPrefix
|
|
||||||
!word gPathname
|
|
||||||
bcs .playError
|
|
||||||
|
|
||||||
; put just the filename at $2006
|
|
||||||
ldy #0
|
|
||||||
lda addrVersions
|
|
||||||
sta $00
|
|
||||||
lda addrVersions+1
|
|
||||||
sta $01
|
|
||||||
- lda ($00),y
|
|
||||||
cmp #$BD ; '='
|
|
||||||
beq .doneBuildingFilename
|
|
||||||
iny
|
|
||||||
and #$7F
|
|
||||||
sta $2006,y
|
|
||||||
bra -
|
|
||||||
.doneBuildingFilename
|
|
||||||
sty $2006
|
|
||||||
|
|
||||||
; shut down WeeGUI and transfer control to interpreter
|
|
||||||
jsr ExitWeeGUI
|
|
||||||
jmp kSystemAddress
|
|
||||||
.playError
|
|
||||||
jmp SoftBell
|
|
||||||
|
|
||||||
LoadInterpreter
|
|
||||||
jsr ResetPath
|
|
||||||
lda #<.interpreterFilename
|
|
||||||
ldy #>.interpreterFilename
|
|
||||||
jsr AddToPath
|
|
||||||
|
|
||||||
jsr LoadFile
|
|
||||||
!word gPathname
|
|
||||||
!word kSystemAddress
|
|
||||||
!word $2000
|
|
||||||
!word kProDOSFileBuffer
|
|
||||||
rts
|
|
||||||
.interpreterFilename
|
|
||||||
!byte 15
|
|
||||||
!raw "ONBEYOND.SYSTEM"
|
|
||||||
}
|
|
||||||
|
121
src/launch.a
Normal file
121
src/launch.a
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
;license:MIT
|
||||||
|
;(c) 2018 by 4am
|
||||||
|
;
|
||||||
|
; load and launch the On Beyond Z-Machine! interpreter
|
||||||
|
;
|
||||||
|
; Public functions
|
||||||
|
; - LaunchInterpreter
|
||||||
|
;
|
||||||
|
.playError
|
||||||
|
jmp SoftBell
|
||||||
|
LaunchInterpreter
|
||||||
|
jsr SaveGlobalPreferences
|
||||||
|
jsr LoadInterpreter
|
||||||
|
bcs .playError
|
||||||
|
|
||||||
|
; change prefix to folder of file we want the interpreter to open
|
||||||
|
jsr ResetPath
|
||||||
|
lda #<kGameRootDirectory
|
||||||
|
ldy #>kGameRootDirectory
|
||||||
|
jsr AddToPath
|
||||||
|
|
||||||
|
jsr okvs_get
|
||||||
|
!word gPrefsStore
|
||||||
|
!word kLastPlayed
|
||||||
|
jsr AddToPath
|
||||||
|
|
||||||
|
jsr SetPrefix
|
||||||
|
!word gPathname
|
||||||
|
bcs .playError
|
||||||
|
|
||||||
|
; put just the filename at $2006
|
||||||
|
ldy #0
|
||||||
|
lda addrVersions
|
||||||
|
sta $00
|
||||||
|
lda addrVersions+1
|
||||||
|
sta $01
|
||||||
|
- lda ($00),y
|
||||||
|
cmp #$BD ; '='
|
||||||
|
beq .doneBuildingFilename
|
||||||
|
iny
|
||||||
|
and #$7F
|
||||||
|
sta $2006,y
|
||||||
|
bra -
|
||||||
|
.doneBuildingFilename
|
||||||
|
sty $2006
|
||||||
|
|
||||||
|
; set options struct at $0300
|
||||||
|
jsr okvs_get
|
||||||
|
!word gPrefsStore
|
||||||
|
!word kForce40
|
||||||
|
jsr okvs_as_boolean
|
||||||
|
beq +
|
||||||
|
lda #$D9
|
||||||
|
!byte $2C
|
||||||
|
+ lda #$CE
|
||||||
|
sta $0300 ; 40/80 columns
|
||||||
|
|
||||||
|
jsr okvs_get
|
||||||
|
!word gPrefsStore
|
||||||
|
!word kForceUpper
|
||||||
|
jsr okvs_as_boolean
|
||||||
|
beq +
|
||||||
|
lda #1
|
||||||
|
!byte $2C
|
||||||
|
+ lda #0
|
||||||
|
sta $0301 ; case
|
||||||
|
|
||||||
|
lda #$FF
|
||||||
|
sta $0302 ; auto-restore
|
||||||
|
|
||||||
|
jsr okvs_get
|
||||||
|
!word gPrefsStore
|
||||||
|
!word kScriptToFile
|
||||||
|
jsr okvs_as_boolean
|
||||||
|
beq +
|
||||||
|
lda #0
|
||||||
|
!byte $2C
|
||||||
|
+ lda #1
|
||||||
|
sta $0303 ; script-to-file
|
||||||
|
|
||||||
|
jsr okvs_get
|
||||||
|
!word gPrefsStore
|
||||||
|
!word kAutoScript
|
||||||
|
jsr okvs_as_boolean
|
||||||
|
beq +
|
||||||
|
lda #0
|
||||||
|
!byte $2C
|
||||||
|
+ lda #1
|
||||||
|
sta $0304 ; auto-script
|
||||||
|
|
||||||
|
lda #1
|
||||||
|
sta $0305 ; warn on missing .sav files
|
||||||
|
|
||||||
|
lda #$A5
|
||||||
|
eor $0300
|
||||||
|
eor $0301
|
||||||
|
eor $0302
|
||||||
|
eor $0303
|
||||||
|
eor $0304
|
||||||
|
eor $0305
|
||||||
|
sta $0306
|
||||||
|
|
||||||
|
; shut down WeeGUI and transfer control to interpreter
|
||||||
|
jsr ExitWeeGUI
|
||||||
|
jmp kSystemAddress
|
||||||
|
|
||||||
|
LoadInterpreter
|
||||||
|
jsr ResetPath
|
||||||
|
lda #<.interpreterFilename
|
||||||
|
ldy #>.interpreterFilename
|
||||||
|
jsr AddToPath
|
||||||
|
|
||||||
|
jsr LoadFile
|
||||||
|
!word gPathname
|
||||||
|
!word kSystemAddress
|
||||||
|
!word $2000
|
||||||
|
!word kProDOSFileBuffer
|
||||||
|
rts
|
||||||
|
.interpreterFilename
|
||||||
|
!byte 15
|
||||||
|
!raw "ONBEYOND.SYSTEM"
|
@ -9,7 +9,6 @@
|
|||||||
; - RepaintSomeViews
|
; - RepaintSomeViews
|
||||||
;
|
;
|
||||||
|
|
||||||
; ROM routines
|
|
||||||
MAGICRTS = $FF58 ; used to set overflow bit
|
MAGICRTS = $FF58 ; used to set overflow bit
|
||||||
|
|
||||||
; View IDs (application-specific, acceptable range 0..15, no duplicates)
|
; View IDs (application-specific, acceptable range 0..15, no duplicates)
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
!source "src/mainscreen.a"
|
!source "src/mainscreen.a"
|
||||||
!source "src/settingsdialog.a"
|
!source "src/settingsdialog.a"
|
||||||
!source "src/sound.a"
|
!source "src/sound.a"
|
||||||
|
!source "src/launch.a"
|
||||||
|
|
||||||
.weeguiFilename
|
.weeguiFilename
|
||||||
!byte 10
|
!byte 10
|
||||||
|
Loading…
x
Reference in New Issue
Block a user