Jump to content
oddemann

HELP - I AM STUCK! - TI EXtended BASIC

Recommended Posts

I was hoping I can make a "I AM STUCK" topic, that everyone can dump a problem for help.

 

 

Share this post


Link to post
Share on other sites
Posted (edited)

I have a problem with... Mystery Spell!

 

I am debugging it and is stuck. There are some other bug's too. Working on it! But right now it stops at 350 and I don't get it.

Do you know what it wants?

(From pdf - computes-first-book-of-ti-games)

 

100 REM TI EXTENDED BASIC
110 REM MYSTERY SPELL
120 DIM A$(26),B$(20)
122 ON ERROR 140
125 CALL INIT :: CALL LOAD(-31878,13)
130 REM **INITIALIZATION AND INTRODUCTION**
140 DISPLAY AT(12,5)ERASE ALL:"ONE MOMENT PLEASE..." :: GOTO 780
150 DISPLAY AT(7,1)ERASE ALL BEEP:"PRESS   FOR": 2 :" 1 = INSTRUCTIONS": :" 2 = MYSTERY SPELL": :" 3 = FINISH MYSTERY SPELL"
160 DISPLAY AT(23,3):"PLEASE ENGAGE ALPHA LOCK" :2 CALL KEY(0,K,S):: IF S=0 OR(K<49 OR K>51) THEN 160 :: ON K-48 GOTO 980,190,170
170 DISPLAY AT(12,5)ERASE ALL BEEP:"THANKS FOR PLAYING," :: DISPLAY AT(14,14-LEN(L$)/2):L$ :: STOP
190 DISPLAY AT(7,1)ERASE ALL BEEP:"CHOOSE A WORD LIST:": : :" A = PRESELECTED WORDS": :" B = CREATE YOUR OWN"
200 CALL KEY(0,K,S):: IF S=0 0R(K<6S OR K>66) THEN 200 :: IF K=66 THEN 220
210 PSW=1 :: GOTO 230
220 PSW=0 :: GOTO 1620
230 CALL CLEAR :: RESTORE 940 :: GOTO 930
240 CALL SPRITE(#2,120,2,78,121,0,0) :: CALL MAGNIFY(3):: CALL SPRITE(#4,136,16,8,128,0,1) :: CALL SPRITE(#3,140,2,8,128,0,-2)
250 DISPLAY AT(5,9):"MYSTERY SPELL" :: T=200 :: GOSUB 1050 :: IF PSW=1 THEN GOTO 1840
260 DISPLAY AT(19,1)BEEP:" WHAT IS YOUR NAME, PLEASE?" :: DISPLAY AT(23,1):"TYPE NAME, THEN PRESS ENTER"
270 ACCEPT AT(5,9)SIZE(14):L$ :: CALL HCHAR(5,7,32,22)
280 REM **MAIN PROGRAM LOOP**
290 DISPLAY AT(19,1)BEEP:" CHOOSE THE LEVEL OF PLAY"
300 DISPLAY AT(23,1):"   1) EASY   2) DIFFICULT" :: CALL KEY(0,K,S):: IF S=0 OR K>50 OR K<49 THEN 300 :: IF K=49 THEN ER=7 ELSE ER=5
310 FOR SP=5 TO 13 :: CALL DELSPRITE(#SP)::NEXT SP
320 DISPLAY AT(19,1):" A B C D E F G H I J K L M" :: DISPLAY AT(23,1)BEEP:" N O P Q R S T U V W X Y Z" :: RANDOMIZE
330 CALL HCHAR(5,3,32,28):: W$=B$(INT(20*RND)+1):: F=LEN(W$):: FOR I=1 TO F :: DISPLAY AT(5,2*I+14-F):"_" :: NEXT I :: Y=0 :: SP=13
340 CALL KEY(0,K,S):: IF S=0 OR(K<65 OR K>90) THEN 340 ELSE C=121
350 IF K<78 THEN R=128 ELSE R=160
360 CC=((K-64)*16+16-208*INT((K-64)/14))/8 :: CALL GCHAR((R+24)/8,CC,X) :: IF X=32 THEN 370 ELSE 390
370 DISPLAY AT(16,14-(8+1EN(L$))/2)SIZE(8+1EN(L$))BEEP:" OOPS, ";L$;"," :: DISPLAY AT(17,1):" YOU TRIED THAT ONE ALREADY"
380 FOR D=1 TO 500 :: NEXT D :: CALL HCHAR(16,1,33,64):: GOTO 340
390 V=12 :: H=0 :: GOSUB 550
400 IF K<72 0R(K>77 AND K<85) THEN H=-12 ELSE H=12
410 V=0 :: C=(K-64)*16+4-208*INT((K-64)/14) :: GOSUB 550
420 X=0 :: CALL HCHAR((R+24)/8,(C+12)/8,32) :: FOR I=1 TO F :: IF ASC(SEG$(W$,I,1))<>K THEN 450
430 CALL PATTERN(#2,124):: GOSUB 580
440 CALL PATTERN(#2,120):: DISPLAY AT(5,2*1+14-F)SIZE(-1):CHR$(K):: X=1 :: Y=Y+1
450 NEXT I :: IF X=1 THEN 470
460 CALL PATTERN(#2,128):: GOSUB 620 :: CALL PATTERN(#2,120)
470 H=-H :: C=121 :: GOSUB 550
480 V=-12 :: H=0 :: R=78 :: GOSUB 550
490 IF Y=LEN(W$) THEN GOSUB 740 ELSE 500 :: GOTO 510
500 IF ER=1 THEN GOSUB 710 ELSE 340
510 DISPLAY AT(23,1)BEEP:"     ANOTHER WORD? (Y/N)"
520 CALL KEY(0,K,S):: IF S=0 OR K<>89 AND K<>78 THEN 520 == IF K=89 THEN 290
530 CALL DELSPRITE(ALL):: GOTO 150
540 REM **SUB TO MOVE HAPPY FACE**
550 CALL MOTION(#2,V,H)
560 CALL COINC(#2,R,C,4,Z):: IF Z=0 THEN 560 ELSE CALL MOTION(#2,0,0):: CALL LOCATE(#2,R,C):: RETURN
570 REM **SUB FOR C0RRECT GUESS**
580 B=8*(2*I+14-F):: CALL SPRITE(#1,132,14,R,C,(32-R)/8,(B-C)/8)
590 J=2^(1/12):: FOR A=1 TO 25 :: CALL SOUND(-40,220*J^A,1):: NEXT A
600 CALL COINC(#1,32,B,6,Z) :: IF Z=0 THEN 600 ELSE CALL DELSPRITE(#1) :: RETURN
610 REM **SUB FOR INC0RRECT GUESS**
620 SP=SP-1 :: ER=ER-1 :: IF ER>4 THEN RR=80  ELSE RR=50
630 IF ER=6 OR ER=4 THEN C=52
640 IF ER=5 OR ER=1 THEN C=188
650 IF ER=3 THEN C=110
660 IF ER=2 THEN C=132
670 CALL SPRITE(#SP,140,2,1,120,(IF-1)/8,(C-120)/8)
680 J=2^(1/12):: FOR A=25 TO 1 STEP -1 :: CALL SOUND(-40,440*J^A,1):: NEXT A
690 CALL COINC(9SP,IF,C,6,Z):: IF Z=0 THEN 690 ELSE CALL MOTION(#SP,0,0):: CALL LOCATE(#SP,IF,C):: CALL PATTERN(§SP,100):: RETURN
700 REM **SUB FOR BLACKBIRDS WIN**
710 CALL HCHAR(19,3,32,28):: DISPLAY AT(19,15-(8+1EN(L$))/2):"SORRY, ";L$;","
720 DISPLAY AT(23,1)BEEP:"THE BLACKBIRDS WIN THIS TIME" :: GOSUB 760 :: RETURN
730 REM **SUB FOR PLAYER WIN$**
740 CALL HCHAR(19,3,32,28):: DISPLAY AT(19,15-(8+LEN(L$))/2):"GREAT, ";L$;","
750 DISPLAY AT(23,1):"   THAT‘S THE SECRET WORD"
760 CALL HCHAR(5,3,32,28):: FOR I=1 TO F :: DISPLAY AT(5,2*I+14-F):SEG$(W$,I,1):: NEXT I :: T=180 :: GOSUB 1050 :: RETURN
770 REM **ASSIGN COLORS AND DEE CHARACTER
780 FOR I=0 TO 9 :: CALL COLOR(I,2,8):: NEXT I :: CALL COLOR(10,3,8):: CALL COLOR(11,11,8):: CALL COLOR(1,13,8)
800 FOR I=1 TO 25 :: READ C,A$(I):: CALL CHAR(C,A$(I)):: NEXT I :: CALL SCREEN(15):: GOTO 150
810 DATA 112,C0C0C0C0C0C0C0C0,113,0303030303030303,114,FFFFFFFFFFFFFFFF,115,C0C0C0FFFFC0C0C0,116,030303FFFF030303
820 DATA 105,183C3C7E7EFFFFFF,106,FFFFFFFFFFFFFFFF,107,FFFFFF787E3C3C18,108,071F7FFFFF7F1F0 7,109,C0F0 FEFFFFFEF0 C0
830 DATA 96,00000000030F3FFF,97,FFFFFFFFFFFFFFFF,98,FFFFEFC78383C78F,99,7F3F183C73FCFEFF,33,FFFFFFFFFFFFFFFF
840 DATA 91,1F3F7FFFFFFFFFFF,92,F8FCFEFFFFFFFFFF,93,00000000C0F0FCFF
850 DATA 120,0 71320404C88808180 88S4434020180780180C0232110181011121C2020418E0
860 DATA 124,0718204040888031809F904B44231807E0180C023211018101F9091222C418E0
870 DATA 128,0 71820404C88808180 83844840201507E0180C023211018101C12112020418E0
880 DATA 132,030F1F3F3F3F3F1F0F0703010102040B80E0F0F8F8FBF3F0E0C030
890 DATA 136,030F3F7F7F3FFFFFFFFF3F7F7F37070ID0C0CCFEFEFCFFFFFFFFFCFEFEECE030
900 DATA 140,000000000000183D47830100000000000000000000001BBCE2C1800000000000
910 DATA 100,00010101000103030707070301000101C0E0F0D0CQE0F0F0FBFBFSF0E0C0Z0Z0
920 REM **PRINT SCREEN**
930 CALL HCHAR(16,1,33,283):: FOR I=1 TO 21 :: READ R,C,G$ :: DISPLAY AT(R,C)SIZE(-6):G$ :: NEXT I :: GOTO 240
940 DATA 9,12,‘[aa\],10,12,qIFIFp,l1,12,qIFrrp,12,12,qIFIFp,13,l4,St,14,14,St,15,l4,St
950 DATA 9,5,m,10,4,1jjjm,1l,4,1jjjm,12,5,kjk,13,6,b,14,6,a,15,6,a
960 DATA 9,22,m,10,21,1jjjm,11,21,1jjjm,12,22,kjk,13,23,a,14,23,C,15,23,a
970 REM **INSTRUCTIONS**
980 DISPLAY AT(1,3)ERASE ALL:"MYSTERY SPELL" ::"   THE OBJECT OF MYSTERY"3"SPELL IS TO GUESS THE SECRET"WORD."
990 DISPLAY AT(5,4):"WHEN YOU PRESS A LETTER,":"THE HAPPY FACE WILL MOVE TO":"THE SELECTED LETTER AND LET":"YOU KNOW WHETHER YOU MADE A"
1000 DISPLAY AT(10,1):"RIGHT OR WRONG CHOICE.":"   A C0RRECT CHOICE LAUNCHES ":"A BALLOON. AN INC0RRECT ONE":"CAUSES A BLACKBIRD TO LAND."
1010 DISPLAY AT(14,1):"IF TO0 MANY BLACKBIRDS LAND,":"YOU WILL LOSE THE GAME.": :"   THERE ARE TWO LEVELS:"
1020 DISPLAY AT(19,1)BEEP:"EASY) PERMITS 6 INC0RRECT":"       GUESSES.": :"HARD) PERMITS ONLY 4."
1030 DISPLAY AT(24,6):"**PRESS ANY KEY**" :: CALL KEY(0,K,S):: IF S=0 THEN 1030 ELSE 190
1040 REM **SUB FOR BLACKBIRD FLIGHT AND THEME MELODY**
1050 R=8 :: FOR SP=5 TO 13 :: C=INT(RND*240)+1 :: CALL SPRITE(#SP,140,2,R,C,0 ,12)::
R=R+12 :: NEXT SP
1060 CALL SOUND(T,175,0)
1070 CALL SOUND(T,349,0,175,2)
1080 CALL SOUND(T,587,0,175,2)
1090 CALL SOUND(2*T,523,0,440,1,175,2)
1100 CALL SOUND(T,587,0,175,2)
1110 CALL SOUND(2*T,523,0,440,1,185,2)
1120 CALL SOUND(T,196,0)
1130 CALL SOUND(T,330,0,196,2)
1140 CALL SOUND(T,587,0,196,2)
1150 CALL SOUND(2*T,523,0,466,1,196,2)
1160 CALL SOUND(T,587,0,196,2)
1170 CALL SOUND(2*T,523,0,466,1,208,2)
1180 CALL SOUND(T,220,2)
1190 CALL SOUND(T,523,0,440,1,220,2)
1200 CALL SOUND(T,311,2)
1210 CALL SOUND(T,523,0,440,1,311,2)
1220 CALL SOUND(T,294,2)
1230 CALL SOUND(T,494,0,415,1,294,2)
1240 CALL SOUND(T,277,2)
1250 CALL SOUND(T,466,0,392,1,277,2)
1260 CALL SOUND(T,440,0,262,2)
1270 CALL SOUND(T,523,0,262,2)
1280 CALL SOUND(T,587,0,241,2)
1290 CALL SOUND(T,698,0,247,2)
1300 CALL SOUND(2*T,659,0,233,2)
1310 CALL SOUND(2*T,784,0,659,1,131,2)
1320 CALL SOUND(T,880,0,175,2)
1330 CALL SOUND(T,831,0,175,2)
1340 CALL SOUND(T,880,0,262,2,349,2)
1350 CALL SOUND(T,1047,0,262,2,349,2)
1360 CALL SOUND(T,1047,0,220,2)
1370 CALL SOUND(T,880,0,220,2)
1380 CALL SOUND(T,784,0,262,2,349,2)
1390 CALL SOUND(T,69S,0,262,2,349,2)
1400 CALL SOUND(T,784,0,233,2)
1410 CALL SOUND(T,698,0,233,2)
1420 CALL SOUND(T,587,0,294,2,349,2)
1430 CALL SOUND(T,698,0,294,2,349,2)
1440 CALL SOUND(T,698,0,220,2)
1450 CALL SOUND(T,587,0,220,2)
1460 CALL SOUND(T,523,0,262,2,349,2)
1470 CALL SOUND(T,440,0,262,2,349,2)
1480 CALL SOUND(T,392,0,247,2)
1490 CALL SOUND(T,784,0,247,2)
1500 CALL SOUND(T,698,0,294,2,349,2)
1510 CALL SOUND(T,659,0,294,2,349,2)
1520 CALL SOUND(T,587,0,196,2)
1530 CALL SOUND(T,440,0,196,2)
1540 CALL SOUND(T,440,0,233,2,349,2)
1550 CALL SOUND(T,494,0,233,2,349,2)
1560 CALL SOUND(T,523,0,175,2,220,2)
1570 CALL SOUND(T,587,0,175,2,220,2)
1580 CALL SOUND(2*T,659,0,262,2)
1590 CALL SOUND(3*T,698,0,262,2,175,0)
1600 FOR I=1 TO 30 STEP 2 :: CALL SOUND(-T,698,I,262,I,175,I):: NEXT I :: RETURN
1610 REM **CREATE A WORD LIST**
1620 DISPLAY AT(1,4)ERASE ALL:ORD LIST INSTRUCTIONS": : :" IN THIS SEGMENT YOU MAY":"EITHER CREATE A WORD LIST"
1630 DISPLAY AT(6,1):"0R LOAD AN EXISTING ONE FROM":"A STORAGE DEVICE.": : 2" WHEN CREATING A WORD LIST,":"TYPE EACH WORD, THEN PRESS"
1640 DISPLAY AT(12,1):"ENTER. MAXIM WORD LENGTH":"IS 13 CHARACTERS. 20 WORDS":"ST BE EENTERED FOR EACH 0F":"THE WORD LISTS CREATED."
1650 DISPLAY AT(18,3)BEEP:"AS YOU EENTER EACH LIST,":"YOU MAY SBYE IT TO A STORAGE":"DEVICE FOR FUTURE USE WITH":"MYSTERY SPELL."
1660 DISPLAY AT(24,6):"**PRESS ANY KEY**" ::CALL KEY(0,K,S):: IF S=0 THEN 1660
1670 DISPLAY AT(7,1)ERASE ALL BEEP:"PRESS   TO": : :" 1 = CREATE A WORD LIST": :" Z = LOAD A WORD LIST": :" 3 = EXIT"
1680 CALL KEY(0,K,S):: IF S=0 0R(K<49 OR K>51) THEN 1680 :: J=0 :: ON K-48 GOTO 1690,1795,190
1690 DISPLAY AT(1,5)ERASE ALL:"ENTER THE WORD LIST:"
1700 I=1 :: C=1 :: FOR A=1 TO 2 :: R=3 :: FOR Z=1 TO 10
1710 ACCEPT AT(R,C)SIZE(-13)BEEP2B$(I):: R=R+2 :: I=I+1 :: NEXT Z :: C=15 :: NEXT A
1720 DISPLAY AT(24,1)BEEP:"C0RRECT OR CHANGE ANY? (Y/N)"
1730 CALL KEY(0,K,S):: IF S=0 OR K<>89 AND K<>78 THEN 1730 :: IF K=89 THEN 1700 ::J=1 :: GOTO 1795
1740 CALL KEY(0,K,S):: IF S=0 OR K<>89 AND K<>78 THEN 1730 :: IF K=89 THEN 1700 ::J=1 :: GOTO 1795
1750 FOR I=1 TO 20 :: INPUT #1:B$(I):: NEXT I :: CLOSE #1
1760 DISPLAY AT(11,5)ERASE ALL BEEP2"D0 YOU WISH TO SEE": :"    THE WORD LIST? (Y/N)"
1770 CALL KEY(0,K,S):: IF S=0 OR (K<>89 AND K<>78) THEN 1770 :: IF K=89 THEN 1789 ELSE 230
1780 DISPLAY AT(1,10)ERASE ALL BEEP:ORD LIST" :: R=3 :: FOR I=1 TO 20 STEP 2 :: DISPLAY AT(R,1):B$(I),B$(I+1):: R=R+2 :: NEXT I
1790 DISPLAY AT(24,1):"PRESS ANY KEY WHEN FINISHED" :: CALL KEY(0,K,S):: IF S=0 THEN 1790 ELSE 230
1795 ON ERROR 2000
1800 DISPLAY AT(5,6)ERASE ALL BEEP:"WHAT IS THE NAME": :" OF YOUR STORAGE DEVICE?": :"(EXAMPLE: CS1 OR DSK1.WORDS)"
1810 DISPLAY AT(23,1):"PLACE TAPE OR DISK IN DEVICE" :: ACCEPT AT(11,3):F$
1815 IF SEG$(F$,1,1)="C" THEN 1842 ELSE OPEN #1=F$,INTERNAL,UPDATE,FIXED 50
1820 IF J=0 THEN 1750 ELSE 1740
1830 REM **PRESELECTED WORD LIST**
1840 FOR I=1 TO 20 :: READ B$(I):: NEXT I :: GOTO 260
1842 IF J=0 THEN 1846
1844 OPEN #1:F$,OUTPUT,IENTERNAL,FIXED 50 :: FOR I=1 TO 20 :: PRINT #1:B$(I):: NEXT I :: CLOSE 81 :: GOTO 230
1846 OPEN §1:F$,INPUT ,IENTERNAL,FIXED 50 :: FOR I=1 TO 20 Z: INPUT #1=B$(I):: NEXT I :: CLOSE #1 :: CALL CLEAR :: GOTO 1760
1850 DATA BANANAS,CAIF0TS,RHUBARB,CABBAGE,TURNIP,BEANS,C0RN,CE18RY,WATERMELON,0RANGES,APPLES,PEACHES
1860 DATA MUSHROOMS,ONIONS,POTATOES,TOMATOES,GRAPES,PUMPKIN,SQUASH,LEMONS
2000 PRINT "ERROR...ERROR"
2010 PRINT "CHECK TAPE OR DISK"
2020 PRINT "PROGRAM WILL BEGIN AGAIN"
2030 PRINT "PLEASE WAIT...."
2040 FOR A=1 TO 500
2050 NEXT A
2060 RUN

 

Edited by oddemann

Share this post


Link to post
Share on other sites
Posted (edited)
22 minutes ago, oddemann said:

I was hoping I can make a "I AM STUCK" topic, that everyone can dump a problem for help.

 

 

 

But now it is an Extended Basic topic only :grin:

 

In line 200 I see "IF K<6S" (instead of <65)

 

There are more errors, just on pasting it into Classic99, but this runs very fast from the screen

an I don´t now how to stop it while the paste is being done

Edited by Schmitzi

Share this post


Link to post
Share on other sites
Posted (edited)

I have pasted it in small sections now to see the errors while pasting, uff, but I can see the following:

 

980 DISPLAY AT(1,3)ERASE ALL:"MYSTERY SPELL"::"   THE OBJECT OF MYSTERY"3"SPELL IS TO GUESS THE SECRET"WORD."
*** unmatched quotes (==> Remove thiis 3 " in between the text)

 

1050 R=8 :: FOR SP=5 TO 13 :: C=INT(RND*240)+1 :: CALL SPRITE(#SP,140,2,R,C,0 ,12):: R=R+12 :: NEXT SP
*** NEXT without FOR (==>Line seems just broken by copy and paste, at the end. Remove the lines end/carrige return)

 

1620 DISPLAY AT(1,4)ERASE ALL:"ORD LIST INSTRUCTIONS": : :" IN THIS SEGMENT YOU MAY":"EITHER CREATE A WORD LIST"
*** Command illegal in program ( ==> ONE " is missing before ORD")

 

1780 DISPLAY AT(1,10)ERASE ALL BEEP:"ORD LIST" :: R=3 :: FOR I=1 TO 20 STEP 2 :: DISPLAY AT(R,1):B$(I),B$(I+1):: R=R+2 :: NEXT I
SAME as 1620

 

 

LEADS to THIS corrected lines:

 

200 CALL KEY(0,K,S):: IF S=0 0R(K<65 OR K>66) THEN 200 :: IF K=66 THEN 220

980 DISPLAY AT(1,3)ERASE ALL:"MYSTERY SPELL"::"   THE OBJECT OF MYSTERY 3 SPELL IS TO GUESS THE SECRET WORD."

1050 R=8 :: FOR SP=5 TO 13 :: C=INT(RND*240)+1 :: CALL SPRITE(#SP,140,2,R,C,0 ,12):: R=R+12 :: NEXT SP

1620 DISPLAY AT(1,4)ERASE ALL:"ORD LIST INSTRUCTIONS": : :" IN THIS SEGMENT YOU MAY":"EITHER CREATE A WORD LIST"

1780 DISPLAY AT(1,10)ERASE ALL BEEP:"ORD LIST" :: R=3 :: FOR I=1 TO 20 STEP 2 :: DISPLAY AT(R,1):B$(I),B$(I+1):: R=R+2 :: NEXT I

 

 

Edited by Schmitzi

Share this post


Link to post
Share on other sites

That done, seeing that tthe parameter R in line 350 (and later) seems to bee the problem

 

(If I just change it´s name to i.e. R2, it runs further, ending up in the same error, but on line 360 (where R is also used)

Watchout for R, I am NOT a programmer at all :)

Share this post


Link to post
Share on other sites
Posted (edited)

OK, I changed all lines using the parameter R, to ER (maybe not your intention, but I saw this around),

then it seems to start but ends up in Line 800 with "* BAD VALUE in 800"

 

Maybe this is the route, to swap R to ER (or i.e. R2 if it is something other),

and then to find the second, a different error, in Line 800. But maybe this is easier then.

(Maybe there are some spaces too much in the DATA lines, or special characters that do not belong there ?)

 

PS: The following lines are using the parameter R, and maybe have to be changed in a way:

350 360 420 480 560 580 930 1050 1700 1710 1780

 

2. PS: Sorry, my last basic programming was more than 30 years ago,

I maybe remember some basic  commands, but not the syntax.

I just found all of this by scrolling and optical viewing, that is what I can. 

Adrian Monk 🥰 maybe would say: "It's a blessing, and a curse." :)   :grin:

 

 

 

 

Edited by Schmitzi
  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, oddemann said:

I am debugging it and is stuck. There are some other bug's too. Working on it! But right now it stops at 350 and I don't get it.

 

You have 12 instances of “0R” that should be “OR”. Three of them matter (lines 200, 400 and 1680). The rest are in strings, so should not affect running of the program.

 

...lee

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites
Posted (edited)

wow 🙃

 

(So I also have corrected my correction from above) ;)

Edited by Schmitzi

Share this post


Link to post
Share on other sites
Posted (edited)

Summary up to here, all lines to change, (but then error rests then in BAD VALUE IN LINE 800)

 

200 CALL KEY(0,K,S):: IF S=0 OR(K<65 OR K>66) THEN 200 :: IF K=66 THEN 220
400 IF K<72 OR(K>77 AND K<85) THEN H=-12 ELSE H=12
980 DISPLAY AT(1,3)ERASE ALL:"MYSTERY SPELL"::"   THE OBJECT OF MYSTERY 3 SPELL IS TO GUESS THE SECRET WORD."
1050 R=8 :: FOR SP=5 TO 13 :: C=INT(RND*240)+1 :: CALL SPRITE(#SP,140,2,R,C,0 ,12):: R=R+12 :: NEXT SP
1620 DISPLAY AT(1,4)ERASE ALL:"ORD LIST INSTRUCTIONS": : :" IN THIS SEGMENT YOU MAY":"EITHER CREATE A WORD LIST"
1680 CALL KEY(0,K,S):: IF S=0 OR(K<49 OR K>51) THEN 1680 :: J=0 :: ON K-48 GOTO 1690,1795,190
1780 DISPLAY AT(1,10)ERASE ALL BEEP:"ORD LIST" :: R=3 :: FOR I=1 TO 20 STEP 2 :: DISPLAY AT(R,1):B$(I),B$(I+1):: R=R+2 :: NEXT I


And maybe soome spaces to remove ? 


820 DATA 105,183C3C7E7EFFFFFF,106,FFFFFFFFFFFFFFFF,107,FFFFFF787E3C3C18,108,071F7FFFFF7F1F07,109,C0F0FEFFFFFEF0C0
850 DATA 120,071320404C8880818088S4434020180780180C0232110181011121C2020418E0
870 DATA 128,071820404C8880818083844840201507E0180C023211018101C12112020418E0

 

(But at the end, Line 800 still seems to struggle some variable types when reading this ?)

Maybe some data/type, next to the spaces, is wrong ?

 

 

 

 

Edited by Schmitzi
  • Like 1

Share this post


Link to post
Share on other sites
Posted (edited)

Update... Think I have most of what you pointed at... will look over!

latest bug "free" prog... Everything is running... up until 800 🤨

I got all of the ones pointed out, pluss "K-48", it should be K=48 (I think). This has all the corrections I think, BUT 800 is the major bug now. Looked at the data lines, they look fine, spaces removed and the odd S is now 8.
 

100 REM TI EXTENDED BASIC
110 REM MYSTERY SPELL
120 DIM A$(26),B$(20)
122 ON ERROR 140
125 CALL INIT :: CALL LOAD(-31878,13)
130 REM **INITIALIZATION AND INTRODUCTION**
140 DISPLAY AT(12,5)ERASE ALL:"ONE MOMENT PLEASE..." :: GOTO 780
150 DISPLAY AT(7,1)ERASE ALL BEEP:"PRESS   FOR": : :" 1 = INSTRUCTIONS": :" 2 = MYSTERY SPELL": :" 3 = FINISH MYSTERY SPELL"
160 DISPLAY AT(23,3):"PLEASE ENGAGE ALPHA LOCK" :: CALL KEY(0,K,S):: IF S=0 OR(K<49 OR K>51) THEN 160 :: ON K=48 GOTO 980,190,170
170 DISPLAY AT(12,5)ERASE ALL BEEP:"THANKS FOR PLAYING," :: DISPLAY AT(14,14-LEN(L$)/2):L$ :: STOP
190 DISPLAY AT(7,1)ERASE ALL BEEP:"CHOOSE A WORD LIST:": : :" A = PRESELECTED WORDS": :" B = CREATE YOUR OWN"
200 CALL KEY(0,K,S):: IF S=0 OR(K<65 OR K>66) THEN 200 :: IF K=66 THEN 220
210 PSW=1 :: GOTO 230
220 PSW=0 :: GOTO 1620
230 CALL CLEAR :: RESTORE 940 :: GOTO 930
240 CALL SPRITE(#2,120,2,78,121,0,0) :: CALL MAGNIFY(3):: CALL SPRITE(#4,136,16,8,128,0,1) :: CALL SPRITE(#3,140,2,8,128,0,-2)
250 DISPLAY AT(5,9):"MYSTERY SPELL" :: T=200 :: GOSUB 1050 :: IF PSW=1 THEN GOTO 1840
260 DISPLAY AT(19,1)BEEP:" WHAT IS YOUR NAME, PLEASE?" :: DISPLAY AT(23,1):"TYPE NAME, THEN PRESS ENTER"
270 ACCEPT AT(5,9)SIZE(14):L$ :: CALL HCHAR(5,7,32,22)
280 REM **MAIN PROGRAM LOOP**
290 DISPLAY AT(19,1)BEEP:" CHOOSE THE LEVEL OF PLAY"
300 DISPLAY AT(23,1):"   1) EASY   2) DIFFICULT" :: CALL KEY(0,K,S):: IF S=0 OR K>50 OR K<49 THEN 300 :: IF K=49 THEN ER=7 ELSE ER=5
310 FOR SP=5 TO 13 :: CALL DELSPRITE(#SP)::NEXT SP
320 DISPLAY AT(19,1):" A B C D E F G H I J K L M" :: DISPLAY AT(23,1)BEEP:" N O P Q R S T U V W X Y Z" :: RANDOMIZE
330 CALL HCHAR(5,3,32,28):: W$=B$(INT(20*RND)+1):: F=LEN(W$):: FOR I=1 TO F :: DISPLAY AT(5,2*I+14-F):"_" :: NEXT I :: Y=0 :: SP=13
340 CALL KEY(0,K,S):: IF S=0 OR(K<65 OR K>90) THEN 340 ELSE C=121
350 IF K<78 THEN R=128 ELSE R=160
360 CC=((K-64)*16+16-208*INT((K-64)/14))/8 :: CALL GCHAR((R+24)/8,CC,X) :: IF X=32 THEN 370 ELSE 390
370 DISPLAY AT(16,14-(8+1EN(L$))/2)SIZE(8+1EN(L$))BEEP:" OOPS, ";L$;"," :: DISPLAY AT(17,1):" YOU TRIED THAT ONE ALREADY"
380 FOR D=1 TO 500 :: NEXT D :: CALL HCHAR(16,1,33,64):: GOTO 340
390 V=12 :: H=0 :: GOSUB 550
400 IF K<72 OR(K>77 AND K<85) THEN H=-12 ELSE H=12
410 V=0 :: C=(K-64)*16+4-208*INT((K-64)/14) :: GOSUB 550
420 X=0 :: CALL HCHAR((R+24)/8,(C+12)/8,32) :: FOR I=1 TO F :: IF ASC(SEG$(W$,I,1))<>K THEN 450
430 CALL PATTERN(#2,124):: GOSUB 580
440 CALL PATTERN(#2,120):: DISPLAY AT(5,2*1+14-F)SIZE(-1):CHR$(K):: X=1 :: Y=Y+1
450 NEXT I :: IF X=1 THEN 470
460 CALL PATTERN(#2,128):: GOSUB 620 :: CALL PATTERN(#2,120)
470 H=-H :: C=121 :: GOSUB 550
480 V=-12 :: H=0 :: R=78 :: GOSUB 550
490 IF Y=LEN(W$) THEN GOSUB 740 ELSE 500 :: GOTO 510
500 IF ER=1 THEN GOSUB 710 ELSE 340
510 DISPLAY AT(23,1)BEEP:"     ANOTHER WORD? (Y/N)"
520 CALL KEY(0,K,S):: IF S=0 OR K<>89 AND K<>78 THEN 520 == IF K=89 THEN 290
530 CALL DELSPRITE(ALL):: GOTO 150
540 REM **SUB TO MOVE HAPPY FACE**
550 CALL MOTION(#2,V,H)
560 CALL COINC(#2,R,C,4,Z):: IF Z=0 THEN 560 ELSE CALL MOTION(#2,0,0):: CALL LOCATE(#2,R,C):: RETURN
570 REM **SUB FOR CORRECT GUESS**
580 B=8*(2*I+14-F):: CALL SPRITE(#1,132,14,R,C,(32-R)/8,(B-C)/8)
590 J=2^(1/12):: FOR A=1 TO 25 :: CALL SOUND(-40,220*J^A,1):: NEXT A
600 CALL COINC(#1,32,B,6,Z) :: IF Z=0 THEN 600 ELSE CALL DELSPRITE(#1) :: RETURN
610 REM **SUB FOR INCORRECT GUESS**
620 SP=SP-1 :: ER=ER-1 :: IF ER>4 THEN RR=80  ELSE RR=50
630 IF ER=6 OR ER=4 THEN C=52
640 IF ER=5 OR ER=1 THEN C=188
650 IF ER=3 THEN C=110
660 IF ER=2 THEN C=132
670 CALL SPRITE(#SP,140,2,1,120,(IF-1)/8,(C-120)/8)
680 J=2^(1/12):: FOR A=25 TO 1 STEP -1 :: CALL SOUND(-40,440*J^A,1):: NEXT A
690 CALL COINC(9SP,IF,C,6,Z):: IF Z=0 THEN 690 ELSE CALL MOTION(#SP,0,0):: CALL LOCATE(#SP,IF,C):: CALL PATTERN(#SP,100):: RETURN
700 REM **SUB FOR BLACKBIRDS WIN**
710 CALL HCHAR(19,3,32,28):: DISPLAY AT(19,15-(8+1EN(L$))/2):"SORRY, ";L$;","
720 DISPLAY AT(23,1)BEEP:"THE BLACKBIRDS WIN THIS TIME" :: GOSUB 760 :: RETURN
730 REM **SUB FOR PLAYER WIN$**
740 CALL HCHAR(19,3,32,28):: DISPLAY AT(19,15-(8+LEN(L$))/2):"GREAT, ";L$;","
750 DISPLAY AT(23,1):"   THAT‘S THE SECRET WORD"
760 CALL HCHAR(5,3,32,28):: FOR I=1 TO F :: DISPLAY AT(5,2*I+14-F):SEG$(W$,I,1):: NEXT I :: T=180 :: GOSUB 1050 :: RETURN
770 REM **ASSIGN COLORS AND DEFINE CHARACTERS**
780 FOR I=0 TO 9 :: CALL COLOR(I,2,8):: NEXT I :: CALL COLOR(10,3,8):: CALL COLOR(11,11,8):: CALL COLOR(1,13,8)
800 FOR I=1 TO 25 :: READ C,A$(I):: CALL CHAR(C,A$(I)):: NEXT I :: CALL SCREEN(15):: GOTO 150
810 DATA 112,C0C0C0C0C0C0C0C0,113,0303030303030303,114,FFFFFFFFFFFFFFFFF,115,C0C0C0FFFFC0C0C0,116,030303FFFF030303
820 DATA 105,183C3C7E7EFFFFFF,106,FFFFFFFFFFFFFFFF,107,FFFFFF787E3C3C18,108,071F7FFFFF7F1F07,109,C0F0FEFFFFFEF0C0
830 DATA 96,00000000030F3FFF,97,FFFFFFFFFFFFFFFF,98,FFFFEFC78383C78F,99,7F3F183C73FCFEFF,33,FFFFFFFFFFFFFFFF
840 DATA 91,1F3F7FFFFFFFFFFF,92,F8FCFEFFFFFFFFFF,93,00000000C0F0FCFF
850 DATA 120,071820404C8880818088844340201807E0180C0232110181011121C2020418E0
860 DATA 124,071820404C888081809F904844231807E0180C023211018101F9091222C418E0
870 DATA 128,071820404C8880818083844840201807E0180C023211018101C12112020418E0
880 DATA 132,030F1F3F3F3F3F1F0F0703010102040880E0F0F8F8F8F8F0E0C080
890 DATA 136,030F3F7F7F3FFFFFFFFF3F7F7F37070100C0CCFEFEFCFFFFFFFFFCFEFEECE080
900 DATA 140,00000000000183D478301000000000000000000000018BCE2C1800000000000
910 DATA 100,00010101000103030707070301000101C0E0F0D0C0E0F0F0F8F8F8F0E0C02020
920 REM **PRINT SCREEN**
930 CALL HCHAR(16,1,33,288):: FOR I=1 TO 21 :: READ R,C,G$ :: DISPLAY AT(R,C)SIZE(-6):G$ :: NEXT I :: GOTO 240
940 DATA 9,12,`[aa\],10,12,qrrrrp,11,12,qrrrrp,12,12,qrrrrp,13,14,st,14,14,st,15,14,st
950 DATA 9,5,iii,10,4,1jjjm,11,4,1jjjm,12,5,kjk,13,6,b,14,6,a,15,6,a
960 DATA 9,22,iii,10,21,1jjjm,11,21,1jjjm,12,22,kjk,13,23,a,14,23,c,15,23,a
970 REM **INSTRUCTIONS**
980 DISPLAY AT(1,8)ERASE ALL:"MYSTERY SPELL": :"   THE OBJECT OF MYSTERY":"SPELL IS TO GUESS THE SECRET":"WORD."
990 DISPLAY AT(5,4):"WHEN YOU PRESS A LETTER,":"THE HAPPY FACE WILL MOVE TO":"THE SELECTED LETTER AND LET":"YOU KNOW WHETHER YOU MADE A"
1000 DISPLAY AT(10,1):"RIGHT OR WRONG CHOICE.":"   A CORRECT CHOICE LAUNCHES ":"A BALLOON. AN INCORRECT ONE":"CAUSES A BLACKBIRD TO LAND."
1010 DISPLAY AT(14,1):"IF TO0 MANY BLACKBIRDS LAND,":"YOU WILL LOSE THE GAME.": :"   THERE ARE TWO LEVELS:"
1020 DISPLAY AT(19,1)BEEP:"EASY) PERMITS 6 INCORRECT":"       GUESSES.": :"HARD) PERMITS ONLY 4."
1030 DISPLAY AT(24,6):"**PRESS ANY KEY**" :: CALL KEY(0,K,S):: IF S=0 THEN 1030 ELSE 190
1040 REM **SUB FOR BLACKBIRD FLIGHT AND THEME MELODY**
1050 R=8 :: FOR SP=5 TO 13 :: C=INT(RND*240)+1 :: CALL SPRITE(#SP,140,2,R,C,0,12) :: R=R+12 :: NEXT SP
1060 CALL SOUND(T,175,0)
1070 CALL SOUND(T,349,0,175,2)
1080 CALL SOUND(T,587,0,175,2)
1090 CALL SOUND(2*T,523,0,440,1,175,2)
1100 CALL SOUND(T,587,0,175,2)
1110 CALL SOUND(2*T,523,0,440,1,185,2)
1120 CALL SOUND(T,196,0)
1130 CALL SOUND(T,330,0,196,2)
1140 CALL SOUND(T,587,0,196,2)
1150 CALL SOUND(2*T,523,0,466,1,196,2)
1160 CALL SOUND(T,587,0,196,2)
1170 CALL SOUND(2*T,523,0,466,1,208,2)
1180 CALL SOUND(T,220,2)
1190 CALL SOUND(T,523,0,440,1,220,2)
1200 CALL SOUND(T,311,2)
1210 CALL SOUND(T,523,0,440,1,311,2)
1220 CALL SOUND(T,294,2)
1230 CALL SOUND(T,494,0,415,1,294,2)
1240 CALL SOUND(T,277,2)
1250 CALL SOUND(T,466,0,392,1,277,2)
1260 CALL SOUND(T,440,0,262,2)
1270 CALL SOUND(T,523,0,262,2)
1280 CALL SOUND(T,587,0,241,2)
1290 CALL SOUND(T,698,0,247,2)
1300 CALL SOUND(2*T,659,0,233,2)
1310 CALL SOUND(2*T,784,0,659,1,131,2)
1320 CALL SOUND(T,880,0,175,2)
1330 CALL SOUND(T,831,0,175,2)
1340 CALL SOUND(T,880,0,262,2,349,2)
1350 CALL SOUND(T,1047,0,262,2,349,2)
1360 CALL SOUND(T,1047,0,220,2)
1370 CALL SOUND(T,880,0,220,2)
1380 CALL SOUND(T,784,0,262,2,349,2)
1390 CALL SOUND(T,69S,0,262,2,349,2)
1400 CALL SOUND(T,784,0,233,2)
1410 CALL SOUND(T,698,0,233,2)
1420 CALL SOUND(T,587,0,294,2,349,2)
1430 CALL SOUND(T,698,0,294,2,349,2)
1440 CALL SOUND(T,698,0,220,2)
1450 CALL SOUND(T,587,0,220,2)
1460 CALL SOUND(T,523,0,262,2,349,2)
1470 CALL SOUND(T,440,0,262,2,349,2)
1480 CALL SOUND(T,392,0,247,2)
1490 CALL SOUND(T,784,0,247,2)
1500 CALL SOUND(T,698,0,294,2,349,2)
1510 CALL SOUND(T,659,0,294,2,349,2)
1520 CALL SOUND(T,587,0,196,2)
1530 CALL SOUND(T,440,0,196,2)
1540 CALL SOUND(T,440,0,233,2,349,2)
1550 CALL SOUND(T,494,0,233,2,349,2)
1560 CALL SOUND(T,523,0,175,2,220,2)
1570 CALL SOUND(T,587,0,175,2,220,2)
1580 CALL SOUND(2*T,659,0,262,2)
1590 CALL SOUND(3*T,698,0,262,2,175,0)
1600 FOR I=1 TO 30 STEP 2 :: CALL SOUND(-T,698,I,262,I,175,I):: NEXT I :: RETURN
1610 REM **CREATE A WORD LIST**
1620 DISPLAY AT(1,4)ERASE ALL:"WORD LIST INSTRUCTIONS": : :" IN THIS SEGMENT YOU MAY":"EITHER CREATE A WORD LIST"
1630 DISPLAY AT(6,1):"OR LOAD AN EXISTING ONE FROM":"A STORAGE DEVICE.": : :" WHEN CREATING A WORD LIST,":"TYPE EACH WORD, THEN PRESS"
1640 DISPLAY AT(12,1):"ENTER. MAXIM WORD LENGTH":"IS 13 CHARACTERS. 20 WORDS":"MUST BE ENTERED FOR EACH 0F":"THE WORD LISTS CREATED."
1650 DISPLAY AT(18,3)BEEP:"AS YOU ENTER EACH LIST,":"YOU MAY SAVE IT TO A STORAGE":"DEVICE FOR FUTURE USE WITH":"MYSTERY SPELL."
1660 DISPLAY AT(24,6):"**PRESS ANY KEY**" :: CALL KEY(0,K,S) :: IF S=0 THEN 1660
1670 DISPLAY AT(7,1)ERASE ALL BEEP:"PRESS   TO": : :" 1 = CREATE A WORD LIST": :" Z = LOAD A WORD LIST": :" 3 = EXIT"
1680 CALL KEY(0,K,S):: IF S=0 OR(K<49 OR K>51) THEN 1680 :: J=0 :: ON K=48 GOTO 1690,1795,190
1690 DISPLAY AT(1,5)ERASE ALL:"ENTER THE WORD LIST:"
1700 I=1 :: C=1 :: FOR A=1 TO 2 :: R=3 :: FOR Z=1 TO 10
1710 ACCEPT AT(R,C)SIZE(-13)BEEP:B$(I):: R=R+2 :: I=I+1 :: NEXT Z :: C=15 :: NEXT A
1720 DISPLAY AT(24,1)BEEP:"CORRECT OR CHANGE ANY? (Y/N)"
1730 CALL KEY(0,K,S):: IF S=0 OR K<>89 AND K<>78 THEN 1730 :: IF K=89 THEN 1700 ::J=1 :: GOTO 1795
1740 FOR I=1 TO 20 :: PRINT #1:B$(I):: NEXT I :: CLOSE #1 GOTO 230
1750 FOR I=1 TO 20 :: INPUT #1:B$(I):: NEXT I :: CLOSE #1
1760 DISPLAY AT(11,6)ERASE ALL BEEP:"DO YOU WISH TO SEE": :"    THE WORD LIST? (Y/N)"
1770 CALL KEY(0,K,S):: IF S=0 OR (K<>89 AND K<>78) THEN 1770 :: IF K=89 THEN 1780 ELSE 230
1780 DISPLAY AT(1,10)ERASE ALL BEEP:"WORD LIST" :: R=3 :: FOR I=1 TO 20 STEP 2 :: DISPLAY AT(R,1):B$(I),B$(I+1):: R=R+2 :: NEXT I
1790 DISPLAY AT(24,1):"PRESS ANY KEY WHEN FINISHED" :: CALL KEY(0,K,S):: IF S=0 THEN 1790 ELSE 230
1795 ON ERROR 2000
1800 DISPLAY AT(5,6)ERASE ALL BEEP:"WHAT IS THE NAME": :" OF YOUR STORAGE DEVICE?": :"(EXAMPLE: CS1 OR DSK1.WORDS)"
1810 DISPLAY AT(23,1):"PLACE TAPE OR DISK IN DEVICE" :: ACCEPT AT(11,3):F$
1815 IF SEG$(F$,1,1)="C" THEN 1842 ELSE OPEN #1=F$,INTERNAL,UPDATE,FIXED 50
1820 IF J=0 THEN 1750 ELSE 1740
1830 REM **PRESELECTED WORD LIST**
1840 FOR I=1 TO 20 :: READ B$(I):: NEXT I :: GOTO 260
1842 IF J=0 THEN 1846
1844 OPEN #1:F$,OUTPUT,INTERNAL,FIXED 50 :: FOR I=1 TO 20 :: PRINT #1:B$(I):: NEXT I :: CLOSE #1 :: GOTO 230
1846 OPEN §1:F$,INPUT,INTERNAL,FIXED 50 :: FOR I=1 TO 20 :: INPUT #1=B$(I):: NEXT I :: CLOSE #1 :: CALL CLEAR :: GOTO 1760
1850 DATA BANANAS,CARROTS,RHUBARB,CABBAGE,TURNIP,BEANS,CORN,CELERY,WATERMELON,ORANGES,APPLES,PEACHES
1860 DATA MUSHROOMS,ONIONS,POTATOES,TOMATOES,GRAPES,PUMPKIN,SQUASH,LEMONS
2000 PRINT "ERROR...ERROR"
2010 PRINT "CHECK TAPE OR DISK"
2020 PRINT "PROGRAM WILL BEGIN AGAIN"
2030 PRINT "PLEASE WAIT...."
2040 FOR A=1 TO 500
2050 NEXT A
2060 RUN

 

Edited by oddemann
  • Like 2

Share this post


Link to post
Share on other sites

Including the erroneous spaces @Schmitzi found, there are two ‘S’, two ‘Z’ and one ‘Q’ replaced with 5, 2 and 0, respectively:

810 DATA 112,C0C0C0C0C0C0C0C0,113,0303030303030303,114,FFFFFFFFFFFFFFFF,115,C0C0C0FFFFC0C0C0,116,030303FFFF030303
820 DATA 105,183C3C7E7EFFFFFF,106,FFFFFFFFFFFFFFFF,107,FFFFFF787E3C3C18,108,071F7FFFFF7F1F07,109,C0F0FEFFFFFEF0C0
830 DATA 96,00000000030F3FFF,97,FFFFFFFFFFFFFFFF,98,FFFFEFC78383C78F,99,7F3F183C73FCFEFF,33,FFFFFFFFFFFFFFFF
840 DATA 91,1F3F7FFFFFFFFFFF,92,F8FCFEFFFFFFFFFF,93,00000000C0F0FCFF
850 DATA 120,071320404C888081808854434020180780180C0232110181011121C2020418E0
860 DATA 124,0718204040888031809F904B44231807E0180C023211018101F9091222C418E0
870 DATA 128,071820404C8880818083844840201507E0180C023211018101C12112020418E0
880 DATA 132,030F1F3F3F3F3F1F0F0703010102040B80E0F0F8F8FBF3F0E0C030
890 DATA 136,030F3F7F7F3FFFFFFFFF3F7F7F37070ID0C0CCFEFEFCFFFFFFFFFCFEFEECE030
900 DATA 140,000000000000183D47830100000000000000000000001BBCE2C1800000000000
910 DATA 100,00010101000103030707070301000101C0E0F0D0C0E0F0F0FBFBF5F0E0C02020

 

...lee

Share this post


Link to post
Share on other sites
9 minutes ago, Lee Stewart said:

Including the erroneous spaces @Schmitzi found, there are two ‘S’, two ‘Z’ and one ‘Q’ replaced with 5, 2 and 0, respectively:

810 DATA 112,C0C0C0C0C0C0C0C0,113,0303030303030303,114,FFFFFFFFFFFFFFFF,115,C0C0C0FFFFC0C0C0,116,030303FFFF030303
820 DATA 105,183C3C7E7EFFFFFF,106,FFFFFFFFFFFFFFFF,107,FFFFFF787E3C3C18,108,071F7FFFFF7F1F07,109,C0F0FEFFFFFEF0C0
830 DATA 96,00000000030F3FFF,97,FFFFFFFFFFFFFFFF,98,FFFFEFC78383C78F,99,7F3F183C73FCFEFF,33,FFFFFFFFFFFFFFFF
840 DATA 91,1F3F7FFFFFFFFFFF,92,F8FCFEFFFFFFFFFF,93,00000000C0F0FCFF
850 DATA 120,071320404C888081808854434020180780180C0232110181011121C2020418E0
860 DATA 124,0718204040888031809F904B44231807E0180C023211018101F9091222C418E0
870 DATA 128,071820404C8880818083844840201507E0180C023211018101C12112020418E0
880 DATA 132,030F1F3F3F3F3F1F0F0703010102040B80E0F0F8F8FBF3F0E0C030
890 DATA 136,030F3F7F7F3FFFFFFFFF3F7F7F37070ID0C0CCFEFEFCFFFFFFFFFCFEFEECE030
900 DATA 140,000000000000183D47830100000000000000000000001BBCE2C1800000000000
910 DATA 100,00010101000103030707070301000101C0E0F0D0C0E0F0F0FBFBF5F0E0C02020

 

...lee

My version is better, I get the menu but when I pick 1-2 or 3 I get 800. 😛

I think that I got the mixed up letters from OCR, now.

Share this post


Link to post
Share on other sites
1 hour ago, Schmitzi said:

There are more errors, just on pasting it into Classic99, but this runs very fast from the screen

an I don´t now how to stop it while the paste is being done

image.png.065948b67fb90e83247817d63061867a.png

 

The title bar answers your question... ;) Press escape to stop the paste.

 

There are a few errors during paste... the easy way to see what didn't make it is to use LIST "CLIP", paste into a notepad, then you can diff against the original. I spent 4 years in the armed forces doing OCR correction, and boy this takes me back. ;)

 

I can't make sense of line 520 - please double check against the source document. I moved the IF K=89 to the next line. Also very unclear on the data in lines 940-960, should verify those by eye.

 

Several places had replaced quotes (') with ‘smart quotes’, which BASIC doesn't have and so Classic99 just drops them. ;) This is usually done automatically by word processors like Word.

 

Here's my version, sorry if someone else already solved it, I see there were four new replies while I did this... ;)

 

100 REM TI EXTENDED BASIC
110 REM MYSTERY SPELL
120 DIM A$(26),B$(20)
122 ON ERROR 140
125 CALL INIT :: CALL LOAD(-31878,13)
130 REM **INITIALIZATION AND INTRODUCTION**
140 DISPLAY AT(12,5)ERASE ALL:"ONE MOMENT PLEASE..." :: GOTO 780
150 DISPLAY AT(7,1)ERASE ALL BEEP:"PRESS   FOR": 2 :" 1 = INSTRUCTIONS": :" 2 = MYSTERY SPELL": :" 3 = FINISH MYSTERY SPELL"
160 DISPLAY AT(23,3):"PLEASE ENGAGE ALPHA LOCK" :2 CALL KEY(0,K,S):: IF S=0 OR(K<49 OR K>51) THEN 160 :: ON K-48 GOTO 980,190,170
170 DISPLAY AT(12,5)ERASE ALL BEEP:"THANKS FOR PLAYING," :: DISPLAY AT(14,14-LEN(L$)/2):L$ :: STOP
190 DISPLAY AT(7,1)ERASE ALL BEEP:"CHOOSE A WORD LIST:": : :" A = PRESELECTED WORDS": :" B = CREATE YOUR OWN"
200 CALL KEY(0,K,S):: IF S=0 0R(K<6S OR K>66) THEN 200 :: IF K=66 THEN 220
210 PSW=1 :: GOTO 230
220 PSW=0 :: GOTO 1620
230 CALL CLEAR :: RESTORE 940 :: GOTO 930
240 CALL SPRITE(#2,120,2,78,121,0,0) :: CALL MAGNIFY(3):: CALL SPRITE(#4,136,16,8,128,0,1) :: CALL SPRITE(#3,140,2,8,128,0,-2)
250 DISPLAY AT(5,9):"MYSTERY SPELL" :: T=200 :: GOSUB 1050 :: IF PSW=1 THEN GOTO 1840
260 DISPLAY AT(19,1)BEEP:" WHAT IS YOUR NAME, PLEASE?" :: DISPLAY AT(23,1):"TYPE NAME, THEN PRESS ENTER"
270 ACCEPT AT(5,9)SIZE(14):L$ :: CALL HCHAR(5,7,32,22)
280 REM **MAIN PROGRAM LOOP**
290 DISPLAY AT(19,1)BEEP:" CHOOSE THE LEVEL OF PLAY"
300 DISPLAY AT(23,1):"   1) EASY   2) DIFFICULT" :: CALL KEY(0,K,S):: IF S=0 OR K>50 OR K<49 THEN 300 :: IF K=49 THEN ER=7 ELSE ER=5
310 FOR SP=5 TO 13 :: CALL DELSPRITE(#SP)::NEXT SP
320 DISPLAY AT(19,1):" A B C D E F G H I J K L M" :: DISPLAY AT(23,1)BEEP:" N O P Q R S T U V W X Y Z" :: RANDOMIZE
330 CALL HCHAR(5,3,32,28):: W$=B$(INT(20*RND)+1):: F=LEN(W$):: FOR I=1 TO F :: DISPLAY AT(5,2*I+14-F):"_" :: NEXT I :: Y=0 :: SP=13
340 CALL KEY(0,K,S):: IF S=0 OR(K<65 OR K>90) THEN 340 ELSE C=121
350 IF K<78 THEN R=128 ELSE R=160
360 CC=((K-64)*16+16-208*INT((K-64)/14))/8 :: CALL GCHAR((R+24)/8,CC,X) :: IF X=32 THEN 370 ELSE 390
370 DISPLAY AT(16,14-(8+1EN(L$))/2)SIZE(8+1EN(L$))BEEP:" OOPS, ";L$;"," :: DISPLAY AT(17,1):" YOU TRIED THAT ONE ALREADY"
380 FOR D=1 TO 500 :: NEXT D :: CALL HCHAR(16,1,33,64):: GOTO 340
390 V=12 :: H=0 :: GOSUB 550
400 IF K<72 OR(K>77 AND K<85) THEN H=-12 ELSE H=12
410 V=0 :: C=(K-64)*16+4-208*INT((K-64)/14) :: GOSUB 550
420 X=0 :: CALL HCHAR((R+24)/8,(C+12)/8,32) :: FOR I=1 TO F :: IF ASC(SEG$(W$,I,1))<>K THEN 450
430 CALL PATTERN(#2,124):: GOSUB 580
440 CALL PATTERN(#2,120):: DISPLAY AT(5,2*1+14-F)SIZE(-1):CHR$(K):: X=1 :: Y=Y+1
450 NEXT I :: IF X=1 THEN 470
460 CALL PATTERN(#2,128):: GOSUB 620 :: CALL PATTERN(#2,120)
470 H=-H :: C=121 :: GOSUB 550
480 V=-12 :: H=0 :: R=78 :: GOSUB 550
490 IF Y=LEN(W$) THEN GOSUB 740 ELSE 500 :: GOTO 510
500 IF ER=1 THEN GOSUB 710 ELSE 340
510 DISPLAY AT(23,1)BEEP:"     ANOTHER WORD? (Y/N)"
520 CALL KEY(0,K,S):: IF S=0 OR K<>89 AND K<>78 THEN 520 
521 IF K=89 THEN 290
530 CALL DELSPRITE(ALL):: GOTO 150
540 REM **SUB TO MOVE HAPPY FACE**
550 CALL MOTION(#2,V,H)
560 CALL COINC(#2,R,C,4,Z):: IF Z=0 THEN 560 ELSE CALL MOTION(#2,0,0):: CALL LOCATE(#2,R,C):: RETURN
570 REM **SUB FOR CORRECT GUESS**
580 B=8*(2*I+14-F):: CALL SPRITE(#1,132,14,R,C,(32-R)/8,(B-C)/8)
590 J=2^(1/12):: FOR A=1 TO 25 :: CALL SOUND(-40,220*J^A,1):: NEXT A
600 CALL COINC(#1,32,B,6,Z) :: IF Z=0 THEN 600 ELSE CALL DELSPRITE(#1) :: RETURN
610 REM **SUB FOR INC0RRECT GUESS**
620 SP=SP-1 :: ER=ER-1 :: IF ER>4 THEN RR=80  ELSE RR=50
630 IF ER=6 OR ER=4 THEN C=52
640 IF ER=5 OR ER=1 THEN C=188
650 IF ER=3 THEN C=110
660 IF ER=2 THEN C=132
670 CALL SPRITE(#SP,140,2,1,120,(IF-1)/8,(C-120)/8)
680 J=2^(1/12):: FOR A=25 TO 1 STEP -1 :: CALL SOUND(-40,440*J^A,1):: NEXT A
690 CALL COINC(#SP,ER,C,6,Z):: IF Z=0 THEN 690 ELSE CALL MOTION(#SP,0,0):: CALL LOCATE(#SP,ER,C):: CALL PATTERN(#SP,100):: RETURN
700 REM **SUB FOR BLACKBIRDS WIN**
710 CALL HCHAR(19,3,32,28):: DISPLAY AT(19,15-(8+1EN(L$))/2):"SORRY, ";L$;","
720 DISPLAY AT(23,1)BEEP:"THE BLACKBIRDS WIN THIS TIME" :: GOSUB 760 :: RETURN
730 REM **SUB FOR PLAYER WIN$**
740 CALL HCHAR(19,3,32,28):: DISPLAY AT(19,15-(8+LEN(L$))/2):"GREAT, ";L$;","
750 DISPLAY AT(23,1):"   THAT'S THE SECRET WORD"
760 CALL HCHAR(5,3,32,28):: FOR I=1 TO F :: DISPLAY AT(5,2*I+14-F):SEG$(W$,I,1):: NEXT I :: T=180 :: GOSUB 1050 :: RETURN
770 REM **ASSIGN COLORS AND DEE CHARACTER
780 FOR I=0 TO 9 :: CALL COLOR(I,2,8):: NEXT I :: CALL COLOR(10,3,8):: CALL COLOR(11,11,8):: CALL COLOR(1,13,8)
800 FOR I=1 TO 25 :: READ C,A$(I):: CALL CHAR(C,A$(I)):: NEXT I :: CALL SCREEN(15):: GOTO 150
810 DATA 112,C0C0C0C0C0C0C0C0,113,0303030303030303,114,FFFFFFFFFFFFFFFF,115,C0C0C0FFFFC0C0C0,116,030303FFFF030303
820 DATA 105,183C3C7E7EFFFFFF,106,FFFFFFFFFFFFFFFF,107,FFFFFF787E3C3C18,108,071F7FFFFF7F1F0 7,109,C0F0 FEFFFFFEF0 C0
830 DATA 96,00000000030F3FFF,97,FFFFFFFFFFFFFFFF,98,FFFFEFC78383C78F,99,7F3F183C73FCFEFF,33,FFFFFFFFFFFFFFFF
840 DATA 91,1F3F7FFFFFFFFFFF,92,F8FCFEFFFFFFFFFF,93,00000000C0F0FCFF
850 DATA 120,0 71320404C88808180 88S4434020180780180C0232110181011121C2020418E0
860 DATA 124,0718204040888031809F904B44231807E0180C023211018101F9091222C418E0
870 DATA 128,0 71820404C88808180 83844840201507E0180C023211018101C12112020418E0
880 DATA 132,030F1F3F3F3F3F1F0F0703010102040B80E0F0F8F8FBF3F0E0C030
890 DATA 136,030F3F7F7F3FFFFFFFFF3F7F7F37070ID0C0CCFEFEFCFFFFFFFFFCFEFEECE030
900 DATA 140,000000000000183D47830100000000000000000000001BBCE2C1800000000000
910 DATA 100,00010101000103030707070301000101C0E0F0D0CQE0F0F0FBFBFSF0E0C0Z0Z0
920 REM **PRINT SCREEN**
930 CALL HCHAR(16,1,33,283):: FOR I=1 TO 21 :: READ R,C,G$ :: DISPLAY AT(R,C)SIZE(-6):G$ :: NEXT I :: GOTO 240
940 DATA 9,12,`[aa\],10,12,qIFIFp,l1,12,qIFrrp,12,12,qIFIFp,13,l4,St,14,14,St,15,l4,St
950 DATA 9,5,m,10,4,1jjjm,1l,4,1jjjm,12,5,kjk,13,6,b,14,6,a,15,6,a
960 DATA 9,22,m,10,21,1jjjm,11,21,1jjjm,12,22,kjk,13,23,a,14,23,C,15,23,a
970 REM **INSTRUCTIONS**
980 DISPLAY AT(1,3)ERASE ALL:"MYSTERY SPELL": :"   THE OBJECT OF MYSTERY":"SPELL IS TO GUESS THE SECRET":"WORD."
990 DISPLAY AT(5,4):"WHEN YOU PRESS A LETTER,":"THE HAPPY FACE WILL MOVE TO":"THE SELECTED LETTER AND LET":"YOU KNOW WHETHER YOU MADE A"
1000 DISPLAY AT(10,1):"RIGHT OR WRONG CHOICE.":"   A CORRECT CHOICE LAUNCHES ":"A BALLOON. AN INCORRECT ONE":"CAUSES A BLACKBIRD TO LAND."
1010 DISPLAY AT(14,1):"IF TOO MANY BLACKBIRDS LAND,":"YOU WILL LOSE THE GAME.": :"   THERE ARE TWO LEVELS:"
1020 DISPLAY AT(19,1)BEEP:"EASY) PERMITS 6 INCORRECT":"       GUESSES.": :"HARD) PERMITS ONLY 4."
1030 DISPLAY AT(24,6):"**PRESS ANY KEY**" :: CALL KEY(0,K,S):: IF S=0 THEN 1030 ELSE 190
1040 REM **SUB FOR BLACKBIRD FLIGHT AND THEME MELODY**
1050 R=8 :: FOR SP=5 TO 13 :: C=INT(RND*240)+1 :: CALL SPRITE(#SP,140,2,R,C,0 ,12)::R=R+12 :: NEXT SP
1060 CALL SOUND(T,175,0)
1070 CALL SOUND(T,349,0,175,2)
1080 CALL SOUND(T,587,0,175,2)
1090 CALL SOUND(2*T,523,0,440,1,175,2)
1100 CALL SOUND(T,587,0,175,2)
1110 CALL SOUND(2*T,523,0,440,1,185,2)
1120 CALL SOUND(T,196,0)
1130 CALL SOUND(T,330,0,196,2)
1140 CALL SOUND(T,587,0,196,2)
1150 CALL SOUND(2*T,523,0,466,1,196,2)
1160 CALL SOUND(T,587,0,196,2)
1170 CALL SOUND(2*T,523,0,466,1,208,2)
1180 CALL SOUND(T,220,2)
1190 CALL SOUND(T,523,0,440,1,220,2)
1200 CALL SOUND(T,311,2)
1210 CALL SOUND(T,523,0,440,1,311,2)
1220 CALL SOUND(T,294,2)
1230 CALL SOUND(T,494,0,415,1,294,2)
1240 CALL SOUND(T,277,2)
1250 CALL SOUND(T,466,0,392,1,277,2)
1260 CALL SOUND(T,440,0,262,2)
1270 CALL SOUND(T,523,0,262,2)
1280 CALL SOUND(T,587,0,241,2)
1290 CALL SOUND(T,698,0,247,2)
1300 CALL SOUND(2*T,659,0,233,2)
1310 CALL SOUND(2*T,784,0,659,1,131,2)
1320 CALL SOUND(T,880,0,175,2)
1330 CALL SOUND(T,831,0,175,2)
1340 CALL SOUND(T,880,0,262,2,349,2)
1350 CALL SOUND(T,1047,0,262,2,349,2)
1360 CALL SOUND(T,1047,0,220,2)
1370 CALL SOUND(T,880,0,220,2)
1380 CALL SOUND(T,784,0,262,2,349,2)
1390 CALL SOUND(T,69S,0,262,2,349,2)
1400 CALL SOUND(T,784,0,233,2)
1410 CALL SOUND(T,698,0,233,2)
1420 CALL SOUND(T,587,0,294,2,349,2)
1430 CALL SOUND(T,698,0,294,2,349,2)
1440 CALL SOUND(T,698,0,220,2)
1450 CALL SOUND(T,587,0,220,2)
1460 CALL SOUND(T,523,0,262,2,349,2)
1470 CALL SOUND(T,440,0,262,2,349,2)
1480 CALL SOUND(T,392,0,247,2)
1490 CALL SOUND(T,784,0,247,2)
1500 CALL SOUND(T,698,0,294,2,349,2)
1510 CALL SOUND(T,659,0,294,2,349,2)
1520 CALL SOUND(T,587,0,196,2)
1530 CALL SOUND(T,440,0,196,2)
1540 CALL SOUND(T,440,0,233,2,349,2)
1550 CALL SOUND(T,494,0,233,2,349,2)
1560 CALL SOUND(T,523,0,175,2,220,2)
1570 CALL SOUND(T,587,0,175,2,220,2)
1580 CALL SOUND(2*T,659,0,262,2)
1590 CALL SOUND(3*T,698,0,262,2,175,0)
1600 FOR I=1 TO 30 STEP 2 :: CALL SOUND(-T,698,I,262,I,175,I):: NEXT I :: RETURN
1610 REM **CREATE A WORD LIST**
1620 DISPLAY AT(1,4)ERASE ALL:"WORD LIST INSTRUCTIONS": : :" IN THIS SEGMENT YOU MAY":"EITHER CREATE A WORD LIST"
1630 DISPLAY AT(6,1):"OR LOAD AN EXISTING ONE FROM":"A STORAGE DEVICE.": : " WHEN CREATING A WORD LIST,":"TYPE EACH WORD, THEN PRESS"
1640 DISPLAY AT(12,1):"ENTER. MAXIMUM WORD LENGTH":"IS 13 CHARACTERS. 20 WORDS":"MUST BE ENTERED FOR EACH OF":"THE WORD LISTS CREATED."
1650 DISPLAY AT(18,3)BEEP:"AS YOU ENTER EACH LIST,":"YOU MAY SAVE IT TO A STORAGE":"DEVICE FOR FUTURE USE WITH":"MYSTERY SPELL."
1660 DISPLAY AT(24,6):"**PRESS ANY KEY**" ::CALL KEY(0,K,S):: IF S=0 THEN 1660
1670 DISPLAY AT(7,1)ERASE ALL BEEP:"PRESS   TO": : :" 1 = CREATE A WORD LIST": :" Z = LOAD A WORD LIST": :" 3 = EXIT"
1680 CALL KEY(0,K,S):: IF S=0 0R(K<49 OR K>51) THEN 1680 :: J=0 :: ON K-48 GOTO 1690,1795,190
1690 DISPLAY AT(1,5)ERASE ALL:"ENTER THE WORD LIST:"
1700 I=1 :: C=1 :: FOR A=1 TO 2 :: R=3 :: FOR Z=1 TO 10
1710 ACCEPT AT(R,C)SIZE(-13)BEEP:B$(I):: R=R+2 :: I=I+1 :: NEXT Z :: C=15 :: NEXT A
1720 DISPLAY AT(24,1)BEEP:"CORRECT OR CHANGE ANY? (Y/N)"
1730 CALL KEY(0,K,S):: IF S=0 OR K<>89 AND K<>78 THEN 1730 :: IF K=89 THEN 1700 ::J=1 :: GOTO 1795
1740 CALL KEY(0,K,S):: IF S=0 OR K<>89 AND K<>78 THEN 1730 :: IF K=89 THEN 1700 ::J=1 :: GOTO 1795
1750 FOR I=1 TO 20 :: INPUT #1:B$(I):: NEXT I :: CLOSE #1
1760 DISPLAY AT(11,5)ERASE ALL BEEP:"DO YOU WISH TO SEE": :"    THE WORD LIST? (Y/N)"
1770 CALL KEY(0,K,S):: IF S=0 OR (K<>89 AND K<>78) THEN 1770 :: IF K=89 THEN 1789 ELSE 230
1780 DISPLAY AT(1,10)ERASE ALL BEEP:"WORD LIST" :: R=3 :: FOR I=1 TO 20 STEP 2 :: DISPLAY AT(R,1):B$(I),B$(I+1):: R=R+2 :: NEXT I
1790 DISPLAY AT(24,1):"PRESS ANY KEY WHEN FINISHED" :: CALL KEY(0,K,S):: IF S=0 THEN 1790 ELSE 230
1795 ON ERROR 2000
1800 DISPLAY AT(5,6)ERASE ALL BEEP:"WHAT IS THE NAME": :" OF YOUR STORAGE DEVICE?": :"(EXAMPLE: CS1 OR DSK1.WORDS)"
1810 DISPLAY AT(23,1):"PLACE TAPE OR DISK IN DEVICE" :: ACCEPT AT(11,3):F$
1815 IF SEG$(F$,1,1)="C" THEN 1842 ELSE OPEN #1=F$,INTERNAL,UPDATE,FIXED 50
1820 IF J=0 THEN 1750 ELSE 1740
1830 REM **PRESELECTED WORD LIST**
1840 FOR I=1 TO 20 :: READ B$(I):: NEXT I :: GOTO 260
1842 IF J=0 THEN 1846
1844 OPEN #1:F$,OUTPUT,INTERNAL,FIXED 50 :: FOR I=1 TO 20 :: PRINT #1:B$(I):: NEXT I :: CLOSE 81 :: GOTO 230
1846 OPEN #1:F$,INPUT ,INTERNAL,FIXED 50 :: FOR I=1 TO 20 :: INPUT #1=B$(I):: NEXT I :: CLOSE #1 :: CALL CLEAR :: GOTO 1760
1850 DATA BANANAS,CARROTS,RHUBARB,CABBAGE,TURNIP,BEANS,CORN,CELERY,WATERMELON,ORANGES,APPLES,PEACHES
1860 DATA MUSHROOMS,ONIONS,POTATOES,TOMATOES,GRAPES,PUMPKIN,SQUASH,LEMONS
2000 PRINT "ERROR...ERROR"
2010 PRINT "CHECK TAPE OR DISK"
2020 PRINT "PROGRAM WILL BEGIN AGAIN"
2030 PRINT "PLEASE WAIT...."
2040 FOR A=1 TO 500
2050 NEXT A
2060 RUN

 

 

 

 

 

 

 

 

  • Like 2

Share this post


Link to post
Share on other sites

(Reading back - you guys definitely got some that I missed! Going to take some merging ;) )

 

Share this post


Link to post
Share on other sites
9 minutes ago, Tursi said:

image.png.065948b67fb90e83247817d63061867a.png

 

The title bar answers your question... ;) Press escape to stop the paste.

 

There are a few errors during paste... the easy way to see what didn't make it is to use LIST "CLIP", paste into a notepad, then you can diff against the original. I spent 4 years in the armed forces doing OCR correction, and boy this takes me back. ;)

 

I can't make sense of line 520 - please double check against the source document. I moved the IF K=89 to the next line. Also very unclear on the data in lines 940-960, should verify those by eye.

 

Several places had replaced quotes (') with ‘smart quotes’, which BASIC doesn't have and so Classic99 just drops them. ;) This is usually done automatically by word processors like Word.

 

Here's my version, sorry if someone else already solved it, I see there were four new replies while I did this... ;)

 

 

  Hide contents

 


100 REM TI EXTENDED BASIC
110 REM MYSTERY SPELL
120 DIM A$(26),B$(20)
122 ON ERROR 140
125 CALL INIT :: CALL LOAD(-31878,13)
130 REM **INITIALIZATION AND INTRODUCTION**
140 DISPLAY AT(12,5)ERASE ALL:"ONE MOMENT PLEASE..." :: GOTO 780
150 DISPLAY AT(7,1)ERASE ALL BEEP:"PRESS   FOR": 2 :" 1 = INSTRUCTIONS": :" 2 = MYSTERY SPELL": :" 3 = FINISH MYSTERY SPELL"
160 DISPLAY AT(23,3):"PLEASE ENGAGE ALPHA LOCK" :2 CALL KEY(0,K,S):: IF S=0 OR(K<49 OR K>51) THEN 160 :: ON K-48 GOTO 980,190,170
170 DISPLAY AT(12,5)ERASE ALL BEEP:"THANKS FOR PLAYING," :: DISPLAY AT(14,14-LEN(L$)/2):L$ :: STOP
190 DISPLAY AT(7,1)ERASE ALL BEEP:"CHOOSE A WORD LIST:": : :" A = PRESELECTED WORDS": :" B = CREATE YOUR OWN"
200 CALL KEY(0,K,S):: IF S=0 0R(K<6S OR K>66) THEN 200 :: IF K=66 THEN 220
210 PSW=1 :: GOTO 230
220 PSW=0 :: GOTO 1620
230 CALL CLEAR :: RESTORE 940 :: GOTO 930
240 CALL SPRITE(#2,120,2,78,121,0,0) :: CALL MAGNIFY(3):: CALL SPRITE(#4,136,16,8,128,0,1) :: CALL SPRITE(#3,140,2,8,128,0,-2)
250 DISPLAY AT(5,9):"MYSTERY SPELL" :: T=200 :: GOSUB 1050 :: IF PSW=1 THEN GOTO 1840
260 DISPLAY AT(19,1)BEEP:" WHAT IS YOUR NAME, PLEASE?" :: DISPLAY AT(23,1):"TYPE NAME, THEN PRESS ENTER"
270 ACCEPT AT(5,9)SIZE(14):L$ :: CALL HCHAR(5,7,32,22)
280 REM **MAIN PROGRAM LOOP**
290 DISPLAY AT(19,1)BEEP:" CHOOSE THE LEVEL OF PLAY"
300 DISPLAY AT(23,1):"   1) EASY   2) DIFFICULT" :: CALL KEY(0,K,S):: IF S=0 OR K>50 OR K<49 THEN 300 :: IF K=49 THEN ER=7 ELSE ER=5
310 FOR SP=5 TO 13 :: CALL DELSPRITE(#SP)::NEXT SP
320 DISPLAY AT(19,1):" A B C D E F G H I J K L M" :: DISPLAY AT(23,1)BEEP:" N O P Q R S T U V W X Y Z" :: RANDOMIZE
330 CALL HCHAR(5,3,32,28):: W$=B$(INT(20*RND)+1):: F=LEN(W$):: FOR I=1 TO F :: DISPLAY AT(5,2*I+14-F):"_" :: NEXT I :: Y=0 :: SP=13
340 CALL KEY(0,K,S):: IF S=0 OR(K<65 OR K>90) THEN 340 ELSE C=121
350 IF K<78 THEN R=128 ELSE R=160
360 CC=((K-64)*16+16-208*INT((K-64)/14))/8 :: CALL GCHAR((R+24)/8,CC,X) :: IF X=32 THEN 370 ELSE 390
370 DISPLAY AT(16,14-(8+1EN(L$))/2)SIZE(8+1EN(L$))BEEP:" OOPS, ";L$;"," :: DISPLAY AT(17,1):" YOU TRIED THAT ONE ALREADY"
380 FOR D=1 TO 500 :: NEXT D :: CALL HCHAR(16,1,33,64):: GOTO 340
390 V=12 :: H=0 :: GOSUB 550
400 IF K<72 OR(K>77 AND K<85) THEN H=-12 ELSE H=12
410 V=0 :: C=(K-64)*16+4-208*INT((K-64)/14) :: GOSUB 550
420 X=0 :: CALL HCHAR((R+24)/8,(C+12)/8,32) :: FOR I=1 TO F :: IF ASC(SEG$(W$,I,1))<>K THEN 450
430 CALL PATTERN(#2,124):: GOSUB 580
440 CALL PATTERN(#2,120):: DISPLAY AT(5,2*1+14-F)SIZE(-1):CHR$(K):: X=1 :: Y=Y+1
450 NEXT I :: IF X=1 THEN 470
460 CALL PATTERN(#2,128):: GOSUB 620 :: CALL PATTERN(#2,120)
470 H=-H :: C=121 :: GOSUB 550
480 V=-12 :: H=0 :: R=78 :: GOSUB 550
490 IF Y=LEN(W$) THEN GOSUB 740 ELSE 500 :: GOTO 510
500 IF ER=1 THEN GOSUB 710 ELSE 340
510 DISPLAY AT(23,1)BEEP:"     ANOTHER WORD? (Y/N)"
520 CALL KEY(0,K,S):: IF S=0 OR K<>89 AND K<>78 THEN 520 
521 IF K=89 THEN 290
530 CALL DELSPRITE(ALL):: GOTO 150
540 REM **SUB TO MOVE HAPPY FACE**
550 CALL MOTION(#2,V,H)
560 CALL COINC(#2,R,C,4,Z):: IF Z=0 THEN 560 ELSE CALL MOTION(#2,0,0):: CALL LOCATE(#2,R,C):: RETURN
570 REM **SUB FOR CORRECT GUESS**
580 B=8*(2*I+14-F):: CALL SPRITE(#1,132,14,R,C,(32-R)/8,(B-C)/8)
590 J=2^(1/12):: FOR A=1 TO 25 :: CALL SOUND(-40,220*J^A,1):: NEXT A
600 CALL COINC(#1,32,B,6,Z) :: IF Z=0 THEN 600 ELSE CALL DELSPRITE(#1) :: RETURN
610 REM **SUB FOR INC0RRECT GUESS**
620 SP=SP-1 :: ER=ER-1 :: IF ER>4 THEN RR=80  ELSE RR=50
630 IF ER=6 OR ER=4 THEN C=52
640 IF ER=5 OR ER=1 THEN C=188
650 IF ER=3 THEN C=110
660 IF ER=2 THEN C=132
670 CALL SPRITE(#SP,140,2,1,120,(IF-1)/8,(C-120)/8)
680 J=2^(1/12):: FOR A=25 TO 1 STEP -1 :: CALL SOUND(-40,440*J^A,1):: NEXT A
690 CALL COINC(#SP,ER,C,6,Z):: IF Z=0 THEN 690 ELSE CALL MOTION(#SP,0,0):: CALL LOCATE(#SP,ER,C):: CALL PATTERN(#SP,100):: RETURN
700 REM **SUB FOR BLACKBIRDS WIN**
710 CALL HCHAR(19,3,32,28):: DISPLAY AT(19,15-(8+1EN(L$))/2):"SORRY, ";L$;","
720 DISPLAY AT(23,1)BEEP:"THE BLACKBIRDS WIN THIS TIME" :: GOSUB 760 :: RETURN
730 REM **SUB FOR PLAYER WIN$**
740 CALL HCHAR(19,3,32,28):: DISPLAY AT(19,15-(8+LEN(L$))/2):"GREAT, ";L$;","
750 DISPLAY AT(23,1):"   THAT'S THE SECRET WORD"
760 CALL HCHAR(5,3,32,28):: FOR I=1 TO F :: DISPLAY AT(5,2*I+14-F):SEG$(W$,I,1):: NEXT I :: T=180 :: GOSUB 1050 :: RETURN
770 REM **ASSIGN COLORS AND DEE CHARACTER
780 FOR I=0 TO 9 :: CALL COLOR(I,2,8):: NEXT I :: CALL COLOR(10,3,8):: CALL COLOR(11,11,8):: CALL COLOR(1,13,8)
800 FOR I=1 TO 25 :: READ C,A$(I):: CALL CHAR(C,A$(I)):: NEXT I :: CALL SCREEN(15):: GOTO 150
810 DATA 112,C0C0C0C0C0C0C0C0,113,0303030303030303,114,FFFFFFFFFFFFFFFF,115,C0C0C0FFFFC0C0C0,116,030303FFFF030303
820 DATA 105,183C3C7E7EFFFFFF,106,FFFFFFFFFFFFFFFF,107,FFFFFF787E3C3C18,108,071F7FFFFF7F1F0 7,109,C0F0 FEFFFFFEF0 C0
830 DATA 96,00000000030F3FFF,97,FFFFFFFFFFFFFFFF,98,FFFFEFC78383C78F,99,7F3F183C73FCFEFF,33,FFFFFFFFFFFFFFFF
840 DATA 91,1F3F7FFFFFFFFFFF,92,F8FCFEFFFFFFFFFF,93,00000000C0F0FCFF
850 DATA 120,0 71320404C88808180 88S4434020180780180C0232110181011121C2020418E0
860 DATA 124,0718204040888031809F904B44231807E0180C023211018101F9091222C418E0
870 DATA 128,0 71820404C88808180 83844840201507E0180C023211018101C12112020418E0
880 DATA 132,030F1F3F3F3F3F1F0F0703010102040B80E0F0F8F8FBF3F0E0C030
890 DATA 136,030F3F7F7F3FFFFFFFFF3F7F7F37070ID0C0CCFEFEFCFFFFFFFFFCFEFEECE030
900 DATA 140,000000000000183D47830100000000000000000000001BBCE2C1800000000000
910 DATA 100,00010101000103030707070301000101C0E0F0D0CQE0F0F0FBFBFSF0E0C0Z0Z0
920 REM **PRINT SCREEN**
930 CALL HCHAR(16,1,33,283):: FOR I=1 TO 21 :: READ R,C,G$ :: DISPLAY AT(R,C)SIZE(-6):G$ :: NEXT I :: GOTO 240
940 DATA 9,12,`[aa\],10,12,qIFIFp,l1,12,qIFrrp,12,12,qIFIFp,13,l4,St,14,14,St,15,l4,St
950 DATA 9,5,m,10,4,1jjjm,1l,4,1jjjm,12,5,kjk,13,6,b,14,6,a,15,6,a
960 DATA 9,22,m,10,21,1jjjm,11,21,1jjjm,12,22,kjk,13,23,a,14,23,C,15,23,a
970 REM **INSTRUCTIONS**
980 DISPLAY AT(1,3)ERASE ALL:"MYSTERY SPELL": :"   THE OBJECT OF MYSTERY":"SPELL IS TO GUESS THE SECRET":"WORD."
990 DISPLAY AT(5,4):"WHEN YOU PRESS A LETTER,":"THE HAPPY FACE WILL MOVE TO":"THE SELECTED LETTER AND LET":"YOU KNOW WHETHER YOU MADE A"
1000 DISPLAY AT(10,1):"RIGHT OR WRONG CHOICE.":"   A CORRECT CHOICE LAUNCHES ":"A BALLOON. AN INCORRECT ONE":"CAUSES A BLACKBIRD TO LAND."
1010 DISPLAY AT(14,1):"IF TOO MANY BLACKBIRDS LAND,":"YOU WILL LOSE THE GAME.": :"   THERE ARE TWO LEVELS:"
1020 DISPLAY AT(19,1)BEEP:"EASY) PERMITS 6 INCORRECT":"       GUESSES.": :"HARD) PERMITS ONLY 4."
1030 DISPLAY AT(24,6):"**PRESS ANY KEY**" :: CALL KEY(0,K,S):: IF S=0 THEN 1030 ELSE 190
1040 REM **SUB FOR BLACKBIRD FLIGHT AND THEME MELODY**
1050 R=8 :: FOR SP=5 TO 13 :: C=INT(RND*240)+1 :: CALL SPRITE(#SP,140,2,R,C,0 ,12)::R=R+12 :: NEXT SP
1060 CALL SOUND(T,175,0)
1070 CALL SOUND(T,349,0,175,2)
1080 CALL SOUND(T,587,0,175,2)
1090 CALL SOUND(2*T,523,0,440,1,175,2)
1100 CALL SOUND(T,587,0,175,2)
1110 CALL SOUND(2*T,523,0,440,1,185,2)
1120 CALL SOUND(T,196,0)
1130 CALL SOUND(T,330,0,196,2)
1140 CALL SOUND(T,587,0,196,2)
1150 CALL SOUND(2*T,523,0,466,1,196,2)
1160 CALL SOUND(T,587,0,196,2)
1170 CALL SOUND(2*T,523,0,466,1,208,2)
1180 CALL SOUND(T,220,2)
1190 CALL SOUND(T,523,0,440,1,220,2)
1200 CALL SOUND(T,311,2)
1210 CALL SOUND(T,523,0,440,1,311,2)
1220 CALL SOUND(T,294,2)
1230 CALL SOUND(T,494,0,415,1,294,2)
1240 CALL SOUND(T,277,2)
1250 CALL SOUND(T,466,0,392,1,277,2)
1260 CALL SOUND(T,440,0,262,2)
1270 CALL SOUND(T,523,0,262,2)
1280 CALL SOUND(T,587,0,241,2)
1290 CALL SOUND(T,698,0,247,2)
1300 CALL SOUND(2*T,659,0,233,2)
1310 CALL SOUND(2*T,784,0,659,1,131,2)
1320 CALL SOUND(T,880,0,175,2)
1330 CALL SOUND(T,831,0,175,2)
1340 CALL SOUND(T,880,0,262,2,349,2)
1350 CALL SOUND(T,1047,0,262,2,349,2)
1360 CALL SOUND(T,1047,0,220,2)
1370 CALL SOUND(T,880,0,220,2)
1380 CALL SOUND(T,784,0,262,2,349,2)
1390 CALL SOUND(T,69S,0,262,2,349,2)
1400 CALL SOUND(T,784,0,233,2)
1410 CALL SOUND(T,698,0,233,2)
1420 CALL SOUND(T,587,0,294,2,349,2)
1430 CALL SOUND(T,698,0,294,2,349,2)
1440 CALL SOUND(T,698,0,220,2)
1450 CALL SOUND(T,587,0,220,2)
1460 CALL SOUND(T,523,0,262,2,349,2)
1470 CALL SOUND(T,440,0,262,2,349,2)
1480 CALL SOUND(T,392,0,247,2)
1490 CALL SOUND(T,784,0,247,2)
1500 CALL SOUND(T,698,0,294,2,349,2)
1510 CALL SOUND(T,659,0,294,2,349,2)
1520 CALL SOUND(T,587,0,196,2)
1530 CALL SOUND(T,440,0,196,2)
1540 CALL SOUND(T,440,0,233,2,349,2)
1550 CALL SOUND(T,494,0,233,2,349,2)
1560 CALL SOUND(T,523,0,175,2,220,2)
1570 CALL SOUND(T,587,0,175,2,220,2)
1580 CALL SOUND(2*T,659,0,262,2)
1590 CALL SOUND(3*T,698,0,262,2,175,0)
1600 FOR I=1 TO 30 STEP 2 :: CALL SOUND(-T,698,I,262,I,175,I):: NEXT I :: RETURN
1610 REM **CREATE A WORD LIST**
1620 DISPLAY AT(1,4)ERASE ALL:"WORD LIST INSTRUCTIONS": : :" IN THIS SEGMENT YOU MAY":"EITHER CREATE A WORD LIST"
1630 DISPLAY AT(6,1):"OR LOAD AN EXISTING ONE FROM":"A STORAGE DEVICE.": : " WHEN CREATING A WORD LIST,":"TYPE EACH WORD, THEN PRESS"
1640 DISPLAY AT(12,1):"ENTER. MAXIMUM WORD LENGTH":"IS 13 CHARACTERS. 20 WORDS":"MUST BE ENTERED FOR EACH OF":"THE WORD LISTS CREATED."
1650 DISPLAY AT(18,3)BEEP:"AS YOU ENTER EACH LIST,":"YOU MAY SAVE IT TO A STORAGE":"DEVICE FOR FUTURE USE WITH":"MYSTERY SPELL."
1660 DISPLAY AT(24,6):"**PRESS ANY KEY**" ::CALL KEY(0,K,S):: IF S=0 THEN 1660
1670 DISPLAY AT(7,1)ERASE ALL BEEP:"PRESS   TO": : :" 1 = CREATE A WORD LIST": :" Z = LOAD A WORD LIST": :" 3 = EXIT"
1680 CALL KEY(0,K,S):: IF S=0 0R(K<49 OR K>51) THEN 1680 :: J=0 :: ON K-48 GOTO 1690,1795,190
1690 DISPLAY AT(1,5)ERASE ALL:"ENTER THE WORD LIST:"
1700 I=1 :: C=1 :: FOR A=1 TO 2 :: R=3 :: FOR Z=1 TO 10
1710 ACCEPT AT(R,C)SIZE(-13)BEEP:B$(I):: R=R+2 :: I=I+1 :: NEXT Z :: C=15 :: NEXT A
1720 DISPLAY AT(24,1)BEEP:"CORRECT OR CHANGE ANY? (Y/N)"
1730 CALL KEY(0,K,S):: IF S=0 OR K<>89 AND K<>78 THEN 1730 :: IF K=89 THEN 1700 ::J=1 :: GOTO 1795
1740 CALL KEY(0,K,S):: IF S=0 OR K<>89 AND K<>78 THEN 1730 :: IF K=89 THEN 1700 ::J=1 :: GOTO 1795
1750 FOR I=1 TO 20 :: INPUT #1:B$(I):: NEXT I :: CLOSE #1
1760 DISPLAY AT(11,5)ERASE ALL BEEP:"DO YOU WISH TO SEE": :"    THE WORD LIST? (Y/N)"
1770 CALL KEY(0,K,S):: IF S=0 OR (K<>89 AND K<>78) THEN 1770 :: IF K=89 THEN 1789 ELSE 230
1780 DISPLAY AT(1,10)ERASE ALL BEEP:"WORD LIST" :: R=3 :: FOR I=1 TO 20 STEP 2 :: DISPLAY AT(R,1):B$(I),B$(I+1):: R=R+2 :: NEXT I
1790 DISPLAY AT(24,1):"PRESS ANY KEY WHEN FINISHED" :: CALL KEY(0,K,S):: IF S=0 THEN 1790 ELSE 230
1795 ON ERROR 2000
1800 DISPLAY AT(5,6)ERASE ALL BEEP:"WHAT IS THE NAME": :" OF YOUR STORAGE DEVICE?": :"(EXAMPLE: CS1 OR DSK1.WORDS)"
1810 DISPLAY AT(23,1):"PLACE TAPE OR DISK IN DEVICE" :: ACCEPT AT(11,3):F$
1815 IF SEG$(F$,1,1)="C" THEN 1842 ELSE OPEN #1=F$,INTERNAL,UPDATE,FIXED 50
1820 IF J=0 THEN 1750 ELSE 1740
1830 REM **PRESELECTED WORD LIST**
1840 FOR I=1 TO 20 :: READ B$(I):: NEXT I :: GOTO 260
1842 IF J=0 THEN 1846
1844 OPEN #1:F$,OUTPUT,INTERNAL,FIXED 50 :: FOR I=1 TO 20 :: PRINT #1:B$(I):: NEXT I :: CLOSE 81 :: GOTO 230
1846 OPEN #1:F$,INPUT ,INTERNAL,FIXED 50 :: FOR I=1 TO 20 :: INPUT #1=B$(I):: NEXT I :: CLOSE #1 :: CALL CLEAR :: GOTO 1760
1850 DATA BANANAS,CARROTS,RHUBARB,CABBAGE,TURNIP,BEANS,CORN,CELERY,WATERMELON,ORANGES,APPLES,PEACHES
1860 DATA MUSHROOMS,ONIONS,POTATOES,TOMATOES,GRAPES,PUMPKIN,SQUASH,LEMONS
2000 PRINT "ERROR...ERROR"
2010 PRINT "CHECK TAPE OR DISK"
2020 PRINT "PROGRAM WILL BEGIN AGAIN"
2030 PRINT "PLEASE WAIT...."
2040 FOR A=1 TO 500
2050 NEXT A
2060 RUN

 

 

 

 

 

 

 

 

 

 

520 CALL KEY(0,K,S):: IF S=0 OR K<>89 AND K<>78 THEN 520 :: IF K=89 THEN 290

 

🧐 looking it over and over 😛

Share this post


Link to post
Share on other sites

I hate to spoil all "the fun", but it's in the "Game Base".:grin:

 

 

100 REM  MYSRET SPELL
120 DIM A$(26),B$(20)
122 ON ERROR 140
125 CALL INIT :: CALL LOAD(-31878,13)
130 REM **INITIALIZATION AND INTRODUCTION**
140 DISPLAY AT(12,5)ERASE ALL:"ONE MOMENT PLEASE..." :: GOTO 780
150 DISPLAY AT(23,3)ERASE ALL BEEP:"PRESS   FOR": : :"  1  =  INSTRUCTIONS": :"  2  =  MYSTERY SPELL": :"  3  =  FINISH MYSTERY SPELL"
160 DISPLAY AT(23,3):"PLEASE ENGAGE ALPHA LOCK" :: CALL KEY(0,K,S) :: IF S=0 OR(K<49 OR K>51)THEN 160 :: ON K-48 GOTO 980,190,170
170 DISPLAY AT(12,5)ERASE ALL BEEP:"THANKS FOR PLAYING," :: DISPLAY AT(14,14-LEN(L$)/2):L$ :: STOP
190 DISPLAY AT(7,1)ERASE ALL BEEP:"CHOOSE A WORD LIST:": : :"  A  =  PRESELETED WORDS": :"  B  =  CREATE YOUR OWN"
200 CALL KEY(0,K,S) :: IF S=0 OR(K<65 OR K>66)THEN 200 :: IF K=66 THEN 220
210 PSW=1 :: GOTO 230
220 PSW=0 :: GOTO 1620
230 CALL CLEAR :: RESTORE 940 :: GOTO 930
240 CALL SPRITE(#2,120,2,78,121,0,0) :: CALL MAGNIFY(3) :: CALL SPRITE(#4,136,16,8,128,0,1) :: CALL SPRITE(#3,140,2,8,128,0,-2)
250 DISPLAY AT(5,9):"MYSTERY SPELL" :: T=200 :: GOSUB 1050 :: IF PSW=1 THEN GOTO 1840
260 DISPLAY AT(19,1)BEEP:"WHAT IS YOUR NAME, PLEASE?" :: DISPLAY AT(23,1):"TYPE NAME, THEN PRESS ENTER"
270 ACCEPT AT(5,9)SIZE(14):L$ :: CALL HCHAR(5,7,32,22)
280 REM  **MAIN PROGRAMM LOOP**
290 DISPLAY AT(19,1)BEEP:" CHOOSE THE LEVEL OF PLAY"
300 DISPLAY AT(23,1):"    1)EASY    2) DIFFICULT" :: CALL KEY(0,K,S) :: IF S=0 OR K>50 OR K<49 THEN 300 :: IF K=49 THEN ER=7 ELSE ER=5
310 FOR SP=5 TO 13 :: CALL DELSPRITE(#SP) :: NEXT SP
320 DISPLAY AT(19,1):" A B C D E F G H I J K L M" :: DISPLAY AT(23,1)BEEP:" N O P Q R S T U V W X Y Z" :: RANDOMIZE
330 CALL HCHAR(5,3,32,28) :: W$=B$(INT(20*RND)+1) :: F=LEN(W$) :: FOR I=1 TO F :: DISPLAY AT(5,2*I+14-F):"_" :: NEXT I :: Y=0 :: SP=13
340 CALL KEY(0,K,S) :: IF S=0 OR(K<65 OR K>90)THEN 340 ELSE C=121
350 IF K<78 THEN R=128 ELSE R=160
360 CC=((K-64)*16+16-208*INT((K-64)/14))/8 :: CALL GCHAR((R+24)/8,CC,X) :: IF X=32 THEN 370 ELSE 390
370 DISPLAY AT(16,14-(8+LEN(L$))/2)SIZE(8+LEN(L$))BEEP:" OOPS, ";L$;"," :: DISPLAY AT(17,1):"YOU TRIED THAT ONE ALREADY"
380 FOR D=1 TO 500 :: NEXT D :: CALL HCHAR(16,1,33,64) :: GOTO 340
390 V=12 :: H=0 :: GOSUB 550
400 IF K<72 OR(K>77 AND K<85)THEN H=-12 ELSE H=12
410 V=0 :: C=(K-64)*16+4-208*INT((K-64)/14) :: GOSUB 550
420 X=0 :: CALL HCHAR((R+24)/8,(C+12)/8,32) :: FOR I=1 TO F :: IF ASC(SEG$(W$,I,1))<>K THEN 450
430 CALL PATTERN(#2,124) :: GOSUB 580
440 CALL PATTERN(#2,120) :: DISPLAY AT(5,2*I+14-F)SIZE(-1):CHR$(K) :: X=1 :: Y=Y+1
450 NEXT I :: IF X=1 THEN 470
460 CALL PATTERN(#2,128) :: GOSUB 620 :: CALL PATTERN(#2,120)
470 H=-H :: C=121 :: GOSUB 550
480 V=-12 :: H=0 :: R=78 :: GOSUB 550
490 IF Y=LEN(W$)THEN GOSUB 740 ELSE 500 :: GOTO 510
500 IF ER=1 THEN GOSUB 710 ELSE 340
510 DISPLAY AT(23,1)BEEP:"      ANOTHER WORD? (Y/N)"
520 CALL KEY(0,K,S) :: IF S=0 OR K<>89 AND K<>78 THEN 520 :: IF K=89 THEN 290
530 CALL DELSPRITE(ALL) :: GOTO 150
540 REM **SUB TO MOVE HAPPY FACE**
550 CALL MOTION(#2,V,H)
560 CALL COINC(#2,R,C,4,Z) :: IF Z=0 THEN 560 ELSE CALL MOTION(#2,0,0) :: CALL LOCATE(#2,R,C) :: RETURN
570 REM **SUB FOR CORRECT GUESS**
580 B=8*(2*I+14-F) :: CALL SPRITE(#1,132,14,R,C,(32-R)/8,(B-C)/8)
590 J=2^(1/12) :: FOR A=1 TO 25 :: CALL SOUND(-40,220*J^A,1) :: NEXT A
600 CALL COINC(#1,32,B,6,Z) :: IF Z=0 THEN 600 ELSE CALL DELSPRITE(#1) :: RETURN
610 REM **FOR INCORRECT GUESS**
620 SP=SP-1 :: ER=ER-1 :: IF ER>4 THEN RR=80 ELSE RR=50
630 IF ER=6 OR ER=4 THEN C=52
640 IF ER=5 OR ER=1 THEN C=188
650 IF ER=3 THEN C=110
660 IF ER=2 THEN C=132
670 CALL SPRITE(#SP,140,2,1,120,(RR-1)/8,(C-120)/8)
680 J=2^(1/12) :: FOR A=25 TO 1 STEP-1 :: CALL SOUND(-40,440*J^A,1) :: NEXT A
690 CALL COINC(#SP,RR,C,6,Z) :: IF Z=0 THEN 690 ELSE CALL MOTION(#SP,0,0) :: CALL LOCATE(#SP,RR,C) :: CALL PATTERN(#SP,100) :: RETURN
700 REM  **SUB FOR BLACKBIRDS WIN**
710 CALL HCHAR(19,3,32,28) :: DISPLAY AT(19,15-(8+LEN(L$))/2):"SORRY, ";L$;","
720 DISPLAY AT(23,1)BEEP:"THE BLACKBIRDS WIN THIS TIME" :: GOSUB 760 :: RETURN
730 REM **SUB FOR PLAYER WIN**
740 CALL HCHAR(19,3,32,28) :: DISPLAY AT(19,15-(8+LEN(L$))/2):"GREAT, ";L$;","
750 DISPLAY AT(23,1):"    THAT'S THE SECRET WORD"
760 CALL HCHAR(5,3,32,28) :: FOR I=1 TO F :: DISPLAY AT(5,2*I+14-F):SEG$(W$,I,1) :: NEXT I :: T=180 :: GOSUB 1050 :: RETURN
770 REM **ASSIGN COLORSAND DEFINE CHARCTERS**
780 FOR I=0 TO 9 :: CALL COLOR(I,2,8) :: NEXT I :: CALL COLOR(10,3,8) :: CALL COLOR(11,11,8) :: CALL COLOR(1,13,8)
800 FOR I=1 TO 25 :: READ C,A$(I) :: CALL CHAR(C,A$(I)) :: NEXT I :: CALL SCREEN(15) :: GOTO 150
810 DATA 112,C0C0C0C0C0C0C0C0,113,0303030303030303,114,FFFFFFFFFFFFFFFF,115,C0C0C0FFFFC0C0C0,116,030303FFFF030303
820 DATA 105,183C3C7E7EFFFFFF,106,FFFFFFFFFFFFFFFF,107,FFFFFF7E7E3C3C18,108,071F7FFFFF7F1F07,109,C0F0FEFFFFFEF0C0
830 DATA 96,00000000030F3FFF,97,FFFFFFFFFFFFFFFF,98,FFFFEFC78383C7EF,99,7F3F1E3C78FCFEFF,33,FFFFFFFFFFFFFFFF
840 DATA 91,1F3F7FFFFFFFFFFF,92,F8FCFEFFFFFFFFFF,93,00000000C0F0FCFF
850 DATA 120,071820404C8880818088844340201807E0180C0232110181011121C2020418E0
860 DATA 124,071820404C888081809F904844231807E0180C023211018101F9091222C418E0
870 DATA 128,071820404C8880818083844840201807E0180C023211018101C12112020418E0
880 DATA 132,030F1F3F3F3F3F10FF0703010102040880E0F0F8F8F8F8F0E0C080
890 DATA 136,030F3F7F7F3FFFFFFFFF3F7F7F37070100C0CCFEFEFCFFFFFFFFFCFEFEECE080
900 DATA 140,000000000000183D478301000000000000000000000018BCE2C1800000000000
910 DATA 100,00010101000103030707070301000101C0E0F0D0C0E0F0F0F8F8F8F0E0C02020
920 REM **PRINT SCREEN**
930 CALL HCHAR(16,1,33,288) :: FOR I=1 TO 21 :: READ R,C,G$ :: DISPLAY AT(R,C)SIZE(-6):G$ :: NEXT I :: GOTO 240
940 DATA 9,12,`[aa\],10,12,qrrrrp,11,12,qrrrrp,12,12,qrrrrp,13,14,st,14,14,st,15,14,st
950 DATA 9,5,iii,10,4,ljjjm,11,4,ljjjm,12,5,kjk,13,6,b,14,6,a,15,6,a
960 DATA 9,22,iii,10,21,ljjjm,11,21,ljjjm,12,22,kjk,13,23,a,14,23,c,15,23,a
970 REM **INSTRUCTIONS**
980 DISPLAY AT(1,8)ERASE ALL:"MYSTERY SPELL": :"   THE OJEKT OF MYSTERY":"SPELL IS TO GUESS THE SECRET":"WORD."
990 DISPLAY AT(6,4):"WHEN YOU PRESS A LETTER,":"THE SELECTED LETTER AND LET":"YOU KNOW WHETHER YOU MADE A"
1000 DISPLAY AT(10,1):"RIGHT OR WRONG CHOICE.":"  A CORREECT CHOISE LAUNCHES":"A BALLON.  AN INCORRECT ONE"
1001 DISPLAY AT(13,1):"CAUSES A BLACKBIRD TO LAND."
1010 DISPLAY AT(14,1):"IF TOO MANY BLACKBIRDS LAND,":"YOU WILL LOSE THE GAME.": :"   THERE ARE TWO LEVELS:"
1020 DISPLAY AT(19,1)BEEP:"EASY)  PERMITS 6 INCORRECT":"       GUESSES.": :"HARD)  PERMITES ONLY 4."
1030 DISPLAY AT(24,6):"**PRESS ANY KEY**" :: CALL KEY(0,K,S) :: IF S=0 THEN 1030 ELSE 190
1040 REM **SUB FOR BLACKBIRD FLIGHT AND THEME MELODY**
1050 R=8 :: FOR SP=5 TO 13 :: C=INT(RND*240)+1 :: CALL SPRITE(#SP,140,2,R,C,0,12) :: R=R+12 :: NEXT SP
1060 CALL SOUND(T,175,0)
1070 CALL SOUND(T,349,0,175,2)
1080 CALL SOUND(T,587,0,175,2)
1090 CALL SOUND(2*T,523,0,440,1,175,2)
1100 CALL SOUND(T,587,0,175,2)
1110 CALL SOUND(2*T,523,0,440,1,185,2)
1120 CALL SOUND(T,196,0)
1130 CALL SOUND(T,330,0,196,2)
1140 CALL SOUND(T,587,0,196,2)
1150 CALL SOUND(2*T,523,0,466,1,196,2)
1160 CALL SOUND(T,587,0,196,2)
1170 CALL SOUND(2*T,523,0,466,1,208,2)
1180 CALL SOUND(T,220,2)
1190 CALL SOUND(T,523,0,440,1,220,2)
1200 CALL SOUND(T,311,2)
1210 CALL SOUND(T,523,0,440,1,311,2)
1220 CALL SOUND(T,294,2)
1230 CALL SOUND(T,494,0,415,1,294,2)
1240 CALL SOUND(T,277,2)
1250 CALL SOUND(T,466,0,392,1,277,2)
1260 CALL SOUND(T,440,0,262,2)
1270 CALL SOUND(T,523,0,262,2)
1280 CALL SOUND(T,587,0,247,2)
1290 CALL SOUND(T,698,0,247,2)
1300 CALL SOUND(2*T,659,0,233,2)
1310 CALL SOUND(2*T,784,0,659,1,131,2)
1320 CALL SOUND(T,880,0,175,2)
1330 CALL SOUND(T,831,0,175,2)
1340 CALL SOUND(T,880,0,262,2,349,2)
1350 CALL SOUND(T,1047,0,262,2,349,2)
1360 CALL SOUND(T,1047,0,220,2)
1370 CALL SOUND(T,880,0,220,2)
1380 CALL SOUND(T,784,0,262,2,349,2)
1390 CALL SOUND(T,698,0,262,2,349,2)
1400 CALL SOUND(T,784,0,233,2)
1410 CALL SOUND(T,698,0,233,2)
1420 CALL SOUND(T,587,0,294,2,349,2)
1430 CALL SOUND(T,698,0,294,2,349,2)
1440 CALL SOUND(T,698,0,220,2)
1450 CALL SOUND(T,587,0,220,2)
1460 CALL SOUND(T,523,0,262,2,349,2)
1470 CALL SOUND(T,440,0,262,2,349,2)
1480 CALL SOUND(T,392,0,247,2)
1490 CALL SOUND(T,784,0,247,2)
1500 CALL SOUND(T,698,0,294,2,349,2)
1510 CALL SOUND(T,659,0,294,2,349,2)
1520 CALL SOUND(T,587,0,196,2)
1530 CALL SOUND(T,440,0,196,2)
1540 CALL SOUND(T,440,0,233,2,349,2)
1550 CALL SOUND(T,494,0,233,2,349,2)
1560 CALL SOUND(T,523,0,175,2,220,2)
1570 CALL SOUND(T,587,0,175,2,220,2)
1580 CALL SOUND(2*T,659,0,262,2)
1590 CALL SOUND(3*T,698,0,262,2,175,0)
1600 FOR I=1 TO 30 STEP 2 :: CALL SOUND(-T,698,I,262,I,175,I) :: NEXT I :: RETURN
1610 REM  **CREATE A WORD LIST**
1620 DISPLAY AT(4,1)ERASE ALL:"WORD LIST INSTRUCTIONS": : :"  IN THIS SEGMENT YOU MAY":"EITHER CREATE A WORD LIST"
1630 DISPLAY AT(6,1):"OR LOAD AN EXISTING ONE FROM":"A STORAGE DEVICE.": : :"WHEN CREATING A WORD LIST,":"TYPE EACH WORD, THEN PRESS."
1640 DISPLAY AT(12,1):"ENTER. MAXIMUM WORD LENGTH":"IS 13 CHARATERS. 20 WORDS":"MUST BE ENTERED FOR EACH OF":"THE WORD LIST CREATED."
1650 DISPLAY AT(18,3)BEEP:"AS YOU ENTER EACH LIST,":"YOU MAY SAVE IT TO A STORAGE":"DEVICE FOR FUTURE USE WITH":"MYSTERY SPELL."
1660 DISPLAY AT(24,6):"**PRESS ANY KEY**" :: CALL KEY(0,K,S) :: IF S=0 THEN 1660
1670 DISPLAY AT(7,1)ERASE ALL BEEP:"PRESS   TO": : :"  1 = CREATE A WORD LIST": :"  2 = LOAD A WORD LIST": :"  3 = EXIT"
1680 CALL KEY(0,K,S) :: IF S=0 OR(K<49 OR K>51)THEN 1680 :: J=0 :: ON K-48 GOTO 1690,1795,190
1690 DISPLAY AT(1,5)ERASE ALL:"ENTER THE WORD LIST."
1700 I=1 :: C=1 :: FOR A=1 TO 2 :: R=3 :: FOR Z=1 TO 10
1710 ACCEPT AT(R,C)SIZE(-13)BEEP:B$(I) :: R=R+2 :: I=I+1 :: NEXT Z :: C=15 :: NEXT A
1720 DISPLAY AT(24,1)BEEP:"CORRECT OR CHANGE ANY? (Y/N)"
1730 CALL KEY(0,K,S) :: IF S=0 OR K<>89 AND K<>78 THEN 1730 :: IF K=89 THEN 1700 :: J=1 :: GOTO 1795
1740 FOR I=1 TO 20 :: PRINT #1:B$(I) :: NEXT I :: CLOSE #1 :: GOTO 230
1750 FOR I=1 TO 20 :: INPUT #1:B$(I) :: NEXT I :: CLOSE #1
1760 DISPLAY AT(11,6)ERASE ALL BEEP:"DO YOU WISH TO SEE": :"    THE WORD LIST? (Y/N)"
1770 CALL KEY(0,K,S) :: IF S=0 OR(K<>89 AND K<>78)THEN 1770 :: IF K=89 THEN 1780 ELSE 230
1780 DISPLAY AT(1,10)ERASE ALL BEEP:"WORD LIST" :: R=3 :: FOR I=1 TO 20 STEP 2 :: DISPLAY AT(R,1):B$(I),B$(I+1) :: R=R+2 :: NEXT I
1790 DISPLAY AT(24,1):"PRESS ANY KEY WHEN FINISHED." :: CALL KEY(0,K,S) :: IF S=0 THEN 1790 ELSE 230
1795 ON ERROR 1795
1800 DISPLAY AT(5,1)ERASE ALL BEEP:"EINLESEN (=1)": :"ODER": :"SPEICHERN (=2)"
1810 ACCEPT AT(11,3)VALIDATE("12"):AA1 :: IF AA1=1 THEN 1812 ELSE 1814
1812 OPEN #1:"DSK1.WOERTER",SEQUENTIAL,INTERNAL,INPUT,FIXED 50 :: GOTO 1820
1814 OPEN #1:"DSK1.WOERTER",SEQUENTIAL,INTERNAL,OUTPUT,FIXED 50
1820 IF J=0 THEN 1750 ELSE 1740
1830 REM
1840 FOR I=1 TO 20 :: READ B$(I) :: NEXT I :: GOTO 260
1850 DATA BANANE,OBST,REBE,BASIC,BOHNE,ORANGE,ERBSE,LINSE,PFERD,ESEL,HUHN,HAHN,AUTO,REISE,GEIGE,KLAVIER,FLOH
1860 DATA TANZ,COMPUTER,PFANNE

 

  • Like 2
  • Haha 2
  • Confused 2

Share this post


Link to post
Share on other sites
Posted (edited)

9 SYMPHONIE - VON LUDWIG VAN BEETHOVEN

NEW Program! The program itself works, some bad values here and there.

#1 Fix graphics! - Better but still bad stuff!

OK - #2 Fix values in CALL SOUND (Just a thing that takes time. Glasses and magnifiers on - THINK this is OK now??) I am now much older and I was reading User ref. Guide and I now understand Trace and Untrace. Played with it and it helped ed bug the sound. (Norwegian who learned English from doing TI stuff)

I am looking for a program to display graphic code! I know some of the code is wrong, just by looking at it. Will be grateful for a pointing to a program to view graphic code.
But #first I want to graphics to look right. Do you have a suggestion for a tool to look at graphics code?

Here is the program so fare!

10 DIM S$(10)
20 S$(1)="010101030303071FFEFCF0C00000000080808080808000000000000000000000"
30 S$(2)="0000000000000001FFFFFF00000000000000002070E0E0C0C080000000000000"
40 S$(3)="0000000000000000FFFFFF00000000000000000000000000FCFCF80000000000"
50 S$(4)="01010101010100000000000000000000808080C0C0C0E0F87F3F0F0300000000"
60 S$(5)="000000040E07070303010000000000000000000000000080FFFFFF0000000000"
70 S$(6)="00000000000000003F3F1F00000000000000000000000000FFFFFF0000000000"
80 S$(7)="000307070707070703010F0F0F0F0F0F00C0E0E0E0E0E0E0C080F0F0F0F0F0F0"
90 S$(8)="0F0F0F0F0F0F0F0F1E1D1F1B17161616F0F0F0F0F0F0F0F078B8F8D8E8686868"
100 S$(9)="060606060606060606061E3E3E00000060606060606060606060787C7C000000"
110 S$(10)="00707060606060606060606060606060000E0E06060606060606060606060606"
120 CALL COLOR(9,2,11,10,2,11,11,2,11,12,2,11,13,2,11,14,2,11)
130 FOR I=100 TO 136 STEP 4
140 CALL CHAR(I,S$((I-96)/4))
150 NEXT I
160 CALL CLEAR
170 DISPLAY AT(17,14):CHR$(128):CHR$(130) :: DISPLAY AT(18,14):CHR$(129);CHR$(131)
180 DISPLAY AT(19,14):CHR$(132);CHR$(134) :: DISPLAY AT(20,14):CHR$(133):CHR$(135)
190 CALL MAGNIFY(3)
200 CALL SPRITE(#1,124,2,113,121,0,0)
210 CALL SPRITE(#2,112,2,115,109,0,0) :: CALL SPRITE(#3,100,2,115,133,0,0)
220 CALL SCREEN(3)
230 CALL COLOR(1,2,11,2,2,11,4,2,11,5,2,11,6,2,11,7,2,11,8,2,11)
240 DISPLAY AT(9,9):"9.SYMPHONIE" :: DISPLAY AT(10,4):"VON LUDWIG VAN BEETHOVEN"
250 H=1000 :: Q=500 :: E=235
260 CALL SOUND(Q,659,0,523,2,262,2)
270 CALL PATTERN(#2,116,#3,104)
280 CALL SOUND(Q,659,0,523,2,330,2)
290 CALL PATTERN(#2,120,#3,108)
300 CALL SOUND(Q,698,0,587,2,440,2)
310 CALL PATTERN(#2,116,#3,104)
320 CALL SOUND(Q,784,0,659,2,392,2)
330 CALL PATTERN(#2,112,#3,100)
340 CALL SOUND(Q,784,0,659,2,262,2)
350 CALL PATTERN(#2,116,#3,104)
360 CALL SOUND(Q,698,0,587,2,220,2)
370 CALL PATTERN(#2,120,#3,108)
380 CALL SOUND(Q,659,0,523,2,196,2)
390 CALL PATTERN(#2,116,#3,104)
400 CALL SOUND(Q,587,0,484,2,247,2)
410 CALL PATTERN(#2,112,#3,100)
420 CALL SOUND(Q,523,0,440,2,330,2)
430 CALL PATTERN(#2,116,#3,104)
440 CALL SOUND(Q,523,0,440,2,262,2)
450 CALL PATTERN(#2,120,#3,108)
460 CALL SOUND(Q,587,0,494,2,175,2)
470 CALL PATTERN(#2,116,#3,104)
480 CALL SOUND(Q,659,0,523,2,220,2)
490 CALL PATTERN(#2,112,#3,100)
500 CALL SOUND(750,659,0,523,2,220,2)
510 CALL PATTERN(#2,116,#3,104) 
520 CALL SOUND(E,587,0,494,2,196,2)
530 CALL PATTERN(#2,112,#3,100)
540 CALL SOUND(H,587,0,494,2,196,2)
550 CALL PATTERN(#2,116,#3,104)
560 CALL SOUND(Q,659,0,523,2,262,2)
570 CALL PATTERN(#2,112,#3,100)
580 CALL SOUND(Q,659,0,523,2,330,2)
590 CALL PATTERN(#2,116,#3,104)
600 CALL SOUND(Q,698,0,587,2,440,2)
610 CALL PATTERN(#2,120,#3,108)
620 CALL SOUND(Q,784,0,659,2,392,2)
630 CALL PATTERN(#2,116,#3,104)
640 CALL SOUND(Q,784,0,659,2,262,2)
650 CALL PATTERN(#2,112,#3,100)
660 CALL SOUND(Q,698,0,587,2,220,2)
670 CALL PATTERN(#2,116,#3,100)
680 CALL SOUND(Q,659,0,523,2,196,2)
690 CALL PATTERN(#2,112,#3,100)
700 CALL SOUND(Q,587,0,494,2,247,2)
710 CALL PATTERN(#2,116,#3,104)
720 CALL SOUND(Q,523,0,440,2,330,2)
730 CALL PATTERN(#2,120,#3,108)
740 CALL SOUND(Q,523,0,440,2,262,2)
750 CALL PATTERN(#2,116,#3,104)
760 CALL SOUND(Q,587,0,484,2,175,2)
770 CALL PATTERN(#2,120,#3,108)
780 CALL SOUND(Q,659,0,523,2,220,2)
790 CALL PATTERN(#2,112,#3,100)
800 CALL SOUND(750,587,0,484,2,196,2)
810 CALL PATTERN(#2,116,#3,104)
820 CALL SOUND(E,523,0,392,2,131,2)
830 CALL PATTERN(#2,112,#3,100)
840 CALL SOUND(H,523,0,392,2,131,2)
850 CALL PATTERN(#2,116,#3,104)
860 CALL SOUND(Q,587,0,494,2)
870 CALL PATTERN(#2,112,#3,100)
880 CALL SOUND(Q,587,0,494,2)
890 CALL PATTERN(#3,104)
900 CALL SOUND(Q,659,0,523,2)
910 CALL PATTERN(#3,108)
920 CALL SOUND(Q,523,0,440,2)
930 CALL PATTERN(#3,104)
940 CALL SOUND(Q,587,0,494,2)
950 CALL PATTERN(#3,108)
960 CALL SOUND(E,659,0,523,2)
970 CALL PATTERN(#3,100)
980 CALL SOUND(E,692,0,587,2)
990 CALL PATTERN(#3,104)
1000 CALL SOUND(Q,659,0,523,2)
1010 CALL PATTERN(#3,100)
1020 CALL SOUND(Q,523,0,440,2)
1030 CALL PATTERN(#3,104)
1040 CALL SOUND(Q,587,0,494,2)
1050 CALL PATTERN(#3,108)
1060 CALL SOUND(E,659,0,523,2)
1070 CALL PATTERN(#3,104)
1080 CALL SOUND(E,698,0,587,2)
1090 CALL PATTERN(#3,100)
1100 CALL SOUND(Q,659,0,523,2)
1110 CALL PATTERN(#2,116,#3,104)
1120 CALL SOUND(Q,587,0,494,2)
1130 CALL PATTERN(#2,112)
1140 CALL SOUND(Q,523,0,440,2)
1150 CALL PATTERN(#2,120)
1160 CALL SOUND(Q,587,0,494,2)
1170 CALL PATTERN(#2,112)
1180 CALL SOUND(H,392,0)
1190 CALL PATTERN(#2,116)
1200 CALL SOUND(Q,659,0,523,2,262,2)
1210 CALL PATTERN(#2,112,#3,100)
1220 CALL SOUND(Q,659,0,523,2,330,2)
1230 CALL PATTERN(#2,120,#3,108)
1240 CALL SOUND(Q,698,0,587,2,440,2)
1250 CALL PATTERN(#2,112,#3,100)
1260 CALL SOUND(Q,784,0,659,2,392,2)
1270 CALL PATTERN(#2,120,#3,108)
1280 CALL SOUND(Q,784,0,659,2,262,2)
1290 CALL PATTERN(#2,116,#3,104)
1300 CALL SOUND(Q,698,0,587,2,220,2)
1310 CALL PATTERN(#2,112,#3,100)
1320 CALL SOUND(Q,659,0,523,2,196,2)
1330 CALL PATTERN(#2,116,#3,104)
1340 CALL SOUND(Q,587,0,494,2,247,2)
1350 CALL PATTERN(#2,120,#3,108)
1360 CALL SOUND(Q,523,0,440,2,330,2)
1370 CALL PATTERN(#2,116,#3,104)
1380 CALL SOUND(Q,523,0,440,2,262,2)
1390 CALL PATTERN(#2,112,#3,100)
1400 CALL SOUND(Q,587,0,494,2,175,2)
1410 CALL PATTERN(#2,116,#3,104)
1420 CALL SOUND(Q,659,0,523,2,220,2)
1430 CALL PATTERN(#2,112,#3,100)
1440 CALL SOUND(750,587,0,523,2,196,2)
1450 CALL PATTERN(#2,120,#3,108)
1460 CALL SOUND(E,523,0,392,2,131,2)
1470 CALL PATTERN(#2,112,#3,100)
1480 CALL SOUND(H,523,0,392,2,131,2)
1490 CALL PATTERN(#2,120,#3,108)
1500 FOR I=1 TO 500 :: NEXT I
1510 CALL DELSPRITE(#2,#3) :: CALL SPRITE(#2,136,2,122,121,0,0)
1520 FOR I=1 TO 500 :: NEXT I
1530 FOR I=1 TO 5
1540 CALL LOCATE(#1,113+2*I,121,#2,122+I,121)
1550 NEXT I
1560 FOR I=1 TO 500 :: NEXT I
1570 FOR I=1 TO 5
1580 CALL LOCATE(#1,123-2*I,121,#2,127-I,121)
1590 NEXT I
1600 DISPLAY AT(24,5):"NOCHMAL (J/N)"
1610 FOR I=1 TO 100
1620 CALL KEY(0,K,S)
1630 IF K=74 THEN CALL HCHAR(24,1,32,32) :: GOTO 170
1640 IF K=78 THEN END
1650 NEXT I :: GOTO 1530

 

Edited by oddemann
Less byggy!
  • Like 1

Share this post


Link to post
Share on other sites

I knew I had seen it before... Found it: Latest jar: GraphiCV-1.0.zip
 

Music is better, the graphic is much better and I think it is OK... BUT...

Why dos the right foot and right upper body come out to the left and down???

Share this post


Link to post
Share on other sites
11 hours ago, oddemann said:

9 SYMPHONIE - VON LUDWIG VAN BEETHOVEN

NEW Program! The program itself works, some bad values here and there.

#1 Fix graphics! - Better but still bad stuff!

OK - #2 Fix values in CALL SOUND (Just a thing that takes time. Glasses and magnifiers on - THINK this is OK now??) I am now much older and I was reading User ref. Guide and I now understand Trace and Untrace. Played with it and it helped ed bug the sound. (Norwegian who learned English from doing TI stuff)

I am looking for a program to display graphic code! I know some of the code is wrong, just by looking at it. Will be grateful for a pointing to a program to view graphic code.
But #first I want to graphics to look right. Do you have a suggestion for a tool to look at graphics code?

Here is the program so fare!

 

[insert long program here]

 

If I were you I'd remove most of the SOUND and PATTERN calls. Put it all in a loop, put the values you need in a table, go through the table.. I don't know how you'd do that in basic exactly, I haven't bothered to learn it yet, but all those repetitive calls make my inner programmer unhappy :P

 

Also, this is my personal preference but attaching a text file with the basic in it is exponentially better than pasting it all on one post, makes it so I can scroll down to the bottom of the page without it taking 10 years..

 

I'll figure out how to use XB and I'll get back to ya

  • Like 1

Share this post


Link to post
Share on other sites
2 hours ago, oddemann said:

Why dos the right foot and right upper body come out to the left and down???

Just used a colon instead of a semicolon on lines 170 and 180

 

Simple mistakes like that are a pain in the butt just because it isn't really obvious that you messed up, it takes some keen eyes especially with a non-programmer font

 

I recommend using Geany and finding/making a syntax highlight for XB. Also a few REMs in the code wouldn't hurt either, if you're keeping the program in it's own text file you don't even need to specify line numbers for 'em

  • Like 1

Share this post


Link to post
Share on other sites
7 hours ago, Gip-Gip said:

Just used a colon instead of a semicolon on lines 170 and 180

 

Simple mistakes like that are a pain in the butt just because it isn't really obvious that you messed up, it takes some keen eyes especially with a non-programmer font

 

I recommend using Geany and finding/making a syntax highlight for XB. Also a few REMs in the code wouldn't hurt either, if you're keeping the program in it's own text file you don't even need to specify line numbers for 'em

And today the King is Gip-Gip!

And as you so nicely point out, the bug is so so tiny and in your face when you know about it. "I should have seen it!"

Thx!

  • Like 1

Share this post


Link to post
Share on other sites
Posted (edited)

Not an xb issue, but programming in general.

 I just spent 3 hours trying to figure out why my simple routine  in assembly was putting data from the previous Register line into my current register and I found out I had Rem'd out my new register on accident with * LI R1,LIB4 and this created a headache because I didn't notice it and the previous line said, LI R1,LIB3

So I kept getting my old data showing up..

Stupid eyeballs!!!

 

Edited by GDMike

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...