10 REM ********************************* 20 REM * * 30 REM * ADVENTURE WRITING SERIES * 40 REM * (C) COMMODORE DISK USER 1990 * 50 REM * * 60 REM * SAMPLE ROUTINES FROM DEMAD * 70 REM * WRITTEN BY JASON FINCH * 80 REM * * 90 REM ********************************* 100 : 110 A=A+1 120 IFA=1THENLOAD"AW-MODULES.MC",8,1: REM ## LOAD MACHINE CODE 130 IFA=2THENLOAD"PIC4",8,1: REM ## LOAD INITIAL PICTURE 140 IFA=3THENLOAD"AW-SAMPLE TEXT",8,1:REM ## LOAD SOME SAMPLE TEXT 150 : 160 REM ******************************* 170 REM * SYS 49152: RASTERS ON * 180 REM * SYS 49155: RASTERS OFF * 190 REM * SYS 49158: DISPLAY PICTURE * 200 REM * SYS 49161,C:DISPLAY TEXT * 210 REM * SYS 49164: SCROLL TEXT UP * 220 REM * SYS 49167: CLEAR BITMAP * 230 REM * SYS 49170: LOAD PICTURE * 240 REM ******************************* 250 : 260 POKE 53280,0:POKE 53281,0: GOSUB 1180:REM ## SET SCREEN COLS. AND READ DATA 270 PRINT CHR$(147);CHR$(8):REM ## CLEAR TEXT SCREEN 280 SYS 49167:REM ## CLEAR BITMAP SCREEN 290 SYS 49158:REM ## "DECOMPRESS" PIC. 300 POKE 49295,0: SYS 49152:REM ## RASTERS ON (WITH BLACK BAR) 310 : 320 : 330 REM ******************************* 340 REM * ROUTINE TO ILLUMINATE * 350 REM * BAR SLOWLY * 360 REM ******************************* 370 : 380 POKE 49295,11: FOR T=1 TO 50:NEXT 390 POKE 49295,12: FOR T=1 TO 50:NEXT 400 POKE 49295,15: FOR T=1 TO 50:NEXT 410 POKE 49295,1: FOR T=1 TO 50:NEXT 420 POKE 49295,7: FOR T=1 TO 90:NEXT 430 POKE 49295,13 440 : 450 SYS 49164: SYS 49164: SYS 49164:REM ## SCROLL TEXT WINDOW 460 POKE 2,170: SYS 49161,13:REM ## DISPLAY TEXT - LENGTH 170 - COLOUR L.GREEN 470 : 480 REM ******************************* 490 REM * THIS IS THE INPUT ROUTINE - * 500 REM * USED TO HANDLE THE ENTERING * 510 REM * OF THE TEXT BY THE PLAYER * 520 REM * OF YOUR EPIC ADVENTURE. * 530 REM * * 540 REM * USUALLY INCORPORATE IT AS A * 550 REM * SUB-ROUTINE AND CALL WITH * 560 REM * 'GOSUB' TO THE RIGHT PLACE. * 570 REM ******************************* 580 : 590 SYS 49164: GOSUB 1130:REM ## SCROLL TEXT WINDOW 600 PRINT"[158]> ";:C$="":REM ## DISPLAY PROMPT 610 PRINT" [157][146]";:REM ## CURSOR BLOCK 620 GET Z$: IF Z$="" THEN 620:REM ## WAIT FOR KEY 630 Z=ASC(Z$): IF (Z<32 AND Z<>13 AND Z<>20) OR Z>90 THEN 620:REM ## VALIDITY? 640 L=LEN(C$): IF L>35 THEN 700:REM ## LENGTH OF INPUT 650 IF Z$="*" AND L=0 THEN PRINT"[210][197][208][197][193][212] [204][193][211][212][160][195][207][205][205][193][206][196]";:C$=OC$:GOTO740 660 IF Z=13 OR Z=20 THEN 700:REM ## SPACE OR DELETE PRESSED 670 Z=Z-5*(Z=34):REM ## ALTER INPUT IF QUOTES PRESSED 680 C$=C$+Z$: Z=Z-128*(Z>64):REM ## ADD LETTER TO COMMAND 690 PRINT CHR$(Z);: GOTO 610:REM ## PRINT LETTER AND GO BACK 700 IF Z=13 AND L>0 THEN PRINT" ";:OC$=C$:GOTO740:REM ## END INPUT 710 IF Z=20 AND L>0 THEN PRINT" [157][157] [157]";: C$=LEFT$(C$,L-1):REM ## DELETE 720 GOTO610:REM ## GO BACK FOR MORE 730 : 740 IF C$>"1" AND C$<"5" AND L=1 THEN 870:REM ## IF 2/3/4 LOAD PICTURE 750 : 760 SYS 49164: GOSUB 1130:REM ## SCROLL TEXT WINDOW 770 PRINT"[154][207]K. [208]RESS 2,3 OR 4 TO LOAD PICTURE."; 780 SYS 49164: GOSUB 1130 790 PRINT"[154][210]EMEMBER TO INSERT CORRECT DISK THOUGH!"; 800 SYS 49164: GOTO 590:REM ## GO BACK FOR SOME MORE TEXT 810 : 820 REM ******************************* 830 REM * ROUTINE TO DARKEN THE * 840 REM * BAR SLOWLY * 850 REM ******************************* 860 : 870 POKE 49295,7: FOR T=1 TO 90:NEXT 880 POKE 49295,1: FOR T=1 TO 50:NEXT 890 POKE 49295,15: FOR T=1 TO 50:NEXT 900 POKE 49295,12: FOR T=1 TO 50:NEXT 910 POKE 49295,11: FOR T=1 TO 50:NEXT 920 POKE 49295,0 930 SYS 49167:REM ## CLEAR BITMAP SCREEN 940 SYS 49155:REM ## RASTERS OFF 950 PRINT" " 960 PRINT" " 970 OPEN 15,8,15,"I0":OPEN 2,8,0,"PIC"+C$+",P,R": REM ## CHECK DISK FOR PIC. 980 INPUT#15,E: CLOSE 2: CLOSE 15 990 IF E>0 THEN 1040:REM ## NOT FOUND 1000 PRINT"[212]EMPORARY MESSAGE: [204][207][193][196][201][206][199][160][208][201][195][212][213][210][197]" 1010 POKE 49852,ASC(C$):REM ## STORE PIC NO. IN LOAD ROUTINE 1020 SYS 49170:REM ## LOAD PICTURE 1030 GOTO 290: REM ## RETURN TO START TO DISPLAY PICTURE ETC. 1040 PRINT"[147][212]EMPORARY MESSAGE: [198][201][204][197] [206][207][212][160][198][207][213][206][196]" 1050 PRINT"[208]RESS ANY KEY":POKE 198,0: WAIT 198,1: POKE 198,0 1060 GOTO 290 1070 : 1080 REM ******************************* 1090 REM * ROUTINE TO POSITION CURSOR * 1100 REM * ON THE BOTTOM LINE * 1110 REM ******************************* 1120 : 1130 POKE 781,24:POKE 782,0: POKE 783,0:SYS 65520: RETURN 1140 REM ******************************* 1150 REM * A BIT OF SAMPLE DATA FOR YA!* 1160 REM ******************************* 1170 : 1180 NV=20: NN=20: NL=4: NR=11: REM ## SET NO. OF VERBS/NOUNS/LINKS/ROOMS 1190 DIM V$(NV),N$(NN),L$(NL),D$(NN),IL%(NN),W%(NN),D%(NR,8) 1200 : 1210 FOR X=1 TO NN 1220 READ N$(X),D$(X),IL%(X),W%(X): REM ## READ NOUN/DESCRIP/INIT LOC/WEIGHT 1230 NEXT 1240 : 1250 FOR X=1 TO NV: READ V$(X): NEXT: REM ## READ IN VERBS 1260 FOR X=1 TO NL: READ L$(X): NEXT: REM ## READ IN LINKING WORDS 1270 FOR X=1 TO NR: FOR Y=0 TO 7 1280 READ D%(X,Y): REM ## READ DIRECTION INFO 1290 NEXT Y,X 1300 RETURN 1310 DATA KNIFE,A SHARP KNIFE,-1,10 1320 DATA KNIFE,A BLOOD-STAINED KNIFE,0,10 1330 DATA RAT,A RAT,9,15 1340 DATA RAT,A DEAD RAT,0,15 1350 DATA WITCH,A WITCH,5,500 1360 DATA CAULDRON,A BUBBLING CAULDRON,5,500 1370 DATA COIN,A SMALL COIN,0,1 1380 DATA COIN,A MEDIUM-SIZED COIN,0,2 1390 DATA COIN,A LARGE COIN,0,3 1400 DATA KEY,A WOODEN KEY,0,5 1410 DATA ROCKS,SOME LARGE JAGGED ROCKS,1,500 1420 DATA TREE,A TALL TREE,10,500 1430 DATA STUMP,A TREE STUMP,4,500 1440 DATA GRASS,A CLUMP OF GREEN GRASS,3,10 1450 DATA BRIDGE,A BRIDGE,8,500 1460 DATA PLANK,A LONG PLANK OF WOOD,0,30 1470 DATA CHAIR,A COMFY ARMCHAIR,6,500 1480 DATA FIREPLACE,A BRICK FIREPLACE,6,500 1490 DATA PICTURE,A PICTURE,6,500 1500 DATA CHEST,A LARGE WOODEN CHEST,6,500 1510 : 1520 DATA NORTH,NORTHEAST,EAST,SOUTHEAST 1530 DATA SOUTH,SOUTHWEST,WEST,NORTHWEST 1540 DATA GET,DROP,INVENTORY,QUIT 1550 DATA OPEN,CLOSE,KILL,EXAMINE 1560 DATA OFFER,TURN,REPAIR,LOOK 1570 : 1580 DATA SMALL,MEDIUM,LARGE,TO 1590 : 1600 DATA 0,0,0,0,3,0,0,0 1610 DATA 0,0,0,5,4,0,0,0 1620 DATA 1,0,4,0,0,0,0,0 1630 DATA 2,0,0,0,8,0,3,0 1640 DATA 0,0,0,0,0,0,0,2 1650 DATA 0,0,6,0,0,0,0,0 1660 DATA 0,0,0,0,11,0,0,0 1670 DATA 4,0,0,0,0,0,0,0 1680 DATA 7,0,9,0,0,0,0,0 1690 DATA 8,0,10,0,0,11,0,0 1700 DATA 9,0,0,0,10,0,7,0