From 522f074af5dd03b02082e8cf01b08f88766e7b47 Mon Sep 17 00:00:00 2001 From: 4am Date: Sun, 27 Sep 2020 19:19:59 -0400 Subject: [PATCH] demo --- src/puzzle.a | 16 +++--- src/ui.demo.a | 151 ++++++++++++-------------------------------------- 2 files changed, 43 insertions(+), 124 deletions(-) diff --git a/src/puzzle.a b/src/puzzle.a index f56a60e..9e17207 100644 --- a/src/puzzle.a +++ b/src/puzzle.a @@ -34,10 +34,10 @@ puzzle_data5 = $0332 ; [0x08 bytes] puzzle_data6 = $033A ; [0x08 bytes] puzzle_data7 = $0342 ; [0x08 bytes] puzzle_data8 = $034A ; [0x08 bytes] -puzzle_word_count = $0352 ; [0x01 byte ] number of records in -puzzle_words = $0353 ; [0x80 bytes] +target_word_count = $0352 ; [0x01 byte ] number of records in +target_words = $0353 ; [0x80 bytes] ; each 8-byte record is a -length word, no prefix - ; extra bytes in each record are ignored + ; extra bytes in each record are guaranteed to be 0x00 ;------------------------------------------------------------------------------ ; InitPuzzleStorage @@ -94,19 +94,19 @@ AddLineToPuzzle ; out: all registers & flags clobbered ;------------------------------------------------------------------------------ AddTargetWordToPuzzle - lda puzzle_word_count + lda target_word_count asl asl asl tax ldy #0 - lda ($FE), y - sta puzzle_words, x + sta target_words, x inx iny cpy puzzle_logical_width bne - - inc puzzle_word_count + inc target_word_count rts unused_counter=$FD @@ -123,7 +123,7 @@ unused_counter=$FD ; all other registers & flags clobbered ;------------------------------------------------------------------------------ CheckForTargetWord - +LDADDR puzzle_words + +LDADDR target_words +ST16 $FE ldx #0 ; word index @checkword @@ -159,7 +159,7 @@ CheckForTargetWord bcc + inc $FF + inx - cpx puzzle_word_count + cpx target_word_count bne @checkword @notfound sec diff --git a/src/ui.demo.a b/src/ui.demo.a index 5471a2c..e0d2372 100644 --- a/src/ui.demo.a +++ b/src/ui.demo.a @@ -7,9 +7,6 @@ ; - RunDemo ; -; puzzle 0: -; AOCD,LTLE,IBUH|ABLE,ITCH,LOUD - ;------------------------------------------------------------------------------ ; RunDemo ; run self-running demo until keypress or completion @@ -123,8 +120,22 @@ DemoOnNEXT=AnimatePuzzleCompleted DemoOnTYPE jsr GetNextDemoByte - stx gLastKeyPressed - jmp PlayEventLetter + txa + asl + asl + asl +- tax + pha + lda target_words, x + beq + + sta gLastKeyPressed + jsr PlayEventLetter + pla + clc + adc #1 + bcc - ++ pla + rts GetNextDemoByte ldx $FDFD ; SMC @@ -267,146 +278,54 @@ DemoCode !byte LOAD ,1,4 !byte WAIT ,30 !byte HIDE - !byte TYPE ,"T" - !byte TYPE ,"A" - !byte TYPE ,"C" - !byte TYPE ,"O" + !byte TYPE ,2 !byte WAIT ,20 - !byte TYPE ,"W" - !byte TYPE ,"I" - !byte TYPE ,"T" - !byte TYPE ,"S" + !byte TYPE ,3 !byte WAIT ,20 - !byte TYPE ,"D" - !byte TYPE ,"E" - !byte TYPE ,"F" - !byte TYPE ,"Y" + !byte TYPE ,0 !byte WAIT ,20 - !byte TYPE ,"F" - !byte TYPE ,"L" - !byte TYPE ,"O" - !byte TYPE ,"P" + !byte TYPE ,1 !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 TYPE ,2 !byte WAIT ,20 - !byte TYPE ,"C" - !byte TYPE ,"Y" - !byte TYPE ,"C" - !byte TYPE ,"L" - !byte TYPE ,"E" + !byte TYPE ,1 !byte WAIT ,20 - !byte TYPE ,"A" - !byte TYPE ,"D" - !byte TYPE ,"M" - !byte TYPE ,"I" - !byte TYPE ,"T" + !byte TYPE ,0 !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 TYPE ,3 !byte WAIT ,20 - !byte TYPE ,"E" - !byte TYPE ,"L" - !byte TYPE ,"I" - !byte TYPE ,"X" - !byte TYPE ,"I" - !byte TYPE ,"R" + !byte TYPE ,1 !byte WAIT ,20 - !byte TYPE ,"H" - !byte TYPE ,"I" - !byte TYPE ,"J" - !byte TYPE ,"A" - !byte TYPE ,"C" - !byte TYPE ,"K" + !byte TYPE ,2 !byte WAIT ,20 - !byte TYPE ,"B" - !byte TYPE ,"A" - !byte TYPE ,"B" - !byte TYPE ,"I" - !byte TYPE ,"E" - !byte TYPE ,"S" + !byte TYPE ,0 !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 TYPE ,1 !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 TYPE ,3 !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 TYPE ,0 !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 TYPE ,4 !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 TYPE ,2 !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 TYPE ,0 !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 TYPE ,1 !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 TYPE ,2 !byte NEXT !byte EXIT