diff --git a/src/ui.demo.a b/src/ui.demo.a index 841be55..5471a2c 100644 --- a/src/ui.demo.a +++ b/src/ui.demo.a @@ -24,8 +24,9 @@ RunDemo sta targetVTAB lda #10 sta minHTAB - +LDADDR sThereAre + +LDADDR sDemoIntro jsr HeavySilkReveal + jsr SetShowingMessage jsr LoadDemoPuzzles +LDADDR DemoCode +ST16 GetNextDemoByte+1 @@ -40,10 +41,19 @@ RunDemo jsr DemoOnEXIT ; does not return LoadDemoPuzzles - ldx #0 -- lda demoPuzzles, x - sta WORLDDATA, x - inx + +LDADDR demoPuzzles + +ST16 $FC + +LDADDR WORLDDATA + +ST16 $FE + ldx #2 + ldy #0 +- lda ($FC), y + sta ($FE), y + iny + bne - + inc $FD + inc $FF + dex bne - jmp PreParseWorldData @@ -59,11 +69,14 @@ DrawDemoPuzzleChrome @s !byte 1,$FD DemoOnEXIT +; out: pops 2 bytes off stack +; A = FF +; Z = 0 +; other flags & registers unknown, assume clobbered + pla + pla lda #$FF sta gWorldID ; invalidate cache - pla - pla - sec rts DemoOnLOAD @@ -108,6 +121,11 @@ DemoOnWAIT DemoOnNEXT=AnimatePuzzleCompleted +DemoOnTYPE + jsr GetNextDemoByte + stx gLastKeyPressed + jmp PlayEventLetter + GetNextDemoByte ldx $FDFD ; SMC inc GetNextDemoByte+1 @@ -126,6 +144,7 @@ DemoDispatchLo !byte DemoOnEXIT !byte >DemoOnLOAD @@ -137,6 +156,7 @@ DemoDispatchHi !byte >DemoOnDOWN !byte >DemoOnWAIT !byte >DemoOnNEXT + !byte >DemoOnTYPE ; opcodes EXIT = 0 @@ -149,27 +169,26 @@ UP = 6 DOWN = 7 WAIT = 8 NEXT = 9 +TYPE = 10 demoPuzzles !raw "AOCD,LTUE,IBLH|ABLE,ITCH,LOUD|...HIDDEN IN THIS PUZZLE",$0A + !raw "WEFP,TLTO,DAOY,FICS|DEFY,FLOP,TACO,WITS,FITS|YOU CAN ALSO TYPE LETTERS",$0A + !raw "AYCWT,CRMIL,GDOLE|ADMIT,CYCLE,GROWL|PUZZLES IN 12 SHAPES AND SIZES",$0A + !raw "EAIIEO,VOJXCS,BIOAOR,HLBDIK|BABIES,ELIXIR,HIJACK,VOODOO,HOODOO|UNCOMMON LETTERS CAN LIGHT THE WAY",$0A + !raw "SALATST,RHHRUCD,TXRNDRS,LEU AEE,E O Y|EXHAUST,LAUNDRY,RELATES,SHORTED,TERRACE,RELATED,TAUNTED,TERNARY|LETTERS CAN BE REUSED",$0A + !raw "PELTEOT,LIRFICS,M TL RN|MILLION,PERFECT,LETTERS|I HOPE YOU ENJOY",$0A !raw "[" sDemo !byte 6 !raw "DEMO-0" -sThereAre +sDemoIntro !byte 20 !raw "THERE ARE 3 WORDS..." -sShift - !byte 28 - !raw "SHIFT COLUMNS TO SPELL WORDS" -sUseAll - !byte 26 - !raw "USE ALL LETTERS TO ADVANCE" DemoCode - !byte SHOW ,sThereAre !byte WAIT ,20 !byte HIDE !byte LOAD ,0,0 @@ -177,17 +196,6 @@ DemoCode !byte HIDE !byte UP !byte WAIT ,2 - !byte UP - !byte WAIT ,5 - !byte DOWN - !byte WAIT ,2 - !byte DOWN - !byte WAIT ,5 - !byte SHOW ,sShift - !byte WAIT ,30 - !byte HIDE - !byte UP - !byte WAIT ,2 !byte RIGHT !byte WAIT ,2 !byte RIGHT @@ -199,8 +207,7 @@ DemoCode ; ---- ; ITLE ; B H - !byte WAIT ,30 - !byte SHOW ,sUseAll + !byte SHOW ,sHelpHeader1 !byte WAIT ,30 !byte HIDE !byte LEFT @@ -254,4 +261,152 @@ DemoCode ; BU ; L !byte NEXT + !byte SHOW ,sHelpHeader2 + !byte WAIT ,30 + !byte HIDE + !byte LOAD ,1,4 + !byte WAIT ,30 + !byte HIDE + !byte TYPE ,"T" + !byte TYPE ,"A" + !byte TYPE ,"C" + !byte TYPE ,"O" + !byte WAIT ,20 + !byte TYPE ,"W" + !byte TYPE ,"I" + !byte TYPE ,"T" + !byte TYPE ,"S" + !byte WAIT ,20 + !byte TYPE ,"D" + !byte TYPE ,"E" + !byte TYPE ,"F" + !byte TYPE ,"Y" + !byte WAIT ,20 + !byte TYPE ,"F" + !byte TYPE ,"L" + !byte TYPE ,"O" + !byte TYPE ,"P" + !byte NEXT + !byte LOAD ,2,1 + !byte WAIT ,30 + !byte HIDE + !byte TYPE ,"G" + !byte TYPE ,"R" + !byte TYPE ,"O" + !byte TYPE ,"W" + !byte TYPE ,"L" + !byte WAIT ,20 + !byte TYPE ,"C" + !byte TYPE ,"Y" + !byte TYPE ,"C" + !byte TYPE ,"L" + !byte TYPE ,"E" + !byte WAIT ,20 + !byte TYPE ,"A" + !byte TYPE ,"D" + !byte TYPE ,"M" + !byte TYPE ,"I" + !byte TYPE ,"T" + !byte NEXT + !byte LOAD ,3,6 + !byte WAIT ,30 + !byte HIDE + !byte TYPE ,"V" + !byte TYPE ,"O" + !byte TYPE ,"O" + !byte TYPE ,"D" + !byte TYPE ,"O" + !byte TYPE ,"O" + !byte WAIT ,20 + !byte TYPE ,"E" + !byte TYPE ,"L" + !byte TYPE ,"I" + !byte TYPE ,"X" + !byte TYPE ,"I" + !byte TYPE ,"R" + !byte WAIT ,20 + !byte TYPE ,"H" + !byte TYPE ,"I" + !byte TYPE ,"J" + !byte TYPE ,"A" + !byte TYPE ,"C" + !byte TYPE ,"K" + !byte WAIT ,20 + !byte TYPE ,"B" + !byte TYPE ,"A" + !byte TYPE ,"B" + !byte TYPE ,"I" + !byte TYPE ,"E" + !byte TYPE ,"S" + !byte NEXT + !byte LOAD ,4,11 + !byte WAIT ,30 + !byte HIDE + !byte TYPE ,"L" + !byte TYPE ,"A" + !byte TYPE ,"U" + !byte TYPE ,"N" + !byte TYPE ,"D" + !byte TYPE ,"R" + !byte TYPE ,"Y" + !byte WAIT ,20 + !byte TYPE ,"S" + !byte TYPE ,"H" + !byte TYPE ,"O" + !byte TYPE ,"R" + !byte TYPE ,"T" + !byte TYPE ,"E" + !byte TYPE ,"D" + !byte WAIT ,20 + !byte TYPE ,"E" + !byte TYPE ,"X" + !byte TYPE ,"H" + !byte TYPE ,"A" + !byte TYPE ,"U" + !byte TYPE ,"S" + !byte TYPE ,"T" + !byte WAIT ,20 + !byte TYPE ,"T" + !byte TYPE ,"E" + !byte TYPE ,"R" + !byte TYPE ,"R" + !byte TYPE ,"A" + !byte TYPE ,"C" + !byte TYPE ,"E" + !byte WAIT ,20 + !byte TYPE ,"R" + !byte TYPE ,"E" + !byte TYPE ,"L" + !byte TYPE ,"A" + !byte TYPE ,"T" + !byte TYPE ,"E" + !byte TYPE ,"S" + !byte NEXT + !byte LOAD ,5,3 + !byte WAIT ,30 + !byte HIDE + !byte TYPE ,"M" + !byte TYPE ,"I" + !byte TYPE ,"L" + !byte TYPE ,"L" + !byte TYPE ,"I" + !byte TYPE ,"O" + !byte TYPE ,"N" + !byte WAIT ,20 + !byte TYPE ,"P" + !byte TYPE ,"E" + !byte TYPE ,"R" + !byte TYPE ,"F" + !byte TYPE ,"E" + !byte TYPE ,"C" + !byte TYPE ,"T" + !byte WAIT ,20 + !byte TYPE ,"L" + !byte TYPE ,"E" + !byte TYPE ,"T" + !byte TYPE ,"T" + !byte TYPE ,"E" + !byte TYPE ,"R" + !byte TYPE ,"S" + !byte NEXT !byte EXIT diff --git a/src/ui.main.menu.a b/src/ui.main.menu.a index e6ae4cf..9a801a9 100644 --- a/src/ui.main.menu.a +++ b/src/ui.main.menu.a @@ -104,7 +104,7 @@ MainMenuEventReturn MainMenuEventD jsr RunDemo - bcs + ; always branches + bne + ; always branches MainMenuEventC jsr AboutPage diff --git a/src/ui.message.a b/src/ui.message.a index 5f495a1..e2f6bc4 100644 --- a/src/ui.message.a +++ b/src/ui.message.a @@ -67,6 +67,7 @@ ShowMessage ; will clear message before showing the new one, so there may be a small flicker jsr HideMessage +PRINT_AT currentMessage, 7, 0 +SetShowingMessage lda #1 sta showingMessage rts