home *** CD-ROM | disk | FTP | other *** search
- 8 poke56,159
- 10 goto1000
- 20 poke53281,15:poke53280,15:print"[147]";:poke2,1:clr:run22
- 22 dimt$(2),ob$(64,16),iv(64,16),ip(16),aa$(32),al(32),rm$(96):a$=a$:el=7
- 23 debug=-1:p=fre(0):if(debug)thenprint"<[196]ebug mode on!"
- 25 dv=peek(186):ifdv<8thendv=8
- 29 fl=0:cl=6:sys57812"33c.ia.o",dv,1:sys62631:if(peek(828)=0)thenpoke43,1:end
- 30 open15,dv,15,"r0:config.parse=config.parse":input#15,en:close15
- 40 ifen<>63thenprint"[195]an't find config file.":poke43,1:goto1000
- 42 print"[144][147][212]he story is loading ...":bf$="":t$(1)="":t$(2)=""
- 50 open1,dv,2,"config.parse":sys828,1,80:t$(1)=a$+"":sys828,1,80:t$(2)=a$+""
- 60 sys828,1,80:bf$=a$+"":input#1,md:close1:tj=0:tr=0
- 70 z$=bf$+".obj"+right$("0"+mid$(str$(tj+1),2),2):open15,dv,15,"r0:"+z$+"="+z$
- 80 input#15,en:close15:ifen<>63goto130
- 90 open1,dv,2,z$:l=1
- 100 sys828,1,80:ob$(l,tj+1)=a$+"":if(st=0)thenl=l+1:goto100
- 110 ob$(l+1,tj+1)="**":if(debug)thenprint"<[204]oaded object"tj+1
- 120 close1:tj=tj+1:goto70
- 130 if(debug)and(tj=0)thenprint"<[215]arning: loaded no objects"
- 140 print:printt$(1)chr$(13)t$(2)
- 150 print"[208]rogrammed with [195]ameron [203]aiser's [215][207][210][204][196]"
- 160 print"[205][193][203][197][210] v1.5 ([195])1997 [202] & [198] [208]ublishing,"
- 170 print"[201]nc. [193]ll rights reserved."
- 180 open15,dv,15,"r0:"+bf$+".intro="+bf$+".intro":input#15,en:close15
- 190 if(en<>63)and(debug)thenprint"<[215]arning: no intro text":goto220
- 200 open1,dv,2,bf$+".intro"
- 210 sys828,1,80:printa$:if(st=0)goto210
- 220 print:close1:open15,dv,15,"r0:"+bf$+".sinv="+bf$+".sinv":input#15,en:close15
- 230 ifen=63thenopen1,dv,2,bf$+".sinv":gosub780:goto260
- 240 if(debug)thenprint"<[215]arning: no inventory configuration":print
- 250 cr=01
- 260 rem <<< main room loader loop >>>
- 270 z$=bf$+".room"+right$("0"+mid$(str$(cr),2),2):open15,dv,15,"r0:"+z$+"="+z$
- 280 input#15,en:close15:ifen=63goto310
- 290 er$="[198]ailed to load room.":gosub60001
- 300 if(cr>64)thener$="[207]ut of memory.":gosub60000:end
- 310 open1,dv,2,z$:i=1:p=828:z=1:c=95:aa=0
- 320 sysp,1,80:rm$(i)=a$+""
- 321 ifleft$(rm$(i),7)="action "thenaa=aa+z:aa$(aa)=mid$(rm$(i),8):al(aa)=i
- 322 ifleft$(rm$(i),6)="alias "thenaa=aa+z:aa$(aa)=mid$(rm$(i),7):al(aa)=i
- 325 if(st=nu)and(i<c)theni=i+z:goto320
- 330 close1:rm$(i+1)="**":ifi=95thener$="[210]oom too complex.":gosub60000
- 332 ifrnd(1)>.85thenprint"([205]emory maintenance -- one moment)":q=fre(0)
- 340 t=cr:vb$="look":if(notbm)goto356
- 342 printmid$(rm$(2),7)
- 350 vb$="":print"> [144]";:poke204,.
- 351 geta$:ifa$=""goto351
- 352 ifa$=chr$(20)andvb$<>""thenprinta$;:vb$=left$(vb$,len(vb$)-1):goto351
- 353 ifa$=chr$(13)andvb$<>""thenpoke204,1:print" ":goto356
- 354 if(len(vb$)>36)or(a$<" "ora$>"z")goto351
- 355 printa$" [157]";:vb$=vb$+a$:goto351
- 356 ga=0:gosub60008:ifcr<>tgoto260
- 357 iv(cr,0)=int(-(iv(cr,0)<16)*iv(cr,0)):ifiv(cr,0)=0orvb$<>"look"goto360
- 358 print:print"[201]n the room:":print:z=0
- 359 printmid$(ob$(2,iv(cr,z)),7):z=z+1:ifiv(cr,z)<>0goto359
- 360 ifvb$<>"quit"andga<>999goto369
- 361 print"[211]ession concluded -- play again? (y/n)"
- 362 geta$:ifa$<>"y"anda$<>"n"goto362
- 363 ifa$="y"thenrun22
- 364 print"[197]nd of session.":run1000
- 369 if(ba)goto350
- 370 ifvb$="i"orvb$="inventory"thengosub450:goto350
- 380 ifleft$(vb$,4)="get "thengosub560:goto350
- 390 ifleft$(vb$,5)="drop "thengosub620:goto350
- 400 ifleft$(vb$,4)="exa "thengosub530:goto350
- 401 ifleft$(vb$,5)="save "thengosub670:goto350
- 402 ifleft$(vb$,5)="load "thengosub750:goto260
- 403 ifvb$="brief"thenbm=notbm:print"[207]k.":goto350
- 404 ifvb$="version"thenprint"[215][207][210][204][196] [205][193][203][197][210] v1.5 by [195]ameron [203]aiser":goto350
- 410 if(debug)andleft$(vb$,6)="clone "thenp=0:p$=vb$:gosub60044:goto350
- 420 if(debug)andleft$(vb$,5)="dest "thenp=0:p$="x"+vb$:gosub60048:goto350
- 422 if(debug)andleft$(vb$,5)="goto "thencr=val(mid$(vb$,6)):goto260
- 430 if(debug)andvb$="debug"thenprint"<[196]ebug off.":debug=0:goto350
- 440 print"[200]uh?":goto350
- 450 z=0:ifip(0)=0thenprint"[217]ou have nothing.":return
- 452 print"[217]our inventory contains:":print
- 460 ifip(z)<>0thenprintmid$(ob$(2,ip(z)),7):z=z+1:goto460
- 470 return
- 480 f=-1:z=0:ifip(0)=0goto510
- 490 ifmid$(ob$(1,ip(z)),4)=id$thenf=z
- 500 z=z+1:ifip(z)<>0goto490
- 510 iff=-1thenprint"[217]ou don't see that here."
- 520 return
- 530 x=3:f=0:id$=mid$(vb$,5):ifiv(cr,0)=0goto550
- 531 ifmid$(ob$(1,iv(cr,f)),4)=id$goto540
- 532 f=f+1:ifiv(cr,f)<>0goto531
- 533 goto550
- 540 ifob$(x,iv(cr,f))<>"**"thenprintob$(x,iv(cr,f)):x=x+1:goto540
- 542 return
- 550 gosub480:iff=-1thenreturn
- 551 ifob$(x,ip(f))<>"**"thenprintob$(x,ip(f)):x=x+1:goto551
- 552 return
- 560 f=-1:z=0:ifiv(cr,0)=0thenprint"[212]here's nothing here to get.":return
- 570 ifmid$(ob$(1,iv(cr,z)),4)=mid$(vb$,5)thenf=z
- 580 z=z+1:ifiv(cr,z)<>0goto570
- 590 iff=-1thenprint"[212]here's none of that here.":return
- 600 o=iv(cr,f):fori=fto15:iv(cr,i)=iv(cr,i+1):next:iv(cr,15)=0
- 610 p=0:gosub60045:print"[212]aken.":return
- 620 id$=mid$(vb$,6):gosub480:iff=-1thenreturn
- 630 ifiv(cr,15)<>0thenprint"[212]here seems to be no space for it here.":return
- 640 o=ip(f):p=f:gosub60051:p=0
- 650 ifiv(cr,p)<>0thenp=p+1:goto650
- 660 iv(cr,p)=o:print"[196]ropped.":return
- 670 f$=mid$(vb$,6):open15,dv,15,"r0:sav."+f$+"=sav."+f$:input#15,en:close15
- 680 ifen<>62thenprint"[198]ile exists/disk error in save.":return
- 690 print"[211]aving game: "f$" ";
- 700 open1,dv,2,"0:sav."+f$+",s,w":print#1,fl:print#1,cr:forx=1to64:y=0
- 710 print#1,iv(x,y):ifiv(x,y)<>0theny=y+1:goto710
- 720 if(xand1)thenprint".";
- 722 next:y=0
- 730 print#1,ip(y):ifip(y)<>0theny=y+1:goto730
- 740 print" done.":close1:return
- 750 f$=mid$(vb$,6):open15,dv,15,"r0:sav."+f$+"=sav."+f$:input#15,en:close15
- 760 ifen=62thenprint"[206]o such file/disk error in load.":goto350
- 770 print"[207]ne moment please ...":open1,dv,2,"0:sav."+f$
- 780 input#1,fl:input#1,cr:forx=1to64:y=0
- 790 input#1,iv(x,y):ifiv(x,y)<>0andy<15theny=y+1:goto790
- 800 ify=16thenclose1:print"[197]rror in saved file (bad segmentation)":return
- 810 next:y=0
- 820 input#1,ip(y):ifip(y)<>0theny=y+1:goto820
- 830 close1:return
- 1000 poke53280,0:poke53281,0:print"[147][215][207][210][204][196][160][205][193][203][197][210] 1.5 [196]eveloper":clr:a$=""
- 1002 dv=peek(186):ifdv<8thendv=8
- 1004 dr=159*256
- 1010 print"[208]rogrammed by [195]ameron [203]aiser":print"([195])1997 [202]&[198] [208]ublishing, [201]nc."
- 1011 print" ** [208]ress [_] to create new project. **"
- 1012 ifpeek(828)<>32thensys57812"33c.ia.o",dv,1:poke780,0:sys65493
- 1013 ifpeek(828)<>32thenprint"[213][206][193][194][204][197][160][212][207][160][198][201][206][196][160][205][204] [207][194][202][197][195][212] [198][201][204][197][211]":end
- 1020 open15,dv,15,"r0:config.parse=config.parse":input#15,en:close15
- 1030 ifen<>63goto2110
- 1040 print" [204]oading current configuration..."
- 1041 a=0:i=0
- 1042 reada:ifa<>-1thenpokedr+i,a:i=i+1:goto1042
- 1043 data169,36,133,251,169,251,133,187,169,0,133,188,169,1,133,183,169,8
- 1044 data133,186,169,96,133,185,32,213,243,165,186,32,180,255,165,185,32,150
- 1045 data255,169,0,133,144
- 1046 data160,3,132,251,32,165,255,133,252,164,144,208,47,32,165,255
- 1047 data164,144,208,40,164,251,136,208,233,166,252
- 1048 data32,205,189,169,32,32,210,255,32,165,255,166,144,208,18,170,240,6
- 1049 data32,210,255,184,80,240,169,13,32,210,255,160,2,208,198,32,66,246,96,-1
- 1058 open1,dv,2,"config.parse":y=0
- 1060 get#1,a$:ifa$=chr$(13)theny=y+1
- 1070 ify<2goto1060
- 1080 input#1,bf$:close1
- 1089 geta$:ifa$="_"goto2000
- 1090 poke53281,12:poke53280,12:print"[147][208]roject: "bf$
- 1100 pokedr+17,dv
- 1108 print"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
- 1110 print""tab(10)"[144][198]1 [193]ppend/write file"
- 1120 printtab(10)"[144][198]3 [199]enerate object"
- 1130 printtab(10)"[144][198]5 [212]est run"
- 1140 printtab(10)"[144][198]7 [214]iew file"
- 1150 print"[208]ress [144][209] to quit."
- 1160 print"[208]ress [144]@ to execute a disk command."
- 1161 geta$:ifa$<>"q"anda$<>"@"anda$<>"[133]"anda$<>"[134]"anda$<>"[135]"anda$<>"[136]"goto1161
- 1170 ifa$="q"goto63000
- 1180 ifa$="[135]"thenrun20
- 1181 ifa$="[134]"goto1300
- 1182 ifa$="[136]"goto1480
- 1183 ifa$="[133]"goto1190
- 1184 print"@[144]";:gosub60200:ifqgoto1090
- 1185 ifs$="$"thensysdr:goto1189
- 1188 open15,dv,15,s$:input#15,en$,em$,et$,es$:close15:printen$","em$","et$","es$
- 1189 print"[208]ress any key":wait198,1:geta$:goto1090
- 1190 print"[144][147]"tab(10)"[193]ppend/[215]rite [212]o [198]ile"
- 1200 print"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
- 1210 print"[197]nter filename ([198]1 to exit): [144]";:gosub60200:ifqgoto1090
- 1220 print"";:f$=bf$+"."+s$:open15,dv,15,"r0:"+f$+"="+f$:input#15,en:close15
- 1230 ifen<62oren>63thenprint"[198]atal disk error (press any key)":wait198,1
- 1240 ifen<62oren>63thengeta$:goto1090
- 1250 md$="s,w":ifen=63thenprint"[198]ile exists (appending)":md$="a"
- 1260 print"[208]ress [198]1 on a line to close file/quit."
- 1270 open1,dv,2,f$+","+md$
- 1280 print"> [144]";:gosub60200:ifqthenclose1:goto1090
- 1290 print#1,s$:goto1280
- 1300 print"[144][147]"tab(11)"[199]enerate [193]n[160][207]bject"
- 1310 print"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
- 1320 print"[199]etting next available object slot ...":z=1
- 1330 f$=bf$+".obj"+right$("0"+mid$(str$(z),2),2)
- 1340 open15,dv,15,"r0:"+f$+"="+f$:input#15,en:close15:ifen=62goto1370
- 1350 z=z+1:ifz<100goto1330
- 1351 print"[207]ut of slots to add objects!"
- 1360 print"[208]ress any key to abort.":wait198,1:geta$:goto1090
- 1370 print"[215]riting to [144]"f$".":open1,dv,2,f$+",s,w":print"[197]nter identifier."
- 1380 print"> [144]";:gosub60200:ifqthenprint"([201]nvalid)":goto1380
- 1390 print#1,"id "s$:print"[197]nter short description."
- 1400 print"> [144]";:gosub60200:ifqthenprint"([201]nvalid)":goto1400
- 1410 print#1,"short "s$
- 1420 print"[194]egin entering long description. [208]ress"
- 1430 print"[198]1 when finished with entry."
- 1440 print"> [144]";:gosub60200:ifq=0thenprint#1,s$:goto1440
- 1450 close1:print"[208]ress any key to commit this object."
- 1460 print"[208]ress [198]1 to abort.":wait198,1:geta$:ifa$<>"[133]"goto1090
- 1470 print"[144][196]eleting object.":open15,8,15,"s0:"+f$:close15:goto1090
- 1480 print"[197]nter filename to view: [144]";:gosub60200:ifqgoto1090
- 1490 print"[147]";:open15,dv,15,"r0:"+s$+"="+s$:input#15,en:close15:ifen=63goto1520
- 1510 print"[198]ile not found ... press any key":wait198,1:geta$:goto1090
- 1520 open1,dv,2,s$:r=0
- 1530 if(st<>0)goto1560
- 1540 sys828,1,80:b$=a$+"":printb$:r=r+int(len(b$)/39)+1:ifr<20goto1530
- 1550 print"** [205][207][210][197] ** ([198]1 to abort)[146]":wait198,1:geta$:ifa$="[133]"goto1560
- 1552 r=0:print"[145] [145]":goto1530
- 1560 print"[197]nd of file (press any key)[146]":close1:wait198,1:geta$:goto1090
- 2000 rem -- install/configure --
- 2010 print"[215][193][210][206][201][206][199]! [217]ou have opted to delete the"
- 2020 print"current project [155]"bf$" and create a
- 2030 [153]"new project from scratch!"
- 2040 [153]"(NULL)ress asc1 to confirm.":[153]"(NULL)ress any other key to abort."
- 2050 [161]a$:[139]a$[179][177]""[137]2050
- 2060 [161]a$:[139]a$[178]""[137]2060
- 2070 [139]a$[179][177]"input"[137]1090
- 2080 [153]"str$eleting project ..."
- 2090 [159]15,dv,15,"s0:"[170]bf$[170]".*":[152]15,"s0:config.parse":[132]15,en:[160]15
- 2100 [139]en[179][177]1[167][153]"valrror in cleanup."
- 2110 [153]"(NULL)elcome to (NULL)(NULL)(NULL)(NULL)str$ (NULL)atn(NULL)val(NULL) 1.5."
- 2120 [153]"(NULL)o begin creating your project, enter"
- 2130 [153]"the project name: ";:[141]60200
- 2132 [139][195](s$)[177]8[167][153]"(NULL)ame must be eight characters max.":q[178]1
- 2140 [139]q[167][153]"(NULL)eenter name: ";:[141]60200:[137]2132
- 2150 bf$[178]s$:[153]"valnter two lines of title text for your"
- 2160 [153]"game file. (NULL)ress asc1 to restart if you"
- 2170 [153]"make a mistake."
- 2180 [153]"1> ";:[141]60200:[139]q[137]2180
- 2190 z$[178]s$:[153]"2> ";:[141]60200:[139]q[137]2180
- 2200 [153]"(NULL)ne moment please ..."
- 2210 [159]1,dv,2,"config.parse,s,w":[152]1,z$:[152]1,s$:[152]1,bf$:[152]1,0
- 2220 [160]1:[159]15,dv,15:[132]15,en:[160]15
- 2230 [139]en[179][177]0[167][153]"(NULL)nable to rewrite config file."
- 2240 [153]"(NULL)ress any key to restart with your new"
- 2250 [153]"configuration and begin constuction.":[146]198,1:[161]a$:[138]1000
- 9999 [128]
- 10000 d[178][194](186):n$[178]"developer":[159]15,d,15,"s0:"[170]n$:[160]15:[148]n$,d:[128]
- 59999 [128]
- 60000 [143] <<< standard subroutines >>>
- 60001 [139]([168]debug)[167][153]"*** valrror in code. (NULL)lease notify author."
- 60002 [153]"(NULL)(NULL)(NULL)(NULL)right$(NULL)val val(NULL)(NULL)(NULL)(NULL): "er$
- 60003 [153]"within: "z$" disk:"en"line:"ln:ga[178]0:en[178]0:[142]
- 60008 [143] <<< execute a room action >>>
- 60009 ba[178][171]1
- 60011 [139]cr[178]0[176]aa[178]0[167]er$[178]"(NULL)o actions.":[141]60001:[142]
- 60012 ln[178]0:[129]x[178]1[164]aa:[139]aa$(x)[178]vb$[167]ln[178]al(x)
- 60013 [130]:[139]ln[178]0[167]ba[178]0:[142]
- 60014 ln[178]ln[170]1:p$[178]rm$(ln):[139]ln[178]96[167]er$[178]"(NULL)oo long eval.":[141]60001:[142]
- 60015 [139]ga[176][200](p$,el)[178]"action "[176]p$[178]"return"[176]p$[178]"**"[167][142]
- 60016 [139][200](p$,cl)[178]"ptell "[167][153][202](p$,7):[137]60014
- 60017 [139][200](p$,cl)[178]"alias "[176][200](p$,cl)[178]"label "[176][200](p$,z)[178]";"[137]60014
- 60018 [139][200](p$,5)[178]"goto "[167]ln[178]0:[141]60041:[137]60014
- 60019 [139][200](p$,cl)[178]"fset+ "[167]fl[178]((fl)[176](2[174]([197]([202](p$,7,1))))):[137]60014
- 60020 [139][200](p$,cl)[178]"fset- "[167]fl[178]((fl)[175]511[171]2[174]([197]([202](p$,7,1)))):[137]60014
- 60021 [139][200](p$,6)[178]"fset? "[167]p[178]2[174][197]([202](p$,7)):ln[178]1[170]ln[171](fl[175]p)[173]p:[137]60014
- 60022 [139][200](p$,5)[178]"pkill"[167]ga[178]999:[142]
- 60023 [139][200](p$,cl)[178]"pmove "[167]cr[178][197]([202](p$,7)):[137]60014
- 60024 [139][200](p$,cl)[178]"pgive "[167]p[178]0:[141]60044:[137]60014
- 60025 [139][200](p$,cl)[178]"pgot? "[167]p[178]0:[141]60052:[137]60014
- 60026 [139][200](p$,cl)[178]"pdest "[167]p[178]0:[141]60048:[142]
- 60040 [153]p$:[137]60014
- 60041 ln[178]ln[170]1:[139]rm$(ln)[178]"label "[170][202](p$,6)[167]ln[178]ln[171]1:[142]
- 60042 [139]rm$(ln)[179][177]"**"[137]60041
- 60043 ln[178]95:[142]
- 60044 o[178][197]([202](p$,7)):[139]o[177]tj[167]er$[178]"(NULL)bject not found.":[141]60000:ga[178]1:[142]
- 60045 [139]ip(p)[178]0[167]ip(p)[178]o:[142]
- 60046 [139]p[179]15[167]p[178]p[170]1:[137]60045
- 60047 [153]"(NULL)ou can't carry any more.":vb$[178]"drop "[170][202](ob$(1,o),3):ba[178]0:[142]
- 60048 o[178][197]([202](p$,7))
- 60049 [139]ip(p)[179][177]o[175]p[179]15[167]p[178]p[170]1:[137]60049
- 60050 [139]p[178]15[167][142]
- 60051 [129]i[178]p[164]15:ip(i)[178]ip(i[170]1):[130]:ip(15)[178]0:[142]
- 60052 o[178][197]([202](p$,7))
- 60053 [139]ip(p)[179][177]o[175]p[179]15[167]p[178]p[170]1:[137]60053
- 60054 [139]p[178]15[167]ln[178]ln[170]1
- 60055 [142]
- 60100 s$[178]"":[151]204,.
- 60110 [161]a$:[139]a$[178]""[137]60110
- 60120 [139]a$[178][199](20)[175]s$[179][177]""[167][153]a$;:s$[178][200](s$,[195](s$)[171]1):[137]60110
- 60130 [139]a$[178][199](13)[175]s$[179][177]""[167][151]204,1:[153]" ":[142]
- 60140 [139][195](s$)[177]38[137]60110
- 60150 [139]a$[178][177]" "[175]a$[179][178]"z"[167][153]a$;:s$[178]s$[170]a$:[137]60110
- 60160 [139]a$[178][177]"atn"[175]a$[179][178]"(NULL)"[167][153]a$;:s$[178]s$[170]a$:[137]60110
- 60170 [137]60110
- 60200 [143] <<< getin >>>
- 60201 s$[178]"":[151]204,.:q[178]0
- 60210 [161]a$:[139]a$[178]""[137]60210
- 60211 [139]a$[178][199](13)[175]s$[179][177]""[167][151]204,1:[153]" ":[142]
- 60212 [139]a$[178]"input"[167][151]204,1:[153]" ":q[178]1:[142]
- 60213 [139]a$[178][199](20)[175]s$[179][177]""[167]s$[178][200](s$,[195](s$)[171]1):[153]" "a$a$;:[137]60210
- 60214 [139][195](s$)[177]77[137]60210
- 60215 [139][168]((a$[178][177]"atn"[175]a$[179][178]"(NULL)")[176](a$[178][177]" "[175]a$[179][178]"_"))[137]60210
- 60216 [153]a$;:s$[178]s$[170]a$:[137]60210
- 63000 [153]"load";:[159]15,dv,15,"r0:b.world maker=b.world maker"
- 63010 [132]15,en:[160]15:[139]en[179][177]63[167][162]:[128]
- 63020 [153]"load"[199](34)"b.world maker"[199](34)","dv:[153]"run"
- 63030 [151]198,3:[151]631,19:[151]632,13:[151]633,13:[128]
- 63999 [134]t$(2),ob$(64,16),rm$(96),aa$(32),al(32),iv(64,16),ip(16):a$[178]a$:el[178]7
-