1 screen 1,2,0 2 width 40 5 print"DOG STAR ADVENTURE by Lance Miklus" 6 print 9 print" Adapted for the PET by David Malmberg" 12 print "from APPLESEED - January 1980" 20 print 25 print "Ported to the AMIGA by 30 print 35 print " Don White 36 print " 47 Ariel Court 37 print " Nepean, Ontario 38 print " K1A 0M2 39 print " (613) 829-2082 40 print 45 print " November 1985" 50 print:print "Press any key to continue" 52 getkey x$ 55 scnclr 100 gosub 2820 105 dim a(10) 110 scnclr 115 input"Do you wish instructions";a$ 120 if left$(a$,1)="y"then gosub 6000 130 scnclr 140 lc=2:sl=40:gf=50:tb=1 150 goto 2210 160 if tc<25 or int(rnd(1)*gf)<>1 then 260 170 if tc=300 then gf=20 180 if lc<3 or lc=9 or lc=26 or lc=36 or lc=37 then 260 190 if lc>26 and lc<31 then 260 200 print"Holy Smokes!! An armed stormtrooper" 201 print"just walked in." 210 gosub 2550:if vb<>12 or no<>15 then 1370 220 x=13:gosub 2770:if y<>-1 then 1370 230 if bl=0 then print"I'm out of ammunition!":goto 1380 240 print"ZZZAP!!! No more stormtrooper!" 250 bl=bl-1:if bl=0 then print"I'm out of ammunition!" 260 if md<>tc then 290 270 x=22:gosub 2770:if y<>-1 then 290 280 print:print"Your Big Mac is cold." 290 gosub 2550:tc=tc+1 300 if vb=0 and no=0 then 320 310 goto 340 320 print"I don't know how to do that.":goto 160 330 print"Nothing happened.":goto 160 340 if vb>1 or no>7 then 470 350 if no=0 then vb=0:goto 300 360 if ds(lc,no-1)=0 then print"I can't go that way.":goto 160 370 if dr=1 and ds(lc,no-1)>2 and ds(lc,no-1)<6 then 375 371 goto 380 375 print"I can't go that way. the flight deck" 376 print"doors need to be closed....agh!!!..." 377 print"..no air!!!":goto 160 380 if no=3 and lc=31 and dj<>-1 then print m0$:goto 160 390 if lc=35 and ds(lc,no-1)=36 and ob(21,1)<>0 then 395 391 goto 400 395 print"the robot won't let me.":goto 160 400 if lc=17 and ob(13,1)=17 then 1370 410 if lc=9 and ob(5,1)=9 then 1370 420 if lc=9 or lc=17 then he$(lc)="" 430 lc=ds(lc,no-1) 440 if lc=34 then he$(lc)="" 450 if lc=26 then 2470 460 goto 2210 470 if vb=3 then 2210 480 if vb<>2 then 650 490 if no=0 then print"I don't know what a ";no$(0);" is.":goto 160 500 if cr>5 then print"I can't carry any more...too heavy!":goto 160 505 kk=0:i=0 510 i=i+1 512 if ob(i,0)=(no)then kk=i 514 if ilc then print"I don't see it.":goto 160 550 if no<>37 then 580 560 x=13:gosub 2770:if y<>-1 then print"I don't have a blaster to put it in.":goto 160 570 bl=4:ob(i,1)=0:print"My blaster's reloaded.":goto 160 580 if no=15 or no=25 or no=34 then print"He looks p-r-e-t-t-y mean to me.":goto 160 590 cr=cr+1:ob(i,1)=-1:print"ok." 600 if no=14 and cm<>1 then print"A voice says...SESAME!":cm=1 610 if no=22 and md=0 then md=tc+50 620 if no=12 then he$(2)="" 630 if no=13 then he$(7)="" 640 goto 160 650 if vb<>4 then 700 660 print:print"I'm carrying..." 670 k=0:for i=1 to lo:if ob(i,1)=-1 then print ob$(i):k=1 680 next i:if k=0 then print"nothing" 690 print:goto 160 700 if vb<>5 then 720 710 gosub 2730:goto 160 720 if vb<>6 then 810 730 if no=0 then 490 740 if lc=2 then print:print"There's no room here.":goto 160 750 ic=0:for i=1 to lo:if ob(i,1)=lc then ic=ic+1 760 next i:if ic>12 then print"There's not enough room...dump something.":goto 160 765 i=0 766 i=i+1 770 if ob(i,0)=(no)then 790 780 if i-1 then print"I'm not carrying it.":goto 160 800 cr=cr-1:ob(i,1)=lc:print"OK.":goto 160 810 if vb<>7 then 840 820 if he$(lc)=""then print"How am I supposed to know what to do?":goto 160 830 print:print he$(lc):goto 160 840 if vb<>8 then 1030 850 scnclr:input"Press 'c' to continue";k$:if left$(k$,1)<>"c"then 850 860 tl$="dog star data":open "o",#1,"dog star data" 870 a(1)=tb:a(2)=tc:a(3)=cm:a(4)=dr:a(5)=bl 875 a(6)=md:a(7)=gf:a(8)=dj:a(9)=cr:a(10)=lc 876 print#1,tl$ 878 for i=0 to 10:print#1,a(i):next i 880 for i=0 to lo:for j=0 to 2:print#1,ob(i,j):next j:next i 890 close 1:print:print"game saved." 900 print"May the force be with you.":end 1030 if vb<>9 then 1190 1040 scnclr:input"Press 'c' to continue";k$:if left$(k$,1)<>"c"then 1040 1050 open "i",#1,"dog star data" 1060 input#1,tl$:print:print"reading ";tl$ 1080 for i=0 to 10:input#1,a(i):print"*";:next i 1090 for i=0 to lo:for j=0 to 2:input#1,ob(i,j):next j:print"*";:next i 1100 close 1 1110 tb=a(1):tc=a(2):cm=a(3):dr=a(4):bl=a(5) 1120 md=a(6):gf=a(7):dj=a(8):cr=a(9):lc=a(10) 1130 goto 2210 1190 if vb<>10 then 1270 1200 input"do you want to save game ";k$:if left$(k$,1)="y"then 850 1210 print"May the force be with you.":end 1270 if vb<>11 then 1410 1280 if no<>10 then 320 1290 if lc<>2 and lc<>11 then print"What button?":goto 160 1300 if lc=11 and tb then tb=0:print n2$:goto 160 1310 if lc=11 and not tb then tb=1:print n3$:goto 160 1320 x=12:gosub 2770:if y<>1 then 330 1330 x=24:gosub 2770:if y<>1 then 330 1340 if tb=1 then print n3$:goto 330 1350 if dr=0 then print n4$:goto 330 1360 goto 2370 1370 scnclr:print"Help!!!" 1380 print"Vader's soldiers are everywhere." 1385 print"I've been captured." 1390 print"I'm a prisoner...woe is me..." 1400 goto 2430 1410 if vb<>12 or no=0 then 1520 1420 if bl=0 then print"But I don't have any ammunition left.":goto 160 1430 x=13:gosub 2770:if y<>-1 then print"But I don't have a blaster.":goto 160 1440 x=no:gosub 2770:if y=-1 then print"I can't...I'm holding it.":goto 160 1450 if no=34 then print"ZZZAP!":bl=bl-1:goto 160 1460 if y<>lc then print"I don't see it.":goto 160 1470 i=0 1471 i=i+1 1475 if ob(i,0)=(no)then 1490 1476 if i13 then 1600 1530 if no=0 then print"Say what?":goto 160 1540 x=14:gosub 2770 1550 if y<>-1 or no<>19 then print"OK...";no$(no):goto 160 1560 if dr=1 then 330 1570 dr=1:scnclr:print"A voice comes over the p.a..." 1575 print" opening flight deck doors" 1580 if lc>2 and lc<6 then print:print"...yips!!! There's no air!!!...croak...":end 1590 goto 160 1600 if vb<>14 then 1780 1610 if no<>20 and no<>16 and no<>11 and no<>33 then 330 1620 if no=20 then 1710 1630 if no<>16 then 1670 1640 if ob(6,1)=-1 then print"Sorry. I'm not a cartographer.":goto 160 1650 if ob(6,1)=lc then print"Try...get map":goto 160 1660 print"it's not here.":goto 160 1670 x=no:gosub 2770:if y<>lc and y<>-1 then 1660 1680 if no=11 then print"it says needs turbo" 1690 if no=33 then print"it says out of order" 1700 goto 160 1710 if lc<>13 then print"I don't see any.":goto 160 1720 print:print"It says on the wall..." 1730 print"Your mother's got a big nose" 1740 print"Kilroy was here" 1750 print"For a good time call 6557" 1760 print"Say security" 1770 goto 160 1780 if vb<>15 then 1860 1790 if no=0 then print"What's a ";no$(no);"?":goto 160 1800 if no<>22 then print"Don't be ridiculous!":goto 160 1810 x=22:gosub 2770:if y<>-1 then print"I'm not holding it.":goto 160 1820 i=0 1821 i=i+1 1825 if ob(i,0)=22 then 1840 1826 if i16 or no<>23 or lc<>16 then 1900 1870 x=23:gosub 2770:if y<>-1 then print:print m1$:goto 160 1880 ob(11,1)=0:ob(14,1)=16:cr=cr-1:print:print m2$ 1890 goto 160 1900 if vb<>18 then 1940 1902 if no=19 then 1560 1905 if no<>36 then 1940 1910 if no<>36 or lc<>31 then 320 1920 x=17:gosub 2770:if y<>-1 then print m3$:goto 160 1930 he$(31)="":dj=-1:print:print m4$:goto 160 1940 if vb<>19 or no=0 then 2070 1950 if no<>34 then print"That's stupid!":goto 160 1960 if lc<>35 then print:print m5$:goto 160 1970 x=22:gosub 2770:if y<>-1 then print:print m6$:goto 160 1980 if no=35 then print m7$:goto 160 1990 if no<>34 then print no$(0);m8$:goto 160 2000 if tc>md then print m9$:goto 160 2010 i=0 2011 i=i+1 2012 if ob(i,0)=34 then k=i:goto 2030 2015 if i17 then 2090 2080 if vb<>20 then 2180 2090 if vb<>20 then 2180 2100 if no=0 then 320 2110 x=no:gosub 2770:if y=-1 then print"That's impossible...I'm carrying it.":goto 160 2120 if y=lc then 2150 2130 if no<11 or no=19 or no=20 or no=30 then 320 2140 print"I can't hit it if I can't see it!":goto 160 2150 if no=15 or no=25 or no=31 then print"I'd rather not...he might hit back!":goto 160 2160 if no=35 then print"That's not nice!!!":goto 160 2170 goto 330 2180 if vb<>21 then 2200 2190 print"I'm not strong enough to kill anything!":goto 160 2200 goto 320 2210 scnclr:print ds$(lc):a$="" 2220 if lc=35 then gf=10 2230 if lc=7 then 2300 2240 k=0:for i=1 to lo:if ob(i,1)<>lc then 2280 2250 if k=0 then k=1:print:print"Around me I see --- ":a$=ob$(i):goto 2280 2260 if len(a$)+5+len(ob$(i))>40 then print a$:a$=ob$(i):goto 2280 2270 a$=a$+" "+ob$(i) 2280 next i 2290 if a$<>""then print a$ 2300 print:print"Obvious directions are ";:k=0 2310 for i=0 to 5:if ds(lc,i)=0 then 2340 2320 if k<>0 then print","; 2330 print no$(i+1);:k=k+1 2335 if k=3 then print"" 2340 next i 2350 if k=0 then print"Unknown"; 2360 print".":goto 160 2370 print"CLEAR":gosub 2730 2380 if j<>0 then 2390 2381 print"We have failed in our mission. The" 2382 print"forces of Princess Leia will be" 2383 print"conquered.":goto 2430 2390 if j<>sc then 2410 2391 print"We are heroes. The forces of Princess" 2392 print"Leia will conquer the evil imperial" 2393 print"soldiers, and freedom will prevail" 2394 print"throughout the galaxy!":goto 2350 2410 print"We have helped the forces of Princess" 2411 print"Leia defend the galaxy. Long live the" 2412 print"forces of freedom!" 2430 print:print"May the force be with you!" 2440 print:input"Do you want to play again ";a$ 2450 if left$(a$,1)="y"then 110 2460 end 2470 scnclr:print"A voice calls out...who goes there?" 2480 gosub 2550 2490 if vb<>13 or no<>30 then 1370 2500 print n1$ 2510 gosub 2550 2520 x=31:gosub 2770:if y<>-1 then 1370 2530 if vb<>17 or no<>31 then 1370 2540 goto 2210 2550 z9=fre(0):print:print"What should I do";:input cm$ 2560 if cm$="n"then cm$="north" 2570 if cm$="e"then cm$="east" 2580 if cm$="s"then cm$="south" 2590 if cm$="w"then cm$="west" 2600 if cm$="u"then cm$="up" 2610 if cm$="d"then cm$="down" 2620 vb$(0)="":no$(0)="":vb=0:no=0:if len(cm$)=0 then return 2630 for zl=1 to len(cm$) 2631 if mid$(cm$,zl,1)<>" "then vb$(0)=vb$(0)+mid$(cm$,zl,1):goto 2635 2632 zl=len(cm$) 2635 next zl 2640 for zl=1 to lv 2641 zz=4:yy=len(vb$(zl)):if yy""and left$(vb$(0),zz)=left$(vb$(zl),zz)then vb=zl:zl=lv 2650 next zl 2660 if vb=0 then no$(0)=vb$(0):goto 2690 2670 if len(vb$(0))+1>len(cm$)then no=0:return 2680 no$(0)=right$(cm$,len(cm$)-1-len(vb$(0))) 2690 no=0:for zl=1 to ln 2691 zz=4:yy=len(no$(zl)):if yy""then if left$(no$(0),zz)=left$(no$(zl),zz)then no=zl:zl=ln 2700 next zl 2710 return 2730 j=0:for i=1 to lo:if ob(i,1)=1 then j=j+ob(i,2) 2740 next i:print"Out of a maximum of ";sc;"points" 2741 print"you have ";j;"points." 2750 if j=0 then print"You are not doing spectacularly well!" 2760 return 2770 zl=-1 2771 zl=zl+1 2772 if ob(zl,0)=x then y=ob(zl,1):return 2775 if zl