mirror of
https://github.com/a2-4am/4cade.git
synced 2024-12-24 22:31:40 +00:00
Merge branch 'master' of https://github.com/a2-4am/4cade
This commit is contained in:
commit
0c99e863f3
3
Makefile
3
Makefile
@ -22,8 +22,6 @@ ACME=acme
|
||||
# version 1.4.0 or later
|
||||
CADIUS=cadius
|
||||
|
||||
# some scripts also require Python 3
|
||||
|
||||
dsk: md asm
|
||||
cp res/blank.2mg build/"$(DISK)" >>build/log
|
||||
cp res/_FileInformation.txt build/ >>build/log
|
||||
@ -37,6 +35,7 @@ dsk: md asm
|
||||
bin/padto.sh 512 build/PREFS.CONF
|
||||
$(CADIUS) ADDFILE build/"$(DISK)" "/$(VOLUME)/" "res/TITLE" >>build/log
|
||||
$(CADIUS) ADDFILE build/"$(DISK)" "/$(VOLUME)/" "res/COVER" >>build/log
|
||||
$(CADIUS) ADDFILE build/"$(DISK)" "/$(VOLUME)/" "res/HELP" >>build/log
|
||||
$(CADIUS) ADDFILE build/"$(DISK)" "/$(VOLUME)/" "build/PREFS.CONF" >>build/log
|
||||
$(CADIUS) ADDFILE build/"$(DISK)" "/$(VOLUME)/" "build/GAMES.CONF" >>build/log
|
||||
$(CADIUS) ADDFILE build/"$(DISK)" "/$(VOLUME)/" "build/ATTRACT.CONF" >>build/log
|
||||
|
@ -10,7 +10,6 @@ You will need
|
||||
- [Xcode command line tools](https://www.google.com/search?q=xcode+command+line+tools)
|
||||
- [ACME](https://sourceforge.net/projects/acme-crossass/)
|
||||
- [sicklittlemonkey's Cadius fork](https://github.com/sicklittlemonkey/cadius)
|
||||
- [Python 3](https://www.python.org)
|
||||
|
||||
Then open a terminal window and type
|
||||
|
||||
@ -36,6 +35,3 @@ C:\> CD 4CADE
|
||||
C:\4cade> WINMAKE
|
||||
```
|
||||
If all goes well, the `BUILD\` subdirectory will contain a `4CADE.2MG` image which can be mounted in emulators like [AppleWin](https://github.com/AppleWin/AppleWin).
|
||||
|
||||
## Navigating the code
|
||||
|
||||
|
BIN
res/attic/transfer.dsk
Executable file → Normal file
BIN
res/attic/transfer.dsk
Executable file → Normal file
Binary file not shown.
@ -80,6 +80,10 @@ kCreditsFile
|
||||
!byte 7
|
||||
!raw "CREDITS"
|
||||
|
||||
kHelpFile
|
||||
!byte 4
|
||||
!raw "HELP"
|
||||
|
||||
kTitleFile
|
||||
!byte 5
|
||||
!raw "TITLE"
|
||||
|
@ -30,9 +30,10 @@ kBrowseNext = 2
|
||||
kBrowseExitToSearch = 3
|
||||
kBrowseTab = 4
|
||||
kBrowseLaunch = 5
|
||||
kBrowseCredits = 6
|
||||
kBrowseCheat = 7
|
||||
kSoftBell = 8
|
||||
kBrowseHelp = 6
|
||||
kBrowseCredits = 7
|
||||
kBrowseCheat = 8
|
||||
kSoftBell = 9
|
||||
|
||||
ldy #kNumBrowseKeys
|
||||
- dey
|
||||
@ -121,6 +122,7 @@ BrowseDispatchTableLo
|
||||
!byte <SearchMode
|
||||
!byte <OnBrowseTab
|
||||
!byte <OnBrowseLaunch
|
||||
!byte <Help
|
||||
!byte <Credits
|
||||
!byte <OnBrowseCheat
|
||||
!byte <SoftBell
|
||||
@ -131,15 +133,17 @@ BrowseDispatchTableHi
|
||||
!byte >SearchMode
|
||||
!byte >OnBrowseTab
|
||||
!byte >OnBrowseLaunch
|
||||
!byte >Help
|
||||
!byte >Credits
|
||||
!byte >OnBrowseCheat
|
||||
!byte >SoftBell
|
||||
|
||||
kNumBrowseKeys = 11 ; number of entries in next 2 tables (each)
|
||||
kNumBrowseKeys = 12 ; number of entries in next 2 tables (each)
|
||||
BrowseKeys
|
||||
!byte $83 ; Ctrl-C = toggle cheat mode
|
||||
!byte $AF ; '/' = credits
|
||||
!byte $BF ; '?' = credits
|
||||
!byte $A6 ; '&' = credits
|
||||
!byte $AF ; '/' = help
|
||||
!byte $BF ; '?' = help
|
||||
!byte $A0 ; Space = mini attract mode
|
||||
!byte $89 ; TAB = mini attract mode
|
||||
!byte $8D ; ENTER = launch current game
|
||||
@ -151,7 +155,8 @@ BrowseKeys
|
||||
BrowseKeyDispatch
|
||||
!byte kBrowseCheat
|
||||
!byte kBrowseCredits
|
||||
!byte kBrowseCredits
|
||||
!byte kBrowseHelp
|
||||
!byte kBrowseHelp
|
||||
!byte kBrowseTab
|
||||
!byte kBrowseTab
|
||||
!byte kBrowseLaunch
|
||||
|
@ -23,3 +23,24 @@ Credits
|
||||
jsr ShowOtherPage ; back to previous page
|
||||
clc ; if called from search mode, tell caller not to refresh
|
||||
rts
|
||||
|
||||
Help
|
||||
; clobbers all
|
||||
jsr LoadHelpOffscreen
|
||||
jsr ShowOtherPage
|
||||
jsr WaitForKeyFor30Seconds
|
||||
cmp #$83
|
||||
beq @exitWithoutShowingOtherPage
|
||||
jsr IsUpDownOrRightArrow
|
||||
beq @exitWithoutShowingOtherPage
|
||||
cmp #$88
|
||||
beq @exitViaBrowse
|
||||
jsr IsSearchKey
|
||||
beq @exitWithoutShowingOtherPage
|
||||
bit CLEARKBD
|
||||
jsr ShowOtherPage
|
||||
@exitWithoutShowingOtherPage
|
||||
clc
|
||||
rts
|
||||
@exitViaBrowse
|
||||
jmp BrowseMode
|
||||
|
@ -6,6 +6,7 @@
|
||||
; - GetOffscreenAddress
|
||||
; - LoadTitleOffscreen
|
||||
; - LoadCoverOffscreen
|
||||
; - LoadHelpOffscreen
|
||||
; - LoadGameTitleOffscreen
|
||||
; - ShowOtherPage
|
||||
; - ToggleOffscreenPage
|
||||
@ -55,6 +56,17 @@ LoadTitleOffscreen
|
||||
;; ; last with the high byte of the address,
|
||||
;; ; which is never 0. I miss my 65c02.
|
||||
;;}
|
||||
;------------------------------------------------------------------------------
|
||||
; LoadHelpOffscreen
|
||||
; load help screen in the HGR page that is currently not showing
|
||||
;
|
||||
; in: none
|
||||
; out: all flags and registers clobbered
|
||||
;------------------------------------------------------------------------------
|
||||
LoadHelpOffscreen
|
||||
+LDADDR kHelpFile
|
||||
bne LoadOffscreenFromAY ; always branches
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; LoadCoverOffscreen
|
||||
; load cover screen in the HGR page that is currently not showing
|
||||
@ -63,9 +75,8 @@ LoadTitleOffscreen
|
||||
; out: all flags and registers clobbered
|
||||
;------------------------------------------------------------------------------
|
||||
LoadCoverOffscreen
|
||||
; clobbers all
|
||||
+LDADDR kCoverFile
|
||||
+
|
||||
LoadOffscreenFromAY
|
||||
+STAY @fname
|
||||
jsr GetOffscreenAddress
|
||||
sta +
|
||||
|
@ -13,9 +13,7 @@
|
||||
;
|
||||
|
||||
Instructions
|
||||
!text "[Type to search, "
|
||||
!byte $15 ; right arrow character
|
||||
!text " to browse] "
|
||||
!text "[Type to search, ? for help ] "
|
||||
VisibleGameCount
|
||||
!text "000 games"
|
||||
ReturnToPlay
|
||||
|
@ -51,13 +51,9 @@ SearchMode
|
||||
; we want to switch to Browse Mode with the keyboard still hot so
|
||||
; that mode finds and dispatches the arrow key.
|
||||
|
||||
cmp #$8B ; up arrow switches to browse mode
|
||||
beq @arrow
|
||||
cmp #$95 ; also right arrow
|
||||
beq @arrow
|
||||
cmp #$8A ; also down arrow
|
||||
jsr IsUpDownOrRightArrow
|
||||
bne @notArrow
|
||||
@arrow ldx #kInputBrowse
|
||||
ldx #kInputBrowse
|
||||
bne .InputDispatch ; always branches
|
||||
@notArrow
|
||||
bit CLEARKBD
|
||||
@ -187,6 +183,14 @@ IsSearchKey
|
||||
ldx #1
|
||||
rts
|
||||
|
||||
IsUpDownOrRightArrow
|
||||
cmp #$8B ; up arrow
|
||||
beq @done
|
||||
cmp #$95 ; right arrow
|
||||
beq @done
|
||||
cmp #$8A ; down arrow
|
||||
@done rts
|
||||
|
||||
; indices into InputDispatchTable
|
||||
kInputSearch = 0
|
||||
kInputClear = 1
|
||||
@ -194,9 +198,10 @@ kInputBack = 2
|
||||
kInputBrowse = 3
|
||||
kInputTab = 4
|
||||
kInputLaunch = 5
|
||||
kInputCredits = 6
|
||||
kInputCheat = 7
|
||||
kInputError = 8
|
||||
kInputHelp = 6
|
||||
kInputCredits = 7
|
||||
kInputCheat = 8
|
||||
kInputError = 9
|
||||
|
||||
InputDispatchTableLo
|
||||
!byte <OnSearch
|
||||
@ -205,6 +210,7 @@ InputDispatchTableLo
|
||||
!byte <BrowseMode
|
||||
!byte <OnTab
|
||||
!byte <OnLaunch
|
||||
!byte <Help
|
||||
!byte <Credits
|
||||
!byte <OnCheat
|
||||
!byte <OnError
|
||||
@ -215,15 +221,17 @@ InputDispatchTableHi
|
||||
!byte >BrowseMode
|
||||
!byte >OnTab
|
||||
!byte >OnLaunch
|
||||
!byte >Help
|
||||
!byte >Credits
|
||||
!byte >OnCheat
|
||||
!byte >OnError
|
||||
|
||||
kNumInputKeys = 9 ; number of entries in next 2 tables (each)
|
||||
kNumInputKeys = 10 ; number of entries in next 2 tables (each)
|
||||
InputKeys
|
||||
!byte $83 ; Ctrl-C = toggle cheat mode
|
||||
!byte $AF ; '/' = credits
|
||||
!byte $BF ; '?' = credits
|
||||
!byte $A6 ; '&' = credits
|
||||
!byte $AF ; '/' = help
|
||||
!byte $BF ; '?' = help
|
||||
!byte $A0 ; Space = mini attract mode
|
||||
!byte $89 ; TAB = mini attract mode
|
||||
!byte $88 ; left arrow = delete (may as well, since
|
||||
@ -235,7 +243,8 @@ InputKeys
|
||||
InputKeyDispatch
|
||||
!byte kInputCheat
|
||||
!byte kInputCredits
|
||||
!byte kInputCredits
|
||||
!byte kInputHelp
|
||||
!byte kInputHelp
|
||||
!byte kInputTab
|
||||
!byte kInputTab
|
||||
!byte kInputBack
|
||||
|
Loading…
Reference in New Issue
Block a user