This commit is contained in:
4am 2020-09-27 15:31:32 -04:00
parent 108a9b2fb5
commit 37fb573836
3 changed files with 186 additions and 30 deletions

View File

@ -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 <DemoOnDOWN
!byte <DemoOnWAIT
!byte <DemoOnNEXT
!byte <DemoOnTYPE
DemoDispatchHi
!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,>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,>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,>sUseAll
!byte SHOW ,<sHelpHeader1,>sHelpHeader1
!byte WAIT ,30
!byte HIDE
!byte LEFT
@ -254,4 +261,152 @@ DemoCode
; BU
; L
!byte NEXT
!byte SHOW ,<sHelpHeader2,>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

View File

@ -104,7 +104,7 @@ MainMenuEventReturn
MainMenuEventD
jsr RunDemo
bcs + ; always branches
bne + ; always branches
MainMenuEventC
jsr AboutPage

View File

@ -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