From 7fc4bd830d9efab743244a08d48f704f23f77ba8 Mon Sep 17 00:00:00 2001 From: 4am Date: Fri, 20 Dec 2019 10:25:30 -0500 Subject: [PATCH] move help text to external text file, use Ctrl-A for about page --- Makefile | 3 ++- res/HELP | Bin 8184 -> 8184 bytes res/_FileInformation.txt | 1 + res/attic/transfer.dsk | Bin 143360 -> 143360 bytes res/help.txt | 1 + src/prodos.path.a | 6 +++++- src/ui.browse.mode.a | 2 +- src/ui.credits.a | 12 ++++++++++++ src/ui.font.lc2.a | 32 +++++++++++++++++++++----------- src/ui.offscreen.a | 2 +- src/ui.search.mode.a | 2 +- winmake.bat | 2 ++ 12 files changed, 47 insertions(+), 16 deletions(-) create mode 100644 res/help.txt diff --git a/Makefile b/Makefile index 835d8a1ca..c9631ae91 100644 --- a/Makefile +++ b/Makefile @@ -28,8 +28,9 @@ dsk: md asm $(CADIUS) ADDFILE build/"$(DISK)" "/$(VOLUME)/" "build/LAUNCHER.SYSTEM" >>build/log for f in res/*.conf; do rsync -aP "$$f" build/$$(basename $$f | tr '[:lower:]' '[:upper:]') >>build/log; done rsync -aP res/credits.txt build/CREDITS >>build/log + rsync -aP res/help.txt build/HELPTEXT >>build/log bin/padto.sh 512 build/PREFS.CONF >>build/log - for f in res/TITLE res/COVER res/HELP build/*.CONF build/CREDITS; do $(CADIUS) ADDFILE build/"$(DISK)" "/$(VOLUME)/" "$$f" >>build/log; done + for f in res/TITLE res/COVER res/HELP build/*.CONF build/CREDITS build/HELPTEXT; do $(CADIUS) ADDFILE build/"$(DISK)" "/$(VOLUME)/" "$$f" >>build/log; done for f in res/title.hgr res/title.dhgr res/action.hgr res/action.dhgr res/action.gr res/artwork.shr res/attract res/ss res/demo res/title.animated; do rsync -aP "$$f"/* build/$$(basename $$f | tr '[:lower:]' '[:upper:]') >>build/log; done bin/buildfileinfo.sh build/TITLE.HGR "06" "4000" >>build/log bin/buildfileinfo.sh build/TITLE.DHGR "06" "4000" >>build/log diff --git a/res/HELP b/res/HELP index c17d2a6155dc0a6ed82c5b62385a00bf84534a0c..cea01e0a9a738d5e824b3c7ee6fe856f57271ca7 100644 GIT binary patch delta 1013 zcmZ9LJxtVK7{}XQd)FR!K)K%0`|N#STvT*1egzoZ^a2=yiJHjfDiOrNXiwrLGN|>x z8)PDEj%+uZ9BNz~Z*VXSf*KMA6`%KcizVK0P2cu?f4}GdJl!APAAflU*R5i3HG`X0 z20MlkES*JLD`CeqWB%_an6kX!=LJk#RW#K(T%&7OHTix|wduZODD-nNZC7yD=);s& z#%?Kr16KJH@H$`d25O{~$84Kx!yx>hV@|Fy3u zy@MB2YePzyED>~cbj=ZAVTKkKTkr#`8gxwTSz|~Qa#V32W|DbXdD6z)bQx>OJ5--! zPHjkLA2V5_vy4e=L;_P0FvY+W0~5av+KTV{WF}vHoIWLDV1cw0NFNdC&x#DY&;5hj5^f*D z)0iC^X82GDA7Xft;7=*u?Uq8M8k(7i-ud08H4pb3F<(S>h-@(VgQr8yo}lGACbRKF z>|!=D$V!9k5rdpG$b|;ELxT-6m{|5hgW-o_2=Q_FR+Iw|dKC-qd79{&x{miwo!%OF zl|Ly)KGr*EqovibnlW%czr>x-OY%3DYA;A~!J)UyqPwx`nvACbcIJ@zH(ZWq^?k24Rk9^ T#E56(x#lp@6T~DwdB^?&wwYEb delta 2033 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 diff --git a/res/help.txt b/res/help.txt new file mode 100644 index 000000000..a9a02fa95 --- /dev/null +++ b/res/help.txt @@ -0,0 +1 @@ + T Y P E to find a game < and > to browse games [Return] to play [Space] to preview [Ctrl-C] to cheat [Esc] to go back [Ctrl-A] about [eof] \ No newline at end of file diff --git a/src/prodos.path.a b/src/prodos.path.a index cf7a59724..7d07cf7f9 100644 --- a/src/prodos.path.a +++ b/src/prodos.path.a @@ -122,10 +122,14 @@ kCreditsFile !byte 7 !raw "CREDITS" -kHelpFile +kHelpBackgroundFile !byte 4 !raw "HELP" +kHelpTextFile + !byte 8 + !raw "HELPTEXT" + kTitleFile !byte 5 !raw "TITLE" diff --git a/src/ui.browse.mode.a b/src/ui.browse.mode.a index 683f4d0c3..eb313be82 100644 --- a/src/ui.browse.mode.a +++ b/src/ui.browse.mode.a @@ -145,7 +145,7 @@ BrowseDispatchTableHi kNumBrowseKeys = 12 ; number of entries in next 2 tables (each) BrowseKeys !byte $83 ; Ctrl-C = toggle cheat mode - !byte $A6 ; '&' = credits + !byte $81 ; Ctrl-A = about !byte $AF ; '/' = help !byte $BF ; '?' = help !byte $A0 ; Space = mini attract mode diff --git a/src/ui.credits.a b/src/ui.credits.a index 4bf022fd9..0cbb5b0e4 100644 --- a/src/ui.credits.a +++ b/src/ui.credits.a @@ -25,6 +25,7 @@ Credits lda OffscreenPage ror ; draw on offscreen page +LDADDR $8000 + ldx #0 jsr DrawPage ; draw credits jsr ShowOtherPage ; show credits jsr WaitForKeyFor30Seconds; wait @@ -43,13 +44,24 @@ Credits ; C clear, all other flags and registers clobbered ;------------------------------------------------------------------------------ Help + jsr LoadFile ; load help text into $8000 + !word kRootDirectory + !word kHelpTextFile + !word $8000 jsr LoadHelpOffscreen + lda OffscreenPage + ror ; draw on offscreen page + +LDADDR $8000 + ldx #8 + jsr DrawPage ; draw help text jsr ShowOtherPage jsr WaitForKeyFor30Seconds cmp #$88 beq BrowseMode cmp #$83 beq - + cmp #$81 + beq - jsr IsUpDownOrRightArrow beq - jsr IsSearchKey diff --git a/src/ui.font.lc2.a b/src/ui.font.lc2.a index 0dac4ab16..85e873479 100644 --- a/src/ui.font.lc2.a +++ b/src/ui.font.lc2.a @@ -10,19 +10,24 @@ DrawPageInternal ; A/Y contains address of character buffer +; X contains 0-indexed left margin (HTAB) ; carry bit clear -> draw on page 1 ; carry bit set -> draw on page 2 -; drawing starts at VTAB 0, HTAB 0 +; drawing starts at VTAB 0 +; each line starts at column X which was passed in (0-indexed) ; clobbers PTR ; clobbers A/X/Y ; preserves all flags, by a quirk of implementation php + stx @leftMargin ldx #0 stx VTAB +STAY PTR @drawLine +@leftMargin=*+1 + lda #$FD ; SMC + sta HTAB ldy #0 - sty HTAB @parseLine lda (PTR),y cmp #$5B ; '[' at beginning on line @@ -31,19 +36,20 @@ DrawPageInternal beq @donePage + cmp #$0D beq @doneParsingLine - cmp #$2A - bne + - lda #$10 - sta (PTR),y ; asterisk -> dot, small -+ cmp #$7E - bne + - lda #$11 - sta (PTR),y ; tilde -> dot, medium + ldx #3 +- cmp @subs_a,x + beq @makesub + dex + bpl - + bmi + +@makesub + lda @subs_b,x + sta (PTR),y + iny bne @parseLine @doneParsingLine sty SAVE - cpy #0 + tya beq @skip ldx SAVE +LDAY PTR @@ -62,6 +68,10 @@ DrawPageInternal @donePage plp rts +@subs_a + !byte $2A,$7E,$3C,$3E +@subs_b + !byte $10,$11,$08,$15 Draw40CharsInternal ; A/Y contains address of character buffer diff --git a/src/ui.offscreen.a b/src/ui.offscreen.a index 3e58df17a..fd9120fdd 100644 --- a/src/ui.offscreen.a +++ b/src/ui.offscreen.a @@ -57,7 +57,7 @@ LoadTitleOffscreen ; out: all flags and registers clobbered ;------------------------------------------------------------------------------ LoadHelpOffscreen - lda #>build\log cscript /nologo bin\rsync.js res\*.conf build >>build\log 1>nul copy /y res\credits.txt build\CREDITS >>build\log +1>nul copy /y res\help.txt build\HELPTEXT >>build\log cscript /nologo bin\padto.js 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 for %%q in (build\*.CONF) do %CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "%%q" >>build\log %CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "build\CREDITS" >>build\log +%CADIUS% ADDFILE "build\%DISK%" "/%VOLUME%/" "build\HELPTEXT" >>build\log cscript /nologo bin\rsync.js res\title.hgr\* build\TITLE.HGR >>build\log cscript /nologo bin\rsync.js res\title.dhgr\* build\TITLE.DHGR >>build\log cscript /nologo bin\rsync.js res\action.hgr\* build\ACTION.HGR >>build\log