4 POKE 53272,21:PRINTCHR$(142);:DIM D(52),R(4),ST(4),TK(4),U(3),Q(6),CG(4) 5 DIM D$(9):FOR I=0 TO 3:READ U(I):NEXT 6 POKE 53280,0:HS=0:DR=1:M=1:S=1:DATA 193,218,216,211,6,14,3,1,3,14,4,14,24,34 7 FOR QR=1 TO 6:READ Q(QR):NEXT:DATA "KILLED","SLAIN","IMPALED","SLASHED" 8 FOR GG=1 TO 4:READ CG(GG):NEXT:DATA "SKEWERED","PIERCED","STABBED","SLICED" 9 FOR GG=0 TO 9:READ D$(GG):NEXT:DATA "PERFORATED","DECAPITATED" 10 Z=TI:RV$=CHR$(18):RO$=CHR$(146):GOTO 7000 15 POKE 54296,15:GOSUB 1000:GOSUB 4000:GOSUB 2100:REM START 20 IF S<>PS THEN POKE 1024+40*4+CG(PS),32:POKE 1024+40*4+CG(PS)+1,32 30 PS=S:GOSUB 5000:K$="":WAIT 53266,255:GET K$:JU=(PEEK(56320)AND 1)=0 40 IF (K$=CHR$(145) OR JU) AND FL=0 AND TC=0 THEN GOSUB 8000:GOTO 20 50 IF K$=CHR$(29) OR (PEEK(56320)AND 8)=0 THEN S=S+1:GOSUB 5230 60 IF S>4 THEN S=1 65 IF TK(S)=1 THEN S=S+1:GOTO 60 70 IF K$=CHR$(157) OR (PEEK(56320)AND 4)=0 THEN S=S-1:GOSUB 5230 75 IF S<1 THEN S=4 77 IF TK(S)=1 THEN S=S-1:GOTO 75 80 IF K$=CHR$(13) OR K$=CHR$(32) OR (PEEK(56320)AND 16)=0 THEN 110 90 IF K$=CHR$(20) OR K$=CHR$(17) OR (PEEK(56320)AND 2)=0 THEN 101 95 SP=1024+40*4+CG(S):CC=55296+40*4+CG(S):POKE SP,40:POKE SP+1,41 100 GOTO 20 101 V=R(S):SU=ST(S):IF(SU=0 OR SU=2)THEN GOSUB 5220:HP=HP-V:SC=SC+V 102 TK(S)=1:TC=TC+1:PRINT CHR$(147):GOSUB 2000:GOTO 114 110 V=R(S):SU=ST(S):IF(SU=0 OR SU=2)AND V>=LM THEN GOSUB 2060:GOTO 20 112 GOSUB 9000:TK(S)=1:GOSUB 5200:FL=0:TC=TC+1 113 PRINT CHR$(147):GOSUB 2000 114 IF HP<1 THEN 6000 115 IF CP>52 AND RT=4 THEN 6000 120 RT=0:FOR I=1 TO 4:IF TK(I)=1 THEN RT=RT+1 121 NEXT:IF RT=4 THEN 125 122 IF TC=3 AND CP<53 THEN 125 123 S=1:GOTO 20 125 IF CP>52 THEN 6000 126 GOSUB 2100:S=1:GOTO 20 1000 HP=20:WP=0:SC=0:FL=0:LM=14:FOR I=1 TO 52:D(I)=I:NEXT 1010 FOR I=1 TO 4:TK(I)=1:NEXT:GOSUB 1020:GOTO 1050 1020 OPEN 15,8,15:OPEN 2,8,2,"SCORES,S,R":INPUT#15,EN,EM$:IF EN=62 GOTO 1040 1030 INPUT#2,HS:CLOSE 2:CLOSE 15:RETURN 1040 CLOSE 2:OPEN 2,8,2,"SCORES,S,W":PRINT#2,0:CLOSE 2:CLOSE 15:RETURN 1050 SE=RND(-(TI-Z+HS)):FOR I=52TO2STEP-1:J=INT(RND(1)*I)+1 1060 T=D(I):D(I)=D(J):D(J)=T:NEXT 1070 CP=1:RETURN 2000 POKE 53269,0:POKE 53281,0:PRINT CHR$(19);CHR$(5);RV$;"HP";RO$;HP; 2005 R$=CHR$(28):PRINTRV$;"WEAP";RO$; 2006 IF(LM>(WP+1))AND(WP<14)THEN PRINT CHR$(150); 2007 IF LM=0 OR TC>0 OR CP>48 THEN 2044 2042 PRINT:PRINT TAB(15);O$;RV$;"[UP]";RO$;G$;" FLEES" 2043 IF HP<1 THEN 6000 2044 IF LM<11 THEN VM$=MID$(STR$(LM),2) 2045 IF LM=11 THEN VM$="J" 2046 IF LM=12 THEN VM$="Q" 2047 IF LM=13 THEN VM$="K" 2048 DD$=D$(INT(RND(1)*10)):IF LM=1 THEN VM$="A" 2049 PRINT:PRINTTAB(6);CHR$(5);"LAST MONSTER ";DD$;": "; 2050 IF LM < 14 THEN PRINT RV$;VM$;LM$ 2055 RETURN 2060 GOSUB5210:PRINT:PRINTTAB(2);R$;RV$;"WEAPON INEFFECTIVE! USE HAND COMBAT"; 2070 PRINT CHR$(145);:RETURN 2100 LA=0:V1=0:S1=0:FOR I=1 TO 4:IF TK(I)=0 THEN LA=I:V1=R(I):S1=ST(I) 2104 NEXT:FOR TN=1 TO 4:TK(TN)=1:NEXT:TC=0:IF FL>0 THEN FL=FL-1 2110 IF LA=0 GOTO 2125 2115 R(1)=V1:ST(1)=S1:TK(1)=0:FOR I=2 TO 4:GOSUB 2150:NEXT:GOTO 2130 2125 FOR I=1 TO 4:GOSUB 2150:NEXT 2130 PRINT CHR$(147):GOSUB 2000:RETURN 2150 IF CP>52 THEN RETURN 2160 C=D(CP)-1:R(I)=(C-13*INT(C/13))+1:ST(I)=INT(C/13):CP=CP+1:TK(I)=0:RETURN 3000 S$=CHR$(32):GOSUB 3500:PRINT CHR$(19);:FOR L=1 TO 5:PRINT CHR$(17);:NEXT 3005 RV$=CHR$(18):RO$=CHR$(146):W$=CHR$(5)+RV$+S$:L$=CHR$(157) 3007 LN$=W$+W$+W$+W$+W$+W$+W$+W$ 3010 PRINT TAB(X);CHR$(5);RV$;CHR$(233);S$;S$;S$;S$;S$;S$;CHR$(223); 3015 PRINT L$;L$;L$;L$;L$;L$;L$;L$;CHR$(17); 3020 PRINT TAB(X);W$;V$;CHR$(5);RV$;:IF LEN(V$)=1 THEN PRINT S$; 3025 PRINT S$;S$;S$;S$;S$;L$;L$;L$;L$;L$;L$;L$;L$;L$;CHR$(17); 3030 PRINT TAB(X);W$;CHR$(U(SU));CHR$(5);RV$;S$;S$;S$;S$;S$;S$; 3035 PRINT L$;L$;L$;L$;L$;L$;L$;L$;CHR$(17); 3040 PRINT TAB(X);LN$ 3045 IF SU=1 OR SU=3 THEN POKE 53269,PEEK(53269) OR (2^(I-1)) 3050 PRINT RO$;:LN$="":L$="":W$="":RETURN 3500 V$="":IF V=1 THEN V$="A":RETURN 3510 IF V=11 THEN V$="J":RETURN 3520 IF V=12 THEN V$="Q":RETURN 3530 IF V=13 THEN V$="K":RETURN 3540 V$=MID$(STR$(V),2):RETURN 4000 FOR Y=832 TO 832+63:POKE Y,0:NEXT:REM CLEAR BLOCK AT $0340 4010 FOR Y=832 TO 832+30 STEP 3:POKE Y,85:NEXT 4020 FOR Y=2040 TO 2043:POKE Y,13:NEXT:REM POINTERS TO 832 4025 POKE 53285,10:REM LIGHT RED TO SEE EASIER ON THE R36S 4035 POKE 53276,15:REM MULTICOLOR ENABLE 4036 POKE 53271,15:POKE 53277,15:REM DOUBLE SIZE 4037 POKE 53275,15:REM SET PRIORITY: SPRITES 0-3 BEHIND TEXT 4040 FOR Y=0TO3:X=39+(Y*80):POKE53248+(Y*2),XAND255:POKE53249+(Y*2),96:NEXT 4041 POKE 53264,8:REM MSB FOR SPRITE 3 5000 POKE CC,Q(M):POKE CC+1,Q(M):M=M+1:IF M>6 THEN M=1 5010 RETURN 5200 POKE 54278,240:POKE 54276,17 5202 FOR F=15 TO 45 STEP 2:POKE 54273,F:NEXT 5205 POKE 54276,16:GOSUB 5240:RETURN 5210 POKE 54278,240:POKE 54273,4:POKE 54276,129 5215 FOR DE=1 TO 9:WAIT 53266,255:NEXT:POKE 54276,128 5216 GOSUB 5240:RETURN 5220 POKE 54278,240:POKE 54276,33 5225 FOR F=20 TO 5 STEP -1:POKE 54273,F:NEXT 5227 POKE 54276,32:GOSUB 5240:RETURN 5230 POKE 54278,240:POKE 54273,60:POKE 54276,17 5235 FOR DE=0 TO 1:WAIT 53266,255:NEXT:POKE 54276,16:GOSUB 5240:RETURN 5240 WAIT 53266,255:FORI=54272TO54278:POKEI,0:NEXT:POKE54296,15:RETURN 5300 GOSUB 5240:O=54272:POKEO+23,6:REM V2+3 THRU FLT, V1 BYPASS 5305 POKE 54296,15:REM VOLUME MAX 5310 POKE 54277,0:POKE 54278,0:REM ATTACK/DECAY 5315 POKE 54276,17:REM VOICE 1: TRIANGLE 5320 POKE 54273,0:POKE 54274,32:REM V1 PITCH 5325 POKE 54283,129:REM VOICE 2: NOISE 5330 POKE 54286,0:POKE 54287,10:REM V2 PITCH 5335 POKE 54290,129:REM VOICE 3: NOISE 5340 POKE 54293,0:POKE 54294,20:REM V3 PITCH 5350 FOR T=1 TO 10:REM LOOP 5355 POKE 54276,17:POKE 54283,129:POKE 54290,129:REM ON 5360 FOR D=1 TO 10:NEXT D:REM SHORT DUR 5365 POKE 54276,16:POKE 54283,128:POKE 54290,128:REM OFF 5370 FOR D=1 TO 50:NEXT D:REM BEAT 5375 NEXT T 5380 POKE 54296,0:GOTO 6022 6000 POKE 53269,0:PRINT CHR$(147);CHR$(5);RV$:IF HP>0 THEN PH=2:GOTO 6002 6001 PRINTCHR$(28);"*** YOU DIED! ***";CHR$(5):PH=1:GOTO 6016 6002 PRINTCHR$(158);"*** VICTORY! ***";CHR$(5):IF HP<1 THEN 6016 6012 FOR B=HP TO 1 STEP -1:HP=HP-1:SC=SC+1:GOSUB 6050:GOSUB 5230:NEXT 6016 PRINT:PRINT:PRINT CHR$(5);"FINAL SCORE: ";SC 6017 IF SC>HS THEN HS=SC:PRINT"NEW HI-SCORE!":GOSUB 6100 6020 PRINT:PRINT"PRESS SPACE/FIRE":PRINT 6021 POKE 198,0:ON PH GOTO 5300,8100 6022 IF(PEEK(198)=0)AND(PEEK(56320)AND 16)THEN 5300 6025 O=54272:FORI=OTO O+24:POKEI,0:NEXT:POKEO+24,15 6030 POKE 198,0:CLR:GOTO 4 6050 H$=MID$(STR$(HP),2):S$=MID$(STR$(SC),2):PRINT CHR$(19); 6051 PRINT CHR$(5);RV$;"HP:";RO$;H$;" ";RV$;"SCORE:";RO$;S$;" ":RETURN 6100 OPEN 15,8,15,"S0:SCORES":CLOSE 15 6120 OPEN 2,8,2,"SCORES,S,W":PRINT#2,HS:CLOSE 2:RETURN 7000 C0$=CHR$(147)+CHR$(158):C1$=CHR$(151):C2$=CHR$(5) 7001 V$=CHR$(166):H$=CHR$(192):B$=CHR$(160) 7005 POKE53281,9:PRINTC0$:PRINT TAB(9);"*** SCOUNDRETSCII ***" 7010 PRINTC1$;" ";:FORI=1TO6:PRINTH$;:NEXT: 7015 PRINTRV$;" BY UNDERSCORE 2026-04-10 ";RO$; 7020 FORI=1TO6:PRINTH$;:NEXT:PRINT 7030 PRINT" ";V$;" ";V$ 7040 PRINT" ";V$;" ";V$ 7050 PRINT" ";V$;" ";CHR$(144);RV$;V$;RO$;" ";RV$;V$;RO$ 7060 PRINT" ";V$;" ";V$;" ";CHR$(144);RV$;V$;RO$;" ";RV$;V$;RO$ 7070 PRINT" ";V$;" ";V$;" ";CHR$(144);RV$;V$;RO$;" " 7071 PRINT" ";V$;" ";V$;" ";RV$;V$" ";V$;RO$ 7075 PRINT" ";V$;" ";CHR$(144);V$;" ";V$;RV$;" ENTRANCE ";RO$; 7076 PRINTV$;" ";V$; 7080 PRINT" ";V$;" ";CHR$(144);V$;" ";B$;" "; 7081 PRINT" ";B$;" ";CHR$(144);V$;" ";V$;RV$;" ";RO$;V$ 7085 PRINT" ";V$;" ";V$;" ";CHR$(144);V$;:FORI=1TO10:PRINTH$;:NEXT 7086 PRINTV$;" ";V$ 7090 PRINT" ";V$;" ";V$;" ";CHR$(144);V$;" ";V$ 7092 PRINT" ";V$;" ";V$;" ";CHR$(144);V$;" ";V$ 7094 PRINT" ";V$;" ";RV$;V$;RO$ 7095 PRINT" ";V$;" ";RV$;V$;RO$ 7096 PRINT" ";V$;" ";RV$;V$;RO$ 7099 PRINTC1$;" ";:FORI=1TO38:PRINTH$;:NEXT:PRINT 7100 PRINT:PRINT TAB(6);C2$;CHR$(158);"HEARTS";C2$;":POTION ";CHR$(144); 7105 PRINT" CLUBS";C2$;":MONSTER":PRINT TAB(4);CHR$(158);"DIAMONDS"; 7110 PRINT C2$;":WEAPON ";CHR$(144);" SPADES";C2$;":MONSTER" 7120 PRINT:PRINT TAB(4);CHR$(159);"SPACE/FIRE TO ENTER THE DUNGEON":PRINT 7210 O=54272:FORI=O TO O+24:POKE I,0:NEXT:REM CLEAR SID 7220 B=32+64:REM BASE FILTER MODE (BP+HP) 7230 POKEO+23,7:REM ALL THROUGH FILTER 7240 POKEO+22,10:REM RESONANCE 7250 REM --- MINOR CHORD SETUP --- 7260 POKEO+5,0:POKEO+6,240:POKEO+12,0:POKEO+13,240:POKEO+19,0:POKEO+20,240 7270 POKEO+4,21:POKEO+11,65:POKEO+18,65:REM RINGMOD + PULSE 7330 FOR X=0 TO 60 7331 F1=512+X/10:F2=768-X/5:REM FREQ CALCS 7332 POKEO+1,F1/256:POKEO,F1 AND 255:POKEO+8,F2/256:POKEO+7,F2 AND 255 7340 POKEO+22,60+X:REM SWEEP CUTOFF 7345 V=7+ABS(SIN(X/12)*8):POKEO+24,B+V:REM VOLUME SWELL (LFO) 7350 POKEO+15,3:POKEO+14,66+X:REM WARP V3 7360 POKEO+10,(60+X)/16:REM VARY V2 PW 7370 GOSUB 7410:NEXT 7380 FOR X=60 TO 0 STEP -1 7385 V=7+ABS(SIN(X/18)*8):POKEO+24,B+V:REM VOLUME SWELL (LFO) 7390 POKEO+22,60+X:POKEO+14,66+X:GOSUB 7410:NEXT 7400 GOTO 7330 7410 REM --- INPUT CHECK --- 7420 IF(PEEK(198)=0)AND(PEEK(56320)AND 16)THEN RETURN 7430 FOR I=O TO O+24:POKE I,0:NEXT 7535 PRINT TAB(2);"SHUFFLING...";:POKE 198,0:GOTO 15 8000 IF FL>0 OR TC>0 OR CP>48 THEN RETURN 8005 POKE 53269,0:PRINT CHR$(147);RV$;"FLEEING...";RO$:FL=2 8010 FOR I=1 TO 4:T=D(CP-4):FOR J=CP-4 TO 51:D(J)=D(J+1) 8020 NEXT:D(52)=T:NEXT:CP=CP-3:ZZ=FRE(0):GOSUB 2100:S=1:GOTO 20 8100 S=54272:W1=17:W2=65:FORI=0TO24:POKES+I,0:NEXT:POKES+24,15:DIMF(70),DV(70):D=0 8105 L=0:BD=1:W3=33:DIMNV(7):FORI=1TO7:READV:NV(I)=V:NEXT:REM NOTE FREQS 8110 DATA 3608,4050,4291,4817,5407,5728,6430:REM A,B,C,D,E,F,G 8115 POKES+5,82:POKES+6,153:POKES+12,82:POKES+13,153:POKES+19,82:POKES+20,153 8120 READN$,DU:IFN$="END"THEN8160 8125 POKE53280,Q(BD):BD=BD+1:IF BD > 6 THEN BD=1 8130 O=3:IFLEFT$(N$,1)="+"THENO=4:N$=RIGHT$(N$,LEN(N$)-1) 8140 FV=0:A=ASC(N$)-64:IFA>0ANDA<8THENFV=NV(A) 8150 F(L)=FV*2^(O-3):DV(L)=DU:L=L+1:GOTO8120 8160 POKE 53280,0:FORI=0TOL-1:V=F(I):IFV=0THEN8220 8170 H=INT(V/256):LL=V-H*256:V3=INT(V/2):H3=INT(V3/256):L3=V3-H3*256 8180 POKES+4,W1-1:POKES+11,W2-1:POKES+18,W3-1:REM RESET ATTACK 8190 POKES,LL:POKES+1,H:POKES+7,LL:POKES+8,H:POKES+14,L3:POKES+15,H3 8200 POKES+4,W1:POKES+11,W2:POKES+18,W3:REM GATE ON 8210 FORT=1TODV(I)*2:POKES,LL+40:POKES+7,LL+40:POKES+14,L3+15 8212 FORJ=1TO6:POKES+17,4+J/2:WAIT53266,255:NEXT:POKES,LL:POKES+7,LL:POKES+14,L3 8214 FORJ=1TO6:POKES+17,8-J/2:WAIT53266,255:NEXT:NEXT:GOTO 8230 8220 POKES+14,L3:POKES+4,W1-1:POKES+11,W2-1:POKES+18,W3-1 8221 FORT=1TODV(I)*50:WAIT53266,255:NEXT 8225 IF PEEK(198) OR (PEEK(56320)AND 16)=0 THEN I=L-1 8230 NEXT:FORI=0TO24:POKES+I,0:NEXT:GOTO 6025 8300 DATA A,1,E,0.5,E,0.5,E,2,REST,1,E,0.5,F,0.5,G,0.5,+A,0.25,G,0.25,F,0.5,E 8310 DATA 0.5,E,4,REST,1.5,A,0.5,A,0.5,E,0.5,E,0.25,F,0.75,G,0.67,F,0.33,E,4 8320 DATA REST,1,+A,1,+A,0.25,E,3.75,REST,1,+A,0.5,+B,0.5,+C,0.75,+B,0.25 8330 DATA +A,4,REST,1.5,A,0.5,A,0.5,E,0.5,E,0.5,F,0.5,G,0.67,F,0.34,E,4,REST 8340 DATA 1,+A,0.5,+A,0.5,+A,0.25,E,2,REST,0.75,+A,0.5,+B,0.5,+C,0.75,+B,0.25 8350 DATA +A,1,+A,4,REST,1,A,0.75,E,0.25,E,2,REST,1,E,0.5,F,0.5,G,0.25,+A,1.75 8360 DATA G,0.167,+A,0.167,G,0.167,D,3,REST,0.5,E,4,REST,2,END,0 9000 V=R(S):SU=ST(S):IF SU=3 THEN HP=HP+V:IF HP>20 THEN HP=20 9001 IF SU=3 THEN RETURN 9010 IF SU=1 THEN WP=V:LM=14:RETURN 9012 IF SU=0 THEN LM$=CHR$(97) 9013 IF SU=2 THEN LM$=CHR$(120) 9020 D=V-WP:IF D<0 THEN D=0 9030 IF D>0 THEN GOSUB 5220 9040 HP=HP-D:SC=SC+V:LM=V 9050 RETURN