Home » Archimedes archive » Acorn User » AU 1997-08 A.adf » !IronLord/Iron1

!IronLord/Iron1

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Acorn User » AU 1997-08 A.adf
Filename: !IronLord/Iron1
Read OK:
File size: 6385 bytes
Load address: FFFFFB46
Exec address: 1A16F4FB
File contents
   10REM >:IronLord.!IronLord.Iron1
   20REM (C) 1990 UBI soft.
   30REM Archimedes version by Cygnus Software Engineering Ltd.
   40:
   50ON ERROR PROCerror:END
   60:
   70space%=&92C:DIM MS%(6,3),SP%(6,4),MV%(6,6),OB%(18),CST%(22),code% space%,CSP% &4D4C,PSP% &5960,SSP% &280,RT% &1B04,PDT% &AD5,TXT% &1281,MAP% &7D00,TBL% &D1E
   80!PSP%=&5960
   90!SSP%=&280:SSP%!4=0:SSP%!8=16:SSP%!12=16
  100!CSP%=&4D4C:OSCLI"IronLoad <IronLord$Dir>.MainSpr "+STR$~(CSP%+4)
  110OSCLI"IronLoad <IronLord$Dir>.Map "+STR$~MAP%
  120OSCLI"IronLoad <IronLord$Dir>.Routes "+STR$~RT%
  130OSCLI"Load <IronLord$Dir>.Text "+STR$~TXT%
  140OSCLI"Load <IronLord$Dir>.Tables "+STR$~TBL%
  150OSCLI"Load <IronLord$Dir>.PlaceData "+STR$~PDT%
  160RESTORE 590:FOR I%=0 TO 6:FOR J%=0 TO 3:READ MS%(I%,J%):NEXT:FOR J%=0 TO 4:READ SP%(I%,J%):NEXT:FOR J%=0 TO 6:READ MV%(I%,J%):NEXT:NEXT:FOR I%=0 TO 22:READ CST%(I%):NEXT
  170left%=225:right%=194:down%=232:up%=207:fire%=201:U%=FALSE:nmt%=TRUE
  180SYS"OS_Module",18,"IronLordSupport" TO ,,,,mssa%:mssa%+=&204
  190SYS"Sound_Speaker",0 TOiss%:SYS"Sound_Volume",0 TOvol%:vol%-=64
  200PROCasm
  210:
  220REPEAT
  230 CASE Z% OF
  240  WHEN 0:Z%=1:B%=INKEY(500):*IronFadeOut
  250  WHEN 1:PROCmap
  260  WHEN 2:PROCplace
  270  WHEN 3:PROCperson
  280  WHEN 4:ON ERROR OFF:CHAIN"<IronLord$Dir>.Iron2"
  290  WHEN 5:ON ERROR OFF:CHAIN"<IronLord$Dir>.Iron3"
  300  WHEN 6:PROCtower
  310  WHEN 7:ON ERROR OFF:CHAIN"<IronLord$Dir>.Iron4"
  320  WHEN 8:ON ERROR OFF:CHAIN"<IronLord$Dir>.Iron5"
  330  WHEN 9:ON ERROR OFF:CHAIN"<IronLord$Dir>.Iron7"
  340  WHEN 10:ON ERROR OFF:CHAIN"<IronLord$Dir>.Iron6"
  350 ENDCASE
  360UNTIL FALSE
  370END
  380:
  390DEF PROCmap
  400IF nmt% nmt%=FALSE:*IronTuneOn 0
  410!from=MAP%:!to=S%:CALL copy:*IronFadeIn 14
  420MOUSE TO SP%(V%,0),SP%(V%,1):MOUSE ON 2:OV%=V%:MV%=-1
  430REPEAT:PROCrel_mouse
  440REPEAT:IFINKEY(-114) PROCsound_control
  450MOUSE MX%,MY%,B%:UNTILB%<>0
  460FOR I%=0 TO 6:IF MX%>MS%(I%,0) AND MY%>MS%(I%,1) AND MX%<MS%(I%,2) AND MY%<MS%(I%,3) THEN V%=I%:MV%=MV%(OV%,V%)
  470NEXT:UNTIL MV%<>-1:MOUSE OFF:PROCrel_mouse
  480IF MV%>=0 THEN
  490 A%=RT%+MV%:B%=!A%:A%+=4
  500 IF B%=4 FOR I%=0 TO 7:SYS"OS_SpriteOp",303,CSP%,STR$I%:NEXT
  510 !bank=2:!to=T%:SYS"OS_Byte",112,2:CALL gallop
  520 IF B%=4 FOR I%=0 TO 7:SYS"OS_SpriteOp",303,CSP%,STR$I%:NEXT
  530ENDIF:*IronFadeOut
  540SYS"OS_Byte",112,1:SYS"OS_Byte",113,1:IF V%=2 OR V%=4 Z%=3 ELSE Z%=2:A%=SP%(V%,2):B%=SP%(V%,3):C%=SP%(V%,4):IF MV%>=0 U%=TRUE
  550IF Z%<>2 nmt%=TRUE:*IronTuneOff
  560ENDPROC
  570:
  580REM Location data
  590DATA 784,280,900,420,820,308,48,332,&5C,   -2,0,&130,-1,-1,-1,-1
  600DATA 336,68,464,180,436,76,680,28,&10,     &220,-2,&344,&44C,-1,-1,-1
  610DATA 880,0,988,88,888,48,0,0,0,            &514,&600,-2,-1,-1,-1,-1
  620DATA 0,280,104,360,56,296,928,264,&FC,     -1,&710,-1,-2,&7D0,&8A0,&9D8
  630DATA 60,508,176,588,132,520,0,0,0,         -1,-1,-1,&CBC,-2,&DAC,&E78
  640DATA 456,500,572,588,488,540,28,356,&5C,   -1,-1,-1,&10DC,&120C,-2,&12CC
  650DATA 1020,616,1192,732,1180,628,660,36,&10,-1,-1,-1,&1450,&1734,&198C,-2
  660REM Cost data
  670DATA 0,0,0,0,0,0,150,60,0,0,0,10,23,16,25,17,12,24,5,3,19,3,5
  680:
  690DEF PROCmouse
  700PROCrel_mouse:REPEAT:MOUSE MX%,MY%,B%:UNTIL B%<>0:ENDPROC
  710:
  720DEF PROCrel_mouse:*FX 21,9
  730REPEAT:MOUSE MX%,MY%,B%:UNTIL B%=0:ENDPROC
  740:
  750DEF PROCsound_control
  760RESTORE4420:PROCrect(340,288,600,240,FALSE):GCOL0:MOVE472,496:PRINT"Music":RECTANGLE648,460,104,44:MOVE408,444:PRINT"Speaker":RECTANGLE648,408,104,44:MOVE440,392:PRINT"Volume":RECTANGLE648,356,256,44:MOVE576,340:PRINT"Exit":RECTANGLE564,304,148,44:PROConoff(496,!mssa%):PROConoff(444,iss%=2):PROCdisp_vol
  770REPEAT:PROCmouse
  780IFMX%>648ANDMX%<752 THEN
  790 IFMY%>460ANDMY%<504 !mssa%=NOT !mssa%:mssa%!44=0:PROConoff(496,!mssa%)
  800 IFMY%>408ANDMY%<452 iss%=iss% EOR3:SYS"Sound_Speaker",iss%:PROConoff(444,iss%=2)
  810ENDIF
  820IFMX%>640ANDMX%<900ANDMY%>356ANDMY%<400THEN
  830 MOUSE RECTANGLE 644,356,252,44
  840 REPEAT:MOUSE MX%,MY%,B%:vol%=(MX%-644)/4:PROCdisp_vol:UNTILB%=0
  850 SYS"Sound_Volume",vol%+64:MOUSE RECTANGLE 0,0,1279,799
  860ENDIF
  870UNTILMX%>596ANDMX%<704ANDMY%>304ANDMY%<348
  880CALLcopy:PROCrel_mouse
  890ENDPROC
  900:
  910DEF PROConoff(oy%,of%):GCOL6:RECTANGLEFILL652,oy%-32,96,32:GCOL0
  920IFof% MOVE672,oy%:PRINT"On" ELSEMOVE656,oy%:PRINT"Off"
  930ENDPROC
  940:
  950DEF PROCdisp_vol
  960IFvol%>0 GCOL4:RECTANGLEFILL652,360,vol%*4-4,36
  970IFvol%<63GCOL6:RECTANGLEFILL652+vol%*4,360,248-vol%*4,36
  980ENDPROC
  990:
 1000DEF PROCplace
 1010GCOL128:CLG:GCOL11:RECTANGLE 8,0,1271,795:RECTANGLE 12,4,1263,787:POINT 4,0:MOVE 660,8:DRAW 660,788:MOVE 664,8:DRAW 664,788:RECTANGLE FILL 668,352,600,16:GCOL12:MOVE 4,4:DRAW 4,799:DRAW 1279,799:MOVE 16,8:DRAW 656,8:DRAW 656,788
 1020RESTORE 4380:PROCrect(672,374,592,408,TRUE):RESTORE 4380:PROCrect(672,12,592,332,TRUE):RESTORE 4390:PROCrect(784,432,372,288,FALSE)
 1030SYS"OS_SpriteOp",290,CSP%,"w",692,400:SYS"OS_SpriteOp",290,CSP%,"s",784,378:SYS"OS_SpriteOp",290,CSP%,"e",1160,396:SYS"OS_SpriteOp",290,CSP%,"n",784,724
 1040V$=STR$V%:OSCLI"IronLoad <IronLord$Dir>.Picture."+V$+" "+STR$~(T%+2):CALL loadpic:OSCLI"IronLoad <IronLord$Dir>.Sprites."+V$+" "+STR$~(PSP%+4)
 1050IFV%=0 G%=0:PD%=0 ELSEIFV%=1 G%=&18A:PD%=&120 ELSEIFV%=3 G%=&5B4:PD%=&3FC ELSEIFV%=5 G%=&7F6:PD%=&698 ELSEG%=&B28:PD%=&880
 1060G%+=TBL%:PD%+=PDT%:SYS"OS_SpriteOp",265,SSP%:CALL drtbl
 1070IF nmt% nmt%=FALSE:*IronTuneOn 0
 1080GCOL0:GCOL135:N%=?PD%:Y%=176+N%*16:D%=PD%+1:FORI%=1TON%:MOVE968-16*LEN$D%,Y%:PRINT$D%:D%+=(1+LEN$D%):Y%-=32:NEXT:OSCLI"IronFadeIn "+V$
 1090IF(D% AND 3)<>0 D%+=(4-(D% AND 3))
 1100IF U% ON V%+1 PROCin0,PROCin1,,PROCin3,,PROCin5,PROCin6
 1110!txt=D%+(4*!D%)+4:A%=USR(move):Z%=(A%>>5)AND 31:V%=A% AND 31:U%=FALSE:GCOL128
 1120IF Z%=1 AND ?(HIMEM+&15F)=1 THEN
 1130 IF ?(HIMEM+&15E)<5 R%=3 ELSE R%=20
 1140 IF RND(R%)=1 THEN
 1150  RESTORE 4380:PROCrect(304,228,672,344,FALSE):WW%=19:WXC%=640:WYC%=400:GCOL0
 1160  IF ?(HIMEM+1)=0 THEN
 1170   PROCwwpr("Before you can mount your horse an assassin leaps out and blocks the way. He reaches for his sword, and you do the same ..."):Z%=7
 1180  ELSE PROCwwpr("Before you can mount your horse an assassin leaps out and blocks the way. As you have no sword you are instantly slain."):Z%=9
 1190  ENDIF:PROCmouse
 1200 ENDIF
 1210ENDIF:*IronFadeOut
 1220IF Z%<>1 nmt%=TRUE:*IronTuneOff
 1230ENDPROC
 1240:
 1250DEF PROCin0
 1260VDU 24,72;0;368;796;:I%=0:J%=PSP%+16:K%=PSP%+&B30
 1270FORX%=-8TO372STEP4
 1280SYS"OS_SpriteOp",272,SSP%,"S",0,X%,268,X%+76,316
 1290SYS"OS_SpriteOp",546,PSP%,J%,X%,268,8
 1300SYS"OS_SpriteOp",546,PSP%,K%,72,264,8
 1310I%=(I%+1)MOD8:J%=PSP%+16+I%*&164:WAIT:WAIT
 1320SYS"OS_SpriteOp",546,SSP%,SSP%+16,X%,268,0:NEXT
 1330VDU 24,0;0;1279;799;:ENDPROC
 1340:
 1350DEF PROCin1
 1360VDU 24,20;12;228;796;:I%=0:Y%=-60:FOR X%=-96 TO 236 STEP 8
 1370SYS"OS_SpriteOp",272,SSP%,"S",0,X%,Y%,X%+44,Y%+56
 1380SYS"OS_SpriteOp",546,PSP%,PSP%+16+I%*&11C,X%,Y%,8
 1390WAIT:WAIT
 1400SYS"OS_SpriteOp",546,SSP%,SSP%+16,X%,Y%,0:I%=(I%+1)MOD 8
 1410SYS"OS_SpriteOp",546,PSP%,PSP%+16+I%*&11C,X%,Y%,8
 1420WAIT:WAIT
 1430SYS"OS_SpriteOp",546,SSP%,SSP%+16,X%,Y%,0:Y%+=4:I%=(I%+1)MOD 8:NEXT
 1440VDU 24,0;0;1279;799;:ENDPROC
 1450:
 1460DEF PROCin3
 1470VDU 24,16;0;364;796;:I%=0:J%=PSP%+16:K%=PSP%+&B30
 1480FORX%=-64TO368STEP4
 1490SYS"OS_SpriteOp",272,SSP%,"S",0,X%,320,X%+76,368
 1500SYS"OS_SpriteOp",546,PSP%,J%,X%,320,8
 1510SYS"OS_SpriteOp",546,PSP%,K%,248,320,8
 1520I%=(I%+1)MOD8:J%=PSP%+16+I%*&164:WAIT:WAIT
 1530SYS"OS_SpriteOp",546,SSP%,SSP%+16,X%,320:NEXT
 1540VDU 24,0;0;1279;799;:ENDPROC
 1550:
 1560DEF PROCin5
 1570VDU 24,84;0;240;796;:I%=0:J%=PSP%+16:K%=PSP%+&B30
 1580FORX%=0TO244STEP4
 1590SYS"OS_SpriteOp",272,SSP%,"S",0,X%,232,X%+76,284
 1600SYS"OS_SpriteOp",546,PSP%,J%,X%,232,8
 1610SYS"OS_SpriteOp",546,PSP%,K%,84,232,8
 1620I%=(I%+1)MOD8:J%=PSP%+16+I%*&164:WAIT:WAIT
 1630SYS"OS_SpriteOp",546,SSP%,SSP%+16,X%,232,0:NEXT
 1640VDU 24,0;0;1279;799;:ENDPROC
 1650:
 1660DEF PROCin6
 1670SYS"OS_SpriteOp",272,SSP%,"S",0,332,156,420,268
 1680VDU 24,332;156;420;276;:I%=0:FOR X%=184 TO 424 STEP 4
 1690SYS"OS_SpriteOp",546,PSP%,PSP%+16+I%*&4B4,X%,156,8
 1700WAIT:WAIT:WAIT:WAIT
 1710SYS"OS_SpriteOp",546,SSP%,SSP%+16,332,156,0:I%=(I%+1)MOD 8:NEXT
 1720VDU 24,0;0;1279;799;:ENDPROC
 1730:
 1740DEF PROCperson
 1750CLG:GCOL11:RECTANGLE 8,0,1271,795:RECTANGLE 12,4,1263,787:POINT 4,0:MOVE 660,8:DRAW 660,788:MOVE 664,8:DRAW 664,788:GCOL12:MOVE 4,4:DRAW 4,799:DRAW 1279,799:MOVE 16,8:DRAW 656,8:DRAW 656,788:RESTORE 4400:PROCrect(672,12,592,770,FALSE)
 1760IF V%=2 tu%=1 ELSE IF V%=4 tu%=2 ELSE tu%=V%-4
 1770OSCLI"IronLoad <IronLord$Dir>.Picture."+STR$V%+" "+STR$~(T%+2):CALL loadpic:OSCLI"IronTuneOn "+STR$tu%:OSCLI"IronFadeIn "+STR$V%:MOUSE TO 968,400:MOUSE ON 2
 1780IF V%=2 P%=0 ELSE IF V%=4 P%=1 ELSE P%=V%-5
 1790VDU24,688;28;1248;766;:REPEAT:GCOL0:GCOL134:WAIT:CLG:MOVE824,700:PRINT"Inventory":MOVE856,636:PRINT"Examine":MOVE856,572:PRINT"Discuss":MOVE920,508:PRINT"Buy":MOVE904,444:PRINT"Give":MOVE888,316:PRINT"Leave":PROCrel_mouse
 1800LO%=0:GCOL3,6:REPEAT:MOUSEMX%,MY%,B%:O%=0:IFMX%>800ANDMX%<1128 THEN O%=8:REPEAT:O%-=1:UNTILO%=0 OR MY%>212+O%*64 AND MY%<264+O%*64:IF O%=2 O%=0
 1810IF O%<>LO% AND LO%<>0 WAIT:RECTANGLE FILL 808,220+LO%*64,320,36
 1820IF O%<>LO% AND O%<>0 WAIT:RECTANGLE FILL 808,220+O%*64,320,36
 1830LO%=O%:UNTILB%<>0 AND O%<>0
 1840CASE O% OF
 1850 WHEN 3:PROCgive
 1860 WHEN 4:PROCbuy
 1870 WHEN 5:PROCdiscuss
 1880 WHEN 6:PROCexamine
 1890 WHEN 7:PROCinventory
 1900ENDCASE
 1910UNTILO%=1:PROCrel_mouse:MOUSE OFF:*IronFadeOut
 1920CASE V% OF
 1930 WHEN 7:V%=5:Z%=2:A%=140:B%=132:C%=&B0
 1940 WHEN 8:V%=1:Z%=2:A%=880:B%=72:C%=16
 1950 WHEN 9:V%=3:Z%=2:A%=168:B%=216:C%=&B0
 1960 WHEN 10:V%=5:Z%=2:A%=840:B%=236:C%=&5C
 1970 WHEN 11:V%=3:Z%=2:A%=344:B%=364:C%=&5C
 1980 WHEN 12:V%=6:Z%=2:A%=84:B%=84:C%=&B0
 1990 WHEN 13:V%=17:Z%=5
 2000 OTHERWISE Z%=1
 2010ENDCASE
 2020VDU24,0;0;1279;799;:GCOL128:*IronTuneOff
 2030ENDPROC
 2040:
 2050DEF PROCdiscuss:CLG:SYS"OS_SpriteOp",290,CSP%,"la",700,648:SYS"OS_SpriteOp",290,CSP%,"done",864,648:SYS"OS_SpriteOp",290,CSP%,"ra",1084,648:VDU 24,688;28;1248;644;
 2060DL%=HIMEM+&30+P%*32:Q%=0:R%=TRUE
 2070REPEAT:IF R% CLG:!ypos=608:A%=DL%?Q%:CALL message:R%=FALSE:QD%=TRUE
 2080PROCmouse
 2090IF MY%>656 AND MY%<760 THEN
 2100 IF MX%>700 AND MX%<844 AND Q%>0 REPEAT:Q%-=1:UNTIL DL%?Q%<>0:R%=TRUE
 2110 IF MX%>1084 AND MX%<1228 C%=Q%:R%=TRUE:REPEAT:Q%+=1:UNTIL DL%?Q%<>0 OR Q%=16:IF Q%=16 Q%=C%:R%=FALSE
 2120ENDIF
 2130IF MX%>688 AND MY%<644 AND QD% THEN
 2140 A%=DL%?(Q%+16):CLG:!ypos=608:CALL message:QD%=FALSE
 2150 IF Q%=0 AND P%<>7 PROCch_resp(P%,0,123)
 2160 IF Q%>0 AND Q%<7 AND (P%<>7 OR ?(HIMEM+9)=247) PROCch_resp(P%,Q%,124)
 2170 IF Q%=2 AND P%=5 ?(HIMEM+&15F)=1:REM Sword fight
 2180 IF A%=102 PROCreveal_ques(7):REM Miller army ?
 2190 IF A%=103 ?(HIMEM+&155)=1:PROChide_ques(1,2):REM Miller army
 2200 IF A%=105 AND ?(HIMEM+5)=255 PROCreveal_ques(6):REM Monk army ?
 2210 IF A%=106 ?(HIMEM+&156)=1:PROChide_ques(2,2):REM Monk army
 2220 IF A%=108 PROChide_ques(2,8):PROCch_resp(6,2,96):PROCch_resp(6,7,100):REM Monk gives wine
 2230 IF A%=82 ?(HIMEM+&157)=1:PROChide_ques(3,2):REM Herbalist army
 2240 IF A%=85 ?(HIMEM+5)=0:FOR I%=0 TO 8:PROChide_ques(I%,6):NEXT:REM Herbalist gives antidote
 2250 IF A%=87 PROCreveal_ques(3):REM Shopkeeper army ?
 2260 IF A%=88 ?(HIMEM+&158)=1:PROChide_ques(4,2):REM Shopkeeper army
 2270 IF A%=90 ?(HIMEM+7)=9:FOR I%=0 TO 8:PROChide_ques(I%,4):NEXT:REM Shopkeeper sells armour
 2280 IF A%=92 ?(HIMEM+6)=9:FOR I%=0 TO 8:PROChide_ques(I%,5):NEXT:REM Shopkeeper sells ruby
 2290 IF A%=113 ?(HIMEM+&159)=2:PROChide_ques(5,2):REM Templar army
 2300 IF A%=94 PROCreveal_ques(8):REM Hello innkeeper
 2310 IF A%=96 ?(HIMEM+&15A)=1:PROChide_ques(6,2):REM Innkeeper army
 2320 IF A%=100 PROChide_ques(6,7):PROCch_resp(1,2,103):REM Innkeeper pays
 2330 IF A%=120 PROCreveal_ques(5):REM Mercenary army ?
 2340 IF A%=121 ?(HIMEM+&15B)=3:PROChide_ques(7,2):REM Mercenary army
 2350 IF A%=122 PROCreveal_ques(4):REM Mercenary necklace ?
 2360 IF A%=116 ?(HIMEM+9)=0:PROChide_ques(8,2):REM Maid gives pendant
 2370ENDIF
 2380UNTIL MX%>864 AND MX%<1060 AND MY%>656 AND MY%<760:VDU 24,688;28;1248;764;:ENDPROC
 2390:
 2400DEF PROCexamine:CLG:SYS"OS_SpriteOp",290,CSP%,"done",864,36:A%=?(HIMEM+V%+&20):!ypos=700:CALL message:PROCdone_wait
 2410ENDPROC
 2420:
 2430DEF PROCinventory:CLG:SYS"OS_SpriteOp",290,CSP%,"done",864,36:VDU 24,688;148;1248;764;:T$="Inventory"
 2440A%=FNsel_obj(0):IF A%=100 !ypos=468:A%=131:CALL message:PROCdone_wait
 2450WHILE A%<99:CLG
 2460IF A%=0 THEN
 2470 M%=!(HIMEM+&150)
 2480 IF M%=0 THEN
 2490  PROCwpr("The purse is empty.",700)
 2500 ELSE
 2510  M$="The purse contains "+STR$(M%)+" gold piece":IF M%=1 M$+="." ELSE M$+="s."
 2520  PROCwpr(M$,700)
 2530 ENDIF
 2540ELSE
 2550 !ypos=700:A%+=25:CALL message
 2560ENDIF
 2570PROCdone_wait:CLG:A%=FNsel_obj(0):ENDWHILE
 2580VDU 24,688;28;1248;764;:ENDPROC
 2590:
 2600DEF PROCbuy:T$="Buy"
 2610CLG:SYS"OS_SpriteOp",290,CSP%,"done",864,36
 2620A%=0:IF FNnum_obj(V%)=0 A%=132 ELSE IF FNnum_obj(0)>11 A%=138
 2630IF A%<>0 !ypos=468:CALL message:PROCdone_wait:OB%=100 ELSE OB%=FNsel_obj(V%)
 2640IF OB%<99 THEN
 2650 CLG:IF OB%=19 PROCwpr("These cost",700) ELSE PROCwpr("This costs",700)
 2660 PROCwpr(STR$(CST%(OB%))+" gold pieces.",668)
 2670 IF CST%(OB%)>!(HIMEM+&150) THEN
 2680  !ypos=604:A%=137:CALL message:SYS"OS_SpriteOp",290,CSP%,"done",864,36:PROCdone_wait
 2690 ELSE
 2700  SYS"OS_SpriteOp",290,CSP%,"yes",704,36:SYS"OS_SpriteOp",290,CSP%,"no",1028,36:PROCwpr("Do you wish to",604):IF OB%=19 PROCwpr("buy them ?",572) ELSE PROCwpr("buy it ?",572)
 2710  Y%=0:REPEAT:PROCmouse
 2720  IF MY%>44 AND MY%<148 THEN
 2730   IF MX%>704 AND MX%<900 Y%=1 ELSE IF MX%>1028 AND MX%<1224 Y%=2
 2740  ENDIF
 2750  UNTIL Y%>0
 2760  IF Y%=1 THEN
 2770   CLG
 2780   CASE OB% OF
 2790    WHEN 21:IF ?(HIMEM+&161)=0 A%=140:!(HIMEM+&150)-=CST%(OB%):?(HIMEM+&161)=1 ELSE A%=142
 2800    WHEN 22:IF ?(HIMEM+&162)=0 A%=141:!(HIMEM+&150)-=CST%(OB%):?(HIMEM+&162)=1 ELSE A%=143
 2810    OTHERWISE:!(HIMEM+&150)-=CST%(OB%):?(HIMEM+OB%)=0:PROCwpr("You now have",700):A%=OB%
 2820   ENDCASE
 2830   !ypos=668:CALL message:SYS"OS_SpriteOp",290,CSP%,"done",864,36:PROCdone_wait
 2840  ENDIF
 2850 ENDIF
 2860ENDIF
 2870ENDPROC
 2880:
 2890DEF PROCwpr(S$,Y%):LOCAL T$,P%
 2900REPEAT:T$=""
 2910 IF LENS$>17 THEN
 2920  P%=17:WHILE MID$(S$,P%,1)<>" ":P%-=1:ENDWHILE
 2930  T$=RIGHT$(S$,LEN(S$)-P%):S$=LEFT$(S$,P%-1)
 2940 ENDIF
 2950 MOVE 968-16*LENS$,Y%:PRINTS$:Y%-=32:S$=T$
 2960UNTIL S$="":ENDPROC
 2970:
 2980DEF PROCwwpr(S$):LOCAL T$,P%,Y%:T$=S$:Y%=0
 2990REPEAT
 3000 IF LENT$>WW% THEN
 3010  P%=WW%+1:WHILE MID$(T$,P%,1)<>" ":P%-=1:ENDWHILE
 3020  T$=RIGHT$(T$,LEN(T$)-P%)
 3030 ELSE
 3040  T$=""
 3050 ENDIF
 3060 Y%+=1
 3070UNTIL T$=""
 3080Y%=WYC%+Y%*18
 3090REPEAT:T$=""
 3100 IF LENS$>WW% THEN
 3110  P%=WW%+1:WHILE MID$(S$,P%,1)<>" ":P%-=1:ENDWHILE
 3120  T$=RIGHT$(S$,LEN(S$)-P%):S$=LEFT$(S$,P%-1)
 3130 ENDIF
 3140 MOVE WXC%-16*LENS$,Y%:PRINTS$:Y%-=36:S$=T$
 3150UNTIL S$="":ENDPROC
 3160:
 3170DEF PROCgive:CLG:SYS"OS_SpriteOp",290,CSP%,"done",864,36:VDU 24,688;148;1248;764;:T$="Give"
 3180OB%=FNsel_obj(0):IF OB%=100 !ypos=468:A%=131:CALL message:PROCdone_wait
 3190IF OB%<99 THEN
 3200 !ypos=700:A%=0
 3210 REM Check silly gifts
 3220 IF (P%=3 AND (OB%=5 OR OB%=20 OR OB%=11 OR OB%=12 OR OB%=13)) OR (P%=4 AND (OB%=6 OR OB%=7 OR OB%>13 AND OB%<20)) OR (P%=7 AND OB%=8) OR (P%=8 AND OB%=9) THEN A%=139
 3230 REM Check special gifts
 3240 IF P%=3 AND OB%=10 A%=125:PROCch_resp(3,2,82):PROCch_resp(3,6,85):PROCch_resp(3,0,123)
 3250 IF P%=7 AND OB%=9 A%=126:PROCch_resp(7,0,123):PROCch_resp(7,2,120):PROCch_resp(7,3,122):PROCch_resp(7,6,78)
 3260 IF P%=7 AND OB%=6 A%=128:PROCch_resp(P%,2,121):?(HIMEM+&15B)=3
 3270 IF P%=7 AND OB%=7 A%=129:?(HIMEM+8)=0:FOR I%=0 TO 8:PROChide_ques(I%,3):NEXT:REM Mercenary gives necklace
 3280 IF P%=2 AND OB%=5 A%=127:PROCch_resp(P%,2,106):PROCch_resp(P%,8,108):?(HIMEM+&160)+=1:PROCch_resp(5,2,?(HIMEM+&160)):?(HIMEM+39)=53
 3290 IF P%=4 AND OB%=8 A%=130:PROCch_resp(P%,2,88):PROCch_resp(P%,5,92)
 3300 IF A%=0 AND P%=7 AND ?(HIMEM+9)<>247 A%=135 ELSE IF A%<>139 ?(HIMEM+OB%)=254-P%
 3310 IF A%=0 A%=132+RND(2)
 3320 IF OB%=0 !(HIMEM+&150)=0
 3330 CLG:CALL message:PROCdone_wait
 3340ENDIF
 3350VDU 24,688;28;1248;764;:ENDPROC
 3360:
 3370DEF FNsel_obj(I%):LOCAL O%
 3380N%=0:FOR A%=0 TO 31:IF ?(HIMEM+A%)=I% OB%(N%)=A%:N%+=1
 3390NEXT:IF N%=0 =100
 3400PROCwpr(T$,748):!ypos=452+N%*16:FOR A%=0 TO 31:IF ?(HIMEM+A%)=I% CALL message
 3410NEXT
 3420BB%=424-N%*16:OO%=0:PROCrel_mouse
 3430REPEAT:MOUSEMX%,MY%,B%:O%=0:IFMX%>712ANDMX%<1224 THEN O%=N%+1:REPEAT:O%-=1:UNTILO%=0 OR MY%>BB%+O%*32 AND MY%<BB%+56+O%*32
 3440IF O%<>OO% AND OO%<>0 WAIT:RECTANGLE FILL 712,BB%+OO%*32,512,28
 3450IF O%<>OO% AND O%<>0 WAIT:RECTANGLE FILL 712,BB%+O%*32,512,28
 3460IF MX%>864 AND MX%<1060 AND MY%>44 AND MY%<148 AND B%<>0 =99
 3470OO%=O%:UNTILB%<>0 AND O%<>0
 3480=OB%(N%-O%)
 3490:
 3500DEF FNnum_obj(I%):LOCAL A%
 3510N%=0:FOR A%=0 TO 31:IF ?(HIMEM+A%)=I% N%+=1
 3520NEXT:=N%
 3530:
 3540DEF PROCdone_wait
 3550REPEAT:PROCmouse:UNTIL MX%>864 AND MX%<1060 AND MY%>44 AND MY%<148:ENDPROC
 3560:
 3570DEF PROCch_resp(P%,Q%,A%):?(HIMEM+64+P%*32+Q%)=A%:ENDPROC
 3580:
 3590DEF PROCreveal_ques(Q%):LOCAL I%,QM%
 3600IF Q%=0 QM%=60 ELSE IF Q%=1 QM%=71 ELSE QM%=62+Q%
 3610FOR I%=0 TO 8:IF ?(HIMEM+64+I%*32+Q%)<>0 ?(HIMEM+48+I%*32+Q%)=QM%
 3620NEXT:ENDPROC
 3630:
 3640DEF PROChide_ques(P%,Q%):?(HIMEM+48+P%*32+Q%)=0:ENDPROC
 3650:
 3660DEF PROCtower
 3670CLG:OSCLI"IronLoad <IronLord$Dir>.Tower "+STR$~(S%+&5A0):!from=S%:!to=T%:CALL copy:SWAP !from,!to
 3680Z%=0:REPEAT
 3690CALL copy:RESTORE 4410:PROCrect(32,464,448,264,FALSE):GCOL12:MOVE 112,700:PRINT"Save game":MOVE 112,664:PRINT"Load game":MOVE 64,628:PRINT"Raise armies":MOVE 112,592:PRINT"Go to war":MOVE176,520:PRINT"Leave"
 3700*IronFadeIn 15
 3710MOUSE TO 384,548:MOUSE ON 2:PROCrel_mouse:GCOL3,13:OO%=0
 3720REPEAT:MOUSEMX%,MY%,B%:O%=0:IFMX%>60ANDMX%<452 THEN O%=7:REPEAT:O%-=1:UNTILO%=0 OR MY%>448+O%*36 AND MY%<488+O%*36:IF O%=2 O%=0
 3730IF O%<>OO% AND OO%<>0 WAIT:RECTANGLE FILL 60,452+OO%*36,392,36
 3740IF O%<>OO% AND O%<>0 WAIT:RECTANGLE FILL 60,452+O%*36,392,36
 3750OO%=O%:UNTILB%<>0 AND O%<>0:MOUSE OFF
 3760MOUSE OFF:*IronFadeOut
 3770IF O%<>1 CALL copy:RESTORE 4410
 3780CASE O% OF
 3790WHEN 6: PROCsave_game
 3800WHEN 5: PROCload_game
 3810WHEN 4: PROCraise_armies
 3820WHEN 3: PROCwar
 3830WHEN 1: Z%=2
 3840ENDCASE
 3850UNTIL Z%<>0
 3860V%=0:A%=392:B%=252:C%=&FC:CLG:ENDPROC
 3870:
 3880DEF PROCsave_game:LOCAL ERROR
 3890ON ERROR LOCAL PROCfile_error:ENDPROC
 3900PROCrect(304,236,668,324,FALSE):GCOL12:MOVE 496,540:PRINT"Save game":VDU4,28,10,19,29,11,31,0,2:COLOUR12:COLOUR129
 3910PRINT"Enter filename :"':*IronFadeIn 15
 3920*FX 21,0
 3930REPEAT:INPUTTAB(0,4)""F$:UNTIL F$<>""
 3940OSCLI"Save "+F$+" "+STR$~HIMEM+"+200":OSCLI"Stamp "+F$
 3950VDU 28,0,31,39,0,5:*IronFadeOut
 3960ENDPROC
 3970:
 3980DEF PROCload_game:LOCAL ERROR
 3990ON ERROR LOCAL PROCfile_error:ENDPROC
 4000PROCrect(304,236,668,324,FALSE):GCOL12:MOVE 496,540:PRINT"Load game":VDU4,28,10,19,29,11,31,0,2:COLOUR12:COLOUR129
 4010PRINT"Enter filename :"':*IronFadeIn 15
 4020*FX 21,0
 4030REPEAT:INPUTTAB(0,4)""F$:UNTIL F$<>""
 4040SYS"OS_File",5,F$ TO OT%,,,,OL%:IF OT%=0 ERROR 214,"File '"+F$+"' not found" ELSE IF OT%<>1 OR OL%<>&200 ERROR 214,"File '"+F$+"' is not a saved game"
 4050OSCLI"Load "+F$+" "+STR$~HIMEM
 4060IF ?(HIMEM+&164)=1 Z%=10
 4070VDU 28,0,31,39,0,5:*IronFadeOut
 4080ENDPROC
 4090:
 4100DEF PROCfile_error
 4110CLS:OFF:PRINTTAB(4,0);"** Error **":*FX 21,0
 4120X%=9-LEN(REPORT$)/2:IF X%<0 X%=0
 4130PRINTTAB(X%,2)REPORT$:PROCrel_mouse:REPEAT:MOUSE MX%,MY%,B%:UNTIL B%<>0 OR INKEY(0)<>-1
 4140VDU 28,0,31,39,0,5:*IronFadeOut
 4150ENDPROC
 4160:
 4170DEF PROCraise_armies
 4180N%=0:FORI%=&155TO&15B:N%+=?(HIMEM+I%):NEXT
 4190PROCrect(320,268,640,264,FALSE):WW%=18:WXC%=640:WYC%=400:GCOL12
 4200IF N%=1 N$="1 army." ELSE N$=STR$N%+" armies."
 4210IF N%=0 PROCwwpr("You have not yet managed to raise any armies.") ELSE PROCwwpr("You are currently able to raise "+N$)
 4220*IronFadeIn 15
 4230PROCmouse:*IronFadeOut
 4240ENDPROC
 4250:
 4260DEF PROCwar
 4270N%=0:FORI%=&155TO&15B:N%+=?(HIMEM+I%):NEXT
 4280IF N%=0 PROCrect(336,300,608,200,FALSE):WW%=18:WXC%=640:WYC%=400:GCOL12:PROCwwpr("You cannot yet go to war, as you have not raised any armies.") ELSE PROCrect(288,368,704,72,FALSE):GCOL12:MOVE320,416:PRINT"Prepare for battle !":Z%=8
 4290*IronFadeIn 15
 4300PROCmouse:*IronFadeOut
 4310ENDPROC
 4320:
 4330DEF PROCrect(X%,Y%,W%,D%,L%):LOCAL C%,N%
 4340IF L% GCOL12:MOVE X%,Y%-4:DRAW X%+W%+4,Y%-4:DRAW X%+W%+4,Y%+D%:GCOL11:POINT X%-4,Y%-4:POINT X%+W%+4,Y%+D%+4
 4350READ N%:FOR L%=1 TO N%:READ C%:GCOL C%:RECTANGLE X%,Y%,W%,D%:X%+=4:Y%+=4:W%-=8:D%-=8:NEXT:READ C%:GCOL C%:RECTANGLE FILL X%,Y%,W%,D%:ENDPROC
 4360:
 4370REM Data for boxes
 4380DATA 4,13,13,14,8,7
 4390DATA 7,8,14,13,13,12,11,0,15
 4400DATA 4,1,2,3,4,6
 4410DATA 4,4,4,3,2,1
 4420DATA 3,11,8,7,6
 4430:
 4440DEF PROCasm
 4450sp=13:link=14:OS_WriteI=&100
 4460FOR O%=0 TO 2 STEP 2
 4470P%=code%
 4480[OPT O%
 4490.loadpic
 4500LDR R11,scradd2:LDR R12,scradd:MOV R10,#194
 4510.pcmv
 4520LDRB R0,[R11],#1:STRB R0,[R12],#1:LDRB R0,[R11],#1:STRB R0,[R12],#1:LDMIA R11!,{R0-R8}:STMIA R12!,{R0-R8}:LDMIA R11!,{R0-R9}:STMIA R12!,{R0-R9}:LDRB R0,[R11],#1:STRB R0,[R12],#1:LDRB R0,[R11],#1:STRB R0,[R12],#1
 4530ADD R12,R12,#80:SUBS R10,R10,#1:BNE pcmv
 4540MOV PC,link
 4550.scradd EQUD S%+&1E2
 4560.scradd2 EQUD T%+2
 4570\ Wait for R1 frame syncs
 4580.delay MOV R0,#19
 4590.dellp SWI "OS_Byte":SUBS R3,R3,#1:BNE dellp:MOV PC,link
 4600\ Draw background
 4610.drtbl LDR R7,pspadd
 4620MOV R0,#112:MOV R1,#2:SWI "OS_Byte"
 4630MOV R0,#280:MOV R1,R7:ADR R2,sname:MOV R3,#48:STR R3,[R2]:SWI "OS_SpriteOp"
 4640MOV R0,#34:ADD R0,R0,#512:MOV R4,#800:MOV R5,#8
 4650.dbglp MOV R3,#1200
 4660.dbglp2 SWI "OS_SpriteOp":SUBS R3,R3,#80:BPL dbglp2:SUBS R4,R4,#80:BPL dbglp
 4670LDRB R0,[R6],#1:MOV R8,R0,LSL#8:LDRB R0,[R6],#1:ORR R8,R8,R0:MOV R9,#34:ADD R9,R9,#256
 4680.dpllp LDRB R0,[R6],#1:MOV R3,R0,LSL#10:LDRB R0,[R6],#1:ORR R3,R3,R0,LSL#2:LDRB R0,[R6],#1:MOV R4,R0,LSL#2:RSB R4,R4,#796
 4690LDRB R0,[R6],#1:ADR R1,sname:MOV R2,#4:SWI "OS_ConvertCardinal1":MOV R2,R0:MOV R1,R7:MOV R0,R9:SWI "OS_SpriteOp":SUBS R8,R8,#1:BNE dpllp
 4700MOV R0,#112:MOV R1,#1:SWI "OS_Byte":MOV PC,link
 4710.sname EQUD 0
 4720\ Copy screen
 4730.copy STMFD (sp)!,{R6-R12,link}:MOV R0,#200:LDR R1,from:LDR R2,to
 4740.clp LDMIA R1!,{R3-R12}:STMIA R2!,{R3-R12}:LDMIA R1!,{R3-R12}:STMIA R2!,{R3-R12}:LDMIA R1!,{R3-R12}:STMIA R2!,{R3-R12}:LDMIA R1!,{R3-R12}:STMIA R2!,{R3-R12}:SUBS R0,R0,#1:BNE clp:LDMFD (sp)!,{R6-R12,PC}
 4750\
 4760.from EQUD MAP%
 4770.to EQUD S%
 4780.sadd EQUD S%
 4790.tadd EQUD T%
 4800.bank EQUD 2
 4810.gltab EQUD CSP%+&1F8C:EQUD CSP%+&24F8:EQUD CSP%+&2A64:EQUD CSP%+&2FD0:EQUD CSP%+&353C:EQUD CSP%+&3AA8:EQUD CSP%+&4014:EQUD CSP%+&4580
 4820\ Gallop
 4830.gallop STMFD (sp)!,{link}:MOV R12,R0:MOV R11,R1
 4840LDR R9,[R12],#4:LDR R10,[R12],#4:MOV R0,#4:STR R0,wxi:STR R0,wyi
 4850SUB R7,R9,#32:CMP R7,#32:MOVLE R7,#32:CMP R7,#1020:MOVGT R7,#1020:SUB R8,R10,#32:CMP R8,#604:MOVGT R8,#604
 4860ADD R0,R7,#124:ADD R1,R8,#80:ORR R0,R0,R1,LSL#16:STR R0,stw+4:ADD R0,R0,#&40000:ADD R0,R0,#4:STR R0,stw+8:MOV R6,#0
 4870.galp1 BL copy
 4880\ Little Horse
 4890LDRB R0,[R12],#1:TEQ R0,#&FF:BEQ nolh:LDR R2,gspadd:ADD R2,R2,R0,LSL#2
 4900MOV R0,#34:ADD R0,R0,#512:LDR R1,cspadd:MOV R3,R9:MOV R4,R10:MOV R5,#8:SWI "OS_SpriteOp"
 4910\ Big horse
 4920.nolh
 4930ADR R0,stw:ADD R0,R0,#3:MOV R1,#9:LDR R2,wxi:TEQ R2,#124:SWINE "OS_WriteN":MOV R0,#34:ADD R0,R0,#512:ADR R2,gltab:LDR R2,[R2,R6]:MOV R3,R7:MOV R4,R8:MOV R5,#0:SWI "OS_SpriteOp":ADR R0,rsw:MOV R1,#12:SWI "OS_WriteN"
 4940\
 4950MOV R3,#4:BL delay:MOV R0,#113:LDR R1,bank:SWI "OS_Byte":STR R1,bank:ADR R2,sadd-4:LDR R2,[R2,R1,LSL#2]:STR R2,to:MOV R0,#112:SWI "OS_Byte"
 4960SWI "OS_Mouse":TEQ R2,#0:LDMNEFD (sp)!,{PC}:SWI "OS_ReadEscapeState":LDMCSFD (sp)!,{PC}
 4970ADD R6,R6,#4:CMP R6,#32:MOVEQ R6,#0
 4980ADD R7,R7,R11:CMP R7,#32:MOVLT R7,#32:CMP R7,#988:MOVGT R7,#988:ADD R8,R8,#4:CMP R8,#604:MOVGT R8,#604
 4990LDR R0,wxi:TEQ R0,#124:BEQ nowch:LDR R1,wyi:ADD R2,R7,#124:ADD R3,R8,#80:SUB R4,R2,R0:SUB R5,R3,R1:ORR R4,R4,R5,LSL#16:STR R4,stw+4
 5000ADD R4,R2,R0:ADD R4,R4,#4:ADD R5,R3,R1:ADD R5,R5,#4:ORR R4,R4,R5,LSL#16:STR R4,stw+8:ADD R0,R0,#4:STR R0,wxi:ADD R1,R1,#4:STR R1,wyi
 5010.nowch
 5020LDRB R0,[R12],#1:TST R0,#1:ADDNE R9,R9,#4:TST R0,#2:SUBNE R9,R9,#4:TST R0,#4:ADDNE R10,R10,#4:TST R0,#8:SUBNE R10,R10,#4
 5030TEQ R0,#&FF:BNE galp1:LDMFD (sp)!,{PC}
 5040\ Scrolling places
 5050.move STMFD (sp)!,{link}:MOV R8,R0:MOV R9,R1:MOV R10,R2:MOV R12,R3:MVN R0,#0:STR R0,ltxt:MOV R0,#21:ADR R1,rmouse:SWI "OS_Word":MOV R0,#21:MOV R1,#9:SWI "OS_Byte"
 5060MOV R0,#9:ADD R0,R0,#256:LDR R1,pspadd:SWI "OS_SpriteOp":MOV R11,#0:MOV R0,#&53:STR R0,sname:B notxt
 5070.mvlp LDR R3,txt:LDR R4,[R3],#4
 5080.ftl SUBS R4,R4,#1:BMI notxt:LDR R0,[R3],#4:LDR R1,[R3],#4:AND R2,R0,#255:CMP R2,R8,LSR#2:BGT ftl:MOV R2,R0,LSR#6:AND R2,R2,#%1111111100:CMP R2,R9:BGT ftl
 5090MOV R2,R0,LSR#14:AND R2,R2,#%1111111100:CMP R2,R8:BLT ftl:MOV R2,R0,LSR#22:AND R2,R2,#%1111111100:CMP R2,R9:BLT ftl
 5100LDR R0,ltxt:CMP R0,R4:BEQ notxt:STR R4,ltxt:ADD R3,R3,R1:ADR R0,clrtxt:MOV R1,#12:SWI "OS_WriteN":LDRB R4,[R3],#1:MOV R2,R4,LSL#4:ADD R2,R2,#176
 5110.txtl MOV R0,#188:LDRB R1,[R3],#1:MOV R1,R1,LSL#4:RSB R1,R1,#968:SWI "OS_Plot":MOV R0,R3:SWI "OS_Write0":MOV R3,R0:SUB R2,R2,#32:SUBS R4,R4,#1:BNE txtl
 5120.notxt MOV R0,#112:MOV R1,#2:SWI "OS_Byte":MOV R0,#272:LDR R1,pspadd:ADR R2,sname:MOV R3,#0:MOV R4,R8:MOV R5,R9:ADD R6,R4,#316:ADD R7,R5,#232:SWI "OS_SpriteOp":MOV R0,#112:MOV R1,#1:SWI "OS_Byte":MOV R3,#2:BL delay
 5130MOV R0,#34:ADD R0,R0,#512:LDR R1,pspadd:ADD R2,R1,#16:MOV R3,#812:MOV R4,#460:MOV R5,#0:SWI "OS_SpriteOp":MOV R0,#34:ADD R0,R0,#512:LDR R1,cspadd:ADD R2,R1,R10:ADD R2,R2,R11:EOR R11,R11,#&140:MOV R3,#964:MOV R4,#568:MOV R5,#8:SWI "OS_SpriteOp"
 5140.klp BL tstkey:TST R6,#16:BLNE rtn:TST R6,#1:BNE ml:TST R6,#2:BNE mr:TST R6,#8:BNE mu:TST R6,#4:BEQ klp
 5150.md MOV R0,#964:MOV R1,#564
 5160.mdlp SWI "OS_ReadPoint":TEQ R2,#7:TEQNE R2,#8:TEQNE R2,#15:BNE klp:ADD R0,R0,#4:TEQ R0,#984:BNE mdlp:SUB R9,R9,#4:MOV R10,#&B0:B mvlp
 5170.mu MOV R0,#964:MOV R1,#588
 5180.mulp SWI "OS_ReadPoint":TEQ R2,#7:TEQNE R2,#8:TEQNE R2,#15:BNE klp:ADD R0,R0,#4:TEQ R0,#984:BNE mulp:ADD R9,R9,#4:MOV R10,#&10:B mvlp
 5190.ml MOV R0,#960:MOV R1,#568
 5200.mllp SWI "OS_ReadPoint":TEQ R2,#7:TEQNE R2,#8:TEQNE R2,#15:BNE klp:ADD R1,R1,#4:TEQ R1,#588:BNE mllp:SUB R8,R8,#4:MOV R10,#&FC:B mvlp
 5210.mr MOV R0,#984:MOV R1,#568
 5220.mrlp SWI "OS_ReadPoint":TEQ R2,#7:TEQNE R2,#8:TEQNE R2,#15:BNE klp:ADD R1,R1,#4:TEQ R1,#588:BNE mrlp:ADD R8,R8,#4:MOV R10,#&5C:B mvlp
 5230.rtn MOV R2,R12:LDR R1,[R2],#4
 5240.rtnl SUBS R1,R1,#1:MOVMI PC,link:LDR R5,[R2],#4:MOV R3,R5,LSR#20:AND R4,R5,#%1111111100:CMP R3,R8:CMPLE R4,R9:BGT rtnl:ADD R3,R3,#32:ADD R4,R4,#32:CMP R3,R8:CMPGT R4,R9:BLE rtnl:MOV R0,R5,LSR#10:LDMFD (sp)!,{PC}
 5250\ Data
 5260.stw EQUB 0:EQUB 0:EQUB 0:EQUB 24:EQUD 0:EQUD 0
 5270.rsw EQUB 0:EQUB 0:EQUB 0:EQUB 24:EQUD 0:EQUD &31F04FF
 5280.pspadd EQUD PSP%
 5290.sspadd EQUD SSP%
 5300.gspadd EQUD CSP%+&4AEC
 5310.cspadd EQUD CSP%
 5320.bhx EQUD 0
 5330.bhy EQUD 0
 5340.lhx EQUD 0
 5350.lhy EQUD 0
 5360.wxi EQUD 0
 5370.wyi EQUD 0
 5380.rmouse EQUB 3:EQUW 640:EQUW 400:ALIGN
 5390\
 5400.tstkey SWI "OS_ReadEscapeState":LDMCSFD (sp)!,{PC}
 5410MOV R6,#0:MOV R0,#121:MOV R1,#left%:SWI "OS_Byte":TEQ R1,#0:ORRNE R6,R6,#1:MOV R1,#right%:SWI "OS_Byte":TEQ R1,#0:ORRNE R6,R6,#2:MOV R1,#down%:SWI "OS_Byte":TEQ R1,#0:ORRNE R6,R6,#4:MOV R1,#up%:SWI "OS_Byte":TEQ R1,#0:ORRNE R6,R6,#8
 5420LDR R1,lastcomb:STR R6,lastcomb:EORS R1,R1,R6:LDREQ R6,lastkey:BEQ gtkey:ANDS R2,R1,R6:MOVNE R6,R2:BNE gtkey:LDR R2,lastkey:TST R1,R2:MOVEQ R6,R2
 5430.gtkey ANDS R1,R6,#1:ANDEQS R1,R6,#2:ANDEQS R1,R6,#4:ANDEQS R1,R6,#8:MOVNE R6,R1:STR R6,lastkey
 5440MOV R1,#fire%:SWI "OS_Byte":TEQ R1,#0:ORRNE R6,R6,#16:TEQ R6,#0:MOVNE PC,link
 5450SWI "OS_Mouse":TST R2,#4:BEQ mrtn:SUBS R3,R0,#640:RSBMI R3,R3,#0:SUBS R4,R1,#400:RSBMI R4,R4,#0:CMP R3,#1:MOVLS R3,#0:CMP R4,#1:MOVLS R4,#0:CMP R3,R4:BEQ nomov:BGT xgt:CMP R1,#400:ORRLT R6,R6,#4:ORRGT R6,R6,#8:B mrtn
 5460.xgt CMP R0,#640:ORRLT R6,R6,#1:ORRGT R6,R6,#2:B mrtn
 5470.nomov LDR R6,lastmkey
 5480.mrtn STR R6,lastmkey:TST R2,#3:ORRNE R6,R6,#16:MOV R0,#21:ADR R1,rmouse:SWI "OS_Word":MOV PC,link
 5490\
 5500.lastkey EQUD 0
 5510.lastmkey EQUD 0
 5520.lastcomb EQUD 0
 5530\
 5540.txt EQUD 0
 5550.ltxt EQUD 0
 5560.clrtxt EQUB 25:EQUB 188:EQUW 696:EQUW 36:EQUB 25:EQUB 103:EQUW 1236:EQUW 320
 5570\
 5580.message STMFD (sp)!,{link}
 5590LDR R7,ypos:ADR R8,textbuf:MOV R9,#0:MOV R10,#1:LDR R11,textdat:ADD R12,R11,#256:ADD R6,R11,#512:TEQ R0,#0:BEQ mslp
 5600.msct LDRB R1,[R6],#1:CMP R1,#0:SUBEQS R0,R0,#1:BNE msct
 5610.mslp LDRB R0,[R6],#1:TEQ R0,#0:BEQ printbuf:BL print:B mslp
 5620\
 5630.print STMFD (sp)!,{link}
 5640LDRB R1,[R11,R0]:TEQ R1,R0:BEQ printit
 5650STMFD (sp)!,{R0}:MOV R0,R1:BL print:LDMFD (sp)!,{R0}
 5660LDRB R0,[R12,R0]:BL print
 5670LDMFD (sp)!,{PC}
 5680.printit
 5690TEQ R0,#1:MOVEQ R10,R0:LDMEQFD (sp)!,{PC}
 5700CMP R0,#96:BLT notuc:TEQ R10,#0:BICNE R0,R0,#&20:MOV R10,#0
 5710.notuc TEQ R0,#ASC".":TEQNE R0,#ASC"?":TEQNE R0,#ASC"!":MOVEQ R10,#1
 5720STRB R0,[R8,R9]:ADD R9,R9,#1:CMP R9,#18:LDMNEFD (sp)!,{PC}
 5730.fdsplp SUBS R9,R9,#1:LDRB R0,[R8,R9]:CMP R0,#32:BNE fdsplp
 5740.printbuf
 5750MOV R0,#968:SUBS R0,R0,R9,LSL#4:ORR R0,R0,R7,LSL#16:STR R0,movevdu+4
 5760ADR R0,movevdu+2:ADD R1,R9,#6:SWI "OS_WriteN"
 5770SUB R7,R7,#32:STR R7,ypos:MOV R1,#0:TEQ R9,#17:BEQ nmvbuf
 5780.mvbuflp ADD R9,R9,#1:LDRB R0,[R8,R9]:STRB R0,[R8,R1]:ADD R1,R1,#1:CMP R9,#17:BLT mvbuflp
 5790.nmvbuf MOV R9,R1:LDMFD (sp)!,{PC}
 5800\
 5810.textdat EQUD TXT%
 5820.movevdu EQUW 0:EQUB 25:EQUB 4:EQUD 0
 5830.textbuf EQUS STRING$(18,CHR$0):ALIGN
 5840.ypos EQUD 0
 5850]
 5860IF P%>(code%+space%) MODE 15:PRINT"Not enough code space.":END
 5870NEXT
 5880ENDPROC
 5890:
 5900DEF PROCerror:ON ERROR OFF
 5910MODE 15:OFF:CALLHIMEM+&214:*IronTuneOff
 5920*FX 20
 5930IF ERR=17 PRINT"Goodbye." ELSE PRINT"Iron Lord has stopped because of a fatal error :-"''REPORT$
 5940ENDPROC

 � >:IronLord.!IronLord.Iron1
� (C) 1990 UBI soft.
<� Archimedes version by Cygnus Software Engineering Ltd.
(:
2� � �error:�
<:
F�space%=&92C:� MS%(6,3),SP%(6,4),MV%(6,6),OB%(18),CST%(22),code% space%,CSP% &4D4C,PSP% &5960,SSP% &280,RT% &1B04,PDT% &AD5,TXT% &1281,MAP% &7D00,TBL% &D1E
P!PSP%=&5960
Z,!SSP%=&280:SSP%!4=0:SSP%!8=16:SSP%!12=16
d>!CSP%=&4D4C:�"IronLoad <IronLord$Dir>.MainSpr "+�~(CSP%+4)
n*�"IronLoad <IronLord$Dir>.Map "+�~MAP%
x,�"IronLoad <IronLord$Dir>.Routes "+�~RT%
�'�"Load <IronLord$Dir>.Text "+�~TXT%
�)�"Load <IronLord$Dir>.Tables "+�~TBL%
�,�"Load <IronLord$Dir>.PlaceData "+�~PDT%
�~� �DNB:� I%=0 � 6:� J%=0 � 3:� MS%(I%,J%):�:� J%=0 � 4:� SP%(I%,J%):�:� J%=0 � 6:� MV%(I%,J%):�:�:� I%=0 � 22:� CST%(I%):�
�@left%=225:right%=194:down%=232:up%=207:fire%=201:U%=�:nmt%=�
�>ș"OS_Module",18,"IronLordSupport" � ,,,,mssa%:mssa%+=&204
�?ș"Sound_Speaker",0 �iss%:ș"Sound_Volume",0 �vol%:vol%-=64
��asm
�:
��
� Ȏ Z% �
�%  � 0:Z%=1:B%=�(500):*IronFadeOut
�  � 1:�map
  � 2:�place
  � 3:�person
'  � 4:� � �:�"<IronLord$Dir>.Iron2"
"'  � 5:� � �:�"<IronLord$Dir>.Iron3"
,  � 6:�tower
6'  � 7:� � �:�"<IronLord$Dir>.Iron4"
@'  � 8:� � �:�"<IronLord$Dir>.Iron5"
J'  � 9:� � �:�"<IronLord$Dir>.Iron7"
T(  � 10:� � �:�"<IronLord$Dir>.Iron6"
^ �
h� �
r�
|:
�
� �map
�� nmt% nmt%=�:*IronTuneOn 0
�+!from=MAP%:!to=S%:� copy:*IronFadeIn 14
�1ȗ � SP%(V%,0),SP%(V%,1):ȗ � 2:OV%=V%:MV%=-1
��:�rel_mouse
��:�(-114) �sound_control
�ȗ MX%,MY%,B%:�B%<>0
�f� I%=0 � 6:� MX%>MS%(I%,0) � MY%>MS%(I%,1) � MX%<MS%(I%,2) � MY%<MS%(I%,3) � V%=I%:MV%=MV%(OV%,V%)
��:� MV%<>-1:ȗ �:�rel_mouse
�� MV%>=0 �
� A%=RT%+MV%:B%=!A%:A%+=4
�5 � B%=4 � I%=0 � 7:ș"OS_SpriteOp",303,CSP%,�I%:�
�. !bank=2:!to=T%:ș"OS_Byte",112,2:� gallop
5 � B%=4 � I%=0 � 7:ș"OS_SpriteOp",303,CSP%,�I%:�
�:*IronFadeOut
vș"OS_Byte",112,1:ș"OS_Byte",113,1:� V%=2 � V%=4 Z%=3 � Z%=2:A%=SP%(V%,2):B%=SP%(V%,3):C%=SP%(V%,4):� MV%>=0 U%=�
&� Z%<>2 nmt%=�:*IronTuneOff
0�
::
D� Location data
NA� 784,280,900,420,820,308,48,332,&5C,   -2,0,&130,-1,-1,-1,-1
XF� 336,68,464,180,436,76,680,28,&10,     &220,-2,&344,&44C,-1,-1,-1
bD� 880,0,988,88,888,48,0,0,0,            &514,&600,-2,-1,-1,-1,-1
lH� 0,280,104,360,56,296,928,264,&FC,     -1,&710,-1,-2,&7D0,&8A0,&9D8
vF� 60,508,176,588,132,520,0,0,0,         -1,-1,-1,&CBC,-2,&DAC,&E78
�I� 456,500,572,588,488,540,28,356,&5C,   -1,-1,-1,&10DC,&120C,-2,&12CC
�I� 1020,616,1192,732,1180,628,660,36,&10,-1,-1,-1,&1450,&1734,&198C,-2
�� Cost data
�>� 0,0,0,0,0,0,150,60,0,0,0,10,23,16,25,17,12,24,5,3,19,3,5
�:
�� �mouse
�(�rel_mouse:�:ȗ MX%,MY%,B%:� B%<>0:�
�:
�� �rel_mouse:*FX 21,9
��:ȗ MX%,MY%,B%:� B%=0:�
�:
�� �sound_control
��DDQ:�rect(340,288,600,240,�):�0:�472,496:�"Music":ȓ648,460,104,44:�408,444:�"Speaker":ȓ648,408,104,44:�440,392:�"Volume":ȓ648,356,256,44:�576,340:�"Exit":ȓ564,304,148,44:�onoff(496,!mssa%):�onoff(444,iss%=2):�disp_vol
�:�mouse
�MX%>648�MX%<752 �
C �MY%>460�MY%<504 !mssa%=� !mssa%:mssa%!44=0:�onoff(496,!mssa%)
 L �MY%>408�MY%<452 iss%=iss% �3:ș"Sound_Speaker",iss%:�onoff(444,iss%=2)
*�
4%�MX%>640�MX%<900�MY%>356�MY%<400�
> ȗ ȓ 644,356,252,44
H5 �:ȗ MX%,MY%,B%:vol%=(MX%-644)/4:�disp_vol:�B%=0
R0 ș"Sound_Volume",vol%+64:ȗ ȓ 0,0,1279,799
\�
f$�MX%>596�MX%<704�MY%>304�MY%<348
p�copy:�rel_mouse
z�
�:
�0� �onoff(oy%,of%):�6:ȓȐ652,oy%-32,96,32:�0
�(�of% �672,oy%:�"On" ��656,oy%:�"Off"
��
�:
�� �disp_vol
�&�vol%>0 �4:ȓȐ652,360,vol%*4-4,36
�/�vol%<63�6:ȓȐ652+vol%*4,360,248-vol%*4,36
��
�:
�� �place
��128:�:�11:ȓ 8,0,1271,795:ȓ 12,4,1263,787:Ȓ 4,0:� 660,8:� 660,788:� 664,8:� 664,788:ȓ Ȑ 668,352,600,16:�12:� 4,4:� 4,799:� 1279,799:� 16,8:� 656,8:� 656,788
�b� �T\Q:�rect(672,374,592,408,�):� �T\Q:�rect(672,12,592,332,�):� �TfQ:�rect(784,432,372,288,�)
�ș"OS_SpriteOp",290,CSP%,"w",692,400:ș"OS_SpriteOp",290,CSP%,"s",784,378:ș"OS_SpriteOp",290,CSP%,"e",1160,396:ș"OS_SpriteOp",290,CSP%,"n",784,724
~V$=�V%:�"IronLoad <IronLord$Dir>.Picture."+V$+" "+�~(T%+2):� loadpic:�"IronLoad <IronLord$Dir>.Sprites."+V$+" "+�~(PSP%+4)
n�V%=0 G%=0:PD%=0 ��V%=1 G%=&18A:PD%=&120 ��V%=3 G%=&5B4:PD%=&3FC ��V%=5 G%=&7F6:PD%=&698 �G%=&B28:PD%=&880
$7G%+=TBL%:PD%+=PDT%:ș"OS_SpriteOp",265,SSP%:� drtbl
.� nmt% nmt%=�:*IronTuneOn 0
8o�0:�135:N%=?PD%:Y%=176+N%*16:D%=PD%+1:�I%=1�N%:�968-16*�$D%,Y%:�$D%:D%+=(1+�$D%):Y%-=32:�:�"IronFadeIn "+V$
B!�(D% � 3)<>0 D%+=(4-(D% � 3))
L*� U% � V%+1 �in0,�in1,,�in3,,�in5,�in6
VD!txt=D%+(4*!D%)+4:A%=�(move):Z%=(A%>>5)� 31:V%=A% � 31:U%=�:�128
`� Z%=1 � ?(�+&15F)=1 �
j � ?(�+&15E)<5 R%=3 � R%=20
t � �(R%)=1 �
~A  � �T\Q:�rect(304,228,672,344,�):WW%=19:WXC%=640:WYC%=400:�0
�  � ?(�+1)=0 �
��   �wwpr("Before you can mount your horse an assassin leaps out and blocks the way. He reaches for his sword, and you do the same ..."):Z%=7
��  � �wwpr("Before you can mount your horse an assassin leaps out and blocks the way. As you have no sword you are instantly slain."):Z%=9
�  �:�mouse
� �
��:*IronFadeOut
�� Z%<>1 nmt%=�:*IronTuneOff
��
�:
�
� �in0
�3� 24,72;0;368;796;:I%=0:J%=PSP%+16:K%=PSP%+&B30
��X%=-8�372�4
3ș"OS_SpriteOp",272,SSP%,"S",0,X%,268,X%+76,316

(ș"OS_SpriteOp",546,PSP%,J%,X%,268,8
(ș"OS_SpriteOp",546,PSP%,K%,72,264,8
(I%=(I%+1)�8:J%=PSP%+16+I%*&164:Ȗ:Ȗ
(/ș"OS_SpriteOp",546,SSP%,SSP%+16,X%,268,0:�
2� 24,0;0;1279;799;:�
<:
F
� �in1
P6� 24,20;12;228;796;:I%=0:Y%=-60:� X%=-96 � 236 � 8
Z4ș"OS_SpriteOp",272,SSP%,"S",0,X%,Y%,X%+44,Y%+56
d4ș"OS_SpriteOp",546,PSP%,PSP%+16+I%*&11C,X%,Y%,8
n	Ȗ:Ȗ
x9ș"OS_SpriteOp",546,SSP%,SSP%+16,X%,Y%,0:I%=(I%+1)� 8
�4ș"OS_SpriteOp",546,PSP%,PSP%+16+I%*&11C,X%,Y%,8
�	Ȗ:Ȗ
�Aș"OS_SpriteOp",546,SSP%,SSP%+16,X%,Y%,0:Y%+=4:I%=(I%+1)� 8:�
�� 24,0;0;1279;799;:�
�:
�
� �in3
�3� 24,16;0;364;796;:I%=0:J%=PSP%+16:K%=PSP%+&B30
��X%=-64�368�4
�3ș"OS_SpriteOp",272,SSP%,"S",0,X%,320,X%+76,368
�(ș"OS_SpriteOp",546,PSP%,J%,X%,320,8
�)ș"OS_SpriteOp",546,PSP%,K%,248,320,8
�(I%=(I%+1)�8:J%=PSP%+16+I%*&164:Ȗ:Ȗ
�-ș"OS_SpriteOp",546,SSP%,SSP%+16,X%,320:�
� 24,0;0;1279;799;:�
:

� �in5
"3� 24,84;0;240;796;:I%=0:J%=PSP%+16:K%=PSP%+&B30
,�X%=0�244�4
63ș"OS_SpriteOp",272,SSP%,"S",0,X%,232,X%+76,284
@(ș"OS_SpriteOp",546,PSP%,J%,X%,232,8
J(ș"OS_SpriteOp",546,PSP%,K%,84,232,8
T(I%=(I%+1)�8:J%=PSP%+16+I%*&164:Ȗ:Ȗ
^/ș"OS_SpriteOp",546,SSP%,SSP%+16,X%,232,0:�
h� 24,0;0;1279;799;:�
r:
|
� �in6
�2ș"OS_SpriteOp",272,SSP%,"S",0,332,156,420,268
�1� 24,332;156;420;276;:I%=0:� X%=184 � 424 � 4
�5ș"OS_SpriteOp",546,PSP%,PSP%+16+I%*&4B4,X%,156,8
�Ȗ:Ȗ:Ȗ:Ȗ
�=ș"OS_SpriteOp",546,SSP%,SSP%+16,332,156,0:I%=(I%+1)� 8:�
�� 24,0;0;1279;799;:�
�:
�
� �person
֪�:�11:ȓ 8,0,1271,795:ȓ 12,4,1263,787:Ȓ 4,0:� 660,8:� 660,788:� 664,8:� 664,788:�12:� 4,4:� 4,799:� 1279,799:� 16,8:� 656,8:� 656,788:� �TpQ:�rect(672,12,592,770,�)
�*� V%=2 tu%=1 � � V%=4 tu%=2 � tu%=V%-4
�}�"IronLoad <IronLord$Dir>.Picture."+�V%+" "+�~(T%+2):� loadpic:�"IronTuneOn "+�tu%:�"IronFadeIn "+�V%:ȗ � 968,400:ȗ � 2
�'� V%=2 P%=0 � � V%=4 P%=1 � P%=V%-5
���24,688;28;1248;766;:�:�0:�134:Ȗ:�:�824,700:�"Inventory":�856,636:�"Examine":�856,572:�"Discuss":�920,508:�"Buy":�904,444:�"Give":�888,316:�"Leave":�rel_mouse
uLO%=0:�3,6:�:ȗMX%,MY%,B%:O%=0:�MX%>800�MX%<1128 � O%=8:�:O%-=1:�O%=0 � MY%>212+O%*64 � MY%<264+O%*64:� O%=2 O%=0
5� O%<>LO% � LO%<>0 Ȗ:ȓ Ȑ 808,220+LO%*64,320,36
3� O%<>LO% � O%<>0 Ȗ:ȓ Ȑ 808,220+O%*64,320,36
&LO%=O%:�B%<>0 � O%<>0
0Ȏ O% �
: � 3:�give
D
 � 4:�buy
N � 5:�discuss
X � 6:�examine
b � 7:�inventory
l�
v&�O%=1:�rel_mouse:ȗ �:*IronFadeOut
�Ȏ V% �
�' � 7:V%=5:Z%=2:A%=140:B%=132:C%=&B0
�% � 8:V%=1:Z%=2:A%=880:B%=72:C%=16
�' � 9:V%=3:Z%=2:A%=168:B%=216:C%=&B0
�( � 10:V%=5:Z%=2:A%=840:B%=236:C%=&5C
�( � 11:V%=3:Z%=2:A%=344:B%=364:C%=&5C
�& � 12:V%=6:Z%=2:A%=84:B%=84:C%=&B0
� � 13:V%=17:Z%=5
�  Z%=1
��
�'�24,0;0;1279;799;:�128:*IronTuneOff
��
�:
�� �discuss:�:ș"OS_SpriteOp",290,CSP%,"la",700,648:ș"OS_SpriteOp",290,CSP%,"done",864,648:ș"OS_SpriteOp",290,CSP%,"ra",1084,648:� 24,688;28;1248;644;
DL%=�+&30+P%*32:Q%=0:R%=�
5�:� R% �:!ypos=608:A%=DL%?Q%:� message:R%=�:QD%=�
 
�mouse
*� MY%>656 � MY%<760 �
48 � MX%>700 � MX%<844 � Q%>0 �:Q%-=1:� DL%?Q%<>0:R%=�
>T � MX%>1084 � MX%<1228 C%=Q%:R%=�:�:Q%+=1:� DL%?Q%<>0 � Q%=16:� Q%=16 Q%=C%:R%=�
H�
R� MX%>688 � MY%<644 � QD% �
\/ A%=DL%?(Q%+16):�:!ypos=608:� message:QD%=�
f& � Q%=0 � P%<>7 �ch_resp(P%,0,123)
p= � Q%>0 � Q%<7 � (P%<>7 � ?(�+9)=247) �ch_resp(P%,Q%,124)
z, � Q%=2 � P%=5 ?(�+&15F)=1:� Sword fight
�- � A%=102 �reveal_ques(7):� Miller army ?
�7 � A%=103 ?(�+&155)=1:�hide_ques(1,2):� Miller army
�8 � A%=105 � ?(�+5)=255 �reveal_ques(6):� Monk army ?
�5 � A%=106 ?(�+&156)=1:�hide_ques(2,2):� Monk army
�R � A%=108 �hide_ques(2,8):�ch_resp(6,2,96):�ch_resp(6,7,100):� Monk gives wine
�9 � A%=82 ?(�+&157)=1:�hide_ques(3,2):� Herbalist army
�N � A%=85 ?(�+5)=0:� I%=0 � 8:�hide_ques(I%,6):�:� Herbalist gives antidote
�0 � A%=87 �reveal_ques(3):� Shopkeeper army ?
�: � A%=88 ?(�+&158)=1:�hide_ques(4,2):� Shopkeeper army
�M � A%=90 ?(�+7)=9:� I%=0 � 8:�hide_ques(I%,4):�:� Shopkeeper sells armour
�K � A%=92 ?(�+6)=9:� I%=0 � 8:�hide_ques(I%,5):�:� Shopkeeper sells ruby
�8 � A%=113 ?(�+&159)=2:�hide_ques(5,2):� Templar army
�. � A%=94 �reveal_ques(8):� Hello innkeeper
	9 � A%=96 ?(�+&15A)=1:�hide_ques(6,2):� Innkeeper army
	@ � A%=100 �hide_ques(6,7):�ch_resp(1,2,103):� Innkeeper pays
	0 � A%=120 �reveal_ques(5):� Mercenary army ?
	$: � A%=121 ?(�+&15B)=3:�hide_ques(7,2):� Mercenary army
	.4 � A%=122 �reveal_ques(4):� Mercenary necklace ?
	8; � A%=116 ?(�+9)=0:�hide_ques(8,2):� Maid gives pendant
	B�
	LD� MX%>864 � MX%<1060 � MY%>656 � MY%<760:� 24,688;28;1248;764;:�
	V:
	`e� �examine:�:ș"OS_SpriteOp",290,CSP%,"done",864,36:A%=?(�+V%+&20):!ypos=700:� message:�done_wait
	j�
	t:
	~_� �inventory:�:ș"OS_SpriteOp",290,CSP%,"done",864,36:� 24,688;148;1248;764;:T$="Inventory"
	�AA%=�sel_obj(0):� A%=100 !ypos=468:A%=131:� message:�done_wait
	�ȕ A%<99:�
	�� A%=0 �
	� M%=!(�+&150)
	�
 � M%=0 �
	�%  �wpr("The purse is empty.",700)
	� �
	�L  M$="The purse contains "+�(M%)+" gold piece":� M%=1 M$+="." � M$+="s."
	�  �wpr(M$,700)
	� �
	��
	� !ypos=700:A%+=25:� message
�

!�done_wait:�:A%=�sel_obj(0):�
� 24,688;28;1248;764;:�
:
(� �buy:T$="Buy"
2,�:ș"OS_SpriteOp",290,CSP%,"done",864,36
<:A%=0:� �num_obj(V%)=0 A%=132 � � �num_obj(0)>11 A%=138
FE� A%<>0 !ypos=468:� message:�done_wait:OB%=100 � OB%=�sel_obj(V%)
P� OB%<99 �
Z? �:� OB%=19 �wpr("These cost",700) � �wpr("This costs",700)
d+ �wpr(�(CST%(OB%))+" gold pieces.",668)
n � CST%(OB%)>!(�+&150) �
xR  !ypos=604:A%=137:� message:ș"OS_SpriteOp",290,CSP%,"done",864,36:�done_wait
� �
��  ș"OS_SpriteOp",290,CSP%,"yes",704,36:ș"OS_SpriteOp",290,CSP%,"no",1028,36:�wpr("Do you wish to",604):� OB%=19 �wpr("buy them ?",572) � �wpr("buy it ?",572)
�  Y%=0:�:�mouse
�  � MY%>44 � MY%<148 �
�<   � MX%>704 � MX%<900 Y%=1 � � MX%>1028 � MX%<1224 Y%=2
�  �
�  � Y%>0
�  � Y%=1 �
�   �
�   Ȏ OB% �
�K    � 21:� ?(�+&161)=0 A%=140:!(�+&150)-=CST%(OB%):?(�+&161)=1 � A%=142
�K    � 22:� ?(�+&162)=0 A%=141:!(�+&150)-=CST%(OB%):?(�+&162)=1 � A%=143
�I    :!(�+&150)-=CST%(OB%):?(�+OB%)=0:�wpr("You now have",700):A%=OB%
   �
L   !ypos=668:� message:ș"OS_SpriteOp",290,CSP%,"done",864,36:�done_wait
  �
" �
,�
6�
@:
J� �wpr(S$,Y%):� T$,P%
T�:T$=""
^ � �S$>17 �
h%  P%=17:ȕ �S$,P%,1)<>" ":P%-=1:�
r#  T$=�S$,�(S$)-P%):S$=�S$,P%-1)
| �
�% � 968-16*�S$,Y%:�S$:Y%-=32:S$=T$
�
� S$="":�
�:
�%� �wwpr(S$):� T$,P%,Y%:T$=S$:Y%=0
��
� � �T$>WW% �
�(  P%=WW%+1:ȕ �T$,P%,1)<>" ":P%-=1:�
�  T$=�T$,�(T$)-P%)
� �
�  T$=""
� �
�
 Y%+=1
�� T$=""
Y%=WYC%+Y%*18
�:T$=""
 � �S$>WW% �
&(  P%=WW%+1:ȕ �S$,P%,1)<>" ":P%-=1:�
0#  T$=�S$,�(S$)-P%):S$=�S$,P%-1)
: �
D& � WXC%-16*�S$,Y%:�S$:Y%-=36:S$=T$
N
� S$="":�
X:
bU� �give:�:ș"OS_SpriteOp",290,CSP%,"done",864,36:� 24,688;148;1248;764;:T$="Give"
lCOB%=�sel_obj(0):� OB%=100 !ypos=468:A%=131:� message:�done_wait
v� OB%<99 �
� !ypos=700:A%=0
� � Check silly gifts
�� � (P%=3 � (OB%=5 � OB%=20 � OB%=11 � OB%=12 � OB%=13)) � (P%=4 � (OB%=6 � OB%=7 � OB%>13 � OB%<20)) � (P%=7 � OB%=8) � (P%=8 � OB%=9) � A%=139
� � Check special gifts
�O � P%=3 � OB%=10 A%=125:�ch_resp(3,2,82):�ch_resp(3,6,85):�ch_resp(3,0,123)
�a � P%=7 � OB%=9 A%=126:�ch_resp(7,0,123):�ch_resp(7,2,120):�ch_resp(7,3,122):�ch_resp(7,6,78)
�9 � P%=7 � OB%=6 A%=128:�ch_resp(P%,2,121):?(�+&15B)=3
�\ � P%=7 � OB%=7 A%=129:?(�+8)=0:� I%=0 � 8:�hide_ques(I%,3):�:� Mercenary gives necklace
�p � P%=2 � OB%=5 A%=127:�ch_resp(P%,2,106):�ch_resp(P%,8,108):?(�+&160)+=1:�ch_resp(5,2,?(�+&160)):?(�+39)=53
�> � P%=4 � OB%=8 A%=130:�ch_resp(P%,2,88):�ch_resp(P%,5,92)
�C � A%=0 � P%=7 � ?(�+9)<>247 A%=135 � � A%<>139 ?(�+OB%)=254-P%
� � A%=0 A%=132+�(2)
� � OB%=0 !(�+&150)=0

 �:� message:�done_wait

�

� 24,688;28;1248;764;:�

 :

*� �sel_obj(I%):� O%

42N%=0:� A%=0 � 31:� ?(�+A%)=I% OB%(N%)=A%:N%+=1

>�:� N%=0 =100

HC�wpr(T$,748):!ypos=452+N%*16:� A%=0 � 31:� ?(�+A%)=I% � message

R�

\"BB%=424-N%*16:OO%=0:�rel_mouse

fd�:ȗMX%,MY%,B%:O%=0:�MX%>712�MX%<1224 � O%=N%+1:�:O%-=1:�O%=0 � MY%>BB%+O%*32 � MY%<BB%+56+O%*32

p5� O%<>OO% � OO%<>0 Ȗ:ȓ Ȑ 712,BB%+OO%*32,512,28

z3� O%<>OO% � O%<>0 Ȗ:ȓ Ȑ 712,BB%+O%*32,512,28

�7� MX%>864 � MX%<1060 � MY%>44 � MY%<148 � B%<>0 =99

�OO%=O%:�B%<>0 � O%<>0

�=OB%(N%-O%)

�:

�� �num_obj(I%):� A%

�'N%=0:� A%=0 � 31:� ?(�+A%)=I% N%+=1

�	�:=N%

�:

�� �done_wait

�6�:�mouse:� MX%>864 � MX%<1060 � MY%>44 � MY%<148:�

�:

�.� �ch_resp(P%,Q%,A%):?(�+64+P%*32+Q%)=A%:�

�:
� �reveal_ques(Q%):� I%,QM%
-� Q%=0 QM%=60 � � Q%=1 QM%=71 � QM%=62+Q%
9� I%=0 � 8:� ?(�+64+I%*32+Q%)<>0 ?(�+48+I%*32+Q%)=QM%
$�:�
.:
8,� �hide_ques(P%,Q%):?(�+48+P%*32+Q%)=0:�
B:
L� �tower
VW�:�"IronLoad <IronLord$Dir>.Tower "+�~(S%+&5A0):!from=S%:!to=T%:� copy:Ȕ !from,!to
`
Z%=0:�
j�� copy:� �TzQ:�rect(32,464,448,264,�):�12:� 112,700:�"Save game":� 112,664:�"Load game":� 64,628:�"Raise armies":� 112,592:�"Go to war":�176,520:�"Leave"
t*IronFadeIn 15
~.ȗ � 384,548:ȗ � 2:�rel_mouse:�3,13:OO%=0
�h�:ȗMX%,MY%,B%:O%=0:�MX%>60�MX%<452 � O%=7:�:O%-=1:�O%=0 � MY%>448+O%*36 � MY%<488+O%*36:� O%=2 O%=0
�4� O%<>OO% � OO%<>0 Ȗ:ȓ Ȑ 60,452+OO%*36,392,36
�2� O%<>OO% � O%<>0 Ȗ:ȓ Ȑ 60,452+O%*36,392,36
�OO%=O%:�B%<>0 � O%<>0:ȗ �
�ȗ �:*IronFadeOut
�� O%<>1 � copy:� �TzQ
�Ȏ O% �
�� 6: �save_game
�� 5: �load_game
�� 4: �raise_armies
�
� 3: �war
�
� 1: Z%=2
�

� Z%<>0
!V%=0:A%=392:B%=252:C%=&FC:�:�
:
(� �save_game:� �
2� � � �file_error:�
<Y�rect(304,236,668,324,�):�12:� 496,540:�"Save game":�4,28,10,19,29,11,31,0,2:�12:�129
F'�"Enter filename :"':*IronFadeIn 15
P*FX 21,0
Z�:�0,4)""F$:� F$<>""
d+�"Save "+F$+" "+�~�+"+200":�"Stamp "+F$
n!� 28,0,31,39,0,5:*IronFadeOut
x�
�:
�� �load_game:� �
�� � � �file_error:�
�Y�rect(304,236,668,324,�):�12:� 496,540:�"Load game":�4,28,10,19,29,11,31,0,2:�12:�129
�'�"Enter filename :"':*IronFadeIn 15
�*FX 21,0
��:�0,4)""F$:� F$<>""
Ȋș"OS_File",5,F$ � OT%,,,,OL%:� OT%=0 � 214,"File '"+F$+"' not found" � � OT%<>1 � OL%<>&200 � 214,"File '"+F$+"' is not a saved game"
��"Load "+F$+" "+�~�
�� ?(�+&164)=1 Z%=10
�!� 28,0,31,39,0,5:*IronFadeOut
��
�:
� �file_error
%�:�:�4,0);"** Error **":*FX 21,0
X%=9-�(�$)/2:� X%<0 X%=0
";�X%,2)�$:�rel_mouse:�:ȗ MX%,MY%,B%:� B%<>0 � �(0)<>-1
,!� 28,0,31,39,0,5:*IronFadeOut
6�
@:
J� �raise_armies
T$N%=0:�I%=&155�&15B:N%+=?(�+I%):�
^9�rect(320,268,640,264,�):WW%=18:WXC%=640:WYC%=400:�12
h+� N%=1 N$="1 army." � N$=�N%+" armies."
rp� N%=0 �wwpr("You have not yet managed to raise any armies.") � �wwpr("You are currently able to raise "+N$)
|*IronFadeIn 15
��mouse:*IronFadeOut
��
�:
�
� �war
�$N%=0:�I%=&155�&15B:N%+=?(�+I%):�
��� N%=0 �rect(336,300,608,200,�):WW%=18:WXC%=640:WYC%=400:�12:�wwpr("You cannot yet go to war, as you have not raised any armies.") � �rect(288,368,704,72,�):�12:�320,416:�"Prepare for battle !":Z%=8
�*IronFadeIn 15
��mouse:*IronFadeOut
��
�:
�#� �rect(X%,Y%,W%,D%,L%):� C%,N%
�Y� L% �12:� X%,Y%-4:� X%+W%+4,Y%-4:� X%+W%+4,Y%+D%:�11:Ȓ X%-4,Y%-4:Ȓ X%+W%+4,Y%+D%+4
�e� N%:� L%=1 � N%:� C%:� C%:ȓ X%,Y%,W%,D%:X%+=4:Y%+=4:W%-=8:D%-=8:�:� C%:� C%:ȓ Ȑ X%,Y%,W%,D%:�
:
� Data for boxes
� 4,13,13,14,8,7
&� 7,8,14,13,13,12,11,0,15
0� 4,1,2,3,4,6
:� 4,4,4,3,2,1
D� 3,11,8,7,6
N:
X
� �asm
b sp=13:link=14:OS_WriteI=&100
l� O%=0 � 2 � 2
vP%=code%
�[OPT O%
�.loadpic
�/LDR R11,scradd2:LDR R12,scradd:MOV R10,#194
�	.pcmv
��LDRB R0,[R11],#1:STRB R0,[R12],#1:LDRB R0,[R11],#1:STRB R0,[R12],#1:LDMIA R11!,{R0-R8}:STMIA R12!,{R0-R8}:LDMIA R11!,{R0-R9}:STMIA R12!,{R0-R9}:LDRB R0,[R11],#1:STRB R0,[R12],#1:LDRB R0,[R11],#1:STRB R0,[R12],#1
�,ADD R12,R12,#80:SUBS R10,R10,#1:BNE pcmv
�MOV PC,link
�.scradd EQUD S%+&1E2
�.scradd2 EQUD T%+2
�\ Wait for R1 frame syncs
�.delay MOV R0,#19
�<.dellp SWI "OS_Byte":SUBS R3,R3,#1:BNE dellp:MOV PC,link
�\ Draw background
.drtbl LDR R7,pspadd
'MOV R0,#112:MOV R1,#2:SWI "OS_Byte"
OMOV R0,#280:MOV R1,R7:ADR R2,sname:MOV R3,#48:STR R3,[R2]:SWI "OS_SpriteOp"
 3MOV R0,#34:ADD R0,R0,#512:MOV R4,#800:MOV R5,#8
*.dbglp MOV R3,#1200
4P.dbglp2 SWI "OS_SpriteOp":SUBS R3,R3,#80:BPL dbglp2:SUBS R4,R4,#80:BPL dbglp
>YLDRB R0,[R6],#1:MOV R8,R0,LSL#8:LDRB R0,[R6],#1:�R R8,R8,R0:MOV R9,#34:ADD R9,R9,#256
H|.dpllp LDRB R0,[R6],#1:MOV R3,R0,LSL#10:LDRB R0,[R6],#1:�R R3,R3,R0,LSL#2:LDRB R0,[R6],#1:MOV R4,R0,LSL#2:RSB R4,R4,#796
R�LDRB R0,[R6],#1:ADR R1,sname:MOV R2,#4:SWI "OS_ConvertCardinal1":MOV R2,R0:MOV R1,R7:MOV R0,R9:SWI "OS_SpriteOp":SUBS R8,R8,#1:BNE dpllp
\3MOV R0,#112:MOV R1,#1:SWI "OS_Byte":MOV PC,link
f.sname EQUD 0
p\ Copy screen
zE.copy STMFD (sp)!,{R6-R12,link}:MOV R0,#200:LDR R1,from:LDR R2,to
��.clp LDMIA R1!,{R3-R12}:STMIA R2!,{R3-R12}:LDMIA R1!,{R3-R12}:STMIA R2!,{R3-R12}:LDMIA R1!,{R3-R12}:STMIA R2!,{R3-R12}:LDMIA R1!,{R3-R12}:STMIA R2!,{R3-R12}:SUBS R0,R0,#1:BNE clp:LDMFD (sp)!,{R6-R12,PC}
�\
�.from EQUD MAP%
�.to EQUD S%
�.sadd EQUD S%
�.tadd EQUD T%
�.bank EQUD 2
ʊ.gltab EQUD CSP%+&1F8C:EQUD CSP%+&24F8:EQUD CSP%+&2A64:EQUD CSP%+&2FD0:EQUD CSP%+&353C:EQUD CSP%+&3AA8:EQUD CSP%+&4014:EQUD CSP%+&4580
�\ Gallop
�4.gallop STMFD (sp)!,{link}:MOV R12,R0:MOV R11,R1
�DLDR R9,[R12],#4:LDR R10,[R12],#4:MOV R0,#4:STR R0,wxi:STR R0,wyi
�nSUB R7,R9,#32:CMP R7,#32:MOVLE R7,#32:CMP R7,#1020:MOVGT R7,#1020:SUB R8,R10,#32:CMP R8,#604:MOVGT R8,#604
�vADD R0,R7,#124:ADD R1,R8,#80:�R R0,R0,R1,LSL#16:STR R0,stw+4:ADD R0,R0,#&40000:ADD R0,R0,#4:STR R0,stw+8:MOV R6,#0
.galp1 BL copy
\ Little Horse
JLDRB R0,[R12],#1:TEQ R0,#&FF:BEQ nolh:LDR R2,gspadd:ADD R2,R2,R0,LSL#2
$\MOV R0,#34:ADD R0,R0,#512:LDR R1,cspadd:MOV R3,R9:MOV R4,R10:MOV R5,#8:SWI "OS_SpriteOp"
.\ Big horse
8	.nolh
B�ADR R0,stw:ADD R0,R0,#3:MOV R1,#9:LDR R2,wxi:TEQ R2,#124:SWINE "OS_WriteN":MOV R0,#34:ADD R0,R0,#512:ADR R2,gltab:LDR R2,[R2,R6]:MOV R3,R7:MOV R4,R8:MOV R5,#0:SWI "OS_SpriteOp":ADR R0,rsw:MOV R1,#12:SWI "OS_WriteN"
L\
V�MOV R3,#4:BL delay:MOV R0,#113:LDR R1,bank:SWI "OS_Byte":STR R1,bank:ADR R2,sadd-4:LDR R2,[R2,R1,LSL#2]:STR R2,to:MOV R0,#112:SWI "OS_Byte"
`[SWI "OS_Mouse":TEQ R2,#0:LDMNEFD (sp)!,{PC}:SWI "OS_ReadEscapeState":LDMCSFD (sp)!,{PC}
j$ADD R6,R6,#4:CMP R6,#32:�Q R6,#0
tjADD R7,R7,R11:CMP R7,#32:MOVLT R7,#32:CMP R7,#988:MOVGT R7,#988:ADD R8,R8,#4:CMP R8,#604:MOVGT R8,#604
~�LDR R0,wxi:TEQ R0,#124:BEQ nowch:LDR R1,wyi:ADD R2,R7,#124:ADD R3,R8,#80:SUB R4,R2,R0:SUB R5,R3,R1:�R R4,R4,R5,LSL#16:STR R4,stw+4
��ADD R4,R2,R0:ADD R4,R4,#4:ADD R5,R3,R1:ADD R5,R5,#4:�R R4,R4,R5,LSL#16:STR R4,stw+8:ADD R0,R0,#4:STR R0,wxi:ADD R1,R1,#4:STR R1,wyi
�
.nowch
�|LDRB R0,[R12],#1:TST R0,#1:ADDNE R9,R9,#4:TST R0,#2:SUBNE R9,R9,#4:TST R0,#4:ADDNE R10,R10,#4:TST R0,#8:SUBNE R10,R10,#4
�*TEQ R0,#&FF:BNE galp1:LDMFD (sp)!,{PC}
�\ Scrolling places
��.move STMFD (sp)!,{link}:MOV R8,R0:MOV R9,R1:MOV R10,R2:MOV R12,R3:MVN R0,#0:STR R0,ltxt:MOV R0,#21:ADR R1,rmouse:SWI "OS_Word":MOV R0,#21:MOV R1,#9:SWI "OS_Byte"
�hMOV R0,#9:ADD R0,R0,#256:LDR R1,pspadd:SWI "OS_SpriteOp":MOV R11,#0:MOV R0,#&53:STR R0,sname:B notxt
�#.mvlp LDR R3,txt:LDR R4,[R3],#4
ؚ.ftl SUBS R4,R4,#1:BMI notxt:LDR R0,[R3],#4:LDR R1,[R3],#4:� R2,R0,#255:CMP R2,R8,LSR#2:BGT ftl:MOV R2,R0,LSR#6:� R2,R2,#%1111111100:CMP R2,R9:BGT ftl
�sMOV R2,R0,LSR#14:� R2,R2,#%1111111100:CMP R2,R8:BLT ftl:MOV R2,R0,LSR#22:� R2,R2,#%1111111100:CMP R2,R9:BLT ftl
�LDR R0,ltxt:CMP R0,R4:BEQ notxt:STR R4,ltxt:ADD R3,R3,R1:ADR R0,clrtxt:MOV R1,#12:SWI "OS_WriteN":LDRB R4,[R3],#1:MOV R2,R4,LSL#4:ADD R2,R2,#176
��.txtl MOV R0,#188:LDRB R1,[R3],#1:MOV R1,R1,LSL#4:RSB R1,R1,#968:SWI "OS_Plot":MOV R0,R3:SWI "OS_Write0":MOV R3,R0:SUB R2,R2,#32:SUBS R4,R4,#1:BNE txtl
�.notxt MOV R0,#112:MOV R1,#2:SWI "OS_Byte":MOV R0,#272:LDR R1,pspadd:ADR R2,sname:MOV R3,#0:MOV R4,R8:MOV R5,R9:ADD R6,R4,#316:ADD R7,R5,#232:SWI "OS_SpriteOp":MOV R0,#112:MOV R1,#1:SWI "OS_Byte":MOV R3,#2:BL delay

�MOV R0,#34:ADD R0,R0,#512:LDR R1,pspadd:ADD R2,R1,#16:MOV R3,#812:MOV R4,#460:MOV R5,#0:SWI "OS_SpriteOp":MOV R0,#34:ADD R0,R0,#512:LDR R1,cspadd:ADD R2,R1,R10:ADD R2,R2,R11:� R11,R11,#&140:MOV R3,#964:MOV R4,#568:MOV R5,#8:SWI "OS_SpriteOp"
k.klp BL tstkey:TST R6,#16:BLNE rtn:TST R6,#1:BNE ml:TST R6,#2:BNE mr:TST R6,#8:BNE mu:TST R6,#4:BEQ klp
.md MOV R0,#964:MOV R1,#564
(�.mdlp SWI "OS_ReadPoint":TEQ R2,#7:TEQNE R2,#8:TEQNE R2,#15:BNE klp:ADD R0,R0,#4:TEQ R0,#984:BNE mdlp:SUB R9,R9,#4:MOV R10,#&B0:B mvlp
2.mu MOV R0,#964:MOV R1,#588
<�.mulp SWI "OS_ReadPoint":TEQ R2,#7:TEQNE R2,#8:TEQNE R2,#15:BNE klp:ADD R0,R0,#4:TEQ R0,#984:BNE mulp:ADD R9,R9,#4:MOV R10,#&10:B mvlp
F.ml MOV R0,#960:MOV R1,#568
P�.mllp SWI "OS_ReadPoint":TEQ R2,#7:TEQNE R2,#8:TEQNE R2,#15:BNE klp:ADD R1,R1,#4:TEQ R1,#588:BNE mllp:SUB R8,R8,#4:MOV R10,#&FC:B mvlp
Z.mr MOV R0,#984:MOV R1,#568
d�.mrlp SWI "OS_ReadPoint":TEQ R2,#7:TEQNE R2,#8:TEQNE R2,#15:BNE klp:ADD R1,R1,#4:TEQ R1,#588:BNE mrlp:ADD R8,R8,#4:MOV R10,#&5C:B mvlp
n".rtn MOV R2,R12:LDR R1,[R2],#4
x�.rtnl SUBS R1,R1,#1:MOVMI PC,link:LDR R5,[R2],#4:MOV R3,R5,LSR#20:� R4,R5,#%1111111100:CMP R3,R8:CMPLE R4,R9:BGT rtnl:ADD R3,R3,#32:ADD R4,R4,#32:CMP R3,R8:CMPGT R4,R9:BLE rtnl:MOV R0,R5,LSR#10:LDMFD (sp)!,{PC}
�
\ Data
�3.stw EQUB 0:EQUB 0:EQUB 0:EQUB 24:EQUD 0:EQUD 0
�:.rsw EQUB 0:EQUB 0:EQUB 0:EQUB 24:EQUD 0:EQUD &31F04FF
�.pspadd EQUD PSP%
�.sspadd EQUD SSP%
�.gspadd EQUD CSP%+&4AEC
�.cspadd EQUD CSP%
�.bhx EQUD 0
�.bhy EQUD 0
�.lhx EQUD 0
�.lhy EQUD 0
�.wxi EQUD 0
�.wyi EQUD 0
*.rmouse EQUB 3:EQUW 640:EQUW 400:ALIGN
\
7.tstkey SWI "OS_ReadEscapeState":LDMCSFD (sp)!,{PC}
"�MOV R6,#0:MOV R0,#121:MOV R1,#left%:SWI "OS_Byte":TEQ R1,#0:�RNE R6,R6,#1:MOV R1,#right%:SWI "OS_Byte":TEQ R1,#0:�RNE R6,R6,#2:MOV R1,#down%:SWI "OS_Byte":TEQ R1,#0:�RNE R6,R6,#4:MOV R1,#up%:SWI "OS_Byte":TEQ R1,#0:�RNE R6,R6,#8
,�LDR R1,lastcomb:STR R6,lastcomb:�S R1,R1,R6:LDREQ R6,lastkey:BEQ gtkey:�S R2,R1,R6:MOVNE R6,R2:BNE gtkey:LDR R2,lastkey:TST R1,R2:�Q R6,R2
6[.gtkey �S R1,R6,#1:�EQS R1,R6,#2:�EQS R1,R6,#4:�EQS R1,R6,#8:MOVNE R6,R1:STR R6,lastkey
@PMOV R1,#fire%:SWI "OS_Byte":TEQ R1,#0:�RNE R6,R6,#16:TEQ R6,#0:MOVNE PC,link
J�SWI "OS_Mouse":TST R2,#4:BEQ mrtn:SUBS R3,R0,#640:RSBMI R3,R3,#0:SUBS R4,R1,#400:RSBMI R4,R4,#0:CMP R3,#1:MOVLS R3,#0:CMP R4,#1:MOVLS R4,#0:CMP R3,R4:BEQ nomov:BGT xgt:CMP R1,#400:�RLT R6,R6,#4:�RGT R6,R6,#8:B mrtn
T7.xgt CMP R0,#640:�RLT R6,R6,#1:�RGT R6,R6,#2:B mrtn
^.nomov LDR R6,lastmkey
he.mrtn STR R6,lastmkey:TST R2,#3:�RNE R6,R6,#16:MOV R0,#21:ADR R1,rmouse:SWI "OS_Word":MOV PC,link
r\
|.lastkey EQUD 0
�.lastmkey EQUD 0
�.lastcomb EQUD 0
�\
�.txt EQUD 0
�.ltxt EQUD 0
�Q.clrtxt EQUB 25:EQUB 188:EQUW 696:EQUW 36:EQUB 25:EQUB 103:EQUW 1236:EQUW 320
�\
�.message STMFD (sp)!,{link}
�wLDR R7,ypos:ADR R8,textbuf:MOV R9,#0:MOV R10,#1:LDR R11,textdat:ADD R12,R11,#256:ADD R6,R11,#512:TEQ R0,#0:BEQ mslp
�<.msct LDRB R1,[R6],#1:CMP R1,#0:SUBEQS R0,R0,#1:BNE msct
�@.mslp LDRB R0,[R6],#1:TEQ R0,#0:BEQ printbuf:BL print:B mslp
�\
�.print STMFD (sp)!,{link}
*LDRB R1,[R11,R0]:TEQ R1,R0:BEQ printit
8STMFD (sp)!,{R0}:MOV R0,R1:BL print:LDMFD (sp)!,{R0}
LDRB R0,[R12,R0]:BL print
&LDMFD (sp)!,{PC}
0.printit
:*TEQ R0,#1:�Q R10,R0:LDMEQFD (sp)!,{PC}
D?CMP R0,#96:BLT notuc:TEQ R10,#0:BICNE R0,R0,#&20:MOV R10,#0
N?.notuc TEQ R0,#�".":TEQNE R0,#�"?":TEQNE R0,#�"!":�Q R10,#1
X>STRB R0,[R8,R9]:ADD R9,R9,#1:CMP R9,#18:LDMNEFD (sp)!,{PC}
b?.fdsplp SUBS R9,R9,#1:LDRB R0,[R8,R9]:CMP R0,#32:BNE fdsplp
l
.printbuf
vGMOV R0,#968:SUBS R0,R0,R9,LSL#4:�R R0,R0,R7,LSL#16:STR R0,movevdu+4
�1ADR R0,movevdu+2:ADD R1,R9,#6:SWI "OS_WriteN"
�=SUB R7,R7,#32:STR R7,ypos:MOV R1,#0:TEQ R9,#17:BEQ nmvbuf
�].mvbuflp ADD R9,R9,#1:LDRB R0,[R8,R9]:STRB R0,[R8,R1]:ADD R1,R1,#1:CMP R9,#17:BLT mvbuflp
�&.nmvbuf MOV R9,R1:LDMFD (sp)!,{PC}
�\
�.textdat EQUD TXT%
�).movevdu EQUW 0:EQUB 25:EQUB 4:EQUD 0
�.textbuf EQUS �18,�0):ALIGN
�.ypos EQUD 0
�]
�8� P%>(code%+space%) � 15:�"Not enough code space.":�
��
��
:
� �error:� � �
� 15:�:֓+&214:*IronTuneOff
 
*FX 20
*Q� �=17 �"Goodbye." � �"Iron Lord has stopped because of a fatal error :-"''�$
4�
�
00000000  0d 00 0a 20 f4 20 3e 3a  49 72 6f 6e 4c 6f 72 64  |... . >:IronLord|
00000010  2e 21 49 72 6f 6e 4c 6f  72 64 2e 49 72 6f 6e 31  |.!IronLord.Iron1|
00000020  0d 00 14 18 f4 20 28 43  29 20 31 39 39 30 20 55  |..... (C) 1990 U|
00000030  42 49 20 73 6f 66 74 2e  0d 00 1e 3c f4 20 41 72  |BI soft....<. Ar|
00000040  63 68 69 6d 65 64 65 73  20 76 65 72 73 69 6f 6e  |chimedes version|
00000050  20 62 79 20 43 79 67 6e  75 73 20 53 6f 66 74 77  | by Cygnus Softw|
00000060  61 72 65 20 45 6e 67 69  6e 65 65 72 69 6e 67 20  |are Engineering |
00000070  4c 74 64 2e 0d 00 28 05  3a 0d 00 32 10 ee 20 85  |Ltd...(.:..2.. .|
00000080  20 f2 65 72 72 6f 72 3a  e0 0d 00 3c 05 3a 0d 00  | .error:...<.:..|
00000090  46 9e 73 70 61 63 65 25  3d 26 39 32 43 3a de 20  |F.space%=&92C:. |
000000a0  4d 53 25 28 36 2c 33 29  2c 53 50 25 28 36 2c 34  |MS%(6,3),SP%(6,4|
000000b0  29 2c 4d 56 25 28 36 2c  36 29 2c 4f 42 25 28 31  |),MV%(6,6),OB%(1|
000000c0  38 29 2c 43 53 54 25 28  32 32 29 2c 63 6f 64 65  |8),CST%(22),code|
000000d0  25 20 73 70 61 63 65 25  2c 43 53 50 25 20 26 34  |% space%,CSP% &4|
000000e0  44 34 43 2c 50 53 50 25  20 26 35 39 36 30 2c 53  |D4C,PSP% &5960,S|
000000f0  53 50 25 20 26 32 38 30  2c 52 54 25 20 26 31 42  |SP% &280,RT% &1B|
00000100  30 34 2c 50 44 54 25 20  26 41 44 35 2c 54 58 54  |04,PDT% &AD5,TXT|
00000110  25 20 26 31 32 38 31 2c  4d 41 50 25 20 26 37 44  |% &1281,MAP% &7D|
00000120  30 30 2c 54 42 4c 25 20  26 44 31 45 0d 00 50 0f  |00,TBL% &D1E..P.|
00000130  21 50 53 50 25 3d 26 35  39 36 30 0d 00 5a 2c 21  |!PSP%=&5960..Z,!|
00000140  53 53 50 25 3d 26 32 38  30 3a 53 53 50 25 21 34  |SSP%=&280:SSP%!4|
00000150  3d 30 3a 53 53 50 25 21  38 3d 31 36 3a 53 53 50  |=0:SSP%!8=16:SSP|
00000160  25 21 31 32 3d 31 36 0d  00 64 3e 21 43 53 50 25  |%!12=16..d>!CSP%|
00000170  3d 26 34 44 34 43 3a ff  22 49 72 6f 6e 4c 6f 61  |=&4D4C:."IronLoa|
00000180  64 20 3c 49 72 6f 6e 4c  6f 72 64 24 44 69 72 3e  |d <IronLord$Dir>|
00000190  2e 4d 61 69 6e 53 70 72  20 22 2b c3 7e 28 43 53  |.MainSpr "+.~(CS|
000001a0  50 25 2b 34 29 0d 00 6e  2a ff 22 49 72 6f 6e 4c  |P%+4)..n*."IronL|
000001b0  6f 61 64 20 3c 49 72 6f  6e 4c 6f 72 64 24 44 69  |oad <IronLord$Di|
000001c0  72 3e 2e 4d 61 70 20 22  2b c3 7e 4d 41 50 25 0d  |r>.Map "+.~MAP%.|
000001d0  00 78 2c ff 22 49 72 6f  6e 4c 6f 61 64 20 3c 49  |.x,."IronLoad <I|
000001e0  72 6f 6e 4c 6f 72 64 24  44 69 72 3e 2e 52 6f 75  |ronLord$Dir>.Rou|
000001f0  74 65 73 20 22 2b c3 7e  52 54 25 0d 00 82 27 ff  |tes "+.~RT%...'.|
00000200  22 4c 6f 61 64 20 3c 49  72 6f 6e 4c 6f 72 64 24  |"Load <IronLord$|
00000210  44 69 72 3e 2e 54 65 78  74 20 22 2b c3 7e 54 58  |Dir>.Text "+.~TX|
00000220  54 25 0d 00 8c 29 ff 22  4c 6f 61 64 20 3c 49 72  |T%...)."Load <Ir|
00000230  6f 6e 4c 6f 72 64 24 44  69 72 3e 2e 54 61 62 6c  |onLord$Dir>.Tabl|
00000240  65 73 20 22 2b c3 7e 54  42 4c 25 0d 00 96 2c ff  |es "+.~TBL%...,.|
00000250  22 4c 6f 61 64 20 3c 49  72 6f 6e 4c 6f 72 64 24  |"Load <IronLord$|
00000260  44 69 72 3e 2e 50 6c 61  63 65 44 61 74 61 20 22  |Dir>.PlaceData "|
00000270  2b c3 7e 50 44 54 25 0d  00 a0 7e f7 20 8d 44 4e  |+.~PDT%...~. .DN|
00000280  42 3a e3 20 49 25 3d 30  20 b8 20 36 3a e3 20 4a  |B:. I%=0 . 6:. J|
00000290  25 3d 30 20 b8 20 33 3a  f3 20 4d 53 25 28 49 25  |%=0 . 3:. MS%(I%|
000002a0  2c 4a 25 29 3a ed 3a e3  20 4a 25 3d 30 20 b8 20  |,J%):.:. J%=0 . |
000002b0  34 3a f3 20 53 50 25 28  49 25 2c 4a 25 29 3a ed  |4:. SP%(I%,J%):.|
000002c0  3a e3 20 4a 25 3d 30 20  b8 20 36 3a f3 20 4d 56  |:. J%=0 . 6:. MV|
000002d0  25 28 49 25 2c 4a 25 29  3a ed 3a ed 3a e3 20 49  |%(I%,J%):.:.:. I|
000002e0  25 3d 30 20 b8 20 32 32  3a f3 20 43 53 54 25 28  |%=0 . 22:. CST%(|
000002f0  49 25 29 3a ed 0d 00 aa  40 6c 65 66 74 25 3d 32  |I%):....@left%=2|
00000300  32 35 3a 72 69 67 68 74  25 3d 31 39 34 3a 64 6f  |25:right%=194:do|
00000310  77 6e 25 3d 32 33 32 3a  75 70 25 3d 32 30 37 3a  |wn%=232:up%=207:|
00000320  66 69 72 65 25 3d 32 30  31 3a 55 25 3d a3 3a 6e  |fire%=201:U%=.:n|
00000330  6d 74 25 3d b9 0d 00 b4  3e c8 99 22 4f 53 5f 4d  |mt%=....>.."OS_M|
00000340  6f 64 75 6c 65 22 2c 31  38 2c 22 49 72 6f 6e 4c  |odule",18,"IronL|
00000350  6f 72 64 53 75 70 70 6f  72 74 22 20 b8 20 2c 2c  |ordSupport" . ,,|
00000360  2c 2c 6d 73 73 61 25 3a  6d 73 73 61 25 2b 3d 26  |,,mssa%:mssa%+=&|
00000370  32 30 34 0d 00 be 3f c8  99 22 53 6f 75 6e 64 5f  |204...?.."Sound_|
00000380  53 70 65 61 6b 65 72 22  2c 30 20 b8 69 73 73 25  |Speaker",0 .iss%|
00000390  3a c8 99 22 53 6f 75 6e  64 5f 56 6f 6c 75 6d 65  |:.."Sound_Volume|
000003a0  22 2c 30 20 b8 76 6f 6c  25 3a 76 6f 6c 25 2d 3d  |",0 .vol%:vol%-=|
000003b0  36 34 0d 00 c8 08 f2 61  73 6d 0d 00 d2 05 3a 0d  |64.....asm....:.|
000003c0  00 dc 05 f5 0d 00 e6 0c  20 c8 8e 20 5a 25 20 ca  |........ .. Z% .|
000003d0  0d 00 f0 25 20 20 c9 20  30 3a 5a 25 3d 31 3a 42  |...%  . 0:Z%=1:B|
000003e0  25 3d a6 28 35 30 30 29  3a 2a 49 72 6f 6e 46 61  |%=.(500):*IronFa|
000003f0  64 65 4f 75 74 0d 00 fa  0e 20 20 c9 20 31 3a f2  |deOut....  . 1:.|
00000400  6d 61 70 0d 01 04 10 20  20 c9 20 32 3a f2 70 6c  |map....  . 2:.pl|
00000410  61 63 65 0d 01 0e 11 20  20 c9 20 33 3a f2 70 65  |ace....  . 3:.pe|
00000420  72 73 6f 6e 0d 01 18 27  20 20 c9 20 34 3a ee 20  |rson...'  . 4:. |
00000430  85 20 87 3a d7 22 3c 49  72 6f 6e 4c 6f 72 64 24  |. .:."<IronLord$|
00000440  44 69 72 3e 2e 49 72 6f  6e 32 22 0d 01 22 27 20  |Dir>.Iron2".."' |
00000450  20 c9 20 35 3a ee 20 85  20 87 3a d7 22 3c 49 72  | . 5:. . .:."<Ir|
00000460  6f 6e 4c 6f 72 64 24 44  69 72 3e 2e 49 72 6f 6e  |onLord$Dir>.Iron|
00000470  33 22 0d 01 2c 10 20 20  c9 20 36 3a f2 74 6f 77  |3"..,.  . 6:.tow|
00000480  65 72 0d 01 36 27 20 20  c9 20 37 3a ee 20 85 20  |er..6'  . 7:. . |
00000490  87 3a d7 22 3c 49 72 6f  6e 4c 6f 72 64 24 44 69  |.:."<IronLord$Di|
000004a0  72 3e 2e 49 72 6f 6e 34  22 0d 01 40 27 20 20 c9  |r>.Iron4"..@'  .|
000004b0  20 38 3a ee 20 85 20 87  3a d7 22 3c 49 72 6f 6e  | 8:. . .:."<Iron|
000004c0  4c 6f 72 64 24 44 69 72  3e 2e 49 72 6f 6e 35 22  |Lord$Dir>.Iron5"|
000004d0  0d 01 4a 27 20 20 c9 20  39 3a ee 20 85 20 87 3a  |..J'  . 9:. . .:|
000004e0  d7 22 3c 49 72 6f 6e 4c  6f 72 64 24 44 69 72 3e  |."<IronLord$Dir>|
000004f0  2e 49 72 6f 6e 37 22 0d  01 54 28 20 20 c9 20 31  |.Iron7"..T(  . 1|
00000500  30 3a ee 20 85 20 87 3a  d7 22 3c 49 72 6f 6e 4c  |0:. . .:."<IronL|
00000510  6f 72 64 24 44 69 72 3e  2e 49 72 6f 6e 36 22 0d  |ord$Dir>.Iron6".|
00000520  01 5e 06 20 cb 0d 01 68  07 fd 20 a3 0d 01 72 05  |.^. ...h.. ...r.|
00000530  e0 0d 01 7c 05 3a 0d 01  86 0a dd 20 f2 6d 61 70  |...|.:..... .map|
00000540  0d 01 90 1f e7 20 6e 6d  74 25 20 6e 6d 74 25 3d  |..... nmt% nmt%=|
00000550  a3 3a 2a 49 72 6f 6e 54  75 6e 65 4f 6e 20 30 0d  |.:*IronTuneOn 0.|
00000560  01 9a 2b 21 66 72 6f 6d  3d 4d 41 50 25 3a 21 74  |..+!from=MAP%:!t|
00000570  6f 3d 53 25 3a d6 20 63  6f 70 79 3a 2a 49 72 6f  |o=S%:. copy:*Iro|
00000580  6e 46 61 64 65 49 6e 20  31 34 0d 01 a4 31 c8 97  |nFadeIn 14...1..|
00000590  20 b8 20 53 50 25 28 56  25 2c 30 29 2c 53 50 25  | . SP%(V%,0),SP%|
000005a0  28 56 25 2c 31 29 3a c8  97 20 ee 20 32 3a 4f 56  |(V%,1):.. . 2:OV|
000005b0  25 3d 56 25 3a 4d 56 25  3d 2d 31 0d 01 ae 10 f5  |%=V%:MV%=-1.....|
000005c0  3a f2 72 65 6c 5f 6d 6f  75 73 65 0d 01 b8 1d f5  |:.rel_mouse.....|
000005d0  3a e7 a6 28 2d 31 31 34  29 20 f2 73 6f 75 6e 64  |:..(-114) .sound|
000005e0  5f 63 6f 6e 74 72 6f 6c  0d 01 c2 18 c8 97 20 4d  |_control...... M|
000005f0  58 25 2c 4d 59 25 2c 42  25 3a fd 42 25 3c 3e 30  |X%,MY%,B%:.B%<>0|
00000600  0d 01 cc 66 e3 20 49 25  3d 30 20 b8 20 36 3a e7  |...f. I%=0 . 6:.|
00000610  20 4d 58 25 3e 4d 53 25  28 49 25 2c 30 29 20 80  | MX%>MS%(I%,0) .|
00000620  20 4d 59 25 3e 4d 53 25  28 49 25 2c 31 29 20 80  | MY%>MS%(I%,1) .|
00000630  20 4d 58 25 3c 4d 53 25  28 49 25 2c 32 29 20 80  | MX%<MS%(I%,2) .|
00000640  20 4d 59 25 3c 4d 53 25  28 49 25 2c 33 29 20 8c  | MY%<MS%(I%,3) .|
00000650  20 56 25 3d 49 25 3a 4d  56 25 3d 4d 56 25 28 4f  | V%=I%:MV%=MV%(O|
00000660  56 25 2c 56 25 29 0d 01  d6 1f ed 3a fd 20 4d 56  |V%,V%).....:. MV|
00000670  25 3c 3e 2d 31 3a c8 97  20 87 3a f2 72 65 6c 5f  |%<>-1:.. .:.rel_|
00000680  6d 6f 75 73 65 0d 01 e0  0e e7 20 4d 56 25 3e 3d  |mouse..... MV%>=|
00000690  30 20 8c 0d 01 ea 1c 20  41 25 3d 52 54 25 2b 4d  |0 ..... A%=RT%+M|
000006a0  56 25 3a 42 25 3d 21 41  25 3a 41 25 2b 3d 34 0d  |V%:B%=!A%:A%+=4.|
000006b0  01 f4 35 20 e7 20 42 25  3d 34 20 e3 20 49 25 3d  |..5 . B%=4 . I%=|
000006c0  30 20 b8 20 37 3a c8 99  22 4f 53 5f 53 70 72 69  |0 . 7:.."OS_Spri|
000006d0  74 65 4f 70 22 2c 33 30  33 2c 43 53 50 25 2c c3  |teOp",303,CSP%,.|
000006e0  49 25 3a ed 0d 01 fe 2e  20 21 62 61 6e 6b 3d 32  |I%:..... !bank=2|
000006f0  3a 21 74 6f 3d 54 25 3a  c8 99 22 4f 53 5f 42 79  |:!to=T%:.."OS_By|
00000700  74 65 22 2c 31 31 32 2c  32 3a d6 20 67 61 6c 6c  |te",112,2:. gall|
00000710  6f 70 0d 02 08 35 20 e7  20 42 25 3d 34 20 e3 20  |op...5 . B%=4 . |
00000720  49 25 3d 30 20 b8 20 37  3a c8 99 22 4f 53 5f 53  |I%=0 . 7:.."OS_S|
00000730  70 72 69 74 65 4f 70 22  2c 33 30 33 2c 43 53 50  |priteOp",303,CSP|
00000740  25 2c c3 49 25 3a ed 0d  02 12 12 cd 3a 2a 49 72  |%,.I%:......:*Ir|
00000750  6f 6e 46 61 64 65 4f 75  74 0d 02 1c 76 c8 99 22  |onFadeOut...v.."|
00000760  4f 53 5f 42 79 74 65 22  2c 31 31 32 2c 31 3a c8  |OS_Byte",112,1:.|
00000770  99 22 4f 53 5f 42 79 74  65 22 2c 31 31 33 2c 31  |."OS_Byte",113,1|
00000780  3a e7 20 56 25 3d 32 20  84 20 56 25 3d 34 20 5a  |:. V%=2 . V%=4 Z|
00000790  25 3d 33 20 8b 20 5a 25  3d 32 3a 41 25 3d 53 50  |%=3 . Z%=2:A%=SP|
000007a0  25 28 56 25 2c 32 29 3a  42 25 3d 53 50 25 28 56  |%(V%,2):B%=SP%(V|
000007b0  25 2c 33 29 3a 43 25 3d  53 50 25 28 56 25 2c 34  |%,3):C%=SP%(V%,4|
000007c0  29 3a e7 20 4d 56 25 3e  3d 30 20 55 25 3d b9 0d  |):. MV%>=0 U%=..|
000007d0  02 26 1f e7 20 5a 25 3c  3e 32 20 6e 6d 74 25 3d  |.&.. Z%<>2 nmt%=|
000007e0  b9 3a 2a 49 72 6f 6e 54  75 6e 65 4f 66 66 0d 02  |.:*IronTuneOff..|
000007f0  30 05 e1 0d 02 3a 05 3a  0d 02 44 13 f4 20 4c 6f  |0....:.:..D.. Lo|
00000800  63 61 74 69 6f 6e 20 64  61 74 61 0d 02 4e 41 dc  |cation data..NA.|
00000810  20 37 38 34 2c 32 38 30  2c 39 30 30 2c 34 32 30  | 784,280,900,420|
00000820  2c 38 32 30 2c 33 30 38  2c 34 38 2c 33 33 32 2c  |,820,308,48,332,|
00000830  26 35 43 2c 20 20 20 2d  32 2c 30 2c 26 31 33 30  |&5C,   -2,0,&130|
00000840  2c 2d 31 2c 2d 31 2c 2d  31 2c 2d 31 0d 02 58 46  |,-1,-1,-1,-1..XF|
00000850  dc 20 33 33 36 2c 36 38  2c 34 36 34 2c 31 38 30  |. 336,68,464,180|
00000860  2c 34 33 36 2c 37 36 2c  36 38 30 2c 32 38 2c 26  |,436,76,680,28,&|
00000870  31 30 2c 20 20 20 20 20  26 32 32 30 2c 2d 32 2c  |10,     &220,-2,|
00000880  26 33 34 34 2c 26 34 34  43 2c 2d 31 2c 2d 31 2c  |&344,&44C,-1,-1,|
00000890  2d 31 0d 02 62 44 dc 20  38 38 30 2c 30 2c 39 38  |-1..bD. 880,0,98|
000008a0  38 2c 38 38 2c 38 38 38  2c 34 38 2c 30 2c 30 2c  |8,88,888,48,0,0,|
000008b0  30 2c 20 20 20 20 20 20  20 20 20 20 20 20 26 35  |0,            &5|
000008c0  31 34 2c 26 36 30 30 2c  2d 32 2c 2d 31 2c 2d 31  |14,&600,-2,-1,-1|
000008d0  2c 2d 31 2c 2d 31 0d 02  6c 48 dc 20 30 2c 32 38  |,-1,-1..lH. 0,28|
000008e0  30 2c 31 30 34 2c 33 36  30 2c 35 36 2c 32 39 36  |0,104,360,56,296|
000008f0  2c 39 32 38 2c 32 36 34  2c 26 46 43 2c 20 20 20  |,928,264,&FC,   |
00000900  20 20 2d 31 2c 26 37 31  30 2c 2d 31 2c 2d 32 2c  |  -1,&710,-1,-2,|
00000910  26 37 44 30 2c 26 38 41  30 2c 26 39 44 38 0d 02  |&7D0,&8A0,&9D8..|
00000920  76 46 dc 20 36 30 2c 35  30 38 2c 31 37 36 2c 35  |vF. 60,508,176,5|
00000930  38 38 2c 31 33 32 2c 35  32 30 2c 30 2c 30 2c 30  |88,132,520,0,0,0|
00000940  2c 20 20 20 20 20 20 20  20 20 2d 31 2c 2d 31 2c  |,         -1,-1,|
00000950  2d 31 2c 26 43 42 43 2c  2d 32 2c 26 44 41 43 2c  |-1,&CBC,-2,&DAC,|
00000960  26 45 37 38 0d 02 80 49  dc 20 34 35 36 2c 35 30  |&E78...I. 456,50|
00000970  30 2c 35 37 32 2c 35 38  38 2c 34 38 38 2c 35 34  |0,572,588,488,54|
00000980  30 2c 32 38 2c 33 35 36  2c 26 35 43 2c 20 20 20  |0,28,356,&5C,   |
00000990  2d 31 2c 2d 31 2c 2d 31  2c 26 31 30 44 43 2c 26  |-1,-1,-1,&10DC,&|
000009a0  31 32 30 43 2c 2d 32 2c  26 31 32 43 43 0d 02 8a  |120C,-2,&12CC...|
000009b0  49 dc 20 31 30 32 30 2c  36 31 36 2c 31 31 39 32  |I. 1020,616,1192|
000009c0  2c 37 33 32 2c 31 31 38  30 2c 36 32 38 2c 36 36  |,732,1180,628,66|
000009d0  30 2c 33 36 2c 26 31 30  2c 2d 31 2c 2d 31 2c 2d  |0,36,&10,-1,-1,-|
000009e0  31 2c 26 31 34 35 30 2c  26 31 37 33 34 2c 26 31  |1,&1450,&1734,&1|
000009f0  39 38 43 2c 2d 32 0d 02  94 0f f4 20 43 6f 73 74  |98C,-2..... Cost|
00000a00  20 64 61 74 61 0d 02 9e  3e dc 20 30 2c 30 2c 30  | data...>. 0,0,0|
00000a10  2c 30 2c 30 2c 30 2c 31  35 30 2c 36 30 2c 30 2c  |,0,0,0,150,60,0,|
00000a20  30 2c 30 2c 31 30 2c 32  33 2c 31 36 2c 32 35 2c  |0,0,10,23,16,25,|
00000a30  31 37 2c 31 32 2c 32 34  2c 35 2c 33 2c 31 39 2c  |17,12,24,5,3,19,|
00000a40  33 2c 35 0d 02 a8 05 3a  0d 02 b2 0c dd 20 f2 6d  |3,5....:..... .m|
00000a50  6f 75 73 65 0d 02 bc 28  f2 72 65 6c 5f 6d 6f 75  |ouse...(.rel_mou|
00000a60  73 65 3a f5 3a c8 97 20  4d 58 25 2c 4d 59 25 2c  |se:.:.. MX%,MY%,|
00000a70  42 25 3a fd 20 42 25 3c  3e 30 3a e1 0d 02 c6 05  |B%:. B%<>0:.....|
00000a80  3a 0d 02 d0 19 dd 20 f2  72 65 6c 5f 6d 6f 75 73  |:..... .rel_mous|
00000a90  65 3a 2a 46 58 20 32 31  2c 39 0d 02 da 1c f5 3a  |e:*FX 21,9.....:|
00000aa0  c8 97 20 4d 58 25 2c 4d  59 25 2c 42 25 3a fd 20  |.. MX%,MY%,B%:. |
00000ab0  42 25 3d 30 3a e1 0d 02  e4 05 3a 0d 02 ee 14 dd  |B%=0:.....:.....|
00000ac0  20 f2 73 6f 75 6e 64 5f  63 6f 6e 74 72 6f 6c 0d  | .sound_control.|
00000ad0  02 f8 e3 f7 8d 44 44 51  3a f2 72 65 63 74 28 33  |.....DDQ:.rect(3|
00000ae0  34 30 2c 32 38 38 2c 36  30 30 2c 32 34 30 2c a3  |40,288,600,240,.|
00000af0  29 3a e6 30 3a ec 34 37  32 2c 34 39 36 3a f1 22  |):.0:.472,496:."|
00000b00  4d 75 73 69 63 22 3a c8  93 36 34 38 2c 34 36 30  |Music":..648,460|
00000b10  2c 31 30 34 2c 34 34 3a  ec 34 30 38 2c 34 34 34  |,104,44:.408,444|
00000b20  3a f1 22 53 70 65 61 6b  65 72 22 3a c8 93 36 34  |:."Speaker":..64|
00000b30  38 2c 34 30 38 2c 31 30  34 2c 34 34 3a ec 34 34  |8,408,104,44:.44|
00000b40  30 2c 33 39 32 3a f1 22  56 6f 6c 75 6d 65 22 3a  |0,392:."Volume":|
00000b50  c8 93 36 34 38 2c 33 35  36 2c 32 35 36 2c 34 34  |..648,356,256,44|
00000b60  3a ec 35 37 36 2c 33 34  30 3a f1 22 45 78 69 74  |:.576,340:."Exit|
00000b70  22 3a c8 93 35 36 34 2c  33 30 34 2c 31 34 38 2c  |":..564,304,148,|
00000b80  34 34 3a f2 6f 6e 6f 66  66 28 34 39 36 2c 21 6d  |44:.onoff(496,!m|
00000b90  73 73 61 25 29 3a f2 6f  6e 6f 66 66 28 34 34 34  |ssa%):.onoff(444|
00000ba0  2c 69 73 73 25 3d 32 29  3a f2 64 69 73 70 5f 76  |,iss%=2):.disp_v|
00000bb0  6f 6c 0d 03 02 0c f5 3a  f2 6d 6f 75 73 65 0d 03  |ol.....:.mouse..|
00000bc0  0c 16 e7 4d 58 25 3e 36  34 38 80 4d 58 25 3c 37  |...MX%>648.MX%<7|
00000bd0  35 32 20 8c 0d 03 16 43  20 e7 4d 59 25 3e 34 36  |52 ....C .MY%>46|
00000be0  30 80 4d 59 25 3c 35 30  34 20 21 6d 73 73 61 25  |0.MY%<504 !mssa%|
00000bf0  3d ac 20 21 6d 73 73 61  25 3a 6d 73 73 61 25 21  |=. !mssa%:mssa%!|
00000c00  34 34 3d 30 3a f2 6f 6e  6f 66 66 28 34 39 36 2c  |44=0:.onoff(496,|
00000c10  21 6d 73 73 61 25 29 0d  03 20 4c 20 e7 4d 59 25  |!mssa%).. L .MY%|
00000c20  3e 34 30 38 80 4d 59 25  3c 34 35 32 20 69 73 73  |>408.MY%<452 iss|
00000c30  25 3d 69 73 73 25 20 82  33 3a c8 99 22 53 6f 75  |%=iss% .3:.."Sou|
00000c40  6e 64 5f 53 70 65 61 6b  65 72 22 2c 69 73 73 25  |nd_Speaker",iss%|
00000c50  3a f2 6f 6e 6f 66 66 28  34 34 34 2c 69 73 73 25  |:.onoff(444,iss%|
00000c60  3d 32 29 0d 03 2a 05 cd  0d 03 34 25 e7 4d 58 25  |=2)..*....4%.MX%|
00000c70  3e 36 34 30 80 4d 58 25  3c 39 30 30 80 4d 59 25  |>640.MX%<900.MY%|
00000c80  3e 33 35 36 80 4d 59 25  3c 34 30 30 8c 0d 03 3e  |>356.MY%<400...>|
00000c90  19 20 c8 97 20 c8 93 20  36 34 34 2c 33 35 36 2c  |. .. .. 644,356,|
00000ca0  32 35 32 2c 34 34 0d 03  48 35 20 f5 3a c8 97 20  |252,44..H5 .:.. |
00000cb0  4d 58 25 2c 4d 59 25 2c  42 25 3a 76 6f 6c 25 3d  |MX%,MY%,B%:vol%=|
00000cc0  28 4d 58 25 2d 36 34 34  29 2f 34 3a f2 64 69 73  |(MX%-644)/4:.dis|
00000cd0  70 5f 76 6f 6c 3a fd 42  25 3d 30 0d 03 52 30 20  |p_vol:.B%=0..R0 |
00000ce0  c8 99 22 53 6f 75 6e 64  5f 56 6f 6c 75 6d 65 22  |.."Sound_Volume"|
00000cf0  2c 76 6f 6c 25 2b 36 34  3a c8 97 20 c8 93 20 30  |,vol%+64:.. .. 0|
00000d00  2c 30 2c 31 32 37 39 2c  37 39 39 0d 03 5c 05 cd  |,0,1279,799..\..|
00000d10  0d 03 66 24 fd 4d 58 25  3e 35 39 36 80 4d 58 25  |..f$.MX%>596.MX%|
00000d20  3c 37 30 34 80 4d 59 25  3e 33 30 34 80 4d 59 25  |<704.MY%>304.MY%|
00000d30  3c 33 34 38 0d 03 70 14  d6 63 6f 70 79 3a f2 72  |<348..p..copy:.r|
00000d40  65 6c 5f 6d 6f 75 73 65  0d 03 7a 05 e1 0d 03 84  |el_mouse..z.....|
00000d50  05 3a 0d 03 8e 30 dd 20  f2 6f 6e 6f 66 66 28 6f  |.:...0. .onoff(o|
00000d60  79 25 2c 6f 66 25 29 3a  e6 36 3a c8 93 c8 90 36  |y%,of%):.6:....6|
00000d70  35 32 2c 6f 79 25 2d 33  32 2c 39 36 2c 33 32 3a  |52,oy%-32,96,32:|
00000d80  e6 30 0d 03 98 28 e7 6f  66 25 20 ec 36 37 32 2c  |.0...(.of% .672,|
00000d90  6f 79 25 3a f1 22 4f 6e  22 20 8b ec 36 35 36 2c  |oy%:."On" ..656,|
00000da0  6f 79 25 3a f1 22 4f 66  66 22 0d 03 a2 05 e1 0d  |oy%:."Off"......|
00000db0  03 ac 05 3a 0d 03 b6 0f  dd 20 f2 64 69 73 70 5f  |...:..... .disp_|
00000dc0  76 6f 6c 0d 03 c0 26 e7  76 6f 6c 25 3e 30 20 e6  |vol...&.vol%>0 .|
00000dd0  34 3a c8 93 c8 90 36 35  32 2c 33 36 30 2c 76 6f  |4:....652,360,vo|
00000de0  6c 25 2a 34 2d 34 2c 33  36 0d 03 ca 2f e7 76 6f  |l%*4-4,36.../.vo|
00000df0  6c 25 3c 36 33 e6 36 3a  c8 93 c8 90 36 35 32 2b  |l%<63.6:....652+|
00000e00  76 6f 6c 25 2a 34 2c 33  36 30 2c 32 34 38 2d 76  |vol%*4,360,248-v|
00000e10  6f 6c 25 2a 34 2c 33 36  0d 03 d4 05 e1 0d 03 de  |ol%*4,36........|
00000e20  05 3a 0d 03 e8 0c dd 20  f2 70 6c 61 63 65 0d 03  |.:..... .place..|
00000e30  f2 a5 e6 31 32 38 3a da  3a e6 31 31 3a c8 93 20  |...128:.:.11:.. |
00000e40  38 2c 30 2c 31 32 37 31  2c 37 39 35 3a c8 93 20  |8,0,1271,795:.. |
00000e50  31 32 2c 34 2c 31 32 36  33 2c 37 38 37 3a c8 92  |12,4,1263,787:..|
00000e60  20 34 2c 30 3a ec 20 36  36 30 2c 38 3a df 20 36  | 4,0:. 660,8:. 6|
00000e70  36 30 2c 37 38 38 3a ec  20 36 36 34 2c 38 3a df  |60,788:. 664,8:.|
00000e80  20 36 36 34 2c 37 38 38  3a c8 93 20 c8 90 20 36  | 664,788:.. .. 6|
00000e90  36 38 2c 33 35 32 2c 36  30 30 2c 31 36 3a e6 31  |68,352,600,16:.1|
00000ea0  32 3a ec 20 34 2c 34 3a  df 20 34 2c 37 39 39 3a  |2:. 4,4:. 4,799:|
00000eb0  df 20 31 32 37 39 2c 37  39 39 3a ec 20 31 36 2c  |. 1279,799:. 16,|
00000ec0  38 3a df 20 36 35 36 2c  38 3a df 20 36 35 36 2c  |8:. 656,8:. 656,|
00000ed0  37 38 38 0d 03 fc 62 f7  20 8d 54 5c 51 3a f2 72  |788...b. .T\Q:.r|
00000ee0  65 63 74 28 36 37 32 2c  33 37 34 2c 35 39 32 2c  |ect(672,374,592,|
00000ef0  34 30 38 2c b9 29 3a f7  20 8d 54 5c 51 3a f2 72  |408,.):. .T\Q:.r|
00000f00  65 63 74 28 36 37 32 2c  31 32 2c 35 39 32 2c 33  |ect(672,12,592,3|
00000f10  33 32 2c b9 29 3a f7 20  8d 54 66 51 3a f2 72 65  |32,.):. .TfQ:.re|
00000f20  63 74 28 37 38 34 2c 34  33 32 2c 33 37 32 2c 32  |ct(784,432,372,2|
00000f30  38 38 2c a3 29 0d 04 06  98 c8 99 22 4f 53 5f 53  |88,.)......"OS_S|
00000f40  70 72 69 74 65 4f 70 22  2c 32 39 30 2c 43 53 50  |priteOp",290,CSP|
00000f50  25 2c 22 77 22 2c 36 39  32 2c 34 30 30 3a c8 99  |%,"w",692,400:..|
00000f60  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 2c 32 39  |"OS_SpriteOp",29|
00000f70  30 2c 43 53 50 25 2c 22  73 22 2c 37 38 34 2c 33  |0,CSP%,"s",784,3|
00000f80  37 38 3a c8 99 22 4f 53  5f 53 70 72 69 74 65 4f  |78:.."OS_SpriteO|
00000f90  70 22 2c 32 39 30 2c 43  53 50 25 2c 22 65 22 2c  |p",290,CSP%,"e",|
00000fa0  31 31 36 30 2c 33 39 36  3a c8 99 22 4f 53 5f 53  |1160,396:.."OS_S|
00000fb0  70 72 69 74 65 4f 70 22  2c 32 39 30 2c 43 53 50  |priteOp",290,CSP|
00000fc0  25 2c 22 6e 22 2c 37 38  34 2c 37 32 34 0d 04 10  |%,"n",784,724...|
00000fd0  7e 56 24 3d c3 56 25 3a  ff 22 49 72 6f 6e 4c 6f  |~V$=.V%:."IronLo|
00000fe0  61 64 20 3c 49 72 6f 6e  4c 6f 72 64 24 44 69 72  |ad <IronLord$Dir|
00000ff0  3e 2e 50 69 63 74 75 72  65 2e 22 2b 56 24 2b 22  |>.Picture."+V$+"|
00001000  20 22 2b c3 7e 28 54 25  2b 32 29 3a d6 20 6c 6f  | "+.~(T%+2):. lo|
00001010  61 64 70 69 63 3a ff 22  49 72 6f 6e 4c 6f 61 64  |adpic:."IronLoad|
00001020  20 3c 49 72 6f 6e 4c 6f  72 64 24 44 69 72 3e 2e  | <IronLord$Dir>.|
00001030  53 70 72 69 74 65 73 2e  22 2b 56 24 2b 22 20 22  |Sprites."+V$+" "|
00001040  2b c3 7e 28 50 53 50 25  2b 34 29 0d 04 1a 6e e7  |+.~(PSP%+4)...n.|
00001050  56 25 3d 30 20 47 25 3d  30 3a 50 44 25 3d 30 20  |V%=0 G%=0:PD%=0 |
00001060  8b e7 56 25 3d 31 20 47  25 3d 26 31 38 41 3a 50  |..V%=1 G%=&18A:P|
00001070  44 25 3d 26 31 32 30 20  8b e7 56 25 3d 33 20 47  |D%=&120 ..V%=3 G|
00001080  25 3d 26 35 42 34 3a 50  44 25 3d 26 33 46 43 20  |%=&5B4:PD%=&3FC |
00001090  8b e7 56 25 3d 35 20 47  25 3d 26 37 46 36 3a 50  |..V%=5 G%=&7F6:P|
000010a0  44 25 3d 26 36 39 38 20  8b 47 25 3d 26 42 32 38  |D%=&698 .G%=&B28|
000010b0  3a 50 44 25 3d 26 38 38  30 0d 04 24 37 47 25 2b  |:PD%=&880..$7G%+|
000010c0  3d 54 42 4c 25 3a 50 44  25 2b 3d 50 44 54 25 3a  |=TBL%:PD%+=PDT%:|
000010d0  c8 99 22 4f 53 5f 53 70  72 69 74 65 4f 70 22 2c  |.."OS_SpriteOp",|
000010e0  32 36 35 2c 53 53 50 25  3a d6 20 64 72 74 62 6c  |265,SSP%:. drtbl|
000010f0  0d 04 2e 1f e7 20 6e 6d  74 25 20 6e 6d 74 25 3d  |..... nmt% nmt%=|
00001100  a3 3a 2a 49 72 6f 6e 54  75 6e 65 4f 6e 20 30 0d  |.:*IronTuneOn 0.|
00001110  04 38 6f e6 30 3a e6 31  33 35 3a 4e 25 3d 3f 50  |.8o.0:.135:N%=?P|
00001120  44 25 3a 59 25 3d 31 37  36 2b 4e 25 2a 31 36 3a  |D%:Y%=176+N%*16:|
00001130  44 25 3d 50 44 25 2b 31  3a e3 49 25 3d 31 b8 4e  |D%=PD%+1:.I%=1.N|
00001140  25 3a ec 39 36 38 2d 31  36 2a a9 24 44 25 2c 59  |%:.968-16*.$D%,Y|
00001150  25 3a f1 24 44 25 3a 44  25 2b 3d 28 31 2b a9 24  |%:.$D%:D%+=(1+.$|
00001160  44 25 29 3a 59 25 2d 3d  33 32 3a ed 3a ff 22 49  |D%):Y%-=32:.:."I|
00001170  72 6f 6e 46 61 64 65 49  6e 20 22 2b 56 24 0d 04  |ronFadeIn "+V$..|
00001180  42 21 e7 28 44 25 20 80  20 33 29 3c 3e 30 20 44  |B!.(D% . 3)<>0 D|
00001190  25 2b 3d 28 34 2d 28 44  25 20 80 20 33 29 29 0d  |%+=(4-(D% . 3)).|
000011a0  04 4c 2a e7 20 55 25 20  ee 20 56 25 2b 31 20 f2  |.L*. U% . V%+1 .|
000011b0  69 6e 30 2c f2 69 6e 31  2c 2c f2 69 6e 33 2c 2c  |in0,.in1,,.in3,,|
000011c0  f2 69 6e 35 2c f2 69 6e  36 0d 04 56 44 21 74 78  |.in5,.in6..VD!tx|
000011d0  74 3d 44 25 2b 28 34 2a  21 44 25 29 2b 34 3a 41  |t=D%+(4*!D%)+4:A|
000011e0  25 3d ba 28 6d 6f 76 65  29 3a 5a 25 3d 28 41 25  |%=.(move):Z%=(A%|
000011f0  3e 3e 35 29 80 20 33 31  3a 56 25 3d 41 25 20 80  |>>5). 31:V%=A% .|
00001200  20 33 31 3a 55 25 3d a3  3a e6 31 32 38 0d 04 60  | 31:U%=.:.128..`|
00001210  1a e7 20 5a 25 3d 31 20  80 20 3f 28 93 2b 26 31  |.. Z%=1 . ?(.+&1|
00001220  35 46 29 3d 31 20 8c 0d  04 6a 1f 20 e7 20 3f 28  |5F)=1 ...j. . ?(|
00001230  93 2b 26 31 35 45 29 3c  35 20 52 25 3d 33 20 8b  |.+&15E)<5 R%=3 .|
00001240  20 52 25 3d 32 30 0d 04  74 10 20 e7 20 b3 28 52  | R%=20..t. . .(R|
00001250  25 29 3d 31 20 8c 0d 04  7e 41 20 20 f7 20 8d 54  |%)=1 ...~A  . .T|
00001260  5c 51 3a f2 72 65 63 74  28 33 30 34 2c 32 32 38  |\Q:.rect(304,228|
00001270  2c 36 37 32 2c 33 34 34  2c a3 29 3a 57 57 25 3d  |,672,344,.):WW%=|
00001280  31 39 3a 57 58 43 25 3d  36 34 30 3a 57 59 43 25  |19:WXC%=640:WYC%|
00001290  3d 34 30 30 3a e6 30 0d  04 88 12 20 20 e7 20 3f  |=400:.0....  . ?|
000012a0  28 93 2b 31 29 3d 30 20  8c 0d 04 92 90 20 20 20  |(.+1)=0 .....   |
000012b0  f2 77 77 70 72 28 22 42  65 66 6f 72 65 20 79 6f  |.wwpr("Before yo|
000012c0  75 20 63 61 6e 20 6d 6f  75 6e 74 20 79 6f 75 72  |u can mount your|
000012d0  20 68 6f 72 73 65 20 61  6e 20 61 73 73 61 73 73  | horse an assass|
000012e0  69 6e 20 6c 65 61 70 73  20 6f 75 74 20 61 6e 64  |in leaps out and|
000012f0  20 62 6c 6f 63 6b 73 20  74 68 65 20 77 61 79 2e  | blocks the way.|
00001300  20 48 65 20 72 65 61 63  68 65 73 20 66 6f 72 20  | He reaches for |
00001310  68 69 73 20 73 77 6f 72  64 2c 20 61 6e 64 20 79  |his sword, and y|
00001320  6f 75 20 64 6f 20 74 68  65 20 73 61 6d 65 20 2e  |ou do the same .|
00001330  2e 2e 22 29 3a 5a 25 3d  37 0d 04 9c 8d 20 20 cc  |.."):Z%=7....  .|
00001340  20 f2 77 77 70 72 28 22  42 65 66 6f 72 65 20 79  | .wwpr("Before y|
00001350  6f 75 20 63 61 6e 20 6d  6f 75 6e 74 20 79 6f 75  |ou can mount you|
00001360  72 20 68 6f 72 73 65 20  61 6e 20 61 73 73 61 73  |r horse an assas|
00001370  73 69 6e 20 6c 65 61 70  73 20 6f 75 74 20 61 6e  |sin leaps out an|
00001380  64 20 62 6c 6f 63 6b 73  20 74 68 65 20 77 61 79  |d blocks the way|
00001390  2e 20 41 73 20 79 6f 75  20 68 61 76 65 20 6e 6f  |. As you have no|
000013a0  20 73 77 6f 72 64 20 79  6f 75 20 61 72 65 20 69  | sword you are i|
000013b0  6e 73 74 61 6e 74 6c 79  20 73 6c 61 69 6e 2e 22  |nstantly slain."|
000013c0  29 3a 5a 25 3d 39 0d 04  a6 0e 20 20 cd 3a f2 6d  |):Z%=9....  .:.m|
000013d0  6f 75 73 65 0d 04 b0 06  20 cd 0d 04 ba 12 cd 3a  |ouse.... ......:|
000013e0  2a 49 72 6f 6e 46 61 64  65 4f 75 74 0d 04 c4 1f  |*IronFadeOut....|
000013f0  e7 20 5a 25 3c 3e 31 20  6e 6d 74 25 3d b9 3a 2a  |. Z%<>1 nmt%=.:*|
00001400  49 72 6f 6e 54 75 6e 65  4f 66 66 0d 04 ce 05 e1  |IronTuneOff.....|
00001410  0d 04 d8 05 3a 0d 04 e2  0a dd 20 f2 69 6e 30 0d  |....:..... .in0.|
00001420  04 ec 33 ef 20 32 34 2c  37 32 3b 30 3b 33 36 38  |..3. 24,72;0;368|
00001430  3b 37 39 36 3b 3a 49 25  3d 30 3a 4a 25 3d 50 53  |;796;:I%=0:J%=PS|
00001440  50 25 2b 31 36 3a 4b 25  3d 50 53 50 25 2b 26 42  |P%+16:K%=PSP%+&B|
00001450  33 30 0d 04 f6 10 e3 58  25 3d 2d 38 b8 33 37 32  |30.....X%=-8.372|
00001460  88 34 0d 05 00 33 c8 99  22 4f 53 5f 53 70 72 69  |.4...3.."OS_Spri|
00001470  74 65 4f 70 22 2c 32 37  32 2c 53 53 50 25 2c 22  |teOp",272,SSP%,"|
00001480  53 22 2c 30 2c 58 25 2c  32 36 38 2c 58 25 2b 37  |S",0,X%,268,X%+7|
00001490  36 2c 33 31 36 0d 05 0a  28 c8 99 22 4f 53 5f 53  |6,316...(.."OS_S|
000014a0  70 72 69 74 65 4f 70 22  2c 35 34 36 2c 50 53 50  |priteOp",546,PSP|
000014b0  25 2c 4a 25 2c 58 25 2c  32 36 38 2c 38 0d 05 14  |%,J%,X%,268,8...|
000014c0  28 c8 99 22 4f 53 5f 53  70 72 69 74 65 4f 70 22  |(.."OS_SpriteOp"|
000014d0  2c 35 34 36 2c 50 53 50  25 2c 4b 25 2c 37 32 2c  |,546,PSP%,K%,72,|
000014e0  32 36 34 2c 38 0d 05 1e  28 49 25 3d 28 49 25 2b  |264,8...(I%=(I%+|
000014f0  31 29 83 38 3a 4a 25 3d  50 53 50 25 2b 31 36 2b  |1).8:J%=PSP%+16+|
00001500  49 25 2a 26 31 36 34 3a  c8 96 3a c8 96 0d 05 28  |I%*&164:..:....(|
00001510  2f c8 99 22 4f 53 5f 53  70 72 69 74 65 4f 70 22  |/.."OS_SpriteOp"|
00001520  2c 35 34 36 2c 53 53 50  25 2c 53 53 50 25 2b 31  |,546,SSP%,SSP%+1|
00001530  36 2c 58 25 2c 32 36 38  2c 30 3a ed 0d 05 32 18  |6,X%,268,0:...2.|
00001540  ef 20 32 34 2c 30 3b 30  3b 31 32 37 39 3b 37 39  |. 24,0;0;1279;79|
00001550  39 3b 3a e1 0d 05 3c 05  3a 0d 05 46 0a dd 20 f2  |9;:...<.:..F.. .|
00001560  69 6e 31 0d 05 50 36 ef  20 32 34 2c 32 30 3b 31  |in1..P6. 24,20;1|
00001570  32 3b 32 32 38 3b 37 39  36 3b 3a 49 25 3d 30 3a  |2;228;796;:I%=0:|
00001580  59 25 3d 2d 36 30 3a e3  20 58 25 3d 2d 39 36 20  |Y%=-60:. X%=-96 |
00001590  b8 20 32 33 36 20 88 20  38 0d 05 5a 34 c8 99 22  |. 236 . 8..Z4.."|
000015a0  4f 53 5f 53 70 72 69 74  65 4f 70 22 2c 32 37 32  |OS_SpriteOp",272|
000015b0  2c 53 53 50 25 2c 22 53  22 2c 30 2c 58 25 2c 59  |,SSP%,"S",0,X%,Y|
000015c0  25 2c 58 25 2b 34 34 2c  59 25 2b 35 36 0d 05 64  |%,X%+44,Y%+56..d|
000015d0  34 c8 99 22 4f 53 5f 53  70 72 69 74 65 4f 70 22  |4.."OS_SpriteOp"|
000015e0  2c 35 34 36 2c 50 53 50  25 2c 50 53 50 25 2b 31  |,546,PSP%,PSP%+1|
000015f0  36 2b 49 25 2a 26 31 31  43 2c 58 25 2c 59 25 2c  |6+I%*&11C,X%,Y%,|
00001600  38 0d 05 6e 09 c8 96 3a  c8 96 0d 05 78 39 c8 99  |8..n...:....x9..|
00001610  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 2c 35 34  |"OS_SpriteOp",54|
00001620  36 2c 53 53 50 25 2c 53  53 50 25 2b 31 36 2c 58  |6,SSP%,SSP%+16,X|
00001630  25 2c 59 25 2c 30 3a 49  25 3d 28 49 25 2b 31 29  |%,Y%,0:I%=(I%+1)|
00001640  83 20 38 0d 05 82 34 c8  99 22 4f 53 5f 53 70 72  |. 8...4.."OS_Spr|
00001650  69 74 65 4f 70 22 2c 35  34 36 2c 50 53 50 25 2c  |iteOp",546,PSP%,|
00001660  50 53 50 25 2b 31 36 2b  49 25 2a 26 31 31 43 2c  |PSP%+16+I%*&11C,|
00001670  58 25 2c 59 25 2c 38 0d  05 8c 09 c8 96 3a c8 96  |X%,Y%,8......:..|
00001680  0d 05 96 41 c8 99 22 4f  53 5f 53 70 72 69 74 65  |...A.."OS_Sprite|
00001690  4f 70 22 2c 35 34 36 2c  53 53 50 25 2c 53 53 50  |Op",546,SSP%,SSP|
000016a0  25 2b 31 36 2c 58 25 2c  59 25 2c 30 3a 59 25 2b  |%+16,X%,Y%,0:Y%+|
000016b0  3d 34 3a 49 25 3d 28 49  25 2b 31 29 83 20 38 3a  |=4:I%=(I%+1). 8:|
000016c0  ed 0d 05 a0 18 ef 20 32  34 2c 30 3b 30 3b 31 32  |...... 24,0;0;12|
000016d0  37 39 3b 37 39 39 3b 3a  e1 0d 05 aa 05 3a 0d 05  |79;799;:.....:..|
000016e0  b4 0a dd 20 f2 69 6e 33  0d 05 be 33 ef 20 32 34  |... .in3...3. 24|
000016f0  2c 31 36 3b 30 3b 33 36  34 3b 37 39 36 3b 3a 49  |,16;0;364;796;:I|
00001700  25 3d 30 3a 4a 25 3d 50  53 50 25 2b 31 36 3a 4b  |%=0:J%=PSP%+16:K|
00001710  25 3d 50 53 50 25 2b 26  42 33 30 0d 05 c8 11 e3  |%=PSP%+&B30.....|
00001720  58 25 3d 2d 36 34 b8 33  36 38 88 34 0d 05 d2 33  |X%=-64.368.4...3|
00001730  c8 99 22 4f 53 5f 53 70  72 69 74 65 4f 70 22 2c  |.."OS_SpriteOp",|
00001740  32 37 32 2c 53 53 50 25  2c 22 53 22 2c 30 2c 58  |272,SSP%,"S",0,X|
00001750  25 2c 33 32 30 2c 58 25  2b 37 36 2c 33 36 38 0d  |%,320,X%+76,368.|
00001760  05 dc 28 c8 99 22 4f 53  5f 53 70 72 69 74 65 4f  |..(.."OS_SpriteO|
00001770  70 22 2c 35 34 36 2c 50  53 50 25 2c 4a 25 2c 58  |p",546,PSP%,J%,X|
00001780  25 2c 33 32 30 2c 38 0d  05 e6 29 c8 99 22 4f 53  |%,320,8...).."OS|
00001790  5f 53 70 72 69 74 65 4f  70 22 2c 35 34 36 2c 50  |_SpriteOp",546,P|
000017a0  53 50 25 2c 4b 25 2c 32  34 38 2c 33 32 30 2c 38  |SP%,K%,248,320,8|
000017b0  0d 05 f0 28 49 25 3d 28  49 25 2b 31 29 83 38 3a  |...(I%=(I%+1).8:|
000017c0  4a 25 3d 50 53 50 25 2b  31 36 2b 49 25 2a 26 31  |J%=PSP%+16+I%*&1|
000017d0  36 34 3a c8 96 3a c8 96  0d 05 fa 2d c8 99 22 4f  |64:..:.....-.."O|
000017e0  53 5f 53 70 72 69 74 65  4f 70 22 2c 35 34 36 2c  |S_SpriteOp",546,|
000017f0  53 53 50 25 2c 53 53 50  25 2b 31 36 2c 58 25 2c  |SSP%,SSP%+16,X%,|
00001800  33 32 30 3a ed 0d 06 04  18 ef 20 32 34 2c 30 3b  |320:...... 24,0;|
00001810  30 3b 31 32 37 39 3b 37  39 39 3b 3a e1 0d 06 0e  |0;1279;799;:....|
00001820  05 3a 0d 06 18 0a dd 20  f2 69 6e 35 0d 06 22 33  |.:..... .in5.."3|
00001830  ef 20 32 34 2c 38 34 3b  30 3b 32 34 30 3b 37 39  |. 24,84;0;240;79|
00001840  36 3b 3a 49 25 3d 30 3a  4a 25 3d 50 53 50 25 2b  |6;:I%=0:J%=PSP%+|
00001850  31 36 3a 4b 25 3d 50 53  50 25 2b 26 42 33 30 0d  |16:K%=PSP%+&B30.|
00001860  06 2c 0f e3 58 25 3d 30  b8 32 34 34 88 34 0d 06  |.,..X%=0.244.4..|
00001870  36 33 c8 99 22 4f 53 5f  53 70 72 69 74 65 4f 70  |63.."OS_SpriteOp|
00001880  22 2c 32 37 32 2c 53 53  50 25 2c 22 53 22 2c 30  |",272,SSP%,"S",0|
00001890  2c 58 25 2c 32 33 32 2c  58 25 2b 37 36 2c 32 38  |,X%,232,X%+76,28|
000018a0  34 0d 06 40 28 c8 99 22  4f 53 5f 53 70 72 69 74  |4..@(.."OS_Sprit|
000018b0  65 4f 70 22 2c 35 34 36  2c 50 53 50 25 2c 4a 25  |eOp",546,PSP%,J%|
000018c0  2c 58 25 2c 32 33 32 2c  38 0d 06 4a 28 c8 99 22  |,X%,232,8..J(.."|
000018d0  4f 53 5f 53 70 72 69 74  65 4f 70 22 2c 35 34 36  |OS_SpriteOp",546|
000018e0  2c 50 53 50 25 2c 4b 25  2c 38 34 2c 32 33 32 2c  |,PSP%,K%,84,232,|
000018f0  38 0d 06 54 28 49 25 3d  28 49 25 2b 31 29 83 38  |8..T(I%=(I%+1).8|
00001900  3a 4a 25 3d 50 53 50 25  2b 31 36 2b 49 25 2a 26  |:J%=PSP%+16+I%*&|
00001910  31 36 34 3a c8 96 3a c8  96 0d 06 5e 2f c8 99 22  |164:..:....^/.."|
00001920  4f 53 5f 53 70 72 69 74  65 4f 70 22 2c 35 34 36  |OS_SpriteOp",546|
00001930  2c 53 53 50 25 2c 53 53  50 25 2b 31 36 2c 58 25  |,SSP%,SSP%+16,X%|
00001940  2c 32 33 32 2c 30 3a ed  0d 06 68 18 ef 20 32 34  |,232,0:...h.. 24|
00001950  2c 30 3b 30 3b 31 32 37  39 3b 37 39 39 3b 3a e1  |,0;0;1279;799;:.|
00001960  0d 06 72 05 3a 0d 06 7c  0a dd 20 f2 69 6e 36 0d  |..r.:..|.. .in6.|
00001970  06 86 32 c8 99 22 4f 53  5f 53 70 72 69 74 65 4f  |..2.."OS_SpriteO|
00001980  70 22 2c 32 37 32 2c 53  53 50 25 2c 22 53 22 2c  |p",272,SSP%,"S",|
00001990  30 2c 33 33 32 2c 31 35  36 2c 34 32 30 2c 32 36  |0,332,156,420,26|
000019a0  38 0d 06 90 31 ef 20 32  34 2c 33 33 32 3b 31 35  |8...1. 24,332;15|
000019b0  36 3b 34 32 30 3b 32 37  36 3b 3a 49 25 3d 30 3a  |6;420;276;:I%=0:|
000019c0  e3 20 58 25 3d 31 38 34  20 b8 20 34 32 34 20 88  |. X%=184 . 424 .|
000019d0  20 34 0d 06 9a 35 c8 99  22 4f 53 5f 53 70 72 69  | 4...5.."OS_Spri|
000019e0  74 65 4f 70 22 2c 35 34  36 2c 50 53 50 25 2c 50  |teOp",546,PSP%,P|
000019f0  53 50 25 2b 31 36 2b 49  25 2a 26 34 42 34 2c 58  |SP%+16+I%*&4B4,X|
00001a00  25 2c 31 35 36 2c 38 0d  06 a4 0f c8 96 3a c8 96  |%,156,8......:..|
00001a10  3a c8 96 3a c8 96 0d 06  ae 3d c8 99 22 4f 53 5f  |:..:.....=.."OS_|
00001a20  53 70 72 69 74 65 4f 70  22 2c 35 34 36 2c 53 53  |SpriteOp",546,SS|
00001a30  50 25 2c 53 53 50 25 2b  31 36 2c 33 33 32 2c 31  |P%,SSP%+16,332,1|
00001a40  35 36 2c 30 3a 49 25 3d  28 49 25 2b 31 29 83 20  |56,0:I%=(I%+1). |
00001a50  38 3a ed 0d 06 b8 18 ef  20 32 34 2c 30 3b 30 3b  |8:...... 24,0;0;|
00001a60  31 32 37 39 3b 37 39 39  3b 3a e1 0d 06 c2 05 3a  |1279;799;:.....:|
00001a70  0d 06 cc 0d dd 20 f2 70  65 72 73 6f 6e 0d 06 d6  |..... .person...|
00001a80  aa da 3a e6 31 31 3a c8  93 20 38 2c 30 2c 31 32  |..:.11:.. 8,0,12|
00001a90  37 31 2c 37 39 35 3a c8  93 20 31 32 2c 34 2c 31  |71,795:.. 12,4,1|
00001aa0  32 36 33 2c 37 38 37 3a  c8 92 20 34 2c 30 3a ec  |263,787:.. 4,0:.|
00001ab0  20 36 36 30 2c 38 3a df  20 36 36 30 2c 37 38 38  | 660,8:. 660,788|
00001ac0  3a ec 20 36 36 34 2c 38  3a df 20 36 36 34 2c 37  |:. 664,8:. 664,7|
00001ad0  38 38 3a e6 31 32 3a ec  20 34 2c 34 3a df 20 34  |88:.12:. 4,4:. 4|
00001ae0  2c 37 39 39 3a df 20 31  32 37 39 2c 37 39 39 3a  |,799:. 1279,799:|
00001af0  ec 20 31 36 2c 38 3a df  20 36 35 36 2c 38 3a df  |. 16,8:. 656,8:.|
00001b00  20 36 35 36 2c 37 38 38  3a f7 20 8d 54 70 51 3a  | 656,788:. .TpQ:|
00001b10  f2 72 65 63 74 28 36 37  32 2c 31 32 2c 35 39 32  |.rect(672,12,592|
00001b20  2c 37 37 30 2c a3 29 0d  06 e0 2a e7 20 56 25 3d  |,770,.)...*. V%=|
00001b30  32 20 74 75 25 3d 31 20  8b 20 e7 20 56 25 3d 34  |2 tu%=1 . . V%=4|
00001b40  20 74 75 25 3d 32 20 8b  20 74 75 25 3d 56 25 2d  | tu%=2 . tu%=V%-|
00001b50  34 0d 06 ea 7d ff 22 49  72 6f 6e 4c 6f 61 64 20  |4...}."IronLoad |
00001b60  3c 49 72 6f 6e 4c 6f 72  64 24 44 69 72 3e 2e 50  |<IronLord$Dir>.P|
00001b70  69 63 74 75 72 65 2e 22  2b c3 56 25 2b 22 20 22  |icture."+.V%+" "|
00001b80  2b c3 7e 28 54 25 2b 32  29 3a d6 20 6c 6f 61 64  |+.~(T%+2):. load|
00001b90  70 69 63 3a ff 22 49 72  6f 6e 54 75 6e 65 4f 6e  |pic:."IronTuneOn|
00001ba0  20 22 2b c3 74 75 25 3a  ff 22 49 72 6f 6e 46 61  | "+.tu%:."IronFa|
00001bb0  64 65 49 6e 20 22 2b c3  56 25 3a c8 97 20 b8 20  |deIn "+.V%:.. . |
00001bc0  39 36 38 2c 34 30 30 3a  c8 97 20 ee 20 32 0d 06  |968,400:.. . 2..|
00001bd0  f4 27 e7 20 56 25 3d 32  20 50 25 3d 30 20 8b 20  |.'. V%=2 P%=0 . |
00001be0  e7 20 56 25 3d 34 20 50  25 3d 31 20 8b 20 50 25  |. V%=4 P%=1 . P%|
00001bf0  3d 56 25 2d 35 0d 06 fe  a3 ef 32 34 2c 36 38 38  |=V%-5.....24,688|
00001c00  3b 32 38 3b 31 32 34 38  3b 37 36 36 3b 3a f5 3a  |;28;1248;766;:.:|
00001c10  e6 30 3a e6 31 33 34 3a  c8 96 3a da 3a ec 38 32  |.0:.134:..:.:.82|
00001c20  34 2c 37 30 30 3a f1 22  49 6e 76 65 6e 74 6f 72  |4,700:."Inventor|
00001c30  79 22 3a ec 38 35 36 2c  36 33 36 3a f1 22 45 78  |y":.856,636:."Ex|
00001c40  61 6d 69 6e 65 22 3a ec  38 35 36 2c 35 37 32 3a  |amine":.856,572:|
00001c50  f1 22 44 69 73 63 75 73  73 22 3a ec 39 32 30 2c  |."Discuss":.920,|
00001c60  35 30 38 3a f1 22 42 75  79 22 3a ec 39 30 34 2c  |508:."Buy":.904,|
00001c70  34 34 34 3a f1 22 47 69  76 65 22 3a ec 38 38 38  |444:."Give":.888|
00001c80  2c 33 31 36 3a f1 22 4c  65 61 76 65 22 3a f2 72  |,316:."Leave":.r|
00001c90  65 6c 5f 6d 6f 75 73 65  0d 07 08 75 4c 4f 25 3d  |el_mouse...uLO%=|
00001ca0  30 3a e6 33 2c 36 3a f5  3a c8 97 4d 58 25 2c 4d  |0:.3,6:.:..MX%,M|
00001cb0  59 25 2c 42 25 3a 4f 25  3d 30 3a e7 4d 58 25 3e  |Y%,B%:O%=0:.MX%>|
00001cc0  38 30 30 80 4d 58 25 3c  31 31 32 38 20 8c 20 4f  |800.MX%<1128 . O|
00001cd0  25 3d 38 3a f5 3a 4f 25  2d 3d 31 3a fd 4f 25 3d  |%=8:.:O%-=1:.O%=|
00001ce0  30 20 84 20 4d 59 25 3e  32 31 32 2b 4f 25 2a 36  |0 . MY%>212+O%*6|
00001cf0  34 20 80 20 4d 59 25 3c  32 36 34 2b 4f 25 2a 36  |4 . MY%<264+O%*6|
00001d00  34 3a e7 20 4f 25 3d 32  20 4f 25 3d 30 0d 07 12  |4:. O%=2 O%=0...|
00001d10  35 e7 20 4f 25 3c 3e 4c  4f 25 20 80 20 4c 4f 25  |5. O%<>LO% . LO%|
00001d20  3c 3e 30 20 c8 96 3a c8  93 20 c8 90 20 38 30 38  |<>0 ..:.. .. 808|
00001d30  2c 32 32 30 2b 4c 4f 25  2a 36 34 2c 33 32 30 2c  |,220+LO%*64,320,|
00001d40  33 36 0d 07 1c 33 e7 20  4f 25 3c 3e 4c 4f 25 20  |36...3. O%<>LO% |
00001d50  80 20 4f 25 3c 3e 30 20  c8 96 3a c8 93 20 c8 90  |. O%<>0 ..:.. ..|
00001d60  20 38 30 38 2c 32 32 30  2b 4f 25 2a 36 34 2c 33  | 808,220+O%*64,3|
00001d70  32 30 2c 33 36 0d 07 26  19 4c 4f 25 3d 4f 25 3a  |20,36..&.LO%=O%:|
00001d80  fd 42 25 3c 3e 30 20 80  20 4f 25 3c 3e 30 0d 07  |.B%<>0 . O%<>0..|
00001d90  30 0b c8 8e 20 4f 25 20  ca 0d 07 3a 0e 20 c9 20  |0... O% ...:. . |
00001da0  33 3a f2 67 69 76 65 0d  07 44 0d 20 c9 20 34 3a  |3:.give..D. . 4:|
00001db0  f2 62 75 79 0d 07 4e 11  20 c9 20 35 3a f2 64 69  |.buy..N. . 5:.di|
00001dc0  73 63 75 73 73 0d 07 58  11 20 c9 20 36 3a f2 65  |scuss..X. . 6:.e|
00001dd0  78 61 6d 69 6e 65 0d 07  62 13 20 c9 20 37 3a f2  |xamine..b. . 7:.|
00001de0  69 6e 76 65 6e 74 6f 72  79 0d 07 6c 05 cb 0d 07  |inventory..l....|
00001df0  76 26 fd 4f 25 3d 31 3a  f2 72 65 6c 5f 6d 6f 75  |v&.O%=1:.rel_mou|
00001e00  73 65 3a c8 97 20 87 3a  2a 49 72 6f 6e 46 61 64  |se:.. .:*IronFad|
00001e10  65 4f 75 74 0d 07 80 0b  c8 8e 20 56 25 20 ca 0d  |eOut...... V% ..|
00001e20  07 8a 27 20 c9 20 37 3a  56 25 3d 35 3a 5a 25 3d  |..' . 7:V%=5:Z%=|
00001e30  32 3a 41 25 3d 31 34 30  3a 42 25 3d 31 33 32 3a  |2:A%=140:B%=132:|
00001e40  43 25 3d 26 42 30 0d 07  94 25 20 c9 20 38 3a 56  |C%=&B0...% . 8:V|
00001e50  25 3d 31 3a 5a 25 3d 32  3a 41 25 3d 38 38 30 3a  |%=1:Z%=2:A%=880:|
00001e60  42 25 3d 37 32 3a 43 25  3d 31 36 0d 07 9e 27 20  |B%=72:C%=16...' |
00001e70  c9 20 39 3a 56 25 3d 33  3a 5a 25 3d 32 3a 41 25  |. 9:V%=3:Z%=2:A%|
00001e80  3d 31 36 38 3a 42 25 3d  32 31 36 3a 43 25 3d 26  |=168:B%=216:C%=&|
00001e90  42 30 0d 07 a8 28 20 c9  20 31 30 3a 56 25 3d 35  |B0...( . 10:V%=5|
00001ea0  3a 5a 25 3d 32 3a 41 25  3d 38 34 30 3a 42 25 3d  |:Z%=2:A%=840:B%=|
00001eb0  32 33 36 3a 43 25 3d 26  35 43 0d 07 b2 28 20 c9  |236:C%=&5C...( .|
00001ec0  20 31 31 3a 56 25 3d 33  3a 5a 25 3d 32 3a 41 25  | 11:V%=3:Z%=2:A%|
00001ed0  3d 33 34 34 3a 42 25 3d  33 36 34 3a 43 25 3d 26  |=344:B%=364:C%=&|
00001ee0  35 43 0d 07 bc 26 20 c9  20 31 32 3a 56 25 3d 36  |5C...& . 12:V%=6|
00001ef0  3a 5a 25 3d 32 3a 41 25  3d 38 34 3a 42 25 3d 38  |:Z%=2:A%=84:B%=8|
00001f00  34 3a 43 25 3d 26 42 30  0d 07 c6 14 20 c9 20 31  |4:C%=&B0.... . 1|
00001f10  33 3a 56 25 3d 31 37 3a  5a 25 3d 35 0d 07 d0 0b  |3:V%=17:Z%=5....|
00001f20  20 7f 20 5a 25 3d 31 0d  07 da 05 cb 0d 07 e4 27  | . Z%=1........'|
00001f30  ef 32 34 2c 30 3b 30 3b  31 32 37 39 3b 37 39 39  |.24,0;0;1279;799|
00001f40  3b 3a e6 31 32 38 3a 2a  49 72 6f 6e 54 75 6e 65  |;:.128:*IronTune|
00001f50  4f 66 66 0d 07 ee 05 e1  0d 07 f8 05 3a 0d 08 02  |Off.........:...|
00001f60  9b dd 20 f2 64 69 73 63  75 73 73 3a da 3a c8 99  |.. .discuss:.:..|
00001f70  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 2c 32 39  |"OS_SpriteOp",29|
00001f80  30 2c 43 53 50 25 2c 22  6c 61 22 2c 37 30 30 2c  |0,CSP%,"la",700,|
00001f90  36 34 38 3a c8 99 22 4f  53 5f 53 70 72 69 74 65  |648:.."OS_Sprite|
00001fa0  4f 70 22 2c 32 39 30 2c  43 53 50 25 2c 22 64 6f  |Op",290,CSP%,"do|
00001fb0  6e 65 22 2c 38 36 34 2c  36 34 38 3a c8 99 22 4f  |ne",864,648:.."O|
00001fc0  53 5f 53 70 72 69 74 65  4f 70 22 2c 32 39 30 2c  |S_SpriteOp",290,|
00001fd0  43 53 50 25 2c 22 72 61  22 2c 31 30 38 34 2c 36  |CSP%,"ra",1084,6|
00001fe0  34 38 3a ef 20 32 34 2c  36 38 38 3b 32 38 3b 31  |48:. 24,688;28;1|
00001ff0  32 34 38 3b 36 34 34 3b  0d 08 0c 1d 44 4c 25 3d  |248;644;....DL%=|
00002000  93 2b 26 33 30 2b 50 25  2a 33 32 3a 51 25 3d 30  |.+&30+P%*32:Q%=0|
00002010  3a 52 25 3d b9 0d 08 16  35 f5 3a e7 20 52 25 20  |:R%=....5.:. R% |
00002020  da 3a 21 79 70 6f 73 3d  36 30 38 3a 41 25 3d 44  |.:!ypos=608:A%=D|
00002030  4c 25 3f 51 25 3a d6 20  6d 65 73 73 61 67 65 3a  |L%?Q%:. message:|
00002040  52 25 3d a3 3a 51 44 25  3d b9 0d 08 20 0a f2 6d  |R%=.:QD%=... ..m|
00002050  6f 75 73 65 0d 08 2a 19  e7 20 4d 59 25 3e 36 35  |ouse..*.. MY%>65|
00002060  36 20 80 20 4d 59 25 3c  37 36 30 20 8c 0d 08 34  |6 . MY%<760 ...4|
00002070  38 20 e7 20 4d 58 25 3e  37 30 30 20 80 20 4d 58  |8 . MX%>700 . MX|
00002080  25 3c 38 34 34 20 80 20  51 25 3e 30 20 f5 3a 51  |%<844 . Q%>0 .:Q|
00002090  25 2d 3d 31 3a fd 20 44  4c 25 3f 51 25 3c 3e 30  |%-=1:. DL%?Q%<>0|
000020a0  3a 52 25 3d b9 0d 08 3e  54 20 e7 20 4d 58 25 3e  |:R%=...>T . MX%>|
000020b0  31 30 38 34 20 80 20 4d  58 25 3c 31 32 32 38 20  |1084 . MX%<1228 |
000020c0  43 25 3d 51 25 3a 52 25  3d b9 3a f5 3a 51 25 2b  |C%=Q%:R%=.:.:Q%+|
000020d0  3d 31 3a fd 20 44 4c 25  3f 51 25 3c 3e 30 20 84  |=1:. DL%?Q%<>0 .|
000020e0  20 51 25 3d 31 36 3a e7  20 51 25 3d 31 36 20 51  | Q%=16:. Q%=16 Q|
000020f0  25 3d 43 25 3a 52 25 3d  a3 0d 08 48 05 cd 0d 08  |%=C%:R%=...H....|
00002100  52 1f e7 20 4d 58 25 3e  36 38 38 20 80 20 4d 59  |R.. MX%>688 . MY|
00002110  25 3c 36 34 34 20 80 20  51 44 25 20 8c 0d 08 5c  |%<644 . QD% ...\|
00002120  2f 20 41 25 3d 44 4c 25  3f 28 51 25 2b 31 36 29  |/ A%=DL%?(Q%+16)|
00002130  3a da 3a 21 79 70 6f 73  3d 36 30 38 3a d6 20 6d  |:.:!ypos=608:. m|
00002140  65 73 73 61 67 65 3a 51  44 25 3d a3 0d 08 66 26  |essage:QD%=...f&|
00002150  20 e7 20 51 25 3d 30 20  80 20 50 25 3c 3e 37 20  | . Q%=0 . P%<>7 |
00002160  f2 63 68 5f 72 65 73 70  28 50 25 2c 30 2c 31 32  |.ch_resp(P%,0,12|
00002170  33 29 0d 08 70 3d 20 e7  20 51 25 3e 30 20 80 20  |3)..p= . Q%>0 . |
00002180  51 25 3c 37 20 80 20 28  50 25 3c 3e 37 20 84 20  |Q%<7 . (P%<>7 . |
00002190  3f 28 93 2b 39 29 3d 32  34 37 29 20 f2 63 68 5f  |?(.+9)=247) .ch_|
000021a0  72 65 73 70 28 50 25 2c  51 25 2c 31 32 34 29 0d  |resp(P%,Q%,124).|
000021b0  08 7a 2c 20 e7 20 51 25  3d 32 20 80 20 50 25 3d  |.z, . Q%=2 . P%=|
000021c0  35 20 3f 28 93 2b 26 31  35 46 29 3d 31 3a f4 20  |5 ?(.+&15F)=1:. |
000021d0  53 77 6f 72 64 20 66 69  67 68 74 0d 08 84 2d 20  |Sword fight...- |
000021e0  e7 20 41 25 3d 31 30 32  20 f2 72 65 76 65 61 6c  |. A%=102 .reveal|
000021f0  5f 71 75 65 73 28 37 29  3a f4 20 4d 69 6c 6c 65  |_ques(7):. Mille|
00002200  72 20 61 72 6d 79 20 3f  0d 08 8e 37 20 e7 20 41  |r army ?...7 . A|
00002210  25 3d 31 30 33 20 3f 28  93 2b 26 31 35 35 29 3d  |%=103 ?(.+&155)=|
00002220  31 3a f2 68 69 64 65 5f  71 75 65 73 28 31 2c 32  |1:.hide_ques(1,2|
00002230  29 3a f4 20 4d 69 6c 6c  65 72 20 61 72 6d 79 0d  |):. Miller army.|
00002240  08 98 38 20 e7 20 41 25  3d 31 30 35 20 80 20 3f  |..8 . A%=105 . ?|
00002250  28 93 2b 35 29 3d 32 35  35 20 f2 72 65 76 65 61  |(.+5)=255 .revea|
00002260  6c 5f 71 75 65 73 28 36  29 3a f4 20 4d 6f 6e 6b  |l_ques(6):. Monk|
00002270  20 61 72 6d 79 20 3f 0d  08 a2 35 20 e7 20 41 25  | army ?...5 . A%|
00002280  3d 31 30 36 20 3f 28 93  2b 26 31 35 36 29 3d 31  |=106 ?(.+&156)=1|
00002290  3a f2 68 69 64 65 5f 71  75 65 73 28 32 2c 32 29  |:.hide_ques(2,2)|
000022a0  3a f4 20 4d 6f 6e 6b 20  61 72 6d 79 0d 08 ac 52  |:. Monk army...R|
000022b0  20 e7 20 41 25 3d 31 30  38 20 f2 68 69 64 65 5f  | . A%=108 .hide_|
000022c0  71 75 65 73 28 32 2c 38  29 3a f2 63 68 5f 72 65  |ques(2,8):.ch_re|
000022d0  73 70 28 36 2c 32 2c 39  36 29 3a f2 63 68 5f 72  |sp(6,2,96):.ch_r|
000022e0  65 73 70 28 36 2c 37 2c  31 30 30 29 3a f4 20 4d  |esp(6,7,100):. M|
000022f0  6f 6e 6b 20 67 69 76 65  73 20 77 69 6e 65 0d 08  |onk gives wine..|
00002300  b6 39 20 e7 20 41 25 3d  38 32 20 3f 28 93 2b 26  |.9 . A%=82 ?(.+&|
00002310  31 35 37 29 3d 31 3a f2  68 69 64 65 5f 71 75 65  |157)=1:.hide_que|
00002320  73 28 33 2c 32 29 3a f4  20 48 65 72 62 61 6c 69  |s(3,2):. Herbali|
00002330  73 74 20 61 72 6d 79 0d  08 c0 4e 20 e7 20 41 25  |st army...N . A%|
00002340  3d 38 35 20 3f 28 93 2b  35 29 3d 30 3a e3 20 49  |=85 ?(.+5)=0:. I|
00002350  25 3d 30 20 b8 20 38 3a  f2 68 69 64 65 5f 71 75  |%=0 . 8:.hide_qu|
00002360  65 73 28 49 25 2c 36 29  3a ed 3a f4 20 48 65 72  |es(I%,6):.:. Her|
00002370  62 61 6c 69 73 74 20 67  69 76 65 73 20 61 6e 74  |balist gives ant|
00002380  69 64 6f 74 65 0d 08 ca  30 20 e7 20 41 25 3d 38  |idote...0 . A%=8|
00002390  37 20 f2 72 65 76 65 61  6c 5f 71 75 65 73 28 33  |7 .reveal_ques(3|
000023a0  29 3a f4 20 53 68 6f 70  6b 65 65 70 65 72 20 61  |):. Shopkeeper a|
000023b0  72 6d 79 20 3f 0d 08 d4  3a 20 e7 20 41 25 3d 38  |rmy ?...: . A%=8|
000023c0  38 20 3f 28 93 2b 26 31  35 38 29 3d 31 3a f2 68  |8 ?(.+&158)=1:.h|
000023d0  69 64 65 5f 71 75 65 73  28 34 2c 32 29 3a f4 20  |ide_ques(4,2):. |
000023e0  53 68 6f 70 6b 65 65 70  65 72 20 61 72 6d 79 0d  |Shopkeeper army.|
000023f0  08 de 4d 20 e7 20 41 25  3d 39 30 20 3f 28 93 2b  |..M . A%=90 ?(.+|
00002400  37 29 3d 39 3a e3 20 49  25 3d 30 20 b8 20 38 3a  |7)=9:. I%=0 . 8:|
00002410  f2 68 69 64 65 5f 71 75  65 73 28 49 25 2c 34 29  |.hide_ques(I%,4)|
00002420  3a ed 3a f4 20 53 68 6f  70 6b 65 65 70 65 72 20  |:.:. Shopkeeper |
00002430  73 65 6c 6c 73 20 61 72  6d 6f 75 72 0d 08 e8 4b  |sells armour...K|
00002440  20 e7 20 41 25 3d 39 32  20 3f 28 93 2b 36 29 3d  | . A%=92 ?(.+6)=|
00002450  39 3a e3 20 49 25 3d 30  20 b8 20 38 3a f2 68 69  |9:. I%=0 . 8:.hi|
00002460  64 65 5f 71 75 65 73 28  49 25 2c 35 29 3a ed 3a  |de_ques(I%,5):.:|
00002470  f4 20 53 68 6f 70 6b 65  65 70 65 72 20 73 65 6c  |. Shopkeeper sel|
00002480  6c 73 20 72 75 62 79 0d  08 f2 38 20 e7 20 41 25  |ls ruby...8 . A%|
00002490  3d 31 31 33 20 3f 28 93  2b 26 31 35 39 29 3d 32  |=113 ?(.+&159)=2|
000024a0  3a f2 68 69 64 65 5f 71  75 65 73 28 35 2c 32 29  |:.hide_ques(5,2)|
000024b0  3a f4 20 54 65 6d 70 6c  61 72 20 61 72 6d 79 0d  |:. Templar army.|
000024c0  08 fc 2e 20 e7 20 41 25  3d 39 34 20 f2 72 65 76  |... . A%=94 .rev|
000024d0  65 61 6c 5f 71 75 65 73  28 38 29 3a f4 20 48 65  |eal_ques(8):. He|
000024e0  6c 6c 6f 20 69 6e 6e 6b  65 65 70 65 72 0d 09 06  |llo innkeeper...|
000024f0  39 20 e7 20 41 25 3d 39  36 20 3f 28 93 2b 26 31  |9 . A%=96 ?(.+&1|
00002500  35 41 29 3d 31 3a f2 68  69 64 65 5f 71 75 65 73  |5A)=1:.hide_ques|
00002510  28 36 2c 32 29 3a f4 20  49 6e 6e 6b 65 65 70 65  |(6,2):. Innkeepe|
00002520  72 20 61 72 6d 79 0d 09  10 40 20 e7 20 41 25 3d  |r army...@ . A%=|
00002530  31 30 30 20 f2 68 69 64  65 5f 71 75 65 73 28 36  |100 .hide_ques(6|
00002540  2c 37 29 3a f2 63 68 5f  72 65 73 70 28 31 2c 32  |,7):.ch_resp(1,2|
00002550  2c 31 30 33 29 3a f4 20  49 6e 6e 6b 65 65 70 65  |,103):. Innkeepe|
00002560  72 20 70 61 79 73 0d 09  1a 30 20 e7 20 41 25 3d  |r pays...0 . A%=|
00002570  31 32 30 20 f2 72 65 76  65 61 6c 5f 71 75 65 73  |120 .reveal_ques|
00002580  28 35 29 3a f4 20 4d 65  72 63 65 6e 61 72 79 20  |(5):. Mercenary |
00002590  61 72 6d 79 20 3f 0d 09  24 3a 20 e7 20 41 25 3d  |army ?..$: . A%=|
000025a0  31 32 31 20 3f 28 93 2b  26 31 35 42 29 3d 33 3a  |121 ?(.+&15B)=3:|
000025b0  f2 68 69 64 65 5f 71 75  65 73 28 37 2c 32 29 3a  |.hide_ques(7,2):|
000025c0  f4 20 4d 65 72 63 65 6e  61 72 79 20 61 72 6d 79  |. Mercenary army|
000025d0  0d 09 2e 34 20 e7 20 41  25 3d 31 32 32 20 f2 72  |...4 . A%=122 .r|
000025e0  65 76 65 61 6c 5f 71 75  65 73 28 34 29 3a f4 20  |eveal_ques(4):. |
000025f0  4d 65 72 63 65 6e 61 72  79 20 6e 65 63 6b 6c 61  |Mercenary neckla|
00002600  63 65 20 3f 0d 09 38 3b  20 e7 20 41 25 3d 31 31  |ce ?..8; . A%=11|
00002610  36 20 3f 28 93 2b 39 29  3d 30 3a f2 68 69 64 65  |6 ?(.+9)=0:.hide|
00002620  5f 71 75 65 73 28 38 2c  32 29 3a f4 20 4d 61 69  |_ques(8,2):. Mai|
00002630  64 20 67 69 76 65 73 20  70 65 6e 64 61 6e 74 0d  |d gives pendant.|
00002640  09 42 05 cd 0d 09 4c 44  fd 20 4d 58 25 3e 38 36  |.B....LD. MX%>86|
00002650  34 20 80 20 4d 58 25 3c  31 30 36 30 20 80 20 4d  |4 . MX%<1060 . M|
00002660  59 25 3e 36 35 36 20 80  20 4d 59 25 3c 37 36 30  |Y%>656 . MY%<760|
00002670  3a ef 20 32 34 2c 36 38  38 3b 32 38 3b 31 32 34  |:. 24,688;28;124|
00002680  38 3b 37 36 34 3b 3a e1  0d 09 56 05 3a 0d 09 60  |8;764;:...V.:..`|
00002690  65 dd 20 f2 65 78 61 6d  69 6e 65 3a da 3a c8 99  |e. .examine:.:..|
000026a0  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 2c 32 39  |"OS_SpriteOp",29|
000026b0  30 2c 43 53 50 25 2c 22  64 6f 6e 65 22 2c 38 36  |0,CSP%,"done",86|
000026c0  34 2c 33 36 3a 41 25 3d  3f 28 93 2b 56 25 2b 26  |4,36:A%=?(.+V%+&|
000026d0  32 30 29 3a 21 79 70 6f  73 3d 37 30 30 3a d6 20  |20):!ypos=700:. |
000026e0  6d 65 73 73 61 67 65 3a  f2 64 6f 6e 65 5f 77 61  |message:.done_wa|
000026f0  69 74 0d 09 6a 05 e1 0d  09 74 05 3a 0d 09 7e 5f  |it..j....t.:..~_|
00002700  dd 20 f2 69 6e 76 65 6e  74 6f 72 79 3a da 3a c8  |. .inventory:.:.|
00002710  99 22 4f 53 5f 53 70 72  69 74 65 4f 70 22 2c 32  |."OS_SpriteOp",2|
00002720  39 30 2c 43 53 50 25 2c  22 64 6f 6e 65 22 2c 38  |90,CSP%,"done",8|
00002730  36 34 2c 33 36 3a ef 20  32 34 2c 36 38 38 3b 31  |64,36:. 24,688;1|
00002740  34 38 3b 31 32 34 38 3b  37 36 34 3b 3a 54 24 3d  |48;1248;764;:T$=|
00002750  22 49 6e 76 65 6e 74 6f  72 79 22 0d 09 88 41 41  |"Inventory"...AA|
00002760  25 3d a4 73 65 6c 5f 6f  62 6a 28 30 29 3a e7 20  |%=.sel_obj(0):. |
00002770  41 25 3d 31 30 30 20 21  79 70 6f 73 3d 34 36 38  |A%=100 !ypos=468|
00002780  3a 41 25 3d 31 33 31 3a  d6 20 6d 65 73 73 61 67  |:A%=131:. messag|
00002790  65 3a f2 64 6f 6e 65 5f  77 61 69 74 0d 09 92 0e  |e:.done_wait....|
000027a0  c8 95 20 41 25 3c 39 39  3a da 0d 09 9c 0c e7 20  |.. A%<99:...... |
000027b0  41 25 3d 30 20 8c 0d 09  a6 11 20 4d 25 3d 21 28  |A%=0 ..... M%=!(|
000027c0  93 2b 26 31 35 30 29 0d  09 b0 0d 20 e7 20 4d 25  |.+&150).... . M%|
000027d0  3d 30 20 8c 0d 09 ba 25  20 20 f2 77 70 72 28 22  |=0 ....%  .wpr("|
000027e0  54 68 65 20 70 75 72 73  65 20 69 73 20 65 6d 70  |The purse is emp|
000027f0  74 79 2e 22 2c 37 30 30  29 0d 09 c4 06 20 cc 0d  |ty.",700).... ..|
00002800  09 ce 4c 20 20 4d 24 3d  22 54 68 65 20 70 75 72  |..L  M$="The pur|
00002810  73 65 20 63 6f 6e 74 61  69 6e 73 20 22 2b c3 28  |se contains "+.(|
00002820  4d 25 29 2b 22 20 67 6f  6c 64 20 70 69 65 63 65  |M%)+" gold piece|
00002830  22 3a e7 20 4d 25 3d 31  20 4d 24 2b 3d 22 2e 22  |":. M%=1 M$+="."|
00002840  20 8b 20 4d 24 2b 3d 22  73 2e 22 0d 09 d8 12 20  | . M$+="s.".... |
00002850  20 f2 77 70 72 28 4d 24  2c 37 30 30 29 0d 09 e2  | .wpr(M$,700)...|
00002860  06 20 cd 0d 09 ec 05 cc  0d 09 f6 1f 20 21 79 70  |. .......... !yp|
00002870  6f 73 3d 37 30 30 3a 41  25 2b 3d 32 35 3a d6 20  |os=700:A%+=25:. |
00002880  6d 65 73 73 61 67 65 0d  0a 00 05 cd 0d 0a 0a 21  |message........!|
00002890  f2 64 6f 6e 65 5f 77 61  69 74 3a da 3a 41 25 3d  |.done_wait:.:A%=|
000028a0  a4 73 65 6c 5f 6f 62 6a  28 30 29 3a ce 0d 0a 14  |.sel_obj(0):....|
000028b0  1b ef 20 32 34 2c 36 38  38 3b 32 38 3b 31 32 34  |.. 24,688;28;124|
000028c0  38 3b 37 36 34 3b 3a e1  0d 0a 1e 05 3a 0d 0a 28  |8;764;:.....:..(|
000028d0  13 dd 20 f2 62 75 79 3a  54 24 3d 22 42 75 79 22  |.. .buy:T$="Buy"|
000028e0  0d 0a 32 2c da 3a c8 99  22 4f 53 5f 53 70 72 69  |..2,.:.."OS_Spri|
000028f0  74 65 4f 70 22 2c 32 39  30 2c 43 53 50 25 2c 22  |teOp",290,CSP%,"|
00002900  64 6f 6e 65 22 2c 38 36  34 2c 33 36 0d 0a 3c 3a  |done",864,36..<:|
00002910  41 25 3d 30 3a e7 20 a4  6e 75 6d 5f 6f 62 6a 28  |A%=0:. .num_obj(|
00002920  56 25 29 3d 30 20 41 25  3d 31 33 32 20 8b 20 e7  |V%)=0 A%=132 . .|
00002930  20 a4 6e 75 6d 5f 6f 62  6a 28 30 29 3e 31 31 20  | .num_obj(0)>11 |
00002940  41 25 3d 31 33 38 0d 0a  46 45 e7 20 41 25 3c 3e  |A%=138..FE. A%<>|
00002950  30 20 21 79 70 6f 73 3d  34 36 38 3a d6 20 6d 65  |0 !ypos=468:. me|
00002960  73 73 61 67 65 3a f2 64  6f 6e 65 5f 77 61 69 74  |ssage:.done_wait|
00002970  3a 4f 42 25 3d 31 30 30  20 8b 20 4f 42 25 3d a4  |:OB%=100 . OB%=.|
00002980  73 65 6c 5f 6f 62 6a 28  56 25 29 0d 0a 50 0e e7  |sel_obj(V%)..P..|
00002990  20 4f 42 25 3c 39 39 20  8c 0d 0a 5a 3f 20 da 3a  | OB%<99 ...Z? .:|
000029a0  e7 20 4f 42 25 3d 31 39  20 f2 77 70 72 28 22 54  |. OB%=19 .wpr("T|
000029b0  68 65 73 65 20 63 6f 73  74 22 2c 37 30 30 29 20  |hese cost",700) |
000029c0  8b 20 f2 77 70 72 28 22  54 68 69 73 20 63 6f 73  |. .wpr("This cos|
000029d0  74 73 22 2c 37 30 30 29  0d 0a 64 2b 20 f2 77 70  |ts",700)..d+ .wp|
000029e0  72 28 c3 28 43 53 54 25  28 4f 42 25 29 29 2b 22  |r(.(CST%(OB%))+"|
000029f0  20 67 6f 6c 64 20 70 69  65 63 65 73 2e 22 2c 36  | gold pieces.",6|
00002a00  36 38 29 0d 0a 6e 1c 20  e7 20 43 53 54 25 28 4f  |68)..n. . CST%(O|
00002a10  42 25 29 3e 21 28 93 2b  26 31 35 30 29 20 8c 0d  |B%)>!(.+&150) ..|
00002a20  0a 78 52 20 20 21 79 70  6f 73 3d 36 30 34 3a 41  |.xR  !ypos=604:A|
00002a30  25 3d 31 33 37 3a d6 20  6d 65 73 73 61 67 65 3a  |%=137:. message:|
00002a40  c8 99 22 4f 53 5f 53 70  72 69 74 65 4f 70 22 2c  |.."OS_SpriteOp",|
00002a50  32 39 30 2c 43 53 50 25  2c 22 64 6f 6e 65 22 2c  |290,CSP%,"done",|
00002a60  38 36 34 2c 33 36 3a f2  64 6f 6e 65 5f 77 61 69  |864,36:.done_wai|
00002a70  74 0d 0a 82 06 20 cc 0d  0a 8c a3 20 20 c8 99 22  |t.... .....  .."|
00002a80  4f 53 5f 53 70 72 69 74  65 4f 70 22 2c 32 39 30  |OS_SpriteOp",290|
00002a90  2c 43 53 50 25 2c 22 79  65 73 22 2c 37 30 34 2c  |,CSP%,"yes",704,|
00002aa0  33 36 3a c8 99 22 4f 53  5f 53 70 72 69 74 65 4f  |36:.."OS_SpriteO|
00002ab0  70 22 2c 32 39 30 2c 43  53 50 25 2c 22 6e 6f 22  |p",290,CSP%,"no"|
00002ac0  2c 31 30 32 38 2c 33 36  3a f2 77 70 72 28 22 44  |,1028,36:.wpr("D|
00002ad0  6f 20 79 6f 75 20 77 69  73 68 20 74 6f 22 2c 36  |o you wish to",6|
00002ae0  30 34 29 3a e7 20 4f 42  25 3d 31 39 20 f2 77 70  |04):. OB%=19 .wp|
00002af0  72 28 22 62 75 79 20 74  68 65 6d 20 3f 22 2c 35  |r("buy them ?",5|
00002b00  37 32 29 20 8b 20 f2 77  70 72 28 22 62 75 79 20  |72) . .wpr("buy |
00002b10  69 74 20 3f 22 2c 35 37  32 29 0d 0a 96 13 20 20  |it ?",572)....  |
00002b20  59 25 3d 30 3a f5 3a f2  6d 6f 75 73 65 0d 0a a0  |Y%=0:.:.mouse...|
00002b30  1a 20 20 e7 20 4d 59 25  3e 34 34 20 80 20 4d 59  |.  . MY%>44 . MY|
00002b40  25 3c 31 34 38 20 8c 0d  0a aa 3c 20 20 20 e7 20  |%<148 ....<   . |
00002b50  4d 58 25 3e 37 30 34 20  80 20 4d 58 25 3c 39 30  |MX%>704 . MX%<90|
00002b60  30 20 59 25 3d 31 20 8b  20 e7 20 4d 58 25 3e 31  |0 Y%=1 . . MX%>1|
00002b70  30 32 38 20 80 20 4d 58  25 3c 31 32 32 34 20 59  |028 . MX%<1224 Y|
00002b80  25 3d 32 0d 0a b4 07 20  20 cd 0d 0a be 0c 20 20  |%=2....  .....  |
00002b90  fd 20 59 25 3e 30 0d 0a  c8 0e 20 20 e7 20 59 25  |. Y%>0....  . Y%|
00002ba0  3d 31 20 8c 0d 0a d2 08  20 20 20 da 0d 0a dc 0f  |=1 .....   .....|
00002bb0  20 20 20 c8 8e 20 4f 42  25 20 ca 0d 0a e6 4b 20  |   .. OB% ....K |
00002bc0  20 20 20 c9 20 32 31 3a  e7 20 3f 28 93 2b 26 31  |   . 21:. ?(.+&1|
00002bd0  36 31 29 3d 30 20 41 25  3d 31 34 30 3a 21 28 93  |61)=0 A%=140:!(.|
00002be0  2b 26 31 35 30 29 2d 3d  43 53 54 25 28 4f 42 25  |+&150)-=CST%(OB%|
00002bf0  29 3a 3f 28 93 2b 26 31  36 31 29 3d 31 20 8b 20  |):?(.+&161)=1 . |
00002c00  41 25 3d 31 34 32 0d 0a  f0 4b 20 20 20 20 c9 20  |A%=142...K    . |
00002c10  32 32 3a e7 20 3f 28 93  2b 26 31 36 32 29 3d 30  |22:. ?(.+&162)=0|
00002c20  20 41 25 3d 31 34 31 3a  21 28 93 2b 26 31 35 30  | A%=141:!(.+&150|
00002c30  29 2d 3d 43 53 54 25 28  4f 42 25 29 3a 3f 28 93  |)-=CST%(OB%):?(.|
00002c40  2b 26 31 36 32 29 3d 31  20 8b 20 41 25 3d 31 34  |+&162)=1 . A%=14|
00002c50  33 0d 0a fa 49 20 20 20  20 7f 3a 21 28 93 2b 26  |3...I    .:!(.+&|
00002c60  31 35 30 29 2d 3d 43 53  54 25 28 4f 42 25 29 3a  |150)-=CST%(OB%):|
00002c70  3f 28 93 2b 4f 42 25 29  3d 30 3a f2 77 70 72 28  |?(.+OB%)=0:.wpr(|
00002c80  22 59 6f 75 20 6e 6f 77  20 68 61 76 65 22 2c 37  |"You now have",7|
00002c90  30 30 29 3a 41 25 3d 4f  42 25 0d 0b 04 08 20 20  |00):A%=OB%....  |
00002ca0  20 cb 0d 0b 0e 4c 20 20  20 21 79 70 6f 73 3d 36  | ....L   !ypos=6|
00002cb0  36 38 3a d6 20 6d 65 73  73 61 67 65 3a c8 99 22  |68:. message:.."|
00002cc0  4f 53 5f 53 70 72 69 74  65 4f 70 22 2c 32 39 30  |OS_SpriteOp",290|
00002cd0  2c 43 53 50 25 2c 22 64  6f 6e 65 22 2c 38 36 34  |,CSP%,"done",864|
00002ce0  2c 33 36 3a f2 64 6f 6e  65 5f 77 61 69 74 0d 0b  |,36:.done_wait..|
00002cf0  18 07 20 20 cd 0d 0b 22  06 20 cd 0d 0b 2c 05 cd  |..  ...". ...,..|
00002d00  0d 0b 36 05 e1 0d 0b 40  05 3a 0d 0b 4a 19 dd 20  |..6....@.:..J.. |
00002d10  f2 77 70 72 28 53 24 2c  59 25 29 3a ea 20 54 24  |.wpr(S$,Y%):. T$|
00002d20  2c 50 25 0d 0b 54 0b f5  3a 54 24 3d 22 22 0d 0b  |,P%..T..:T$=""..|
00002d30  5e 0f 20 e7 20 a9 53 24  3e 31 37 20 8c 0d 0b 68  |^. . .S$>17 ...h|
00002d40  25 20 20 50 25 3d 31 37  3a c8 95 20 c1 53 24 2c  |%  P%=17:.. .S$,|
00002d50  50 25 2c 31 29 3c 3e 22  20 22 3a 50 25 2d 3d 31  |P%,1)<>" ":P%-=1|
00002d60  3a ce 0d 0b 72 23 20 20  54 24 3d c2 53 24 2c a9  |:...r#  T$=.S$,.|
00002d70  28 53 24 29 2d 50 25 29  3a 53 24 3d c0 53 24 2c  |(S$)-P%):S$=.S$,|
00002d80  50 25 2d 31 29 0d 0b 7c  06 20 cd 0d 0b 86 25 20  |P%-1)..|. ....% |
00002d90  ec 20 39 36 38 2d 31 36  2a a9 53 24 2c 59 25 3a  |. 968-16*.S$,Y%:|
00002da0  f1 53 24 3a 59 25 2d 3d  33 32 3a 53 24 3d 54 24  |.S$:Y%-=32:S$=T$|
00002db0  0d 0b 90 0d fd 20 53 24  3d 22 22 3a e1 0d 0b 9a  |..... S$="":....|
00002dc0  05 3a 0d 0b a4 25 dd 20  f2 77 77 70 72 28 53 24  |.:...%. .wwpr(S$|
00002dd0  29 3a ea 20 54 24 2c 50  25 2c 59 25 3a 54 24 3d  |):. T$,P%,Y%:T$=|
00002de0  53 24 3a 59 25 3d 30 0d  0b ae 05 f5 0d 0b b8 10  |S$:Y%=0.........|
00002df0  20 e7 20 a9 54 24 3e 57  57 25 20 8c 0d 0b c2 28  | . .T$>WW% ....(|
00002e00  20 20 50 25 3d 57 57 25  2b 31 3a c8 95 20 c1 54  |  P%=WW%+1:.. .T|
00002e10  24 2c 50 25 2c 31 29 3c  3e 22 20 22 3a 50 25 2d  |$,P%,1)<>" ":P%-|
00002e20  3d 31 3a ce 0d 0b cc 16  20 20 54 24 3d c2 54 24  |=1:.....  T$=.T$|
00002e30  2c a9 28 54 24 29 2d 50  25 29 0d 0b d6 06 20 cc  |,.(T$)-P%).... .|
00002e40  0d 0b e0 0b 20 20 54 24  3d 22 22 0d 0b ea 06 20  |....  T$="".... |
00002e50  cd 0d 0b f4 0a 20 59 25  2b 3d 31 0d 0b fe 0b fd  |..... Y%+=1.....|
00002e60  20 54 24 3d 22 22 0d 0c  08 11 59 25 3d 57 59 43  | T$=""....Y%=WYC|
00002e70  25 2b 59 25 2a 31 38 0d  0c 12 0b f5 3a 54 24 3d  |%+Y%*18.....:T$=|
00002e80  22 22 0d 0c 1c 10 20 e7  20 a9 53 24 3e 57 57 25  |"".... . .S$>WW%|
00002e90  20 8c 0d 0c 26 28 20 20  50 25 3d 57 57 25 2b 31  | ...&(  P%=WW%+1|
00002ea0  3a c8 95 20 c1 53 24 2c  50 25 2c 31 29 3c 3e 22  |:.. .S$,P%,1)<>"|
00002eb0  20 22 3a 50 25 2d 3d 31  3a ce 0d 0c 30 23 20 20  | ":P%-=1:...0#  |
00002ec0  54 24 3d c2 53 24 2c a9  28 53 24 29 2d 50 25 29  |T$=.S$,.(S$)-P%)|
00002ed0  3a 53 24 3d c0 53 24 2c  50 25 2d 31 29 0d 0c 3a  |:S$=.S$,P%-1)..:|
00002ee0  06 20 cd 0d 0c 44 26 20  ec 20 57 58 43 25 2d 31  |. ...D& . WXC%-1|
00002ef0  36 2a a9 53 24 2c 59 25  3a f1 53 24 3a 59 25 2d  |6*.S$,Y%:.S$:Y%-|
00002f00  3d 33 36 3a 53 24 3d 54  24 0d 0c 4e 0d fd 20 53  |=36:S$=T$..N.. S|
00002f10  24 3d 22 22 3a e1 0d 0c  58 05 3a 0d 0c 62 55 dd  |$="":...X.:..bU.|
00002f20  20 f2 67 69 76 65 3a da  3a c8 99 22 4f 53 5f 53  | .give:.:.."OS_S|
00002f30  70 72 69 74 65 4f 70 22  2c 32 39 30 2c 43 53 50  |priteOp",290,CSP|
00002f40  25 2c 22 64 6f 6e 65 22  2c 38 36 34 2c 33 36 3a  |%,"done",864,36:|
00002f50  ef 20 32 34 2c 36 38 38  3b 31 34 38 3b 31 32 34  |. 24,688;148;124|
00002f60  38 3b 37 36 34 3b 3a 54  24 3d 22 47 69 76 65 22  |8;764;:T$="Give"|
00002f70  0d 0c 6c 43 4f 42 25 3d  a4 73 65 6c 5f 6f 62 6a  |..lCOB%=.sel_obj|
00002f80  28 30 29 3a e7 20 4f 42  25 3d 31 30 30 20 21 79  |(0):. OB%=100 !y|
00002f90  70 6f 73 3d 34 36 38 3a  41 25 3d 31 33 31 3a d6  |pos=468:A%=131:.|
00002fa0  20 6d 65 73 73 61 67 65  3a f2 64 6f 6e 65 5f 77  | message:.done_w|
00002fb0  61 69 74 0d 0c 76 0e e7  20 4f 42 25 3c 39 39 20  |ait..v.. OB%<99 |
00002fc0  8c 0d 0c 80 13 20 21 79  70 6f 73 3d 37 30 30 3a  |..... !ypos=700:|
00002fd0  41 25 3d 30 0d 0c 8a 18  20 f4 20 43 68 65 63 6b  |A%=0.... . Check|
00002fe0  20 73 69 6c 6c 79 20 67  69 66 74 73 0d 0c 94 93  | silly gifts....|
00002ff0  20 e7 20 28 50 25 3d 33  20 80 20 28 4f 42 25 3d  | . (P%=3 . (OB%=|
00003000  35 20 84 20 4f 42 25 3d  32 30 20 84 20 4f 42 25  |5 . OB%=20 . OB%|
00003010  3d 31 31 20 84 20 4f 42  25 3d 31 32 20 84 20 4f  |=11 . OB%=12 . O|
00003020  42 25 3d 31 33 29 29 20  84 20 28 50 25 3d 34 20  |B%=13)) . (P%=4 |
00003030  80 20 28 4f 42 25 3d 36  20 84 20 4f 42 25 3d 37  |. (OB%=6 . OB%=7|
00003040  20 84 20 4f 42 25 3e 31  33 20 80 20 4f 42 25 3c  | . OB%>13 . OB%<|
00003050  32 30 29 29 20 84 20 28  50 25 3d 37 20 80 20 4f  |20)) . (P%=7 . O|
00003060  42 25 3d 38 29 20 84 20  28 50 25 3d 38 20 80 20  |B%=8) . (P%=8 . |
00003070  4f 42 25 3d 39 29 20 8c  20 41 25 3d 31 33 39 0d  |OB%=9) . A%=139.|
00003080  0c 9e 1a 20 f4 20 43 68  65 63 6b 20 73 70 65 63  |... . Check spec|
00003090  69 61 6c 20 67 69 66 74  73 0d 0c a8 4f 20 e7 20  |ial gifts...O . |
000030a0  50 25 3d 33 20 80 20 4f  42 25 3d 31 30 20 41 25  |P%=3 . OB%=10 A%|
000030b0  3d 31 32 35 3a f2 63 68  5f 72 65 73 70 28 33 2c  |=125:.ch_resp(3,|
000030c0  32 2c 38 32 29 3a f2 63  68 5f 72 65 73 70 28 33  |2,82):.ch_resp(3|
000030d0  2c 36 2c 38 35 29 3a f2  63 68 5f 72 65 73 70 28  |,6,85):.ch_resp(|
000030e0  33 2c 30 2c 31 32 33 29  0d 0c b2 61 20 e7 20 50  |3,0,123)...a . P|
000030f0  25 3d 37 20 80 20 4f 42  25 3d 39 20 41 25 3d 31  |%=7 . OB%=9 A%=1|
00003100  32 36 3a f2 63 68 5f 72  65 73 70 28 37 2c 30 2c  |26:.ch_resp(7,0,|
00003110  31 32 33 29 3a f2 63 68  5f 72 65 73 70 28 37 2c  |123):.ch_resp(7,|
00003120  32 2c 31 32 30 29 3a f2  63 68 5f 72 65 73 70 28  |2,120):.ch_resp(|
00003130  37 2c 33 2c 31 32 32 29  3a f2 63 68 5f 72 65 73  |7,3,122):.ch_res|
00003140  70 28 37 2c 36 2c 37 38  29 0d 0c bc 39 20 e7 20  |p(7,6,78)...9 . |
00003150  50 25 3d 37 20 80 20 4f  42 25 3d 36 20 41 25 3d  |P%=7 . OB%=6 A%=|
00003160  31 32 38 3a f2 63 68 5f  72 65 73 70 28 50 25 2c  |128:.ch_resp(P%,|
00003170  32 2c 31 32 31 29 3a 3f  28 93 2b 26 31 35 42 29  |2,121):?(.+&15B)|
00003180  3d 33 0d 0c c6 5c 20 e7  20 50 25 3d 37 20 80 20  |=3...\ . P%=7 . |
00003190  4f 42 25 3d 37 20 41 25  3d 31 32 39 3a 3f 28 93  |OB%=7 A%=129:?(.|
000031a0  2b 38 29 3d 30 3a e3 20  49 25 3d 30 20 b8 20 38  |+8)=0:. I%=0 . 8|
000031b0  3a f2 68 69 64 65 5f 71  75 65 73 28 49 25 2c 33  |:.hide_ques(I%,3|
000031c0  29 3a ed 3a f4 20 4d 65  72 63 65 6e 61 72 79 20  |):.:. Mercenary |
000031d0  67 69 76 65 73 20 6e 65  63 6b 6c 61 63 65 0d 0c  |gives necklace..|
000031e0  d0 70 20 e7 20 50 25 3d  32 20 80 20 4f 42 25 3d  |.p . P%=2 . OB%=|
000031f0  35 20 41 25 3d 31 32 37  3a f2 63 68 5f 72 65 73  |5 A%=127:.ch_res|
00003200  70 28 50 25 2c 32 2c 31  30 36 29 3a f2 63 68 5f  |p(P%,2,106):.ch_|
00003210  72 65 73 70 28 50 25 2c  38 2c 31 30 38 29 3a 3f  |resp(P%,8,108):?|
00003220  28 93 2b 26 31 36 30 29  2b 3d 31 3a f2 63 68 5f  |(.+&160)+=1:.ch_|
00003230  72 65 73 70 28 35 2c 32  2c 3f 28 93 2b 26 31 36  |resp(5,2,?(.+&16|
00003240  30 29 29 3a 3f 28 93 2b  33 39 29 3d 35 33 0d 0c  |0)):?(.+39)=53..|
00003250  da 3e 20 e7 20 50 25 3d  34 20 80 20 4f 42 25 3d  |.> . P%=4 . OB%=|
00003260  38 20 41 25 3d 31 33 30  3a f2 63 68 5f 72 65 73  |8 A%=130:.ch_res|
00003270  70 28 50 25 2c 32 2c 38  38 29 3a f2 63 68 5f 72  |p(P%,2,88):.ch_r|
00003280  65 73 70 28 50 25 2c 35  2c 39 32 29 0d 0c e4 43  |esp(P%,5,92)...C|
00003290  20 e7 20 41 25 3d 30 20  80 20 50 25 3d 37 20 80  | . A%=0 . P%=7 .|
000032a0  20 3f 28 93 2b 39 29 3c  3e 32 34 37 20 41 25 3d  | ?(.+9)<>247 A%=|
000032b0  31 33 35 20 8b 20 e7 20  41 25 3c 3e 31 33 39 20  |135 . . A%<>139 |
000032c0  3f 28 93 2b 4f 42 25 29  3d 32 35 34 2d 50 25 0d  |?(.+OB%)=254-P%.|
000032d0  0c ee 17 20 e7 20 41 25  3d 30 20 41 25 3d 31 33  |... . A%=0 A%=13|
000032e0  32 2b b3 28 32 29 0d 0c  f8 18 20 e7 20 4f 42 25  |2+.(2).... . OB%|
000032f0  3d 30 20 21 28 93 2b 26  31 35 30 29 3d 30 0d 0d  |=0 !(.+&150)=0..|
00003300  02 1b 20 da 3a d6 20 6d  65 73 73 61 67 65 3a f2  |.. .:. message:.|
00003310  64 6f 6e 65 5f 77 61 69  74 0d 0d 0c 05 cd 0d 0d  |done_wait.......|
00003320  16 1b ef 20 32 34 2c 36  38 38 3b 32 38 3b 31 32  |... 24,688;28;12|
00003330  34 38 3b 37 36 34 3b 3a  e1 0d 0d 20 05 3a 0d 0d  |48;764;:... .:..|
00003340  2a 17 dd 20 a4 73 65 6c  5f 6f 62 6a 28 49 25 29  |*.. .sel_obj(I%)|
00003350  3a ea 20 4f 25 0d 0d 34  32 4e 25 3d 30 3a e3 20  |:. O%..42N%=0:. |
00003360  41 25 3d 30 20 b8 20 33  31 3a e7 20 3f 28 93 2b  |A%=0 . 31:. ?(.+|
00003370  41 25 29 3d 49 25 20 4f  42 25 28 4e 25 29 3d 41  |A%)=I% OB%(N%)=A|
00003380  25 3a 4e 25 2b 3d 31 0d  0d 3e 11 ed 3a e7 20 4e  |%:N%+=1..>..:. N|
00003390  25 3d 30 20 3d 31 30 30  0d 0d 48 43 f2 77 70 72  |%=0 =100..HC.wpr|
000033a0  28 54 24 2c 37 34 38 29  3a 21 79 70 6f 73 3d 34  |(T$,748):!ypos=4|
000033b0  35 32 2b 4e 25 2a 31 36  3a e3 20 41 25 3d 30 20  |52+N%*16:. A%=0 |
000033c0  b8 20 33 31 3a e7 20 3f  28 93 2b 41 25 29 3d 49  |. 31:. ?(.+A%)=I|
000033d0  25 20 d6 20 6d 65 73 73  61 67 65 0d 0d 52 05 ed  |% . message..R..|
000033e0  0d 0d 5c 22 42 42 25 3d  34 32 34 2d 4e 25 2a 31  |..\"BB%=424-N%*1|
000033f0  36 3a 4f 4f 25 3d 30 3a  f2 72 65 6c 5f 6d 6f 75  |6:OO%=0:.rel_mou|
00003400  73 65 0d 0d 66 64 f5 3a  c8 97 4d 58 25 2c 4d 59  |se..fd.:..MX%,MY|
00003410  25 2c 42 25 3a 4f 25 3d  30 3a e7 4d 58 25 3e 37  |%,B%:O%=0:.MX%>7|
00003420  31 32 80 4d 58 25 3c 31  32 32 34 20 8c 20 4f 25  |12.MX%<1224 . O%|
00003430  3d 4e 25 2b 31 3a f5 3a  4f 25 2d 3d 31 3a fd 4f  |=N%+1:.:O%-=1:.O|
00003440  25 3d 30 20 84 20 4d 59  25 3e 42 42 25 2b 4f 25  |%=0 . MY%>BB%+O%|
00003450  2a 33 32 20 80 20 4d 59  25 3c 42 42 25 2b 35 36  |*32 . MY%<BB%+56|
00003460  2b 4f 25 2a 33 32 0d 0d  70 35 e7 20 4f 25 3c 3e  |+O%*32..p5. O%<>|
00003470  4f 4f 25 20 80 20 4f 4f  25 3c 3e 30 20 c8 96 3a  |OO% . OO%<>0 ..:|
00003480  c8 93 20 c8 90 20 37 31  32 2c 42 42 25 2b 4f 4f  |.. .. 712,BB%+OO|
00003490  25 2a 33 32 2c 35 31 32  2c 32 38 0d 0d 7a 33 e7  |%*32,512,28..z3.|
000034a0  20 4f 25 3c 3e 4f 4f 25  20 80 20 4f 25 3c 3e 30  | O%<>OO% . O%<>0|
000034b0  20 c8 96 3a c8 93 20 c8  90 20 37 31 32 2c 42 42  | ..:.. .. 712,BB|
000034c0  25 2b 4f 25 2a 33 32 2c  35 31 32 2c 32 38 0d 0d  |%+O%*32,512,28..|
000034d0  84 37 e7 20 4d 58 25 3e  38 36 34 20 80 20 4d 58  |.7. MX%>864 . MX|
000034e0  25 3c 31 30 36 30 20 80  20 4d 59 25 3e 34 34 20  |%<1060 . MY%>44 |
000034f0  80 20 4d 59 25 3c 31 34  38 20 80 20 42 25 3c 3e  |. MY%<148 . B%<>|
00003500  30 20 3d 39 39 0d 0d 8e  19 4f 4f 25 3d 4f 25 3a  |0 =99....OO%=O%:|
00003510  fd 42 25 3c 3e 30 20 80  20 4f 25 3c 3e 30 0d 0d  |.B%<>0 . O%<>0..|
00003520  98 0f 3d 4f 42 25 28 4e  25 2d 4f 25 29 0d 0d a2  |..=OB%(N%-O%)...|
00003530  05 3a 0d 0d ac 17 dd 20  a4 6e 75 6d 5f 6f 62 6a  |.:..... .num_obj|
00003540  28 49 25 29 3a ea 20 41  25 0d 0d b6 27 4e 25 3d  |(I%):. A%...'N%=|
00003550  30 3a e3 20 41 25 3d 30  20 b8 20 33 31 3a e7 20  |0:. A%=0 . 31:. |
00003560  3f 28 93 2b 41 25 29 3d  49 25 20 4e 25 2b 3d 31  |?(.+A%)=I% N%+=1|
00003570  0d 0d c0 09 ed 3a 3d 4e  25 0d 0d ca 05 3a 0d 0d  |.....:=N%....:..|
00003580  d4 10 dd 20 f2 64 6f 6e  65 5f 77 61 69 74 0d 0d  |... .done_wait..|
00003590  de 36 f5 3a f2 6d 6f 75  73 65 3a fd 20 4d 58 25  |.6.:.mouse:. MX%|
000035a0  3e 38 36 34 20 80 20 4d  58 25 3c 31 30 36 30 20  |>864 . MX%<1060 |
000035b0  80 20 4d 59 25 3e 34 34  20 80 20 4d 59 25 3c 31  |. MY%>44 . MY%<1|
000035c0  34 38 3a e1 0d 0d e8 05  3a 0d 0d f2 2e dd 20 f2  |48:.....:..... .|
000035d0  63 68 5f 72 65 73 70 28  50 25 2c 51 25 2c 41 25  |ch_resp(P%,Q%,A%|
000035e0  29 3a 3f 28 93 2b 36 34  2b 50 25 2a 33 32 2b 51  |):?(.+64+P%*32+Q|
000035f0  25 29 3d 41 25 3a e1 0d  0d fc 05 3a 0d 0e 06 1f  |%)=A%:.....:....|
00003600  dd 20 f2 72 65 76 65 61  6c 5f 71 75 65 73 28 51  |. .reveal_ques(Q|
00003610  25 29 3a ea 20 49 25 2c  51 4d 25 0d 0e 10 2d e7  |%):. I%,QM%...-.|
00003620  20 51 25 3d 30 20 51 4d  25 3d 36 30 20 8b 20 e7  | Q%=0 QM%=60 . .|
00003630  20 51 25 3d 31 20 51 4d  25 3d 37 31 20 8b 20 51  | Q%=1 QM%=71 . Q|
00003640  4d 25 3d 36 32 2b 51 25  0d 0e 1a 39 e3 20 49 25  |M%=62+Q%...9. I%|
00003650  3d 30 20 b8 20 38 3a e7  20 3f 28 93 2b 36 34 2b  |=0 . 8:. ?(.+64+|
00003660  49 25 2a 33 32 2b 51 25  29 3c 3e 30 20 3f 28 93  |I%*32+Q%)<>0 ?(.|
00003670  2b 34 38 2b 49 25 2a 33  32 2b 51 25 29 3d 51 4d  |+48+I%*32+Q%)=QM|
00003680  25 0d 0e 24 07 ed 3a e1  0d 0e 2e 05 3a 0d 0e 38  |%..$..:.....:..8|
00003690  2c dd 20 f2 68 69 64 65  5f 71 75 65 73 28 50 25  |,. .hide_ques(P%|
000036a0  2c 51 25 29 3a 3f 28 93  2b 34 38 2b 50 25 2a 33  |,Q%):?(.+48+P%*3|
000036b0  32 2b 51 25 29 3d 30 3a  e1 0d 0e 42 05 3a 0d 0e  |2+Q%)=0:...B.:..|
000036c0  4c 0c dd 20 f2 74 6f 77  65 72 0d 0e 56 57 da 3a  |L.. .tower..VW.:|
000036d0  ff 22 49 72 6f 6e 4c 6f  61 64 20 3c 49 72 6f 6e  |."IronLoad <Iron|
000036e0  4c 6f 72 64 24 44 69 72  3e 2e 54 6f 77 65 72 20  |Lord$Dir>.Tower |
000036f0  22 2b c3 7e 28 53 25 2b  26 35 41 30 29 3a 21 66  |"+.~(S%+&5A0):!f|
00003700  72 6f 6d 3d 53 25 3a 21  74 6f 3d 54 25 3a d6 20  |rom=S%:!to=T%:. |
00003710  63 6f 70 79 3a c8 94 20  21 66 72 6f 6d 2c 21 74  |copy:.. !from,!t|
00003720  6f 0d 0e 60 0a 5a 25 3d  30 3a f5 0d 0e 6a 9d d6  |o..`.Z%=0:...j..|
00003730  20 63 6f 70 79 3a f7 20  8d 54 7a 51 3a f2 72 65  | copy:. .TzQ:.re|
00003740  63 74 28 33 32 2c 34 36  34 2c 34 34 38 2c 32 36  |ct(32,464,448,26|
00003750  34 2c a3 29 3a e6 31 32  3a ec 20 31 31 32 2c 37  |4,.):.12:. 112,7|
00003760  30 30 3a f1 22 53 61 76  65 20 67 61 6d 65 22 3a  |00:."Save game":|
00003770  ec 20 31 31 32 2c 36 36  34 3a f1 22 4c 6f 61 64  |. 112,664:."Load|
00003780  20 67 61 6d 65 22 3a ec  20 36 34 2c 36 32 38 3a  | game":. 64,628:|
00003790  f1 22 52 61 69 73 65 20  61 72 6d 69 65 73 22 3a  |."Raise armies":|
000037a0  ec 20 31 31 32 2c 35 39  32 3a f1 22 47 6f 20 74  |. 112,592:."Go t|
000037b0  6f 20 77 61 72 22 3a ec  31 37 36 2c 35 32 30 3a  |o war":.176,520:|
000037c0  f1 22 4c 65 61 76 65 22  0d 0e 74 12 2a 49 72 6f  |."Leave"..t.*Iro|
000037d0  6e 46 61 64 65 49 6e 20  31 35 0d 0e 7e 2e c8 97  |nFadeIn 15..~...|
000037e0  20 b8 20 33 38 34 2c 35  34 38 3a c8 97 20 ee 20  | . 384,548:.. . |
000037f0  32 3a f2 72 65 6c 5f 6d  6f 75 73 65 3a e6 33 2c  |2:.rel_mouse:.3,|
00003800  31 33 3a 4f 4f 25 3d 30  0d 0e 88 68 f5 3a c8 97  |13:OO%=0...h.:..|
00003810  4d 58 25 2c 4d 59 25 2c  42 25 3a 4f 25 3d 30 3a  |MX%,MY%,B%:O%=0:|
00003820  e7 4d 58 25 3e 36 30 80  4d 58 25 3c 34 35 32 20  |.MX%>60.MX%<452 |
00003830  8c 20 4f 25 3d 37 3a f5  3a 4f 25 2d 3d 31 3a fd  |. O%=7:.:O%-=1:.|
00003840  4f 25 3d 30 20 84 20 4d  59 25 3e 34 34 38 2b 4f  |O%=0 . MY%>448+O|
00003850  25 2a 33 36 20 80 20 4d  59 25 3c 34 38 38 2b 4f  |%*36 . MY%<488+O|
00003860  25 2a 33 36 3a e7 20 4f  25 3d 32 20 4f 25 3d 30  |%*36:. O%=2 O%=0|
00003870  0d 0e 92 34 e7 20 4f 25  3c 3e 4f 4f 25 20 80 20  |...4. O%<>OO% . |
00003880  4f 4f 25 3c 3e 30 20 c8  96 3a c8 93 20 c8 90 20  |OO%<>0 ..:.. .. |
00003890  36 30 2c 34 35 32 2b 4f  4f 25 2a 33 36 2c 33 39  |60,452+OO%*36,39|
000038a0  32 2c 33 36 0d 0e 9c 32  e7 20 4f 25 3c 3e 4f 4f  |2,36...2. O%<>OO|
000038b0  25 20 80 20 4f 25 3c 3e  30 20 c8 96 3a c8 93 20  |% . O%<>0 ..:.. |
000038c0  c8 90 20 36 30 2c 34 35  32 2b 4f 25 2a 33 36 2c  |.. 60,452+O%*36,|
000038d0  33 39 32 2c 33 36 0d 0e  a6 1e 4f 4f 25 3d 4f 25  |392,36....OO%=O%|
000038e0  3a fd 42 25 3c 3e 30 20  80 20 4f 25 3c 3e 30 3a  |:.B%<>0 . O%<>0:|
000038f0  c8 97 20 87 0d 0e b0 15  c8 97 20 87 3a 2a 49 72  |.. ....... .:*Ir|
00003900  6f 6e 46 61 64 65 4f 75  74 0d 0e ba 19 e7 20 4f  |onFadeOut..... O|
00003910  25 3c 3e 31 20 d6 20 63  6f 70 79 3a f7 20 8d 54  |%<>1 . copy:. .T|
00003920  7a 51 0d 0e c4 0b c8 8e  20 4f 25 20 ca 0d 0e ce  |zQ...... O% ....|
00003930  13 c9 20 36 3a 20 f2 73  61 76 65 5f 67 61 6d 65  |.. 6: .save_game|
00003940  0d 0e d8 13 c9 20 35 3a  20 f2 6c 6f 61 64 5f 67  |..... 5: .load_g|
00003950  61 6d 65 0d 0e e2 16 c9  20 34 3a 20 f2 72 61 69  |ame..... 4: .rai|
00003960  73 65 5f 61 72 6d 69 65  73 0d 0e ec 0d c9 20 33  |se_armies..... 3|
00003970  3a 20 f2 77 61 72 0d 0e  f6 0d c9 20 31 3a 20 5a  |: .war..... 1: Z|
00003980  25 3d 32 0d 0f 00 05 cb  0d 0f 0a 0b fd 20 5a 25  |%=2.......... Z%|
00003990  3c 3e 30 0d 0f 14 21 56  25 3d 30 3a 41 25 3d 33  |<>0...!V%=0:A%=3|
000039a0  39 32 3a 42 25 3d 32 35  32 3a 43 25 3d 26 46 43  |92:B%=252:C%=&FC|
000039b0  3a da 3a e1 0d 0f 1e 05  3a 0d 0f 28 14 dd 20 f2  |:.:.....:..(.. .|
000039c0  73 61 76 65 5f 67 61 6d  65 3a ea 20 85 0d 0f 32  |save_game:. ...2|
000039d0  17 ee 20 85 20 ea 20 f2  66 69 6c 65 5f 65 72 72  |.. . . .file_err|
000039e0  6f 72 3a e1 0d 0f 3c 59  f2 72 65 63 74 28 33 30  |or:...<Y.rect(30|
000039f0  34 2c 32 33 36 2c 36 36  38 2c 33 32 34 2c a3 29  |4,236,668,324,.)|
00003a00  3a e6 31 32 3a ec 20 34  39 36 2c 35 34 30 3a f1  |:.12:. 496,540:.|
00003a10  22 53 61 76 65 20 67 61  6d 65 22 3a ef 34 2c 32  |"Save game":.4,2|
00003a20  38 2c 31 30 2c 31 39 2c  32 39 2c 31 31 2c 33 31  |8,10,19,29,11,31|
00003a30  2c 30 2c 32 3a fb 31 32  3a fb 31 32 39 0d 0f 46  |,0,2:.12:.129..F|
00003a40  27 f1 22 45 6e 74 65 72  20 66 69 6c 65 6e 61 6d  |'."Enter filenam|
00003a50  65 20 3a 22 27 3a 2a 49  72 6f 6e 46 61 64 65 49  |e :"':*IronFadeI|
00003a60  6e 20 31 35 0d 0f 50 0c  2a 46 58 20 32 31 2c 30  |n 15..P.*FX 21,0|
00003a70  0d 0f 5a 19 f5 3a e8 8a  30 2c 34 29 22 22 46 24  |..Z..:..0,4)""F$|
00003a80  3a fd 20 46 24 3c 3e 22  22 0d 0f 64 2b ff 22 53  |:. F$<>""..d+."S|
00003a90  61 76 65 20 22 2b 46 24  2b 22 20 22 2b c3 7e 93  |ave "+F$+" "+.~.|
00003aa0  2b 22 2b 32 30 30 22 3a  ff 22 53 74 61 6d 70 20  |+"+200":."Stamp |
00003ab0  22 2b 46 24 0d 0f 6e 21  ef 20 32 38 2c 30 2c 33  |"+F$..n!. 28,0,3|
00003ac0  31 2c 33 39 2c 30 2c 35  3a 2a 49 72 6f 6e 46 61  |1,39,0,5:*IronFa|
00003ad0  64 65 4f 75 74 0d 0f 78  05 e1 0d 0f 82 05 3a 0d  |deOut..x......:.|
00003ae0  0f 8c 14 dd 20 f2 6c 6f  61 64 5f 67 61 6d 65 3a  |.... .load_game:|
00003af0  ea 20 85 0d 0f 96 17 ee  20 85 20 ea 20 f2 66 69  |. ...... . . .fi|
00003b00  6c 65 5f 65 72 72 6f 72  3a e1 0d 0f a0 59 f2 72  |le_error:....Y.r|
00003b10  65 63 74 28 33 30 34 2c  32 33 36 2c 36 36 38 2c  |ect(304,236,668,|
00003b20  33 32 34 2c a3 29 3a e6  31 32 3a ec 20 34 39 36  |324,.):.12:. 496|
00003b30  2c 35 34 30 3a f1 22 4c  6f 61 64 20 67 61 6d 65  |,540:."Load game|
00003b40  22 3a ef 34 2c 32 38 2c  31 30 2c 31 39 2c 32 39  |":.4,28,10,19,29|
00003b50  2c 31 31 2c 33 31 2c 30  2c 32 3a fb 31 32 3a fb  |,11,31,0,2:.12:.|
00003b60  31 32 39 0d 0f aa 27 f1  22 45 6e 74 65 72 20 66  |129...'."Enter f|
00003b70  69 6c 65 6e 61 6d 65 20  3a 22 27 3a 2a 49 72 6f  |ilename :"':*Iro|
00003b80  6e 46 61 64 65 49 6e 20  31 35 0d 0f b4 0c 2a 46  |nFadeIn 15....*F|
00003b90  58 20 32 31 2c 30 0d 0f  be 19 f5 3a e8 8a 30 2c  |X 21,0.....:..0,|
00003ba0  34 29 22 22 46 24 3a fd  20 46 24 3c 3e 22 22 0d  |4)""F$:. F$<>"".|
00003bb0  0f c8 8a c8 99 22 4f 53  5f 46 69 6c 65 22 2c 35  |....."OS_File",5|
00003bc0  2c 46 24 20 b8 20 4f 54  25 2c 2c 2c 2c 4f 4c 25  |,F$ . OT%,,,,OL%|
00003bd0  3a e7 20 4f 54 25 3d 30  20 85 20 32 31 34 2c 22  |:. OT%=0 . 214,"|
00003be0  46 69 6c 65 20 27 22 2b  46 24 2b 22 27 20 6e 6f  |File '"+F$+"' no|
00003bf0  74 20 66 6f 75 6e 64 22  20 8b 20 e7 20 4f 54 25  |t found" . . OT%|
00003c00  3c 3e 31 20 84 20 4f 4c  25 3c 3e 26 32 30 30 20  |<>1 . OL%<>&200 |
00003c10  85 20 32 31 34 2c 22 46  69 6c 65 20 27 22 2b 46  |. 214,"File '"+F|
00003c20  24 2b 22 27 20 69 73 20  6e 6f 74 20 61 20 73 61  |$+"' is not a sa|
00003c30  76 65 64 20 67 61 6d 65  22 0d 0f d2 17 ff 22 4c  |ved game"....."L|
00003c40  6f 61 64 20 22 2b 46 24  2b 22 20 22 2b c3 7e 93  |oad "+F$+" "+.~.|
00003c50  0d 0f dc 17 e7 20 3f 28  93 2b 26 31 36 34 29 3d  |..... ?(.+&164)=|
00003c60  31 20 5a 25 3d 31 30 0d  0f e6 21 ef 20 32 38 2c  |1 Z%=10...!. 28,|
00003c70  30 2c 33 31 2c 33 39 2c  30 2c 35 3a 2a 49 72 6f  |0,31,39,0,5:*Iro|
00003c80  6e 46 61 64 65 4f 75 74  0d 0f f0 05 e1 0d 0f fa  |nFadeOut........|
00003c90  05 3a 0d 10 04 11 dd 20  f2 66 69 6c 65 5f 65 72  |.:..... .file_er|
00003ca0  72 6f 72 0d 10 0e 25 db  3a 87 3a f1 8a 34 2c 30  |ror...%.:.:..4,0|
00003cb0  29 3b 22 2a 2a 20 45 72  72 6f 72 20 2a 2a 22 3a  |);"** Error **":|
00003cc0  2a 46 58 20 32 31 2c 30  0d 10 18 1c 58 25 3d 39  |*FX 21,0....X%=9|
00003cd0  2d a9 28 f6 24 29 2f 32  3a e7 20 58 25 3c 30 20  |-.(.$)/2:. X%<0 |
00003ce0  58 25 3d 30 0d 10 22 3b  f1 8a 58 25 2c 32 29 f6  |X%=0..";..X%,2).|
00003cf0  24 3a f2 72 65 6c 5f 6d  6f 75 73 65 3a f5 3a c8  |$:.rel_mouse:.:.|
00003d00  97 20 4d 58 25 2c 4d 59  25 2c 42 25 3a fd 20 42  |. MX%,MY%,B%:. B|
00003d10  25 3c 3e 30 20 84 20 a6  28 30 29 3c 3e 2d 31 0d  |%<>0 . .(0)<>-1.|
00003d20  10 2c 21 ef 20 32 38 2c  30 2c 33 31 2c 33 39 2c  |.,!. 28,0,31,39,|
00003d30  30 2c 35 3a 2a 49 72 6f  6e 46 61 64 65 4f 75 74  |0,5:*IronFadeOut|
00003d40  0d 10 36 05 e1 0d 10 40  05 3a 0d 10 4a 13 dd 20  |..6....@.:..J.. |
00003d50  f2 72 61 69 73 65 5f 61  72 6d 69 65 73 0d 10 54  |.raise_armies..T|
00003d60  24 4e 25 3d 30 3a e3 49  25 3d 26 31 35 35 b8 26  |$N%=0:.I%=&155.&|
00003d70  31 35 42 3a 4e 25 2b 3d  3f 28 93 2b 49 25 29 3a  |15B:N%+=?(.+I%):|
00003d80  ed 0d 10 5e 39 f2 72 65  63 74 28 33 32 30 2c 32  |...^9.rect(320,2|
00003d90  36 38 2c 36 34 30 2c 32  36 34 2c a3 29 3a 57 57  |68,640,264,.):WW|
00003da0  25 3d 31 38 3a 57 58 43  25 3d 36 34 30 3a 57 59  |%=18:WXC%=640:WY|
00003db0  43 25 3d 34 30 30 3a e6  31 32 0d 10 68 2b e7 20  |C%=400:.12..h+. |
00003dc0  4e 25 3d 31 20 4e 24 3d  22 31 20 61 72 6d 79 2e  |N%=1 N$="1 army.|
00003dd0  22 20 8b 20 4e 24 3d c3  4e 25 2b 22 20 61 72 6d  |" . N$=.N%+" arm|
00003de0  69 65 73 2e 22 0d 10 72  70 e7 20 4e 25 3d 30 20  |ies."..rp. N%=0 |
00003df0  f2 77 77 70 72 28 22 59  6f 75 20 68 61 76 65 20  |.wwpr("You have |
00003e00  6e 6f 74 20 79 65 74 20  6d 61 6e 61 67 65 64 20  |not yet managed |
00003e10  74 6f 20 72 61 69 73 65  20 61 6e 79 20 61 72 6d  |to raise any arm|
00003e20  69 65 73 2e 22 29 20 8b  20 f2 77 77 70 72 28 22  |ies.") . .wwpr("|
00003e30  59 6f 75 20 61 72 65 20  63 75 72 72 65 6e 74 6c  |You are currentl|
00003e40  79 20 61 62 6c 65 20 74  6f 20 72 61 69 73 65 20  |y able to raise |
00003e50  22 2b 4e 24 29 0d 10 7c  12 2a 49 72 6f 6e 46 61  |"+N$)..|.*IronFa|
00003e60  64 65 49 6e 20 31 35 0d  10 86 17 f2 6d 6f 75 73  |deIn 15.....mous|
00003e70  65 3a 2a 49 72 6f 6e 46  61 64 65 4f 75 74 0d 10  |e:*IronFadeOut..|
00003e80  90 05 e1 0d 10 9a 05 3a  0d 10 a4 0a dd 20 f2 77  |.......:..... .w|
00003e90  61 72 0d 10 ae 24 4e 25  3d 30 3a e3 49 25 3d 26  |ar...$N%=0:.I%=&|
00003ea0  31 35 35 b8 26 31 35 42  3a 4e 25 2b 3d 3f 28 93  |155.&15B:N%+=?(.|
00003eb0  2b 49 25 29 3a ed 0d 10  b8 ca e7 20 4e 25 3d 30  |+I%):...... N%=0|
00003ec0  20 f2 72 65 63 74 28 33  33 36 2c 33 30 30 2c 36  | .rect(336,300,6|
00003ed0  30 38 2c 32 30 30 2c a3  29 3a 57 57 25 3d 31 38  |08,200,.):WW%=18|
00003ee0  3a 57 58 43 25 3d 36 34  30 3a 57 59 43 25 3d 34  |:WXC%=640:WYC%=4|
00003ef0  30 30 3a e6 31 32 3a f2  77 77 70 72 28 22 59 6f  |00:.12:.wwpr("Yo|
00003f00  75 20 63 61 6e 6e 6f 74  20 79 65 74 20 67 6f 20  |u cannot yet go |
00003f10  74 6f 20 77 61 72 2c 20  61 73 20 79 6f 75 20 68  |to war, as you h|
00003f20  61 76 65 20 6e 6f 74 20  72 61 69 73 65 64 20 61  |ave not raised a|
00003f30  6e 79 20 61 72 6d 69 65  73 2e 22 29 20 8b 20 f2  |ny armies.") . .|
00003f40  72 65 63 74 28 32 38 38  2c 33 36 38 2c 37 30 34  |rect(288,368,704|
00003f50  2c 37 32 2c a3 29 3a e6  31 32 3a ec 33 32 30 2c  |,72,.):.12:.320,|
00003f60  34 31 36 3a f1 22 50 72  65 70 61 72 65 20 66 6f  |416:."Prepare fo|
00003f70  72 20 62 61 74 74 6c 65  20 21 22 3a 5a 25 3d 38  |r battle !":Z%=8|
00003f80  0d 10 c2 12 2a 49 72 6f  6e 46 61 64 65 49 6e 20  |....*IronFadeIn |
00003f90  31 35 0d 10 cc 17 f2 6d  6f 75 73 65 3a 2a 49 72  |15.....mouse:*Ir|
00003fa0  6f 6e 46 61 64 65 4f 75  74 0d 10 d6 05 e1 0d 10  |onFadeOut.......|
00003fb0  e0 05 3a 0d 10 ea 23 dd  20 f2 72 65 63 74 28 58  |..:...#. .rect(X|
00003fc0  25 2c 59 25 2c 57 25 2c  44 25 2c 4c 25 29 3a ea  |%,Y%,W%,D%,L%):.|
00003fd0  20 43 25 2c 4e 25 0d 10  f4 59 e7 20 4c 25 20 e6  | C%,N%...Y. L% .|
00003fe0  31 32 3a ec 20 58 25 2c  59 25 2d 34 3a df 20 58  |12:. X%,Y%-4:. X|
00003ff0  25 2b 57 25 2b 34 2c 59  25 2d 34 3a df 20 58 25  |%+W%+4,Y%-4:. X%|
00004000  2b 57 25 2b 34 2c 59 25  2b 44 25 3a e6 31 31 3a  |+W%+4,Y%+D%:.11:|
00004010  c8 92 20 58 25 2d 34 2c  59 25 2d 34 3a c8 92 20  |.. X%-4,Y%-4:.. |
00004020  58 25 2b 57 25 2b 34 2c  59 25 2b 44 25 2b 34 0d  |X%+W%+4,Y%+D%+4.|
00004030  10 fe 65 f3 20 4e 25 3a  e3 20 4c 25 3d 31 20 b8  |..e. N%:. L%=1 .|
00004040  20 4e 25 3a f3 20 43 25  3a e6 20 43 25 3a c8 93  | N%:. C%:. C%:..|
00004050  20 58 25 2c 59 25 2c 57  25 2c 44 25 3a 58 25 2b  | X%,Y%,W%,D%:X%+|
00004060  3d 34 3a 59 25 2b 3d 34  3a 57 25 2d 3d 38 3a 44  |=4:Y%+=4:W%-=8:D|
00004070  25 2d 3d 38 3a ed 3a f3  20 43 25 3a e6 20 43 25  |%-=8:.:. C%:. C%|
00004080  3a c8 93 20 c8 90 20 58  25 2c 59 25 2c 57 25 2c  |:.. .. X%,Y%,W%,|
00004090  44 25 3a e1 0d 11 08 05  3a 0d 11 12 14 f4 20 44  |D%:.....:..... D|
000040a0  61 74 61 20 66 6f 72 20  62 6f 78 65 73 0d 11 1c  |ata for boxes...|
000040b0  14 dc 20 34 2c 31 33 2c  31 33 2c 31 34 2c 38 2c  |.. 4,13,13,14,8,|
000040c0  37 0d 11 26 1d dc 20 37  2c 38 2c 31 34 2c 31 33  |7..&.. 7,8,14,13|
000040d0  2c 31 33 2c 31 32 2c 31  31 2c 30 2c 31 35 0d 11  |,13,12,11,0,15..|
000040e0  30 11 dc 20 34 2c 31 2c  32 2c 33 2c 34 2c 36 0d  |0.. 4,1,2,3,4,6.|
000040f0  11 3a 11 dc 20 34 2c 34  2c 34 2c 33 2c 32 2c 31  |.:.. 4,4,4,3,2,1|
00004100  0d 11 44 10 dc 20 33 2c  31 31 2c 38 2c 37 2c 36  |..D.. 3,11,8,7,6|
00004110  0d 11 4e 05 3a 0d 11 58  0a dd 20 f2 61 73 6d 0d  |..N.:..X.. .asm.|
00004120  11 62 20 73 70 3d 31 33  3a 6c 69 6e 6b 3d 31 34  |.b sp=13:link=14|
00004130  3a 4f 53 5f 57 72 69 74  65 49 3d 26 31 30 30 0d  |:OS_WriteI=&100.|
00004140  11 6c 12 e3 20 4f 25 3d  30 20 b8 20 32 20 88 20  |.l.. O%=0 . 2 . |
00004150  32 0d 11 76 0c 50 25 3d  63 6f 64 65 25 0d 11 80  |2..v.P%=code%...|
00004160  0b 5b 4f 50 54 20 4f 25  0d 11 8a 0c 2e 6c 6f 61  |.[OPT O%.....loa|
00004170  64 70 69 63 0d 11 94 2f  4c 44 52 20 52 31 31 2c  |dpic.../LDR R11,|
00004180  73 63 72 61 64 64 32 3a  4c 44 52 20 52 31 32 2c  |scradd2:LDR R12,|
00004190  73 63 72 61 64 64 3a 4d  4f 56 20 52 31 30 2c 23  |scradd:MOV R10,#|
000041a0  31 39 34 0d 11 9e 09 2e  70 63 6d 76 0d 11 a8 d7  |194.....pcmv....|
000041b0  4c 44 52 42 20 52 30 2c  5b 52 31 31 5d 2c 23 31  |LDRB R0,[R11],#1|
000041c0  3a 53 54 52 42 20 52 30  2c 5b 52 31 32 5d 2c 23  |:STRB R0,[R12],#|
000041d0  31 3a 4c 44 52 42 20 52  30 2c 5b 52 31 31 5d 2c  |1:LDRB R0,[R11],|
000041e0  23 31 3a 53 54 52 42 20  52 30 2c 5b 52 31 32 5d  |#1:STRB R0,[R12]|
000041f0  2c 23 31 3a 4c 44 4d 49  41 20 52 31 31 21 2c 7b  |,#1:LDMIA R11!,{|
00004200  52 30 2d 52 38 7d 3a 53  54 4d 49 41 20 52 31 32  |R0-R8}:STMIA R12|
00004210  21 2c 7b 52 30 2d 52 38  7d 3a 4c 44 4d 49 41 20  |!,{R0-R8}:LDMIA |
00004220  52 31 31 21 2c 7b 52 30  2d 52 39 7d 3a 53 54 4d  |R11!,{R0-R9}:STM|
00004230  49 41 20 52 31 32 21 2c  7b 52 30 2d 52 39 7d 3a  |IA R12!,{R0-R9}:|
00004240  4c 44 52 42 20 52 30 2c  5b 52 31 31 5d 2c 23 31  |LDRB R0,[R11],#1|
00004250  3a 53 54 52 42 20 52 30  2c 5b 52 31 32 5d 2c 23  |:STRB R0,[R12],#|
00004260  31 3a 4c 44 52 42 20 52  30 2c 5b 52 31 31 5d 2c  |1:LDRB R0,[R11],|
00004270  23 31 3a 53 54 52 42 20  52 30 2c 5b 52 31 32 5d  |#1:STRB R0,[R12]|
00004280  2c 23 31 0d 11 b2 2c 41  44 44 20 52 31 32 2c 52  |,#1...,ADD R12,R|
00004290  31 32 2c 23 38 30 3a 53  55 42 53 20 52 31 30 2c  |12,#80:SUBS R10,|
000042a0  52 31 30 2c 23 31 3a 42  4e 45 20 70 63 6d 76 0d  |R10,#1:BNE pcmv.|
000042b0  11 bc 0f 4d 4f 56 20 50  43 2c 6c 69 6e 6b 0d 11  |...MOV PC,link..|
000042c0  c6 18 2e 73 63 72 61 64  64 20 45 51 55 44 20 53  |...scradd EQUD S|
000042d0  25 2b 26 31 45 32 0d 11  d0 16 2e 73 63 72 61 64  |%+&1E2.....scrad|
000042e0  64 32 20 45 51 55 44 20  54 25 2b 32 0d 11 da 1d  |d2 EQUD T%+2....|
000042f0  5c 20 57 61 69 74 20 66  6f 72 20 52 31 20 66 72  |\ Wait for R1 fr|
00004300  61 6d 65 20 73 79 6e 63  73 0d 11 e4 15 2e 64 65  |ame syncs.....de|
00004310  6c 61 79 20 4d 4f 56 20  52 30 2c 23 31 39 0d 11  |lay MOV R0,#19..|
00004320  ee 3c 2e 64 65 6c 6c 70  20 53 57 49 20 22 4f 53  |.<.dellp SWI "OS|
00004330  5f 42 79 74 65 22 3a 53  55 42 53 20 52 33 2c 52  |_Byte":SUBS R3,R|
00004340  33 2c 23 31 3a 42 4e 45  20 64 65 6c 6c 70 3a 4d  |3,#1:BNE dellp:M|
00004350  4f 56 20 50 43 2c 6c 69  6e 6b 0d 11 f8 15 5c 20  |OV PC,link....\ |
00004360  44 72 61 77 20 62 61 63  6b 67 72 6f 75 6e 64 0d  |Draw background.|
00004370  12 02 18 2e 64 72 74 62  6c 20 4c 44 52 20 52 37  |....drtbl LDR R7|
00004380  2c 70 73 70 61 64 64 0d  12 0c 27 4d 4f 56 20 52  |,pspadd...'MOV R|
00004390  30 2c 23 31 31 32 3a 4d  4f 56 20 52 31 2c 23 32  |0,#112:MOV R1,#2|
000043a0  3a 53 57 49 20 22 4f 53  5f 42 79 74 65 22 0d 12  |:SWI "OS_Byte"..|
000043b0  16 4f 4d 4f 56 20 52 30  2c 23 32 38 30 3a 4d 4f  |.OMOV R0,#280:MO|
000043c0  56 20 52 31 2c 52 37 3a  41 44 52 20 52 32 2c 73  |V R1,R7:ADR R2,s|
000043d0  6e 61 6d 65 3a 4d 4f 56  20 52 33 2c 23 34 38 3a  |name:MOV R3,#48:|
000043e0  53 54 52 20 52 33 2c 5b  52 32 5d 3a 53 57 49 20  |STR R3,[R2]:SWI |
000043f0  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 0d 12 20  |"OS_SpriteOp".. |
00004400  33 4d 4f 56 20 52 30 2c  23 33 34 3a 41 44 44 20  |3MOV R0,#34:ADD |
00004410  52 30 2c 52 30 2c 23 35  31 32 3a 4d 4f 56 20 52  |R0,R0,#512:MOV R|
00004420  34 2c 23 38 30 30 3a 4d  4f 56 20 52 35 2c 23 38  |4,#800:MOV R5,#8|
00004430  0d 12 2a 17 2e 64 62 67  6c 70 20 4d 4f 56 20 52  |..*..dbglp MOV R|
00004440  33 2c 23 31 32 30 30 0d  12 34 50 2e 64 62 67 6c  |3,#1200..4P.dbgl|
00004450  70 32 20 53 57 49 20 22  4f 53 5f 53 70 72 69 74  |p2 SWI "OS_Sprit|
00004460  65 4f 70 22 3a 53 55 42  53 20 52 33 2c 52 33 2c  |eOp":SUBS R3,R3,|
00004470  23 38 30 3a 42 50 4c 20  64 62 67 6c 70 32 3a 53  |#80:BPL dbglp2:S|
00004480  55 42 53 20 52 34 2c 52  34 2c 23 38 30 3a 42 50  |UBS R4,R4,#80:BP|
00004490  4c 20 64 62 67 6c 70 0d  12 3e 59 4c 44 52 42 20  |L dbglp..>YLDRB |
000044a0  52 30 2c 5b 52 36 5d 2c  23 31 3a 4d 4f 56 20 52  |R0,[R6],#1:MOV R|
000044b0  38 2c 52 30 2c 4c 53 4c  23 38 3a 4c 44 52 42 20  |8,R0,LSL#8:LDRB |
000044c0  52 30 2c 5b 52 36 5d 2c  23 31 3a 84 52 20 52 38  |R0,[R6],#1:.R R8|
000044d0  2c 52 38 2c 52 30 3a 4d  4f 56 20 52 39 2c 23 33  |,R8,R0:MOV R9,#3|
000044e0  34 3a 41 44 44 20 52 39  2c 52 39 2c 23 32 35 36  |4:ADD R9,R9,#256|
000044f0  0d 12 48 7c 2e 64 70 6c  6c 70 20 4c 44 52 42 20  |..H|.dpllp LDRB |
00004500  52 30 2c 5b 52 36 5d 2c  23 31 3a 4d 4f 56 20 52  |R0,[R6],#1:MOV R|
00004510  33 2c 52 30 2c 4c 53 4c  23 31 30 3a 4c 44 52 42  |3,R0,LSL#10:LDRB|
00004520  20 52 30 2c 5b 52 36 5d  2c 23 31 3a 84 52 20 52  | R0,[R6],#1:.R R|
00004530  33 2c 52 33 2c 52 30 2c  4c 53 4c 23 32 3a 4c 44  |3,R3,R0,LSL#2:LD|
00004540  52 42 20 52 30 2c 5b 52  36 5d 2c 23 31 3a 4d 4f  |RB R0,[R6],#1:MO|
00004550  56 20 52 34 2c 52 30 2c  4c 53 4c 23 32 3a 52 53  |V R4,R0,LSL#2:RS|
00004560  42 20 52 34 2c 52 34 2c  23 37 39 36 0d 12 52 8c  |B R4,R4,#796..R.|
00004570  4c 44 52 42 20 52 30 2c  5b 52 36 5d 2c 23 31 3a  |LDRB R0,[R6],#1:|
00004580  41 44 52 20 52 31 2c 73  6e 61 6d 65 3a 4d 4f 56  |ADR R1,sname:MOV|
00004590  20 52 32 2c 23 34 3a 53  57 49 20 22 4f 53 5f 43  | R2,#4:SWI "OS_C|
000045a0  6f 6e 76 65 72 74 43 61  72 64 69 6e 61 6c 31 22  |onvertCardinal1"|
000045b0  3a 4d 4f 56 20 52 32 2c  52 30 3a 4d 4f 56 20 52  |:MOV R2,R0:MOV R|
000045c0  31 2c 52 37 3a 4d 4f 56  20 52 30 2c 52 39 3a 53  |1,R7:MOV R0,R9:S|
000045d0  57 49 20 22 4f 53 5f 53  70 72 69 74 65 4f 70 22  |WI "OS_SpriteOp"|
000045e0  3a 53 55 42 53 20 52 38  2c 52 38 2c 23 31 3a 42  |:SUBS R8,R8,#1:B|
000045f0  4e 45 20 64 70 6c 6c 70  0d 12 5c 33 4d 4f 56 20  |NE dpllp..\3MOV |
00004600  52 30 2c 23 31 31 32 3a  4d 4f 56 20 52 31 2c 23  |R0,#112:MOV R1,#|
00004610  31 3a 53 57 49 20 22 4f  53 5f 42 79 74 65 22 3a  |1:SWI "OS_Byte":|
00004620  4d 4f 56 20 50 43 2c 6c  69 6e 6b 0d 12 66 11 2e  |MOV PC,link..f..|
00004630  73 6e 61 6d 65 20 45 51  55 44 20 30 0d 12 70 11  |sname EQUD 0..p.|
00004640  5c 20 43 6f 70 79 20 73  63 72 65 65 6e 0d 12 7a  |\ Copy screen..z|
00004650  45 2e 63 6f 70 79 20 53  54 4d 46 44 20 28 73 70  |E.copy STMFD (sp|
00004660  29 21 2c 7b 52 36 2d 52  31 32 2c 6c 69 6e 6b 7d  |)!,{R6-R12,link}|
00004670  3a 4d 4f 56 20 52 30 2c  23 32 30 30 3a 4c 44 52  |:MOV R0,#200:LDR|
00004680  20 52 31 2c 66 72 6f 6d  3a 4c 44 52 20 52 32 2c  | R1,from:LDR R2,|
00004690  74 6f 0d 12 84 ce 2e 63  6c 70 20 4c 44 4d 49 41  |to.....clp LDMIA|
000046a0  20 52 31 21 2c 7b 52 33  2d 52 31 32 7d 3a 53 54  | R1!,{R3-R12}:ST|
000046b0  4d 49 41 20 52 32 21 2c  7b 52 33 2d 52 31 32 7d  |MIA R2!,{R3-R12}|
000046c0  3a 4c 44 4d 49 41 20 52  31 21 2c 7b 52 33 2d 52  |:LDMIA R1!,{R3-R|
000046d0  31 32 7d 3a 53 54 4d 49  41 20 52 32 21 2c 7b 52  |12}:STMIA R2!,{R|
000046e0  33 2d 52 31 32 7d 3a 4c  44 4d 49 41 20 52 31 21  |3-R12}:LDMIA R1!|
000046f0  2c 7b 52 33 2d 52 31 32  7d 3a 53 54 4d 49 41 20  |,{R3-R12}:STMIA |
00004700  52 32 21 2c 7b 52 33 2d  52 31 32 7d 3a 4c 44 4d  |R2!,{R3-R12}:LDM|
00004710  49 41 20 52 31 21 2c 7b  52 33 2d 52 31 32 7d 3a  |IA R1!,{R3-R12}:|
00004720  53 54 4d 49 41 20 52 32  21 2c 7b 52 33 2d 52 31  |STMIA R2!,{R3-R1|
00004730  32 7d 3a 53 55 42 53 20  52 30 2c 52 30 2c 23 31  |2}:SUBS R0,R0,#1|
00004740  3a 42 4e 45 20 63 6c 70  3a 4c 44 4d 46 44 20 28  |:BNE clp:LDMFD (|
00004750  73 70 29 21 2c 7b 52 36  2d 52 31 32 2c 50 43 7d  |sp)!,{R6-R12,PC}|
00004760  0d 12 8e 05 5c 0d 12 98  13 2e 66 72 6f 6d 20 45  |....\.....from E|
00004770  51 55 44 20 4d 41 50 25  0d 12 a2 0f 2e 74 6f 20  |QUD MAP%.....to |
00004780  45 51 55 44 20 53 25 0d  12 ac 11 2e 73 61 64 64  |EQUD S%.....sadd|
00004790  20 45 51 55 44 20 53 25  0d 12 b6 11 2e 74 61 64  | EQUD S%.....tad|
000047a0  64 20 45 51 55 44 20 54  25 0d 12 c0 10 2e 62 61  |d EQUD T%.....ba|
000047b0  6e 6b 20 45 51 55 44 20  32 0d 12 ca 8a 2e 67 6c  |nk EQUD 2.....gl|
000047c0  74 61 62 20 45 51 55 44  20 43 53 50 25 2b 26 31  |tab EQUD CSP%+&1|
000047d0  46 38 43 3a 45 51 55 44  20 43 53 50 25 2b 26 32  |F8C:EQUD CSP%+&2|
000047e0  34 46 38 3a 45 51 55 44  20 43 53 50 25 2b 26 32  |4F8:EQUD CSP%+&2|
000047f0  41 36 34 3a 45 51 55 44  20 43 53 50 25 2b 26 32  |A64:EQUD CSP%+&2|
00004800  46 44 30 3a 45 51 55 44  20 43 53 50 25 2b 26 33  |FD0:EQUD CSP%+&3|
00004810  35 33 43 3a 45 51 55 44  20 43 53 50 25 2b 26 33  |53C:EQUD CSP%+&3|
00004820  41 41 38 3a 45 51 55 44  20 43 53 50 25 2b 26 34  |AA8:EQUD CSP%+&4|
00004830  30 31 34 3a 45 51 55 44  20 43 53 50 25 2b 26 34  |014:EQUD CSP%+&4|
00004840  35 38 30 0d 12 d4 0c 5c  20 47 61 6c 6c 6f 70 0d  |580....\ Gallop.|
00004850  12 de 34 2e 67 61 6c 6c  6f 70 20 53 54 4d 46 44  |..4.gallop STMFD|
00004860  20 28 73 70 29 21 2c 7b  6c 69 6e 6b 7d 3a 4d 4f  | (sp)!,{link}:MO|
00004870  56 20 52 31 32 2c 52 30  3a 4d 4f 56 20 52 31 31  |V R12,R0:MOV R11|
00004880  2c 52 31 0d 12 e8 44 4c  44 52 20 52 39 2c 5b 52  |,R1...DLDR R9,[R|
00004890  31 32 5d 2c 23 34 3a 4c  44 52 20 52 31 30 2c 5b  |12],#4:LDR R10,[|
000048a0  52 31 32 5d 2c 23 34 3a  4d 4f 56 20 52 30 2c 23  |R12],#4:MOV R0,#|
000048b0  34 3a 53 54 52 20 52 30  2c 77 78 69 3a 53 54 52  |4:STR R0,wxi:STR|
000048c0  20 52 30 2c 77 79 69 0d  12 f2 6e 53 55 42 20 52  | R0,wyi...nSUB R|
000048d0  37 2c 52 39 2c 23 33 32  3a 43 4d 50 20 52 37 2c  |7,R9,#32:CMP R7,|
000048e0  23 33 32 3a 4d 4f 56 4c  45 20 52 37 2c 23 33 32  |#32:MOVLE R7,#32|
000048f0  3a 43 4d 50 20 52 37 2c  23 31 30 32 30 3a 4d 4f  |:CMP R7,#1020:MO|
00004900  56 47 54 20 52 37 2c 23  31 30 32 30 3a 53 55 42  |VGT R7,#1020:SUB|
00004910  20 52 38 2c 52 31 30 2c  23 33 32 3a 43 4d 50 20  | R8,R10,#32:CMP |
00004920  52 38 2c 23 36 30 34 3a  4d 4f 56 47 54 20 52 38  |R8,#604:MOVGT R8|
00004930  2c 23 36 30 34 0d 12 fc  76 41 44 44 20 52 30 2c  |,#604...vADD R0,|
00004940  52 37 2c 23 31 32 34 3a  41 44 44 20 52 31 2c 52  |R7,#124:ADD R1,R|
00004950  38 2c 23 38 30 3a 84 52  20 52 30 2c 52 30 2c 52  |8,#80:.R R0,R0,R|
00004960  31 2c 4c 53 4c 23 31 36  3a 53 54 52 20 52 30 2c  |1,LSL#16:STR R0,|
00004970  73 74 77 2b 34 3a 41 44  44 20 52 30 2c 52 30 2c  |stw+4:ADD R0,R0,|
00004980  23 26 34 30 30 30 30 3a  41 44 44 20 52 30 2c 52  |#&40000:ADD R0,R|
00004990  30 2c 23 34 3a 53 54 52  20 52 30 2c 73 74 77 2b  |0,#4:STR R0,stw+|
000049a0  38 3a 4d 4f 56 20 52 36  2c 23 30 0d 13 06 12 2e  |8:MOV R6,#0.....|
000049b0  67 61 6c 70 31 20 42 4c  20 63 6f 70 79 0d 13 10  |galp1 BL copy...|
000049c0  12 5c 20 4c 69 74 74 6c  65 20 48 6f 72 73 65 0d  |.\ Little Horse.|
000049d0  13 1a 4a 4c 44 52 42 20  52 30 2c 5b 52 31 32 5d  |..JLDRB R0,[R12]|
000049e0  2c 23 31 3a 54 45 51 20  52 30 2c 23 26 46 46 3a  |,#1:TEQ R0,#&FF:|
000049f0  42 45 51 20 6e 6f 6c 68  3a 4c 44 52 20 52 32 2c  |BEQ nolh:LDR R2,|
00004a00  67 73 70 61 64 64 3a 41  44 44 20 52 32 2c 52 32  |gspadd:ADD R2,R2|
00004a10  2c 52 30 2c 4c 53 4c 23  32 0d 13 24 5c 4d 4f 56  |,R0,LSL#2..$\MOV|
00004a20  20 52 30 2c 23 33 34 3a  41 44 44 20 52 30 2c 52  | R0,#34:ADD R0,R|
00004a30  30 2c 23 35 31 32 3a 4c  44 52 20 52 31 2c 63 73  |0,#512:LDR R1,cs|
00004a40  70 61 64 64 3a 4d 4f 56  20 52 33 2c 52 39 3a 4d  |padd:MOV R3,R9:M|
00004a50  4f 56 20 52 34 2c 52 31  30 3a 4d 4f 56 20 52 35  |OV R4,R10:MOV R5|
00004a60  2c 23 38 3a 53 57 49 20  22 4f 53 5f 53 70 72 69  |,#8:SWI "OS_Spri|
00004a70  74 65 4f 70 22 0d 13 2e  0f 5c 20 42 69 67 20 68  |teOp"....\ Big h|
00004a80  6f 72 73 65 0d 13 38 09  2e 6e 6f 6c 68 0d 13 42  |orse..8..nolh..B|
00004a90  da 41 44 52 20 52 30 2c  73 74 77 3a 41 44 44 20  |.ADR R0,stw:ADD |
00004aa0  52 30 2c 52 30 2c 23 33  3a 4d 4f 56 20 52 31 2c  |R0,R0,#3:MOV R1,|
00004ab0  23 39 3a 4c 44 52 20 52  32 2c 77 78 69 3a 54 45  |#9:LDR R2,wxi:TE|
00004ac0  51 20 52 32 2c 23 31 32  34 3a 53 57 49 4e 45 20  |Q R2,#124:SWINE |
00004ad0  22 4f 53 5f 57 72 69 74  65 4e 22 3a 4d 4f 56 20  |"OS_WriteN":MOV |
00004ae0  52 30 2c 23 33 34 3a 41  44 44 20 52 30 2c 52 30  |R0,#34:ADD R0,R0|
00004af0  2c 23 35 31 32 3a 41 44  52 20 52 32 2c 67 6c 74  |,#512:ADR R2,glt|
00004b00  61 62 3a 4c 44 52 20 52  32 2c 5b 52 32 2c 52 36  |ab:LDR R2,[R2,R6|
00004b10  5d 3a 4d 4f 56 20 52 33  2c 52 37 3a 4d 4f 56 20  |]:MOV R3,R7:MOV |
00004b20  52 34 2c 52 38 3a 4d 4f  56 20 52 35 2c 23 30 3a  |R4,R8:MOV R5,#0:|
00004b30  53 57 49 20 22 4f 53 5f  53 70 72 69 74 65 4f 70  |SWI "OS_SpriteOp|
00004b40  22 3a 41 44 52 20 52 30  2c 72 73 77 3a 4d 4f 56  |":ADR R0,rsw:MOV|
00004b50  20 52 31 2c 23 31 32 3a  53 57 49 20 22 4f 53 5f  | R1,#12:SWI "OS_|
00004b60  57 72 69 74 65 4e 22 0d  13 4c 05 5c 0d 13 56 8f  |WriteN"..L.\..V.|
00004b70  4d 4f 56 20 52 33 2c 23  34 3a 42 4c 20 64 65 6c  |MOV R3,#4:BL del|
00004b80  61 79 3a 4d 4f 56 20 52  30 2c 23 31 31 33 3a 4c  |ay:MOV R0,#113:L|
00004b90  44 52 20 52 31 2c 62 61  6e 6b 3a 53 57 49 20 22  |DR R1,bank:SWI "|
00004ba0  4f 53 5f 42 79 74 65 22  3a 53 54 52 20 52 31 2c  |OS_Byte":STR R1,|
00004bb0  62 61 6e 6b 3a 41 44 52  20 52 32 2c 73 61 64 64  |bank:ADR R2,sadd|
00004bc0  2d 34 3a 4c 44 52 20 52  32 2c 5b 52 32 2c 52 31  |-4:LDR R2,[R2,R1|
00004bd0  2c 4c 53 4c 23 32 5d 3a  53 54 52 20 52 32 2c 74  |,LSL#2]:STR R2,t|
00004be0  6f 3a 4d 4f 56 20 52 30  2c 23 31 31 32 3a 53 57  |o:MOV R0,#112:SW|
00004bf0  49 20 22 4f 53 5f 42 79  74 65 22 0d 13 60 5b 53  |I "OS_Byte"..`[S|
00004c00  57 49 20 22 4f 53 5f 4d  6f 75 73 65 22 3a 54 45  |WI "OS_Mouse":TE|
00004c10  51 20 52 32 2c 23 30 3a  4c 44 4d 4e 45 46 44 20  |Q R2,#0:LDMNEFD |
00004c20  28 73 70 29 21 2c 7b 50  43 7d 3a 53 57 49 20 22  |(sp)!,{PC}:SWI "|
00004c30  4f 53 5f 52 65 61 64 45  73 63 61 70 65 53 74 61  |OS_ReadEscapeSta|
00004c40  74 65 22 3a 4c 44 4d 43  53 46 44 20 28 73 70 29  |te":LDMCSFD (sp)|
00004c50  21 2c 7b 50 43 7d 0d 13  6a 24 41 44 44 20 52 36  |!,{PC}..j$ADD R6|
00004c60  2c 52 36 2c 23 34 3a 43  4d 50 20 52 36 2c 23 33  |,R6,#4:CMP R6,#3|
00004c70  32 3a ec 51 20 52 36 2c  23 30 0d 13 74 6a 41 44  |2:.Q R6,#0..tjAD|
00004c80  44 20 52 37 2c 52 37 2c  52 31 31 3a 43 4d 50 20  |D R7,R7,R11:CMP |
00004c90  52 37 2c 23 33 32 3a 4d  4f 56 4c 54 20 52 37 2c  |R7,#32:MOVLT R7,|
00004ca0  23 33 32 3a 43 4d 50 20  52 37 2c 23 39 38 38 3a  |#32:CMP R7,#988:|
00004cb0  4d 4f 56 47 54 20 52 37  2c 23 39 38 38 3a 41 44  |MOVGT R7,#988:AD|
00004cc0  44 20 52 38 2c 52 38 2c  23 34 3a 43 4d 50 20 52  |D R8,R8,#4:CMP R|
00004cd0  38 2c 23 36 30 34 3a 4d  4f 56 47 54 20 52 38 2c  |8,#604:MOVGT R8,|
00004ce0  23 36 30 34 0d 13 7e 86  4c 44 52 20 52 30 2c 77  |#604..~.LDR R0,w|
00004cf0  78 69 3a 54 45 51 20 52  30 2c 23 31 32 34 3a 42  |xi:TEQ R0,#124:B|
00004d00  45 51 20 6e 6f 77 63 68  3a 4c 44 52 20 52 31 2c  |EQ nowch:LDR R1,|
00004d10  77 79 69 3a 41 44 44 20  52 32 2c 52 37 2c 23 31  |wyi:ADD R2,R7,#1|
00004d20  32 34 3a 41 44 44 20 52  33 2c 52 38 2c 23 38 30  |24:ADD R3,R8,#80|
00004d30  3a 53 55 42 20 52 34 2c  52 32 2c 52 30 3a 53 55  |:SUB R4,R2,R0:SU|
00004d40  42 20 52 35 2c 52 33 2c  52 31 3a 84 52 20 52 34  |B R5,R3,R1:.R R4|
00004d50  2c 52 34 2c 52 35 2c 4c  53 4c 23 31 36 3a 53 54  |,R4,R5,LSL#16:ST|
00004d60  52 20 52 34 2c 73 74 77  2b 34 0d 13 88 87 41 44  |R R4,stw+4....AD|
00004d70  44 20 52 34 2c 52 32 2c  52 30 3a 41 44 44 20 52  |D R4,R2,R0:ADD R|
00004d80  34 2c 52 34 2c 23 34 3a  41 44 44 20 52 35 2c 52  |4,R4,#4:ADD R5,R|
00004d90  33 2c 52 31 3a 41 44 44  20 52 35 2c 52 35 2c 23  |3,R1:ADD R5,R5,#|
00004da0  34 3a 84 52 20 52 34 2c  52 34 2c 52 35 2c 4c 53  |4:.R R4,R4,R5,LS|
00004db0  4c 23 31 36 3a 53 54 52  20 52 34 2c 73 74 77 2b  |L#16:STR R4,stw+|
00004dc0  38 3a 41 44 44 20 52 30  2c 52 30 2c 23 34 3a 53  |8:ADD R0,R0,#4:S|
00004dd0  54 52 20 52 30 2c 77 78  69 3a 41 44 44 20 52 31  |TR R0,wxi:ADD R1|
00004de0  2c 52 31 2c 23 34 3a 53  54 52 20 52 31 2c 77 79  |,R1,#4:STR R1,wy|
00004df0  69 0d 13 92 0a 2e 6e 6f  77 63 68 0d 13 9c 7c 4c  |i.....nowch...|L|
00004e00  44 52 42 20 52 30 2c 5b  52 31 32 5d 2c 23 31 3a  |DRB R0,[R12],#1:|
00004e10  54 53 54 20 52 30 2c 23  31 3a 41 44 44 4e 45 20  |TST R0,#1:ADDNE |
00004e20  52 39 2c 52 39 2c 23 34  3a 54 53 54 20 52 30 2c  |R9,R9,#4:TST R0,|
00004e30  23 32 3a 53 55 42 4e 45  20 52 39 2c 52 39 2c 23  |#2:SUBNE R9,R9,#|
00004e40  34 3a 54 53 54 20 52 30  2c 23 34 3a 41 44 44 4e  |4:TST R0,#4:ADDN|
00004e50  45 20 52 31 30 2c 52 31  30 2c 23 34 3a 54 53 54  |E R10,R10,#4:TST|
00004e60  20 52 30 2c 23 38 3a 53  55 42 4e 45 20 52 31 30  | R0,#8:SUBNE R10|
00004e70  2c 52 31 30 2c 23 34 0d  13 a6 2a 54 45 51 20 52  |,R10,#4...*TEQ R|
00004e80  30 2c 23 26 46 46 3a 42  4e 45 20 67 61 6c 70 31  |0,#&FF:BNE galp1|
00004e90  3a 4c 44 4d 46 44 20 28  73 70 29 21 2c 7b 50 43  |:LDMFD (sp)!,{PC|
00004ea0  7d 0d 13 b0 16 5c 20 53  63 72 6f 6c 6c 69 6e 67  |}....\ Scrolling|
00004eb0  20 70 6c 61 63 65 73 0d  13 ba a6 2e 6d 6f 76 65  | places.....move|
00004ec0  20 53 54 4d 46 44 20 28  73 70 29 21 2c 7b 6c 69  | STMFD (sp)!,{li|
00004ed0  6e 6b 7d 3a 4d 4f 56 20  52 38 2c 52 30 3a 4d 4f  |nk}:MOV R8,R0:MO|
00004ee0  56 20 52 39 2c 52 31 3a  4d 4f 56 20 52 31 30 2c  |V R9,R1:MOV R10,|
00004ef0  52 32 3a 4d 4f 56 20 52  31 32 2c 52 33 3a 4d 56  |R2:MOV R12,R3:MV|
00004f00  4e 20 52 30 2c 23 30 3a  53 54 52 20 52 30 2c 6c  |N R0,#0:STR R0,l|
00004f10  74 78 74 3a 4d 4f 56 20  52 30 2c 23 32 31 3a 41  |txt:MOV R0,#21:A|
00004f20  44 52 20 52 31 2c 72 6d  6f 75 73 65 3a 53 57 49  |DR R1,rmouse:SWI|
00004f30  20 22 4f 53 5f 57 6f 72  64 22 3a 4d 4f 56 20 52  | "OS_Word":MOV R|
00004f40  30 2c 23 32 31 3a 4d 4f  56 20 52 31 2c 23 39 3a  |0,#21:MOV R1,#9:|
00004f50  53 57 49 20 22 4f 53 5f  42 79 74 65 22 0d 13 c4  |SWI "OS_Byte"...|
00004f60  68 4d 4f 56 20 52 30 2c  23 39 3a 41 44 44 20 52  |hMOV R0,#9:ADD R|
00004f70  30 2c 52 30 2c 23 32 35  36 3a 4c 44 52 20 52 31  |0,R0,#256:LDR R1|
00004f80  2c 70 73 70 61 64 64 3a  53 57 49 20 22 4f 53 5f  |,pspadd:SWI "OS_|
00004f90  53 70 72 69 74 65 4f 70  22 3a 4d 4f 56 20 52 31  |SpriteOp":MOV R1|
00004fa0  31 2c 23 30 3a 4d 4f 56  20 52 30 2c 23 26 35 33  |1,#0:MOV R0,#&53|
00004fb0  3a 53 54 52 20 52 30 2c  73 6e 61 6d 65 3a 42 20  |:STR R0,sname:B |
00004fc0  6e 6f 74 78 74 0d 13 ce  23 2e 6d 76 6c 70 20 4c  |notxt...#.mvlp L|
00004fd0  44 52 20 52 33 2c 74 78  74 3a 4c 44 52 20 52 34  |DR R3,txt:LDR R4|
00004fe0  2c 5b 52 33 5d 2c 23 34  0d 13 d8 9a 2e 66 74 6c  |,[R3],#4.....ftl|
00004ff0  20 53 55 42 53 20 52 34  2c 52 34 2c 23 31 3a 42  | SUBS R4,R4,#1:B|
00005000  4d 49 20 6e 6f 74 78 74  3a 4c 44 52 20 52 30 2c  |MI notxt:LDR R0,|
00005010  5b 52 33 5d 2c 23 34 3a  4c 44 52 20 52 31 2c 5b  |[R3],#4:LDR R1,[|
00005020  52 33 5d 2c 23 34 3a 80  20 52 32 2c 52 30 2c 23  |R3],#4:. R2,R0,#|
00005030  32 35 35 3a 43 4d 50 20  52 32 2c 52 38 2c 4c 53  |255:CMP R2,R8,LS|
00005040  52 23 32 3a 42 47 54 20  66 74 6c 3a 4d 4f 56 20  |R#2:BGT ftl:MOV |
00005050  52 32 2c 52 30 2c 4c 53  52 23 36 3a 80 20 52 32  |R2,R0,LSR#6:. R2|
00005060  2c 52 32 2c 23 25 31 31  31 31 31 31 31 31 30 30  |,R2,#%1111111100|
00005070  3a 43 4d 50 20 52 32 2c  52 39 3a 42 47 54 20 66  |:CMP R2,R9:BGT f|
00005080  74 6c 0d 13 e2 73 4d 4f  56 20 52 32 2c 52 30 2c  |tl...sMOV R2,R0,|
00005090  4c 53 52 23 31 34 3a 80  20 52 32 2c 52 32 2c 23  |LSR#14:. R2,R2,#|
000050a0  25 31 31 31 31 31 31 31  31 30 30 3a 43 4d 50 20  |%1111111100:CMP |
000050b0  52 32 2c 52 38 3a 42 4c  54 20 66 74 6c 3a 4d 4f  |R2,R8:BLT ftl:MO|
000050c0  56 20 52 32 2c 52 30 2c  4c 53 52 23 32 32 3a 80  |V R2,R0,LSR#22:.|
000050d0  20 52 32 2c 52 32 2c 23  25 31 31 31 31 31 31 31  | R2,R2,#%1111111|
000050e0  31 30 30 3a 43 4d 50 20  52 32 2c 52 39 3a 42 4c  |100:CMP R2,R9:BL|
000050f0  54 20 66 74 6c 0d 13 ec  94 4c 44 52 20 52 30 2c  |T ftl....LDR R0,|
00005100  6c 74 78 74 3a 43 4d 50  20 52 30 2c 52 34 3a 42  |ltxt:CMP R0,R4:B|
00005110  45 51 20 6e 6f 74 78 74  3a 53 54 52 20 52 34 2c  |EQ notxt:STR R4,|
00005120  6c 74 78 74 3a 41 44 44  20 52 33 2c 52 33 2c 52  |ltxt:ADD R3,R3,R|
00005130  31 3a 41 44 52 20 52 30  2c 63 6c 72 74 78 74 3a  |1:ADR R0,clrtxt:|
00005140  4d 4f 56 20 52 31 2c 23  31 32 3a 53 57 49 20 22  |MOV R1,#12:SWI "|
00005150  4f 53 5f 57 72 69 74 65  4e 22 3a 4c 44 52 42 20  |OS_WriteN":LDRB |
00005160  52 34 2c 5b 52 33 5d 2c  23 31 3a 4d 4f 56 20 52  |R4,[R3],#1:MOV R|
00005170  32 2c 52 34 2c 4c 53 4c  23 34 3a 41 44 44 20 52  |2,R4,LSL#4:ADD R|
00005180  32 2c 52 32 2c 23 31 37  36 0d 13 f6 9b 2e 74 78  |2,R2,#176.....tx|
00005190  74 6c 20 4d 4f 56 20 52  30 2c 23 31 38 38 3a 4c  |tl MOV R0,#188:L|
000051a0  44 52 42 20 52 31 2c 5b  52 33 5d 2c 23 31 3a 4d  |DRB R1,[R3],#1:M|
000051b0  4f 56 20 52 31 2c 52 31  2c 4c 53 4c 23 34 3a 52  |OV R1,R1,LSL#4:R|
000051c0  53 42 20 52 31 2c 52 31  2c 23 39 36 38 3a 53 57  |SB R1,R1,#968:SW|
000051d0  49 20 22 4f 53 5f 50 6c  6f 74 22 3a 4d 4f 56 20  |I "OS_Plot":MOV |
000051e0  52 30 2c 52 33 3a 53 57  49 20 22 4f 53 5f 57 72  |R0,R3:SWI "OS_Wr|
000051f0  69 74 65 30 22 3a 4d 4f  56 20 52 33 2c 52 30 3a  |ite0":MOV R3,R0:|
00005200  53 55 42 20 52 32 2c 52  32 2c 23 33 32 3a 53 55  |SUB R2,R2,#32:SU|
00005210  42 53 20 52 34 2c 52 34  2c 23 31 3a 42 4e 45 20  |BS R4,R4,#1:BNE |
00005220  74 78 74 6c 0d 14 00 da  2e 6e 6f 74 78 74 20 4d  |txtl.....notxt M|
00005230  4f 56 20 52 30 2c 23 31  31 32 3a 4d 4f 56 20 52  |OV R0,#112:MOV R|
00005240  31 2c 23 32 3a 53 57 49  20 22 4f 53 5f 42 79 74  |1,#2:SWI "OS_Byt|
00005250  65 22 3a 4d 4f 56 20 52  30 2c 23 32 37 32 3a 4c  |e":MOV R0,#272:L|
00005260  44 52 20 52 31 2c 70 73  70 61 64 64 3a 41 44 52  |DR R1,pspadd:ADR|
00005270  20 52 32 2c 73 6e 61 6d  65 3a 4d 4f 56 20 52 33  | R2,sname:MOV R3|
00005280  2c 23 30 3a 4d 4f 56 20  52 34 2c 52 38 3a 4d 4f  |,#0:MOV R4,R8:MO|
00005290  56 20 52 35 2c 52 39 3a  41 44 44 20 52 36 2c 52  |V R5,R9:ADD R6,R|
000052a0  34 2c 23 33 31 36 3a 41  44 44 20 52 37 2c 52 35  |4,#316:ADD R7,R5|
000052b0  2c 23 32 33 32 3a 53 57  49 20 22 4f 53 5f 53 70  |,#232:SWI "OS_Sp|
000052c0  72 69 74 65 4f 70 22 3a  4d 4f 56 20 52 30 2c 23  |riteOp":MOV R0,#|
000052d0  31 31 32 3a 4d 4f 56 20  52 31 2c 23 31 3a 53 57  |112:MOV R1,#1:SW|
000052e0  49 20 22 4f 53 5f 42 79  74 65 22 3a 4d 4f 56 20  |I "OS_Byte":MOV |
000052f0  52 33 2c 23 32 3a 42 4c  20 64 65 6c 61 79 0d 14  |R3,#2:BL delay..|
00005300  0a f5 4d 4f 56 20 52 30  2c 23 33 34 3a 41 44 44  |..MOV R0,#34:ADD|
00005310  20 52 30 2c 52 30 2c 23  35 31 32 3a 4c 44 52 20  | R0,R0,#512:LDR |
00005320  52 31 2c 70 73 70 61 64  64 3a 41 44 44 20 52 32  |R1,pspadd:ADD R2|
00005330  2c 52 31 2c 23 31 36 3a  4d 4f 56 20 52 33 2c 23  |,R1,#16:MOV R3,#|
00005340  38 31 32 3a 4d 4f 56 20  52 34 2c 23 34 36 30 3a  |812:MOV R4,#460:|
00005350  4d 4f 56 20 52 35 2c 23  30 3a 53 57 49 20 22 4f  |MOV R5,#0:SWI "O|
00005360  53 5f 53 70 72 69 74 65  4f 70 22 3a 4d 4f 56 20  |S_SpriteOp":MOV |
00005370  52 30 2c 23 33 34 3a 41  44 44 20 52 30 2c 52 30  |R0,#34:ADD R0,R0|
00005380  2c 23 35 31 32 3a 4c 44  52 20 52 31 2c 63 73 70  |,#512:LDR R1,csp|
00005390  61 64 64 3a 41 44 44 20  52 32 2c 52 31 2c 52 31  |add:ADD R2,R1,R1|
000053a0  30 3a 41 44 44 20 52 32  2c 52 32 2c 52 31 31 3a  |0:ADD R2,R2,R11:|
000053b0  82 20 52 31 31 2c 52 31  31 2c 23 26 31 34 30 3a  |. R11,R11,#&140:|
000053c0  4d 4f 56 20 52 33 2c 23  39 36 34 3a 4d 4f 56 20  |MOV R3,#964:MOV |
000053d0  52 34 2c 23 35 36 38 3a  4d 4f 56 20 52 35 2c 23  |R4,#568:MOV R5,#|
000053e0  38 3a 53 57 49 20 22 4f  53 5f 53 70 72 69 74 65  |8:SWI "OS_Sprite|
000053f0  4f 70 22 0d 14 14 6b 2e  6b 6c 70 20 42 4c 20 74  |Op"...k.klp BL t|
00005400  73 74 6b 65 79 3a 54 53  54 20 52 36 2c 23 31 36  |stkey:TST R6,#16|
00005410  3a 42 4c 4e 45 20 72 74  6e 3a 54 53 54 20 52 36  |:BLNE rtn:TST R6|
00005420  2c 23 31 3a 42 4e 45 20  6d 6c 3a 54 53 54 20 52  |,#1:BNE ml:TST R|
00005430  36 2c 23 32 3a 42 4e 45  20 6d 72 3a 54 53 54 20  |6,#2:BNE mr:TST |
00005440  52 36 2c 23 38 3a 42 4e  45 20 6d 75 3a 54 53 54  |R6,#8:BNE mu:TST|
00005450  20 52 36 2c 23 34 3a 42  45 51 20 6b 6c 70 0d 14  | R6,#4:BEQ klp..|
00005460  1e 1f 2e 6d 64 20 4d 4f  56 20 52 30 2c 23 39 36  |...md MOV R0,#96|
00005470  34 3a 4d 4f 56 20 52 31  2c 23 35 36 34 0d 14 28  |4:MOV R1,#564..(|
00005480  8a 2e 6d 64 6c 70 20 53  57 49 20 22 4f 53 5f 52  |..mdlp SWI "OS_R|
00005490  65 61 64 50 6f 69 6e 74  22 3a 54 45 51 20 52 32  |eadPoint":TEQ R2|
000054a0  2c 23 37 3a 54 45 51 4e  45 20 52 32 2c 23 38 3a  |,#7:TEQNE R2,#8:|
000054b0  54 45 51 4e 45 20 52 32  2c 23 31 35 3a 42 4e 45  |TEQNE R2,#15:BNE|
000054c0  20 6b 6c 70 3a 41 44 44  20 52 30 2c 52 30 2c 23  | klp:ADD R0,R0,#|
000054d0  34 3a 54 45 51 20 52 30  2c 23 39 38 34 3a 42 4e  |4:TEQ R0,#984:BN|
000054e0  45 20 6d 64 6c 70 3a 53  55 42 20 52 39 2c 52 39  |E mdlp:SUB R9,R9|
000054f0  2c 23 34 3a 4d 4f 56 20  52 31 30 2c 23 26 42 30  |,#4:MOV R10,#&B0|
00005500  3a 42 20 6d 76 6c 70 0d  14 32 1f 2e 6d 75 20 4d  |:B mvlp..2..mu M|
00005510  4f 56 20 52 30 2c 23 39  36 34 3a 4d 4f 56 20 52  |OV R0,#964:MOV R|
00005520  31 2c 23 35 38 38 0d 14  3c 8a 2e 6d 75 6c 70 20  |1,#588..<..mulp |
00005530  53 57 49 20 22 4f 53 5f  52 65 61 64 50 6f 69 6e  |SWI "OS_ReadPoin|
00005540  74 22 3a 54 45 51 20 52  32 2c 23 37 3a 54 45 51  |t":TEQ R2,#7:TEQ|
00005550  4e 45 20 52 32 2c 23 38  3a 54 45 51 4e 45 20 52  |NE R2,#8:TEQNE R|
00005560  32 2c 23 31 35 3a 42 4e  45 20 6b 6c 70 3a 41 44  |2,#15:BNE klp:AD|
00005570  44 20 52 30 2c 52 30 2c  23 34 3a 54 45 51 20 52  |D R0,R0,#4:TEQ R|
00005580  30 2c 23 39 38 34 3a 42  4e 45 20 6d 75 6c 70 3a  |0,#984:BNE mulp:|
00005590  41 44 44 20 52 39 2c 52  39 2c 23 34 3a 4d 4f 56  |ADD R9,R9,#4:MOV|
000055a0  20 52 31 30 2c 23 26 31  30 3a 42 20 6d 76 6c 70  | R10,#&10:B mvlp|
000055b0  0d 14 46 1f 2e 6d 6c 20  4d 4f 56 20 52 30 2c 23  |..F..ml MOV R0,#|
000055c0  39 36 30 3a 4d 4f 56 20  52 31 2c 23 35 36 38 0d  |960:MOV R1,#568.|
000055d0  14 50 8a 2e 6d 6c 6c 70  20 53 57 49 20 22 4f 53  |.P..mllp SWI "OS|
000055e0  5f 52 65 61 64 50 6f 69  6e 74 22 3a 54 45 51 20  |_ReadPoint":TEQ |
000055f0  52 32 2c 23 37 3a 54 45  51 4e 45 20 52 32 2c 23  |R2,#7:TEQNE R2,#|
00005600  38 3a 54 45 51 4e 45 20  52 32 2c 23 31 35 3a 42  |8:TEQNE R2,#15:B|
00005610  4e 45 20 6b 6c 70 3a 41  44 44 20 52 31 2c 52 31  |NE klp:ADD R1,R1|
00005620  2c 23 34 3a 54 45 51 20  52 31 2c 23 35 38 38 3a  |,#4:TEQ R1,#588:|
00005630  42 4e 45 20 6d 6c 6c 70  3a 53 55 42 20 52 38 2c  |BNE mllp:SUB R8,|
00005640  52 38 2c 23 34 3a 4d 4f  56 20 52 31 30 2c 23 26  |R8,#4:MOV R10,#&|
00005650  46 43 3a 42 20 6d 76 6c  70 0d 14 5a 1f 2e 6d 72  |FC:B mvlp..Z..mr|
00005660  20 4d 4f 56 20 52 30 2c  23 39 38 34 3a 4d 4f 56  | MOV R0,#984:MOV|
00005670  20 52 31 2c 23 35 36 38  0d 14 64 8a 2e 6d 72 6c  | R1,#568..d..mrl|
00005680  70 20 53 57 49 20 22 4f  53 5f 52 65 61 64 50 6f  |p SWI "OS_ReadPo|
00005690  69 6e 74 22 3a 54 45 51  20 52 32 2c 23 37 3a 54  |int":TEQ R2,#7:T|
000056a0  45 51 4e 45 20 52 32 2c  23 38 3a 54 45 51 4e 45  |EQNE R2,#8:TEQNE|
000056b0  20 52 32 2c 23 31 35 3a  42 4e 45 20 6b 6c 70 3a  | R2,#15:BNE klp:|
000056c0  41 44 44 20 52 31 2c 52  31 2c 23 34 3a 54 45 51  |ADD R1,R1,#4:TEQ|
000056d0  20 52 31 2c 23 35 38 38  3a 42 4e 45 20 6d 72 6c  | R1,#588:BNE mrl|
000056e0  70 3a 41 44 44 20 52 38  2c 52 38 2c 23 34 3a 4d  |p:ADD R8,R8,#4:M|
000056f0  4f 56 20 52 31 30 2c 23  26 35 43 3a 42 20 6d 76  |OV R10,#&5C:B mv|
00005700  6c 70 0d 14 6e 22 2e 72  74 6e 20 4d 4f 56 20 52  |lp..n".rtn MOV R|
00005710  32 2c 52 31 32 3a 4c 44  52 20 52 31 2c 5b 52 32  |2,R12:LDR R1,[R2|
00005720  5d 2c 23 34 0d 14 78 d6  2e 72 74 6e 6c 20 53 55  |],#4..x..rtnl SU|
00005730  42 53 20 52 31 2c 52 31  2c 23 31 3a 4d 4f 56 4d  |BS R1,R1,#1:MOVM|
00005740  49 20 50 43 2c 6c 69 6e  6b 3a 4c 44 52 20 52 35  |I PC,link:LDR R5|
00005750  2c 5b 52 32 5d 2c 23 34  3a 4d 4f 56 20 52 33 2c  |,[R2],#4:MOV R3,|
00005760  52 35 2c 4c 53 52 23 32  30 3a 80 20 52 34 2c 52  |R5,LSR#20:. R4,R|
00005770  35 2c 23 25 31 31 31 31  31 31 31 31 30 30 3a 43  |5,#%1111111100:C|
00005780  4d 50 20 52 33 2c 52 38  3a 43 4d 50 4c 45 20 52  |MP R3,R8:CMPLE R|
00005790  34 2c 52 39 3a 42 47 54  20 72 74 6e 6c 3a 41 44  |4,R9:BGT rtnl:AD|
000057a0  44 20 52 33 2c 52 33 2c  23 33 32 3a 41 44 44 20  |D R3,R3,#32:ADD |
000057b0  52 34 2c 52 34 2c 23 33  32 3a 43 4d 50 20 52 33  |R4,R4,#32:CMP R3|
000057c0  2c 52 38 3a 43 4d 50 47  54 20 52 34 2c 52 39 3a  |,R8:CMPGT R4,R9:|
000057d0  42 4c 45 20 72 74 6e 6c  3a 4d 4f 56 20 52 30 2c  |BLE rtnl:MOV R0,|
000057e0  52 35 2c 4c 53 52 23 31  30 3a 4c 44 4d 46 44 20  |R5,LSR#10:LDMFD |
000057f0  28 73 70 29 21 2c 7b 50  43 7d 0d 14 82 0a 5c 20  |(sp)!,{PC}....\ |
00005800  44 61 74 61 0d 14 8c 33  2e 73 74 77 20 45 51 55  |Data...3.stw EQU|
00005810  42 20 30 3a 45 51 55 42  20 30 3a 45 51 55 42 20  |B 0:EQUB 0:EQUB |
00005820  30 3a 45 51 55 42 20 32  34 3a 45 51 55 44 20 30  |0:EQUB 24:EQUD 0|
00005830  3a 45 51 55 44 20 30 0d  14 96 3a 2e 72 73 77 20  |:EQUD 0...:.rsw |
00005840  45 51 55 42 20 30 3a 45  51 55 42 20 30 3a 45 51  |EQUB 0:EQUB 0:EQ|
00005850  55 42 20 30 3a 45 51 55  42 20 32 34 3a 45 51 55  |UB 0:EQUB 24:EQU|
00005860  44 20 30 3a 45 51 55 44  20 26 33 31 46 30 34 46  |D 0:EQUD &31F04F|
00005870  46 0d 14 a0 15 2e 70 73  70 61 64 64 20 45 51 55  |F.....pspadd EQU|
00005880  44 20 50 53 50 25 0d 14  aa 15 2e 73 73 70 61 64  |D PSP%.....sspad|
00005890  64 20 45 51 55 44 20 53  53 50 25 0d 14 b4 1b 2e  |d EQUD SSP%.....|
000058a0  67 73 70 61 64 64 20 45  51 55 44 20 43 53 50 25  |gspadd EQUD CSP%|
000058b0  2b 26 34 41 45 43 0d 14  be 15 2e 63 73 70 61 64  |+&4AEC.....cspad|
000058c0  64 20 45 51 55 44 20 43  53 50 25 0d 14 c8 0f 2e  |d EQUD CSP%.....|
000058d0  62 68 78 20 45 51 55 44  20 30 0d 14 d2 0f 2e 62  |bhx EQUD 0.....b|
000058e0  68 79 20 45 51 55 44 20  30 0d 14 dc 0f 2e 6c 68  |hy EQUD 0.....lh|
000058f0  78 20 45 51 55 44 20 30  0d 14 e6 0f 2e 6c 68 79  |x EQUD 0.....lhy|
00005900  20 45 51 55 44 20 30 0d  14 f0 0f 2e 77 78 69 20  | EQUD 0.....wxi |
00005910  45 51 55 44 20 30 0d 14  fa 0f 2e 77 79 69 20 45  |EQUD 0.....wyi E|
00005920  51 55 44 20 30 0d 15 04  2a 2e 72 6d 6f 75 73 65  |QUD 0...*.rmouse|
00005930  20 45 51 55 42 20 33 3a  45 51 55 57 20 36 34 30  | EQUB 3:EQUW 640|
00005940  3a 45 51 55 57 20 34 30  30 3a 41 4c 49 47 4e 0d  |:EQUW 400:ALIGN.|
00005950  15 0e 05 5c 0d 15 18 37  2e 74 73 74 6b 65 79 20  |...\...7.tstkey |
00005960  53 57 49 20 22 4f 53 5f  52 65 61 64 45 73 63 61  |SWI "OS_ReadEsca|
00005970  70 65 53 74 61 74 65 22  3a 4c 44 4d 43 53 46 44  |peState":LDMCSFD|
00005980  20 28 73 70 29 21 2c 7b  50 43 7d 0d 15 22 e8 4d  | (sp)!,{PC}..".M|
00005990  4f 56 20 52 36 2c 23 30  3a 4d 4f 56 20 52 30 2c  |OV R6,#0:MOV R0,|
000059a0  23 31 32 31 3a 4d 4f 56  20 52 31 2c 23 6c 65 66  |#121:MOV R1,#lef|
000059b0  74 25 3a 53 57 49 20 22  4f 53 5f 42 79 74 65 22  |t%:SWI "OS_Byte"|
000059c0  3a 54 45 51 20 52 31 2c  23 30 3a 84 52 4e 45 20  |:TEQ R1,#0:.RNE |
000059d0  52 36 2c 52 36 2c 23 31  3a 4d 4f 56 20 52 31 2c  |R6,R6,#1:MOV R1,|
000059e0  23 72 69 67 68 74 25 3a  53 57 49 20 22 4f 53 5f  |#right%:SWI "OS_|
000059f0  42 79 74 65 22 3a 54 45  51 20 52 31 2c 23 30 3a  |Byte":TEQ R1,#0:|
00005a00  84 52 4e 45 20 52 36 2c  52 36 2c 23 32 3a 4d 4f  |.RNE R6,R6,#2:MO|
00005a10  56 20 52 31 2c 23 64 6f  77 6e 25 3a 53 57 49 20  |V R1,#down%:SWI |
00005a20  22 4f 53 5f 42 79 74 65  22 3a 54 45 51 20 52 31  |"OS_Byte":TEQ R1|
00005a30  2c 23 30 3a 84 52 4e 45  20 52 36 2c 52 36 2c 23  |,#0:.RNE R6,R6,#|
00005a40  34 3a 4d 4f 56 20 52 31  2c 23 75 70 25 3a 53 57  |4:MOV R1,#up%:SW|
00005a50  49 20 22 4f 53 5f 42 79  74 65 22 3a 54 45 51 20  |I "OS_Byte":TEQ |
00005a60  52 31 2c 23 30 3a 84 52  4e 45 20 52 36 2c 52 36  |R1,#0:.RNE R6,R6|
00005a70  2c 23 38 0d 15 2c 8e 4c  44 52 20 52 31 2c 6c 61  |,#8..,.LDR R1,la|
00005a80  73 74 63 6f 6d 62 3a 53  54 52 20 52 36 2c 6c 61  |stcomb:STR R6,la|
00005a90  73 74 63 6f 6d 62 3a 82  53 20 52 31 2c 52 31 2c  |stcomb:.S R1,R1,|
00005aa0  52 36 3a 4c 44 52 45 51  20 52 36 2c 6c 61 73 74  |R6:LDREQ R6,last|
00005ab0  6b 65 79 3a 42 45 51 20  67 74 6b 65 79 3a 80 53  |key:BEQ gtkey:.S|
00005ac0  20 52 32 2c 52 31 2c 52  36 3a 4d 4f 56 4e 45 20  | R2,R1,R6:MOVNE |
00005ad0  52 36 2c 52 32 3a 42 4e  45 20 67 74 6b 65 79 3a  |R6,R2:BNE gtkey:|
00005ae0  4c 44 52 20 52 32 2c 6c  61 73 74 6b 65 79 3a 54  |LDR R2,lastkey:T|
00005af0  53 54 20 52 31 2c 52 32  3a ec 51 20 52 36 2c 52  |ST R1,R2:.Q R6,R|
00005b00  32 0d 15 36 5b 2e 67 74  6b 65 79 20 80 53 20 52  |2..6[.gtkey .S R|
00005b10  31 2c 52 36 2c 23 31 3a  80 45 51 53 20 52 31 2c  |1,R6,#1:.EQS R1,|
00005b20  52 36 2c 23 32 3a 80 45  51 53 20 52 31 2c 52 36  |R6,#2:.EQS R1,R6|
00005b30  2c 23 34 3a 80 45 51 53  20 52 31 2c 52 36 2c 23  |,#4:.EQS R1,R6,#|
00005b40  38 3a 4d 4f 56 4e 45 20  52 36 2c 52 31 3a 53 54  |8:MOVNE R6,R1:ST|
00005b50  52 20 52 36 2c 6c 61 73  74 6b 65 79 0d 15 40 50  |R R6,lastkey..@P|
00005b60  4d 4f 56 20 52 31 2c 23  66 69 72 65 25 3a 53 57  |MOV R1,#fire%:SW|
00005b70  49 20 22 4f 53 5f 42 79  74 65 22 3a 54 45 51 20  |I "OS_Byte":TEQ |
00005b80  52 31 2c 23 30 3a 84 52  4e 45 20 52 36 2c 52 36  |R1,#0:.RNE R6,R6|
00005b90  2c 23 31 36 3a 54 45 51  20 52 36 2c 23 30 3a 4d  |,#16:TEQ R6,#0:M|
00005ba0  4f 56 4e 45 20 50 43 2c  6c 69 6e 6b 0d 15 4a da  |OVNE PC,link..J.|
00005bb0  53 57 49 20 22 4f 53 5f  4d 6f 75 73 65 22 3a 54  |SWI "OS_Mouse":T|
00005bc0  53 54 20 52 32 2c 23 34  3a 42 45 51 20 6d 72 74  |ST R2,#4:BEQ mrt|
00005bd0  6e 3a 53 55 42 53 20 52  33 2c 52 30 2c 23 36 34  |n:SUBS R3,R0,#64|
00005be0  30 3a 52 53 42 4d 49 20  52 33 2c 52 33 2c 23 30  |0:RSBMI R3,R3,#0|
00005bf0  3a 53 55 42 53 20 52 34  2c 52 31 2c 23 34 30 30  |:SUBS R4,R1,#400|
00005c00  3a 52 53 42 4d 49 20 52  34 2c 52 34 2c 23 30 3a  |:RSBMI R4,R4,#0:|
00005c10  43 4d 50 20 52 33 2c 23  31 3a 4d 4f 56 4c 53 20  |CMP R3,#1:MOVLS |
00005c20  52 33 2c 23 30 3a 43 4d  50 20 52 34 2c 23 31 3a  |R3,#0:CMP R4,#1:|
00005c30  4d 4f 56 4c 53 20 52 34  2c 23 30 3a 43 4d 50 20  |MOVLS R4,#0:CMP |
00005c40  52 33 2c 52 34 3a 42 45  51 20 6e 6f 6d 6f 76 3a  |R3,R4:BEQ nomov:|
00005c50  42 47 54 20 78 67 74 3a  43 4d 50 20 52 31 2c 23  |BGT xgt:CMP R1,#|
00005c60  34 30 30 3a 84 52 4c 54  20 52 36 2c 52 36 2c 23  |400:.RLT R6,R6,#|
00005c70  34 3a 84 52 47 54 20 52  36 2c 52 36 2c 23 38 3a  |4:.RGT R6,R6,#8:|
00005c80  42 20 6d 72 74 6e 0d 15  54 37 2e 78 67 74 20 43  |B mrtn..T7.xgt C|
00005c90  4d 50 20 52 30 2c 23 36  34 30 3a 84 52 4c 54 20  |MP R0,#640:.RLT |
00005ca0  52 36 2c 52 36 2c 23 31  3a 84 52 47 54 20 52 36  |R6,R6,#1:.RGT R6|
00005cb0  2c 52 36 2c 23 32 3a 42  20 6d 72 74 6e 0d 15 5e  |,R6,#2:B mrtn..^|
00005cc0  1a 2e 6e 6f 6d 6f 76 20  4c 44 52 20 52 36 2c 6c  |..nomov LDR R6,l|
00005cd0  61 73 74 6d 6b 65 79 0d  15 68 65 2e 6d 72 74 6e  |astmkey..he.mrtn|
00005ce0  20 53 54 52 20 52 36 2c  6c 61 73 74 6d 6b 65 79  | STR R6,lastmkey|
00005cf0  3a 54 53 54 20 52 32 2c  23 33 3a 84 52 4e 45 20  |:TST R2,#3:.RNE |
00005d00  52 36 2c 52 36 2c 23 31  36 3a 4d 4f 56 20 52 30  |R6,R6,#16:MOV R0|
00005d10  2c 23 32 31 3a 41 44 52  20 52 31 2c 72 6d 6f 75  |,#21:ADR R1,rmou|
00005d20  73 65 3a 53 57 49 20 22  4f 53 5f 57 6f 72 64 22  |se:SWI "OS_Word"|
00005d30  3a 4d 4f 56 20 50 43 2c  6c 69 6e 6b 0d 15 72 05  |:MOV PC,link..r.|
00005d40  5c 0d 15 7c 13 2e 6c 61  73 74 6b 65 79 20 45 51  |\..|..lastkey EQ|
00005d50  55 44 20 30 0d 15 86 14  2e 6c 61 73 74 6d 6b 65  |UD 0.....lastmke|
00005d60  79 20 45 51 55 44 20 30  0d 15 90 14 2e 6c 61 73  |y EQUD 0.....las|
00005d70  74 63 6f 6d 62 20 45 51  55 44 20 30 0d 15 9a 05  |tcomb EQUD 0....|
00005d80  5c 0d 15 a4 0f 2e 74 78  74 20 45 51 55 44 20 30  |\.....txt EQUD 0|
00005d90  0d 15 ae 10 2e 6c 74 78  74 20 45 51 55 44 20 30  |.....ltxt EQUD 0|
00005da0  0d 15 b8 51 2e 63 6c 72  74 78 74 20 45 51 55 42  |...Q.clrtxt EQUB|
00005db0  20 32 35 3a 45 51 55 42  20 31 38 38 3a 45 51 55  | 25:EQUB 188:EQU|
00005dc0  57 20 36 39 36 3a 45 51  55 57 20 33 36 3a 45 51  |W 696:EQUW 36:EQ|
00005dd0  55 42 20 32 35 3a 45 51  55 42 20 31 30 33 3a 45  |UB 25:EQUB 103:E|
00005de0  51 55 57 20 31 32 33 36  3a 45 51 55 57 20 33 32  |QUW 1236:EQUW 32|
00005df0  30 0d 15 c2 05 5c 0d 15  cc 1f 2e 6d 65 73 73 61  |0....\.....messa|
00005e00  67 65 20 53 54 4d 46 44  20 28 73 70 29 21 2c 7b  |ge STMFD (sp)!,{|
00005e10  6c 69 6e 6b 7d 0d 15 d6  77 4c 44 52 20 52 37 2c  |link}...wLDR R7,|
00005e20  79 70 6f 73 3a 41 44 52  20 52 38 2c 74 65 78 74  |ypos:ADR R8,text|
00005e30  62 75 66 3a 4d 4f 56 20  52 39 2c 23 30 3a 4d 4f  |buf:MOV R9,#0:MO|
00005e40  56 20 52 31 30 2c 23 31  3a 4c 44 52 20 52 31 31  |V R10,#1:LDR R11|
00005e50  2c 74 65 78 74 64 61 74  3a 41 44 44 20 52 31 32  |,textdat:ADD R12|
00005e60  2c 52 31 31 2c 23 32 35  36 3a 41 44 44 20 52 36  |,R11,#256:ADD R6|
00005e70  2c 52 31 31 2c 23 35 31  32 3a 54 45 51 20 52 30  |,R11,#512:TEQ R0|
00005e80  2c 23 30 3a 42 45 51 20  6d 73 6c 70 0d 15 e0 3c  |,#0:BEQ mslp...<|
00005e90  2e 6d 73 63 74 20 4c 44  52 42 20 52 31 2c 5b 52  |.msct LDRB R1,[R|
00005ea0  36 5d 2c 23 31 3a 43 4d  50 20 52 31 2c 23 30 3a  |6],#1:CMP R1,#0:|
00005eb0  53 55 42 45 51 53 20 52  30 2c 52 30 2c 23 31 3a  |SUBEQS R0,R0,#1:|
00005ec0  42 4e 45 20 6d 73 63 74  0d 15 ea 40 2e 6d 73 6c  |BNE msct...@.msl|
00005ed0  70 20 4c 44 52 42 20 52  30 2c 5b 52 36 5d 2c 23  |p LDRB R0,[R6],#|
00005ee0  31 3a 54 45 51 20 52 30  2c 23 30 3a 42 45 51 20  |1:TEQ R0,#0:BEQ |
00005ef0  70 72 69 6e 74 62 75 66  3a 42 4c 20 70 72 69 6e  |printbuf:BL prin|
00005f00  74 3a 42 20 6d 73 6c 70  0d 15 f4 05 5c 0d 15 fe  |t:B mslp....\...|
00005f10  1d 2e 70 72 69 6e 74 20  53 54 4d 46 44 20 28 73  |..print STMFD (s|
00005f20  70 29 21 2c 7b 6c 69 6e  6b 7d 0d 16 08 2a 4c 44  |p)!,{link}...*LD|
00005f30  52 42 20 52 31 2c 5b 52  31 31 2c 52 30 5d 3a 54  |RB R1,[R11,R0]:T|
00005f40  45 51 20 52 31 2c 52 30  3a 42 45 51 20 70 72 69  |EQ R1,R0:BEQ pri|
00005f50  6e 74 69 74 0d 16 12 38  53 54 4d 46 44 20 28 73  |ntit...8STMFD (s|
00005f60  70 29 21 2c 7b 52 30 7d  3a 4d 4f 56 20 52 30 2c  |p)!,{R0}:MOV R0,|
00005f70  52 31 3a 42 4c 20 70 72  69 6e 74 3a 4c 44 4d 46  |R1:BL print:LDMF|
00005f80  44 20 28 73 70 29 21 2c  7b 52 30 7d 0d 16 1c 1d  |D (sp)!,{R0}....|
00005f90  4c 44 52 42 20 52 30 2c  5b 52 31 32 2c 52 30 5d  |LDRB R0,[R12,R0]|
00005fa0  3a 42 4c 20 70 72 69 6e  74 0d 16 26 14 4c 44 4d  |:BL print..&.LDM|
00005fb0  46 44 20 28 73 70 29 21  2c 7b 50 43 7d 0d 16 30  |FD (sp)!,{PC}..0|
00005fc0  0c 2e 70 72 69 6e 74 69  74 0d 16 3a 2a 54 45 51  |..printit..:*TEQ|
00005fd0  20 52 30 2c 23 31 3a ec  51 20 52 31 30 2c 52 30  | R0,#1:.Q R10,R0|
00005fe0  3a 4c 44 4d 45 51 46 44  20 28 73 70 29 21 2c 7b  |:LDMEQFD (sp)!,{|
00005ff0  50 43 7d 0d 16 44 3f 43  4d 50 20 52 30 2c 23 39  |PC}..D?CMP R0,#9|
00006000  36 3a 42 4c 54 20 6e 6f  74 75 63 3a 54 45 51 20  |6:BLT notuc:TEQ |
00006010  52 31 30 2c 23 30 3a 42  49 43 4e 45 20 52 30 2c  |R10,#0:BICNE R0,|
00006020  52 30 2c 23 26 32 30 3a  4d 4f 56 20 52 31 30 2c  |R0,#&20:MOV R10,|
00006030  23 30 0d 16 4e 3f 2e 6e  6f 74 75 63 20 54 45 51  |#0..N?.notuc TEQ|
00006040  20 52 30 2c 23 97 22 2e  22 3a 54 45 51 4e 45 20  | R0,#.".":TEQNE |
00006050  52 30 2c 23 97 22 3f 22  3a 54 45 51 4e 45 20 52  |R0,#."?":TEQNE R|
00006060  30 2c 23 97 22 21 22 3a  ec 51 20 52 31 30 2c 23  |0,#."!":.Q R10,#|
00006070  31 0d 16 58 3e 53 54 52  42 20 52 30 2c 5b 52 38  |1..X>STRB R0,[R8|
00006080  2c 52 39 5d 3a 41 44 44  20 52 39 2c 52 39 2c 23  |,R9]:ADD R9,R9,#|
00006090  31 3a 43 4d 50 20 52 39  2c 23 31 38 3a 4c 44 4d  |1:CMP R9,#18:LDM|
000060a0  4e 45 46 44 20 28 73 70  29 21 2c 7b 50 43 7d 0d  |NEFD (sp)!,{PC}.|
000060b0  16 62 3f 2e 66 64 73 70  6c 70 20 53 55 42 53 20  |.b?.fdsplp SUBS |
000060c0  52 39 2c 52 39 2c 23 31  3a 4c 44 52 42 20 52 30  |R9,R9,#1:LDRB R0|
000060d0  2c 5b 52 38 2c 52 39 5d  3a 43 4d 50 20 52 30 2c  |,[R8,R9]:CMP R0,|
000060e0  23 33 32 3a 42 4e 45 20  66 64 73 70 6c 70 0d 16  |#32:BNE fdsplp..|
000060f0  6c 0d 2e 70 72 69 6e 74  62 75 66 0d 16 76 47 4d  |l..printbuf..vGM|
00006100  4f 56 20 52 30 2c 23 39  36 38 3a 53 55 42 53 20  |OV R0,#968:SUBS |
00006110  52 30 2c 52 30 2c 52 39  2c 4c 53 4c 23 34 3a 84  |R0,R0,R9,LSL#4:.|
00006120  52 20 52 30 2c 52 30 2c  52 37 2c 4c 53 4c 23 31  |R R0,R0,R7,LSL#1|
00006130  36 3a 53 54 52 20 52 30  2c 6d 6f 76 65 76 64 75  |6:STR R0,movevdu|
00006140  2b 34 0d 16 80 31 41 44  52 20 52 30 2c 6d 6f 76  |+4...1ADR R0,mov|
00006150  65 76 64 75 2b 32 3a 41  44 44 20 52 31 2c 52 39  |evdu+2:ADD R1,R9|
00006160  2c 23 36 3a 53 57 49 20  22 4f 53 5f 57 72 69 74  |,#6:SWI "OS_Writ|
00006170  65 4e 22 0d 16 8a 3d 53  55 42 20 52 37 2c 52 37  |eN"...=SUB R7,R7|
00006180  2c 23 33 32 3a 53 54 52  20 52 37 2c 79 70 6f 73  |,#32:STR R7,ypos|
00006190  3a 4d 4f 56 20 52 31 2c  23 30 3a 54 45 51 20 52  |:MOV R1,#0:TEQ R|
000061a0  39 2c 23 31 37 3a 42 45  51 20 6e 6d 76 62 75 66  |9,#17:BEQ nmvbuf|
000061b0  0d 16 94 5d 2e 6d 76 62  75 66 6c 70 20 41 44 44  |...].mvbuflp ADD|
000061c0  20 52 39 2c 52 39 2c 23  31 3a 4c 44 52 42 20 52  | R9,R9,#1:LDRB R|
000061d0  30 2c 5b 52 38 2c 52 39  5d 3a 53 54 52 42 20 52  |0,[R8,R9]:STRB R|
000061e0  30 2c 5b 52 38 2c 52 31  5d 3a 41 44 44 20 52 31  |0,[R8,R1]:ADD R1|
000061f0  2c 52 31 2c 23 31 3a 43  4d 50 20 52 39 2c 23 31  |,R1,#1:CMP R9,#1|
00006200  37 3a 42 4c 54 20 6d 76  62 75 66 6c 70 0d 16 9e  |7:BLT mvbuflp...|
00006210  26 2e 6e 6d 76 62 75 66  20 4d 4f 56 20 52 39 2c  |&.nmvbuf MOV R9,|
00006220  52 31 3a 4c 44 4d 46 44  20 28 73 70 29 21 2c 7b  |R1:LDMFD (sp)!,{|
00006230  50 43 7d 0d 16 a8 05 5c  0d 16 b2 16 2e 74 65 78  |PC}....\.....tex|
00006240  74 64 61 74 20 45 51 55  44 20 54 58 54 25 0d 16  |tdat EQUD TXT%..|
00006250  bc 29 2e 6d 6f 76 65 76  64 75 20 45 51 55 57 20  |.).movevdu EQUW |
00006260  30 3a 45 51 55 42 20 32  35 3a 45 51 55 42 20 34  |0:EQUB 25:EQUB 4|
00006270  3a 45 51 55 44 20 30 0d  16 c6 1f 2e 74 65 78 74  |:EQUD 0.....text|
00006280  62 75 66 20 45 51 55 53  20 c4 31 38 2c bd 30 29  |buf EQUS .18,.0)|
00006290  3a 41 4c 49 47 4e 0d 16  d0 10 2e 79 70 6f 73 20  |:ALIGN.....ypos |
000062a0  45 51 55 44 20 30 0d 16  da 05 5d 0d 16 e4 38 e7  |EQUD 0....]...8.|
000062b0  20 50 25 3e 28 63 6f 64  65 25 2b 73 70 61 63 65  | P%>(code%+space|
000062c0  25 29 20 eb 20 31 35 3a  f1 22 4e 6f 74 20 65 6e  |%) . 15:."Not en|
000062d0  6f 75 67 68 20 63 6f 64  65 20 73 70 61 63 65 2e  |ough code space.|
000062e0  22 3a e0 0d 16 ee 05 ed  0d 16 f8 05 e1 0d 17 02  |":..............|
000062f0  05 3a 0d 17 0c 12 dd 20  f2 65 72 72 6f 72 3a ee  |.:..... .error:.|
00006300  20 85 20 87 0d 17 16 1f  eb 20 31 35 3a 87 3a d6  | . ...... 15:.:.|
00006310  93 2b 26 32 31 34 3a 2a  49 72 6f 6e 54 75 6e 65  |.+&214:*IronTune|
00006320  4f 66 66 0d 17 20 0a 2a  46 58 20 32 30 0d 17 2a  |Off.. .*FX 20..*|
00006330  51 e7 20 9f 3d 31 37 20  f1 22 47 6f 6f 64 62 79  |Q. .=17 ."Goodby|
00006340  65 2e 22 20 8b 20 f1 22  49 72 6f 6e 20 4c 6f 72  |e." . ."Iron Lor|
00006350  64 20 68 61 73 20 73 74  6f 70 70 65 64 20 62 65  |d has stopped be|
00006360  63 61 75 73 65 20 6f 66  20 61 20 66 61 74 61 6c  |cause of a fatal|
00006370  20 65 72 72 6f 72 20 3a  2d 22 27 27 f6 24 0d 17  | error :-"''.$..|
00006380  34 05 e1 0d ff                                    |4....|
00006385