# HELP - I AM STUCK! - TI EXtended BASIC

## Recommended Posts

3 minutes ago, oddemann said:

430 IF X=18 THEN CALL PATTERN(#2,13) ELSE 420

PATTERN has to use an integer from 32 to 143. (Page 142 of XB manual)

##### Share on other sites
Posted (edited)
8 minutes ago, senior_falcon said:

PATTERN has to use an integer from 32 to 143. (Page 142 of XB manual)

Thx!!! That solved it.... Looked at the PDF... there was a 1 lurking in the line under :p The ref to manual and 32-143 helped!

f... bugs... or is it my eyes... I spent so much time, reading and reading over and trying to be sure that I typed in everything correct after the bug. BUT... manged to NOT see the "1" lurking in the line right under...
"Programmers blindness!" - wounder what sets it off! And how to de-bug that bug :p hehehe

Line 430 is...
IF X=18 THEN CALL PATTERN(#2,131) ELSE 420

With that bug fixed...
Next fix...

570 CALL MOTION(#2,0,0):: CALL SOUND(200,-4,3):: CALL PATTERN(#2,43)

Edited by oddemann

##### Share on other sites
1 hour ago, oddemann said:

570 CALL MOTION(#2,0,0):: CALL SOUND(200,-4,3):: CALL PATTERN(#2,43)

I don't see anything obvious here. One of the drawbacks of multistatement lines is that you don't know which part of the line is causing the error. If you divide this line into 3 lines  then you will get more information from the error message:

570 CALL MOTION (#2,0,0)

571 CALL SOUND(200,-4,3)

572 CALL PATTERN(#2,43)

##### Share on other sites
3 hours ago, oddemann said:

I typed in everything

I find this much easier...

##### Share on other sites

Not really a problem... But a update of PARATROOPER to PARATROOPER 1.8... There are some "tiny" bugs and stuff I want to make/add to this game before it is PARATROOPER 2

- Thinking about making the bouts move up and down in the sea too... Anims ready! Need to play around and see how it looks.
- Make a dancing man when he hits targets... Anims ready! Have to move Dance "partner" to a better place to get correct color.
- Fix <>... "Just do it!"
- Maybe move 75,50,25 in front of targets... (and have the man dancing on top)... Tinkering and number testing...  Boring :p hehehe

- Maybe use magnify to make a level 1-2-3. First level is everything big, next level is small and last Experienced. Not give the option of N or E! Let everyone start at lvl 1, then redraw after X score. Huge change in program!
- Make sure that sprite of bout is in front of splash! Figure out WHY Sprite is behind... :p
- And MAYBE fix the colored letters by moving graphics around... VERY LOW on list!

I have been adding "better" visuals... WOW how limiting the TI 99/4A is... Or more correct Ex B. Been a lot of planing where to put the graphic to get the colors right. And jumping around and NOT "delete" some text or symbols... It is a very limiting lango / ram!

Well, I can ask about this... In the MISS of target... (Line 580)... It is displaying Parachute as green.. OK... But I want to make the waves light blue. I have not figures out way Call Color(12,6.5) will not make 120 light blue... Help? I guess it has something to do with Call Pattern?

But anyway... what do you think about it so fare?

```10 REM  EXTENDED BASIC REQUIRED
20 CALL CLEAR :: RANDOMIZE :: CALL MAGNIFY(3)
25 CALL CHAR(60,"01073F7FF8914B25130F01010103020680E0FCFE1F89D2A4C8F0808080C04060")
26 CALL CHAR(130,"107CFE8254381028")
30 FOR T=10 TO 14 :: FOR I=10 TO 14 :: DISPLAY AT(12,9):"PARATROOPER"
40 CALL SCREEN(T) :: NEXT I :: NEXT T
45 CALL SPRITE(#28,60,13,1,115,2,0)
50 CALL SCREEN(12)
60 FOR T=450 TO 550 STEP 50 :: FOR I=9 TO 19
70 CALL COLOR(13,4,1) :: DISPLAY AT(14,I):CHR\$(130)
80 CALL SOUND(10,T,3) :: NEXT I :: NEXT T
90 FOR I=1 TO 100 :: NEXT I :: GOSUB 920
100 DISPLAY AT(22,2):"NEED INSTRUCTIONS (Y/N)"
110 ACCEPT AT(22,25)VALIDATE("YNyn") : Y\$
115 CALL DELSPRITE(#28)
120 IF (Y\$="Y")OR(Y\$="y")THEN 750
130 IF (Y\$="N")OR (Y\$="n")THEN 860
140 CALL CLEAR :: CALL SCREEN(8)
150 CALL CHAR(33,"47A424468181A5E2",34,"E28585C52525A542")
160 CALL CHAR(35,"F794141621418582",120,"00030812241348201B0000000000000000A018E412E409029C00000000000000")
170 CALL CHAR(96,"00008187DFFF78000000000000000000000081E1FFFE1C000000000000000000",136,"030100010307070F1F1F3F3F7F00FF7F8080004040606060707078787C80FFFC")
180 CALL CHAR(104,"0103C3417F3F07070707077E7C40000080C0C080FCFEE2E3E0E0E06060606070",132,"202031337373F7FF")
190 CALL CHAR(133,"020203070F8FDFFF",64,"FFFFFFFFFFFFFFFF")
200 CALL CHAR(91,"FFFFFFFFFFFFFFFF",129,"00E0A6E6A6FEBAEE")
210 CALL CHAR(36,"000000000103077FDDFF3F0703010000000078F0E0C387FF57FFFE80C0E0F000",40,"FFFFCECEFF7F19191F1F19191F000000FFFF7373FFFE9898F8F89898F8000000")
220 CALL CHAR(44,"FFFFCECEFF7F19191F1F19191F000000FFFF7373FFFE9898F8F89898F8000000",92,"FFFFCECEFF7F19191F1F19191F000000FFFF7373FFFE9898F8F89898F8000000")
230 CALL CHAR(128,"183C7E7EFFFF1818",140,"00000603311EE63F5EFF7F0F1F000000000000C0E0E8F47EFFFFFFFFFE000000")
235 CALL CHAR(134,"0000889899DDFFFF",135,"008888DCDCDEFEFF")
236 CALL CHAR(104,"0103C3417F3F07070707077E7C40000080C0C080FCFEE2E3E0E0E06060606070")
240 CALL SCREEN(8) :: CALL COLOR(9,4,8,10,6,1) :: CALL COLOR(5,5,1)
250 CALL HCHAR(16,1,64,256)
260 FOR I=1 TO 31 STEP 4 :: CALL HCHAR(16,I,132) :: CALL HCHAR(16,I+1,133) ::  CALL HCHAR(16,I+2,134) :: CALL HCHAR(16,I+3,135) :: NEXT I
270 POINT=0 :: PARA=10
280 FOR N=22 TO 24 :: G=INT(RND*100)+10
290 CALL SPRITE(#N,140,15,G,G+120,0,.60) :: NEXT N :: CALL MAGNIFY(3)
300 S=7 :: FOR N=4 TO 6 :: S=S-1
310 D=INT(RND*5)+1 :: DD=INT(RND*14)+3 :: IF(D=OD)+(DD=ODD)+(DD=6) THEN 310
320 OD=D :: ODD=DD :: J=N*10+90+RND*10 :: CALL SPRITE(#S,136,DD,J,J,0,D) :: NEXT N :: CALL MAGNIFY(3)
330 IF FL=1 THEN 370 ELSE DISPLAY AT(15,5):CHR\$(35) :: DISPLAY AT(15,14):CHR\$(34)
340 DISPLAY AT(15,23):CHR\$(33)
350 CALL SPRITE(#3,32,1,180,180,0,60)
360 CALL SPRITE(#7,40,7,121,193,#8,44,12,121,121,#9,92,13,121,49)
370 IF PARA=0 THEN 630 ELSE RANDOMIZE :: U=INT(RND*70)+10
380 CALL SPRITE(#1,36,13,U,10,0,-12,#2,36,4,U,7,0,-12)
390 V=INT(RND*9)+1 :: L=INT(RND*4)+1
400 DISPLAY AT(1,1):"TROOPS LEFT";PARA;"  SCORE";POINT
410 DISPLAY AT(24,2):"WIND SPEED";L*2;"  WEIGHT";(V*25)+50
420 CALL KEY(1,X,Y)
430 IF X=18 THEN CALL PATTERN(#2,60) ELSE 420
440 CALL MOTION(#2,V,L) :: CALL SOUND(30,-6,5,150,5)
450 CALL COINC(#2,#7,Z,C)
460 CALL COINC(#2,#8,Z,CC)
470 CALL COINC(#2,#9,Z,CCC)
480 IF(C=-1)+(CC=-1)+(CCC=-1)THEN 510
490 CALL COINC(#2,#3,50,R) :: IF R=-1 THEN 570
500 GOTO 450
510 CALL MOTION(#2,0,0) :: CALL PATTERN(#2,104) :: CALL SOUND(-1500,5995,4)
520 FOR T=950 TO 1500 STEP 50 :: CALL SOUND(50,T,3) :: NEXT T
530 POINT=POINT-25*(C=-1)-50*(CC=-1)-75*(CCC=-1)
540 CALL DELSPRITE(#1,#2) :: DISPLAY AT(13,5):"MISSION ACCOMPLISHED"
550 FOR I=1 TO 150 :: NEXT I
560 CALL HCHAR(13,5,32,22) :: GOTO 370
570 CALL COLOR(2,6,1) :: CALL MOTION(#2,0,0):: CALL SOUND(200,-4,3):: CALL PATTERN(#2,96)
580 FOR I=1 TO 100 :: NEXT I :: CALL PATTERN(#2,120) :: FOR I=1 TO 200 :: NEXT I
590 CALL DELSPRITE(#1,#2) :: DISPLAY AT(13,3):"YOU MISSED THE DROP ZONE"
600 POINT=POINT-10 :: PARA=PARA-1
610 FOR I=1 TO 150 :: NEXT I :: CALL HCHAR(13,3,32,26)
620 GOTO 370
630 CALL HCHAR(1,1,32,29) :: CALL HCHAR(24,1,32,29)
640 FOR I=450 TO 850 STEP 25 :: CALL SOUND(50,I,3) :: NEXT I
650 FOR T=850 TO 450 STEP-25 :: CALL SOUND(50,T,3) :: NEXT T
660 DISPLAY AT(7,10):"GAME OVER"
670 DISPLAY AT(9,6):"YOU HAD ";POINT;"POINTS"
680 DISPLAY AT(12,2):"WANT TO PLAY AGAIN?  (Y/N)"
690 ACCEPT AT(12,27)VALIDATE("YN"):R\$
700 IF R\$="N" THEN 730
710 CALL HCHAR(12,4,32,26) :: CALL HCHAR(7,12,32,9) :: CALL HCHAR(9,6,32,24)
720 FL=1 :: GOTO 270
730 CALL CLEAR :: CALL DELSPRITE(ALL) :: CALL SCREEN(14) :: DISPLAY AT(12,10):"GOOD BYE "
740 GOSUB 920 :: END
750 CALL CLEAR :: CALL SCREEN(12)
760 PRINT "LAND YOUR PARATROOPERS ON","DROP PADS WORTH 75, 50, OR"
770 PRINT "25 POINTS. RELEASE EACH","WITH THE FIRE BUTTON ON","JOYSTICK #1 OR THE (Q) KEY.": :
780 PRINT "IF YOU MISS, YOU WILL DRIFT","INTO THE OCEN AND LOSE 10"
790 PRINT "POINTS. YOU CAN ONLY LOSE","10 TROOPERS BEFORE THE","GAME ENDS.": : :: PRINT "THE WIND SPEED AND WEIGHT"
800 PRINT "OF EACH TROOPER ARE DIS-","PLAYED AT THE BOTTOM OF THE","SCREEN. CONSIDER THE SPEED"
810 PRINT "OF DESCENT AND THE DRIFT   "
820 PRINT "CHECK THESE BEFOR RELEASING","EACH PARATROOPER."
830 PRINT TAB(10);"GOOD LUCK!": :
840 PRINT TAB(14);"PRESS ANY KEY TO BEGIN"
850 CALL KEY(0,K,S) :: IF S=0 THEN 850
860 CALL CLEAR :: DISPLAY AT(8,6):"PARATROOPER RANK ?"
870 DISPLAY AT(11,2):"<N>OVICE OR <E>XPERIENCED"
880 ACCEPT AT(14,28)VALIDATE("EeNn"):C\$
882 IF (C\$="N")OR (C\$="n")THEN 900
884 IF (C\$="E")OR(C\$="e")THEN 910
900 CALL MAGNIFY(3) :: Z=10 :: GOTO 140
910 Z=5 :: GOTO 140
920 CALL SOUND(300,330,3) :: CALL SOUND(300,392,3)
930 CALL SOUND(500,392,3) :: CALL SOUND(200,349,3)
940 CALL SOUND(100,330,3) :: CALL SOUND(200,294,3)
950 CALL SOUND(300,330,3) :: CALL SOUND(300,349,3)
960 CALL SOUND(300,370,3) :: CALL SOUND(300,349,3)
970 CALL SOUND(250,440,3) :: CALL SOUND(150,524,3)
980 CALL SOUND(500,524,3)
990 CALL SOUND(300,583,3) :: CALL SOUND(100,523,3)
1000 CALL SOUND(200,440,3) :: CALL SOUND(100,523,3)
1010 RETURN```

##### Share on other sites
On 7/13/2020 at 4:52 AM, oddemann said:

Thx!!! That solved it.... Looked at the PDF... there was a 1 lurking in the line under 😛 The ref to manual and 32-143 helped!

f... bugs... or is it my eyes... I spent so much time, reading and reading over and trying to be sure that I typed in everything correct after the bug. BUT... manged to NOT see the "1" lurking in the line right under...
"Programmers blindness!" - wounder what sets it off! And how to de-bug that bug 😛 hehehe

Line 430 is...
IF X=18 THEN CALL PATTERN(#2,131) ELSE 420

With that bug fixed...
Next fix...

570 CALL MOTION(#2,0,0):: CALL SOUND(200,-4,3):: CALL PATTERN(#2,43)

CALL PATTERN(#2,30) ! notice 30 to 159 used

RXB handles 30 to 159 of course when using above characters 143 up,  care must be taken to stay with higher numbers for characters and sprite numbers.

Say for instance Sprite #28 the 4 Characters 156 to 159 redefined for that sprite.

I just noticed that I never added CALL PATTERN changes in RXB 2001 to RXB 2015, geez that is a huge oversite on my part.

##### Share on other sites
7 hours ago, oddemann said:

Well, I can ask about this... In the MISS of target... (Line 580)... It is displaying Parachute as green.. OK... But I want to make the waves light blue. I have not figures out way Call Color(12,6.5) will not make 120 light blue... Help?

I guess you change a sprite from parachute to splash. You change the color of a sprite with something like this: CALL COLOR(#2,8)

7 hours ago, oddemann said:

But anyway... what do you think about it so far?

Very nice.

##### Share on other sites

It seems as if the wind has too much effect if your weight is low. Half a man drifts like ... - Just saying.

Colors. Contrast. Try white clouds.

I had a lot of the original Atari 2600 games when released. Sky Diver is one I skipped, as I thought it wouldn't be that much fun.

Apparently you can deploy the parachute, and then steer. I think that would be great additions to your game, instead of just "sit and watch" after pushing the paratrooper out of the plane.

##### Share on other sites

I.T. - The Adventure of the Century (Book - Terrific Games for the TI 99 4A)

New game test and debugging... I have not done 100% debugging of the DATA, most should be correct. Maybe everything is :p hehehe BUT... I think the problem is somewhere else! I have gone over so many times that my eyes has crossed over and is protesting :p (I was given a sight where many programs where, I am going to look there for this game too).

But I am putting it put here, It looks cool (I love D&D) so... Help???

```10 REM TI(EXTENDED)-I.T.
15 CALL CLEAR
20 RANDOMIZE
30 DIM K(36,6),R\$(36),H\$(15),VP(12),V\$(12),B(12),PR(6,3)
40 GOSUB 2810
50 IHD=8 :: NKAM=0
60 GOTO 80
70 GOSUB 130
80 GOSUB 390
90 GOSUB 290
100 IF CWD<5 THEN 70
110 PRINT "You were killed"
120 END
130 NKAM=0
140 IHD=0
150 INPUT "What would you like to do:":C1\$
160 LNG=LEN(C1\$)
170 FOR I=1 TO 15
180 IF SEG\$(H\$(I),1,LNG)=C1\$ THEN IHD=I :: I=16
190 NEXT I
200 IF IHD>6 THEN RETURN
210 IF IHD=0 THEN 260
220 NKAM=K(IKM,IHD)
230 IF NKAM<>0 THEN RETURN
240 PRINT "Impossible direction"
230 GOTO 130
260 PRINT "I do not understand "
270 GOTO 130
280 RETURN
290 PRINT "you are in the ";R\$(IKM)
300 IF IKM>24 OR BLL=1 THEN 330
310 PRINT "You cannot see much here"
320 GOTO 340
330 IF IVW<>0 THEN PRINT "There is a ";V\$(IVW);" here"
340 FOR I=1 TO 6
350 IF K(IKM,I)<>0 THEN PRINT "You can go ";H\$(I)
360 NEXT I
370 PRINT
380 RETURN
390 IF NKAM<>0 THEN IKM=NKAM
400 IVW=0
410 FOR I=1 TO 12
420 IF VP(I)=IKM THEN IVW=I :: I=12
430 NEXT I
440 IPS=0
450 FOR I=1 TO 6
460 IF PR(I,1)=IKM THEN IPS=I :: I=6
470 NEXT I
480 IF IKM<12 AND CRI<>8 THEN GOSUB 2670
490 CLL=CLL+BLL
500 IF IHD<7 THEN 530
510 ON IHD-6 GOSUB 560,760,810,910,1130,1220,1340,1420,1500
520 REM
530 IF IPS=0 THEN RETURN
540 ON IPS GOSUB 1620,1840,2080,2180,2290,2470
550 RETURN
560 IF IPS=0 OR IPS>4 THEN PRINT "Killing time is the only    thing you can do here" :: RETURN
570 IVWB=7
580 GOSUB 2610
590 IF IBZ=0 THEN PRINT "You can't attack without    sword" :: RETURN
600 PRINT "So you want to kill the ";P\$(IPS)
610 PRINT "You attack it with your sword";
620 IF RND<.5 THEN PRINT " but you missed him" :: GOTO 650
630 PRINT " and you give your victim a terrible blow"
640 PR(IPS,3)=PR(IPS,3)-1
650 IF RND>.2 THEN 700
660 PRINT "You can hit it again but be quick"
670 INPUT "Do you want to?(y or n)":Y\$
680 IF Y\$<>"y" THEN 700
690 PRINT "You raise your sword again";:: GOTO 620
700 IF PR(IPS,3)>1 THEN RETURN
710 IF PR(IPS,3)=1 THEN PRINT "Your victim is badly wounded" :: RETURN
720 PRINT "You killed your victim"
730 PR(IPS,1)=0 :: IVW=8+IPS
740 VP(IVW)=IKM :: IPS=0
750 RETURN
760 PRINT "Possible commands:"
770 FOR I=1 TO 15
780 PRINT H\$(I)
790 NEXT I
800 RETURN
810 IF IVW<>0 THEN 840
820 PRINT "There is nothing to take    here"
830 RETURN
840 IF BLL=0 AND IKM<25 THEN PRINT "You cannot take things that you do not see" :: RETURN
850 PRINT "I take the ";V\$(IVW);" for you"
860 B(IBMAX)=IVW
870 IBMAX=IBMAX+1
880 VP(IVW)=0
890 IVW=0
900 RETURN
910 INPUT "What would you like to drop? ":D\$
920 LNG=LEN(D\$)
930 IVWB=0
940 FOR I=1 TO 12
950 IF D\$=SEG\$(V\$(I),1,LNG) THEN IVWB=I :: I=12
960 NEXT I
970 IF IVWB<>0 THEN 1000
980 PRINT "I do not understand you"
990 RETURN
1000 GOSUB 2610
1010 IF IBZ<>0 THEN 1040
1020 PRINT "Impossible to drop"
1030 RETURN
1040 PRINT "I dropped the ";V\$(B(IBZ));" for you"
1050 IVW=B(IBZ)
1060 VP(B(IBZ))=IKM
1070 B(IBZ)=B(IBMAX-1)
1080 IBMAX=IBMAX-1
1090 IF IKM<>25 THEN RETURN
1100 INPUT "Do you want to drop more?(y or n)":Y\$
1110 IF Y\$="y" THEN 910
1120 RETURN
1130 IF IBMAX<>1 THEN 1160
1140 PRINT "You own nothing"
1150 GOTO 1200
1160 PRINT "You have the following     things:"
1170 FOR I=1 TO IBMAX-1
1180 PRINT V\$(B(I))
1190 NEXT I
1200 PRINT "You can still have ";5-CWD;"wounds before you die"
1210 RETURN
1220 IVWB=6
1230 GOSUB 2610
1240 IF IBZ<>0 THEN 1270
1250 PRINT "Impossible without bandage"
1260 RETURN
1270 PRINT "I use all the bandages to    bandage you"
1280 CALL S0UND(100,1000,0)
1290 PRINT "So, that will hold for a    while"
1300 CWD=0
1310 B(IBZ)=B(IBMAX-1)
1320 IBMAX=IBMAX-1
1330 RETURN
1340 IVWB=1
1350 GOSUB 2610
1360 IF IBZ<>0 THEN 1390
1370 PRINT "Impossible without a lantern"
1380 RETURN
1390 PRINT "The lantern is on now"
1400 BLL=1
1410 RETURN
1420 IVWB=1
1430 GOSUB 2610
1440 IF IBZ<>0 THEN 1470
1450 PRINT "You do not even have a lantern"
1460 RETURN
1470 PRINT "The lantern is off now"
1480 BLL=0
1490 RETURN
1500 IVWB=4
1510 GOSUB 2610
1520 IF IBZ<>0 THEN 1550
1530 PRINT "Nothing to read"
1540 RETURN
1550 IF BLL=1 OR IKM>24 THEN 1580
1560 PRINT "It is to dark to read here"
1570 RETURN
1580 T\$="Uifsf!jt!b!b!sfdfjqu!gps!!!!!!dppljft!jo!uijt!cppl" :: GOSUB 3520
1590 T\$="Ju!tbzt|!ublf!b!efbe!!!!!!!!ifmmipvoelboe!tpnfIxifbu/!!!Espq!uijt!po!b!cbBCfdvf!boe!xbju!b!nJovuf" :: GOSUB 3520
1600 PRINT "That is all"
1610 RETURN
1620 IF IVW=3 THEN PR(1,2)=3 :: VP(IVW)=0 :: IVW=0
1630 ON PR(1,2)GOTO 1640,1690,1720,1790,1820
1640 PRINT "I.T.(the intra-terrestrial) is here"
1650 PRINT "It looks like he wants to    talk"
1660 PRINT "He talks but you cannot     understand him"
1670 PR(1,2)=2
1680 RETURN
1690 T\$="J/U/!nblft!hftuvsft!uibu!if!offet!tpnfuijoh!upesjol" :: GOSUB 3520
1700 T\$="If!mpplt!sbuifs!eftqfsbuf" :: GOSUB 3520
1710 RETURN
1720 T\$="J/U/!offefe!uif!esjol!wfsz!!nvdi/" :: GOSUB 3520
1730 T\$="If!tbzt;QMFBTF!hp!epxo!joup!uif!dbwft!boe!gjoe!uif!!!!!!ovmmjuz!cpnc" :: GOSUB 3520
1740 T\$="Ju!nbz!cz!op!xbz!fyqmpef/!npotufs!qspufdut/" :: GOSUB 3520
1750 T\$="Pomz!ZPVidbo!tbwf!uif!fbsui/" :: GOSUB 3520
1760 PRINT "Suddenly I.T. collapses and falls down"
1770 PR(1,2)=4
1780 RETURN
1790 PRINT "I.T. is in a coma."
1800 PR(I,2)=5
1810 RETURN
1820 PRINT "I.T. is here":"He is in a coma"
1830 RETURN
1840 IF IVW=8 THEN PR(2,2)=5 :: VP(IVW)=0 :: IVW=0
1850 ON PR(2,2)G0T0 1860,1900,1930,1960,2000,2060
1860 PRINT "There is an enormous monsterhere."
1870 PRINT "The monster yells:are you a cookie"
1880 PR(2,2)=2
1890 RETURN
1900 PRINT "The monster yells louder andlouder:ARE YOU ACOOKIE"
1910 PR(2,2)=3
1920 RETURN
1930 PRINT "The monster keeps yelling and becomes rather agressive"
1940 PR(2,2)=4
1950 RETURN
1960 PRINT "The monster gives you a terrible blow. Your head is spinning"
1970 CWD=CWD+1
1980 PR(2,2)=INT(RND*3)+2
1990 RETURN
2000 PRINT "The monster starts to eat atonce."
2010 PRINT "It falls asleep"
2020 CALL SOUND(100,110,0)
2030 K(16,6)=l
2040 PR(2,2)=6
2050 RETURN
2060 PRINT "The monster sleeps"
2070 RETURN
2080 PRINT "There is a snake in here"
2090 IF RND<.4 THEN RETURN
2100 IF IBMAX=1 OR RNDX.5 THEN 2140
2110 IBMAX=IBMAX-1
2120 VP(B(BMAX))=13+INT(RND*12)
2130 PRINT "The snake takes something "
2140 PRINT "It sneaks away"
2150 PRO, l)=PRO, l)+3
2160 IF PR(3,1)>24 THEN PRO, 1)=PRO, 1)-8
2170 RETURN
2180 ON PR(4,2)G0T0 2190,2220,2260
2190 PRINT "There is a giant hellhound in here. It looks like he wants you for dinner"
2200 PR(4,2)=2
2210 RETURN
2220 PRINT "The hellhound attacks you and bites you violently"
2230 CWD=CWD+1
2240 PR(4,2)=3
2250 RETURN
2260 PRINT "The hellhound may attack youagain"
2270 PR(4,2)=2+INT(RND#2)
2280 RETURN
2290 PRINT "The nullity bomb is here"
2300 PRINT "There are three wires: a green one(g),a red one(r) and a yellow one (y)"
2310 PRINT "You must disconnect two of them"
2320 INPUT "Which will be the first one:":X\$
2330 INPUT "And which will be the second one: ":Y\$
2340 CBO=0 :: C\$="ryg"
2350 FOR I=1 TO 3
2360 IF X\$=SEG\$(C\$,1,1)THEN CB0=CB0+1
2370 IF Y\$=SEG\$(C\$,1,1)THEN CB0=CB0+1
2380 NEXT I
2390 IF CB0<2 THEN PRINT "Watch out, wrong input" :: GOTO 2300
2400 IF (X\$&Y\$)="yr" OR(X\$&Y\$)="ry" THEN 2440
2410 CALL CLEAR
2420 PRINT "By disconnecting the wrong wires, you set the bomb off and the earth was destroyed"
2430 END
2440 CALL CLEAR
2450 PRINT "Congratulations, you succeeded where others failed"
2460 END
2470 IF IVW=0 THEN 2520
2480 PR(6,2)=2
2490 IF VP(2)=IKM AND VP(12)=IKM THEN IVW=8 :: VP(IVW)=IKM :: VP(2)=0 :: VP(12)=0 :: GOTO 2520
2500 VP(IVW)=0
2510 IVW=0
2520 ON PR(6,2)G0T0 2530,2550,2580
2530 PRINT "There is an enormous barbecue here with a large fire under it"
2540 RETURN
2550 PRINT "An awful smell fills your nose"
2560 PR(6,2)=3
2570 RETURN
2580 PRINT "Everything is quiet now. Even the terrible smell fades"
2590 PR(6,2)=1
2600 RETURN
2610 REM
2620 IBZ=0
2630 FOR I=l TO IBMAX-1
2640 IF B(I)=IVWB THEN IBZ=I :: I=IBMAX-1
2650 NEXT I
2660 RETURN
2670 REM
2680 CR0=CR0+1
2690 IF IKM=D(CRO) THEN CRI=CRI+1
2700 IF CR0<8 THEN RETURN
2710 IF CRI=8 THEN 2770
2720 PRINT "Strange forces did somethingto you. It is dark"
2730 PRINT "For a moment you are        unconscious"
2740 CR0=1 :: CRI=1
2750 IKM=1
2760 RETURN
2770 PRINT "You hear a strange sound like something being pushed away"
2780 PRINT "Now it has stopped"
2790 K(2,1)=3
2800 RETURN
2810 REM
2820 REM
2830 FOR I=1 TO 36
2840 K(I,1)=I+1 :: K(I,2)=I-1
2850 K(I,3)=I+4 :: K(I,4)=I-4
2860 NEXT I
2870 FOR I=0 TO 24 STEP 12
2880 FOR J=l TO 9 STEP 4
2890 K(I+J+3,1)=0 :: K(I+J,2)=0
2900 NEXT J
2910 FOR J=l TO 4
2920 K(I+J+8,3)=0 :: K(I+J,4)=0
2930 NEXT J
2940 NEXT I
2950 K(1,5)=16 :: K(7,5)=15
2960 K(32,6)=13 :: K(13,5)=32
2970 K(35,6)=18 :: K(18,5)=35
2980 FOR I=1 TO 15
3000 K(IKM,IHD)=0
3010 NEXT I
3020 REM
3030 IKM=36
3040 IBZ=1 :: IBMAX=1
3050 CKM=0
3060 CLL=0
3070 BLL=0
3080 CWD=0
3090 CRO=0 :: CRI=0
3100 REM
3110 FOR I=1 TO 15
3130 NEXT I
3140 IN=-1
3150 FOR I=1 TO 12
3170 GOSUB 3520
3180 V\$(I)=TN\$
3190 NEXT I
3200 FOR I=1 TO 6
3220 GOSUB 3520
3230 P\$(I)=TN\$
3240 NEXT I
3250 FOR I=1 TO 36
3270 GOSUB 3520
3280 R\$(I)=TN\$
3290 NEXT I
3300 FOR I=1 TO 12
3320 NEXT I
3330 FOR I=1 TO 6
3340 READ PR(I,1) :: PR(I,2)=1
3360 NEXT I
3370 FOR I=1 TO 8
3390 NEXT I
3400 IN=0
3410 RETURN
3420 DATA 21,1,22,2,22,1,23,2,18,1,19,2,16,3,20,4,11,1,12,2,7,1,8,2,7,4,3,3,2,1
3440 DATA mboufso,xifbuqjmf,xbufstbdl,dpplcppl,mfbgmmfu,cboebhft,txpse,dppljt,JU(t!cpez,hjbmucpez,toblfcpez,efbe!ipvoe
3450 DATA J/U/,npotufs,toblf,ifmmipvoe,cbscfdvf,cpnc
3460 DATA sftfudbwf,udbwf,tfdsfudpssjeps,dpouspmsppn,pdbwf,jdbwf,tqbdfdbwf,cmbdlsppn,qdbwf,fdbwf,odbwf,fnquzoftt
3470 DATA tnbmmdbwf,spdlzdbwf,tnfmmzdbwf,esbhpodbwf,toblfdbwf,zfmmpvdbwf,tusfbncbol,tujolzqmbdf,sfedbwf,gjobmdbwf
3480 DATA dpmpsdbwf,jdfdbwf,pqfoqmbdf,xppet,xppet,xppet,xppet,xppet,xppet,xppet,xppet,xppet,xppet,xppet
3490 DATA 34,30,28,21,14,15,13,0,0,0,0,0
3500 DATA 34,2,16,15,17,4,29,2,8,1,25,1
3510 DATA 1,5,9,10,11,7,6,2
3520 REM
3530 TN\$=""
3540 FOR AA=1 TO LEN(T\$)
3550 C\$=SEG\$(T\$,AA,1)
3560 C\$=CHR\$(ASC(C\$)-1)
3570 TN\$=TN\$&C\$
3580 NEXT AA
3590 IF IN=0 THEN PRINT TN\$
3600 RETURN
```

##### Share on other sites

A somewhat different version...

```5 CALL CLEAR
7 PRINT "            I.T.": :"     Intra Terrestrial": : : :
10 PRINT " ( Alpha Lock Must Be Up!) ": : :: PRINT " Be back in just a minute.": : : : : : : :
20 RANDOMIZE
30 DIM K(36,6),R\$(36),H\$(15),VP(12),V\$(12),B(12),PR(6,3)
40 GOSUB 2810
50 IHD=8 :: NKAM=0
60 GOTO 80
70 GOSUB 130
80 GOSUB 390
90 GOSUB 290
100 IF CWD<5 THEN 70
110 PRINT "You were killed"
120 END
130 NKAM=0
140 IHD=0
150 PRINT
155 PRINT "  What would you like to do?"
156 INPUT C1\$
158 CALL CLEAR
160 LNG=LEN(C1\$)
170 FOR I=1 TO 15
180 IF SEG\$(H\$(I),1,LNG)=C1\$ THEN IHD=I :: I=16
190 NEXT I
200 IF IHD>6 THEN RETURN
210 IF IHD=0 THEN 260
220 NKAM=K(IKM,IHD)
230 IF NKAM<>0 THEN RETURN
240 PRINT "Impossible direction"
250 GOTO 130
260 PRINT "I do not understand "
270 GOTO 130
280 RETURN
290 PRINT "you are in the ";R\$(IKM)
300 IF IKM>24 OR BLL=1 THEN 330
310 PRINT "You cannot see much here"
320 GOTO 340
330 IF IVW<>0 THEN PRINT "There is a ";V\$(IVW);" here"
340 FOR I=1 TO 6
350 IF K(IKM,I)<>0 THEN PRINT "You can go ";H\$(I)
360 NEXT I
370 PRINT
380 RETURN
390 IF NKAM<>0 THEN IKM=NKAM
400 IVW=0
410 FOR I=1 TO 12
420 IF VP(I)=IKM THEN IVW=I :: I=12
430 NEXT I
440 IPS=0
450 FOR I=1 TO 6
460 IF PR(I,1)=IKM THEN IPS=I :: I=6
470 NEXT I
480 IF IKM<12 AND CRI<>8 THEN GOSUB 2670
490 CLL=CLL+BLL
500 IF IHD<7 THEN 530
510 ON IHD-6 GOSUB 560,760,810,910,1130,1220,1340,1420,1500
520 REM
530 IF IPS=0 THEN RETURN
540 ON IPS GOSUB 1620,1840,2080,2180,2290,2470
550 RETURN
560 IF IPS=0 OR IPS>4 THEN PRINT "Killing time is the only    thing you can do here" :: RETURN
570 IVWB=7
580 GOSUB 2610
590 IF IBZ=0 THEN PRINT "You can't attack without    sword" :: RETURN
600 PRINT "So you want to kill the ";P\$(IPS)
610 PRINT "You attack it with your      sword";
620 IF RND<.5 THEN PRINT " but you missed him" :: GOTO 650
630 PRINT " and you give your victim a terrible blow"
640 PR(IPS,3)=PR(IPS,3)-1
650 IF RND>.2 THEN 700
660 PRINT "You can hit again but be quick"
670 INPUT "Do you want to?(y or n)":Y\$
680 IF Y\$<>"y" THEN 700
690 PRINT "You raise your sword again"; :: GOTO 620
700 IF PR(IPS,3)>1 THEN RETURN
710 IF PR(IPS,3)=1 THEN PRINT "Your victim is badly wounded" :: RETURN
720 PRINT "You killed your victim"
730 PR(IPS,1)=0 :: IVW=8+IPS
740 VP(IVW)=IKM :: IPS=0
750 RETURN
760 CALL CLEAR
765 PRINT "Possible commands:"
770 FOR I=1 TO 15
780 PRINT H\$(I)
790 NEXT I
800 RETURN
810 IF IVW<>0 THEN 840
820 PRINT "There is nothing to take    here"
830 RETURN
840 IF BLL=0 AND IKM<25 THEN PRINT "You cannot take things that you do not see" :: RETURN
850 PRINT "I take the ";V\$(IVW);" for you"
860 B(IBMAX)=IVW
870 IBMAX=IBMAX+1
880 VP(IVW)=0
890 IVW=0
900 RETURN
910 INPUT "What would you like to drop? ":D\$
920 LNG=LEN(D\$)
930 IVWB=0
940 FOR I=1 TO 12
950 IF D\$=SEG\$(V\$(I),1,LNG)THEN IVWB=I :: I=12
960 NEXT I
970 IF IVWB<>0 THEN 1000
980 PRINT "I do not understand you"
990 RETURN
1000 GOSUB 2610
1010 IF IBZ<>0 THEN 1040
1020 PRINT "Impossible to drop"
1030 RETURN
1040 PRINT "I dropped the ";V\$(B(IBZ));" for you"
1050 IVW=B(IBZ)
1060 VP(B(IBZ))=IKM
1070 B(IBZ)=B(IBMAX-1)
1080 IBMAX=IBMAX-1
1090 IF IKM<>25 THEN RETURN
1100 INPUT "Do you want to drop more?(y or n)":Y\$
1110 IF Y\$="y" THEN 910
1120 RETURN
1130 IF IBMAX<>1 THEN 1160
1140 PRINT "You own nothing"
1150 GOTO 1200
1160 PRINT "You have the following      things:"
1170 FOR I=1 TO IBMAX-1
1180 PRINT V\$(B(I))
1190 NEXT I
1200 PRINT "You can still have ";5-CWD;"wounds before you die"
1210 RETURN
1220 IVWB=6
1230 GOSUB 2610
1240 IF IBZ<>0 THEN 1270
1250 PRINT "impossible without bandage"
1260 RETURN
1270 PRINT "I use all the bandages to   bandage you"
1280 CALL SOUND(100,1000,0)
1290 PRINT "So, that will hold for a    while"
1300 CWD=0
1310 B(IBZ)=B(IBMAX-1)
1320 IBMAX=IBMAX-1
1330 RETURN
1340 IVWB=1
1350 GOSUB 2610
1360 IF IBZ<>0 THEN 1390
1370 PRINT "Immpossible without a lantern"
1380 RETURN
1390 PRINT "The lantern is on now"
1400 BLL=1
1410 RETURN
1420 IVWB=1
1430 GOSUB 2610
1440 IF IBZ<>0 THEN 1470
1450 PRINT "You do not even have a      lantern"
1460 RETURN
1470 PRINT "The lantern is off now"
1480 BLL=0
1490 RETURN
1500 IVWB=4
1510 GOSUB 2610
1520 IF IBZ<>0 THEN 1550
1530 PRINT "Nothing to read"
1540 RETURN
1550 IF BLL=1 OR IKM>24 THEN 1580
1560 PRINT "It is too dark to read here"
1570 RETURN
1580 T\$="Uifsf!jt!b!sfdjqf!gps!!!!!!!dppljft!jo!uijt!cppl" :: GOSUB 3520
1590 T\$="Ju!tbzt;!ublf!b!efbe!!!!!!!!ifmmipvoe!boe!tpnf!xifbu/!!!Espq!uijt!po!b!cbscfdvf!boe!xbju!b!njovuf" :: GOSUB 3520
1600 PRINT "That is all"
1610 RETURN
1620 IF IVW=3 THEN PR(1,2)=3 :: VP(IVW)=0 :: IVW=0
1630 ON PR(1,2)GOTO 1640,1690,1720,1790,1820
1640 PRINT "I.T.(the intra-terrestial)  is here"
1650 PRINT "It looks like he wants to   talk"
1660 PRINT "He talks but you cannot     understand him"
1670 PR(1,2)=2
1680 RETURN
1690 T\$="J/U/!nblft!hftuvsft!uibu!if!offet!tpnfuijoh!up!esjol" :: GOSUB 3520
1700 T\$="If!mpplt!sbuifs!eftqfsbuf" :: GOSUB 3520
1710 RETURN
1720 T\$="J/U/!offefe!uif!esjol!wfsz!!nvdi/" :: GOSUB 3520
1730 T\$="If!tbzt!QMFBTF!hp!epxo!joup!uif!dbwft!boe!gjoe!uif!!!!!!ovmmjuz!cpnc" :: GOSUB 3520
1740 T\$="Ju!nbz!cz!op!xbz!fyqmpef/!B!npotufs!qspufdut/" :: GOSUB 3520
1750 T\$="Pomz!ZPV!dbo!tbwf!uif!fbsui/" :: GOSUB 3520
1760 PRINT "Suddenly I.T. collapses and falls down"
1770 PR(1,2)=4
1780 RETURN
1790 PRINT "I.T. is in a coma."
1800 PR(1,2)=5
1810 RETURN
1820 PRINT "I.T. is here":"he is in a coma"
1830 RETURN
1840 IF IVW=8 THEN PR(2,2)=5 :: VP(IVW)=0 :: IVW=0
1850 ON PR(2,2)GOTO 1860,1900,1930,1960,2000,2060
1860 PRINT "There is an enormous monsterhere."
1870 PRINT "The monster yells:are you a cookie"
1880 PR(2,2)=2
1890 RETURN
1900 PRINT "The monster yells louder andlouder:ARE YOU A COOKIE"
1910 PR(2,2)=3
1920 RETURN
1930 PRINT "The monster keeps yelling   and becomes rather agressive"
1940 PR(2,2)=4
1950 RETURN
1960 PRINT "The monster gives you a     terrible blow. Your head is spinning"
1970 CWD=CWD+1
1980 PR(2,2)=INT(RND*3)+2
1990 RETURN
2000 PRINT "The monster starts to eat atonce"
2010 PRINT "It falls asleep"
2020 CALL SOUND(100,110,0)
2030 K(16,6)=1
2040 PR(2,2)=6
2050 RETURN
2060 PRINT "The monster sleeps"
2070 RETURN
2080 PRINT "There is a snake in here"
2090 IF RND<.4 THEN RETURN
2100 IF IBMAX=1 OR RND<.5 THEN 2140
2110 IBMAX=IBMAX-1
2120 VP(B(IBMAX))=13+INT(RND*12)
2130 PRINT "The snake takes somthing"
2140 PRINT "It sneaks away"
2150 PR(3,1)=PR(3,1)+3
2160 IF PR(3,1)>24 THEN PR(3,1)=PR(3,1)-8
2170 RETURN
2180 ON PR(4,2)GOTO 2190,2220,2260
2190 PRINT "There is a giant hellhound  in here.It looks like he    wants you for dinner"
2200 PR(4,2)=2
2210 RETURN
2220 PRINT "The hellhound attacks you   and bites you violently"
2230 CWD=CWD+1
2240 PR(4,2)=3
2250 RETURN
2260 PRINT "The hellhound may attack youagain"
2270 PR(4,2)=2+INT(RND*2)
2280 RETURN
2290 PRINT "The nullity bomb is here"
2300 PRINT "There are three wires: a    green one(g),a red one(r)   and a yellow one(y)"
2310 PRINT "You must disconnect two of  them"
2320 INPUT "Which will be the first one:":X\$
2330 INPUT "And which will be the secondone:":Y\$
2340 CBO=0 :: C\$="ryg"
2350 FOR I=1 TO 3
2360 IF X\$=SEG\$(C\$,I,1)THEN CBO=CBO+1
2370 IF Y\$=SEG\$(C\$,I,1)THEN CBO=CBO+1
2380 NEXT I
2390 IF CBO<2 THEN PRINT "Watch out, wrong input" :: GOTO 2300
2400 IF(X\$&Y\$)="yr" OR(X\$&Y\$)="ry" THEN 2440
2410 CALL CLEAR
2420 PRINT "By disconnecting the wrong  wires, you set the bomb off and the earth was destroyed"
2430 END
2440 CALL CLEAR
2450 PRINT "Congradulations, you        succeeded where others      failed"
2460 END
2470 IF IVW=0 THEN 2520
2480 PR(6,2)=2
2490 IF VP(2)=IKM AND VP(12)=IKM THEN IVW=8 :: VP(IVW)=IKM :: VP(2)=0 :: VP(12)=0 :: GOTO 2520
2500 VP(IVW)=0
2510 IVW=0
2520 ON PR(6,2)GOTO 2530,2550,2580
2530 PRINT "There is an enormous        barbecue here with a large  fire under it"
2540 RETURN
2550 PRINT "An awful smell fills your   nose"
2560 PR(6,2)=3
2570 RETURN
2580 PRINT "Everything is quit now.    Even the smell fades"
2590 PR(6,2)=1
2600 RETURN
2610 REM
2620 IBZ=0
2630 FOR I=1 TO IBMAX-1
2640 IF B(I)=IVWB THEN IBZ=I :: I=IBMAX-1
2650 NEXT I
2660 RETURN
2670 REM
2680 CRO=CRO+1
2690 IF IKM=D(CRO)THEN CRI=CRI+1
2700 IF CRO<8 THEN RETURN
2710 IF CRI=8 THEN 2770
2720 PRINT "Strange forces did something to you. It is dark"
2730 PRINT "For a moment you are        unconcious"
2740 CRO=1 :: CRI=1
2750 IKM=1
2760 RETURN
2770 PRINT "You hear a strange sound    like something being pushed away"
2780 PRINT "Now it has stopped"
2790 K(2,1)=3
2800 RETURN
2810 REM
2820 REM
2830 FOR I=1 TO 36
2840 K(I,1)=I+1 :: K(I,2)=I-1
2850 K(I,3)=I+4 :: K(I,4)=I-4
2860 NEXT I
2870 FOR I=0 TO 24 STEP 12
2880 FOR J=1 TO 9 STEP 4
2890 K(I+J+3,1)=0 :: K(I+J,2)=0
2900 NEXT J
2910 FOR J=1 TO 4
2920 K(I+J+8,3)=0 :: K(I+J,4)=0
2930 NEXT J
2940 NEXT I
2950 K(1,5)=16 :: K(7,5)=15
2960 K(32,6)=13 :: K(13,5)=32
2970 K(35,6)=18 :: K(18,5)=35
2980 FOR I=1 TO 15
3000 K(IKM,IHD)=0
3010 NEXT I
3020 REM
3030 IKM=36
3040 IBZ=1 :: IBMAX=1
3050 CKM=0
3060 CLL=0
3070 BLL=0
3080 CWD=0
3090 CRO=0 :: CRI=0
3100 REM
3110 FOR I=1 TO 15
3130 NEXT I
3140 IN=-1
3150 FOR I=1 TO 12
3170 GOSUB 3520
3180 V\$(I)=TN\$
3190 NEXT I
3200 FOR I=1 TO 6
3220 GOSUB 3520
3230 P\$(I)=TN\$
3240 NEXT I
3250 FOR I=1 TO 36
3270 GOSUB 3520
3280 R\$(I)=TN\$
3290 NEXT I
3300 FOR I=1 TO 12
3320 NEXT I
3330 FOR I=1 TO 6
3340 READ PR(I,1) :: PR(I,2)=1
3360 NEXT I
3370 FOR I=1 TO 8
3390 NEXT I
3400 IN=0
3410 RETURN
3420 DATA 21,1,22,2,22,1,23,2,18,1,19,2,16,3,20,4,11,1,12,2,7,1,8,2,7,4,3,3,2,1
3440 DATA mboufso,xifbuqjmf,xbufstbdl,dpplcppl,mfbgmfu,cboebhft,txpse,dppljf,JU(t!cpez,hjboucpez,toblfcpez,efbe!ipvoe
3450 DATA J/U/,npotufs,toblf,ifmmipvoe,cbscfdvf,cpnc
3460 DATA sftfudbwf,udbwf,tfdsfudpssjeps,dpouspmsppn,pdbwf,jdbwf,tqbdfdbwf,cmbdlsppn,qdbwf,fdbwf,odbwf,fnquzoftt
3470 DATA tnbmmdbwf,spdlzdbwf,tnfmmzdbwf,esbhpodbwf,toblfdbwf,zfmmpxdbwf,tusfbncbol,tujolzqmbdf,sfedbwf,gjobmdbwf
3480 DATA dpmpsdbwf,jdfdbwf,pqfoqmbdf,xppet,xppet,xppet,xppet,xppet,xppet,xppet,xppet,xppet,xppet,xppet
3490 DATA 34,30,28,21,14,15,13,0,0,0,0,0
3500 DATA 34,2,16,15,17,4,29,2,8,1,25,1
3510 DATA 1,5,9,10,11,7,6,2
3520 REM
3530 TN\$=""
3540 FOR I1=1 TO LEN(T\$)
3550 C\$=SEG\$(T\$,I1,1)
3560 C\$=CHR\$(ASC(C\$)-1)
3570 TN\$=TN\$&C\$
3580 NEXT I1
3590 IF IN=0 THEN PRINT TN\$
3600 RETURN
```

## Join the conversation

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

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

Only 75 emoji are allowed.

×   Your previous content has been restored.   Clear editor

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