1 DIM S$(28),N$(40),C$(30):POKE 16,64:POKE 53774,64:A=PEEK(1536):S$="D:LV":S$(LEN(S$)+1)=STR$(A) 2 N$="D:FILE1":IF PEEK(1537)=1 THEN OPEN #1,4,0,"D:NAME":INPUT #1,N$:CLOSE #1:C$=N$:ENTER "D:INIT" 3 ENTER S$ 5 A1=1:A2=A1+A1:A3=A1+A2:A4=A2+A2:A5=5:A6=6:A7=7:A8=A4+A4:A9=A5+A4:A10=A5+A5:OPEN #A1,A4,A0,"K:":PH=A1:GOTO 960 6 TRAP 40000:RETURN 50 RESTORE 75:FOR W=A1 TO A8:TRAP A6:READ D1,E1:M1=USR(1536,ADR(A$),X1+D1,Y1+E1):IF M1=A1 THEN 70 65 IF PEEK(207)>33 THEN POKE TM+A2,A0:POP:GOTO 9400 70 NEXT W:RETURN 75 DATA 0,-1,1,-1,1,0,1,1,0,1,-1,1,-1,0,-1,-1 80 DATA -1,-1,-1,1,1,-1,1,1,-1,0,0,1,1,0,0,-1 110 TOP=BL+BH*256:X1=A3:Y1=A5:GOSUB 540:E=184:B=E:P1=A0:A=A0 112 Z=INT(13*RND(A0)):IF PEEK(TOP+5100+Z)=A1 THEN 112 113 POKE TOP+5100+Z,A1:D1=D1+A1:IF D1<>10 THEN 112 115 FOR W=A0 TO 33:POKE TOP+5200+W,A1:POKE TOP+5300+W,A1:NEXT W 120 FOR W=A0 TO 15:POKE TOP+5130+W,100:NEXT W:GOSUB 400 130 IF PEEK(764)=33 THEN GOSUB 420 131 IF PH=A1 THEN GOSUB 10000:GOSUB 1000:PH=A0 140 POKE 77,0:T=STICK(A0):IF T=15 THEN POKE TOP+X1+Y1*50,56:POKE TOP+X1+Y1*50,E:GOTO 280 150 TX=X1:TY=Y1:TA=A 160 IF T=14 THEN Y1=Y1-A1 165 IF T=A6 THEN Y1=Y1-A1:X1=X1+A1 168 IF T=A10 THEN Y1=Y1-A1:X1=X1-A1 170 IF T=13 THEN Y1=Y1+A1 175 IF T=A9 THEN Y1=Y1+A1:X1=X1-A1 178 IF T=A5 THEN Y1=Y1+A1:X1=X1+A1 180 IF T=11 THEN X1=X1-A1 190 IF T=A7 THEN X1=X1+A1 200 IF Y145 THEN Y1=45 230 IF X1>49 THEN X1=49 231 POKE (TOP+TX+(TY*50)),A:A=PEEK(TOP+X1+(Y1*50)) 236 IF A=A10 AND P1=A1 THEN 245 238 GOSUB 9500:IF P1=A1 AND TR>A5 THEN Y1=TY:X1=TX:A=TA:POKE TOP+X1+Y1*50,E:GOTO 130 240 IF A=142 AND E=191 THEN GOSUB 5500 245 IF P1=A0 THEN 280 260 IF PEEK(TM+A2)=A0 THEN 9400 270 T=PEEK(TM+A2):GOSUB 9500:RESTORE 9200+TR:READ C$,N$:IF (T-C$)33 THEN SOUND A2,A10,20,A5:FOR X=A1 TO 20:NEXT X:SOUND A2,A0,A0,A0:P1=A0:RETURN 360 IF PEEK(TM+A2)=A0 THEN P1=A0:RETURN 370 TM=M:E=A:A=PEEK(M+A4):B=A0:T1=PEEK(207) 380 RETURN 390 POKE TOP+X1+(Y1*50),E:POKE TM,X1:POKE TM+A1,Y1:POKE TM+A4,A:RETURN 400 W=USR(ADR("[UNRECOVERED MACHINE CODE BYTES]"),D):POKE 756,P 410 X=USR(ADR("[UNRECOVERED MACHINE CODE BYTES]"),A5*256+CR(A4),CR(A3)*256+CR(A2),CR(A1)*256+CR(A0)):RETURN 420 GRAPHICS A0:SETCOLOR A2,A0,15:POKE 752,A1:POKE 764,255 421 M=USR(1536,ADR(A$),X1,Y1):IF M=A1 AND P1<>A1 THEN GOTO 9900 450 IF P1=A1 THEN M=TM:GOTO 470 465 T1=PEEK(207):IF T1>33 THEN 6500 470 RESTORE 9000+T1:READ C,N$:RESTORE 9100+C:READ C$:POKE M+A5,PEEK(TOP+5130+C+A1):POSITION A4,A1 475 POKE 82,A4:? "UNITS ORIGIN: CASTLE ";C$:? "UNITS NAME: ";N$:? :? "MOVEMENT: ";PEEK(M+A2) 491 ? "STRENGTH: ";PEEK(M+A3):IF P1=0 THEN ZW=A:A=PEEK(M+A4):GOSUB 9500:RESTORE 9200+TR:READ C$,N$:A=ZW:GOTO 500 495 GOSUB 9500:RESTORE 9200+TR:READ C$,N$:IF A=191 THEN GOSUB 5500 500 ? :? "MORAL ";PEEK(M+A5):? "TERRAIN: ";N$:? :? "ROYAL PURSE: ";PUR:? "SWORD PIECES GATHERED: ";SP:GOSUB 3000:? 501 POKE 82,A2:POSITION 1,18:? "JOYSTICK MOVES CURSOR ** STRIG SELECTS" 502 ? " TACTICAL MAP STRATEGIC MAP RE-SUPPLY BUILD" 503 ? " FORMATION END PHASE BATTLE MODE SAVE GAME";Z 505 T=STICK(A0):POSITION E1,D1:? " " 506 IF T=14 THEN D1=D1-A1:ZW=ZW-A1 507 IF T=13 THEN D1=D1+A1:ZW=ZW+A1 508 IF D1<19 AND E1=A3 THEN D1=19:ZW=A1 509 IF D1<19 AND E1=24 THEN E1=A3:D1=22 510 IF D1>22 AND E1=A3 THEN D1=19:E1=24 511 IF D1>22 AND E1=24 THEN D1=22:ZW=A8 512 POSITION E1,D1:? " ":IF STRIG(A0)=0 THEN 521 513 FOR DP=A1 TO 10:NEXT DP 514 GOTO 505 521 POSITION 3,22:? " ":IF ZW=A1 THEN GOSUB 400:GOTO 140 522 IF ZW=A7 THEN GOSUB 400:TA1=A:POKE TOP+X1+(Y1*50),A:GOTO 11000 523 IF ZW=A6 THEN 7000 525 IF ZW=A2 THEN 12000 527 IF ZW=A3 THEN 4000 528 IF ZW=A4 THEN 4500 529 IF ZW=A5 THEN GOSUB 5000:GOTO 420 530 IF ZW=A8 THEN GOSUB 23100:GOTO 420 540 DIM A$(486),T$(60),M$(50),M1$(123):A$(A1)=" ":A$(486)=" ":OPEN #A3,A4,A0,N$ 560 T=ADR(A$):TMP=T:GOSUB 620:POKE 884,L:POKE 885,H:T=486:GOSUB 620:POKE 888,L:POKE 889,H:POKE 882,A7 570 I=USR(ADR("[UNRECOVERED MACHINE CODE BYTES]"),48):CLOSE #A3:FOR W=A1 TO 50:TEP=TMP+(33+W)*A6 577 RESTORE 6900+W:READ N$:IF N$="WOLFRIDERS" THEN POKE TEP+A2,16:GOTO 579 578 POKE TEP+A2,A10 579 NEXT W:OPEN #A3,A4,A0,"D:CHECK" 600 T=1536:GOSUB 620:POKE 884,L:POKE 885,H:T=256:GOSUB 620:POKE 888,L:POKE 889,H:POKE 882,A7 610 I=USR(ADR("[UNRECOVERED MACHINE CODE BYTES]"),48):CLOSE #A3 615 OPEN #A3,A4,A0,"D:TERRAIN":INPUT #A3,T$:INPUT #A3,M$:INPUT #A3,M1$:CLOSE #A3:RETURN 620 H=INT(T/256):L=INT(T-H*256):RETURN 960 DIM CR(A4):S=16:POKE 694,A0:POKE 702,64:M=PEEK(106):P=PEEK(106)-A5:POKE 106,P:GRAPHICS A0 1120 P=P+A1:OPEN #A3,A4,A0,"D:FANT1.SET":POKE 882,A7:POKE 884,A0:POKE 885,M-A4 1150 POKE 888,A0:POKE 889,A4:A=USR(ADR("[UNRECOVERED MACHINE CODE BYTES]"),48):CLOSE #A3:S$=N$:S$(LEN(S$)+1)=".MAP" 1190 OPEN #A3,A4,A0,S$:GET #A3,W:GET #A3,H:FOR ZW=A0 TO A4:GET #A3,A:CR(ZW)=A:NEXT ZW 1220 B=W*H-4096:Y=INT(B/W):IF Y*W=256 THEN J=J-256:K=K+A1 1380 NEXT I:POKE E+40-A1,87:POKE E+40,J:POKE E+41,K 1400 POKE E+40+A2,64+A1:POKE E+41+A2,A0:POKE E+40+A4,D 1420 B=USR(ADR("[UNRECOVERED MACHINE CODE BYTES]"),R):POKE 882,A7 1460 POKE 884,BL:POKE 885,BH:SI=W*H:BLH=INT(SI/256):BLL=SI-256*BLH 1480 POKE 888,BLL:POKE 889,BLH:B=USR(ADR("[UNRECOVERED MACHINE CODE BYTES]"),48):CLOSE #A3 1510 OPEN #A3,A4,A0,"D:SCROLL.OBJ":POKE 882,A7:POKE 884,A0:POKE 885,D-(S+8) 1540 POKE 888,A6:POKE 889,A0:B=USR(ADR("[UNRECOVERED MACHINE CODE BYTES]"),48):POKE 884,A0:POKE 885,D-(S+8):POKE 888,A0:POKE 889,A2 1580 B=USR(ADR("[UNRECOVERED MACHINE CODE BYTES]"),48):CLOSE #A3:S$="[UNRECOVERED MACHINE CODE BYTES]" 1610 FOR ZW=704 TO 706:POKE ZW,A0:NEXT ZW:POKE 623,A1 1630 A=256*(D-(A8+S)):C=256*224:B=USR(ADR(S$),C+A8*56,A+1200,A8) 1650 B=USR(ADR(S$),C+A8*16,A+1208,A8):B=USR(ADR(S$),C+A8*57,A+1216,A8) 1670 B=USR(ADR(S$),C+A8*41,A+1224,A8):B=USR(ADR(S$),C+A8*41,A+1232,A8) 1690 B=USR(ADR(S$),C+A8*47,A+1240,A8):B=USR(ADR(S$),C+A8*26,A+1456,A8) 1710 B=USR(ADR(S$),C+A8*16,A+1464,A8):B=USR(ADR(S$),C+A8*26,A+1472,A8) 1730 B=USR(ADR(S$),C+A8*16,A+1480,A8):B=USR(ADR(S$),C+A8*26,A+1488,A8) 1750 B=USR(ADR(S$),C+A8*32,A+1496,A8):B=USR(ADR(S$),C+A8*16,A+1720,A8) 1770 B=USR(ADR(S$),C+A8*16,A+1736,A8):B=USR(ADR(S$),C+A8*38,A+1752,A8) 1790 POKE 207,183:POKE 208,D-(S+A4):POKE 205,15:POKE 206,A0:POKE 1783,A0:POKE 1784,A0 1810 B=USR(ADR("[UNRECOVERED MACHINE CODE BYTES]"),A):POKE 106,PEEK(106)-A5:POKE 766,A1:GOTO 110 3000 RESTORE 3050+PEEK(TOP+5200+T1):READ C$:? :? "FORMATION: ";C$ 3015 RESTORE 3060+PEEK(TOP+5300+T1):READ C$:? "BATTLE MODE: ";C$ 3027 ? :? "LOSSES LAST TURN:";PEEK(TOP+5304+T1):RETURN 3051 DATA COLUMN 3052 DATA LINE 3053 DATA OPEN ORDER 3054 DATA SKIRMISH 3061 DATA CHARGE 3062 DATA BOLD ATTACK 3063 DATA CAUTIOUS ATTACK 3064 DATA HOLD AND DEFEND 4000 POSITION 20,22:? " ":POSITION 20,21:? " ":POSITION A2,19 4005 ? "COLUMN LINE OPEN ORDER" 4006 ? "SKIRMISH ":ZW=A1:GOSUB 4610 4035 POKE TOP+5200+T1,ZW:GOTO 420 4500 POSITION 20,22:? " ":POSITION 20,21:? " ":POSITION A2,19 4505 ? "CHARGE BOLD ATTACK CAUTIOUS ATTACK" 4506 ? "HOLD AND DEFEND ":ZW=A1:GOSUB 4610 4530 POKE (TOP+5300+T1),ZW:GOTO 420 4610 T=STICK(A0):POSITION A1,18+ZW:? " " 4611 IF T=14 THEN ZW=ZW-A1 4612 IF T=13 THEN ZW=ZW+A1 4613 IF ZWA4 THEN ZW=A4 4631 POSITION A1,18+ZW:? " " 4632 IF STRIG(A0)=A0 THEN RETURN 4633 FOR DP=1 TO 10:NEXT DP:GOTO 4610 5000 T=ADR(M1$)+(LEN(M1$)-4):GOSUB 620:M1$(65,65)=CHR$(L):M1$(66,66)=CHR$(H) 5001 GRAPHICS 21:SETCOLOR A1,12,A5:SETCOLOR A2,A8,A3:FOR W=A0 TO 45:U=USR(ADR(M1$),(TOP+(W*50)),W):NEXT W 5100 COLOR A1:PLOT X1+12,Y1 5180 IF STRIG(A0)=A0 THEN RETURN 5181 IF STICK(A0)<>15 THEN GOSUB 5185 5182 COLOR A2:PLOT X1+12,Y1:GOTO 5100 5185 COLOR A2:W=A0 5186 PLOT 45,17:PLOT 13,24:PLOT 33,13:PLOT 53,11:PLOT 36,1:PLOT 31,23:PLOT 15,32:PLOT 18,42:PLOT 43,23:PLOT 15,4 5188 PLOT 16,A4:PLOT 17,A4:PLOT 44,A10:PLOT 40,A9:PLOT 14,12:PLOT 23,19:PLOT 22,A9 5189 IF W=A0 THEN W=A1:COLOR A1:GOTO 5191 5190 GOTO 5185 5191 IF STICK(A0)=15 THEN RETURN 5290 GOTO 5186 5500 RESTORE 5540:FOR ZW=A1 TO 14 5520 READ E1,D1:IF X1<>E1 AND Y1<>D1 THEN 5530 5525 IF PEEK(TOP+5100+ZW)=A3 THEN RETURN 5526 IF PEEK(TOP+5100+ZW)=A1 THEN SP=SP+A1:POKE TOP+5100+ZW,A3:RETURN 5530 NEXT ZW:RETURN 5540 DATA 2,12,10,9,11,19,1,24,3,32,6,42,9,23,31,23,33,17,32,10,41,11,26,9,25,1,21,13 5900 DATA 33,17,1,24,21,13,41,11,25,1,19,23,3,32,6,42,31,23,5,4,32,10,26,9,2,12,11,19,10,9 6000 GOSUB 20000:FOR W=A0 TO 33:TEP=TMP+(W*A6) 6010 IF W>18 THEN MV=A5:GOTO 6020 6012 MV=A0:M=PEEK(TOP+5200+W) 6020 IF M=A1 THEN MV=MV+A4 6025 IF M=A2 THEN MV=MV+A3 6030 IF M=A3 THEN MV=MV+A3 6035 IF M=A4 THEN MV=MV+A2 6040 M=PEEK(TOP+5300+W) 6045 IF M=A1 THEN MV=MV+A3 6050 IF M=A2 THEN MV=MV+A2 6055 IF M=A3 THEN MV=MV+A3 6060 IF M=A4 THEN MV=A0 6070 IF MV<=A0 THEN MV=A0 6073 IF W=A0 THEN MV=MV+22 6075 POKE TEP+A2,MV:NEXT W:A=A0:PH=A1:E=184:B=E:Y1=0:X1=Y1:GOTO 131 6500 GOSUB 6600:POSITION A3,A1:? C$:POSITION A3,A2:? N$ 6502 ZW=A:A=PEEK(M+A4):GOSUB 9500:RESTORE 9200+TR:READ C$,N$:A=ZW 6503 POSITION A3,A5:? "TERRAIN: ";N$ 6505 POSITION A3,A7:? "STRENGTH:";PEEK(M+A3) 6510 POSITION A3,A8:? "MORAL:";PEEK(M+A5) 6520 IF STRIG(A0)=A0 THEN GOSUB 400:GOTO 140 6530 GOTO 6520 6600 IF A=211 THEN C$="THE DARK LORDS EYES":N$="ONE OF THE NAMELESS SIX":RETURN 6605 IF A=215 THEN C$="THE DARK LORDS SERVANTS":N$="MURUKS":RETURN 6610 IF A=216 THEN C$="THE DARK LORDS MERCENARYS":N$="WAR RIDERS":RETURN 6615 IF A=250 THEN C$="THE DARK LORDS FORCES":N$="STOLEN FISHING BOATS":RETURN 6620 IF A=249 THEN C$="THE DARK LORD":N$="MAY THE GODS BE MERCIFUL":RETURN 6625 RETURN 7000 IF PUR<=1000 THEN 420 7001 IF A<>A0 THEN GOTO 420 7005 PUR=PUR-1000 7010 POKE TM+A4,160:IF P1=A1 THEN A=160 7020 GOTO 420 7500 RESTORE 7600 7505 FOR W=A0 TO 14:READ X,Y:IF PEEK(TOP+X+Y*50)=215 THEN POKE TOP+5020+W,A1 7506 IF PEEK(TOP+X+Y*50)<>215 THEN POKE TOP+5020+W,A0 7510 NEXT W:RETURN 7600 DATA 5,4,10,9,2,12,11,19,1,24,19,23,3,32,6,42,31,23,33,17,32,10,28,9,21,13,41,11,24,1 9000 DATA 0,ALYRAHYM 9001 DATA 0,ARWAIN 9002 DATA 0,MEN AT ARMS 9003 DATA 1,ROYAL GUARD 9004 DATA 1,MEN AT ARMS 9005 DATA 2,LIGHT INFANTRY 9006 DATA 3,MARINERS 9007 DATA 4,ROYAL FLEET 9008 DATA 5,ARCHERS 9009 DATA 6,SHIP OF THE LINE 9010 DATA 7,GUARD INFANTRY 9011 DATA 7,MEN AT ARMS 9012 DATA 8,VILLAGE MILITIA 9013 DATA 9,WOODSMEN 9014 DATA 12,MEN AT ARMS 9015 DATA 11,WARSHIPS 9016 DATA 13,GUARD 9017 DATA 13,MEN AT ARMS 9018 DATA 0,OMIAS 9019 DATA 0,MOUNTED LANCERS 9020 DATA 2,CRESTED KNIGHTS 9021 DATA 5,DUKE OF CRAGSKEEP 9022 DATA 6,WARSHIP 9023 DATA 7,EARL OF MOORSTONE 9024 DATA 7,LIGHT CAVALRY 9025 DATA 8,HEAVY KNIGHTS 9026 DATA 9,DRANATHOR 9027 DATA 12,HARDING 9028 DATA 10,HEAVY KNIGHTS 9029 DATA 10,EARL OF WOODSHIRE 9030 DATA 14,WARRIORS OF THE SEA 9031 DATA 14,RIDERS OF THE EARTH 9032 DATA 14,RIDERS OF THE WIND 9033 DATA 14,RIDERS OF THE FIRE 9100 DATA GOLDEN HALL,5,4 9101 DATA MOUNTAIN KEEP,9,10 9102 DATA SILVER HALL,2,12 9103 DATA FOGSTONE,11,19 9104 DATA EASTPORT,1,24 9105 DATA CRAGSKEEP,19,23 9106 DATA GREYISLE,3,32 9107 DATA MOORSTONE,6,42 9108 DATA SHADOW ROCK,31,23 9109 DATA NORTH WIND,33,17 9110 DATA WOODSHIRE,32,10 9111 DATA TRENTMOOR,28,9 9112 DATA SALTMARSH,21,13 9113 DATA BRIDGEFORD,41,11 9114 DATA BORDER KEEP,24,1 9200 DATA 2,FOREST 9201 DATA 4,RIVER 9202 DATA 5,MOUNTAINS 9203 DATA 4,MARSH 9204 DATA 1,FIELD 9205 DATA 1,CITY 9206 DATA 1,COAST 9207 DATA 1,OPEN SEA 9300 DATA 8,8 9400 GOSUB 390:A=E:E=184:P1=A0:B=E:GOTO 130 9500 TR=USR(ADR(M$),ADR(T$),A):IF TR>8 THEN TR=A6 9502 RETURN 9900 IF A=148 OR A=149 OR A=150 OR A=142 THEN RESTORE 9100:GOTO 9905 9901 IF M=A1 THEN GOSUB 9500:RESTORE 9200+TR:READ C$,N$:? "TERRAIN: ";N$:GOTO 9950 9905 IF A>142 THEN RESTORE 9100:W=-1:GOTO 9945 9910 RESTORE 9930:FOR W=A1 TO 15:READ D1,E1:IF D1=X1 AND E1=Y1 THEN RESTORE 9100+W:GOTO 9945 9912 NEXT W 9930 DATA 9,10,2,12,11,19,1,24,19,23,3,32,6,42,31,23,33,17,32,10,28,9,21,13,41,11,24,1 9945 READ N$:? "CASTLE ";N$:? :? "MORALE: ";PEEK(TOP+5130+W+A1) 9950 IF STRIG(A0)=A0 THEN GOSUB 400:GOTO 140 9955 GOTO 9950 10000 GRAPHICS A0:SETCOLOR A2,A0,15:POKE 752,A1:GOSUB 7500 10005 ? " ** THE ROYAL TAX COLLECTOR **":RESTORE 9100 10012 ? " " 10013 ? "| | | |" 10014 ? "| MOR | |" 10015 FOR W=A1 TO 15:? "| |":NEXT W 10016 ? " " 10017 POSITION 30,A1:? " " 10018 POSITION 30,A2:? "|ROYAL |" 10019 POSITION 30,A3:? "|PURSE:|" 10020 POSITION 30,A4:? "|$ |":POSITION 32,A4:? INT(PUR) 10021 POSITION 30,A5:? " " 10022 POSITION A2,21:? "SELECT TO VIEW MAP USE JOYSTICK TO" 10024 POSITION A2,22:? "OPTION TO END PHASE | MOVE CURSOR." 10030 FOR W=A1 TO 15:READ C$:POSITION A3,W+A3:? C$:POSITION 17,W+A3:? PEEK(TOP+5130+W);"%":NEXT W 10031 FOR W=A1 TO 15:IF PEEK(TOP+5020+W)=1 THEN POKE (TOP+5000+W),1:POSITION 23,W+3:? " OC ":NEXT W 10032 FOR W=A1 TO 15:IF PEEK(TOP+5000+W)=1 THEN POSITION 23,W+3:? " " 10033 IF PEEK(TOP+5000+W)=2 THEN POSITION 23,W+3:? " 0$ " 10034 NEXT W 10036 X=22:Y=A4 10039 POSITION X,Y:? " ":AMT=A0 10040 T=STICK(A0) 10041 IF STRIG(A0)=A0 AND PEEK(TOP+5000+Y-A3)=A0 THEN 10053 10042 IF T=14 THEN Y=Y-A1 10043 IF PEEK(53279)=A3 THEN GOSUB 400:RETURN 10044 IF T=13 THEN Y=Y+A1 10045 IF PEEK(53279)=A5 THEN GOSUB 5000:GOTO 10000 10046 IF Y18 THEN Y=18 10050 POSITION X,Y:? " " 10052 GOTO 10039 10053 FOR W=A1 TO 20:NEXT W 10054 T=STICK(A0) 10055 IF PEEK(53279)=A3 THEN GOSUB 400:RETURN 10056 IF T=11 THEN AMT=AMT-20 10057 IF PEEK(53279)=A5 THEN GOSUB 5000:GOTO 10000 10058 IF T=A7 THEN AMT=AMT+20 10060 IF AMT1000 THEN AMT=1000 10075 POSITION X+A1,Y:? AMT;" " 10077 IF STRIG(A0)=A0 THEN 10090 10079 GOTO 10054 10090 CAS=Y-A3 10128 IF INT(1000*RND(A0))>=AMT-100 THEN 10145 10130 TAMT=AMT:AMT=AMT-TAMT 10132 C$="THE PEASANTS WON'T PAY!!!":GOSUB 10600:POSITION A1,20:? " " 10135 IF CT<=A0 THEN CT=A1 10138 MOR1=PEEK(TOP+5130+CAS):MOR1=MOR1-(A10+INT(5*RND(0))):IF MOR1YY THEN Y=Y-A1 11060 IF X>XX THEN X=X-A1 11065 IF Y1 THEN X=TX:Y=TY:T=TA:GOSUB 11400 11077 T=PEEK(TOP+X+Y*50):A=T:GOSUB 9500:IF TR=A6 OR TR=A7 THEN TFG=250:TS1=A1 11078 RESTORE 9200+TR:READ C$,N$:IF (MM-C$)39 THEN GOSUB 14000 11099 IF W<47 THEN 11001 11100 GOTO 6000 11200 IF TR>A7 THEN GOTO 11250 11250 X=TX:Y=TY:A=TA:GOSUB 11400:GOTO 11080 11400 RESTORE 80:FOR B=A1 TO A8:READ D1,E1:M1=USR(1536,ADR(A$),X+D1,Y+E1) 11405 IF M1=A1 THEN X=X+D1:Y=Y+E1:RETURN 11408 NEXT B 11420 RETURN 11500 DATA 6,42,3,32,1,24,2,12 11501 DATA 3,32,19,23,11,19,9,10 11502 DATA 19,23,21,13,9,10,28,9 11503 DATA 31,23,33,17,33,17,23,1 11504 DATA 33,17,10,10,32,10,28,9 11505 DATA 48,10,40,11,24,1,4,4 11506 DATA 25,25,4,4,5,4 11600 RESTORE 75:FOR ZW=A1 TO A8:READ D1,E1 11610 M1=USR(1536,ADR(A$),X+D1,Y+E1) 11615 IF M1=A1 THEN 11625 11620 T1=PEEK(207):IF T1<34 THEN POP:GOTO 11086 11625 NEXT ZW:RETURN 11900 TEP=TMP+((33+W)*A6):X=PEEK(TEP):Y=PEEK(TEP+A1):MM=PEEK(TEP+A2):RETURN 11902 IF PEEK(TOP+5+4*50)<>215 THEN RETURN 11903 GRAPHICS 2+16:? #6;" goldenhall":? #6;" has fallen" 11904 ? #6;? #6;? #6;" PRESS OPTION ":? #6;" TO VIEW THE MAP" 11905 IF PEEK(53279)=3 THEN GOSUB 400 11906 IF PEEK(53279)=5 THEN GOSUB 5000 11907 GOTO 11905 11950 GRAPHICS 2+16:? #6;" the dark lord":? #6;" has fallen" 11955 ? #6;? #6;? #6;" PRESS OPTION ":? #6;" TO VIEW THE MAP" 11957 GOTO 11905 12000 POSITION A2,19:IF PUR<100 THEN GOTO 420 12002 ? "AMOUNT " 12003 ? " ":ZW=100 12004 ? " ":POSITION 20,22:? " ":POSITION 20,21:? " " 12005 T=STICK(A0):POSITION A2,21:? "$";ZW;" " 12006 IF T=11 THEN ZW=ZW-A10 12007 IF T=A7 THEN ZW=ZW+A10 12008 IF ZW>PUR THEN ZW=PUR 12009 IF ZW<100 THEN ZW=100 12020 IF STRIG(A0)=A0 THEN 12025 12023 GOTO 12005 12025 PUR=PUR-ZW 12030 STR=INT(ZW/10-INT(A5*RND(A0))) 12036 STR1=PEEK(M+A3):STR1=STR1+STR:IF STR1>100 THEN STR1=100 12041 POKE (M+A3),STR1 12047 STR=A0:STR1=A0 12050 GOTO 420 14000 W=W+A1:GOSUB 11900:TFG=PEEK(TOP+X+Y*50):IF W=47 THEN XX=X:YY=Y:GOTO 14006 14001 IF TEP+A3=0 THEN 14000 14002 GOSUB 14500 14005 M1=USR(1536,ADR(A$),XX,YY):IF M1>A1 THEN 14002 14006 T=PEEK(TEP+A4) 14007 POKE TOP+X+(Y*50),T:TX=X:TY=Y:TA=T 14010 IF Y>YY THEN Y=Y-A1 14015 IF X>XX THEN X=X-A1 14020 IF YXX AND Y<>YY THEN 14007 14100 POKE TEP+A4,T:POKE TEP,X:POKE TEP+A1,Y 14105 IF W>46 THEN RETURN 14110 GOTO 14000 14500 E1=PEEK(TMP)-INT(10*RND(A0)):D1=PEEK(TMP)+INT(10*RND(A0)):IF INT(100*RND(A0))>50 THEN XX=D1:GOTO 14502 14501 XX=E1 14502 E1=PEEK(TMP+A1)-INT(10*RND(A0)):D1=PEEK(TMP+A1)+INT(10*RND(A0)):IF INT(100*RND(A0))>50 THEN YY=D1:GOTO 14505 14503 YY=E1 14505 IF XX49 THEN XX=49 14508 IF YY>45 THEN YY=45 14510 RETURN 15000 TRAP 23000:X2=PEEK(M1):Y2=PEEK(M1+A1) 15505 A=PEEK(TEP+A4):GOSUB 9500:MT=TR 15510 A=PEEK(M1+A4):GOSUB 9500:TT=TR 15515 F=PEEK(TOP+5200+T1) 15520 B=PEEK(TOP+5300+T1) 15525 TFG=PEEK(TOP+X2+Y2*50):FOR ZZ=A1 TO 5:SOUND A0,200,A0,12 15526 POKE TOP+X2+Y2*50,PEEK(M1+A4):SOUND A0,A0,A0,A0:POKE TOP+X2+Y2*50,TFG 15527 NEXT ZZ:TFG=PEEK(TOP+X+Y*50):FOR Z=A1 TO 5:SOUND A0,100,A0,12:POKE TOP+X+Y*50,PEEK(TEP+A4) 15528 SOUND A0,A0,A0,A0:POKE TOP+X+Y*50,TFG:NEXT ZZ 15535 MF=A1:MB=A1:HP=PEEK(M1+A3):MHP=PEEK(TEP+A3) 15540 DP=INT((PEEK(M1+A3)+PEEK(M1+A5))/A7) 15541 MDP=INT((PEEK(TEP+A3)+PEEK(TEP+A5))/11) 15550 RESTORE 16000+TT*A10+B-A1:POKE 182,F-A1:READ C 15555 RESTORE 16000+MT*A10+MB-A1:POKE 182,MF:READ MC 15565 RESTORE 16080:POKE 182,TT:READ A 15566 MDP=(MDP+MC-C)-A 15570 RESTORE 16080:POKE 182,MT:READ A 15571 DP=(DP+C-MC)-A 15572 HP=HP-MDP:MHP=MHP-DP 15580 A=PEEK(TOP+5350+T1):A=A+MDP:POKE TOP+5350+T1,A 15585 IF HPDP AND HP>A0 THEN GOSUB 15700:RETURN 15600 REM : IF DP>MDP THEN GOSUB 15800:RETURN 15605 RETURN 15700 MT=PEEK(TOP+X2+Y2*50):IF MT=186 OR MT=250 THEN RETURN 15701 GOSUB 15900:X2=X2-A1:Y2=Y2-A1 15705 A=USR(1536,ADR(A$),X2,Y2):IF A>A1 THEN POKE TOP+5300+T1,A4:RETURN 15706 A=PEEK(TOP+X2+Y2*50):GOSUB 9500:IF TR=A6 OR TR=A7 THEN RETURN 15709 T=PEEK(M1+A4):POKE M1+A4,PEEK(TOP+X2+Y2*50):POKE M1,X2:POKE M1+A1,Y2 15710 POKE TOP+X2+Y2*50,MT:MT=PEEK(TOP+X+Y*50):POKE TOP+(X2+A1)+(Y2+A1)*50,MT 15715 POKE TOP+X+(Y*50),PEEK(TEP+A4):X=X2+A1:Y=Y2+A1:POKE TEP,X:POKE TEP+A1,Y 15720 RETURN 15800 MT=PEEK(TOP+X+Y*50):IF MT=186 OR MT=250 THEN RETURN 15801 GOSUB 15900:WT=PEEK(TOP+X2+Y2*50) 15805 A=USR(1536,ADR(A$),X+A1,Y+A1):IF A>A1 THEN MHP=A0:POP:GOTO 15593 15806 A=PEEK(TOP+(X+A1)+(Y+A1)*50):GOSUB 9500:IF TR=A6 OR TR=A7 THEN RETURN 15809 POKE TOP+X+Y*50,WT:POKE M1,X:POKE M1+A1,Y:X=X+A1:Y=Y+A1:T=PEEK(TOP+X+Y*50):TR=PEEK(TEP+A4):POKE TEP+A4,T 15810 POKE TOP+X+Y*50,MT:POKE TOP+X2+Y2*50,PEEK(M1+A4):POKE M1+A4,TR 15820 RETURN 15900 IF MT=186 OR MT=250 THEN POP:RETURN 15905 RETURN 16000 DATA -4,-3,2,-4 16001 DATA -3,-2,4,-2 16002 DATA -2,-1,5,0 16003 DATA -1,0,3,-4 16010 DATA -4,-2,4,-4 16011 DATA -3,-1,3,-2 16012 DATA -2,0,2,2 16013 DATA -1,1,1,-4 16020 DATA 5,4,3,-4 16021 DATA 4,3,2,1 16022 DATA 3,2,1,0 16023 DATA 2,1,0,-4 16030 DATA -6,-5,-4,-5 16031 DATA -5,-4,-3,-4 16032 DATA -4,-3,-2,1 16033 DATA -3,-2,-1,-1 16040 DATA -2,5,4,-4 16041 DATA -3,3,2,-2 16042 DATA -4,1,1,4 16043 DATA -5,-3,-2,-4 16050 DATA 1,-1,-2,-4 16051 DATA 3,0,-1,-2 16052 DATA 4,1,0,-1 16053 DATA 5,4,3,-4 16060 DATA 2,2,2,2 16061 DATA 2,2,2,2 16062 DATA 2,2,2,2 16063 DATA 2,2,2,2 16070 DATA 2,2,2,2 16071 DATA 2,2,2,2 16072 DATA 2,2,2,2 16073 DATA 2,2,2,2 16080 DATA -1,0,-2,2,1,-4,0,0 20000 FOR W=34 TO 79 20002 TEP=TMP+(W*A6):X=PEEK(TEP):Y=PEEK(TEP+A1) 20003 IF PEEK(TEP+A3)=A0 THEN 20035 20005 PP=A0:FOR E=A1 TO A8 20010 RESTORE 75:POKE 182,PP:READ D1,E1:PP=PP+A2 20020 M1=USR(1536,ADR(A$),X+D1,Y+E1) 20021 IF M1=A1 THEN 20030 20025 T1=PEEK(207):IF T1<34 THEN GOSUB 15000 20030 NEXT E 20035 NEXT W:RETURN 22000 RESTORE 6900+W:READ N$:IF N$="WOLFRIDERS" THEN TFG=216:TS1=A0:RETURN 22005 TFG=215:TS1=A0:RETURN 22500 RESTORE 6900+W:READ N$:IF N$="WOLFRIDERS" THEN POKE TEP+A2,12:RETURN 22505 POKE TEP+A2,8:RETURN 23000 GRAPHICS 0:? "ERROR #";PEEK(195);" AT LINE ";PEEK(186)+PEEK(187)*256:STOP 23100 GRAPHICS A0:SETCOLOR A2,A0,15:? "NAME OF FILE ";:INPUT S$:N$="D:":N$(LEN(N$)+A1)=S$:OPEN #A3,A8,A0,N$ 23120 T=ADR(A$):GOSUB 620:POKE 884,L:POKE 885,H:T=486:GOSUB 620:POKE 888,L:POKE 889,H:POKE 882,11 23130 I=USR(ADR("[UNRECOVERED MACHINE CODE BYTES]"),48):CLOSE #A3 23135 S$=N$:S$(LEN(S$)+A1)=".SK":OPEN #A3,A8,A0,S$:T=PEEK(10):PUT #A3,T:CLOSE #A3 23140 S$=N$:S$(LEN(S$)+A1)=".JK":OPEN #A3,A8,A0,S$:N$(LEN(N$)+A1)=".MAP" 23145 T=TOP+5100:GOSUB 620:POKE 884,L:POKE 885,H:POKE 888,44:POKE 889,A1:POKE 882,11 23160 I=USR(ADR("[UNRECOVERED MACHINE CODE BYTES]"),48):T=PUR:GOSUB 620:PUT #A3,L:PUT #A3,H:PUT #A3,SP:CLOSE #A3 23205 POKE TOP+X1+(Y1*50),A:OPEN #A3,A8,A0,N$:PUT #A3,50:PUT #A3,46:FOR ZW=A0 TO A4:T=CR(ZW):PUT #A3,T:NEXT ZW 23240 POKE 884,BL:POKE 885,BH:POKE 888,BLL:POKE 889,BLH:POKE 882,11 23255 I=USR(ADR("[UNRECOVERED MACHINE CODE BYTES]"),48):CLOSE #A3:POKE TOP+X1+(Y1*50),E:RETURN