SCR #87 0 ( SPRITE DEMO PROGRAM PAGE 1) : BLUEBIRD ; BASE->R HEX 1 2 : DDDELAY 10 0 DO DDELAY LOOP ; 3 : SET-COL 400 0 DO DUP I VSBW LOOP DROP ; 4 5 6 0 VARIABLE #STRIKES 0 VARIABLE CLIMIT 7 0 VARIABLE DOG-RUNS 0 VARIABLE STRIKE 8 6 VARIABLE DROP-SPEED 4 VARIABLE ESCAPE-VELOCITY 9 0 VARIABLE EGG-FLAG 0 VARIABLE EGGS 10 0 VARIABLE MISSES 0 VARIABLE DEAD-DOGS 11 30 VARIABLE EGGS-IN-ROUND 0 VARIABLE YOU-LOSE 12 0 VARIABLE VPAD --> 13 14 15 SCR #88 0 ( SPRITE DEMO PROGRAM PAGE 2) 1 2 1818 VARIABLE DOGGIE#S 1819 , 191A , 1A1B , 1B1A , 3 4 1211 VARIABLE PATTERN#S 1011 , 1213 , 1415 , 1413 , 5 6 1619 VARIABLE SCRN#S 1B1E , 7 8 : DOGGIE# DOGGIE#S + C@ ; 9 10 : PATTERN# PATTERN#S + C@ ; 11 12 : SCRN# SCRN#S + C@ ; 13 --> 14 15 SCR #89 0 ( SPRITE DEMO PROGRAM PAGE 3) 1 2424 VARIABLE SPRITE.PATTS 2 2424 , 3C18 , 0000 , 0081 , 4224 , 3C18 , 0000 , 3 0000 , 42A5 , 3C18 , 0000 , 0000 , 0066 , BD18 , 0000 , 4 0000 , 0000 , 183C , 6600 , 0000 , 0000 , 183C , 2424 , 5 0000 , 0000 , 0000 , 1818 , 1234 , BCDE , 0356 , A986 , 6 0000 , 1C2C , 103C , 2B28 , 0000 , 1C2C , 103C , 2A4A , 7 0000 , 1C2C , 103C , D414 , 0000 , 1C2C , 103C , D600 , 8 0000 , 0000 , 0000 , 2418 , 2038 , 0808 , 080C , 0602 , 9 4070 , 1010 , 1808 , 0404 , 1010 , 3020 , 2010 , 0808 , 10 0604 , C483 , 9919 , 0000 , 0302 , 0200 , 0040 , 40C0 , 11 0070 , 1000 , 0000 , 0000 , 0CE2 , 4181 , 854B , 3000 , 12 000C , 3E7E , 7A30 , 0000 , 0004 , 3A42 , 2412 , 0A0C , 13 0000 , 043C , 180C , 0400 , 3844 , 8482 , 4181 , B54A , 14 0038 , 787C , 3E7E , 4A00 , 15 --> TI FORTH --- a fig-FORTH extension SCR #90 0 ( SPRITE DEMO PROGRAM PAGE 4 - SOUND LISTS ) 1 004E VARIABLE BELL1 0680 , 0A90 , AA03 , C003 , 0680 , 0A91 , 2 AA03 , C103 , 0680 , 0A93 , AA03 , C303 , 0680 , 0A95 , AA03 , 3 C503 , 0680 , 0A97 , AA03 , C701 , 0680 , 0A9A , AA03 , CA01 , 4 0680 , 0A9A , AA03 , CA01 , 0680 , 0A9B , AA03 , CB01 , 0680 , 5 0A9E , AA03 , CE01 , 049F , BFDF , FF00 , 6 004E VARIABLE BELL2 0685 , 0690 , A502 , C003 , 0685 , 0691 , 7 0A52 , C103 , 0685 , 0693 , A502 , C303 , 0685 , 0695 , A502 , 8 C503 , 0685 , 0697 , A502 , C701 , 0685 , 069A , A502 , CA01 , 9 0685 , 069C , A502 , CC01 , 0685 , 069D , A502 , CD01 , 0685 , 10 069E , A502 , CE01 , 049F , BFDF , FF00 , 11 004E VARIABLE BELL3 0682 , 0390 , A201 , C003 , 0682 , 0391 , 12 A201 , C103 , 0682 , 0393 , A201 , C303 , 0682 , 0395 , A201 , 13 C503 , 0682 , 0397 , A201 , C701 , 0680 , 039A , A201 , CA01 , 14 0680 , 039C , A201 , CC01 , 0680 , 039D , A201 , CD01 , 0680 , 15 039E , A201 , CE01 , 049F , BFDF , FF00 , --> SCR #91 0 ( SPRITE DEMO PROGRAM PAGE 5 - MORE SOUND LISTS) 1 002E VARIABLE CRASH1 049F , BFDF , FF01 , 0589 , 3F98 , E6F2 , 2 1405 , 893F , 9FE5 , F514 , 02E5 , F714 , 01FF , 0002 , E5FC , 3 2802 , E5FD , 1E02 , E5FE , 0A05 , 9FBF , CFDF , FF00 , 4 5 0023 VARIABLE CHIME 059F , BFDF , FFE3 , 0109 , 8E01 , A402 , 6 C501 , 90B6 , D306 , 0391 , B7D4 , 0503 , 92B8 , D504 , 059F , 7 BFCF , DFFF , 0000 , 8 9 001A VARIABLE SPLAT 049F , BFDF , FF01 , 0589 , 3F9A , 10 E6F2 , 0105 , 8D00 , 9BE4 , F501 , 049F , CFDF , FF00 , 11 12 003A VARIABLE CRACKL 02E6 , F001 , 02E6 , FF01 , 02E5 , F201 , 13 02E5 , FF01 , 02E6 , F201 , 02E6 , FF01 , 02E4 , F501 , 02E4 , 14 FF01 , 02E5 , F701 , 02E5 , FF01 , 02E6 , F701 , 02E6 , F701 , 15 02E5 , FB01 , 049F , CFDF , FF00 , --> SCR #92 0 ( SPRITE DEMO PROGRAM PAGE 6 - MORE SOUND LISTS) 1 2 3 0043 VARIABLE SQUAK2 098F , 0892 , AC05 , C2BC , 05D2 , 0109 , 4 8E08 , 92AC , 05C2 , BA05 , D202 , 038C , 0593 , 0309 , 8E08 , 5 95AB , 05C5 , B803 , D501 , 098B , 0795 , A606 , C7BC , 05D7 , 6 0109 , 8E08 , 97AC , 05CA , BC05 , DA01 , 059F , BFCF , DFFF , 7 0000 , 8 9 ( 0000 VARIABLE BARK) 10 11 --> 12 13 14 15 TI FORTH --- a fig-FORTH extension SCR #93 0 ( SPRITE DEMO PROGRAM PAGE 7 - SOUND WORDS) 1 2 : LANGIS BELL3 PLAY DELAY DELAY BELL2 PLAY DELAY DELAY 3 BELL1 PLAY DELAY DELAY BELL2 PLAY DELAY DELAY 4 BELL3 PLAY DELAY DELAY ; 5 6 : INTE-BELLS 5 0 DO LANGIS DDELAY LOOP ; 7 8 : CHIRP CHIME PLAY 5 DELAYS BELL1 PLAY DELAY BELL3 PLAY 9 2 DELAYS BELL2 PLAY DDELAY ; 10 11 : CHIRPS 0 DO CHIRP LOOP ; 12 13 : CRACKLS 0 DO CRACKL PLAY 3 DELAYS LOOP ; 14 15 : SQUAKS 0 DO SQUAK2 PLAY DDELAY LOOP ; --> SCR #94 0 ( SPRITE DEMO PROGRAM PAGE 8) 1 2 : CLOUDS 20 34 E 23 6 SPRITE 20 34 F 24 7 SPRITE 3 80 43 E 25 8 SPRITE 80 43 F 26 9 SPRITE 4 C0 21 E 27 A SPRITE C0 21 F 28 B SPRITE ; 5 6 : DELLOW 5 0 DO I DELSPR LOOP ; 7 8 : MOVE-CLD 3819 VSBR 1+ DUP 3819 VSBW 381D VSBW 9 3821 VSBR 2+ DUP 3821 VSBW 3825 VSBW 10 3829 VSBR 2+ DUP 3829 VSBW 382D VSBW ; 11 12 : M_INSTALL INTLNK @ ' MOVE-CLD CFA ISR ! 83C4 ! ; 13 14 : DEINSTALL 0 83C4 ! ; 15 --> SCR #95 0 ( SPRITE DEMO PROGRAM PAGE 9) 1 : BPAGE 0 2 GOTOXY 3F SPACES ; 2 3 : HEADLINE PAGE 3 0 GOTOXY ." THE BLUE BIRD OF HAPPINESS" 4 2 1 GOTOXY ." ----------------------------" 5 4 3 GOTOXY ." DOGS= " C 3 GOTOXY ." EGGS= " 6 15 3 GOTOXY ." BIRD=" ; 7 8 : ENDGAME BPAGE 1 2 GOTOXY 0 YOU-LOSE ! 3 SQUAKS 9 ." SORRY, I GUESS YOU GOT BURNED!" 10 DDDELAY ; 11 12 : INTMSH BPAGE 5 2 GOTOXY 13 ." THE SCORE IS " DEAD-DOGS @ 3 .R SPACE 14 ." TO" DOG-RUNS @ 3 .R INTE-BELLS DDELAY ; 15 --> TI FORTH --- a fig-FORTH extension SCR #96 0 ( SPRITE DEMO PROGRAM PAGE 10) 1 2 : TIE-M$ BPAGE 5 2 GOTOXY ." YOU'RE STILL IN IT...." 3 4 3 GOTOXY ." BUT SO IS THE LIGHTNING!" 4 2 SQUAKS DDELAY ; 5 6 : LOSE-M$ BPAGE 3 2 GOTOXY ." SORRY, YOU LOSE! " DOG-RUNS @ 7 3 .R SPACE ." TO " DEAD-DOGS @ 3 .R CR 3 SQUAKS 8 DELLOW M_INSTALL DDDELAY 0 YOU-LOSE ! ; 9 10 : GO-M$ BPAGE 2 2 GOTOXY ." WATCH OUT FOR THE LIGHTNING!" 11 2 SQUAKS DDELAY ; 12 13 : 2INTRO DEAD-DOGS @ DOG-RUNS @ = IF TIE-M$ ELSE 14 GO-M$ ENDIF M_INSTALL ; 15 --> SCR #97 0 ( SPRITE DEMO PROGRAM PAGE 11) 1 2 : SCORE 9 3 GOTOXY DOG-RUNS @ 2 .R 11 3 GOTOXY EGGS @ 3 3 .R 1A 3 GOTOXY DEAD-DOGS @ 2 .R ; 4 5 : GAMEWON BPAGE A 0 DO CHIME PLAY DELAY LOOP 6 0 2 GOTOXY ." WELL DONE! THE GAME IS YOURS!" 7 DDDELAY ; 8 9 : STARTOVER? M_INSTALL BPAGE 4 2 GOTOXY 10 ." TO PLAY A GAME PRESS " 2 3 GOTOXY 11 ." PRESS ANY OTHER KEY TO QUIT" KEY ; 12 13 --> 14 15 SCR #98 0 ( SPRITE DEMO PROGRAM PAGE 12) 1 2 : 2HITIT? 3808 VSBR DROP-SPEED @ + 3808 VSBW ; 3 4 : SWAPSPR 2 SPRGET F 16 1 SPRITE 2 DELSPR 1 EGG-FLAG ! ; 5 6 : DROPIT 0 SPRGET F 16 EGG-FLAG @ 1+ SPRITE 1 EGG-FLAG +! ; 7 8 : SCR-TEST 0 SPRGET 20 MAX 70 MIN SWAP 9 04 MAX F0 MIN SWAP 0 SPRPUT ; 10 11 : INSPR 75 34 5 12 0 SPRITE F2 B0 C 18 3 SPRITE ; 12 13 : DOGHIT? 1 3 CLIMIT @ COINC ; 14 15 : FLASH 3 RND 1+ CRACKLS F0 RND 20 F 1D 3 SPRITE ; --> TI FORTH --- a fig-FORTH extension SCR #99 0 ( SPRITE DEMO PROGRAM PAGE 13) 1 2 3 : MISSED SPLAT PLAY 1 DELSPR MISSES @ 3 > IF 4 0 MISSES ! 1 DOG-RUNS +! SCORE BELL3 PLAY ELSE 5 1 MISSES +! ENDIF ; 6 7 : KILL 1 DEAD-DOGS +! DELLOW SCORE 8 10 0 DO MOVE-CLD DELAY LOOP 9 0 EGG-FLAG ! INSPR ; 10 11 : XPLODE 17 1 SPRPAT 6 1 SPRCOL 0 MISSES ! 12 CRASH1 PLAY 4 0 DO MOVE-CLD DELAY LOOP ; 13 --> 14 15 SCR #100 0 ( SPRITE DEMO PROGRAM PAGE 14) 1 2 : DROPIT? EGGS @ EGGS-IN-ROUND @ < IF 3 EGG-FLAG @ 2 < IF 4 DROPIT 1 EGGS +! SCORE ENDIF ENDIF ; 5 6 : MOVE-DOG 380D VSBR EGG-FLAG @ 7 IF ESCAPE-VELOCITY @ - ELSE 2- ENDIF 8 DUP 0< IF DROP CHIME PLAY 9 4 RND 2+ ESCAPE-VELOCITY ! 10 1 DOG-RUNS +! SCORE F2 ENDIF 380D VSBW ; 11 12 : 1HITIT! DROP B0 3804 VSBW 1C 3806 VSBW DELAY DOGHIT? 13 IF XPLODE KILL ELSE MISSED EGG-FLAG @ 2 = 14 IF SWAPSPR ELSE 0 EGG-FLAG ! ENDIF ENDIF ; --> 15 SCR #101 0 ( SPRITE DEMO PROGRAM PAGE 15) 1 2 : 1HITIT? 3804 VSBR DROP-SPEED @ + 3 DUP B0 > IF 1HITIT! ELSE 3804 VSBW ENDIF ; 4 5 : HITS? EGG-FLAG @ CASE 2 OF 2HITIT? 1HITIT? ENDOF 6 1 OF 1HITIT? ENDOF 7 0 OF ( nop) ENDOF ENDCASE ; 8 9 : MOVE-BIRD 1 JOYST ROT 12 = IF DROPIT? ENDIF 0 SPRGET ROT 10 - >R + R> 0 SPRPUT SCR-TEST HITS? 60 0 DO LOOP ; 11 12 : FLAP A 0 DO I PATTERN# 3802 VSBW MOVE-CLD 13 I DOGGIE# 380E VSBW MOVE-BIRD MOVE-DOG LOOP ; --> 14 15 TI FORTH --- a fig-FORTH extension SCR #102 0 ( SPRITE DEMO PROGRAM PAGE 16) 1 2 : LOOK-OUT 1 JOYST ROT DROP 0 SPRGET 3 ROT - >R + R> 0 SPRPUT SCR-TEST ; 4 5 : FLAPS BEGIN FLAP 6 EGGS @ EGGS-IN-ROUND @ = UNTIL ; 7 8 9 : LAST-EGGS BEGIN FLAP EGG-FLAG @ 0= UNTIL ; 10 11 12 --> 13 14 15 SCR #103 0 ( SPRITE DEMO PROGRAM PAGE 17) 1 2 : BLOWUP 20 0 SPRPAT SQUAK2 PLAY DDELAY 0 MAGNIFY 3 0 SPRGET 8 - 0 SPRPUT 21 0 SPRPAT 4 SQUAK2 PLAY DDELAY 5 0 SPRGET 8 - SWAP 8 + SWAP 0 SPRPUT 22 0 SPRPAT 6 SQUAK2 PLAY DELAY CRASH1 PLAY 7 DDELAY 0 DELSPR 1 MAGNIFY ; 8 9 10 : SCORETEST DEAD-DOGS @ DOG-RUNS @ < ; 11 --> 12 13 14 15 SCR #104 0 ( SPRITE DEMO PROGRAM PAGE 18) 1 2 : LIGHTNING 3 RND 1D + 380E VSBW 380C VSBR 5 RND 2+ 2 * + 3 380C VSBW 0 3 A COINC IF HONK 1 STRIKE ! ENDIF ; 4 5 : FLASHER A 0 DO I PATTERN# 3802 VSBW LOOK-OUT 6 LIGHTNING STRIKE @ IF BLOWUP LEAVE ENDIF LOOP ; 7 8 : STRIKER FLASH BEGIN FLASHER 9 380C VSBR 60 > STRIKE @ OR UNTIL 3 DELSPR ; 10 11 --> 12 13 14 15 TI FORTH --- a fig-FORTH extension SCR #105 0 ( SPRITE DEMO PROGRAM PAGE 19) 1 2 : RESETV 0 DEAD-DOGS ! 0 DOG-RUNS ! 0 EGGS ! 0 MISSES ! 3 5 #STRIKES ! 0 STRIKE ! 4 CLIMIT ! 4 20 EGGS-IN-ROUND ! 1 YOU-LOSE ! ; 5 6 : ROUND1 C 7 DO F I SPRCOL 2 +LOOP DEINSTALL HEADLINE 7 SCORE INSPR FLAPS LAST-EGGS 3 DELSPR 3 CHIRPS ; 8 9 : ROUND2 C 7 DO 1 I SPRCOL 2 +LOOP #STRIKES @ 0 DO STRIKER 10 STRIKE @ IF LEAVE ENDIF LOOP ; 11 12 --> 13 14 15 SCR #106 0 ( SPRITE DEMO PROGRAM PAGE 20) 1 : NEWROUND INTMSH -1 CLIMIT +! 0 EGGS ! 0 MISSES ! 2 #STRIKES @ 5 + #STRIKES ! ; 3 4 : .GAME RESETV 4 0 DO I SCRN# SET-COL ROUND1 SCORETEST 5 IF LOSE-M$ LEAVE ELSE 2INTRO ROUND2 6 STRIKE @ IF ENDGAME LEAVE ELSE NEWROUND 7 ENDIF ENDIF LOOP ; 8 9 : GAME .GAME YOU-LOSE @ IF GAMEWON ENDIF 10 STARTOVER? 47 = IF MYSELF ENDIF ; 11 12 : STARTUP HEADLINE CLOUDS STARTOVER? 13 47 = IF GAME ENDIF ; 14 R->BASE 15