Willus.com
Home
|
Archive
|
About
CASEDT
(4422 bytes)
EMULATE AS:
DEFAULT TYPE (BASIC)
|
CMD program
|
Program on Disk
|
2-Disk Debug
|
Disk Download
SHOW BELOW AS:
BASIC program
(download)
|
Text File
(download)
|
Z-80 Program
(download)
|
EDTASM File
(download)
|
Graphic
(download)
|
Hex File
(download)
|
SCRIPSIT File
(download)
Return to TRS-80 software list.
5 GOTO100 10 I=VARPTR(K#(X-1,Y-1))+Z-1:RETURN 20 I=PEEK(I)+100*(PEEK(I)>99):RETURN 30 I=I+8*((I=9)-(I=0)):RETURN 40 I=-I*(I<19)-18*(I>18):RETURN 50 X=RND(8):Y=RND(8):GOSUB10:IFPEEK(I)<>101THEN50 60 POKEI,Q:RETURN 100 CLEAR350:DEFINTA-F,H-Z:DIMK#(7,7),C$(33),RP(33),C(3,4):I=0:RANDOM:T=RND(128) 110 CLS:PRINTTAB(16);"CASTLE DUNGEON MAKER. 12/29/82":PRINT:PRINT 115 RESTORE:FORQ=1TO33:READC$(Q):NEXTQ:READI$ 120 DF$="CASDUN/DAT":INPUT"WHAT FILENAME DO YOU WANT TO USE FOR YOUR DUNGEON";DF$ 130 IF DF$=""THEN 120 140 IF LEN(DF$)>12THEN120 150 OPEN"R",1,DF$,"MU" 160 IF LOC(1)$=-1 THEN CLOSE : GOTO170 165 FOR Q = 0 TO 7 : GET 1,,51000 : NEXT Q : GET 1,,,O1,O2,O3; 166 GET 1,,,R1,R2,R3; 167 FOR Q = 1 TO 3 : GET 1,,51010 : NEXT Q : CLOSE : GOTO 2000 170 FORZ=1TO8:FORY=1TO8:FORX=1TO8:GOSUB10:POKEI,101:NEXTX,Y,Z 180 X=1:Y=4:Z=1:Q=2 190 GOSUB10:GOSUB60 210 FOR Q = 3 TO 33 220 A$="":PRINT"DO YOU WANT '";C$(Q);"' RANDOMLY PLACED AROUND THE DUNGEON";:INPUTA$ 230 IFA$="Q"THENQ=33 : GOTO 320 240 IFA$=""THEN220:ELSEIFLEFT$(A$,1)="Y"THENA$="":INPUT"DO YOU WISH TO ADD MORE";A$:IFA$=""THEN240:ELSEIFA$="N"THEN300 250 ON Q-2 GOSUB 500,500,600,600,600,600,600,600,600,600 260 IF Q>12 AND Q<25 THEN GOSUB 700 270 IF Q=25 THEN GOSUB 600 280 IF Q>25 THEN GOSUB 800 290 RP(Q)=-1:GOTO310 300 RP(Q)=0 310 IFQ<26 THEN INPUT"LESS HOW MANY";RP(Q) 320 NEXT Q 322 FOR Q = 1 TO 3 324 PRINT"WHERE DO YOU WHAT THE 3 CURSES PLACED?" 326 GOSUB 10000 328 C(Q,1)=X:C(Q,2)=Y:C(Q,3)=Z:C(Q,4)=0 329 NEXTQ 330 PRINT"WHERE DO YOU WANT THE ORB OF ZOT PLACED?" 340 GOSUB3000 352 PRINT"WHERE DO YOU WANT THE RUNSTAFF PLACED?" 354 GOSUB4000 356 INPUT"WHAT MONSTER DO YOU WANT IT PLACED UNDER (1-12)";Q : IF Q<1 OR Q>12 THEN 356 357 Q=Q+112:GOSUB 10 : GOSUB 60 360 FOR Q3=4 TO 33 370 IFRP(Q3)=-1 THEN 430 380 IF Q3=4 THEN GOSUB 900 390 IF Q3>4 AND Q3<13 THEN GOSUB 1000 400 IF Q3>12 AND Q3<25 THEN GOSUB 1100 410 IF Q3=25 THEN GOSUB 1200 420 IF Q3>25 THEN GOSUB 1300 430 NEXTQ3 440 OPEN"O",1,DF$,"MU" 450 FOR Q=0 TO 7 460 PUT1,,51000 470 NEXT Q 480 PUT1,,,O1,O2,O3; 483 PUT1,,,R1,R2,R3; 485 FOR Q = 1 TO 3 : PUT 1,,51010 : NEXT Q 490 CLOSE:PRINT"DONE.":END 500 PRINT"NORMALLY 2 SETS OF UP/DOWN STAIRS ARE PLACED ON A LEVEL." 510 A$="":INPUT"WHEN PLACING STAIRS, DO YOU WISH A COUNTER PAIR OF STEPS SET";A$ 520 IFA$=""THEN510:ELSEIFLEFT$(A$,1)="Y"THENQ2=1:ELSEQ2=0 530 GOSUB 11000 540 IFX=0ORY=0 THEN RETURN 550 POKEI,100+Q 560 IF Q2=1 AND Q=3 AND Z<>1 THEN POKEI-1,104 570 IF Q2=1 AND Q=4 AND Z<>8 THEN POKEI+1,103 580 GOTO530 600 PRINT"THERE ARE NORMALLY THREE PER LEVEL." 610 GOSUB 11000 620 IFX=0ORY=0 THEN RETURN 630 POKEI,Q+100 640 GOTO610 700 PRINT"THERE IS NORMALLY 1 OF EACH MONSTER PER LEVEL." 710 GOSUB11000 720 POKEI,Q+100 730 IFX=0ORY=0 THEN RETURN 740 GOTO710 800 PRINT"THERE IS ONE OF EACH TREASURE.":GOTO710 900 IFRP(Q3)>0THENRETURN 910 FORZ=1TO7:FORQ1=1TO2:Q=104:GOSUB50:POKEI+1,103:NEXTQ1:NEXTZ:RETURN 1000 IF RP(Q3)>2 THEN RETURN 1010 FORZ=1TO8:FORQ1=1TO3-RP(Q3):Q=Q3+100:GOSUB50:NEXTQ1:NEXTZ:RETURN 1100 IF RP(Q3)>7 THEN RETURN 1110 FORZ=1TO8:Q=Q3+100 1120 IF RND(RP(Q3))<>1 THEN GOSUB50 1130 NEXTZ:RETURN 1200 IF RP(Q3)>7 THEN RETURN 1210 FORZ=1TO8:FORQ1=1TO3:Q=125 1220 IF RND(RP(Q3))<>1 THEN GOSUB 50 1230 NEXTQ1:NEXTZ:RETURN 1300 IF RP(Q3)>0 THEN RETURN 1310 Q=Q3+100:Z=RND(8):GOSUB50:RETURN 2000 CLS 2010 PRINT"CHOOSE A THING TO PUT IN THE DUNGEON." 2020 FOR Q1=1TO11 2030 PRINTUSING"##";Q1;:PRINT" ";C$(Q1); 2040 PRINTTAB(21);:PRINTUSING"##";Q1+11;:PRINT" ";C$(Q1+11); 2050 PRINTTAB(43);:PRINTUSING"##";Q1+22;:PRINT" ";C$(Q1+22) 2060 NEXTQ1 2065 PRINT"34 RUNSTAFF";TAB(21);:PRINT"35 ORB OF ZOT" 2070 PRINTTAB(20);:INPUT"NUMBER (0 TO QUIT)";Q 2080 IF Q<0 OR Q>35 THEN PRINTCHR$(27);:GOTO2070 2085 IFQ=0 THEN 440 2086 IFQ=35 THEN GOSUB 3000 : GOTO 2000 2087 IFQ=34 THEN GOSUB 4000 : GOTO 2000 2090 GOSUB11000 2100 IF X=0 OR Y=0 OR Z=0 THEN 2000 2105 GOSUB10 2110 POKE I,Q+100 2120 GOTO 2090 3000 GOSUB 10000 3010 O1=X:O2=Y:O3=Z:GOSUB10:POKEI,109 3020 RETURN 4000 GOSUB 10000 : R1=X:R2=Y:R3=Z 4010 RETURN 10000 PRINT"0,0,0 TO STOP, -1,-1,(LVL) FOR MAP" 10010 INPUT"(X,Y,Z)";X,Y,Z 10020 IF X=0 OR Y=0 OR Z=0 THEN RETURN 10030 IF (X=-1 OR Y=-1) AND Z<9 AND Z>0 THEN 10070 10040 IF X>9 OR X<1 OR Y>9 OR Y<1 OR Z>9 OR Z<1 THEN 10010 10050 GOSUB 10 : RETURN 10060 'MAP DRAWER. ON ENTRY 'Z' HOLDS LVL TO DRAW 10070 SQ=Q:CLS:PRINT"MAP OF LEVEL";Z:A=X:B=Y 10075 FORX=1TO8:FORY=1TO8:GOSUB10:Q=PEEK(I):IFQ>99 THEN Q=Q-100 10080 'IFX=AANDY=BTHENPRINT"<";MID$(I$,Q,1);">";:GOTO10100 10090 PRINT" ";MID$(I$,Q,1);" "; 10100 NEXTY:PRINT:NEXTX:Q=SQ:GOTO10010 11000 PRINT"WHERE DO YOU WANT TO PLACE ";C$(Q);:IFRIGHT$(C$(Q),1)<>"S"THENPRINT"S?":ELSEPRINT"?" 11010 GOSUB10000 11015 IF X=0 OR Y=0 OR Z=0 THEN RETURN 11020 IFPEEK(I)=101 THEN RETURN 11030 PRINT"THERE IS ALREADY ";C$(PEEK(I)+(PEEK(I)>99)*100);" THERE, DO YOU WISH TO OVER-WRITE IT";:INPUTA$ 11040 IFA$=""THEN11030:ELSEIFLEFT$(A$,1)="N"THEN11010 11050 RETURN 20050 'IF LEFT$(A$,1)="Y" THEN FORQ=126TO133:Z=RND(8):GOSUB50:NEXTQ:GOTO 40000 FORZZ=15360TO15360+255:POKEZZ,ZZ-15360:NEXT:STOP 50000 DATAAN EMPTY ROOM,THE ENTRANCE,STAIRS GOING UP,STAIRS GOING DOWN,A POOL,A CHEST,GOLD PIECES,FLARES,A WARP,A SINKHOLE,A CRYSTAL ORB,A BOOK,A KOBOLD,AN ORC,A WOLF,A GOBLIN,A HALFLING,A TROLL,A JACKEL,A MINOTAUR,A VAMPIRE,A CHIMERA,A NYMPH 50010 DATAA DRAGON,A VENDOR,THE RUBY RED,THE NORN STONE,THE PALE PEARL,THE OPAL EYE,THE GREEN GEM,THE BLUE FLAME,THE PALANTIR,THE SILMARIL,".E[\PC$FSOBkowghtjmvcndVTTTTTTTT?" 51000 K#(Q,0),K#(Q,1),K#(Q,2),K#(Q,3),K#(Q,4),K#(Q,5),K#(Q,6),K#(Q,7); 51010 C%(Q,1),C%(Q,2),C%(Q,3),C%(Q,4);