Home » Archimedes archive » Archimedes World » AW-1993-05.adf » AWMay93 » !AWMay93/Goodies/2dWaves/!2DWaves/!Runimage
!AWMay93/Goodies/2dWaves/!2DWaves/!Runimage
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 » Archimedes World » AW-1993-05.adf » AWMay93 |
Filename: | !AWMay93/Goodies/2dWaves/!2DWaves/!Runimage |
Read OK: | ✔ |
File size: | 5377 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >!Runimage 20REM Wavesimulator 30REM by Jan Vlietinck (c) 40ON ERROR:REPORT:PRINT " at line ";ERL:END 50MODE13:OFF 60PROCinitass 70PROCinit 80PROCmain 90END 100 110DEF PROCmain 120REPEAT 130PROCinitmenu 140REPEAT 150PROCmenu(MENU,WIN) 160LX%=X%:LY%=Y% 170CASE MENU OF 180WHEN 0 190CASE WIN OF 200WHEN 1:PROCreinit:PROCauto:MOUSE TO 0,0 210WHEN 2:PROCreinit:PROCdefine:MOUSE TO 0,0 220WHEN 3:PROCreinit:!ex=DM1/2:!ey=DM2/2:MOUSE TO 640,512 230X=(40-(DM1 MOD 2))*16 240Y=(32-(DM2 MOD 2))*16 250MOUSE TO X,Y 260PROCwait 270WHEN 4:PROCwait 280ENDCASE 290WHEN 1 300CASE WIN OF 310WHEN 1:CHOICE=CHOICE EOR 1:PROCmark(1) 320WHEN 2:CHOICE=CHOICE EOR 2:PROCmark(2) 330WHEN 3:CHOICE=CHOICE EOR 4:PROCmark(3) 340ENDCASE 350WHEN 2 360CASE WIN OF 370WHEN 1:DM1=FNinput(1) 380WHEN 2:DM2=FNinput(2) 390WHEN 3:DAMP=11-FNinput(3) 400WHEN 4:PROP=12-FNinput(4) 410WHEN 5:B%=FNinput(5):CALL newbase:BASE=B% 420ENDCASE 430ENDCASE 440UNTIL MENU=0 450IF RECOMPILE THEN PROCreass:RECOMPILE=FALSE 460IF WIN<>4 THEN CALL init 470ORIGIN (XW-4)*4,(YW-4)*4 480IF (CHOICE AND 4)=0 THEN CHOICE=CHOICE OR 32 490!choice=CHOICE+16 500CALL start 510ORIGIN 0,0 520UNTIL 0 530ENDPROC 540 550DEF FNinput(I) 560LOCAL A,X,Y 570LOCAL ERROR 580*FX 15,0 590A=1 600X=WIND(2,0)/32+11 610Y=31-WIND(2,1)/32+I 620ON 630PRINT TAB(X,Y) " " 640VDU 28,X,Y,X+3,Y 650VDU 23,16,8,0,0,0,0,0,0,0 660IF A<>0 THEN ON ERROR LOCAL A=-1 670INPUT TAB(X,Y) A 680VDU 23,16,0,0,0,0,0,0,0,0 690VDU 26 700IF A=-1 THEN 710A=SETTING(I-1) 720PRINT TAB(X,Y) " " 730PRINT TAB(X,Y) STR$(A) 740ELSE 750IF A<SETRANGE(0,I-1) OR A>SETRANGE(1,I-1) THEN 760IF A<SETRANGE(0,I-1) THEN A=SETRANGE(0,I-1) ELSE A=SETRANGE(1,I-1) 770ENDIF 780PRINT TAB(X,Y) " " 790PRINT TAB(X,Y) STR$(A) 800SETTING(I-1)=A 810RECOMPILE=TRUE 820ENDIF 830OFF 840RESTORE ERROR 850PROCwait 860=A 870 880DEF PROCwait 890WHILE Z%:MOUSE X%,Y%,Z%:ENDWHILE 900ENDPROC 910 920DEF PROCmark(I) 930MOVE WIND(1,0)-36,WIND(1,1)-32*I+16 940DRAW BY 8,-8:PLOT 33,16,16 950PROCwait 960ENDPROC 970 980DEF PROCmarker 990CHOICE=!choice 1000FOR I=1 TO 3 1010IF (CHOICE AND (1<<(I-1))) <> 0 THEN 1020MOVE WIND(1,0)-36,WIND(1,1)-32*I+16 1030DRAW BY 8,-8:PLOT 33,16,16 1040ENDIF 1050NEXT 1060ENDPROC 1070 1080DEF PROCprintsettings 1090LOCAL I,X,Y 1100FOR I=1 TO 5 1110X=WIND(2,0)/32+11 1120Y=31-WIND(2,1)/32+I 1130PRINT TAB(X,Y) STR$(SETTING(I-1)) 1140NEXT 1150ENDPROC 1160 1170DEF PROCinitmenu 1180GCOL 63 TINT 64 1190CLS 1200SYS "OS_SpriteOp",256+34,sprite,"2DWaves",0,840 1210VDU 5 1220A$="By Jan Vlietinck" 1230FOR I=1 TO 16 1240MOVE 16*(I+5)+SIN(I*PI/8)*32,1024-32*(10+I):PRINT MID$(A$,I,1) 1250NEXT 1260VDU 4:OFF 1270GCOL 63 TINT 255 1280X1=WIND(2,0) 1290Y1=WIND(2,1)-WIND(2,3) 1300W1=WIND(0,2) 1310H1=WIND(0,1)-Y1+2*32 1320RECTANGLE X1-48,Y1-32,W1+96,H1+64 1330X=WIND(0,0)/32 1340Y=32-WIND(0,1)/32 1350PRINT TAB(X,Y-2) "ACTIONS" 1360PRINT TAB(X,Y) "Auto" 1370PRINT TAB(X,Y+1) "Semi-auto" 1380PRINT TAB(X,Y+2) "Manual" 1390PRINT TAB(X,Y+3) "Continue" 1400X=WIND(1,0)/32 1410Y=32-WIND(1,1)/32 1420PRINT TAB(X,Y-2) "OPTIONS" 1430PRINT TAB(X,Y) "Projection" 1440PRINT TAB(X,Y+1) "Loose Edges" 1450PRINT TAB(X,Y+2) "Colour Lookup" 1460X=WIND(2,0)/32 1470Y=32-WIND(2,1)/32 1480PRINT TAB(X,Y-2) "SETTINGS" 1490PRINT TAB(X,Y) "Width" 1500PRINT TAB(X,Y+1) "Height" 1510PRINT TAB(X,Y+2) "Viscosity" 1520PRINT TAB(X,Y+3) "Timestep" 1530PRINT TAB(X,Y+4) "BaseColour" 1540PROCmarker 1550PROCprintsettings 1560MOUSE TO LX%,LY% 1570M=!mo 1580WAIT:SYS "OS_Byte",&71,M 1590M=M EOR 3:!mo=M 1600WIN=0 1610ENDPROC 1620 1630DEF PROCmenu(RETURN MENU,RETURN WIN) 1640LOCAL R 1650GCOL 4,63 1660MOUSE RECTANGLE X1,Y1,W1-4,H1 1670LMENU=-1 1680LWIN=-1 1690MENU=-1 1700WIN=-1 1710REPEAT 1720R=RND(1) 1730MOUSE X%,Y%,Z% 1740LMENU=MENU 1750MENU=FNcheckmenu(X%,Y%) 1760LWIN=WIN 1770IF MENU<>-1 THEN 1780WIN=FNcheckwin(X%,Y%,MENU) 1790ENDIF 1800IF LMENU<>MENU THEN 1810IF LMENU<>-1 THEN PROCwin(LWIN,LMENU):ENDIF 1820IF MENU<>-1 THEN 1830PROCwin(WIN,MENU) 1840ENDIF 1850ELSE 1860IF MENU<>-1 THEN 1870IF LWIN<>WIN THEN 1880PROCwin(LWIN,MENU) 1890PROCwin(WIN,MENU) 1900ENDIF 1910ENDIF 1920ENDIF 1930UNTIL Z%=4 AND MENU<>-1 1940PROCwin(WIN,MENU) 1950MOUSE RECTANGLE 0,0,1280,1024 1960ENDPROC 1970 1980DEF FNcheckwin(X%,Y%,MENU) 1990LOCAL W,WIN 2000WMAX=WIND(MENU,3) 2010Y%-=WIND(MENU,1) 2020W=0:FOUND=FALSE 2030REPEAT 2040W+=1 2050IF Y%<-(W-1)*32 AND Y%>=-W*32 THEN 2060WIN=W 2070FOUND=TRUE 2080ENDIF 2090UNTIL W=WMAX OR FOUND 2100=WIN 2110 2120DEF FNcheckmenu(X%,Y%) 2130LOCAL I,X,Y 2140M=-1 2150FOR I=0 TO 2 2160X=X%-WIND(I,0) 2170Y=Y%-WIND(I,1)+WIND(I,3) 2180IF X>=0 AND Y>=0 AND X<WIND(I,2) AND Y<WIND(I,3) THEN M=I 2190NEXT 2200=M 2210 2220DEF PROCwin(W,MENU) 2230IF MENU<>-1 THEN 2240RECTANGLE FILL WIND(MENU,0),WIND(MENU,1)-W*32,WIND(MENU,2),32 2250ENDIF 2260ENDPROC 2270 2280DEF PROCinit 2290TIM=0 2300*POINTER 2310MOUSE ON 2320SYS "OS_Byte",&70,2 2330CALL init 2340CHOICE=0 2350WVADDR=!wavtab 2360SNADDR=!snutab 2370A=2^16*.95 2380FOR I%=0 TO 1023:SNADDR!(4*I%)=-SIN(PI*I%/512)*A+0.5:NEXT 2390!WVADDR=-1 2400DIM WIND(2,3) 2410WIND()=18,21,15,4, 18,14,15,3, 18,8,15,5 2420WIND()=WIND()*32 2430LX%=WIND(0,0)+12*32 2440LY%=WIND(0,1)-16 2450RECOMPILE=FALSE 2460DIM SETTING(4) 2470SETTING()=DM1,DM2,11-DAMP,12-PROP,BASE 2480DIM SETRANGE(1,4) 2490SETRANGE()=10,10,1,1,0, 80,64,10,10,255 2500DIM sprite 28000 2510!sprite=28000 2520sprite!4=0 2530sprite!8=16 2540sprite!12=16 2550*DIR <2DWaves$dir> 2560SYS "OS_SpriteOp",256+10,sprite,"2Dwaves" 2570SYS "OS_SpriteOp",256+24,sprite,"2DWaves" 2580*DIR ^ 2590ENDPROC 2600 2610DEF PROCreinit 2620!WVADDR=-1 2630!ex=0 2640!ey=0 2650ENDPROC 2660 2670DEF PROCdefine 2680MOUSE TO 640,512 2690CLS 2700S%=0 2710M=!mo 2720AM=200:FR=60:PH=0 2730LZ%=4 2740REPEAT 2750CALL outcopy 2760REPEAT 2770SYS "OS_Byte",&70,M 2780CALL incopy 2790LZ%=Z%:MOUSE X%,Y%,Z% 2800IF Z%=1 THEN FR=(12-X%*12/1280)*10:AM=Y%/2 2810A$=INKEY$(0):*FX 15,1 2820IF A$<>"" THEN 2830CASE A$ OF 2840WHEN "1":IF AM<512 AM+=10:IF AM>512 AM=512 2850WHEN "2":IF FR<120 FR+=2:IF FR>120 FR=120 2860WHEN "3":PH+=2 2870WHEN "Q","q":IF AM>0 AM-=10:IF AM<0 AM=0 2880WHEN "W","w":IF FR>0 FR-=2:IF FR<0 FR=0 2890WHEN "E","e":PH-=2 2900ENDCASE 2910ENDIF 2920R%=400/(1+FR/30)ANDNOT(3) 2930L%=AM/5+10 2940T%=PH*5.12 2950X=X%*DM1 DIV 1280 2960Y=Y%*DM2 DIV 1024 2970X%=(X+0.5)*1280/DM1 2980Y%=(Y+0.5)*1024/DM2 2990GCOL 3,L% TINT T% 3000CIRCLE FILL X%,Y%,R% 3010GCOL 63 TINT 255 3020CIRCLE X%,Y%,R% 3030VDU 26 3040VDU 5:MOVE 0,1023:GCOL 1,63 TINT 255 3050PRINT "Amplitude : ";AM 3060PRINT "Frequency : ";FR/10 3070PRINT "Phase (PI): ";PH/20 3080PRINT "X : ";X 3090PRINT "Y : ";Y 3100VDU 4:OFF 3110E%=AM:F%=FR*25:G%=PH*25.6 3120CALL graph 3130WAIT:SYS "OS_Byte",&71,M:M=M EOR 3 3140UNTIL (LZ%<>4 AND Z%=4) OR Z%=2 3150IF Z%=4 THEN 3160SYS "OS_Byte",&70,M 3170CALL incopy 3180GCOL 3,L% TINT T% 3190CIRCLE FILL X%,Y%,R% 3200Y=DM2-Y 3210PO=(X+Y*80+((64-DM2)DIV 2)*80+(80-DM1)DIV 2)*8 3220PROCset(AM*2,FR,PH*25.6,PO,S%) 3230CALL outcopy 3240S%+=1 3250ENDIF 3260UNTIL Z%=2 3270WHILE Z%=2:MOUSE X%,Y%,Z%:ENDWHILE 3280PROCset(-1,-1,-1,-1,S%) 3290!mo=M 3300GCOL 63:COLOUR 63 3310ENDPROC 3320 3330DEF PROCauto 3340!time=0 3350FOR S%=0 TO 9 3360AM=RND(800) 3370FR=RND(20) 3380PH=(RND(2)-1)*512+1024 3390X=RND(DM1-2)+1 3400Y=RND(DM2-2)+1 3410PO=(X+Y*80+((64-DM2)DIV 2)*80+(80-DM1)DIV 2)*8 3420PROCset(AM,FR,PH,PO,S%) 3430NEXT 3440PROCset(-1,-1,-1,-1,S%) 3450ENDPROC 3460 3470DEF PROCset(AM,FR,PH,PO,S%) 3480WVADDR!(S%*16)=PO:REM position 3490WVADDR!(S%*16+4)=AM:REM amplitude 3500WVADDR!(S%*16+8)=FR:REM frequency 3510WVADDR!(S%*16+12)=PH:REM phase 3520ENDPROC 3530 3540DEF PROCcoltable(CTABLE) 3550SWP=2 3560C=0:M=15 3570FOR K=0 TO M 3580PROCput(C+(K AND %1100)*5.25,K AND %11) 3590NEXT 3600FOR T=1 TO 3 3610C=T:M=4*(4-T)-1 3620PROCside( 4) 3630PROCside(- 1) 3640PROCside( 16) 3650PROCside(- 4) 3660PROCside( 1) 3670PROCside(-16) 3680NEXT 3690ENDPROC 3700 3710DEF PROCside(RGB) 3720FOR I=1 TO T 3730C+=RGB 3740IF SWP=1 THEN 3750FOR K=0 TO M 3760PROCput(C+(K AND %1100)*5.25,K AND %11) 3770NEXT 3780ELSE 3790FOR K=M TO 0 STEP -1 3800PROCput(C+(K AND %1100)*5.25,K AND %11) 3810NEXT 3820ENDIF 3830SWP=SWP EOR 3 3840NEXT 3850ENDPROC 3860 3870DEF PROCput(C,T) 3880B1=(C>>5) AND 1 3890B2=(C>>4) AND 1 3900G1=(C>>3) AND 1 3910G2=(C>>2) AND 1 3920R1=(C>>1) AND 1 3930R2=(C>>0) AND 1 3940COL=T+4*(R2+2*(B2+2*(R1+2*(G2+2*(G1+2*B1))))) 3950?CTABLE=COL 3960CTABLE+=1 3970ENDPROC 3980 3990DEF PROCinitass 4000DIM Q% 100000 4010DAMP=8 4020PROP=2 4030DM1=80 4040DM2=64 4050BASE=180 4060DIM CTABLE 256 4070PROCcoltable(CTABLE) 4080FOR PASS=0 TO 2 STEP 2 4090P%=Q% 4100[OPT PASS 4110.scr1 EQUD 148:EQUD -1 4120.scr2 EQUD 0 4130.tab1 EQUD xtab 4140.tab2 EQUD !tab1+64*80*8 4150.ta1 EQUD 0 4160.ta2 EQUD 0 4170.snutab EQUD !tab1+64*80*8*2 4180.wavtab EQUD !snutab+1024*4 4190.ex EQUD 1 4200.ey EQUD 1 4210.mo EQUD 2 4220.time EQUD 0 4230.choice EQUD %110 4240.name EQUS "Dump":EQUB ASC"0":EQUB 0 4250.ALIGN 4260] 4270QQ%=P% 4280PROCass 4290NEXT 4300ENDPROC 4310 4320DEF PROCreass 4330FOR PASS=0 TO 2 STEP 2 4340P%=QQ% 4350PROCass 4360NEXT 4370ENDPROC 4380 4390DEF PROCass 4400XW=((80-DM1) DIV 2)*4+4 4410YW=((64-DM2) DIV 2)*4+4 4420I =0 :SNUS =0 4430J =1 :X2 =1 :WAVS =1 : DX =1 4440T =2 :M =2 4450O =3 :X =3 :POSI =3 : OC =3 4460W =4 :Z =4 :AMPL =4 : DY =4 4470X1 =5 :FREQ =5 :NC =5 4480V =6 :Y =6 :PHA =6 : C1 =6 4490Y1 =7 :TIJD =7 :AD =7 : C2 =7 4500SCR =8 :SOUR =8 4510COL =9 :C =9 :DEST =9 : C3 =9 4520TAB1 =10 :L =10 :CO =10 : C4 =10 4530TAB2 =11 :CT =11 :LL =11 : OK =11 4540Y2 =12 :MASK =12 :NK =12 4550H =13 4560N =14 4570[OPT PASS 4580.graph 4590 ADR R0,scr1 4600 ADR R1,scr2 4610 SWI "OS_ReadVduVariables" 4620 LDR SCR,scr2 4630 MOV T,#320*128 4640 ADD SCR,SCR,T 4650 MOV MASK,#1<<10 4660 SUB MASK,MASK,#1 4670 LDR SNUS,snutab 4680 MOV J,#1280 4690 SUB J,J,#4 4700 MOV COL,#255 4710 MOV LL,#0 4720 .loopgr 4730 MUL T,J,FREQ 4740 MOV T,T,ASR #8 4750 ADD T,T,PHA 4760 AND T,T,MASK 4770 LDR T,[SNUS,T,LSL #2] 4780 MUL L,T,AMPL 4790 MOVS T,L,ASR #18 4800 ADC T,T,#0 4810 ADD T,T,T,LSL #2 4820 MOV T,T,LSL #6 4830 ADD T,T,J,LSR #2 4840 ADD T,SCR,T 4850 MOV AD,#320 4860 CMP T,LL 4870 RSBHI AD,AD,#0 4880 MOV L,T 4890 CMP LL,#0 4900 CMPNE T,LL 4910 ADDEQ LL,T,AD 4920 .dal 4930 STRB COL,[T],AD 4940 CMP T,LL 4950 BNE dal 4960 SUB LL,L,#1 4970 SUBS J,J,#4 4980 BNE loopgr 4990MOV PC,R14 5000 5010.start 5020 STMFD 13!,{14} 5030 MOV R0,#&10 5040 ADR R1,keypress 5050 MOV R2,#0 5060 SWI "OS_Claim" 5070 MOV R0,#&0E 5080 MOV R1,#11 5090 SWI "OS_Byte" 5100 MOV T,#(64-DM2) DIV 2 5110 ADD T,T,T,LSL #2 5120 MOV T,T,LSL #7 5130 ADD T,T,#((80-DM1) DIV 2)*8 5140 LDR TAB1,tab1 5150 ADD TAB1,TAB1,T 5160 STR TAB1,ta1 5170 LDR TAB2,tab2 5180 ADD TAB2,TAB2,T 5190 STR TAB2,ta2 5200 .loop 5210 MOV R0,#&70 5220 LDR R1,mo 5230 SWI "OS_Byte" 5240 LDR T,choice 5250 TST T,#8+16 5260 BEQ ovr7 5270 SUB T,T,#8 5280 STR T,choice 5290 MOV R0,#16 5300 SWI "OS_WriteC" 5310 .ovr7 5320 ADR R0,scr1 5330 ADR R1,scr2 5340 SWI "OS_ReadVduVariables" 5350 LDR TAB1,ta1 5360 LDR TAB2,ta2 5370 STR TAB1,ta2 5380 STR TAB2,ta1 5390 LDR T,choice 5400 TST T,#32 5410 BEQ endcase 5420 .case 5430 BIC T,T,#32 5440 STR T,choice 5450 LDR TAB1,ta1 5460 BL fix_edges 5470 LDR TAB1,ta2 5480 BL fix_edges 5490 .endcase 5500 BL mouse_control 5510 BL sources 5520 LDR T,choice 5530 TST T,#2 5540 BLNE loose_edges 5550 LDR SCR,scr2 5560 LDR T,choice 5570 TST T,#1 5580 BNE else 5590 BL simulation_display 5600 LDR SCR,scr2 5610 LDR T,choice 5620 TST T,#4 5630 BLNE coulor_translation 5640 BAL endif 5650 .else 5660 MOV R0,#16 5670 SWI "OS_WriteC" 5680 BL simulation 5690 LDR SCR,scr2 5700 LDR TAB1,ta2 5710 LDR T,choice 5720 TST T,#4 5730 BLEQ wiredisplay 5740 BLNE wiredisplayct 5750 .endif 5760 LDR T,choice 5770 TST T,#64 5780 BICNE T,T,#64 5790 STRNE T,choice 5800 BLNE savescreen 5810 .wait 5820 SWI "OS_Mouse" 5830 CMP T,#1 5840 BEQ wait 5850 CMP T,#2 5860 BEQ end 5870 MOV R0,#&13 5880 SWI "OS_Byte" 5890 LDR T,mo 5900 MOV R0,#&71 5910 MOV R1,T 5920 EOR T,T,#3 5930 STR T,mo 5940 SWI "OS_Byte" 5950 BAL loop 5960.end 5970 MOV R0,#&0D 5980 MOV R1,#11 5990 SWI "OS_Byte" 6000 MOV R0,#&10 6010 ADR R1,keypress 6020 MOV R2,#0 6030 SWI "OS_Release" 6040LDMFD 13!,{15} 6050 6060 6070.keypress 6080 CMP R0,#11 6090 MOVNE PC,R14 6100 CMP R1,#1 6110 MOVNE PC,R14 6120 STMFD 13!,{0-3} 6130 LDR R1,choice 6140 CMP R2,#&30 6150 EOREQ R1,R1,#1 6160 ORREQ R1,R1,#16 6170 CMP R2,#&29 6180 EOREQ R1,R1,#2 6190 ORREQ R1,R1,#32 6200 CMP R2,#&50 6210 EOREQ R1,R1,#4 6220 CMP R2,#&3D 6230 ORREQ R1,R1,#64 6240 STR R1,choice 6250 LDMFD 13!,{0-3} 6260MOV PC,R14 6270 6280.mouse_control 6290 SWI "OS_Mouse" 6300 CMP T,#4 6310 BNE skip 6320 LDR X,ex 6330 LDR Y,ey 6340 CMP X,#0 6350 BEQ dont 6360 MOV T,#80 6370 MUL T,Y,T 6380 ADD T,T,X 6390 MOV T,T,LSL #3 6400 ADD T,T,TAB1 6410 LDMIA T,{O,V} 6420 SUB O,O,V 6430 MOV V,#240<<16 6440 STMIA T,{O,V} 6450 .dont 6460 MOV X,I,LSR #4 6470 MOV Y,J,LSR #4 6480 RSB Y,Y,#(DM2-1) 6490 CMP X,#(DM1-1) 6500 BHS out 6510 CMP X,#0 6520 BLS out 6530 CMP Y,#(DM2-1) 6540 BHS out 6550 CMP Y,#0 6560 BLS out 6570 STR X,ex 6580 STR Y,ey 6590 MOV PC,R14 6600 .out 6610 MOV X,#0 6620 STR X,ex 6630 MOV PC,R14 6640 .skip 6650 LDR X,ex 6660 LDR Y,ey 6670 CMP X,#0 6680 MOVEQ PC,R14 6690 MOV T,#80 6700 MUL T,Y,T 6710 ADD T,T,X 6720 MOV T,T,LSL #3 6730 SUB J,J,#(DM2 DIV 2)*16 6740 MOV J,J,LSL #18 6750 ADD J,J,#BASE<<20 6760 STR J,[TAB1,T] 6770MOV PC,R14 6780 6790.savescreen 6800STMFD 13!,{0-3} 6810 MOV R0,#2 6820 ADR R2,name 6830 MOV R3,#0 6840 SWI "OS_SpriteOp" 6850 LDRB R0,[R2,#4] 6860 ADD R0,R0,#1 6870 STRB R0,[R2,#4] 6880LDMFD 13!,{0-3} 6890MOV PC,R14 6900 6910.sources 6920 MOV C,#(64-DM2) DIV 2 6930 ADD C,C,C,LSL #2 6940 MOV C,C,LSL #7 6950 ADD C,C,#((80-DM1) DIV 2)*8 6960 SUB TAB1,TAB1,C 6970 MOV MASK,#1<<10 6980 SUB MASK,MASK,#1 6990 LDR SNUS,snutab 7000 LDR WAVS,wavtab 7010 LDR TIJD,time 7020 ADD TIJD,TIJD,#1 7030 STR TIJD,time 7040 .loopw 7050 LDMIA (WAVS)!,{POSI,AMPL,FREQ,PHA} 7060 MUL T,TIJD,FREQ 7070 ADD T,T,PHA 7080 AND T,T,MASK 7090 LDR T,[SNUS,T,LSL #2] 7100 MUL AMPL,T,AMPL 7110 CMN POSI,#1 7120 ADD AMPL,AMPL,#BASE<<20 7130 STRNE AMPL,[TAB1,POSI] 7140 BNE loopw 7150 ADD TAB1,TAB1,C 7160MOV PC,R14 7170 7180.fix_edges 7190 MOV I,#0 7200 MOV J,#DM2 7210 MOV T,#8*80 7220 MUL J,T,J 7230 MOV T,#BASE<<20 7240 SUB T,T,#1<<19 7250 .horz_edge1 7260 ADD W,TAB1,I 7270 STR T,[W] 7280 ADD W,W,J 7290 STR T,[W,#-80*8] 7300 ADD I,I,#8 7310 CMP I,#DM1*8 7320 BNE horz_edge1 7330 MOV I,#0 7340 .vert_edge1 7350 ADD W,TAB1,I 7360 STR T,[W] 7370 ADD W,W,#DM1*8 7380 STR T,[W,#-8] 7390 ADD I,I,#80*8 7400 CMP I,J 7410 BNE vert_edge1 7420MOV PC,R14 7430 7440.loose_edges 7450 MOV I,#0 7460 MOV J,#DM2 7470 MOV T,#8*80 7480 MUL J,T,J 7490 .horz_edge2 7500 ADD W,TAB1,I 7510 LDR T,[W,#80*8] 7520 STR T,[W] 7530 ADD W,W,J 7540 LDR T,[W,#-2*80*8] 7550 STR T,[W,#-80*8] 7560 ADD I,I,#8 7570 CMP I,#DM1*8 7580 BNE horz_edge2 7590 MOV I,#0 7600 .vert_edge2 7610 ADD W,TAB1,I 7620 LDR T,[W,#+8] 7630 STR T,[W] 7640 ADD W,W,#DM1*8 7650 LDR T,[W,#-16] 7660 STR T,[W,#-8] 7670 ADD I,I,#80*8 7680 CMP I,J 7690 BNE vert_edge2 7700MOV PC,R14 7710 7720.tmp1 EQUD 0:EQUD 0:EQUD 0 7730.simulation_display 7740 MOV X,#XW 7750 MOV Y,#YW 7760 ADD T,Y,Y,LSL #2 7770 ADD T,X,T,LSL #6 7780 ADD SCR,SCR,T 7790 MOV J,#DM2-2 7800 ADD TAB1,TAB1,#80*8 7810 ADD TAB2,TAB2,#80*8 7820 .loopy 7830 MOV I,#DM1-2 7840 ADD TAB1,TAB1,#1<<3 7850 ADD TAB2,TAB2,#1<<3 7860 ADR W,tmp1 7870 STMIA W,{J,13,14} 7880 MOV N,#255 7890 LDR X1,[TAB1,#-8] 7900 LDR Y1,[TAB1] 7910 LDR Y2,[TAB1,#80*8] 7920 ADD TAB1,TAB1,#4 7930 .loopx 7940 MOV O,X1 7950 MOV X1,Y1 7960 MOV X2,Y2 7970 LDR W,[TAB1,#-80*8-4] 7980 LDR Y2,[TAB1,#80*8+8-4] 7990 LDMIA (TAB1)!,{V,Y1} 8000 ADD O,O,Y1 8010 ADD O,O,W 8020 ADD O,O,X2 8030 SUB O,O,X1,LSL #2 8040 ADD V,V,O,ASR #PROP 8050 SUB V,V,V,ASR #DAMP 8060 ADD O,X1,V 8070 STMIA (TAB2)!,{O,V} 8080 SUB DX,X2,X1 8090 SUB DY,Y2,Y1 8100 AND C,N,X1,LSR #20 8110 ADD H,X1,Y1 8120 ADD M,H,X1,LSL #1 8130 AND M,N,M,LSR #22 8140 ADD C,C,M,LSL #8 8150 AND M,N,H,LSR #21 8160 ADD C,C,M,LSL #16 8170 ADD M,H,Y1,LSL #1 8180 AND M,N,M,LSR #22 8190 ADD C,C,M,LSL #24 8200 STR COL,[SCR],#4 8210 ADD X,X1,DX,ASR #2 8220 ADD Y,Y1,DY,ASR #2 8230 AND C,N,X,LSR #20 8240 ADD H,X,Y 8250 ADD M,H,X,LSL #1 8260 AND M,N,M,LSR #22 8270 ADD C,C,M,LSL #8 8280 AND M,N,H,LSR #21 8290 ADD C,C,M,LSL #16 8300 ADD M,H,Y,LSL #1 8310 AND M,N,M,LSR #22 8320 ADD C,C,M,LSL #24 8330 STR COL,[SCR,#320-4] 8340 ADD X,X,DX,ASR #2 8350 ADD Y,Y,DY,ASR #2 8360 AND C,N,X,LSR #20 8370 ADD H,X,Y 8380 ADD M,H,X,LSL #1 8390 AND M,N,M,LSR #22 8400 ADD C,C,M,LSL #8 8410 AND M,N,H,LSR #21 8420 ADD C,C,M,LSL #16 8430 ADD M,H,Y,LSL #1 8440 AND M,N,M,LSR #22 8450 ADD C,C,M,LSL #24 8460 STR COL,[SCR,#640-4] 8470 ADD X,X,DX,ASR #2 8480 ADD Y,Y,DY,ASR #2 8490 AND C,N,X,LSR #20 8500 ADD H,X,Y 8510 ADD M,H,X,LSL #1 8520 AND M,N,M,LSR #22 8530 ADD C,C,M,LSL #8 8540 AND M,N,H,LSR #21 8550 ADD C,C,M,LSL #16 8560 ADD M,H,Y,LSL #1 8570 AND M,N,M,LSR #22 8580 ADD C,C,M,LSL #24 8590 STR COL,[SCR,#960-4] 8600 SUBS I,I,#1 8610 BNE loopx 8620 ADD SCR,SCR,#320-(DM1-2)*4 8630 ADD SCR,SCR,#3*320 8640 SUB TAB1,TAB1,#4 8650 ADD TAB1,TAB1,#(80-DM1+1)<<3 8660 ADD TAB2,TAB2,#(80-DM1+1)<<3 8670 ADR W,tmp1 8680 LDMIA W,{J,13,14} 8690 SUBS J,J,#1 8700 BNE loopy 8710MOV PC,R14 8720 8730.tmp2 EQUD 0:EQUD 0:EQUD 0 8740.simulation 8750 MOV J,#DM2-2 8760 ADD TAB1,TAB1,#80*8 8770 ADD TAB2,TAB2,#80*8 8780 .koopy 8790 MOV I,#DM1-2 8800 ADD TAB1,TAB1,#1<<3 8810 ADD TAB2,TAB2,#1<<3 8820 ADR W,tmp2 8830 STMIA W,{J,13,14} 8840 LDR X1,[TAB1,#-8] 8850 LDR Y1,[TAB1] 8860 ADD TAB1,TAB1,#4 8870 .koopx 8880 MOV O,X1 8890 MOV X1,Y1 8900 LDR W,[TAB1,#-80*8-4] 8910 LDR X2,[TAB1,#80*8-4] 8920 LDMIA (TAB1)!,{V,Y1} 8930 ADD O,O,Y1 8940 ADD O,O,W 8950 ADD O,O,X2 8960 SUB O,O,X1,LSL #2 8970 SUB V,V,V,ASR #DAMP 8980 ADD V,V,O,ASR #PROP 8990 ADD O,X1,V 9000 STMIA (TAB2)!,{O,V} 9010 SUBS I,I,#1 9020 BNE koopx 9030 SUB TAB1,TAB1,#4 9040 ADD TAB1,TAB1,#(80-DM1+1)<<3 9050 ADD TAB2,TAB2,#(80-DM1+1)<<3 9060 ADR W,tmp2 9070 LDMIA W,{J,13,14} 9080 SUBS J,J,#1 9090 BNE koopy 9100MOV PC,R14 9110 9120.reciprocal 9130 FNfill 9140.recipraddr EQUD reciprocal 9150.tmp5 EQUD 0 9160.wiredisplay 9170 MOV COL,#255 9180 MOV J,#DM2-2 9190 LDR AD,recipraddr 9200 LDR CT,ctabled 9210 ADD TAB1,TAB1,#80*8 9220 MOV T,#1 9230 MOV Z,T,LSL #2 9240 LDR Z,[AD,Z,LSL #2] 9250 MOV X,#4 9260 SUB X,X,#DM1*2*1.5 9270 MUL X,Z,X 9280 STR X,tmp5 9290 .noopy 9300 MOV I,#DM1-2 9310 ADD TAB1,TAB1,#1<<3 9320 MOV Z,J,LSL #2 9330 LDR Z,[AD,Z,LSL #2] 9340 MOV X,#4 9350 SUB X,X,#DM1*2*1.5 9360 MUL X,Z,X 9370 LDR T,tmp5 9380 SUB X,X,T 9390 .noopx 9400 LDMIA (TAB1)!,{X1,V} 9410 SUB Y,X1,#BASE<<20 9420 MOV Y,Y,ASR #21 9430 ADD Y,Y,J,LSL #2 9440 MUL Y,Z,Y 9450 MOV Y,Y,ASR #9 9460 ADD Y,Y,#60 9470 RSB Y,Y,#255 9480 ADD T,Y,Y,LSL #2 9490 MOV T,T,LSL #6 9500 ADD T,T,X,ASR #9 9510 CMP T,#320*256 9520 STRLOB COL,[T,SCR]! 9530 ADD X,X,Z,LSL #2 9540 SUBS I,I,#1 9550 BNE noopx 9560 ADD TAB1,TAB1,#(80-DM1+1)<<3 9570 SUBS J,J,#1 9580 BNE noopy 9590MOV PC,R14 9600 9610.wiredisplayct 9620 MOV J,#DM2-2 9630 LDR AD,recipraddr 9640 LDR CT,ctabled 9650 ADD TAB1,TAB1,#80*8 9660 MOV T,#1 9670 MOV Z,T,LSL #2 9680 LDR Z,[AD,Z,LSL #2] 9690 MOV X,#4 9700 SUB X,X,#DM1*2*1.5 9710 MUL X,Z,X 9720 STR X,tmp5 9730 .moopy 9740 MOV I,#DM1-2 9750 ADD TAB1,TAB1,#1<<3 9760 MOV Z,J,LSL #2 9770 LDR Z,[AD,Z,LSL #2] 9780 MOV X,#4 9790 SUB X,X,#DM1*2*1.5 9800 MUL X,Z,X 9810 LDR T,tmp5 9820 SUB X,X,T 9830 .moopx 9840 LDMIA (TAB1)!,{X1,V} 9850 SUB Y,X1,#BASE<<20 9860 MOV Y,Y,ASR #21 9870 ADD Y,Y,J,LSL #2 9880 MUL Y,Z,Y 9890 MOV Y,Y,ASR #9 9900 ADD Y,Y,#60 9910 RSB Y,Y,#255 9920 ADD T,Y,Y,LSL #2 9930 MOV T,T,LSL #6 9940 ADD T,T,X,ASR #9 9950 CMP T,#320*256 9960 AND X1,X1,#255<<20 9970 LDRLOB COL,[CT,X1,LSR #20] 9980 STRLOB COL,[T,SCR]! 9990 ADD X,X,Z,LSL #2 10000 SUBS I,I,#1 10010 BNE moopx 10020 ADD TAB1,TAB1,#(80-DM1+1)<<3 10030 SUBS J,J,#1 10040 BNE moopy 10050MOV PC,R14 10060 10070.ctabled EQUD CTABLE 10080.tmp4 EQUD 0 10090.coulor_translation 10100 STR H,tmp4 10110 MOV X,#XW 10120 MOV Y,#YW 10130 ADD T,Y,Y,LSL #2 10140 ADD T,X,T,LSL #6 10150 ADD SCR,SCR,T 10160 LDR W,ctabled 10170 MOV H,#255 10180 MVN C4,#1 10190 MOV J,#4*(DM2-2) 10200 .glp2 10210 MOV I,#DM1-2 10220 .glp1 10230 LDMIA SCR,{OC,OK} 10240 AND C1,H,OC 10250 AND C2,H,OC,LSR #8 10260 AND C3,H,OC,LSR #16 10270 CMP C4,C1 10280 AND C4,H,OC,LSR #24 10290 LDRNEB T,[W,C1] 10300 MOV NC,T 10310 CMP C1,C2 10320 LDRNEB T,[W,C2] 10330 ADD NC,NC,T,LSL #8 10340 CMP C2,C3 10350 LDRNEB T,[W,C3] 10360 ADD NC,NC,T,LSL #16 10370 CMP C3,C4 10380 LDRNEB T,[W,C4] 10390 ADD NC,NC,T,LSL #24 10400 AND C1,H,OK 10410 AND C2,H,OK,LSR #8 10420 AND C3,H,OK,LSR #16 10430 CMP C4,C1 10440 AND C4,H,OK,LSR #24 10450 LDRNEB T,[W,C1] 10460 MOV NK,T 10470 CMP C1,C2 10480 LDRNEB T,[W,C2] 10490 ADD NK,NK,T,LSL #8 10500 CMP C2,C3 10510 LDRNEB T,[W,C3] 10520 ADD NK,NK,T,LSL #16 10530 CMP C3,C4 10540 LDRNEB T,[W,C4] 10550 ADD NK,NK,T,LSL #24 10560 STMIA (SCR)!,{NC,NK} 10570 SUBS I,I,#2 10580 BHI glp1 10590 ADD SCR,SCR,#320-((DM1+1)ANDNOT1)*4+8 10600 SUBS J,J,#1 10610 BHI glp2 10620 LDR H,tmp4 10630MOV PC,R14 10640 10650.init 10660 ADR W,xtab 10670 MOV I,#64*80*2 10680 MOV T,#BASE<<20 10690 SUB T,T,#1<<19 10700 MOV V,#0 10710 .lop2 10720 STMIA (W)!,{T,V} 10730 SUBS I,I,#1 10740 BNE lop2 10750MOV PC,R14 10760 10770.newbase 10780 ADR W,xtab 10790 MOV I,#64*80*2 10800 .lop2 10810 LDMIA W,{T,V} 10820 SUB T,T,#BASE<<20 10830 ADD T,T,J,LSL #20 10840 STMIA (W)!,{T,V} 10850 SUBS I,I,#1 10860 BNE lop2 10870MOV PC,R14 10880 10890.scrn1 EQUD 148:EQUD -1 10900.scrn2 EQUD 0 10910.incopy 10920 ADR R0,scrn1 10930 ADR R1,scrn2 10940 SWI "OS_ReadVduVariables" 10950 LDR DEST,scrn2 10960 ADR SOUR,xtab 10970 MOV CO,#320*256/4/8/4 10980 .loopi 10990 LDMIA (SOUR)!,{0-7} 11000 STMIA (DEST)!,{0-7} 11010 LDMIA (SOUR)!,{0-7} 11020 STMIA (DEST)!,{0-7} 11030 LDMIA (SOUR)!,{0-7} 11040 STMIA (DEST)!,{0-7} 11050 LDMIA (SOUR)!,{0-7} 11060 STMIA (DEST)!,{0-7} 11070 SUBS CO,CO,#1 11080 BNE loopi 11090MOV PC,R14 11100 11110.outcopy 11120 ADR R0,scrn1 11130 ADR R1,scrn2 11140 SWI "OS_ReadVduVariables" 11150 ADR DEST,xtab 11160 LDR SOUR,scrn2 11170 MOV CO,#320*256/4/8 11180 .loopo 11190 LDMIA (SOUR)!,{0-7} 11200 STMIA (DEST)!,{0-7} 11210 SUBS CO,CO,#1 11220 BNE loopo 11230MOV PC,R14 11240 11250.xtab 11260] 11270ENDPROC 11280 11290DEF FNfill 11300LOCAL I,F,A 11310A=4*(DM1-4) 11320F=320*2^9 11330FOR I=1 TO 256 11340[OPT PASS 11350EQUD F/(I+A) 11360] 11370NEXT 11380=""
� >!Runimage � Wavesimulator � by Jan Vlietinck (c) (� �:�:� " at line ";�:� 2 �13:� <�initass F �init P �main Z� d n� �main x� � �initmenu �� ��menu(MENU,WIN) �LX%=X%:LY%=Y% � Ȏ MENU � �� 0 �Ȏ WIN � �� 1:�reinit:�auto:ȗ � 0,0 � � 2:�reinit:�define:ȗ � 0,0 �0� 3:�reinit:!ex=DM1/2:!ey=DM2/2:ȗ � 640,512 �X=(40-(DM1 � 2))*16 �Y=(32-(DM2 � 2))*16 �ȗ � X,Y �wait � 4:�wait � "� 1 ,Ȏ WIN � 6"� 1:CHOICE=CHOICE � 1:�mark(1) @"� 2:CHOICE=CHOICE � 2:�mark(2) J"� 3:CHOICE=CHOICE � 4:�mark(3) T� ^� 2 hȎ WIN � r� 1:DM1=�input(1) |� 2:DM2=�input(2) �� 3:DAMP=11-�input(3) �� 4:PROP=12-�input(4) �&� 5:B%=�input(5):� newbase:BASE=B% �� �� �� MENU=0 �$� RECOMPILE � �reass:RECOMPILE=� �� WIN<>4 � � init �ȑ (XW-4)*4,(YW-4)*4 �)� (CHOICE � 4)=0 � CHOICE=CHOICE � 32 �!choice=CHOICE+16 �� start � ȑ 0,0 � 0 � &� �input(I) 0� A,X,Y :� � D*FX 15,0 NA=1 XX=WIND(2,0)/32+11 bY=31-WIND(2,1)/32+I l� v� �X,Y) " " �� 28,X,Y,X+3,Y �� 23,16,8,0,0,0,0,0,0,0 �� A<>0 � � � � A=-1 � � �X,Y) A �� 23,16,0,0,0,0,0,0,0,0 �� 26 �� A=-1 � �A=SETTING(I-1) �� �X,Y) " " �� �X,Y) �(A) �� �-� A<SETRANGE(0,I-1) � A>SETRANGE(1,I-1) � �?� A<SETRANGE(0,I-1) � A=SETRANGE(0,I-1) � A=SETRANGE(1,I-1) � � �X,Y) " " � �X,Y) �(A) SETTING(I-1)=A *RECOMPILE=� 4� >� H� � R �wait \=A f p� �wait zȕ Z%:ȗ X%,Y%,Z%:� �� � �� �mark(I) �$� WIND(1,0)-36,WIND(1,1)-32*I+16 �� BY 8,-8:� 33,16,16 � �wait �� � � � �marker �CHOICE=!choice � � I=1 � 3 �"� (CHOICE � (1<<(I-1))) <> 0 � �$� WIND(1,0)-36,WIND(1,1)-32*I+16 � BY 8,-8:� 33,16,16 � � $� . 8� �printsettings B� I,X,Y L � I=1 � 5 VX=WIND(2,0)/32+11 `Y=31-WIND(2,1)/32+I j� �X,Y) �(SETTING(I-1)) t� ~� � �� �initmenu �� 63 Ȝ 64 �� �2ș "OS_SpriteOp",256+34,sprite,"2DWaves",0,840 �� 5 �A$="By Jan Vlietinck" �� I=1 � 16 �4� 16*(I+5)+�(I*�/8)*32,1024-32*(10+I):� �A$,I,1) �� � � 4:� �� 63 Ȝ 255 X1=WIND(2,0) Y1=WIND(2,1)-WIND(2,3) W1=WIND(0,2) H1=WIND(0,1)-Y1+2*32 (ȓ X1-48,Y1-32,W1+96,H1+64 2X=WIND(0,0)/32 <Y=32-WIND(0,1)/32 F� �X,Y-2) "ACTIONS" P� �X,Y) "Auto" Z� �X,Y+1) "Semi-auto" d� �X,Y+2) "Manual" n� �X,Y+3) "Continue" xX=WIND(1,0)/32 �Y=32-WIND(1,1)/32 �� �X,Y-2) "OPTIONS" �� �X,Y) "Projection" �� �X,Y+1) "Loose Edges" �� �X,Y+2) "Colour Lookup" �X=WIND(2,0)/32 �Y=32-WIND(2,1)/32 �� �X,Y-2) "SETTINGS" �� �X,Y) "Width" �� �X,Y+1) "Height" �� �X,Y+2) "Viscosity" �� �X,Y+3) "Timestep" �� �X,Y+4) "BaseColour" �marker �printsettings ȗ � LX%,LY% " M=!mo ,Ȗ:ș "OS_Byte",&71,M 6M=M � 3:!mo=M @ WIN=0 J� T ^� �menu(� MENU,� WIN) h� R r � 4,63 |ȗ ȓ X1,Y1,W1-4,H1 �LMENU=-1 �LWIN=-1 �MENU=-1 � WIN=-1 �� � R=�(1) �ȗ X%,Y%,Z% �LMENU=MENU �MENU=�checkmenu(X%,Y%) �LWIN=WIN �� MENU<>-1 � �WIN=�checkwin(X%,Y%,MENU) �� � LMENU<>MENU � $� LMENU<>-1 � �win(LWIN,LMENU):� � MENU<>-1 � &�win(WIN,MENU) 0� :� D� MENU<>-1 � N� LWIN<>WIN � X�win(LWIN,MENU) b�win(WIN,MENU) l� v� �� �� Z%=4 � MENU<>-1 ��win(WIN,MENU) �ȗ ȓ 0,0,1280,1024 �� � �� �checkwin(X%,Y%,MENU) �� W,WIN �WMAX=WIND(MENU,3) �Y%-=WIND(MENU,1) �W=0:FOUND=� �� �W+=1 � Y%<-(W-1)*32 � Y%>=-W*32 � WIN=W FOUND=� � *� W=WMAX � FOUND 4=WIN > H� �checkmenu(X%,Y%) R� I,X,Y \M=-1 f � I=0 � 2 pX=X%-WIND(I,0) zY=Y%-WIND(I,1)+WIND(I,3) �3� X>=0 � Y>=0 � X<WIND(I,2) � Y<WIND(I,3) � M=I �� �=M � �� �win(W,MENU) �� MENU<>-1 � �8ȓ Ȑ WIND(MENU,0),WIND(MENU,1)-W*32,WIND(MENU,2),32 �� �� � �� �init � TIM=0 �*POINTER ȗ � ș "OS_Byte",&70,2 � init $CHOICE=0 .WVADDR=!wavtab 8SNADDR=!snutab BA=2^16*.95 L4� I%=0 � 1023:SNADDR!(4*I%)=-�(�*I%/512)*A+0.5:� V!WVADDR=-1 `� WIND(2,3) j,WIND()=18,21,15,4, 18,14,15,3, 18,8,15,5 tWIND()=WIND()*32 ~LX%=WIND(0,0)+12*32 �LY%=WIND(0,1)-16 �RECOMPILE=� �� SETTING(4) �*SETTING()=DM1,DM2,11-DAMP,12-PROP,BASE �� SETRANGE(1,4) �+SETRANGE()=10,10,1,1,0, 80,64,10,10,255 �� sprite 28000 �!sprite=28000 �sprite!4=0 �sprite!8=16 �sprite!12=16 �*DIR <2DWaves$dir> ,ș "OS_SpriteOp",256+10,sprite,"2Dwaves" ,ș "OS_SpriteOp",256+24,sprite,"2DWaves" *DIR ^ � ( 2 � �reinit <!WVADDR=-1 F !ex=0 P !ey=0 Z� d n � �define xȗ � 640,512 �� �S%=0 � M=!mo �AM=200:FR=60:PH=0 � LZ%=4 �� � � outcopy �� �ș "OS_Byte",&70,M �� incopy �LZ%=Z%:ȗ X%,Y%,Z% �*� Z%=1 � FR=(12-X%*12/1280)*10:AM=Y%/2 �A$=�(0):*FX 15,1 � A$<>"" � Ȏ A$ � )� "1":� AM<512 AM+=10:� AM>512 AM=512 "(� "2":� FR<120 FR+=2:� FR>120 FR=120 ,� "3":PH+=2 6'� "Q","q":� AM>0 AM-=10:� AM<0 AM=0 @'� "W","w":� FR>0 FR-=2:� FR<0 FR=0 J� "E","e":PH-=2 T� ^� hR%=400/(1+FR/30)��(3) rL%=AM/5+10 |T%=PH*5.12 �X=X%*DM1 � 1280 �Y=Y%*DM2 � 1024 �X%=(X+0.5)*1280/DM1 �Y%=(Y+0.5)*1024/DM2 �� 3,L% Ȝ T% �ȏ Ȑ X%,Y%,R% �� 63 Ȝ 255 �ȏ X%,Y%,R% �� 26 �� 5:� 0,1023:� 1,63 Ȝ 255 �� "Amplitude : ";AM �� "Frequency : ";FR/10 �� "Phase (PI): ";PH/20 � "X : ";X � "Y : ";Y � 4:� &E%=AM:F%=FR*25:G%=PH*25.6 0� graph :!Ȗ:ș "OS_Byte",&71,M:M=M � 3 D� (LZ%<>4 � Z%=4) � Z%=2 N� Z%=4 � Xș "OS_Byte",&70,M b� incopy l� 3,L% Ȝ T% vȏ Ȑ X%,Y%,R% �Y=DM2-Y �.PO=(X+Y*80+((64-DM2)� 2)*80+(80-DM1)� 2)*8 ��set(AM*2,FR,PH*25.6,PO,S%) � � outcopy � S%+=1 �� � � Z%=2 �ȕ Z%=2:ȗ X%,Y%,Z%:� ��set(-1,-1,-1,-1,S%) � !mo=M � � 63:� 63 �� � � �auto !time=0 � S%=0 � 9 AM=�(800) *FR=�(20) 4PH=(�(2)-1)*512+1024 >X=�(DM1-2)+1 HY=�(DM2-2)+1 R.PO=(X+Y*80+((64-DM2)� 2)*80+(80-DM1)� 2)*8 \�set(AM,FR,PH,PO,S%) f� p�set(-1,-1,-1,-1,S%) z� � �� �set(AM,FR,PH,PO,S%) � WVADDR!(S%*16)=PO:� position �#WVADDR!(S%*16+4)=AM:� amplitude �#WVADDR!(S%*16+8)=FR:� frequency � WVADDR!(S%*16+12)=PH:� phase �� � �� �coltable(CTABLE) � SWP=2 �C=0:M=15 � � K=0 � M �$�put(C+(K � %1100)*5.25,K � %11) � � T=1 � 3 C=T:M=4*(4-T)-1 $�side( 4) .�side(- 1) 8�side( 16) B�side(- 4) L�side( 1) V�side(-16) `� j� t ~� �side(RGB) � � I=1 � T � C+=RGB � � SWP=1 � � � K=0 � M �$�put(C+(K � %1100)*5.25,K � %11) �� �� �� K=M � 0 � -1 �$�put(C+(K � %1100)*5.25,K � %11) �� �� �SWP=SWP � 3 � � � �put(C,T) (B1=(C>>5) � 1 2B2=(C>>4) � 1 <G1=(C>>3) � 1 FG2=(C>>2) � 1 PR1=(C>>1) � 1 ZR2=(C>>0) � 1 d1COL=T+4*(R2+2*(B2+2*(R1+2*(G2+2*(G1+2*B1))))) n?CTABLE=COL x CTABLE+=1 �� � �� �initass �� Q% 100000 � DAMP=8 � PROP=2 � DM1=80 � DM2=64 �BASE=180 �� CTABLE 256 ��coltable(CTABLE) �� PASS=0 � 2 � 2 � P%=Q% [OPT PASS .scr1 EQUD 148:EQUD -1 .scr2 EQUD 0 ".tab1 EQUD xtab ,.tab2 EQUD !tab1+64*80*8 6.ta1 EQUD 0 @.ta2 EQUD 0 J .snutab EQUD !tab1+64*80*8*2 T.wavtab EQUD !snutab+1024*4 ^.ex EQUD 1 h.ey EQUD 1 r.mo EQUD 2 |.time EQUD 0 �.choice EQUD %110 �&.name EQUS "Dump":EQUB �"0":EQUB 0 � .ALIGN �] � QQ%=P% ��ass �� �� � �� �reass �� PASS=0 � 2 � 2 � P%=QQ% ��ass � � & � �ass 0XW=((80-DM1) � 2)*4+4 :YW=((64-DM2) � 2)*4+4 DI =0 :SNUS =0 N)J =1 :X2 =1 :WAVS =1 : DX =1 XT =2 :M =2 b)O =3 :X =3 :POSI =3 : OC =3 l)W =4 :Z =4 :AMPL =4 : DY =4 vX1 =5 :FREQ =5 :NC =5 �)V =6 :Y =6 :PHA =6 : C1 =6 �)Y1 =7 :TIJD =7 :AD =7 : C2 =7 �SCR =8 :SOUR =8 �)COL =9 :C =9 :DEST =9 : C3 =9 �*TAB1 =10 :L =10 :CO =10 : C4 =10 �*TAB2 =11 :CT =11 :LL =11 : OK =11 � Y2 =12 :MASK =12 :NK =12 �H =13 �N =14 � [OPT PASS � .graph � ADR R0,scr1 � ADR R1,scr2 SWI "OS_ReadVduVariables" LDR SCR,scr2 MOV T,#320*128 ADD SCR,SCR,T * MOV MASK,#1<<10 4 SUB MASK,MASK,#1 > LDR SNUS,snutab H MOV J,#1280 R SUB J,J,#4 \ MOV COL,#255 f MOV LL,#0 p .loopgr z MUL T,J,FREQ � MOV T,T,ASR #8 � ADD T,T,PHA � � T,T,MASK � LDR T,[SNUS,T,LSL #2] � MUL L,T,AMPL � MOVS T,L,ASR #18 � ADC T,T,#0 � ADD T,T,T,LSL #2 � MOV T,T,LSL #6 � ADD T,T,J,LSR #2 � ADD T,SCR,T � MOV AD,#320 � CMP T,LL RSBHI AD,AD,#0 MOV L,T CMP LL,#0 $ CMPNE T,LL . ADDEQ LL,T,AD 8 .dal B STRB COL,[T],AD L CMP T,LL V BNE dal ` SUB LL,L,#1 j SUBS J,J,#4 t BNE loopgr ~MOV PC,R14 � � .start � STMFD 13!,{14} � MOV R0,#&10 � ADR R1,keypress � MOV R2,#0 � SWI "OS_Claim" � MOV R0,#&0E � MOV R1,#11 � SWI "OS_Byte" � MOV T,#(64-DM2) � 2 � ADD T,T,T,LSL #2 MOV T,T,LSL #7 ADD T,T,#((80-DM1) � 2)*8 LDR TAB1,tab1 ADD TAB1,TAB1,T ( STR TAB1,ta1 2 LDR TAB2,tab2 < ADD TAB2,TAB2,T F STR TAB2,ta2 P .loop Z MOV R0,#&70 d LDR R1,mo n SWI "OS_Byte" x LDR T,choice � TST T,#8+16 � BEQ ovr7 � SUB T,T,#8 � STR T,choice � MOV R0,#16 � SWI "OS_WriteC" � .ovr7 � ADR R0,scr1 � ADR R1,scr2 �! SWI "OS_ReadVduVariables" � LDR TAB1,ta1 � LDR TAB2,ta2 � STR TAB1,ta2 STR TAB2,ta1 LDR T,choice TST T,#32 " BEQ endcase , .case 6 BIC T,T,#32 @ STR T,choice J LDR TAB1,ta1 T BL fix_edges ^ LDR TAB1,ta2 h BL fix_edges r .endcase | BL mouse_control � BL sources � LDR T,choice � TST T,#2 � BLNE loose_edges � LDR SCR,scr2 � LDR T,choice � TST T,#1 � BNE else � BL simulation_display � LDR SCR,scr2 � LDR T,choice � TST T,#4 �! BLNE coulor_translation BAL endif .else MOV R0,#16 & SWI "OS_WriteC" 0 BL simulation : LDR SCR,scr2 D LDR TAB1,ta2 N LDR T,choice X TST T,#4 b BLEQ wiredisplay l BLNE wiredisplayct v .endif � LDR T,choice � TST T,#64 � BICNE T,T,#64 � STRNE T,choice � BLNE savescreen � .wait � SWI "OS_Mouse" � CMP T,#1 � BEQ wait � CMP T,#2 � BEQ end � MOV R0,#&13 � SWI "OS_Byte" LDR T,mo MOV R0,#&71 MOV R1,T � T,T,#3 * STR T,mo 4 SWI "OS_Byte" > BAL loop H.end R MOV R0,#&0D \ MOV R1,#11 f SWI "OS_Byte" p MOV R0,#&10 z ADR R1,keypress � MOV R2,#0 � SWI "OS_Release" �LDMFD 13!,{15} � � � .keypress � CMP R0,#11 � MOVNE PC,R14 � CMP R1,#1 � MOVNE PC,R14 � STMFD 13!,{0-3} � LDR R1,choice � CMP R2,#&30 �EQ R1,R1,#1 �REQ R1,R1,#16 CMP R2,#&29 $ �EQ R1,R1,#2 . �REQ R1,R1,#32 8 CMP R2,#&50 B �EQ R1,R1,#4 L CMP R2,#&3D V �REQ R1,R1,#64 ` STR R1,choice j LDMFD 13!,{0-3} tMOV PC,R14 ~ �.mouse_control � SWI "OS_Mouse" � CMP T,#4 � BNE skip � LDR X,ex � LDR Y,ey � CMP X,#0 � BEQ dont � MOV T,#80 � MUL T,Y,T � ADD T,T,X � MOV T,T,LSL #3 ADD T,T,TAB1 LDMIA T,{O,V} SUB O,O,V MOV V,#240<<16 ( STMIA T,{O,V} 2 .dont < MOV X,I,LSR #4 F MOV Y,J,LSR #4 P RSB Y,Y,#(DM2-1) Z CMP X,#(DM1-1) d BHS out n CMP X,#0 x BLS out � CMP Y,#(DM2-1) � BHS out � CMP Y,#0 � BLS out � STR X,ex � STR Y,ey � MOV PC,R14 � .out � MOV X,#0 � STR X,ex � MOV PC,R14 � .skip � LDR X,ex LDR Y,ey CMP X,#0 �Q PC,R14 " MOV T,#80 , MUL T,Y,T 6 ADD T,T,X @ MOV T,T,LSL #3 J SUB J,J,#(DM2 � 2)*16 T MOV J,J,LSL #18 ^ ADD J,J,#BASE<<20 h STR J,[TAB1,T] rMOV PC,R14 | �.savescreen �STMFD 13!,{0-3} � MOV R0,#2 � ADR R2,name � MOV R3,#0 � SWI "OS_SpriteOp" � LDRB R0,[R2,#4] � ADD R0,R0,#1 � STRB R0,[R2,#4] �LDMFD 13!,{0-3} �MOV PC,R14 � �.sources MOV C,#(64-DM2) � 2 ADD C,C,C,LSL #2 MOV C,C,LSL #7 & ADD C,C,#((80-DM1) � 2)*8 0 SUB TAB1,TAB1,C : MOV MASK,#1<<10 D SUB MASK,MASK,#1 N LDR SNUS,snutab X LDR WAVS,wavtab b LDR TIJD,time l ADD TIJD,TIJD,#1 v STR TIJD,time � .loopw �* LDMIA (WAVS)!,{POSI,AMPL,FREQ,PHA} � MUL T,TIJD,FREQ � ADD T,T,PHA � � T,T,MASK � LDR T,[SNUS,T,LSL #2] � MUL AMPL,T,AMPL � CMN POSI,#1 � ADD AMPL,AMPL,#BASE<<20 � STRNE AMPL,[TAB1,POSI] � BNE loopw � ADD TAB1,TAB1,C �MOV PC,R14 .fix_edges MOV I,#0 MOV J,#DM2 * MOV T,#8*80 4 MUL J,T,J > MOV T,#BASE<<20 H SUB T,T,#1<<19 R .horz_edge1 \ ADD W,TAB1,I f STR T,[W] p ADD W,W,J z STR T,[W,#-80*8] � ADD I,I,#8 � CMP I,#DM1*8 � BNE horz_edge1 � MOV I,#0 � .vert_edge1 � ADD W,TAB1,I � STR T,[W] � ADD W,W,#DM1*8 � STR T,[W,#-8] � ADD I,I,#80*8 � CMP I,J � BNE vert_edge1 �MOV PC,R14 .loose_edges MOV I,#0 $ MOV J,#DM2 . MOV T,#8*80 8 MUL J,T,J B .horz_edge2 L ADD W,TAB1,I V LDR T,[W,#80*8] ` STR T,[W] j ADD W,W,J t LDR T,[W,#-2*80*8] ~ STR T,[W,#-80*8] � ADD I,I,#8 � CMP I,#DM1*8 � BNE horz_edge2 � MOV I,#0 � .vert_edge2 � ADD W,TAB1,I � LDR T,[W,#+8] � STR T,[W] � ADD W,W,#DM1*8 � LDR T,[W,#-16] � STR T,[W,#-8] � ADD I,I,#80*8 CMP I,J BNE vert_edge2 MOV PC,R14 (.tmp1 EQUD 0:EQUD 0:EQUD 0 2.simulation_display < MOV X,#XW F MOV Y,#YW P ADD T,Y,Y,LSL #2 Z ADD T,X,T,LSL #6 d ADD SCR,SCR,T n MOV J,#DM2-2 x ADD TAB1,TAB1,#80*8 � ADD TAB2,TAB2,#80*8 � .loopy � MOV I,#DM1-2 � ADD TAB1,TAB1,#1<<3 � ADD TAB2,TAB2,#1<<3 � ADR W,tmp1 � STMIA W,{J,13,14} � MOV N,#255 � LDR X1,[TAB1,#-8] � LDR Y1,[TAB1] � LDR Y2,[TAB1,#80*8] � ADD TAB1,TAB1,#4 � .loopx MOV O,X1 MOV X1,Y1 MOV X2,Y2 " LDR W,[TAB1,#-80*8-4] ,! LDR Y2,[TAB1,#80*8+8-4] 6 LDMIA (TAB1)!,{V,Y1} @ ADD O,O,Y1 J ADD O,O,W T ADD O,O,X2 ^ SUB O,O,X1,LSL #2 h ADD V,V,O,ASR #PROP r SUB V,V,V,ASR #DAMP | ADD O,X1,V � STMIA (TAB2)!,{O,V} � SUB DX,X2,X1 � SUB DY,Y2,Y1 � � C,N,X1,LSR #20 � ADD H,X1,Y1 � ADD M,H,X1,LSL #1 � � M,N,M,LSR #22 � ADD C,C,M,LSL #8 � � M,N,H,LSR #21 � ADD C,C,M,LSL #16 � ADD M,H,Y1,LSL #1 � � M,N,M,LSR #22 � ADD C,C,M,LSL #24 STR COL,[SCR],#4 ADD X,X1,DX,ASR #2 ADD Y,Y1,DY,ASR #2 & � C,N,X,LSR #20 0 ADD H,X,Y : ADD M,H,X,LSL #1 D � M,N,M,LSR #22 N ADD C,C,M,LSL #8 X � M,N,H,LSR #21 b ADD C,C,M,LSL #16 l ADD M,H,Y,LSL #1 v � M,N,M,LSR #22 � ADD C,C,M,LSL #24 � STR COL,[SCR,#320-4] � ADD X,X,DX,ASR #2 � ADD Y,Y,DY,ASR #2 � � C,N,X,LSR #20 � ADD H,X,Y � ADD M,H,X,LSL #1 � � M,N,M,LSR #22 � ADD C,C,M,LSL #8 � � M,N,H,LSR #21 � ADD C,C,M,LSL #16 � ADD M,H,Y,LSL #1 � � M,N,M,LSR #22 ! ADD C,C,M,LSL #24 ! STR COL,[SCR,#640-4] ! ADD X,X,DX,ASR #2 ! ADD Y,Y,DY,ASR #2 !* � C,N,X,LSR #20 !4 ADD H,X,Y !> ADD M,H,X,LSL #1 !H � M,N,M,LSR #22 !R ADD C,C,M,LSL #8 !\ � M,N,H,LSR #21 !f ADD C,C,M,LSL #16 !p ADD M,H,Y,LSL #1 !z � M,N,M,LSR #22 !� ADD C,C,M,LSL #24 !� STR COL,[SCR,#960-4] !� SUBS I,I,#1 !� BNE loopx !�" ADD SCR,SCR,#320-(DM1-2)*4 !� ADD SCR,SCR,#3*320 !� SUB TAB1,TAB1,#4 !�$ ADD TAB1,TAB1,#(80-DM1+1)<<3 !�$ ADD TAB2,TAB2,#(80-DM1+1)<<3 !� ADR W,tmp1 !� LDMIA W,{J,13,14} !� SUBS J,J,#1 !� BNE loopy "MOV PC,R14 " ".tmp2 EQUD 0:EQUD 0:EQUD 0 "$.simulation ". MOV J,#DM2-2 "8 ADD TAB1,TAB1,#80*8 "B ADD TAB2,TAB2,#80*8 "L .koopy "V MOV I,#DM1-2 "` ADD TAB1,TAB1,#1<<3 "j ADD TAB2,TAB2,#1<<3 "t ADR W,tmp2 "~ STMIA W,{J,13,14} "� LDR X1,[TAB1,#-8] "� LDR Y1,[TAB1] "� ADD TAB1,TAB1,#4 "� .koopx "� MOV O,X1 "� MOV X1,Y1 "� LDR W,[TAB1,#-80*8-4] "� LDR X2,[TAB1,#80*8-4] "� LDMIA (TAB1)!,{V,Y1} "� ADD O,O,Y1 "� ADD O,O,W "� ADD O,O,X2 # SUB O,O,X1,LSL #2 # SUB V,V,V,ASR #DAMP # ADD V,V,O,ASR #PROP # ADD O,X1,V #( STMIA (TAB2)!,{O,V} #2 SUBS I,I,#1 #< BNE koopx #F SUB TAB1,TAB1,#4 #P$ ADD TAB1,TAB1,#(80-DM1+1)<<3 #Z$ ADD TAB2,TAB2,#(80-DM1+1)<<3 #d ADR W,tmp2 #n LDMIA W,{J,13,14} #x SUBS J,J,#1 #� BNE koopy #�MOV PC,R14 #� #�.reciprocal #� �fill #�.recipraddr EQUD reciprocal #�.tmp5 EQUD 0 #�.wiredisplay #� MOV COL,#255 #� MOV J,#DM2-2 #� LDR AD,recipraddr #� LDR CT,ctabled #� ADD TAB1,TAB1,#80*8 $ MOV T,#1 $ MOV Z,T,LSL #2 $ LDR Z,[AD,Z,LSL #2] $" MOV X,#4 $, SUB X,X,#DM1*2*1.5 $6 MUL X,Z,X $@ STR X,tmp5 $J .noopy $T MOV I,#DM1-2 $^ ADD TAB1,TAB1,#1<<3 $h MOV Z,J,LSL #2 $r LDR Z,[AD,Z,LSL #2] $| MOV X,#4 $� SUB X,X,#DM1*2*1.5 $� MUL X,Z,X $� LDR T,tmp5 $� SUB X,X,T $� .noopx $� LDMIA (TAB1)!,{X1,V} $� SUB Y,X1,#BASE<<20 $� MOV Y,Y,ASR #21 $� ADD Y,Y,J,LSL #2 $� MUL Y,Z,Y $� MOV Y,Y,ASR #9 $� ADD Y,Y,#60 $� RSB Y,Y,#255 % ADD T,Y,Y,LSL #2 % MOV T,T,LSL #6 % ADD T,T,X,ASR #9 %& CMP T,#320*256 %0 STRLOB COL,[T,SCR]! %: ADD X,X,Z,LSL #2 %D SUBS I,I,#1 %N BNE noopx %X$ ADD TAB1,TAB1,#(80-DM1+1)<<3 %b SUBS J,J,#1 %l BNE noopy %vMOV PC,R14 %� %�.wiredisplayct %� MOV J,#DM2-2 %� LDR AD,recipraddr %� LDR CT,ctabled %� ADD TAB1,TAB1,#80*8 %� MOV T,#1 %� MOV Z,T,LSL #2 %� LDR Z,[AD,Z,LSL #2] %� MOV X,#4 %� SUB X,X,#DM1*2*1.5 %� MUL X,Z,X %� STR X,tmp5 & .moopy & MOV I,#DM1-2 & ADD TAB1,TAB1,#1<<3 & MOV Z,J,LSL #2 &* LDR Z,[AD,Z,LSL #2] &4 MOV X,#4 &> SUB X,X,#DM1*2*1.5 &H MUL X,Z,X &R LDR T,tmp5 &\ SUB X,X,T &f .moopx &p LDMIA (TAB1)!,{X1,V} &z SUB Y,X1,#BASE<<20 &� MOV Y,Y,ASR #21 &� ADD Y,Y,J,LSL #2 &� MUL Y,Z,Y &� MOV Y,Y,ASR #9 &� ADD Y,Y,#60 &� RSB Y,Y,#255 &� ADD T,Y,Y,LSL #2 &� MOV T,T,LSL #6 &� ADD T,T,X,ASR #9 &� CMP T,#320*256 &� � X1,X1,#255<<20 &�$ LDRLOB COL,[CT,X1,LSR #20] &� STRLOB COL,[T,SCR]! ' ADD X,X,Z,LSL #2 ' SUBS I,I,#1 ' BNE moopx '$$ ADD TAB1,TAB1,#(80-DM1+1)<<3 '. SUBS J,J,#1 '8 BNE moopy 'BMOV PC,R14 'L 'V.ctabled EQUD CTABLE '`.tmp4 EQUD 0 'j.coulor_translation 't STR H,tmp4 '~ MOV X,#XW '� MOV Y,#YW '� ADD T,Y,Y,LSL #2 '� ADD T,X,T,LSL #6 '� ADD SCR,SCR,T '� LDR W,ctabled '� MOV H,#255 '� MVN C4,#1 '� MOV J,#4*(DM2-2) '� .glp2 '� MOV I,#DM1-2 '� .glp1 '� LDMIA SCR,{OC,OK} ( � C1,H,OC ( � C2,H,OC,LSR #8 ( � C3,H,OC,LSR #16 ( CMP C4,C1 (( � C4,H,OC,LSR #24 (2 LDRNEB T,[W,C1] (< MOV NC,T (F CMP C1,C2 (P LDRNEB T,[W,C2] (Z ADD NC,NC,T,LSL #8 (d CMP C2,C3 (n LDRNEB T,[W,C3] (x ADD NC,NC,T,LSL #16 (� CMP C3,C4 (� LDRNEB T,[W,C4] (� ADD NC,NC,T,LSL #24 (� � C1,H,OK (� � C2,H,OK,LSR #8 (� � C3,H,OK,LSR #16 (� CMP C4,C1 (� � C4,H,OK,LSR #24 (� LDRNEB T,[W,C1] (� MOV NK,T (� CMP C1,C2 (� LDRNEB T,[W,C2] (� ADD NK,NK,T,LSL #8 ) CMP C2,C3 ) LDRNEB T,[W,C3] ) ADD NK,NK,T,LSL #16 )" CMP C3,C4 ), LDRNEB T,[W,C4] )6 ADD NK,NK,T,LSL #24 )@ STMIA (SCR)!,{NC,NK} )J SUBS I,I,#2 )T BHI glp1 )^) ADD SCR,SCR,#320-((DM1+1)��1)*4+8 )h SUBS J,J,#1 )r BHI glp2 )| LDR H,tmp4 )�MOV PC,R14 )� )� .init )� ADR W,xtab )� MOV I,#64*80*2 )� MOV T,#BASE<<20 )� SUB T,T,#1<<19 )� MOV V,#0 )� .lop2 )� STMIA (W)!,{T,V} )� SUBS I,I,#1 )� BNE lop2 )�MOV PC,R14 * *.newbase * ADR W,xtab *& MOV I,#64*80*2 *0 .lop2 *: LDMIA W,{T,V} *D SUB T,T,#BASE<<20 *N ADD T,T,J,LSL #20 *X STMIA (W)!,{T,V} *b SUBS I,I,#1 *l BNE lop2 *vMOV PC,R14 *� *�.scrn1 EQUD 148:EQUD -1 *�.scrn2 EQUD 0 *�.incopy *� ADR R0,scrn1 *� ADR R1,scrn2 *� SWI "OS_ReadVduVariables" *� LDR DEST,scrn2 *� ADR SOUR,xtab *� MOV CO,#320*256/4/8/4 *� .loopi *� LDMIA (SOUR)!,{0-7} *� STMIA (DEST)!,{0-7} + LDMIA (SOUR)!,{0-7} + STMIA (DEST)!,{0-7} + LDMIA (SOUR)!,{0-7} + STMIA (DEST)!,{0-7} +* LDMIA (SOUR)!,{0-7} +4 STMIA (DEST)!,{0-7} +> SUBS CO,CO,#1 +H BNE loopi +RMOV PC,R14 +\ +f.outcopy +p ADR R0,scrn1 +z ADR R1,scrn2 +� SWI "OS_ReadVduVariables" +� ADR DEST,xtab +� LDR SOUR,scrn2 +� MOV CO,#320*256/4/8 +� .loopo +� LDMIA (SOUR)!,{0-7} +� STMIA (DEST)!,{0-7} +� SUBS CO,CO,#1 +� BNE loopo +�MOV PC,R14 +� +� .xtab +�] ,� , ,� �fill ,$� I,F,A ,.A=4*(DM1-4) ,8 F=320*2^9 ,B� I=1 � 256 ,L [OPT PASS ,VEQUD F/(I+A) ,`] ,j� ,t="" �
00000000 0d 00 0a 10 f4 20 3e 21 52 75 6e 69 6d 61 67 65 |..... >!Runimage| 00000010 0d 00 14 13 f4 20 57 61 76 65 73 69 6d 75 6c 61 |..... Wavesimula| 00000020 74 6f 72 0d 00 1e 1a f4 20 62 79 20 4a 61 6e 20 |tor..... by Jan | 00000030 56 6c 69 65 74 69 6e 63 6b 20 28 63 29 0d 00 28 |Vlietinck (c)..(| 00000040 1b ee 20 85 3a f6 3a f1 20 22 20 61 74 20 6c 69 |.. .:.:. " at li| 00000050 6e 65 20 22 3b 9e 3a e0 0d 00 32 09 eb 31 33 3a |ne ";.:...2..13:| 00000060 87 0d 00 3c 0c f2 69 6e 69 74 61 73 73 0d 00 46 |...<..initass..F| 00000070 09 f2 69 6e 69 74 0d 00 50 09 f2 6d 61 69 6e 0d |..init..P..main.| 00000080 00 5a 05 e0 0d 00 64 04 0d 00 6e 0b dd 20 f2 6d |.Z....d...n.. .m| 00000090 61 69 6e 0d 00 78 05 f5 0d 00 82 0d f2 69 6e 69 |ain..x.......ini| 000000a0 74 6d 65 6e 75 0d 00 8c 05 f5 0d 00 96 13 f2 6d |tmenu..........m| 000000b0 65 6e 75 28 4d 45 4e 55 2c 57 49 4e 29 0d 00 a0 |enu(MENU,WIN)...| 000000c0 11 4c 58 25 3d 58 25 3a 4c 59 25 3d 59 25 0d 00 |.LX%=X%:LY%=Y%..| 000000d0 aa 0d c8 8e 20 4d 45 4e 55 20 ca 0d 00 b4 07 c9 |.... MENU ......| 000000e0 20 30 0d 00 be 0c c8 8e 20 57 49 4e 20 ca 0d 00 | 0...... WIN ...| 000000f0 c8 1f c9 20 31 3a f2 72 65 69 6e 69 74 3a f2 61 |... 1:.reinit:.a| 00000100 75 74 6f 3a c8 97 20 b8 20 20 30 2c 30 0d 00 d2 |uto:.. . 0,0...| 00000110 20 c9 20 32 3a f2 72 65 69 6e 69 74 3a f2 64 65 | . 2:.reinit:.de| 00000120 66 69 6e 65 3a c8 97 20 b8 20 30 2c 30 0d 00 dc |fine:.. . 0,0...| 00000130 30 c9 20 33 3a f2 72 65 69 6e 69 74 3a 21 65 78 |0. 3:.reinit:!ex| 00000140 3d 44 4d 31 2f 32 3a 21 65 79 3d 44 4d 32 2f 32 |=DM1/2:!ey=DM2/2| 00000150 3a c8 97 20 b8 20 36 34 30 2c 35 31 32 0d 00 e6 |:.. . 640,512...| 00000160 17 58 3d 28 34 30 2d 28 44 4d 31 20 83 20 32 29 |.X=(40-(DM1 . 2)| 00000170 29 2a 31 36 0d 00 f0 17 59 3d 28 33 32 2d 28 44 |)*16....Y=(32-(D| 00000180 4d 32 20 83 20 32 29 29 2a 31 36 0d 00 fa 0c c8 |M2 . 2))*16.....| 00000190 97 20 b8 20 58 2c 59 0d 01 04 09 f2 77 61 69 74 |. . X,Y.....wait| 000001a0 0d 01 0e 0d c9 20 34 3a f2 77 61 69 74 0d 01 18 |..... 4:.wait...| 000001b0 05 cb 0d 01 22 07 c9 20 31 0d 01 2c 0c c8 8e 20 |....".. 1..,... | 000001c0 57 49 4e 20 ca 0d 01 36 22 c9 20 31 3a 43 48 4f |WIN ...6". 1:CHO| 000001d0 49 43 45 3d 43 48 4f 49 43 45 20 82 20 31 3a f2 |ICE=CHOICE . 1:.| 000001e0 6d 61 72 6b 28 31 29 0d 01 40 22 c9 20 32 3a 43 |mark(1)..@". 2:C| 000001f0 48 4f 49 43 45 3d 43 48 4f 49 43 45 20 82 20 32 |HOICE=CHOICE . 2| 00000200 3a f2 6d 61 72 6b 28 32 29 0d 01 4a 22 c9 20 33 |:.mark(2)..J". 3| 00000210 3a 43 48 4f 49 43 45 3d 43 48 4f 49 43 45 20 82 |:CHOICE=CHOICE .| 00000220 20 34 3a f2 6d 61 72 6b 28 33 29 0d 01 54 05 cb | 4:.mark(3)..T..| 00000230 0d 01 5e 07 c9 20 32 0d 01 68 0c c8 8e 20 57 49 |..^.. 2..h... WI| 00000240 4e 20 ca 0d 01 72 15 c9 20 31 3a 44 4d 31 3d a4 |N ...r.. 1:DM1=.| 00000250 69 6e 70 75 74 28 31 29 0d 01 7c 15 c9 20 32 3a |input(1)..|.. 2:| 00000260 44 4d 32 3d a4 69 6e 70 75 74 28 32 29 0d 01 86 |DM2=.input(2)...| 00000270 19 c9 20 33 3a 44 41 4d 50 3d 31 31 2d a4 69 6e |.. 3:DAMP=11-.in| 00000280 70 75 74 28 33 29 0d 01 90 19 c9 20 34 3a 50 52 |put(3)..... 4:PR| 00000290 4f 50 3d 31 32 2d a4 69 6e 70 75 74 28 34 29 0d |OP=12-.input(4).| 000002a0 01 9a 26 c9 20 35 3a 42 25 3d a4 69 6e 70 75 74 |..&. 5:B%=.input| 000002b0 28 35 29 3a d6 20 6e 65 77 62 61 73 65 3a 42 41 |(5):. newbase:BA| 000002c0 53 45 3d 42 25 0d 01 a4 05 cb 0d 01 ae 05 cb 0d |SE=B%...........| 000002d0 01 b8 0c fd 20 4d 45 4e 55 3d 30 0d 01 c2 24 e7 |.... MENU=0...$.| 000002e0 20 52 45 43 4f 4d 50 49 4c 45 20 8c 20 f2 72 65 | RECOMPILE . .re| 000002f0 61 73 73 3a 52 45 43 4f 4d 50 49 4c 45 3d a3 0d |ass:RECOMPILE=..| 00000300 01 cc 15 e7 20 57 49 4e 3c 3e 34 20 8c 20 d6 20 |.... WIN<>4 . . | 00000310 69 6e 69 74 0d 01 d6 18 c8 91 20 28 58 57 2d 34 |init...... (XW-4| 00000320 29 2a 34 2c 28 59 57 2d 34 29 2a 34 0d 01 e0 29 |)*4,(YW-4)*4...)| 00000330 e7 20 28 43 48 4f 49 43 45 20 80 20 34 29 3d 30 |. (CHOICE . 4)=0| 00000340 20 8c 20 43 48 4f 49 43 45 3d 43 48 4f 49 43 45 | . CHOICE=CHOICE| 00000350 20 84 20 33 32 0d 01 ea 15 21 63 68 6f 69 63 65 | . 32....!choice| 00000360 3d 43 48 4f 49 43 45 2b 31 36 0d 01 f4 0b d6 20 |=CHOICE+16..... | 00000370 73 74 61 72 74 0d 01 fe 0a c8 91 20 30 2c 30 0d |start...... 0,0.| 00000380 02 08 07 fd 20 30 0d 02 12 05 e1 0d 02 1c 04 0d |.... 0..........| 00000390 02 26 0f dd 20 a4 69 6e 70 75 74 28 49 29 0d 02 |.&.. .input(I)..| 000003a0 30 0b ea 20 41 2c 58 2c 59 0d 02 3a 07 ea 20 85 |0.. A,X,Y..:.. .| 000003b0 0d 02 44 0c 2a 46 58 20 31 35 2c 30 0d 02 4e 07 |..D.*FX 15,0..N.| 000003c0 41 3d 31 0d 02 58 15 58 3d 57 49 4e 44 28 32 2c |A=1..X.X=WIND(2,| 000003d0 30 29 2f 33 32 2b 31 31 0d 02 62 17 59 3d 33 31 |0)/32+11..b.Y=31| 000003e0 2d 57 49 4e 44 28 32 2c 31 29 2f 33 32 2b 49 0d |-WIND(2,1)/32+I.| 000003f0 02 6c 05 ee 0d 02 76 11 f1 20 8a 58 2c 59 29 20 |.l....v.. .X,Y) | 00000400 22 20 20 20 22 0d 02 80 12 ef 20 32 38 2c 58 2c |" "..... 28,X,| 00000410 59 2c 58 2b 33 2c 59 0d 02 8a 1b ef 20 32 33 2c |Y,X+3,Y..... 23,| 00000420 31 36 2c 38 2c 30 2c 30 2c 30 2c 30 2c 30 2c 30 |16,8,0,0,0,0,0,0| 00000430 2c 30 0d 02 94 17 e7 20 41 3c 3e 30 20 8c 20 ee |,0..... A<>0 . .| 00000440 20 85 20 ea 20 41 3d 2d 31 0d 02 9e 0d e8 20 8a | . . A=-1..... .| 00000450 58 2c 59 29 20 41 0d 02 a8 1b ef 20 32 33 2c 31 |X,Y) A..... 23,1| 00000460 36 2c 30 2c 30 2c 30 2c 30 2c 30 2c 30 2c 30 2c |6,0,0,0,0,0,0,0,| 00000470 30 0d 02 b2 08 ef 20 32 36 0d 02 bc 0c e7 20 41 |0..... 26..... A| 00000480 3d 2d 31 20 8c 0d 02 c6 12 41 3d 53 45 54 54 49 |=-1 .....A=SETTI| 00000490 4e 47 28 49 2d 31 29 0d 02 d0 11 f1 20 8a 58 2c |NG(I-1)..... .X,| 000004a0 59 29 20 22 20 20 20 22 0d 02 da 10 f1 20 8a 58 |Y) " "..... .X| 000004b0 2c 59 29 20 c3 28 41 29 0d 02 e4 05 cc 0d 02 ee |,Y) .(A)........| 000004c0 2d e7 20 41 3c 53 45 54 52 41 4e 47 45 28 30 2c |-. A<SETRANGE(0,| 000004d0 49 2d 31 29 20 84 20 41 3e 53 45 54 52 41 4e 47 |I-1) . A>SETRANG| 000004e0 45 28 31 2c 49 2d 31 29 20 8c 0d 02 f8 3f e7 20 |E(1,I-1) ....?. | 000004f0 41 3c 53 45 54 52 41 4e 47 45 28 30 2c 49 2d 31 |A<SETRANGE(0,I-1| 00000500 29 20 8c 20 41 3d 53 45 54 52 41 4e 47 45 28 30 |) . A=SETRANGE(0| 00000510 2c 49 2d 31 29 20 8b 20 41 3d 53 45 54 52 41 4e |,I-1) . A=SETRAN| 00000520 47 45 28 31 2c 49 2d 31 29 0d 03 02 05 cd 0d 03 |GE(1,I-1).......| 00000530 0c 11 f1 20 8a 58 2c 59 29 20 22 20 20 20 22 0d |... .X,Y) " ".| 00000540 03 16 10 f1 20 8a 58 2c 59 29 20 c3 28 41 29 0d |.... .X,Y) .(A).| 00000550 03 20 12 53 45 54 54 49 4e 47 28 49 2d 31 29 3d |. .SETTING(I-1)=| 00000560 41 0d 03 2a 0f 52 45 43 4f 4d 50 49 4c 45 3d b9 |A..*.RECOMPILE=.| 00000570 0d 03 34 05 cd 0d 03 3e 05 87 0d 03 48 07 f7 20 |..4....>....H.. | 00000580 85 0d 03 52 09 f2 77 61 69 74 0d 03 5c 06 3d 41 |...R..wait..\.=A| 00000590 0d 03 66 04 0d 03 70 0b dd 20 f2 77 61 69 74 0d |..f...p.. .wait.| 000005a0 03 7a 17 c8 95 20 5a 25 3a c8 97 20 58 25 2c 59 |.z... Z%:.. X%,Y| 000005b0 25 2c 5a 25 3a ce 0d 03 84 05 e1 0d 03 8e 04 0d |%,Z%:...........| 000005c0 03 98 0e dd 20 f2 6d 61 72 6b 28 49 29 0d 03 a2 |.... .mark(I)...| 000005d0 24 ec 20 57 49 4e 44 28 31 2c 30 29 2d 33 36 2c |$. WIND(1,0)-36,| 000005e0 57 49 4e 44 28 31 2c 31 29 2d 33 32 2a 49 2b 31 |WIND(1,1)-32*I+1| 000005f0 36 0d 03 ac 19 df 20 42 59 20 20 38 2c 2d 38 3a |6..... BY 8,-8:| 00000600 f0 20 33 33 2c 31 36 2c 31 36 0d 03 b6 09 f2 77 |. 33,16,16.....w| 00000610 61 69 74 0d 03 c0 05 e1 0d 03 ca 04 0d 03 d4 0d |ait.............| 00000620 dd 20 f2 6d 61 72 6b 65 72 0d 03 de 12 43 48 4f |. .marker....CHO| 00000630 49 43 45 3d 21 63 68 6f 69 63 65 0d 03 e8 0d e3 |ICE=!choice.....| 00000640 20 49 3d 31 20 b8 20 33 0d 03 f2 22 e7 20 28 43 | I=1 . 3...". (C| 00000650 48 4f 49 43 45 20 80 20 28 31 3c 3c 28 49 2d 31 |HOICE . (1<<(I-1| 00000660 29 29 29 20 3c 3e 20 30 20 8c 0d 03 fc 24 ec 20 |))) <> 0 ....$. | 00000670 57 49 4e 44 28 31 2c 30 29 2d 33 36 2c 57 49 4e |WIND(1,0)-36,WIN| 00000680 44 28 31 2c 31 29 2d 33 32 2a 49 2b 31 36 0d 04 |D(1,1)-32*I+16..| 00000690 06 19 df 20 42 59 20 20 38 2c 2d 38 3a f0 20 33 |... BY 8,-8:. 3| 000006a0 33 2c 31 36 2c 31 36 0d 04 10 05 cd 0d 04 1a 05 |3,16,16.........| 000006b0 ed 0d 04 24 05 e1 0d 04 2e 04 0d 04 38 14 dd 20 |...$........8.. | 000006c0 f2 70 72 69 6e 74 73 65 74 74 69 6e 67 73 0d 04 |.printsettings..| 000006d0 42 0b ea 20 49 2c 58 2c 59 0d 04 4c 0d e3 20 49 |B.. I,X,Y..L.. I| 000006e0 3d 31 20 b8 20 35 0d 04 56 15 58 3d 57 49 4e 44 |=1 . 5..V.X=WIND| 000006f0 28 32 2c 30 29 2f 33 32 2b 31 31 0d 04 60 17 59 |(2,0)/32+11..`.Y| 00000700 3d 33 31 2d 57 49 4e 44 28 32 2c 31 29 2f 33 32 |=31-WIND(2,1)/32| 00000710 2b 49 0d 04 6a 1b f1 20 8a 58 2c 59 29 20 c3 28 |+I..j.. .X,Y) .(| 00000720 53 45 54 54 49 4e 47 28 49 2d 31 29 29 0d 04 74 |SETTING(I-1))..t| 00000730 05 ed 0d 04 7e 05 e1 0d 04 88 04 0d 04 92 0f dd |....~...........| 00000740 20 f2 69 6e 69 74 6d 65 6e 75 0d 04 9c 0e e6 20 | .initmenu..... | 00000750 36 33 20 c8 9c 20 36 34 0d 04 a6 05 db 0d 04 b0 |63 .. 64........| 00000760 32 c8 99 20 22 4f 53 5f 53 70 72 69 74 65 4f 70 |2.. "OS_SpriteOp| 00000770 22 2c 32 35 36 2b 33 34 2c 73 70 72 69 74 65 2c |",256+34,sprite,| 00000780 22 32 44 57 61 76 65 73 22 2c 30 2c 38 34 30 0d |"2DWaves",0,840.| 00000790 04 ba 07 ef 20 35 0d 04 c4 19 41 24 3d 22 42 79 |.... 5....A$="By| 000007a0 20 4a 61 6e 20 56 6c 69 65 74 69 6e 63 6b 22 0d | Jan Vlietinck".| 000007b0 04 ce 0e e3 20 49 3d 31 20 b8 20 31 36 0d 04 d8 |.... I=1 . 16...| 000007c0 34 ec 20 31 36 2a 28 49 2b 35 29 2b b5 28 49 2a |4. 16*(I+5)+.(I*| 000007d0 af 2f 38 29 2a 33 32 2c 31 30 32 34 2d 33 32 2a |./8)*32,1024-32*| 000007e0 28 31 30 2b 49 29 3a f1 20 c1 41 24 2c 49 2c 31 |(10+I):. .A$,I,1| 000007f0 29 0d 04 e2 05 ed 0d 04 ec 09 ef 20 34 3a 87 0d |).......... 4:..| 00000800 04 f6 0f e6 20 36 33 20 c8 9c 20 32 35 35 0d 05 |.... 63 .. 255..| 00000810 00 10 58 31 3d 57 49 4e 44 28 32 2c 30 29 0d 05 |..X1=WIND(2,0)..| 00000820 0a 1a 59 31 3d 57 49 4e 44 28 32 2c 31 29 2d 57 |..Y1=WIND(2,1)-W| 00000830 49 4e 44 28 32 2c 33 29 0d 05 14 10 57 31 3d 57 |IND(2,3)....W1=W| 00000840 49 4e 44 28 30 2c 32 29 0d 05 1e 18 48 31 3d 57 |IND(0,2)....H1=W| 00000850 49 4e 44 28 30 2c 31 29 2d 59 31 2b 32 2a 33 32 |IND(0,1)-Y1+2*32| 00000860 0d 05 28 1e c8 93 20 58 31 2d 34 38 2c 59 31 2d |..(... X1-48,Y1-| 00000870 33 32 2c 57 31 2b 39 36 2c 48 31 2b 36 34 0d 05 |32,W1+96,H1+64..| 00000880 32 12 58 3d 57 49 4e 44 28 30 2c 30 29 2f 33 32 |2.X=WIND(0,0)/32| 00000890 0d 05 3c 15 59 3d 33 32 2d 57 49 4e 44 28 30 2c |..<.Y=32-WIND(0,| 000008a0 31 29 2f 33 32 0d 05 46 17 f1 20 8a 58 2c 59 2d |1)/32..F.. .X,Y-| 000008b0 32 29 20 22 41 43 54 49 4f 4e 53 22 0d 05 50 14 |2) "ACTIONS"..P.| 000008c0 f1 20 8a 58 2c 59 29 20 20 20 22 41 75 74 6f 22 |. .X,Y) "Auto"| 000008d0 0d 05 5a 19 f1 20 8a 58 2c 59 2b 31 29 20 22 53 |..Z.. .X,Y+1) "S| 000008e0 65 6d 69 2d 61 75 74 6f 22 0d 05 64 16 f1 20 8a |emi-auto"..d.. .| 000008f0 58 2c 59 2b 32 29 20 22 4d 61 6e 75 61 6c 22 0d |X,Y+2) "Manual".| 00000900 05 6e 18 f1 20 8a 58 2c 59 2b 33 29 20 22 43 6f |.n.. .X,Y+3) "Co| 00000910 6e 74 69 6e 75 65 22 0d 05 78 12 58 3d 57 49 4e |ntinue"..x.X=WIN| 00000920 44 28 31 2c 30 29 2f 33 32 0d 05 82 15 59 3d 33 |D(1,0)/32....Y=3| 00000930 32 2d 57 49 4e 44 28 31 2c 31 29 2f 33 32 0d 05 |2-WIND(1,1)/32..| 00000940 8c 17 f1 20 8a 58 2c 59 2d 32 29 20 22 4f 50 54 |... .X,Y-2) "OPT| 00000950 49 4f 4e 53 22 0d 05 96 1a f1 20 8a 58 2c 59 29 |IONS"..... .X,Y)| 00000960 20 20 20 22 50 72 6f 6a 65 63 74 69 6f 6e 22 0d | "Projection".| 00000970 05 a0 1b f1 20 8a 58 2c 59 2b 31 29 20 22 4c 6f |.... .X,Y+1) "Lo| 00000980 6f 73 65 20 45 64 67 65 73 22 0d 05 aa 1d f1 20 |ose Edges"..... | 00000990 8a 58 2c 59 2b 32 29 20 22 43 6f 6c 6f 75 72 20 |.X,Y+2) "Colour | 000009a0 4c 6f 6f 6b 75 70 22 0d 05 b4 12 58 3d 57 49 4e |Lookup"....X=WIN| 000009b0 44 28 32 2c 30 29 2f 33 32 0d 05 be 15 59 3d 33 |D(2,0)/32....Y=3| 000009c0 32 2d 57 49 4e 44 28 32 2c 31 29 2f 33 32 0d 05 |2-WIND(2,1)/32..| 000009d0 c8 18 f1 20 8a 58 2c 59 2d 32 29 20 22 53 45 54 |... .X,Y-2) "SET| 000009e0 54 49 4e 47 53 22 0d 05 d2 15 f1 20 8a 58 2c 59 |TINGS"..... .X,Y| 000009f0 29 20 20 20 22 57 69 64 74 68 22 0d 05 dc 16 f1 |) "Width".....| 00000a00 20 8a 58 2c 59 2b 31 29 20 22 48 65 69 67 68 74 | .X,Y+1) "Height| 00000a10 22 0d 05 e6 19 f1 20 8a 58 2c 59 2b 32 29 20 22 |"..... .X,Y+2) "| 00000a20 56 69 73 63 6f 73 69 74 79 22 0d 05 f0 18 f1 20 |Viscosity"..... | 00000a30 8a 58 2c 59 2b 33 29 20 22 54 69 6d 65 73 74 65 |.X,Y+3) "Timeste| 00000a40 70 22 0d 05 fa 1a f1 20 8a 58 2c 59 2b 34 29 20 |p"..... .X,Y+4) | 00000a50 22 42 61 73 65 43 6f 6c 6f 75 72 22 0d 06 04 0b |"BaseColour"....| 00000a60 f2 6d 61 72 6b 65 72 0d 06 0e 12 f2 70 72 69 6e |.marker.....prin| 00000a70 74 73 65 74 74 69 6e 67 73 0d 06 18 10 c8 97 20 |tsettings...... | 00000a80 b8 20 4c 58 25 2c 4c 59 25 0d 06 22 09 4d 3d 21 |. LX%,LY%..".M=!| 00000a90 6d 6f 0d 06 2c 19 c8 96 3a c8 99 20 22 4f 53 5f |mo..,...:.. "OS_| 00000aa0 42 79 74 65 22 2c 26 37 31 2c 4d 0d 06 36 11 4d |Byte",&71,M..6.M| 00000ab0 3d 4d 20 82 20 33 3a 21 6d 6f 3d 4d 0d 06 40 09 |=M . 3:!mo=M..@.| 00000ac0 57 49 4e 3d 30 0d 06 4a 05 e1 0d 06 54 04 0d 06 |WIN=0..J....T...| 00000ad0 5e 19 dd 20 f2 6d 65 6e 75 28 f8 20 4d 45 4e 55 |^.. .menu(. MENU| 00000ae0 2c f8 20 57 49 4e 29 0d 06 68 07 ea 20 52 0d 06 |,. WIN)..h.. R..| 00000af0 72 0a e6 20 34 2c 36 33 0d 06 7c 17 c8 97 20 c8 |r.. 4,63..|... .| 00000b00 93 20 58 31 2c 59 31 2c 57 31 2d 34 2c 48 31 0d |. X1,Y1,W1-4,H1.| 00000b10 06 86 0c 4c 4d 45 4e 55 3d 2d 31 0d 06 90 0b 4c |...LMENU=-1....L| 00000b20 57 49 4e 3d 2d 31 0d 06 9a 0b 4d 45 4e 55 3d 2d |WIN=-1....MENU=-| 00000b30 31 0d 06 a4 0a 57 49 4e 3d 2d 31 0d 06 ae 05 f5 |1....WIN=-1.....| 00000b40 0d 06 b8 0a 52 3d b3 28 31 29 0d 06 c2 0f c8 97 |....R=.(1)......| 00000b50 20 58 25 2c 59 25 2c 5a 25 0d 06 cc 0e 4c 4d 45 | X%,Y%,Z%....LME| 00000b60 4e 55 3d 4d 45 4e 55 0d 06 d6 1a 4d 45 4e 55 3d |NU=MENU....MENU=| 00000b70 a4 63 68 65 63 6b 6d 65 6e 75 28 58 25 2c 59 25 |.checkmenu(X%,Y%| 00000b80 29 0d 06 e0 0c 4c 57 49 4e 3d 57 49 4e 0d 06 ea |)....LWIN=WIN...| 00000b90 10 e7 20 4d 45 4e 55 3c 3e 2d 31 20 8c 0d 06 f4 |.. MENU<>-1 ....| 00000ba0 1d 57 49 4e 3d a4 63 68 65 63 6b 77 69 6e 28 58 |.WIN=.checkwin(X| 00000bb0 25 2c 59 25 2c 4d 45 4e 55 29 0d 06 fe 05 cd 0d |%,Y%,MENU)......| 00000bc0 07 08 13 e7 20 4c 4d 45 4e 55 3c 3e 4d 45 4e 55 |.... LMENU<>MENU| 00000bd0 20 8c 0d 07 12 24 e7 20 4c 4d 45 4e 55 3c 3e 2d | ....$. LMENU<>-| 00000be0 31 20 8c 20 f2 77 69 6e 28 4c 57 49 4e 2c 4c 4d |1 . .win(LWIN,LM| 00000bf0 45 4e 55 29 3a cd 0d 07 1c 10 e7 20 4d 45 4e 55 |ENU):...... MENU| 00000c00 3c 3e 2d 31 20 8c 0d 07 26 12 f2 77 69 6e 28 57 |<>-1 ...&..win(W| 00000c10 49 4e 2c 4d 45 4e 55 29 0d 07 30 05 cd 0d 07 3a |IN,MENU)..0....:| 00000c20 05 cc 0d 07 44 10 e7 20 4d 45 4e 55 3c 3e 2d 31 |....D.. MENU<>-1| 00000c30 20 8c 0d 07 4e 11 e7 20 4c 57 49 4e 3c 3e 57 49 | ...N.. LWIN<>WI| 00000c40 4e 20 8c 0d 07 58 13 f2 77 69 6e 28 4c 57 49 4e |N ...X..win(LWIN| 00000c50 2c 4d 45 4e 55 29 0d 07 62 12 f2 77 69 6e 28 57 |,MENU)..b..win(W| 00000c60 49 4e 2c 4d 45 4e 55 29 0d 07 6c 05 cd 0d 07 76 |IN,MENU)..l....v| 00000c70 05 cd 0d 07 80 05 cd 0d 07 8a 15 fd 20 5a 25 3d |............ Z%=| 00000c80 34 20 80 20 4d 45 4e 55 3c 3e 2d 31 0d 07 94 12 |4 . MENU<>-1....| 00000c90 f2 77 69 6e 28 57 49 4e 2c 4d 45 4e 55 29 0d 07 |.win(WIN,MENU)..| 00000ca0 9e 17 c8 97 20 c8 93 20 30 2c 30 2c 31 32 38 30 |.... .. 0,0,1280| 00000cb0 2c 31 30 32 34 0d 07 a8 05 e1 0d 07 b2 04 0d 07 |,1024...........| 00000cc0 bc 1b dd 20 a4 63 68 65 63 6b 77 69 6e 28 58 25 |... .checkwin(X%| 00000cd0 2c 59 25 2c 4d 45 4e 55 29 0d 07 c6 0b ea 20 57 |,Y%,MENU)..... W| 00000ce0 2c 57 49 4e 0d 07 d0 15 57 4d 41 58 3d 57 49 4e |,WIN....WMAX=WIN| 00000cf0 44 28 4d 45 4e 55 2c 33 29 0d 07 da 14 59 25 2d |D(MENU,3)....Y%-| 00000d00 3d 57 49 4e 44 28 4d 45 4e 55 2c 31 29 0d 07 e4 |=WIND(MENU,1)...| 00000d10 0f 57 3d 30 3a 46 4f 55 4e 44 3d a3 0d 07 ee 05 |.W=0:FOUND=.....| 00000d20 f5 0d 07 f8 08 57 2b 3d 31 0d 08 02 20 e7 20 59 |.....W+=1... . Y| 00000d30 25 3c 2d 28 57 2d 31 29 2a 33 32 20 80 20 59 25 |%<-(W-1)*32 . Y%| 00000d40 3e 3d 2d 57 2a 33 32 20 8c 0d 08 0c 09 57 49 4e |>=-W*32 .....WIN| 00000d50 3d 57 0d 08 16 0b 46 4f 55 4e 44 3d b9 0d 08 20 |=W....FOUND=... | 00000d60 05 cd 0d 08 2a 14 fd 20 57 3d 57 4d 41 58 20 84 |....*.. W=WMAX .| 00000d70 20 46 4f 55 4e 44 0d 08 34 08 3d 57 49 4e 0d 08 | FOUND..4.=WIN..| 00000d80 3e 04 0d 08 48 17 dd 20 a4 63 68 65 63 6b 6d 65 |>...H.. .checkme| 00000d90 6e 75 28 58 25 2c 59 25 29 0d 08 52 0b ea 20 49 |nu(X%,Y%)..R.. I| 00000da0 2c 58 2c 59 0d 08 5c 08 4d 3d 2d 31 0d 08 66 0d |,X,Y..\.M=-1..f.| 00000db0 e3 20 49 3d 30 20 b8 20 32 0d 08 70 12 58 3d 58 |. I=0 . 2..p.X=X| 00000dc0 25 2d 57 49 4e 44 28 49 2c 30 29 0d 08 7a 1c 59 |%-WIND(I,0)..z.Y| 00000dd0 3d 59 25 2d 57 49 4e 44 28 49 2c 31 29 2b 57 49 |=Y%-WIND(I,1)+WI| 00000de0 4e 44 28 49 2c 33 29 0d 08 84 33 e7 20 58 3e 3d |ND(I,3)...3. X>=| 00000df0 30 20 80 20 59 3e 3d 30 20 80 20 58 3c 57 49 4e |0 . Y>=0 . X<WIN| 00000e00 44 28 49 2c 32 29 20 80 20 59 3c 57 49 4e 44 28 |D(I,2) . Y<WIND(| 00000e10 49 2c 33 29 20 8c 20 4d 3d 49 0d 08 8e 05 ed 0d |I,3) . M=I......| 00000e20 08 98 06 3d 4d 0d 08 a2 04 0d 08 ac 12 dd 20 f2 |...=M......... .| 00000e30 77 69 6e 28 57 2c 4d 45 4e 55 29 0d 08 b6 10 e7 |win(W,MENU).....| 00000e40 20 4d 45 4e 55 3c 3e 2d 31 20 8c 0d 08 c0 38 c8 | MENU<>-1 ....8.| 00000e50 93 20 c8 90 20 57 49 4e 44 28 4d 45 4e 55 2c 30 |. .. WIND(MENU,0| 00000e60 29 2c 57 49 4e 44 28 4d 45 4e 55 2c 31 29 2d 57 |),WIND(MENU,1)-W| 00000e70 2a 33 32 2c 57 49 4e 44 28 4d 45 4e 55 2c 32 29 |*32,WIND(MENU,2)| 00000e80 2c 33 32 0d 08 ca 05 cd 0d 08 d4 05 e1 0d 08 de |,32.............| 00000e90 04 0d 08 e8 0b dd 20 f2 69 6e 69 74 0d 08 f2 09 |...... .init....| 00000ea0 54 49 4d 3d 30 0d 08 fc 0c 2a 50 4f 49 4e 54 45 |TIM=0....*POINTE| 00000eb0 52 0d 09 06 08 c8 97 20 ee 0d 09 10 16 c8 99 20 |R...... ....... | 00000ec0 22 4f 53 5f 42 79 74 65 22 2c 26 37 30 2c 32 0d |"OS_Byte",&70,2.| 00000ed0 09 1a 0a d6 20 69 6e 69 74 0d 09 24 0c 43 48 4f |.... init..$.CHO| 00000ee0 49 43 45 3d 30 0d 09 2e 12 57 56 41 44 44 52 3d |ICE=0....WVADDR=| 00000ef0 21 77 61 76 74 61 62 0d 09 38 12 53 4e 41 44 44 |!wavtab..8.SNADD| 00000f00 52 3d 21 73 6e 75 74 61 62 0d 09 42 0e 41 3d 32 |R=!snutab..B.A=2| 00000f10 5e 31 36 2a 2e 39 35 0d 09 4c 34 e3 20 49 25 3d |^16*.95..L4. I%=| 00000f20 30 20 b8 20 31 30 32 33 3a 53 4e 41 44 44 52 21 |0 . 1023:SNADDR!| 00000f30 28 34 2a 49 25 29 3d 2d b5 28 af 2a 49 25 2f 35 |(4*I%)=-.(.*I%/5| 00000f40 31 32 29 2a 41 2b 30 2e 35 3a ed 0d 09 56 0e 21 |12)*A+0.5:...V.!| 00000f50 57 56 41 44 44 52 3d 2d 31 0d 09 60 0f de 20 57 |WVADDR=-1..`.. W| 00000f60 49 4e 44 28 32 2c 33 29 0d 09 6a 2c 57 49 4e 44 |IND(2,3)..j,WIND| 00000f70 28 29 3d 31 38 2c 32 31 2c 31 35 2c 34 2c 20 31 |()=18,21,15,4, 1| 00000f80 38 2c 31 34 2c 31 35 2c 33 2c 20 31 38 2c 38 2c |8,14,15,3, 18,8,| 00000f90 31 35 2c 35 0d 09 74 14 57 49 4e 44 28 29 3d 57 |15,5..t.WIND()=W| 00000fa0 49 4e 44 28 29 2a 33 32 0d 09 7e 17 4c 58 25 3d |IND()*32..~.LX%=| 00000fb0 57 49 4e 44 28 30 2c 30 29 2b 31 32 2a 33 32 0d |WIND(0,0)+12*32.| 00000fc0 09 88 14 4c 59 25 3d 57 49 4e 44 28 30 2c 31 29 |...LY%=WIND(0,1)| 00000fd0 2d 31 36 0d 09 92 0f 52 45 43 4f 4d 50 49 4c 45 |-16....RECOMPILE| 00000fe0 3d a3 0d 09 9c 10 de 20 53 45 54 54 49 4e 47 28 |=...... SETTING(| 00000ff0 34 29 0d 09 a6 2a 53 45 54 54 49 4e 47 28 29 3d |4)...*SETTING()=| 00001000 44 4d 31 2c 44 4d 32 2c 31 31 2d 44 41 4d 50 2c |DM1,DM2,11-DAMP,| 00001010 31 32 2d 50 52 4f 50 2c 42 41 53 45 0d 09 b0 13 |12-PROP,BASE....| 00001020 de 20 53 45 54 52 41 4e 47 45 28 31 2c 34 29 0d |. SETRANGE(1,4).| 00001030 09 ba 2b 53 45 54 52 41 4e 47 45 28 29 3d 31 30 |..+SETRANGE()=10| 00001040 2c 31 30 2c 31 2c 31 2c 30 2c 20 38 30 2c 36 34 |,10,1,1,0, 80,64| 00001050 2c 31 30 2c 31 30 2c 32 35 35 0d 09 c4 12 de 20 |,10,10,255..... | 00001060 73 70 72 69 74 65 20 32 38 30 30 30 0d 09 ce 11 |sprite 28000....| 00001070 21 73 70 72 69 74 65 3d 32 38 30 30 30 0d 09 d8 |!sprite=28000...| 00001080 0e 73 70 72 69 74 65 21 34 3d 30 0d 09 e2 0f 73 |.sprite!4=0....s| 00001090 70 72 69 74 65 21 38 3d 31 36 0d 09 ec 10 73 70 |prite!8=16....sp| 000010a0 72 69 74 65 21 31 32 3d 31 36 0d 09 f6 16 2a 44 |rite!12=16....*D| 000010b0 49 52 20 3c 32 44 57 61 76 65 73 24 64 69 72 3e |IR <2DWaves$dir>| 000010c0 0d 0a 00 2c c8 99 20 22 4f 53 5f 53 70 72 69 74 |...,.. "OS_Sprit| 000010d0 65 4f 70 22 2c 32 35 36 2b 31 30 2c 73 70 72 69 |eOp",256+10,spri| 000010e0 74 65 2c 22 32 44 77 61 76 65 73 22 0d 0a 0a 2c |te,"2Dwaves"...,| 000010f0 c8 99 20 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 |.. "OS_SpriteOp"| 00001100 2c 32 35 36 2b 32 34 2c 73 70 72 69 74 65 2c 22 |,256+24,sprite,"| 00001110 32 44 57 61 76 65 73 22 0d 0a 14 0a 2a 44 49 52 |2DWaves"....*DIR| 00001120 20 5e 0d 0a 1e 05 e1 0d 0a 28 04 0d 0a 32 0d dd | ^.......(...2..| 00001130 20 f2 72 65 69 6e 69 74 0d 0a 3c 0e 21 57 56 41 | .reinit..<.!WVA| 00001140 44 44 52 3d 2d 31 0d 0a 46 09 21 65 78 3d 30 0d |DDR=-1..F.!ex=0.| 00001150 0a 50 09 21 65 79 3d 30 0d 0a 5a 05 e1 0d 0a 64 |.P.!ey=0..Z....d| 00001160 04 0d 0a 6e 0d dd 20 f2 64 65 66 69 6e 65 0d 0a |...n.. .define..| 00001170 78 10 c8 97 20 b8 20 36 34 30 2c 35 31 32 0d 0a |x... . 640,512..| 00001180 82 05 db 0d 0a 8c 08 53 25 3d 30 0d 0a 96 09 4d |.......S%=0....M| 00001190 3d 21 6d 6f 0d 0a a0 15 41 4d 3d 32 30 30 3a 46 |=!mo....AM=200:F| 000011a0 52 3d 36 30 3a 50 48 3d 30 0d 0a aa 09 4c 5a 25 |R=60:PH=0....LZ%| 000011b0 3d 34 0d 0a b4 05 f5 0d 0a be 0d d6 20 6f 75 74 |=4.......... out| 000011c0 63 6f 70 79 0d 0a c8 05 f5 0d 0a d2 16 c8 99 20 |copy........... | 000011d0 22 4f 53 5f 42 79 74 65 22 2c 26 37 30 2c 4d 0d |"OS_Byte",&70,M.| 000011e0 0a dc 0c d6 20 69 6e 63 6f 70 79 0d 0a e6 16 4c |.... incopy....L| 000011f0 5a 25 3d 5a 25 3a c8 97 20 58 25 2c 59 25 2c 5a |Z%=Z%:.. X%,Y%,Z| 00001200 25 0d 0a f0 2a e7 20 5a 25 3d 31 20 8c 20 46 52 |%...*. Z%=1 . FR| 00001210 3d 28 31 32 2d 58 25 2a 31 32 2f 31 32 38 30 29 |=(12-X%*12/1280)| 00001220 2a 31 30 3a 41 4d 3d 59 25 2f 32 0d 0a fa 14 41 |*10:AM=Y%/2....A| 00001230 24 3d bf 28 30 29 3a 2a 46 58 20 31 35 2c 31 0d |$=.(0):*FX 15,1.| 00001240 0b 04 0e e7 20 41 24 3c 3e 22 22 20 8c 0d 0b 0e |.... A$<>"" ....| 00001250 0b c8 8e 20 41 24 20 ca 0d 0b 18 29 c9 20 22 31 |... A$ ....). "1| 00001260 22 3a e7 20 41 4d 3c 35 31 32 20 41 4d 2b 3d 31 |":. AM<512 AM+=1| 00001270 30 3a e7 20 41 4d 3e 35 31 32 20 41 4d 3d 35 31 |0:. AM>512 AM=51| 00001280 32 0d 0b 22 28 c9 20 22 32 22 3a e7 20 46 52 3c |2.."(. "2":. FR<| 00001290 31 32 30 20 46 52 2b 3d 32 3a e7 20 46 52 3e 31 |120 FR+=2:. FR>1| 000012a0 32 30 20 46 52 3d 31 32 30 0d 0b 2c 0f c9 20 22 |20 FR=120..,.. "| 000012b0 33 22 3a 50 48 2b 3d 32 0d 0b 36 27 c9 20 22 51 |3":PH+=2..6'. "Q| 000012c0 22 2c 22 71 22 3a e7 20 41 4d 3e 30 20 41 4d 2d |","q":. AM>0 AM-| 000012d0 3d 31 30 3a e7 20 41 4d 3c 30 20 41 4d 3d 30 0d |=10:. AM<0 AM=0.| 000012e0 0b 40 27 c9 20 22 57 22 2c 22 77 22 3a e7 20 46 |.@'. "W","w":. F| 000012f0 52 3e 30 20 20 46 52 2d 3d 32 3a e7 20 46 52 3c |R>0 FR-=2:. FR<| 00001300 30 20 46 52 3d 30 0d 0b 4a 13 c9 20 22 45 22 2c |0 FR=0..J.. "E",| 00001310 22 65 22 3a 50 48 2d 3d 32 0d 0b 54 05 cb 0d 0b |"e":PH-=2..T....| 00001320 5e 05 cd 0d 0b 68 19 52 25 3d 34 30 30 2f 28 31 |^....h.R%=400/(1| 00001330 2b 46 52 2f 33 30 29 80 ac 28 33 29 0d 0b 72 0e |+FR/30)..(3)..r.| 00001340 4c 25 3d 41 4d 2f 35 2b 31 30 0d 0b 7c 0e 54 25 |L%=AM/5+10..|.T%| 00001350 3d 50 48 2a 35 2e 31 32 0d 0b 86 13 58 3d 58 25 |=PH*5.12....X=X%| 00001360 2a 44 4d 31 20 81 20 31 32 38 30 0d 0b 90 13 59 |*DM1 . 1280....Y| 00001370 3d 59 25 2a 44 4d 32 20 81 20 31 30 32 34 0d 0b |=Y%*DM2 . 1024..| 00001380 9a 17 58 25 3d 28 58 2b 30 2e 35 29 2a 31 32 38 |..X%=(X+0.5)*128| 00001390 30 2f 44 4d 31 0d 0b a4 17 59 25 3d 28 59 2b 30 |0/DM1....Y%=(Y+0| 000013a0 2e 35 29 2a 31 30 32 34 2f 44 4d 32 0d 0b ae 10 |.5)*1024/DM2....| 000013b0 e6 20 33 2c 4c 25 20 c8 9c 20 54 25 0d 0b b8 12 |. 3,L% .. T%....| 000013c0 c8 8f 20 c8 90 20 58 25 2c 59 25 2c 52 25 0d 0b |.. .. X%,Y%,R%..| 000013d0 c2 0f e6 20 36 33 20 c8 9c 20 32 35 35 0d 0b cc |... 63 .. 255...| 000013e0 0f c8 8f 20 58 25 2c 59 25 2c 52 25 0d 0b d6 08 |... X%,Y%,R%....| 000013f0 ef 20 32 36 0d 0b e0 1e ef 20 35 3a ec 20 30 2c |. 26..... 5:. 0,| 00001400 31 30 32 33 3a e6 20 31 2c 36 33 20 c8 9c 20 32 |1023:. 1,63 .. 2| 00001410 35 35 0d 0b ea 17 f1 20 22 41 6d 70 6c 69 74 75 |55..... "Amplitu| 00001420 64 65 20 3a 20 22 3b 41 4d 0d 0b f4 1a f1 20 22 |de : ";AM..... "| 00001430 46 72 65 71 75 65 6e 63 79 20 3a 20 22 3b 46 52 |Frequency : ";FR| 00001440 2f 31 30 0d 0b fe 1a f1 20 22 50 68 61 73 65 20 |/10..... "Phase | 00001450 28 50 49 29 3a 20 22 3b 50 48 2f 32 30 0d 0c 08 |(PI): ";PH/20...| 00001460 0e f1 20 22 58 20 3a 20 22 3b 58 0d 0c 12 0e f1 |.. "X : ";X.....| 00001470 20 22 59 20 3a 20 22 3b 59 0d 0c 1c 09 ef 20 34 | "Y : ";Y..... 4| 00001480 3a 87 0d 0c 26 1d 45 25 3d 41 4d 3a 46 25 3d 46 |:...&.E%=AM:F%=F| 00001490 52 2a 32 35 3a 47 25 3d 50 48 2a 32 35 2e 36 0d |R*25:G%=PH*25.6.| 000014a0 0c 30 0b d6 20 67 72 61 70 68 0d 0c 3a 21 c8 96 |.0.. graph..:!..| 000014b0 3a c8 99 20 22 4f 53 5f 42 79 74 65 22 2c 26 37 |:.. "OS_Byte",&7| 000014c0 31 2c 4d 3a 4d 3d 4d 20 82 20 33 0d 0c 44 1c fd |1,M:M=M . 3..D..| 000014d0 20 28 4c 5a 25 3c 3e 34 20 80 20 5a 25 3d 34 29 | (LZ%<>4 . Z%=4)| 000014e0 20 84 20 5a 25 3d 32 0d 0c 4e 0c e7 20 5a 25 3d | . Z%=2..N.. Z%=| 000014f0 34 20 8c 0d 0c 58 16 c8 99 20 22 4f 53 5f 42 79 |4 ...X... "OS_By| 00001500 74 65 22 2c 26 37 30 2c 4d 0d 0c 62 0c d6 20 69 |te",&70,M..b.. i| 00001510 6e 63 6f 70 79 0d 0c 6c 10 e6 20 33 2c 4c 25 20 |ncopy..l.. 3,L% | 00001520 c8 9c 20 54 25 0d 0c 76 12 c8 8f 20 c8 90 20 58 |.. T%..v... .. X| 00001530 25 2c 59 25 2c 52 25 0d 0c 80 0b 59 3d 44 4d 32 |%,Y%,R%....Y=DM2| 00001540 2d 59 0d 0c 8a 2e 50 4f 3d 28 58 2b 59 2a 38 30 |-Y....PO=(X+Y*80| 00001550 2b 28 28 36 34 2d 44 4d 32 29 81 20 32 29 2a 38 |+((64-DM2). 2)*8| 00001560 30 2b 28 38 30 2d 44 4d 31 29 81 20 32 29 2a 38 |0+(80-DM1). 2)*8| 00001570 0d 0c 94 1f f2 73 65 74 28 41 4d 2a 32 2c 46 52 |.....set(AM*2,FR| 00001580 2c 50 48 2a 32 35 2e 36 2c 50 4f 2c 53 25 29 0d |,PH*25.6,PO,S%).| 00001590 0c 9e 0d d6 20 6f 75 74 63 6f 70 79 0d 0c a8 09 |.... outcopy....| 000015a0 53 25 2b 3d 31 0d 0c b2 05 cd 0d 0c bc 0a fd 20 |S%+=1.......... | 000015b0 5a 25 3d 32 0d 0c c6 19 c8 95 20 5a 25 3d 32 3a |Z%=2...... Z%=2:| 000015c0 c8 97 20 58 25 2c 59 25 2c 5a 25 3a ce 0d 0c d0 |.. X%,Y%,Z%:....| 000015d0 18 f2 73 65 74 28 2d 31 2c 2d 31 2c 2d 31 2c 2d |..set(-1,-1,-1,-| 000015e0 31 2c 53 25 29 0d 0c da 09 21 6d 6f 3d 4d 0d 0c |1,S%)....!mo=M..| 000015f0 e4 0d e6 20 36 33 3a fb 20 36 33 0d 0c ee 05 e1 |... 63:. 63.....| 00001600 0d 0c f8 04 0d 0d 02 0b dd 20 f2 61 75 74 6f 0d |......... .auto.| 00001610 0d 0c 0b 21 74 69 6d 65 3d 30 0d 0d 16 0e e3 20 |...!time=0..... | 00001620 53 25 3d 30 20 b8 20 39 0d 0d 20 0d 41 4d 3d b3 |S%=0 . 9.. .AM=.| 00001630 28 38 30 30 29 0d 0d 2a 0c 46 52 3d b3 28 32 30 |(800)..*.FR=.(20| 00001640 29 0d 0d 34 18 50 48 3d 28 b3 28 32 29 2d 31 29 |)..4.PH=(.(2)-1)| 00001650 2a 35 31 32 2b 31 30 32 34 0d 0d 3e 10 58 3d b3 |*512+1024..>.X=.| 00001660 28 44 4d 31 2d 32 29 2b 31 0d 0d 48 10 59 3d b3 |(DM1-2)+1..H.Y=.| 00001670 28 44 4d 32 2d 32 29 2b 31 0d 0d 52 2e 50 4f 3d |(DM2-2)+1..R.PO=| 00001680 28 58 2b 59 2a 38 30 2b 28 28 36 34 2d 44 4d 32 |(X+Y*80+((64-DM2| 00001690 29 81 20 32 29 2a 38 30 2b 28 38 30 2d 44 4d 31 |). 2)*80+(80-DM1| 000016a0 29 81 20 32 29 2a 38 0d 0d 5c 18 f2 73 65 74 28 |). 2)*8..\..set(| 000016b0 41 4d 2c 46 52 2c 50 48 2c 50 4f 2c 53 25 29 0d |AM,FR,PH,PO,S%).| 000016c0 0d 66 05 ed 0d 0d 70 18 f2 73 65 74 28 2d 31 2c |.f....p..set(-1,| 000016d0 2d 31 2c 2d 31 2c 2d 31 2c 53 25 29 0d 0d 7a 05 |-1,-1,-1,S%)..z.| 000016e0 e1 0d 0d 84 04 0d 0d 8e 1a dd 20 f2 73 65 74 28 |.......... .set(| 000016f0 41 4d 2c 46 52 2c 50 48 2c 50 4f 2c 53 25 29 0d |AM,FR,PH,PO,S%).| 00001700 0d 98 20 57 56 41 44 44 52 21 28 53 25 2a 31 36 |.. WVADDR!(S%*16| 00001710 29 3d 50 4f 3a f4 20 70 6f 73 69 74 69 6f 6e 0d |)=PO:. position.| 00001720 0d a2 23 57 56 41 44 44 52 21 28 53 25 2a 31 36 |..#WVADDR!(S%*16| 00001730 2b 34 29 3d 41 4d 3a f4 20 61 6d 70 6c 69 74 75 |+4)=AM:. amplitu| 00001740 64 65 0d 0d ac 23 57 56 41 44 44 52 21 28 53 25 |de...#WVADDR!(S%| 00001750 2a 31 36 2b 38 29 3d 46 52 3a f4 20 66 72 65 71 |*16+8)=FR:. freq| 00001760 75 65 6e 63 79 0d 0d b6 20 57 56 41 44 44 52 21 |uency... WVADDR!| 00001770 28 53 25 2a 31 36 2b 31 32 29 3d 50 48 3a f4 20 |(S%*16+12)=PH:. | 00001780 70 68 61 73 65 0d 0d c0 05 e1 0d 0d ca 04 0d 0d |phase...........| 00001790 d4 17 dd 20 f2 63 6f 6c 74 61 62 6c 65 28 43 54 |... .coltable(CT| 000017a0 41 42 4c 45 29 0d 0d de 09 53 57 50 3d 32 0d 0d |ABLE)....SWP=2..| 000017b0 e8 0c 43 3d 30 3a 4d 3d 31 35 0d 0d f2 0d e3 20 |..C=0:M=15..... | 000017c0 4b 3d 30 20 b8 20 4d 0d 0d fc 24 f2 70 75 74 28 |K=0 . M...$.put(| 000017d0 43 2b 28 4b 20 80 20 25 31 31 30 30 29 2a 35 2e |C+(K . %1100)*5.| 000017e0 32 35 2c 4b 20 80 20 25 31 31 29 0d 0e 06 05 ed |25,K . %11).....| 000017f0 0d 0e 10 0d e3 20 54 3d 31 20 b8 20 33 0d 0e 1a |..... T=1 . 3...| 00001800 13 43 3d 54 3a 4d 3d 34 2a 28 34 2d 54 29 2d 31 |.C=T:M=4*(4-T)-1| 00001810 0d 0e 24 0e f2 73 69 64 65 28 20 20 34 29 0d 0e |..$..side( 4)..| 00001820 2e 0e f2 73 69 64 65 28 2d 20 31 29 0d 0e 38 0e |...side(- 1)..8.| 00001830 f2 73 69 64 65 28 20 31 36 29 0d 0e 42 0e f2 73 |.side( 16)..B..s| 00001840 69 64 65 28 2d 20 34 29 0d 0e 4c 0e f2 73 69 64 |ide(- 4)..L..sid| 00001850 65 28 20 20 31 29 0d 0e 56 0e f2 73 69 64 65 28 |e( 1)..V..side(| 00001860 2d 31 36 29 0d 0e 60 05 ed 0d 0e 6a 05 e1 0d 0e |-16)..`....j....| 00001870 74 04 0d 0e 7e 10 dd 20 f2 73 69 64 65 28 52 47 |t...~.. .side(RG| 00001880 42 29 0d 0e 88 0d e3 20 49 3d 31 20 b8 20 54 0d |B)..... I=1 . T.| 00001890 0e 92 0a 43 2b 3d 52 47 42 0d 0e 9c 0d e7 20 53 |...C+=RGB..... S| 000018a0 57 50 3d 31 20 8c 0d 0e a6 0d e3 20 4b 3d 30 20 |WP=1 ...... K=0 | 000018b0 b8 20 4d 0d 0e b0 24 f2 70 75 74 28 43 2b 28 4b |. M...$.put(C+(K| 000018c0 20 80 20 25 31 31 30 30 29 2a 35 2e 32 35 2c 4b | . %1100)*5.25,K| 000018d0 20 80 20 25 31 31 29 0d 0e ba 05 ed 0d 0e c4 05 | . %11).........| 000018e0 cc 0d 0e ce 12 e3 20 4b 3d 4d 20 b8 20 30 20 88 |...... K=M . 0 .| 000018f0 20 2d 31 0d 0e d8 24 f2 70 75 74 28 43 2b 28 4b | -1...$.put(C+(K| 00001900 20 80 20 25 31 31 30 30 29 2a 35 2e 32 35 2c 4b | . %1100)*5.25,K| 00001910 20 80 20 25 31 31 29 0d 0e e2 05 ed 0d 0e ec 05 | . %11).........| 00001920 cd 0d 0e f6 0f 53 57 50 3d 53 57 50 20 82 20 33 |.....SWP=SWP . 3| 00001930 0d 0f 00 05 ed 0d 0f 0a 05 e1 0d 0f 14 04 0d 0f |................| 00001940 1e 0f dd 20 f2 70 75 74 28 43 2c 54 29 0d 0f 28 |... .put(C,T)..(| 00001950 11 42 31 3d 28 43 3e 3e 35 29 20 80 20 31 0d 0f |.B1=(C>>5) . 1..| 00001960 32 11 42 32 3d 28 43 3e 3e 34 29 20 80 20 31 0d |2.B2=(C>>4) . 1.| 00001970 0f 3c 11 47 31 3d 28 43 3e 3e 33 29 20 80 20 31 |.<.G1=(C>>3) . 1| 00001980 0d 0f 46 11 47 32 3d 28 43 3e 3e 32 29 20 80 20 |..F.G2=(C>>2) . | 00001990 31 0d 0f 50 11 52 31 3d 28 43 3e 3e 31 29 20 80 |1..P.R1=(C>>1) .| 000019a0 20 31 0d 0f 5a 11 52 32 3d 28 43 3e 3e 30 29 20 | 1..Z.R2=(C>>0) | 000019b0 80 20 31 0d 0f 64 31 43 4f 4c 3d 54 2b 34 2a 28 |. 1..d1COL=T+4*(| 000019c0 52 32 2b 32 2a 28 42 32 2b 32 2a 28 52 31 2b 32 |R2+2*(B2+2*(R1+2| 000019d0 2a 28 47 32 2b 32 2a 28 47 31 2b 32 2a 42 31 29 |*(G2+2*(G1+2*B1)| 000019e0 29 29 29 29 0d 0f 6e 0f 3f 43 54 41 42 4c 45 3d |))))..n.?CTABLE=| 000019f0 43 4f 4c 0d 0f 78 0d 43 54 41 42 4c 45 2b 3d 31 |COL..x.CTABLE+=1| 00001a00 0d 0f 82 05 e1 0d 0f 8c 04 0d 0f 96 0e dd 20 f2 |.............. .| 00001a10 69 6e 69 74 61 73 73 0d 0f a0 0f de 20 51 25 20 |initass..... Q% | 00001a20 31 30 30 30 30 30 0d 0f aa 0a 44 41 4d 50 3d 38 |100000....DAMP=8| 00001a30 0d 0f b4 0a 50 52 4f 50 3d 32 0d 0f be 0a 44 4d |....PROP=2....DM| 00001a40 31 3d 38 30 0d 0f c8 0a 44 4d 32 3d 36 34 0d 0f |1=80....DM2=64..| 00001a50 d2 0c 42 41 53 45 3d 31 38 30 0d 0f dc 10 de 20 |..BASE=180..... | 00001a60 43 54 41 42 4c 45 20 32 35 36 0d 0f e6 15 f2 63 |CTABLE 256.....c| 00001a70 6f 6c 74 61 62 6c 65 28 43 54 41 42 4c 45 29 0d |oltable(CTABLE).| 00001a80 0f f0 14 e3 20 50 41 53 53 3d 30 20 b8 20 32 20 |.... PASS=0 . 2 | 00001a90 88 20 32 0d 0f fa 09 50 25 3d 51 25 0d 10 04 0d |. 2....P%=Q%....| 00001aa0 5b 4f 50 54 20 50 41 53 53 0d 10 0e 1a 2e 73 63 |[OPT PASS.....sc| 00001ab0 72 31 20 45 51 55 44 20 31 34 38 3a 45 51 55 44 |r1 EQUD 148:EQUD| 00001ac0 20 2d 31 0d 10 18 10 2e 73 63 72 32 20 45 51 55 | -1.....scr2 EQU| 00001ad0 44 20 30 0d 10 22 13 2e 74 61 62 31 20 45 51 55 |D 0.."..tab1 EQU| 00001ae0 44 20 78 74 61 62 0d 10 2c 1c 2e 74 61 62 32 20 |D xtab..,..tab2 | 00001af0 45 51 55 44 20 21 74 61 62 31 2b 36 34 2a 38 30 |EQUD !tab1+64*80| 00001b00 2a 38 0d 10 36 0f 2e 74 61 31 20 45 51 55 44 20 |*8..6..ta1 EQUD | 00001b10 30 0d 10 40 0f 2e 74 61 32 20 45 51 55 44 20 30 |0..@..ta2 EQUD 0| 00001b20 0d 10 4a 20 2e 73 6e 75 74 61 62 20 45 51 55 44 |..J .snutab EQUD| 00001b30 20 21 74 61 62 31 2b 36 34 2a 38 30 2a 38 2a 32 | !tab1+64*80*8*2| 00001b40 0d 10 54 1f 2e 77 61 76 74 61 62 20 45 51 55 44 |..T..wavtab EQUD| 00001b50 20 21 73 6e 75 74 61 62 2b 31 30 32 34 2a 34 0d | !snutab+1024*4.| 00001b60 10 5e 0e 2e 65 78 20 45 51 55 44 20 31 0d 10 68 |.^..ex EQUD 1..h| 00001b70 0e 2e 65 79 20 45 51 55 44 20 31 0d 10 72 0e 2e |..ey EQUD 1..r..| 00001b80 6d 6f 20 45 51 55 44 20 32 0d 10 7c 10 2e 74 69 |mo EQUD 2..|..ti| 00001b90 6d 65 20 45 51 55 44 20 30 0d 10 86 15 2e 63 68 |me EQUD 0.....ch| 00001ba0 6f 69 63 65 20 45 51 55 44 20 25 31 31 30 0d 10 |oice EQUD %110..| 00001bb0 90 26 2e 6e 61 6d 65 20 45 51 55 53 20 22 44 75 |.&.name EQUS "Du| 00001bc0 6d 70 22 3a 45 51 55 42 20 97 22 30 22 3a 45 51 |mp":EQUB ."0":EQ| 00001bd0 55 42 20 30 0d 10 9a 0a 2e 41 4c 49 47 4e 0d 10 |UB 0.....ALIGN..| 00001be0 a4 05 5d 0d 10 ae 0a 51 51 25 3d 50 25 0d 10 b8 |..]....QQ%=P%...| 00001bf0 08 f2 61 73 73 0d 10 c2 05 ed 0d 10 cc 05 e1 0d |..ass...........| 00001c00 10 d6 04 0d 10 e0 0c dd 20 f2 72 65 61 73 73 0d |........ .reass.| 00001c10 10 ea 14 e3 20 50 41 53 53 3d 30 20 b8 20 32 20 |.... PASS=0 . 2 | 00001c20 88 20 32 0d 10 f4 0a 50 25 3d 51 51 25 0d 10 fe |. 2....P%=QQ%...| 00001c30 08 f2 61 73 73 0d 11 08 05 ed 0d 11 12 05 e1 0d |..ass...........| 00001c40 11 1c 04 0d 11 26 0a dd 20 f2 61 73 73 0d 11 30 |.....&.. .ass..0| 00001c50 19 58 57 3d 28 28 38 30 2d 44 4d 31 29 20 81 20 |.XW=((80-DM1) . | 00001c60 32 29 2a 34 2b 34 0d 11 3a 19 59 57 3d 28 28 36 |2)*4+4..:.YW=((6| 00001c70 34 2d 44 4d 32 29 20 81 20 32 29 2a 34 2b 34 0d |4-DM2) . 2)*4+4.| 00001c80 11 44 15 49 20 20 20 20 3d 30 20 20 3a 53 4e 55 |.D.I =0 :SNU| 00001c90 53 20 3d 30 0d 11 4e 29 4a 20 20 20 20 3d 31 20 |S =0..N)J =1 | 00001ca0 20 3a 58 32 20 20 20 3d 31 20 20 3a 57 41 56 53 | :X2 =1 :WAVS| 00001cb0 20 3d 31 20 20 3a 20 44 58 20 20 3d 31 0d 11 58 | =1 : DX =1..X| 00001cc0 15 54 20 20 20 20 3d 32 20 20 3a 4d 20 20 20 20 |.T =2 :M | 00001cd0 3d 32 0d 11 62 29 4f 20 20 20 20 3d 33 20 20 3a |=2..b)O =3 :| 00001ce0 58 20 20 20 20 3d 33 20 20 3a 50 4f 53 49 20 3d |X =3 :POSI =| 00001cf0 33 20 20 3a 20 4f 43 20 20 3d 33 0d 11 6c 29 57 |3 : OC =3..l)W| 00001d00 20 20 20 20 3d 34 20 20 3a 5a 20 20 20 20 3d 34 | =4 :Z =4| 00001d10 20 20 3a 41 4d 50 4c 20 3d 34 20 20 3a 20 44 59 | :AMPL =4 : DY| 00001d20 20 20 3d 34 0d 11 76 1f 58 31 20 20 20 3d 35 20 | =4..v.X1 =5 | 00001d30 20 3a 46 52 45 51 20 3d 35 20 20 3a 4e 43 20 20 | :FREQ =5 :NC | 00001d40 20 3d 35 0d 11 80 29 56 20 20 20 20 3d 36 20 20 | =5...)V =6 | 00001d50 3a 59 20 20 20 20 3d 36 20 20 3a 50 48 41 20 20 |:Y =6 :PHA | 00001d60 3d 36 20 20 3a 20 43 31 20 20 3d 36 0d 11 8a 29 |=6 : C1 =6...)| 00001d70 59 31 20 20 20 3d 37 20 20 3a 54 49 4a 44 20 3d |Y1 =7 :TIJD =| 00001d80 37 20 20 3a 41 44 20 20 20 3d 37 20 20 3a 20 43 |7 :AD =7 : C| 00001d90 32 20 20 3d 37 0d 11 94 15 53 43 52 20 20 3d 38 |2 =7....SCR =8| 00001da0 20 20 3a 53 4f 55 52 20 3d 38 0d 11 9e 29 43 4f | :SOUR =8...)CO| 00001db0 4c 20 20 3d 39 20 20 3a 43 20 20 20 20 3d 39 20 |L =9 :C =9 | 00001dc0 20 3a 44 45 53 54 20 3d 39 20 20 3a 20 43 33 20 | :DEST =9 : C3 | 00001dd0 20 3d 39 0d 11 a8 2a 54 41 42 31 20 3d 31 30 20 | =9...*TAB1 =10 | 00001de0 3a 4c 20 20 20 20 3d 31 30 20 3a 43 4f 20 20 20 |:L =10 :CO | 00001df0 3d 31 30 20 3a 20 43 34 20 20 3d 31 30 0d 11 b2 |=10 : C4 =10...| 00001e00 2a 54 41 42 32 20 3d 31 31 20 3a 43 54 20 20 20 |*TAB2 =11 :CT | 00001e10 3d 31 31 20 3a 4c 4c 20 20 20 3d 31 31 20 3a 20 |=11 :LL =11 : | 00001e20 4f 4b 20 20 3d 31 31 0d 11 bc 20 59 32 20 20 20 |OK =11... Y2 | 00001e30 3d 31 32 20 3a 4d 41 53 4b 20 3d 31 32 20 3a 4e |=12 :MASK =12 :N| 00001e40 4b 20 20 20 3d 31 32 0d 11 c6 0c 48 20 20 20 20 |K =12....H | 00001e50 3d 31 33 0d 11 d0 0c 4e 20 20 20 20 3d 31 34 0d |=13....N =14.| 00001e60 11 da 0d 5b 4f 50 54 20 50 41 53 53 0d 11 e4 0a |...[OPT PASS....| 00001e70 2e 67 72 61 70 68 0d 11 ee 11 20 20 41 44 52 20 |.graph.... ADR | 00001e80 52 30 2c 73 63 72 31 0d 11 f8 11 20 20 41 44 52 |R0,scr1.... ADR| 00001e90 20 52 31 2c 73 63 72 32 0d 12 02 1f 20 20 53 57 | R1,scr2.... SW| 00001ea0 49 20 22 4f 53 5f 52 65 61 64 56 64 75 56 61 72 |I "OS_ReadVduVar| 00001eb0 69 61 62 6c 65 73 22 0d 12 0c 12 20 20 4c 44 52 |iables".... LDR| 00001ec0 20 53 43 52 2c 73 63 72 32 0d 12 16 14 20 20 4d | SCR,scr2.... M| 00001ed0 4f 56 20 54 2c 23 33 32 30 2a 31 32 38 0d 12 20 |OV T,#320*128.. | 00001ee0 13 20 20 41 44 44 20 53 43 52 2c 53 43 52 2c 54 |. ADD SCR,SCR,T| 00001ef0 0d 12 2a 15 20 20 4d 4f 56 20 4d 41 53 4b 2c 23 |..*. MOV MASK,#| 00001f00 31 3c 3c 31 30 0d 12 34 16 20 20 53 55 42 20 4d |1<<10..4. SUB M| 00001f10 41 53 4b 2c 4d 41 53 4b 2c 23 31 0d 12 3e 15 20 |ASK,MASK,#1..>. | 00001f20 20 4c 44 52 20 53 4e 55 53 2c 73 6e 75 74 61 62 | LDR SNUS,snutab| 00001f30 0d 12 48 11 20 20 4d 4f 56 20 4a 2c 23 31 32 38 |..H. MOV J,#128| 00001f40 30 0d 12 52 10 20 20 53 55 42 20 4a 2c 4a 2c 23 |0..R. SUB J,J,#| 00001f50 34 0d 12 5c 12 20 20 4d 4f 56 20 43 4f 4c 2c 23 |4..\. MOV COL,#| 00001f60 32 35 35 0d 12 66 0f 20 20 4d 4f 56 20 4c 4c 2c |255..f. MOV LL,| 00001f70 23 30 0d 12 70 0d 20 20 2e 6c 6f 6f 70 67 72 0d |#0..p. .loopgr.| 00001f80 12 7a 14 20 20 20 20 4d 55 4c 20 54 2c 4a 2c 46 |.z. MUL T,J,F| 00001f90 52 45 51 0d 12 84 16 20 20 20 20 4d 4f 56 20 54 |REQ.... MOV T| 00001fa0 2c 54 2c 41 53 52 20 23 38 0d 12 8e 13 20 20 20 |,T,ASR #8.... | 00001fb0 20 41 44 44 20 54 2c 54 2c 50 48 41 0d 12 98 12 | ADD T,T,PHA....| 00001fc0 20 20 20 20 80 20 54 2c 54 2c 4d 41 53 4b 0d 12 | . T,T,MASK..| 00001fd0 a2 1d 20 20 20 20 4c 44 52 20 54 2c 5b 53 4e 55 |.. LDR T,[SNU| 00001fe0 53 2c 54 2c 4c 53 4c 20 23 32 5d 0d 12 ac 14 20 |S,T,LSL #2].... | 00001ff0 20 20 20 4d 55 4c 20 4c 2c 54 2c 41 4d 50 4c 0d | MUL L,T,AMPL.| 00002000 12 b6 18 20 20 20 20 4d 4f 56 53 20 54 2c 4c 2c |... MOVS T,L,| 00002010 41 53 52 20 23 31 38 0d 12 c0 12 20 20 20 20 41 |ASR #18.... A| 00002020 44 43 20 54 2c 54 2c 23 30 0d 12 ca 18 20 20 20 |DC T,T,#0.... | 00002030 20 41 44 44 20 54 2c 54 2c 54 2c 4c 53 4c 20 23 | ADD T,T,T,LSL #| 00002040 32 0d 12 d4 16 20 20 20 20 4d 4f 56 20 54 2c 54 |2.... MOV T,T| 00002050 2c 4c 53 4c 20 23 36 0d 12 de 18 20 20 20 20 41 |,LSL #6.... A| 00002060 44 44 20 54 2c 54 2c 4a 2c 4c 53 52 20 23 32 0d |DD T,T,J,LSR #2.| 00002070 12 e8 13 20 20 20 20 41 44 44 20 54 2c 53 43 52 |... ADD T,SCR| 00002080 2c 54 0d 12 f2 13 20 20 20 20 4d 4f 56 20 41 44 |,T.... MOV AD| 00002090 2c 23 33 32 30 0d 12 fc 10 20 20 20 20 43 4d 50 |,#320.... CMP| 000020a0 20 54 2c 4c 4c 0d 13 06 16 20 20 20 20 52 53 42 | T,LL.... RSB| 000020b0 48 49 20 41 44 2c 41 44 2c 23 30 0d 13 10 0f 20 |HI AD,AD,#0.... | 000020c0 20 20 20 4d 4f 56 20 4c 2c 54 0d 13 1a 11 20 20 | MOV L,T.... | 000020d0 20 20 43 4d 50 20 4c 4c 2c 23 30 0d 13 24 12 20 | CMP LL,#0..$. | 000020e0 20 20 20 43 4d 50 4e 45 20 54 2c 4c 4c 0d 13 2e | CMPNE T,LL...| 000020f0 15 20 20 20 20 41 44 44 45 51 20 4c 4c 2c 54 2c |. ADDEQ LL,T,| 00002100 41 44 0d 13 38 0c 20 20 20 20 2e 64 61 6c 0d 13 |AD..8. .dal..| 00002110 42 19 20 20 20 20 20 20 53 54 52 42 20 43 4f 4c |B. STRB COL| 00002120 2c 5b 54 5d 2c 41 44 0d 13 4c 12 20 20 20 20 20 |,[T],AD..L. | 00002130 20 43 4d 50 20 54 2c 4c 4c 0d 13 56 0f 20 20 20 | CMP T,LL..V. | 00002140 20 42 4e 45 20 64 61 6c 0d 13 60 13 20 20 20 20 | BNE dal..`. | 00002150 53 55 42 20 4c 4c 2c 4c 2c 23 31 0d 13 6a 14 20 |SUB LL,L,#1..j. | 00002160 20 20 20 53 55 42 53 20 20 4a 2c 4a 2c 23 34 0d | SUBS J,J,#4.| 00002170 13 74 10 20 20 42 4e 45 20 6c 6f 6f 70 67 72 0d |.t. BNE loopgr.| 00002180 13 7e 0e 4d 4f 56 20 50 43 2c 52 31 34 0d 13 88 |.~.MOV PC,R14...| 00002190 04 0d 13 92 0a 2e 73 74 61 72 74 0d 13 9c 14 20 |......start.... | 000021a0 20 53 54 4d 46 44 20 31 33 21 2c 7b 31 34 7d 0d | STMFD 13!,{14}.| 000021b0 13 a6 11 20 20 4d 4f 56 20 52 30 2c 23 26 31 30 |... MOV R0,#&10| 000021c0 0d 13 b0 15 20 20 41 44 52 20 52 31 2c 6b 65 79 |.... ADR R1,key| 000021d0 70 72 65 73 73 0d 13 ba 0f 20 20 4d 4f 56 20 52 |press.... MOV R| 000021e0 32 2c 23 30 0d 13 c4 14 20 20 53 57 49 20 22 4f |2,#0.... SWI "O| 000021f0 53 5f 43 6c 61 69 6d 22 0d 13 ce 11 20 20 4d 4f |S_Claim".... MO| 00002200 56 20 52 30 2c 23 26 30 45 0d 13 d8 10 20 20 4d |V R0,#&0E.... M| 00002210 4f 56 20 52 31 2c 23 31 31 0d 13 e2 13 20 20 53 |OV R1,#11.... S| 00002220 57 49 20 22 4f 53 5f 42 79 74 65 22 0d 13 ec 19 |WI "OS_Byte"....| 00002230 20 20 4d 4f 56 20 54 2c 23 28 36 34 2d 44 4d 32 | MOV T,#(64-DM2| 00002240 29 20 81 20 32 0d 13 f6 16 20 20 41 44 44 20 54 |) . 2.... ADD T| 00002250 2c 54 2c 54 2c 4c 53 4c 20 23 32 0d 14 00 14 20 |,T,T,LSL #2.... | 00002260 20 4d 4f 56 20 54 2c 54 2c 4c 53 4c 20 23 37 0d | MOV T,T,LSL #7.| 00002270 14 0a 1f 20 20 41 44 44 20 54 2c 54 2c 23 28 28 |... ADD T,T,#((| 00002280 38 30 2d 44 4d 31 29 20 81 20 32 29 2a 38 0d 14 |80-DM1) . 2)*8..| 00002290 14 13 20 20 4c 44 52 20 54 41 42 31 2c 74 61 62 |.. LDR TAB1,tab| 000022a0 31 0d 14 1e 15 20 20 41 44 44 20 54 41 42 31 2c |1.... ADD TAB1,| 000022b0 54 41 42 31 2c 54 0d 14 28 12 20 20 53 54 52 20 |TAB1,T..(. STR | 000022c0 54 41 42 31 2c 74 61 31 0d 14 32 13 20 20 4c 44 |TAB1,ta1..2. LD| 000022d0 52 20 54 41 42 32 2c 74 61 62 32 0d 14 3c 15 20 |R TAB2,tab2..<. | 000022e0 20 41 44 44 20 54 41 42 32 2c 54 41 42 32 2c 54 | ADD TAB2,TAB2,T| 000022f0 0d 14 46 12 20 20 53 54 52 20 54 41 42 32 2c 74 |..F. STR TAB2,t| 00002300 61 32 0d 14 50 0b 20 20 2e 6c 6f 6f 70 0d 14 5a |a2..P. .loop..Z| 00002310 13 20 20 20 20 4d 4f 56 20 52 30 2c 23 26 37 30 |. MOV R0,#&70| 00002320 0d 14 64 11 20 20 20 20 4c 44 52 20 52 31 2c 6d |..d. LDR R1,m| 00002330 6f 0d 14 6e 15 20 20 20 20 53 57 49 20 22 4f 53 |o..n. SWI "OS| 00002340 5f 42 79 74 65 22 0d 14 78 14 20 20 20 20 4c 44 |_Byte"..x. LD| 00002350 52 20 54 2c 63 68 6f 69 63 65 0d 14 82 13 20 20 |R T,choice.... | 00002360 20 20 54 53 54 20 54 2c 23 38 2b 31 36 0d 14 8c | TST T,#8+16...| 00002370 10 20 20 20 20 42 45 51 20 6f 76 72 37 0d 14 96 |. BEQ ovr7...| 00002380 14 20 20 20 20 20 20 53 55 42 20 54 2c 54 2c 23 |. SUB T,T,#| 00002390 38 0d 14 a0 16 20 20 20 20 20 20 53 54 52 20 54 |8.... STR T| 000023a0 2c 63 68 6f 69 63 65 0d 14 aa 14 20 20 20 20 20 |,choice.... | 000023b0 20 4d 4f 56 20 52 30 2c 23 31 36 0d 14 b4 19 20 | MOV R0,#16.... | 000023c0 20 20 20 20 20 53 57 49 20 22 4f 53 5f 57 72 69 | SWI "OS_Wri| 000023d0 74 65 43 22 0d 14 be 0d 20 20 20 20 2e 6f 76 72 |teC".... .ovr| 000023e0 37 0d 14 c8 13 20 20 20 20 41 44 52 20 52 30 2c |7.... ADR R0,| 000023f0 73 63 72 31 0d 14 d2 13 20 20 20 20 41 44 52 20 |scr1.... ADR | 00002400 52 31 2c 73 63 72 32 0d 14 dc 21 20 20 20 20 53 |R1,scr2...! S| 00002410 57 49 20 22 4f 53 5f 52 65 61 64 56 64 75 56 61 |WI "OS_ReadVduVa| 00002420 72 69 61 62 6c 65 73 22 0d 14 e6 14 20 20 20 20 |riables".... | 00002430 4c 44 52 20 54 41 42 31 2c 74 61 31 0d 14 f0 14 |LDR TAB1,ta1....| 00002440 20 20 20 20 4c 44 52 20 54 41 42 32 2c 74 61 32 | LDR TAB2,ta2| 00002450 0d 14 fa 14 20 20 20 20 53 54 52 20 54 41 42 31 |.... STR TAB1| 00002460 2c 74 61 32 0d 15 04 14 20 20 20 20 53 54 52 20 |,ta2.... STR | 00002470 54 41 42 32 2c 74 61 31 0d 15 0e 14 20 20 20 20 |TAB2,ta1.... | 00002480 4c 44 52 20 54 2c 63 68 6f 69 63 65 0d 15 18 11 |LDR T,choice....| 00002490 20 20 20 20 54 53 54 20 54 2c 23 33 32 0d 15 22 | TST T,#32.."| 000024a0 13 20 20 20 20 42 45 51 20 65 6e 64 63 61 73 65 |. BEQ endcase| 000024b0 0d 15 2c 0d 20 20 20 20 2e 63 61 73 65 0d 15 36 |..,. .case..6| 000024c0 15 20 20 20 20 20 20 42 49 43 20 54 2c 54 2c 23 |. BIC T,T,#| 000024d0 33 32 0d 15 40 16 20 20 20 20 20 20 53 54 52 20 |32..@. STR | 000024e0 54 2c 63 68 6f 69 63 65 0d 15 4a 16 20 20 20 20 |T,choice..J. | 000024f0 20 20 4c 44 52 20 54 41 42 31 2c 74 61 31 0d 15 | LDR TAB1,ta1..| 00002500 54 16 20 20 20 20 20 20 42 4c 20 66 69 78 5f 65 |T. BL fix_e| 00002510 64 67 65 73 0d 15 5e 16 20 20 20 20 20 20 4c 44 |dges..^. LD| 00002520 52 20 54 41 42 31 2c 74 61 32 0d 15 68 16 20 20 |R TAB1,ta2..h. | 00002530 20 20 20 20 42 4c 20 66 69 78 5f 65 64 67 65 73 | BL fix_edges| 00002540 0d 15 72 10 20 20 20 20 2e 65 6e 64 63 61 73 65 |..r. .endcase| 00002550 0d 15 7c 18 20 20 20 20 42 4c 20 6d 6f 75 73 65 |..|. BL mouse| 00002560 5f 63 6f 6e 74 72 6f 6c 0d 15 86 12 20 20 20 20 |_control.... | 00002570 42 4c 20 73 6f 75 72 63 65 73 0d 15 90 14 20 20 |BL sources.... | 00002580 20 20 4c 44 52 20 54 2c 63 68 6f 69 63 65 0d 15 | LDR T,choice..| 00002590 9a 10 20 20 20 20 54 53 54 20 54 2c 23 32 0d 15 |.. TST T,#2..| 000025a0 a4 18 20 20 20 20 42 4c 4e 45 20 6c 6f 6f 73 65 |.. BLNE loose| 000025b0 5f 65 64 67 65 73 0d 15 ae 14 20 20 20 20 4c 44 |_edges.... LD| 000025c0 52 20 53 43 52 2c 73 63 72 32 0d 15 b8 14 20 20 |R SCR,scr2.... | 000025d0 20 20 4c 44 52 20 54 2c 63 68 6f 69 63 65 0d 15 | LDR T,choice..| 000025e0 c2 10 20 20 20 20 54 53 54 20 54 2c 23 31 0d 15 |.. TST T,#1..| 000025f0 cc 10 20 20 20 20 42 4e 45 20 65 6c 73 65 0d 15 |.. BNE else..| 00002600 d6 1f 20 20 20 20 20 20 42 4c 20 73 69 6d 75 6c |.. BL simul| 00002610 61 74 69 6f 6e 5f 64 69 73 70 6c 61 79 0d 15 e0 |ation_display...| 00002620 16 20 20 20 20 20 20 4c 44 52 20 53 43 52 2c 73 |. LDR SCR,s| 00002630 63 72 32 0d 15 ea 16 20 20 20 20 20 20 4c 44 52 |cr2.... LDR| 00002640 20 54 2c 63 68 6f 69 63 65 0d 15 f4 12 20 20 20 | T,choice.... | 00002650 20 20 20 54 53 54 20 54 2c 23 34 0d 15 fe 21 20 | TST T,#4...! | 00002660 20 20 20 20 20 42 4c 4e 45 20 63 6f 75 6c 6f 72 | BLNE coulor| 00002670 5f 74 72 61 6e 73 6c 61 74 69 6f 6e 0d 16 08 11 |_translation....| 00002680 20 20 20 20 42 41 4c 20 65 6e 64 69 66 0d 16 12 | BAL endif...| 00002690 0d 20 20 20 20 2e 65 6c 73 65 0d 16 1c 14 20 20 |. .else.... | 000026a0 20 20 20 20 4d 4f 56 20 52 30 2c 23 31 36 0d 16 | MOV R0,#16..| 000026b0 26 19 20 20 20 20 20 20 53 57 49 20 22 4f 53 5f |&. SWI "OS_| 000026c0 57 72 69 74 65 43 22 0d 16 30 17 20 20 20 20 20 |WriteC"..0. | 000026d0 20 42 4c 20 73 69 6d 75 6c 61 74 69 6f 6e 0d 16 | BL simulation..| 000026e0 3a 16 20 20 20 20 20 20 4c 44 52 20 53 43 52 2c |:. LDR SCR,| 000026f0 73 63 72 32 0d 16 44 16 20 20 20 20 20 20 4c 44 |scr2..D. LD| 00002700 52 20 54 41 42 31 2c 74 61 32 0d 16 4e 16 20 20 |R TAB1,ta2..N. | 00002710 20 20 20 20 4c 44 52 20 54 2c 63 68 6f 69 63 65 | LDR T,choice| 00002720 0d 16 58 12 20 20 20 20 20 20 54 53 54 20 54 2c |..X. TST T,| 00002730 23 34 0d 16 62 1a 20 20 20 20 20 20 42 4c 45 51 |#4..b. BLEQ| 00002740 20 77 69 72 65 64 69 73 70 6c 61 79 0d 16 6c 1c | wiredisplay..l.| 00002750 20 20 20 20 20 20 42 4c 4e 45 20 77 69 72 65 64 | BLNE wired| 00002760 69 73 70 6c 61 79 63 74 0d 16 76 0e 20 20 20 20 |isplayct..v. | 00002770 2e 65 6e 64 69 66 0d 16 80 14 20 20 20 20 4c 44 |.endif.... LD| 00002780 52 20 54 2c 63 68 6f 69 63 65 0d 16 8a 11 20 20 |R T,choice.... | 00002790 20 20 54 53 54 20 54 2c 23 36 34 0d 16 94 17 20 | TST T,#64.... | 000027a0 20 20 20 20 20 42 49 43 4e 45 20 54 2c 54 2c 23 | BICNE T,T,#| 000027b0 36 34 0d 16 9e 18 20 20 20 20 20 20 53 54 52 4e |64.... STRN| 000027c0 45 20 54 2c 63 68 6f 69 63 65 0d 16 a8 19 20 20 |E T,choice.... | 000027d0 20 20 20 20 42 4c 4e 45 20 73 61 76 65 73 63 72 | BLNE savescr| 000027e0 65 65 6e 0d 16 b2 0d 20 20 20 20 2e 77 61 69 74 |een.... .wait| 000027f0 0d 16 bc 18 20 20 20 20 20 20 53 57 49 20 22 4f |.... SWI "O| 00002800 53 5f 4d 6f 75 73 65 22 0d 16 c6 12 20 20 20 20 |S_Mouse".... | 00002810 20 20 43 4d 50 20 54 2c 23 31 0d 16 d0 10 20 20 | CMP T,#1.... | 00002820 20 20 42 45 51 20 77 61 69 74 0d 16 da 10 20 20 | BEQ wait.... | 00002830 20 20 43 4d 50 20 54 2c 23 32 0d 16 e4 0f 20 20 | CMP T,#2.... | 00002840 20 20 42 45 51 20 65 6e 64 0d 16 ee 13 20 20 20 | BEQ end.... | 00002850 20 4d 4f 56 20 52 30 2c 23 26 31 33 0d 16 f8 15 | MOV R0,#&13....| 00002860 20 20 20 20 53 57 49 20 22 4f 53 5f 42 79 74 65 | SWI "OS_Byte| 00002870 22 0d 17 02 10 20 20 20 20 4c 44 52 20 54 2c 6d |".... LDR T,m| 00002880 6f 0d 17 0c 13 20 20 20 20 4d 4f 56 20 52 30 2c |o.... MOV R0,| 00002890 23 26 37 31 0d 17 16 10 20 20 20 20 4d 4f 56 20 |#&71.... MOV | 000028a0 52 31 2c 54 0d 17 20 10 20 20 20 20 82 20 54 2c |R1,T.. . . T,| 000028b0 54 2c 23 33 0d 17 2a 10 20 20 20 20 53 54 52 20 |T,#3..*. STR | 000028c0 54 2c 6d 6f 0d 17 34 15 20 20 20 20 53 57 49 20 |T,mo..4. SWI | 000028d0 22 4f 53 5f 42 79 74 65 22 0d 17 3e 0e 20 20 42 |"OS_Byte"..>. B| 000028e0 41 4c 20 6c 6f 6f 70 0d 17 48 08 2e 65 6e 64 0d |AL loop..H..end.| 000028f0 17 52 11 20 20 4d 4f 56 20 52 30 2c 23 26 30 44 |.R. MOV R0,#&0D| 00002900 0d 17 5c 10 20 20 4d 4f 56 20 52 31 2c 23 31 31 |..\. MOV R1,#11| 00002910 0d 17 66 13 20 20 53 57 49 20 22 4f 53 5f 42 79 |..f. SWI "OS_By| 00002920 74 65 22 0d 17 70 11 20 20 4d 4f 56 20 52 30 2c |te"..p. MOV R0,| 00002930 23 26 31 30 0d 17 7a 15 20 20 41 44 52 20 52 31 |#&10..z. ADR R1| 00002940 2c 6b 65 79 70 72 65 73 73 0d 17 84 0f 20 20 4d |,keypress.... M| 00002950 4f 56 20 52 32 2c 23 30 0d 17 8e 16 20 20 53 57 |OV R2,#0.... SW| 00002960 49 20 22 4f 53 5f 52 65 6c 65 61 73 65 22 0d 17 |I "OS_Release"..| 00002970 98 12 4c 44 4d 46 44 20 31 33 21 2c 7b 31 35 7d |..LDMFD 13!,{15}| 00002980 0d 17 a2 04 0d 17 ac 04 0d 17 b6 0d 2e 6b 65 79 |.............key| 00002990 70 72 65 73 73 0d 17 c0 10 20 20 43 4d 50 20 52 |press.... CMP R| 000029a0 30 2c 23 31 31 0d 17 ca 12 20 20 4d 4f 56 4e 45 |0,#11.... MOVNE| 000029b0 20 50 43 2c 52 31 34 0d 17 d4 0f 20 20 43 4d 50 | PC,R14.... CMP| 000029c0 20 52 31 2c 23 31 0d 17 de 12 20 20 4d 4f 56 4e | R1,#1.... MOVN| 000029d0 45 20 50 43 2c 52 31 34 0d 17 e8 15 20 20 53 54 |E PC,R14.... ST| 000029e0 4d 46 44 20 31 33 21 2c 7b 30 2d 33 7d 0d 17 f2 |MFD 13!,{0-3}...| 000029f0 13 20 20 4c 44 52 20 52 31 2c 63 68 6f 69 63 65 |. LDR R1,choice| 00002a00 0d 17 fc 11 20 20 43 4d 50 20 52 32 2c 23 26 33 |.... CMP R2,#&3| 00002a10 30 0d 18 06 12 20 20 82 45 51 20 52 31 2c 52 31 |0.... .EQ R1,R1| 00002a20 2c 23 31 0d 18 10 14 20 20 84 52 45 51 20 52 31 |,#1.... .REQ R1| 00002a30 2c 52 31 2c 23 31 36 0d 18 1a 11 20 20 43 4d 50 |,R1,#16.... CMP| 00002a40 20 52 32 2c 23 26 32 39 0d 18 24 12 20 20 82 45 | R2,#&29..$. .E| 00002a50 51 20 52 31 2c 52 31 2c 23 32 0d 18 2e 14 20 20 |Q R1,R1,#2.... | 00002a60 84 52 45 51 20 52 31 2c 52 31 2c 23 33 32 0d 18 |.REQ R1,R1,#32..| 00002a70 38 11 20 20 43 4d 50 20 52 32 2c 23 26 35 30 0d |8. CMP R2,#&50.| 00002a80 18 42 12 20 20 82 45 51 20 52 31 2c 52 31 2c 23 |.B. .EQ R1,R1,#| 00002a90 34 0d 18 4c 11 20 20 43 4d 50 20 52 32 2c 23 26 |4..L. CMP R2,#&| 00002aa0 33 44 0d 18 56 14 20 20 84 52 45 51 20 52 31 2c |3D..V. .REQ R1,| 00002ab0 52 31 2c 23 36 34 0d 18 60 13 20 20 53 54 52 20 |R1,#64..`. STR | 00002ac0 52 31 2c 63 68 6f 69 63 65 0d 18 6a 15 20 20 4c |R1,choice..j. L| 00002ad0 44 4d 46 44 20 31 33 21 2c 7b 30 2d 33 7d 0d 18 |DMFD 13!,{0-3}..| 00002ae0 74 0e 4d 4f 56 20 50 43 2c 52 31 34 0d 18 7e 04 |t.MOV PC,R14..~.| 00002af0 0d 18 88 12 2e 6d 6f 75 73 65 5f 63 6f 6e 74 72 |.....mouse_contr| 00002b00 6f 6c 0d 18 92 14 20 20 53 57 49 20 22 4f 53 5f |ol.... SWI "OS_| 00002b10 4d 6f 75 73 65 22 0d 18 9c 0e 20 20 43 4d 50 20 |Mouse".... CMP | 00002b20 54 2c 23 34 0d 18 a6 0e 20 20 42 4e 45 20 73 6b |T,#4.... BNE sk| 00002b30 69 70 0d 18 b0 0e 20 20 4c 44 52 20 58 2c 65 78 |ip.... LDR X,ex| 00002b40 0d 18 ba 0e 20 20 4c 44 52 20 59 2c 65 79 0d 18 |.... LDR Y,ey..| 00002b50 c4 0e 20 20 43 4d 50 20 58 2c 23 30 0d 18 ce 0e |.. CMP X,#0....| 00002b60 20 20 42 45 51 20 64 6f 6e 74 0d 18 d8 0f 20 20 | BEQ dont.... | 00002b70 4d 4f 56 20 54 2c 23 38 30 0d 18 e2 0f 20 20 4d |MOV T,#80.... M| 00002b80 55 4c 20 54 2c 59 2c 54 0d 18 ec 0f 20 20 41 44 |UL T,Y,T.... AD| 00002b90 44 20 54 2c 54 2c 58 0d 18 f6 14 20 20 4d 4f 56 |D T,T,X.... MOV| 00002ba0 20 54 2c 54 2c 4c 53 4c 20 23 33 0d 19 00 12 20 | T,T,LSL #3.... | 00002bb0 20 41 44 44 20 54 2c 54 2c 54 41 42 31 0d 19 0a | ADD T,T,TAB1...| 00002bc0 13 20 20 4c 44 4d 49 41 20 54 2c 7b 4f 2c 56 7d |. LDMIA T,{O,V}| 00002bd0 0d 19 14 0f 20 20 53 55 42 20 4f 2c 4f 2c 56 0d |.... SUB O,O,V.| 00002be0 19 1e 14 20 20 4d 4f 56 20 56 2c 23 32 34 30 3c |... MOV V,#240<| 00002bf0 3c 31 36 0d 19 28 13 20 20 53 54 4d 49 41 20 54 |<16..(. STMIA T| 00002c00 2c 7b 4f 2c 56 7d 0d 19 32 0b 20 20 2e 64 6f 6e |,{O,V}..2. .don| 00002c10 74 0d 19 3c 14 20 20 4d 4f 56 20 58 2c 49 2c 4c |t..<. MOV X,I,L| 00002c20 53 52 20 23 34 0d 19 46 14 20 20 4d 4f 56 20 59 |SR #4..F. MOV Y| 00002c30 2c 4a 2c 4c 53 52 20 23 34 0d 19 50 16 20 20 52 |,J,LSR #4..P. R| 00002c40 53 42 20 59 2c 59 2c 23 28 44 4d 32 2d 31 29 0d |SB Y,Y,#(DM2-1).| 00002c50 19 5a 14 20 20 43 4d 50 20 58 2c 23 28 44 4d 31 |.Z. CMP X,#(DM1| 00002c60 2d 31 29 0d 19 64 0d 20 20 42 48 53 20 6f 75 74 |-1)..d. BHS out| 00002c70 0d 19 6e 0e 20 20 43 4d 50 20 58 2c 23 30 0d 19 |..n. CMP X,#0..| 00002c80 78 0d 20 20 42 4c 53 20 6f 75 74 0d 19 82 14 20 |x. BLS out.... | 00002c90 20 43 4d 50 20 59 2c 23 28 44 4d 32 2d 31 29 0d | CMP Y,#(DM2-1).| 00002ca0 19 8c 0d 20 20 42 48 53 20 6f 75 74 0d 19 96 0e |... BHS out....| 00002cb0 20 20 43 4d 50 20 59 2c 23 30 0d 19 a0 0d 20 20 | CMP Y,#0.... | 00002cc0 42 4c 53 20 6f 75 74 0d 19 aa 0e 20 20 53 54 52 |BLS out.... STR| 00002cd0 20 58 2c 65 78 0d 19 b4 0e 20 20 53 54 52 20 59 | X,ex.... STR Y| 00002ce0 2c 65 79 0d 19 be 10 20 20 4d 4f 56 20 50 43 2c |,ey.... MOV PC,| 00002cf0 52 31 34 0d 19 c8 0a 20 20 2e 6f 75 74 0d 19 d2 |R14.... .out...| 00002d00 0e 20 20 4d 4f 56 20 58 2c 23 30 0d 19 dc 0e 20 |. MOV X,#0.... | 00002d10 20 53 54 52 20 58 2c 65 78 0d 19 e6 10 20 20 4d | STR X,ex.... M| 00002d20 4f 56 20 50 43 2c 52 31 34 0d 19 f0 0b 20 20 2e |OV PC,R14.... .| 00002d30 73 6b 69 70 0d 19 fa 0e 20 20 4c 44 52 20 58 2c |skip.... LDR X,| 00002d40 65 78 0d 1a 04 0e 20 20 4c 44 52 20 59 2c 65 79 |ex.... LDR Y,ey| 00002d50 0d 1a 0e 0e 20 20 43 4d 50 20 58 2c 23 30 0d 1a |.... CMP X,#0..| 00002d60 18 0f 20 20 ec 51 20 50 43 2c 52 31 34 0d 1a 22 |.. .Q PC,R14.."| 00002d70 0f 20 20 4d 4f 56 20 54 2c 23 38 30 0d 1a 2c 0f |. MOV T,#80..,.| 00002d80 20 20 4d 55 4c 20 54 2c 59 2c 54 0d 1a 36 0f 20 | MUL T,Y,T..6. | 00002d90 20 41 44 44 20 54 2c 54 2c 58 0d 1a 40 14 20 20 | ADD T,T,X..@. | 00002da0 4d 4f 56 20 54 2c 54 2c 4c 53 4c 20 23 33 0d 1a |MOV T,T,LSL #3..| 00002db0 4a 1b 20 20 53 55 42 20 4a 2c 4a 2c 23 28 44 4d |J. SUB J,J,#(DM| 00002dc0 32 20 81 20 32 29 2a 31 36 0d 1a 54 15 20 20 4d |2 . 2)*16..T. M| 00002dd0 4f 56 20 4a 2c 4a 2c 4c 53 4c 20 23 31 38 0d 1a |OV J,J,LSL #18..| 00002de0 5e 17 20 20 41 44 44 20 4a 2c 4a 2c 23 42 41 53 |^. ADD J,J,#BAS| 00002df0 45 3c 3c 32 30 0d 1a 68 14 20 20 53 54 52 20 4a |E<<20..h. STR J| 00002e00 2c 5b 54 41 42 31 2c 54 5d 0d 1a 72 0e 4d 4f 56 |,[TAB1,T]..r.MOV| 00002e10 20 50 43 2c 52 31 34 0d 1a 7c 04 0d 1a 86 0f 2e | PC,R14..|......| 00002e20 73 61 76 65 73 63 72 65 65 6e 0d 1a 90 13 53 54 |savescreen....ST| 00002e30 4d 46 44 20 31 33 21 2c 7b 30 2d 33 7d 0d 1a 9a |MFD 13!,{0-3}...| 00002e40 0f 20 20 4d 4f 56 20 52 30 2c 23 32 0d 1a a4 11 |. MOV R0,#2....| 00002e50 20 20 41 44 52 20 52 32 2c 6e 61 6d 65 0d 1a ae | ADR R2,name...| 00002e60 0f 20 20 4d 4f 56 20 52 33 2c 23 30 0d 1a b8 17 |. MOV R3,#0....| 00002e70 20 20 53 57 49 20 22 4f 53 5f 53 70 72 69 74 65 | SWI "OS_Sprite| 00002e80 4f 70 22 0d 1a c2 15 20 20 4c 44 52 42 20 52 30 |Op".... LDRB R0| 00002e90 2c 5b 52 32 2c 23 34 5d 0d 1a cc 12 20 20 41 44 |,[R2,#4].... AD| 00002ea0 44 20 52 30 2c 52 30 2c 23 31 0d 1a d6 15 20 20 |D R0,R0,#1.... | 00002eb0 53 54 52 42 20 52 30 2c 5b 52 32 2c 23 34 5d 0d |STRB R0,[R2,#4].| 00002ec0 1a e0 13 4c 44 4d 46 44 20 31 33 21 2c 7b 30 2d |...LDMFD 13!,{0-| 00002ed0 33 7d 0d 1a ea 0e 4d 4f 56 20 50 43 2c 52 31 34 |3}....MOV PC,R14| 00002ee0 0d 1a f4 04 0d 1a fe 0c 2e 73 6f 75 72 63 65 73 |.........sources| 00002ef0 0d 1b 08 19 20 20 4d 4f 56 20 43 2c 23 28 36 34 |.... MOV C,#(64| 00002f00 2d 44 4d 32 29 20 81 20 32 0d 1b 12 16 20 20 41 |-DM2) . 2.... A| 00002f10 44 44 20 43 2c 43 2c 43 2c 4c 53 4c 20 23 32 0d |DD C,C,C,LSL #2.| 00002f20 1b 1c 14 20 20 4d 4f 56 20 43 2c 43 2c 4c 53 4c |... MOV C,C,LSL| 00002f30 20 23 37 0d 1b 26 1f 20 20 41 44 44 20 43 2c 43 | #7..&. ADD C,C| 00002f40 2c 23 28 28 38 30 2d 44 4d 31 29 20 81 20 32 29 |,#((80-DM1) . 2)| 00002f50 2a 38 0d 1b 30 15 20 20 53 55 42 20 54 41 42 31 |*8..0. SUB TAB1| 00002f60 2c 54 41 42 31 2c 43 0d 1b 3a 15 20 20 4d 4f 56 |,TAB1,C..:. MOV| 00002f70 20 4d 41 53 4b 2c 23 31 3c 3c 31 30 0d 1b 44 16 | MASK,#1<<10..D.| 00002f80 20 20 53 55 42 20 4d 41 53 4b 2c 4d 41 53 4b 2c | SUB MASK,MASK,| 00002f90 23 31 0d 1b 4e 15 20 20 4c 44 52 20 53 4e 55 53 |#1..N. LDR SNUS| 00002fa0 2c 73 6e 75 74 61 62 0d 1b 58 15 20 20 4c 44 52 |,snutab..X. LDR| 00002fb0 20 57 41 56 53 2c 77 61 76 74 61 62 0d 1b 62 13 | WAVS,wavtab..b.| 00002fc0 20 20 4c 44 52 20 54 49 4a 44 2c 74 69 6d 65 0d | LDR TIJD,time.| 00002fd0 1b 6c 16 20 20 41 44 44 20 54 49 4a 44 2c 54 49 |.l. ADD TIJD,TI| 00002fe0 4a 44 2c 23 31 0d 1b 76 13 20 20 53 54 52 20 54 |JD,#1..v. STR T| 00002ff0 49 4a 44 2c 74 69 6d 65 0d 1b 80 0c 20 20 2e 6c |IJD,time.... .l| 00003000 6f 6f 70 77 0d 1b 8a 2a 20 20 20 20 4c 44 4d 49 |oopw...* LDMI| 00003010 41 20 28 57 41 56 53 29 21 2c 7b 50 4f 53 49 2c |A (WAVS)!,{POSI,| 00003020 41 4d 50 4c 2c 46 52 45 51 2c 50 48 41 7d 0d 1b |AMPL,FREQ,PHA}..| 00003030 94 17 20 20 20 20 4d 55 4c 20 54 2c 54 49 4a 44 |.. MUL T,TIJD| 00003040 2c 46 52 45 51 0d 1b 9e 13 20 20 20 20 41 44 44 |,FREQ.... ADD| 00003050 20 54 2c 54 2c 50 48 41 0d 1b a8 12 20 20 20 20 | T,T,PHA.... | 00003060 80 20 54 2c 54 2c 4d 41 53 4b 0d 1b b2 1d 20 20 |. T,T,MASK.... | 00003070 20 20 4c 44 52 20 54 2c 5b 53 4e 55 53 2c 54 2c | LDR T,[SNUS,T,| 00003080 4c 53 4c 20 23 32 5d 0d 1b bc 17 20 20 20 20 4d |LSL #2].... M| 00003090 55 4c 20 41 4d 50 4c 2c 54 2c 41 4d 50 4c 0d 1b |UL AMPL,T,AMPL..| 000030a0 c6 13 20 20 20 20 43 4d 4e 20 50 4f 53 49 2c 23 |.. CMN POSI,#| 000030b0 31 0d 1b d0 1f 20 20 20 20 41 44 44 20 41 4d 50 |1.... ADD AMP| 000030c0 4c 2c 41 4d 50 4c 2c 23 42 41 53 45 3c 3c 32 30 |L,AMPL,#BASE<<20| 000030d0 0d 1b da 1e 20 20 20 20 53 54 52 4e 45 20 41 4d |.... STRNE AM| 000030e0 50 4c 2c 5b 54 41 42 31 2c 50 4f 53 49 5d 0d 1b |PL,[TAB1,POSI]..| 000030f0 e4 0f 20 20 42 4e 45 20 6c 6f 6f 70 77 0d 1b ee |.. BNE loopw...| 00003100 15 20 20 41 44 44 20 54 41 42 31 2c 54 41 42 31 |. ADD TAB1,TAB1| 00003110 2c 43 0d 1b f8 0e 4d 4f 56 20 50 43 2c 52 31 34 |,C....MOV PC,R14| 00003120 0d 1c 02 04 0d 1c 0c 0e 2e 66 69 78 5f 65 64 67 |.........fix_edg| 00003130 65 73 0d 1c 16 0e 20 20 4d 4f 56 20 49 2c 23 30 |es.... MOV I,#0| 00003140 0d 1c 20 10 20 20 4d 4f 56 20 4a 2c 23 44 4d 32 |.. . MOV J,#DM2| 00003150 0d 1c 2a 11 20 20 4d 4f 56 20 54 2c 23 38 2a 38 |..*. MOV T,#8*8| 00003160 30 0d 1c 34 0f 20 20 4d 55 4c 20 4a 2c 54 2c 4a |0..4. MUL J,T,J| 00003170 0d 1c 3e 15 20 20 4d 4f 56 20 54 2c 23 42 41 53 |..>. MOV T,#BAS| 00003180 45 3c 3c 32 30 0d 1c 48 14 20 20 53 55 42 20 54 |E<<20..H. SUB T| 00003190 2c 54 2c 23 31 3c 3c 31 39 0d 1c 52 11 20 20 2e |,T,#1<<19..R. .| 000031a0 68 6f 72 7a 5f 65 64 67 65 31 0d 1c 5c 14 20 20 |horz_edge1..\. | 000031b0 20 20 41 44 44 20 57 2c 54 41 42 31 2c 49 0d 1c | ADD W,TAB1,I..| 000031c0 66 11 20 20 20 20 53 54 52 20 54 2c 5b 57 5d 0d |f. STR T,[W].| 000031d0 1c 70 11 20 20 20 20 41 44 44 20 57 2c 57 2c 4a |.p. ADD W,W,J| 000031e0 0d 1c 7a 18 20 20 20 20 53 54 52 20 54 2c 5b 57 |..z. STR T,[W| 000031f0 2c 23 2d 38 30 2a 38 5d 0d 1c 84 12 20 20 20 20 |,#-80*8].... | 00003200 41 44 44 20 49 2c 49 2c 23 38 0d 1c 8e 14 20 20 |ADD I,I,#8.... | 00003210 20 20 43 4d 50 20 49 2c 23 44 4d 31 2a 38 0d 1c | CMP I,#DM1*8..| 00003220 98 14 20 20 42 4e 45 20 68 6f 72 7a 5f 65 64 67 |.. BNE horz_edg| 00003230 65 31 0d 1c a2 0e 20 20 4d 4f 56 20 49 2c 23 30 |e1.... MOV I,#0| 00003240 0d 1c ac 11 20 20 2e 76 65 72 74 5f 65 64 67 65 |.... .vert_edge| 00003250 31 0d 1c b6 14 20 20 20 20 41 44 44 20 57 2c 54 |1.... ADD W,T| 00003260 41 42 31 2c 49 0d 1c c0 11 20 20 20 20 53 54 52 |AB1,I.... STR| 00003270 20 54 2c 5b 57 5d 0d 1c ca 16 20 20 20 20 41 44 | T,[W].... AD| 00003280 44 20 57 2c 57 2c 23 44 4d 31 2a 38 0d 1c d4 15 |D W,W,#DM1*8....| 00003290 20 20 20 20 53 54 52 20 54 2c 5b 57 2c 23 2d 38 | STR T,[W,#-8| 000032a0 5d 0d 1c de 15 20 20 20 20 41 44 44 20 49 2c 49 |].... ADD I,I| 000032b0 2c 23 38 30 2a 38 0d 1c e8 0f 20 20 20 20 43 4d |,#80*8.... CM| 000032c0 50 20 49 2c 4a 0d 1c f2 14 20 20 42 4e 45 20 76 |P I,J.... BNE v| 000032d0 65 72 74 5f 65 64 67 65 31 0d 1c fc 0e 4d 4f 56 |ert_edge1....MOV| 000032e0 20 50 43 2c 52 31 34 0d 1d 06 04 0d 1d 10 10 2e | PC,R14.........| 000032f0 6c 6f 6f 73 65 5f 65 64 67 65 73 0d 1d 1a 0e 20 |loose_edges.... | 00003300 20 4d 4f 56 20 49 2c 23 30 0d 1d 24 10 20 20 4d | MOV I,#0..$. M| 00003310 4f 56 20 4a 2c 23 44 4d 32 0d 1d 2e 11 20 20 4d |OV J,#DM2.... M| 00003320 4f 56 20 54 2c 23 38 2a 38 30 0d 1d 38 0f 20 20 |OV T,#8*80..8. | 00003330 4d 55 4c 20 4a 2c 54 2c 4a 0d 1d 42 11 20 20 2e |MUL J,T,J..B. .| 00003340 68 6f 72 7a 5f 65 64 67 65 32 0d 1d 4c 14 20 20 |horz_edge2..L. | 00003350 20 20 41 44 44 20 57 2c 54 41 42 31 2c 49 0d 1d | ADD W,TAB1,I..| 00003360 56 17 20 20 20 20 4c 44 52 20 54 2c 5b 57 2c 23 |V. LDR T,[W,#| 00003370 38 30 2a 38 5d 0d 1d 60 11 20 20 20 20 53 54 52 |80*8]..`. STR| 00003380 20 54 2c 5b 57 5d 0d 1d 6a 11 20 20 20 20 41 44 | T,[W]..j. AD| 00003390 44 20 57 2c 57 2c 4a 0d 1d 74 1a 20 20 20 20 4c |D W,W,J..t. L| 000033a0 44 52 20 54 2c 5b 57 2c 23 2d 32 2a 38 30 2a 38 |DR T,[W,#-2*80*8| 000033b0 5d 0d 1d 7e 18 20 20 20 20 53 54 52 20 54 2c 5b |]..~. STR T,[| 000033c0 57 2c 23 2d 38 30 2a 38 5d 0d 1d 88 12 20 20 20 |W,#-80*8].... | 000033d0 20 41 44 44 20 49 2c 49 2c 23 38 0d 1d 92 14 20 | ADD I,I,#8.... | 000033e0 20 20 20 43 4d 50 20 49 2c 23 44 4d 31 2a 38 0d | CMP I,#DM1*8.| 000033f0 1d 9c 14 20 20 42 4e 45 20 68 6f 72 7a 5f 65 64 |... BNE horz_ed| 00003400 67 65 32 0d 1d a6 0e 20 20 4d 4f 56 20 49 2c 23 |ge2.... MOV I,#| 00003410 30 0d 1d b0 11 20 20 2e 76 65 72 74 5f 65 64 67 |0.... .vert_edg| 00003420 65 32 0d 1d ba 14 20 20 20 20 41 44 44 20 57 2c |e2.... ADD W,| 00003430 54 41 42 31 2c 49 0d 1d c4 15 20 20 20 20 4c 44 |TAB1,I.... LD| 00003440 52 20 54 2c 5b 57 2c 23 2b 38 5d 0d 1d ce 11 20 |R T,[W,#+8].... | 00003450 20 20 20 53 54 52 20 54 2c 5b 57 5d 0d 1d d8 16 | STR T,[W]....| 00003460 20 20 20 20 41 44 44 20 57 2c 57 2c 23 44 4d 31 | ADD W,W,#DM1| 00003470 2a 38 0d 1d e2 16 20 20 20 20 4c 44 52 20 54 2c |*8.... LDR T,| 00003480 5b 57 2c 23 2d 31 36 5d 0d 1d ec 15 20 20 20 20 |[W,#-16].... | 00003490 53 54 52 20 54 2c 5b 57 2c 23 2d 38 5d 0d 1d f6 |STR T,[W,#-8]...| 000034a0 15 20 20 20 20 41 44 44 20 49 2c 49 2c 23 38 30 |. ADD I,I,#80| 000034b0 2a 38 0d 1e 00 0f 20 20 20 20 43 4d 50 20 49 2c |*8.... CMP I,| 000034c0 4a 0d 1e 0a 14 20 20 42 4e 45 20 76 65 72 74 5f |J.... BNE vert_| 000034d0 65 64 67 65 32 0d 1e 14 0e 4d 4f 56 20 50 43 2c |edge2....MOV PC,| 000034e0 52 31 34 0d 1e 1e 04 0d 1e 28 1e 2e 74 6d 70 31 |R14......(..tmp1| 000034f0 20 45 51 55 44 20 30 3a 45 51 55 44 20 30 3a 45 | EQUD 0:EQUD 0:E| 00003500 51 55 44 20 30 0d 1e 32 17 2e 73 69 6d 75 6c 61 |QUD 0..2..simula| 00003510 74 69 6f 6e 5f 64 69 73 70 6c 61 79 0d 1e 3c 0f |tion_display..<.| 00003520 20 20 4d 4f 56 20 58 2c 23 58 57 0d 1e 46 0f 20 | MOV X,#XW..F. | 00003530 20 4d 4f 56 20 59 2c 23 59 57 0d 1e 50 16 20 20 | MOV Y,#YW..P. | 00003540 41 44 44 20 54 2c 59 2c 59 2c 4c 53 4c 20 23 32 |ADD T,Y,Y,LSL #2| 00003550 0d 1e 5a 16 20 20 41 44 44 20 54 2c 58 2c 54 2c |..Z. ADD T,X,T,| 00003560 4c 53 4c 20 23 36 0d 1e 64 13 20 20 41 44 44 20 |LSL #6..d. ADD | 00003570 53 43 52 2c 53 43 52 2c 54 0d 1e 6e 12 20 20 4d |SCR,SCR,T..n. M| 00003580 4f 56 20 4a 2c 23 44 4d 32 2d 32 0d 1e 78 19 20 |OV J,#DM2-2..x. | 00003590 20 41 44 44 20 54 41 42 31 2c 54 41 42 31 2c 23 | ADD TAB1,TAB1,#| 000035a0 38 30 2a 38 0d 1e 82 19 20 20 41 44 44 20 54 41 |80*8.... ADD TA| 000035b0 42 32 2c 54 41 42 32 2c 23 38 30 2a 38 0d 1e 8c |B2,TAB2,#80*8...| 000035c0 0c 20 20 2e 6c 6f 6f 70 79 0d 1e 96 14 20 20 20 |. .loopy.... | 000035d0 20 4d 4f 56 20 49 2c 23 44 4d 31 2d 32 0d 1e a0 | MOV I,#DM1-2...| 000035e0 1b 20 20 20 20 41 44 44 20 54 41 42 31 2c 54 41 |. ADD TAB1,TA| 000035f0 42 31 2c 23 31 3c 3c 33 0d 1e aa 1b 20 20 20 20 |B1,#1<<3.... | 00003600 41 44 44 20 54 41 42 32 2c 54 41 42 32 2c 23 31 |ADD TAB2,TAB2,#1| 00003610 3c 3c 33 0d 1e b4 12 20 20 20 20 41 44 52 20 57 |<<3.... ADR W| 00003620 2c 74 6d 70 31 0d 1e be 19 20 20 20 20 53 54 4d |,tmp1.... STM| 00003630 49 41 20 57 2c 7b 4a 2c 31 33 2c 31 34 7d 0d 1e |IA W,{J,13,14}..| 00003640 c8 12 20 20 20 20 4d 4f 56 20 4e 2c 23 32 35 35 |.. MOV N,#255| 00003650 0d 1e d2 19 20 20 20 20 4c 44 52 20 58 31 2c 5b |.... LDR X1,[| 00003660 54 41 42 31 2c 23 2d 38 5d 0d 1e dc 15 20 20 20 |TAB1,#-8].... | 00003670 20 4c 44 52 20 59 31 2c 5b 54 41 42 31 5d 0d 1e | LDR Y1,[TAB1]..| 00003680 e6 1b 20 20 20 20 4c 44 52 20 59 32 2c 5b 54 41 |.. LDR Y2,[TA| 00003690 42 31 2c 23 38 30 2a 38 5d 0d 1e f0 18 20 20 20 |B1,#80*8].... | 000036a0 20 41 44 44 20 54 41 42 31 2c 54 41 42 31 2c 23 | ADD TAB1,TAB1,#| 000036b0 34 0d 1e fa 0e 20 20 20 20 2e 6c 6f 6f 70 78 0d |4.... .loopx.| 000036c0 1f 04 12 20 20 20 20 20 20 4d 4f 56 20 4f 2c 58 |... MOV O,X| 000036d0 31 0d 1f 0e 13 20 20 20 20 20 20 4d 4f 56 20 58 |1.... MOV X| 000036e0 31 2c 59 31 0d 1f 18 13 20 20 20 20 20 20 4d 4f |1,Y1.... MO| 000036f0 56 20 58 32 2c 59 32 0d 1f 22 1f 20 20 20 20 20 |V X2,Y2..". | 00003700 20 4c 44 52 20 57 2c 5b 54 41 42 31 2c 23 2d 38 | LDR W,[TAB1,#-8| 00003710 30 2a 38 2d 34 5d 0d 1f 2c 21 20 20 20 20 20 20 |0*8-4]..,! | 00003720 4c 44 52 20 59 32 2c 5b 54 41 42 31 2c 23 38 30 |LDR Y2,[TAB1,#80| 00003730 2a 38 2b 38 2d 34 5d 0d 1f 36 1e 20 20 20 20 20 |*8+8-4]..6. | 00003740 20 4c 44 4d 49 41 20 28 54 41 42 31 29 21 2c 7b | LDMIA (TAB1)!,{| 00003750 56 2c 59 31 7d 0d 1f 40 14 20 20 20 20 20 20 41 |V,Y1}..@. A| 00003760 44 44 20 4f 2c 4f 2c 59 31 0d 1f 4a 13 20 20 20 |DD O,O,Y1..J. | 00003770 20 20 20 41 44 44 20 4f 2c 4f 2c 57 0d 1f 54 14 | ADD O,O,W..T.| 00003780 20 20 20 20 20 20 41 44 44 20 4f 2c 4f 2c 58 32 | ADD O,O,X2| 00003790 0d 1f 5e 1b 20 20 20 20 20 20 53 55 42 20 4f 2c |..^. SUB O,| 000037a0 4f 2c 58 31 2c 4c 53 4c 20 23 32 0d 1f 68 1d 20 |O,X1,LSL #2..h. | 000037b0 20 20 20 20 20 41 44 44 20 56 2c 56 2c 4f 2c 41 | ADD V,V,O,A| 000037c0 53 52 20 23 50 52 4f 50 0d 1f 72 1d 20 20 20 20 |SR #PROP..r. | 000037d0 20 20 53 55 42 20 56 2c 56 2c 56 2c 41 53 52 20 | SUB V,V,V,ASR | 000037e0 23 44 41 4d 50 0d 1f 7c 14 20 20 20 20 20 20 41 |#DAMP..|. A| 000037f0 44 44 20 4f 2c 58 31 2c 56 0d 1f 86 1d 20 20 20 |DD O,X1,V.... | 00003800 20 20 20 53 54 4d 49 41 20 28 54 41 42 32 29 21 | STMIA (TAB2)!| 00003810 2c 7b 4f 2c 56 7d 0d 1f 90 16 20 20 20 20 20 20 |,{O,V}.... | 00003820 53 55 42 20 44 58 2c 58 32 2c 58 31 0d 1f 9a 16 |SUB DX,X2,X1....| 00003830 20 20 20 20 20 20 53 55 42 20 44 59 2c 59 32 2c | SUB DY,Y2,| 00003840 59 31 0d 1f a4 1a 20 20 20 20 20 20 80 20 43 2c |Y1.... . C,| 00003850 4e 2c 58 31 2c 4c 53 52 20 23 32 30 0d 1f ae 15 |N,X1,LSR #20....| 00003860 20 20 20 20 20 20 41 44 44 20 48 2c 58 31 2c 59 | ADD H,X1,Y| 00003870 31 0d 1f b8 1b 20 20 20 20 20 20 41 44 44 20 4d |1.... ADD M| 00003880 2c 48 2c 58 31 2c 4c 53 4c 20 23 31 0d 1f c2 19 |,H,X1,LSL #1....| 00003890 20 20 20 20 20 20 80 20 4d 2c 4e 2c 4d 2c 4c 53 | . M,N,M,LS| 000038a0 52 20 23 32 32 0d 1f cc 1a 20 20 20 20 20 20 41 |R #22.... A| 000038b0 44 44 20 43 2c 43 2c 4d 2c 4c 53 4c 20 23 38 0d |DD C,C,M,LSL #8.| 000038c0 1f d6 19 20 20 20 20 20 20 80 20 4d 2c 4e 2c 48 |... . M,N,H| 000038d0 2c 4c 53 52 20 23 32 31 0d 1f e0 1b 20 20 20 20 |,LSR #21.... | 000038e0 20 20 41 44 44 20 43 2c 43 2c 4d 2c 4c 53 4c 20 | ADD C,C,M,LSL | 000038f0 23 31 36 0d 1f ea 1b 20 20 20 20 20 20 41 44 44 |#16.... ADD| 00003900 20 4d 2c 48 2c 59 31 2c 4c 53 4c 20 23 31 0d 1f | M,H,Y1,LSL #1..| 00003910 f4 19 20 20 20 20 20 20 80 20 4d 2c 4e 2c 4d 2c |.. . M,N,M,| 00003920 4c 53 52 20 23 32 32 0d 1f fe 1b 20 20 20 20 20 |LSR #22.... | 00003930 20 41 44 44 20 43 2c 43 2c 4d 2c 4c 53 4c 20 23 | ADD C,C,M,LSL #| 00003940 32 34 0d 20 08 1a 20 20 20 20 20 20 53 54 52 20 |24. .. STR | 00003950 43 4f 4c 2c 5b 53 43 52 5d 2c 23 34 0d 20 12 1c |COL,[SCR],#4. ..| 00003960 20 20 20 20 20 20 41 44 44 20 58 2c 58 31 2c 44 | ADD X,X1,D| 00003970 58 2c 41 53 52 20 23 32 0d 20 1c 1c 20 20 20 20 |X,ASR #2. .. | 00003980 20 20 41 44 44 20 59 2c 59 31 2c 44 59 2c 41 53 | ADD Y,Y1,DY,AS| 00003990 52 20 23 32 0d 20 26 19 20 20 20 20 20 20 80 20 |R #2. &. . | 000039a0 43 2c 4e 2c 58 2c 4c 53 52 20 23 32 30 0d 20 30 |C,N,X,LSR #20. 0| 000039b0 13 20 20 20 20 20 20 41 44 44 20 48 2c 58 2c 59 |. ADD H,X,Y| 000039c0 0d 20 3a 1a 20 20 20 20 20 20 41 44 44 20 4d 2c |. :. ADD M,| 000039d0 48 2c 58 2c 4c 53 4c 20 23 31 0d 20 44 19 20 20 |H,X,LSL #1. D. | 000039e0 20 20 20 20 80 20 4d 2c 4e 2c 4d 2c 4c 53 52 20 | . M,N,M,LSR | 000039f0 23 32 32 0d 20 4e 1a 20 20 20 20 20 20 41 44 44 |#22. N. ADD| 00003a00 20 43 2c 43 2c 4d 2c 4c 53 4c 20 23 38 0d 20 58 | C,C,M,LSL #8. X| 00003a10 19 20 20 20 20 20 20 80 20 4d 2c 4e 2c 48 2c 4c |. . M,N,H,L| 00003a20 53 52 20 23 32 31 0d 20 62 1b 20 20 20 20 20 20 |SR #21. b. | 00003a30 41 44 44 20 43 2c 43 2c 4d 2c 4c 53 4c 20 23 31 |ADD C,C,M,LSL #1| 00003a40 36 0d 20 6c 1a 20 20 20 20 20 20 41 44 44 20 4d |6. l. ADD M| 00003a50 2c 48 2c 59 2c 4c 53 4c 20 23 31 0d 20 76 19 20 |,H,Y,LSL #1. v. | 00003a60 20 20 20 20 20 80 20 4d 2c 4e 2c 4d 2c 4c 53 52 | . M,N,M,LSR| 00003a70 20 23 32 32 0d 20 80 1b 20 20 20 20 20 20 41 44 | #22. .. AD| 00003a80 44 20 43 2c 43 2c 4d 2c 4c 53 4c 20 23 32 34 0d |D C,C,M,LSL #24.| 00003a90 20 8a 1e 20 20 20 20 20 20 53 54 52 20 43 4f 4c | .. STR COL| 00003aa0 2c 5b 53 43 52 2c 23 33 32 30 2d 34 5d 0d 20 94 |,[SCR,#320-4]. .| 00003ab0 1b 20 20 20 20 20 20 41 44 44 20 58 2c 58 2c 44 |. ADD X,X,D| 00003ac0 58 2c 41 53 52 20 23 32 0d 20 9e 1b 20 20 20 20 |X,ASR #2. .. | 00003ad0 20 20 41 44 44 20 59 2c 59 2c 44 59 2c 41 53 52 | ADD Y,Y,DY,ASR| 00003ae0 20 23 32 0d 20 a8 19 20 20 20 20 20 20 80 20 43 | #2. .. . C| 00003af0 2c 4e 2c 58 2c 4c 53 52 20 23 32 30 0d 20 b2 13 |,N,X,LSR #20. ..| 00003b00 20 20 20 20 20 20 41 44 44 20 48 2c 58 2c 59 0d | ADD H,X,Y.| 00003b10 20 bc 1a 20 20 20 20 20 20 41 44 44 20 4d 2c 48 | .. ADD M,H| 00003b20 2c 58 2c 4c 53 4c 20 23 31 0d 20 c6 19 20 20 20 |,X,LSL #1. .. | 00003b30 20 20 20 80 20 4d 2c 4e 2c 4d 2c 4c 53 52 20 23 | . M,N,M,LSR #| 00003b40 32 32 0d 20 d0 1a 20 20 20 20 20 20 41 44 44 20 |22. .. ADD | 00003b50 43 2c 43 2c 4d 2c 4c 53 4c 20 23 38 0d 20 da 19 |C,C,M,LSL #8. ..| 00003b60 20 20 20 20 20 20 80 20 4d 2c 4e 2c 48 2c 4c 53 | . M,N,H,LS| 00003b70 52 20 23 32 31 0d 20 e4 1b 20 20 20 20 20 20 41 |R #21. .. A| 00003b80 44 44 20 43 2c 43 2c 4d 2c 4c 53 4c 20 23 31 36 |DD C,C,M,LSL #16| 00003b90 0d 20 ee 1a 20 20 20 20 20 20 41 44 44 20 4d 2c |. .. ADD M,| 00003ba0 48 2c 59 2c 4c 53 4c 20 23 31 0d 20 f8 19 20 20 |H,Y,LSL #1. .. | 00003bb0 20 20 20 20 80 20 4d 2c 4e 2c 4d 2c 4c 53 52 20 | . M,N,M,LSR | 00003bc0 23 32 32 0d 21 02 1b 20 20 20 20 20 20 41 44 44 |#22.!.. ADD| 00003bd0 20 43 2c 43 2c 4d 2c 4c 53 4c 20 23 32 34 0d 21 | C,C,M,LSL #24.!| 00003be0 0c 1e 20 20 20 20 20 20 53 54 52 20 43 4f 4c 2c |.. STR COL,| 00003bf0 5b 53 43 52 2c 23 36 34 30 2d 34 5d 0d 21 16 1b |[SCR,#640-4].!..| 00003c00 20 20 20 20 20 20 41 44 44 20 58 2c 58 2c 44 58 | ADD X,X,DX| 00003c10 2c 41 53 52 20 23 32 0d 21 20 1b 20 20 20 20 20 |,ASR #2.! . | 00003c20 20 41 44 44 20 59 2c 59 2c 44 59 2c 41 53 52 20 | ADD Y,Y,DY,ASR | 00003c30 23 32 0d 21 2a 19 20 20 20 20 20 20 80 20 43 2c |#2.!*. . C,| 00003c40 4e 2c 58 2c 4c 53 52 20 23 32 30 0d 21 34 13 20 |N,X,LSR #20.!4. | 00003c50 20 20 20 20 20 41 44 44 20 48 2c 58 2c 59 0d 21 | ADD H,X,Y.!| 00003c60 3e 1a 20 20 20 20 20 20 41 44 44 20 4d 2c 48 2c |>. ADD M,H,| 00003c70 58 2c 4c 53 4c 20 23 31 0d 21 48 19 20 20 20 20 |X,LSL #1.!H. | 00003c80 20 20 80 20 4d 2c 4e 2c 4d 2c 4c 53 52 20 23 32 | . M,N,M,LSR #2| 00003c90 32 0d 21 52 1a 20 20 20 20 20 20 41 44 44 20 43 |2.!R. ADD C| 00003ca0 2c 43 2c 4d 2c 4c 53 4c 20 23 38 0d 21 5c 19 20 |,C,M,LSL #8.!\. | 00003cb0 20 20 20 20 20 80 20 4d 2c 4e 2c 48 2c 4c 53 52 | . M,N,H,LSR| 00003cc0 20 23 32 31 0d 21 66 1b 20 20 20 20 20 20 41 44 | #21.!f. AD| 00003cd0 44 20 43 2c 43 2c 4d 2c 4c 53 4c 20 23 31 36 0d |D C,C,M,LSL #16.| 00003ce0 21 70 1a 20 20 20 20 20 20 41 44 44 20 4d 2c 48 |!p. ADD M,H| 00003cf0 2c 59 2c 4c 53 4c 20 23 31 0d 21 7a 19 20 20 20 |,Y,LSL #1.!z. | 00003d00 20 20 20 80 20 4d 2c 4e 2c 4d 2c 4c 53 52 20 23 | . M,N,M,LSR #| 00003d10 32 32 0d 21 84 1b 20 20 20 20 20 20 41 44 44 20 |22.!.. ADD | 00003d20 43 2c 43 2c 4d 2c 4c 53 4c 20 23 32 34 0d 21 8e |C,C,M,LSL #24.!.| 00003d30 1e 20 20 20 20 20 20 53 54 52 20 43 4f 4c 2c 5b |. STR COL,[| 00003d40 53 43 52 2c 23 39 36 30 2d 34 5d 0d 21 98 15 20 |SCR,#960-4].!.. | 00003d50 20 20 20 20 20 53 55 42 53 20 49 2c 49 2c 23 31 | SUBS I,I,#1| 00003d60 0d 21 a2 11 20 20 20 20 42 4e 45 20 6c 6f 6f 70 |.!.. BNE loop| 00003d70 78 0d 21 ac 22 20 20 20 20 41 44 44 20 53 43 52 |x.!." ADD SCR| 00003d80 2c 53 43 52 2c 23 33 32 30 2d 28 44 4d 31 2d 32 |,SCR,#320-(DM1-2| 00003d90 29 2a 34 0d 21 b6 1a 20 20 20 20 41 44 44 20 53 |)*4.!.. ADD S| 00003da0 43 52 2c 53 43 52 2c 23 33 2a 33 32 30 0d 21 c0 |CR,SCR,#3*320.!.| 00003db0 18 20 20 20 20 53 55 42 20 54 41 42 31 2c 54 41 |. SUB TAB1,TA| 00003dc0 42 31 2c 23 34 0d 21 ca 24 20 20 20 20 41 44 44 |B1,#4.!.$ ADD| 00003dd0 20 54 41 42 31 2c 54 41 42 31 2c 23 28 38 30 2d | TAB1,TAB1,#(80-| 00003de0 44 4d 31 2b 31 29 3c 3c 33 0d 21 d4 24 20 20 20 |DM1+1)<<3.!.$ | 00003df0 20 41 44 44 20 54 41 42 32 2c 54 41 42 32 2c 23 | ADD TAB2,TAB2,#| 00003e00 28 38 30 2d 44 4d 31 2b 31 29 3c 3c 33 0d 21 de |(80-DM1+1)<<3.!.| 00003e10 12 20 20 20 20 41 44 52 20 57 2c 74 6d 70 31 0d |. ADR W,tmp1.| 00003e20 21 e8 19 20 20 20 20 4c 44 4d 49 41 20 57 2c 7b |!.. LDMIA W,{| 00003e30 4a 2c 31 33 2c 31 34 7d 0d 21 f2 13 20 20 20 20 |J,13,14}.!.. | 00003e40 53 55 42 53 20 4a 2c 4a 2c 23 31 0d 21 fc 0f 20 |SUBS J,J,#1.!.. | 00003e50 20 42 4e 45 20 6c 6f 6f 70 79 0d 22 06 0e 4d 4f | BNE loopy."..MO| 00003e60 56 20 50 43 2c 52 31 34 0d 22 10 04 0d 22 1a 1e |V PC,R14."..."..| 00003e70 2e 74 6d 70 32 20 45 51 55 44 20 30 3a 45 51 55 |.tmp2 EQUD 0:EQU| 00003e80 44 20 30 3a 45 51 55 44 20 30 0d 22 24 0f 2e 73 |D 0:EQUD 0."$..s| 00003e90 69 6d 75 6c 61 74 69 6f 6e 0d 22 2e 12 20 20 4d |imulation.".. M| 00003ea0 4f 56 20 4a 2c 23 44 4d 32 2d 32 0d 22 38 19 20 |OV J,#DM2-2."8. | 00003eb0 20 41 44 44 20 54 41 42 31 2c 54 41 42 31 2c 23 | ADD TAB1,TAB1,#| 00003ec0 38 30 2a 38 0d 22 42 19 20 20 41 44 44 20 54 41 |80*8."B. ADD TA| 00003ed0 42 32 2c 54 41 42 32 2c 23 38 30 2a 38 0d 22 4c |B2,TAB2,#80*8."L| 00003ee0 0c 20 20 2e 6b 6f 6f 70 79 0d 22 56 14 20 20 20 |. .koopy."V. | 00003ef0 20 4d 4f 56 20 49 2c 23 44 4d 31 2d 32 0d 22 60 | MOV I,#DM1-2."`| 00003f00 1b 20 20 20 20 41 44 44 20 54 41 42 31 2c 54 41 |. ADD TAB1,TA| 00003f10 42 31 2c 23 31 3c 3c 33 0d 22 6a 1b 20 20 20 20 |B1,#1<<3."j. | 00003f20 41 44 44 20 54 41 42 32 2c 54 41 42 32 2c 23 31 |ADD TAB2,TAB2,#1| 00003f30 3c 3c 33 0d 22 74 12 20 20 20 20 41 44 52 20 57 |<<3."t. ADR W| 00003f40 2c 74 6d 70 32 0d 22 7e 19 20 20 20 20 53 54 4d |,tmp2."~. STM| 00003f50 49 41 20 57 2c 7b 4a 2c 31 33 2c 31 34 7d 0d 22 |IA W,{J,13,14}."| 00003f60 88 19 20 20 20 20 4c 44 52 20 58 31 2c 5b 54 41 |.. LDR X1,[TA| 00003f70 42 31 2c 23 2d 38 5d 0d 22 92 15 20 20 20 20 4c |B1,#-8].".. L| 00003f80 44 52 20 59 31 2c 5b 54 41 42 31 5d 0d 22 9c 18 |DR Y1,[TAB1]."..| 00003f90 20 20 20 20 41 44 44 20 54 41 42 31 2c 54 41 42 | ADD TAB1,TAB| 00003fa0 31 2c 23 34 0d 22 a6 0e 20 20 20 20 2e 6b 6f 6f |1,#4.".. .koo| 00003fb0 70 78 0d 22 b0 12 20 20 20 20 20 20 4d 4f 56 20 |px.".. MOV | 00003fc0 4f 2c 58 31 0d 22 ba 13 20 20 20 20 20 20 4d 4f |O,X1.".. MO| 00003fd0 56 20 58 31 2c 59 31 0d 22 c4 1f 20 20 20 20 20 |V X1,Y1.".. | 00003fe0 20 4c 44 52 20 57 2c 5b 54 41 42 31 2c 23 2d 38 | LDR W,[TAB1,#-8| 00003ff0 30 2a 38 2d 34 5d 0d 22 ce 1f 20 20 20 20 20 20 |0*8-4].".. | 00004000 4c 44 52 20 58 32 2c 5b 54 41 42 31 2c 23 38 30 |LDR X2,[TAB1,#80| 00004010 2a 38 2d 34 5d 0d 22 d8 1e 20 20 20 20 20 20 4c |*8-4].".. L| 00004020 44 4d 49 41 20 28 54 41 42 31 29 21 2c 7b 56 2c |DMIA (TAB1)!,{V,| 00004030 59 31 7d 0d 22 e2 14 20 20 20 20 20 20 41 44 44 |Y1}.".. ADD| 00004040 20 4f 2c 4f 2c 59 31 0d 22 ec 13 20 20 20 20 20 | O,O,Y1.".. | 00004050 20 41 44 44 20 4f 2c 4f 2c 57 0d 22 f6 14 20 20 | ADD O,O,W.".. | 00004060 20 20 20 20 41 44 44 20 4f 2c 4f 2c 58 32 0d 23 | ADD O,O,X2.#| 00004070 00 1b 20 20 20 20 20 20 53 55 42 20 4f 2c 4f 2c |.. SUB O,O,| 00004080 58 31 2c 4c 53 4c 20 23 32 0d 23 0a 1d 20 20 20 |X1,LSL #2.#.. | 00004090 20 20 20 53 55 42 20 56 2c 56 2c 56 2c 41 53 52 | SUB V,V,V,ASR| 000040a0 20 23 44 41 4d 50 0d 23 14 1d 20 20 20 20 20 20 | #DAMP.#.. | 000040b0 41 44 44 20 56 2c 56 2c 4f 2c 41 53 52 20 23 50 |ADD V,V,O,ASR #P| 000040c0 52 4f 50 0d 23 1e 14 20 20 20 20 20 20 41 44 44 |ROP.#.. ADD| 000040d0 20 4f 2c 58 31 2c 56 0d 23 28 1d 20 20 20 20 20 | O,X1,V.#(. | 000040e0 20 53 54 4d 49 41 20 28 54 41 42 32 29 21 2c 7b | STMIA (TAB2)!,{| 000040f0 4f 2c 56 7d 0d 23 32 15 20 20 20 20 20 20 53 55 |O,V}.#2. SU| 00004100 42 53 20 49 2c 49 2c 23 31 0d 23 3c 11 20 20 20 |BS I,I,#1.#<. | 00004110 20 42 4e 45 20 6b 6f 6f 70 78 0d 23 46 18 20 20 | BNE koopx.#F. | 00004120 20 20 53 55 42 20 54 41 42 31 2c 54 41 42 31 2c | SUB TAB1,TAB1,| 00004130 23 34 0d 23 50 24 20 20 20 20 41 44 44 20 54 41 |#4.#P$ ADD TA| 00004140 42 31 2c 54 41 42 31 2c 23 28 38 30 2d 44 4d 31 |B1,TAB1,#(80-DM1| 00004150 2b 31 29 3c 3c 33 0d 23 5a 24 20 20 20 20 41 44 |+1)<<3.#Z$ AD| 00004160 44 20 54 41 42 32 2c 54 41 42 32 2c 23 28 38 30 |D TAB2,TAB2,#(80| 00004170 2d 44 4d 31 2b 31 29 3c 3c 33 0d 23 64 12 20 20 |-DM1+1)<<3.#d. | 00004180 20 20 41 44 52 20 57 2c 74 6d 70 32 0d 23 6e 19 | ADR W,tmp2.#n.| 00004190 20 20 20 20 4c 44 4d 49 41 20 57 2c 7b 4a 2c 31 | LDMIA W,{J,1| 000041a0 33 2c 31 34 7d 0d 23 78 13 20 20 20 20 53 55 42 |3,14}.#x. SUB| 000041b0 53 20 4a 2c 4a 2c 23 31 0d 23 82 0f 20 20 42 4e |S J,J,#1.#.. BN| 000041c0 45 20 6b 6f 6f 70 79 0d 23 8c 0e 4d 4f 56 20 50 |E koopy.#..MOV P| 000041d0 43 2c 52 31 34 0d 23 96 04 0d 23 a0 0f 2e 72 65 |C,R14.#...#...re| 000041e0 63 69 70 72 6f 63 61 6c 0d 23 aa 0a 20 a4 66 69 |ciprocal.#.. .fi| 000041f0 6c 6c 0d 23 b4 1f 2e 72 65 63 69 70 72 61 64 64 |ll.#...recipradd| 00004200 72 20 45 51 55 44 20 72 65 63 69 70 72 6f 63 61 |r EQUD reciproca| 00004210 6c 0d 23 be 10 2e 74 6d 70 35 20 45 51 55 44 20 |l.#...tmp5 EQUD | 00004220 30 0d 23 c8 10 2e 77 69 72 65 64 69 73 70 6c 61 |0.#...wiredispla| 00004230 79 0d 23 d2 12 20 20 4d 4f 56 20 43 4f 4c 2c 23 |y.#.. MOV COL,#| 00004240 32 35 35 0d 23 dc 12 20 20 4d 4f 56 20 4a 2c 23 |255.#.. MOV J,#| 00004250 44 4d 32 2d 32 0d 23 e6 17 20 20 4c 44 52 20 41 |DM2-2.#.. LDR A| 00004260 44 2c 72 65 63 69 70 72 61 64 64 72 0d 23 f0 14 |D,recipraddr.#..| 00004270 20 20 4c 44 52 20 43 54 2c 63 74 61 62 6c 65 64 | LDR CT,ctabled| 00004280 0d 23 fa 19 20 20 41 44 44 20 54 41 42 31 2c 54 |.#.. ADD TAB1,T| 00004290 41 42 31 2c 23 38 30 2a 38 0d 24 04 0e 20 20 4d |AB1,#80*8.$.. M| 000042a0 4f 56 20 54 2c 23 31 0d 24 0e 14 20 20 4d 4f 56 |OV T,#1.$.. MOV| 000042b0 20 5a 2c 54 2c 4c 53 4c 20 23 32 0d 24 18 19 20 | Z,T,LSL #2.$.. | 000042c0 20 4c 44 52 20 5a 2c 5b 41 44 2c 5a 2c 4c 53 4c | LDR Z,[AD,Z,LSL| 000042d0 20 23 32 5d 0d 24 22 0e 20 20 4d 4f 56 20 58 2c | #2].$". MOV X,| 000042e0 23 34 0d 24 2c 18 20 20 53 55 42 20 58 2c 58 2c |#4.$,. SUB X,X,| 000042f0 23 44 4d 31 2a 32 2a 31 2e 35 0d 24 36 0f 20 20 |#DM1*2*1.5.$6. | 00004300 4d 55 4c 20 58 2c 5a 2c 58 0d 24 40 10 20 20 53 |MUL X,Z,X.$@. S| 00004310 54 52 20 58 2c 74 6d 70 35 0d 24 4a 0c 20 20 2e |TR X,tmp5.$J. .| 00004320 6e 6f 6f 70 79 0d 24 54 14 20 20 20 20 4d 4f 56 |noopy.$T. MOV| 00004330 20 49 2c 23 44 4d 31 2d 32 0d 24 5e 1b 20 20 20 | I,#DM1-2.$^. | 00004340 20 41 44 44 20 54 41 42 31 2c 54 41 42 31 2c 23 | ADD TAB1,TAB1,#| 00004350 31 3c 3c 33 0d 24 68 16 20 20 20 20 4d 4f 56 20 |1<<3.$h. MOV | 00004360 5a 2c 4a 2c 4c 53 4c 20 23 32 0d 24 72 1b 20 20 |Z,J,LSL #2.$r. | 00004370 20 20 4c 44 52 20 5a 2c 5b 41 44 2c 5a 2c 4c 53 | LDR Z,[AD,Z,LS| 00004380 4c 20 23 32 5d 0d 24 7c 10 20 20 20 20 4d 4f 56 |L #2].$|. MOV| 00004390 20 58 2c 23 34 0d 24 86 1a 20 20 20 20 53 55 42 | X,#4.$.. SUB| 000043a0 20 58 2c 58 2c 23 44 4d 31 2a 32 2a 31 2e 35 0d | X,X,#DM1*2*1.5.| 000043b0 24 90 11 20 20 20 20 4d 55 4c 20 58 2c 5a 2c 58 |$.. MUL X,Z,X| 000043c0 0d 24 9a 12 20 20 20 20 4c 44 52 20 54 2c 74 6d |.$.. LDR T,tm| 000043d0 70 35 0d 24 a4 11 20 20 20 20 53 55 42 20 58 2c |p5.$.. SUB X,| 000043e0 58 2c 54 0d 24 ae 0e 20 20 20 20 2e 6e 6f 6f 70 |X,T.$.. .noop| 000043f0 78 0d 24 b8 1e 20 20 20 20 20 20 4c 44 4d 49 41 |x.$.. LDMIA| 00004400 20 28 54 41 42 31 29 21 2c 7b 58 31 2c 56 7d 0d | (TAB1)!,{X1,V}.| 00004410 24 c2 1c 20 20 20 20 20 20 53 55 42 20 59 2c 58 |$.. SUB Y,X| 00004420 31 2c 23 42 41 53 45 3c 3c 32 30 0d 24 cc 19 20 |1,#BASE<<20.$.. | 00004430 20 20 20 20 20 4d 4f 56 20 59 2c 59 2c 41 53 52 | MOV Y,Y,ASR| 00004440 20 23 32 31 0d 24 d6 1a 20 20 20 20 20 20 41 44 | #21.$.. AD| 00004450 44 20 59 2c 59 2c 4a 2c 4c 53 4c 20 23 32 0d 24 |D Y,Y,J,LSL #2.$| 00004460 e0 13 20 20 20 20 20 20 4d 55 4c 20 59 2c 5a 2c |.. MUL Y,Z,| 00004470 59 0d 24 ea 18 20 20 20 20 20 20 4d 4f 56 20 59 |Y.$.. MOV Y| 00004480 2c 59 2c 41 53 52 20 23 39 0d 24 f4 15 20 20 20 |,Y,ASR #9.$.. | 00004490 20 20 20 41 44 44 20 59 2c 59 2c 23 36 30 0d 24 | ADD Y,Y,#60.$| 000044a0 fe 16 20 20 20 20 20 20 52 53 42 20 59 2c 59 2c |.. RSB Y,Y,| 000044b0 23 32 35 35 0d 25 08 1a 20 20 20 20 20 20 41 44 |#255.%.. AD| 000044c0 44 20 54 2c 59 2c 59 2c 4c 53 4c 20 23 32 0d 25 |D T,Y,Y,LSL #2.%| 000044d0 12 18 20 20 20 20 20 20 4d 4f 56 20 54 2c 54 2c |.. MOV T,T,| 000044e0 4c 53 4c 20 23 36 0d 25 1c 1a 20 20 20 20 20 20 |LSL #6.%.. | 000044f0 41 44 44 20 54 2c 54 2c 58 2c 41 53 52 20 23 39 |ADD T,T,X,ASR #9| 00004500 0d 25 26 18 20 20 20 20 20 20 43 4d 50 20 54 2c |.%&. CMP T,| 00004510 23 33 32 30 2a 32 35 36 0d 25 30 1d 20 20 20 20 |#320*256.%0. | 00004520 20 20 53 54 52 4c 4f 42 20 43 4f 4c 2c 5b 54 2c | STRLOB COL,[T,| 00004530 53 43 52 5d 21 0d 25 3a 1a 20 20 20 20 20 20 41 |SCR]!.%:. A| 00004540 44 44 20 58 2c 58 2c 5a 2c 4c 53 4c 20 23 32 0d |DD X,X,Z,LSL #2.| 00004550 25 44 15 20 20 20 20 20 20 53 55 42 53 20 49 2c |%D. SUBS I,| 00004560 49 2c 23 31 0d 25 4e 11 20 20 20 20 42 4e 45 20 |I,#1.%N. BNE | 00004570 6e 6f 6f 70 78 0d 25 58 24 20 20 20 20 41 44 44 |noopx.%X$ ADD| 00004580 20 54 41 42 31 2c 54 41 42 31 2c 23 28 38 30 2d | TAB1,TAB1,#(80-| 00004590 44 4d 31 2b 31 29 3c 3c 33 0d 25 62 13 20 20 20 |DM1+1)<<3.%b. | 000045a0 20 53 55 42 53 20 4a 2c 4a 2c 23 31 0d 25 6c 0f | SUBS J,J,#1.%l.| 000045b0 20 20 42 4e 45 20 6e 6f 6f 70 79 0d 25 76 0e 4d | BNE noopy.%v.M| 000045c0 4f 56 20 50 43 2c 52 31 34 0d 25 80 04 0d 25 8a |OV PC,R14.%...%.| 000045d0 12 2e 77 69 72 65 64 69 73 70 6c 61 79 63 74 0d |..wiredisplayct.| 000045e0 25 94 12 20 20 4d 4f 56 20 4a 2c 23 44 4d 32 2d |%.. MOV J,#DM2-| 000045f0 32 0d 25 9e 17 20 20 4c 44 52 20 41 44 2c 72 65 |2.%.. LDR AD,re| 00004600 63 69 70 72 61 64 64 72 0d 25 a8 14 20 20 4c 44 |cipraddr.%.. LD| 00004610 52 20 43 54 2c 63 74 61 62 6c 65 64 0d 25 b2 19 |R CT,ctabled.%..| 00004620 20 20 41 44 44 20 54 41 42 31 2c 54 41 42 31 2c | ADD TAB1,TAB1,| 00004630 23 38 30 2a 38 0d 25 bc 0e 20 20 4d 4f 56 20 54 |#80*8.%.. MOV T| 00004640 2c 23 31 0d 25 c6 14 20 20 4d 4f 56 20 5a 2c 54 |,#1.%.. MOV Z,T| 00004650 2c 4c 53 4c 20 23 32 0d 25 d0 19 20 20 4c 44 52 |,LSL #2.%.. LDR| 00004660 20 5a 2c 5b 41 44 2c 5a 2c 4c 53 4c 20 23 32 5d | Z,[AD,Z,LSL #2]| 00004670 0d 25 da 0e 20 20 4d 4f 56 20 58 2c 23 34 0d 25 |.%.. MOV X,#4.%| 00004680 e4 18 20 20 53 55 42 20 58 2c 58 2c 23 44 4d 31 |.. SUB X,X,#DM1| 00004690 2a 32 2a 31 2e 35 0d 25 ee 0f 20 20 4d 55 4c 20 |*2*1.5.%.. MUL | 000046a0 58 2c 5a 2c 58 0d 25 f8 10 20 20 53 54 52 20 58 |X,Z,X.%.. STR X| 000046b0 2c 74 6d 70 35 0d 26 02 0c 20 20 2e 6d 6f 6f 70 |,tmp5.&.. .moop| 000046c0 79 0d 26 0c 14 20 20 20 20 4d 4f 56 20 49 2c 23 |y.&.. MOV I,#| 000046d0 44 4d 31 2d 32 0d 26 16 1b 20 20 20 20 41 44 44 |DM1-2.&.. ADD| 000046e0 20 54 41 42 31 2c 54 41 42 31 2c 23 31 3c 3c 33 | TAB1,TAB1,#1<<3| 000046f0 0d 26 20 16 20 20 20 20 4d 4f 56 20 5a 2c 4a 2c |.& . MOV Z,J,| 00004700 4c 53 4c 20 23 32 0d 26 2a 1b 20 20 20 20 4c 44 |LSL #2.&*. LD| 00004710 52 20 5a 2c 5b 41 44 2c 5a 2c 4c 53 4c 20 23 32 |R Z,[AD,Z,LSL #2| 00004720 5d 0d 26 34 10 20 20 20 20 4d 4f 56 20 58 2c 23 |].&4. MOV X,#| 00004730 34 0d 26 3e 1a 20 20 20 20 53 55 42 20 58 2c 58 |4.&>. SUB X,X| 00004740 2c 23 44 4d 31 2a 32 2a 31 2e 35 0d 26 48 11 20 |,#DM1*2*1.5.&H. | 00004750 20 20 20 4d 55 4c 20 58 2c 5a 2c 58 0d 26 52 12 | MUL X,Z,X.&R.| 00004760 20 20 20 20 4c 44 52 20 54 2c 74 6d 70 35 0d 26 | LDR T,tmp5.&| 00004770 5c 11 20 20 20 20 53 55 42 20 58 2c 58 2c 54 0d |\. SUB X,X,T.| 00004780 26 66 0e 20 20 20 20 2e 6d 6f 6f 70 78 0d 26 70 |&f. .moopx.&p| 00004790 1e 20 20 20 20 20 20 4c 44 4d 49 41 20 28 54 41 |. LDMIA (TA| 000047a0 42 31 29 21 2c 7b 58 31 2c 56 7d 0d 26 7a 1c 20 |B1)!,{X1,V}.&z. | 000047b0 20 20 20 20 20 53 55 42 20 59 2c 58 31 2c 23 42 | SUB Y,X1,#B| 000047c0 41 53 45 3c 3c 32 30 0d 26 84 19 20 20 20 20 20 |ASE<<20.&.. | 000047d0 20 4d 4f 56 20 59 2c 59 2c 41 53 52 20 23 32 31 | MOV Y,Y,ASR #21| 000047e0 0d 26 8e 1a 20 20 20 20 20 20 41 44 44 20 59 2c |.&.. ADD Y,| 000047f0 59 2c 4a 2c 4c 53 4c 20 23 32 0d 26 98 13 20 20 |Y,J,LSL #2.&.. | 00004800 20 20 20 20 4d 55 4c 20 59 2c 5a 2c 59 0d 26 a2 | MUL Y,Z,Y.&.| 00004810 18 20 20 20 20 20 20 4d 4f 56 20 59 2c 59 2c 41 |. MOV Y,Y,A| 00004820 53 52 20 23 39 0d 26 ac 15 20 20 20 20 20 20 41 |SR #9.&.. A| 00004830 44 44 20 59 2c 59 2c 23 36 30 0d 26 b6 16 20 20 |DD Y,Y,#60.&.. | 00004840 20 20 20 20 52 53 42 20 59 2c 59 2c 23 32 35 35 | RSB Y,Y,#255| 00004850 0d 26 c0 1a 20 20 20 20 20 20 41 44 44 20 54 2c |.&.. ADD T,| 00004860 59 2c 59 2c 4c 53 4c 20 23 32 0d 26 ca 18 20 20 |Y,Y,LSL #2.&.. | 00004870 20 20 20 20 4d 4f 56 20 54 2c 54 2c 4c 53 4c 20 | MOV T,T,LSL | 00004880 23 36 0d 26 d4 1a 20 20 20 20 20 20 41 44 44 20 |#6.&.. ADD | 00004890 54 2c 54 2c 58 2c 41 53 52 20 23 39 0d 26 de 18 |T,T,X,ASR #9.&..| 000048a0 20 20 20 20 20 20 43 4d 50 20 54 2c 23 33 32 30 | CMP T,#320| 000048b0 2a 32 35 36 0d 26 e8 1a 20 20 20 20 20 20 80 20 |*256.&.. . | 000048c0 58 31 2c 58 31 2c 23 32 35 35 3c 3c 32 30 0d 26 |X1,X1,#255<<20.&| 000048d0 f2 24 20 20 20 20 20 20 4c 44 52 4c 4f 42 20 43 |.$ LDRLOB C| 000048e0 4f 4c 2c 5b 43 54 2c 58 31 2c 4c 53 52 20 23 32 |OL,[CT,X1,LSR #2| 000048f0 30 5d 0d 26 fc 1d 20 20 20 20 20 20 53 54 52 4c |0].&.. STRL| 00004900 4f 42 20 43 4f 4c 2c 5b 54 2c 53 43 52 5d 21 0d |OB COL,[T,SCR]!.| 00004910 27 06 1a 20 20 20 20 20 20 41 44 44 20 58 2c 58 |'.. ADD X,X| 00004920 2c 5a 2c 4c 53 4c 20 23 32 0d 27 10 15 20 20 20 |,Z,LSL #2.'.. | 00004930 20 20 20 53 55 42 53 20 49 2c 49 2c 23 31 0d 27 | SUBS I,I,#1.'| 00004940 1a 11 20 20 20 20 42 4e 45 20 6d 6f 6f 70 78 0d |.. BNE moopx.| 00004950 27 24 24 20 20 20 20 41 44 44 20 54 41 42 31 2c |'$$ ADD TAB1,| 00004960 54 41 42 31 2c 23 28 38 30 2d 44 4d 31 2b 31 29 |TAB1,#(80-DM1+1)| 00004970 3c 3c 33 0d 27 2e 13 20 20 20 20 53 55 42 53 20 |<<3.'.. SUBS | 00004980 4a 2c 4a 2c 23 31 0d 27 38 0f 20 20 42 4e 45 20 |J,J,#1.'8. BNE | 00004990 6d 6f 6f 70 79 0d 27 42 0e 4d 4f 56 20 50 43 2c |moopy.'B.MOV PC,| 000049a0 52 31 34 0d 27 4c 04 0d 27 56 18 2e 63 74 61 62 |R14.'L..'V..ctab| 000049b0 6c 65 64 20 45 51 55 44 20 43 54 41 42 4c 45 0d |led EQUD CTABLE.| 000049c0 27 60 10 2e 74 6d 70 34 20 45 51 55 44 20 30 0d |'`..tmp4 EQUD 0.| 000049d0 27 6a 17 2e 63 6f 75 6c 6f 72 5f 74 72 61 6e 73 |'j..coulor_trans| 000049e0 6c 61 74 69 6f 6e 0d 27 74 10 20 20 53 54 52 20 |lation.'t. STR | 000049f0 48 2c 74 6d 70 34 0d 27 7e 0f 20 20 4d 4f 56 20 |H,tmp4.'~. MOV | 00004a00 58 2c 23 58 57 0d 27 88 0f 20 20 4d 4f 56 20 59 |X,#XW.'.. MOV Y| 00004a10 2c 23 59 57 0d 27 92 16 20 20 41 44 44 20 54 2c |,#YW.'.. ADD T,| 00004a20 59 2c 59 2c 4c 53 4c 20 23 32 0d 27 9c 16 20 20 |Y,Y,LSL #2.'.. | 00004a30 41 44 44 20 54 2c 58 2c 54 2c 4c 53 4c 20 23 36 |ADD T,X,T,LSL #6| 00004a40 0d 27 a6 13 20 20 41 44 44 20 53 43 52 2c 53 43 |.'.. ADD SCR,SC| 00004a50 52 2c 54 0d 27 b0 13 20 20 4c 44 52 20 57 2c 63 |R,T.'.. LDR W,c| 00004a60 74 61 62 6c 65 64 0d 27 ba 10 20 20 4d 4f 56 20 |tabled.'.. MOV | 00004a70 48 2c 23 32 35 35 0d 27 c4 0f 20 20 4d 56 4e 20 |H,#255.'.. MVN | 00004a80 43 34 2c 23 31 0d 27 ce 16 20 20 4d 4f 56 20 4a |C4,#1.'.. MOV J| 00004a90 2c 23 34 2a 28 44 4d 32 2d 32 29 0d 27 d8 0b 20 |,#4*(DM2-2).'.. | 00004aa0 20 2e 67 6c 70 32 0d 27 e2 14 20 20 20 20 4d 4f | .glp2.'.. MO| 00004ab0 56 20 49 2c 23 44 4d 31 2d 32 0d 27 ec 0d 20 20 |V I,#DM1-2.'.. | 00004ac0 20 20 2e 67 6c 70 31 0d 27 f6 1b 20 20 20 20 20 | .glp1.'.. | 00004ad0 20 4c 44 4d 49 41 20 53 43 52 2c 7b 4f 43 2c 4f | LDMIA SCR,{OC,O| 00004ae0 4b 7d 0d 28 00 13 20 20 20 20 20 20 80 20 43 31 |K}.(.. . C1| 00004af0 2c 48 2c 4f 43 0d 28 0a 1a 20 20 20 20 20 20 80 |,H,OC.(.. .| 00004b00 20 43 32 2c 48 2c 4f 43 2c 4c 53 52 20 23 38 0d | C2,H,OC,LSR #8.| 00004b10 28 14 1b 20 20 20 20 20 20 80 20 43 33 2c 48 2c |(.. . C3,H,| 00004b20 4f 43 2c 4c 53 52 20 23 31 36 0d 28 1e 13 20 20 |OC,LSR #16.(.. | 00004b30 20 20 20 20 43 4d 50 20 43 34 2c 43 31 0d 28 28 | CMP C4,C1.((| 00004b40 1b 20 20 20 20 20 20 80 20 43 34 2c 48 2c 4f 43 |. . C4,H,OC| 00004b50 2c 4c 53 52 20 23 32 34 0d 28 32 19 20 20 20 20 |,LSR #24.(2. | 00004b60 20 20 4c 44 52 4e 45 42 20 54 2c 5b 57 2c 43 31 | LDRNEB T,[W,C1| 00004b70 5d 0d 28 3c 12 20 20 20 20 20 20 4d 4f 56 20 4e |].(<. MOV N| 00004b80 43 2c 54 0d 28 46 13 20 20 20 20 20 20 43 4d 50 |C,T.(F. CMP| 00004b90 20 43 31 2c 43 32 0d 28 50 19 20 20 20 20 20 20 | C1,C2.(P. | 00004ba0 4c 44 52 4e 45 42 20 54 2c 5b 57 2c 43 32 5d 0d |LDRNEB T,[W,C2].| 00004bb0 28 5a 1c 20 20 20 20 20 20 41 44 44 20 4e 43 2c |(Z. ADD NC,| 00004bc0 4e 43 2c 54 2c 4c 53 4c 20 23 38 0d 28 64 13 20 |NC,T,LSL #8.(d. | 00004bd0 20 20 20 20 20 43 4d 50 20 43 32 2c 43 33 0d 28 | CMP C2,C3.(| 00004be0 6e 19 20 20 20 20 20 20 4c 44 52 4e 45 42 20 54 |n. LDRNEB T| 00004bf0 2c 5b 57 2c 43 33 5d 0d 28 78 1d 20 20 20 20 20 |,[W,C3].(x. | 00004c00 20 41 44 44 20 4e 43 2c 4e 43 2c 54 2c 4c 53 4c | ADD NC,NC,T,LSL| 00004c10 20 23 31 36 0d 28 82 13 20 20 20 20 20 20 43 4d | #16.(.. CM| 00004c20 50 20 43 33 2c 43 34 0d 28 8c 19 20 20 20 20 20 |P C3,C4.(.. | 00004c30 20 4c 44 52 4e 45 42 20 54 2c 5b 57 2c 43 34 5d | LDRNEB T,[W,C4]| 00004c40 0d 28 96 1d 20 20 20 20 20 20 41 44 44 20 4e 43 |.(.. ADD NC| 00004c50 2c 4e 43 2c 54 2c 4c 53 4c 20 23 32 34 0d 28 a0 |,NC,T,LSL #24.(.| 00004c60 13 20 20 20 20 20 20 80 20 43 31 2c 48 2c 4f 4b |. . C1,H,OK| 00004c70 0d 28 aa 1a 20 20 20 20 20 20 80 20 43 32 2c 48 |.(.. . C2,H| 00004c80 2c 4f 4b 2c 4c 53 52 20 23 38 0d 28 b4 1b 20 20 |,OK,LSR #8.(.. | 00004c90 20 20 20 20 80 20 43 33 2c 48 2c 4f 4b 2c 4c 53 | . C3,H,OK,LS| 00004ca0 52 20 23 31 36 0d 28 be 13 20 20 20 20 20 20 43 |R #16.(.. C| 00004cb0 4d 50 20 43 34 2c 43 31 0d 28 c8 1b 20 20 20 20 |MP C4,C1.(.. | 00004cc0 20 20 80 20 43 34 2c 48 2c 4f 4b 2c 4c 53 52 20 | . C4,H,OK,LSR | 00004cd0 23 32 34 0d 28 d2 19 20 20 20 20 20 20 4c 44 52 |#24.(.. LDR| 00004ce0 4e 45 42 20 54 2c 5b 57 2c 43 31 5d 0d 28 dc 12 |NEB T,[W,C1].(..| 00004cf0 20 20 20 20 20 20 4d 4f 56 20 4e 4b 2c 54 0d 28 | MOV NK,T.(| 00004d00 e6 13 20 20 20 20 20 20 43 4d 50 20 43 31 2c 43 |.. CMP C1,C| 00004d10 32 0d 28 f0 19 20 20 20 20 20 20 4c 44 52 4e 45 |2.(.. LDRNE| 00004d20 42 20 54 2c 5b 57 2c 43 32 5d 0d 28 fa 1c 20 20 |B T,[W,C2].(.. | 00004d30 20 20 20 20 41 44 44 20 4e 4b 2c 4e 4b 2c 54 2c | ADD NK,NK,T,| 00004d40 4c 53 4c 20 23 38 0d 29 04 13 20 20 20 20 20 20 |LSL #8.).. | 00004d50 43 4d 50 20 43 32 2c 43 33 0d 29 0e 19 20 20 20 |CMP C2,C3.).. | 00004d60 20 20 20 4c 44 52 4e 45 42 20 54 2c 5b 57 2c 43 | LDRNEB T,[W,C| 00004d70 33 5d 0d 29 18 1d 20 20 20 20 20 20 41 44 44 20 |3].).. ADD | 00004d80 4e 4b 2c 4e 4b 2c 54 2c 4c 53 4c 20 23 31 36 0d |NK,NK,T,LSL #16.| 00004d90 29 22 13 20 20 20 20 20 20 43 4d 50 20 43 33 2c |)". CMP C3,| 00004da0 43 34 0d 29 2c 19 20 20 20 20 20 20 4c 44 52 4e |C4.),. LDRN| 00004db0 45 42 20 54 2c 5b 57 2c 43 34 5d 0d 29 36 1d 20 |EB T,[W,C4].)6. | 00004dc0 20 20 20 20 20 41 44 44 20 4e 4b 2c 4e 4b 2c 54 | ADD NK,NK,T| 00004dd0 2c 4c 53 4c 20 23 32 34 0d 29 40 1e 20 20 20 20 |,LSL #24.)@. | 00004de0 20 20 53 54 4d 49 41 20 28 53 43 52 29 21 2c 7b | STMIA (SCR)!,{| 00004df0 4e 43 2c 4e 4b 7d 0d 29 4a 15 20 20 20 20 20 20 |NC,NK}.)J. | 00004e00 53 55 42 53 20 49 2c 49 2c 23 32 0d 29 54 10 20 |SUBS I,I,#2.)T. | 00004e10 20 20 20 42 48 49 20 67 6c 70 31 0d 29 5e 29 20 | BHI glp1.)^) | 00004e20 20 20 20 41 44 44 20 53 43 52 2c 53 43 52 2c 23 | ADD SCR,SCR,#| 00004e30 33 32 30 2d 28 28 44 4d 31 2b 31 29 80 ac 31 29 |320-((DM1+1)..1)| 00004e40 2a 34 2b 38 0d 29 68 13 20 20 20 20 53 55 42 53 |*4+8.)h. SUBS| 00004e50 20 4a 2c 4a 2c 23 31 0d 29 72 0e 20 20 42 48 49 | J,J,#1.)r. BHI| 00004e60 20 67 6c 70 32 0d 29 7c 10 20 20 4c 44 52 20 48 | glp2.)|. LDR H| 00004e70 2c 74 6d 70 34 0d 29 86 0e 4d 4f 56 20 50 43 2c |,tmp4.)..MOV PC,| 00004e80 52 31 34 0d 29 90 04 0d 29 9a 09 2e 69 6e 69 74 |R14.)...)...init| 00004e90 0d 29 a4 10 20 20 41 44 52 20 57 2c 78 74 61 62 |.).. ADR W,xtab| 00004ea0 0d 29 ae 14 20 20 4d 4f 56 20 49 2c 23 36 34 2a |.).. MOV I,#64*| 00004eb0 38 30 2a 32 0d 29 b8 15 20 20 4d 4f 56 20 54 2c |80*2.).. MOV T,| 00004ec0 23 42 41 53 45 3c 3c 32 30 0d 29 c2 14 20 20 53 |#BASE<<20.).. S| 00004ed0 55 42 20 54 2c 54 2c 23 31 3c 3c 31 39 0d 29 cc |UB T,T,#1<<19.).| 00004ee0 0e 20 20 4d 4f 56 20 56 2c 23 30 0d 29 d6 0d 20 |. MOV V,#0.).. | 00004ef0 20 20 20 2e 6c 6f 70 32 0d 29 e0 18 20 20 20 20 | .lop2.).. | 00004f00 53 54 4d 49 41 20 28 57 29 21 2c 7b 54 2c 56 7d |STMIA (W)!,{T,V}| 00004f10 0d 29 ea 13 20 20 20 20 53 55 42 53 20 49 2c 49 |.).. SUBS I,I| 00004f20 2c 23 31 0d 29 f4 0e 20 20 42 4e 45 20 6c 6f 70 |,#1.).. BNE lop| 00004f30 32 0d 29 fe 0e 4d 4f 56 20 50 43 2c 52 31 34 0d |2.)..MOV PC,R14.| 00004f40 2a 08 04 0d 2a 12 0c 2e 6e 65 77 62 61 73 65 0d |*...*...newbase.| 00004f50 2a 1c 10 20 20 41 44 52 20 57 2c 78 74 61 62 0d |*.. ADR W,xtab.| 00004f60 2a 26 14 20 20 4d 4f 56 20 49 2c 23 36 34 2a 38 |*&. MOV I,#64*8| 00004f70 30 2a 32 0d 2a 30 0d 20 20 20 20 2e 6c 6f 70 32 |0*2.*0. .lop2| 00004f80 0d 2a 3a 15 20 20 20 20 4c 44 4d 49 41 20 57 2c |.*:. LDMIA W,| 00004f90 7b 54 2c 56 7d 0d 2a 44 19 20 20 20 20 53 55 42 |{T,V}.*D. SUB| 00004fa0 20 54 2c 54 2c 23 42 41 53 45 3c 3c 32 30 0d 2a | T,T,#BASE<<20.*| 00004fb0 4e 19 20 20 20 20 41 44 44 20 54 2c 54 2c 4a 2c |N. ADD T,T,J,| 00004fc0 4c 53 4c 20 23 32 30 0d 2a 58 18 20 20 20 20 53 |LSL #20.*X. S| 00004fd0 54 4d 49 41 20 28 57 29 21 2c 7b 54 2c 56 7d 0d |TMIA (W)!,{T,V}.| 00004fe0 2a 62 13 20 20 20 20 53 55 42 53 20 49 2c 49 2c |*b. SUBS I,I,| 00004ff0 23 31 0d 2a 6c 0e 20 20 42 4e 45 20 6c 6f 70 32 |#1.*l. BNE lop2| 00005000 0d 2a 76 0e 4d 4f 56 20 50 43 2c 52 31 34 0d 2a |.*v.MOV PC,R14.*| 00005010 80 04 0d 2a 8a 1b 2e 73 63 72 6e 31 20 45 51 55 |...*...scrn1 EQU| 00005020 44 20 31 34 38 3a 45 51 55 44 20 2d 31 0d 2a 94 |D 148:EQUD -1.*.| 00005030 11 2e 73 63 72 6e 32 20 45 51 55 44 20 30 0d 2a |..scrn2 EQUD 0.*| 00005040 9e 0b 2e 69 6e 63 6f 70 79 0d 2a a8 12 20 20 41 |...incopy.*.. A| 00005050 44 52 20 52 30 2c 73 63 72 6e 31 0d 2a b2 12 20 |DR R0,scrn1.*.. | 00005060 20 41 44 52 20 52 31 2c 73 63 72 6e 32 0d 2a bc | ADR R1,scrn2.*.| 00005070 1f 20 20 53 57 49 20 22 4f 53 5f 52 65 61 64 56 |. SWI "OS_ReadV| 00005080 64 75 56 61 72 69 61 62 6c 65 73 22 0d 2a c6 14 |duVariables".*..| 00005090 20 20 4c 44 52 20 44 45 53 54 2c 73 63 72 6e 32 | LDR DEST,scrn2| 000050a0 0d 2a d0 13 20 20 41 44 52 20 53 4f 55 52 2c 78 |.*.. ADR SOUR,x| 000050b0 74 61 62 0d 2a da 1b 20 20 4d 4f 56 20 43 4f 2c |tab.*.. MOV CO,| 000050c0 23 33 32 30 2a 32 35 36 2f 34 2f 38 2f 34 0d 2a |#320*256/4/8/4.*| 000050d0 e4 0c 20 20 2e 6c 6f 6f 70 69 0d 2a ee 1b 20 20 |.. .loopi.*.. | 000050e0 20 20 4c 44 4d 49 41 20 28 53 4f 55 52 29 21 2c | LDMIA (SOUR)!,| 000050f0 7b 30 2d 37 7d 0d 2a f8 1b 20 20 20 20 53 54 4d |{0-7}.*.. STM| 00005100 49 41 20 28 44 45 53 54 29 21 2c 7b 30 2d 37 7d |IA (DEST)!,{0-7}| 00005110 0d 2b 02 1b 20 20 20 20 4c 44 4d 49 41 20 28 53 |.+.. LDMIA (S| 00005120 4f 55 52 29 21 2c 7b 30 2d 37 7d 0d 2b 0c 1b 20 |OUR)!,{0-7}.+.. | 00005130 20 20 20 53 54 4d 49 41 20 28 44 45 53 54 29 21 | STMIA (DEST)!| 00005140 2c 7b 30 2d 37 7d 0d 2b 16 1b 20 20 20 20 4c 44 |,{0-7}.+.. LD| 00005150 4d 49 41 20 28 53 4f 55 52 29 21 2c 7b 30 2d 37 |MIA (SOUR)!,{0-7| 00005160 7d 0d 2b 20 1b 20 20 20 20 53 54 4d 49 41 20 28 |}.+ . STMIA (| 00005170 44 45 53 54 29 21 2c 7b 30 2d 37 7d 0d 2b 2a 1b |DEST)!,{0-7}.+*.| 00005180 20 20 20 20 4c 44 4d 49 41 20 28 53 4f 55 52 29 | LDMIA (SOUR)| 00005190 21 2c 7b 30 2d 37 7d 0d 2b 34 1b 20 20 20 20 53 |!,{0-7}.+4. S| 000051a0 54 4d 49 41 20 28 44 45 53 54 29 21 2c 7b 30 2d |TMIA (DEST)!,{0-| 000051b0 37 7d 0d 2b 3e 15 20 20 20 20 53 55 42 53 20 43 |7}.+>. SUBS C| 000051c0 4f 2c 43 4f 2c 23 31 0d 2b 48 0f 20 20 42 4e 45 |O,CO,#1.+H. BNE| 000051d0 20 6c 6f 6f 70 69 0d 2b 52 0e 4d 4f 56 20 50 43 | loopi.+R.MOV PC| 000051e0 2c 52 31 34 0d 2b 5c 04 0d 2b 66 0c 2e 6f 75 74 |,R14.+\..+f..out| 000051f0 63 6f 70 79 0d 2b 70 12 20 20 41 44 52 20 52 30 |copy.+p. ADR R0| 00005200 2c 73 63 72 6e 31 0d 2b 7a 12 20 20 41 44 52 20 |,scrn1.+z. ADR | 00005210 52 31 2c 73 63 72 6e 32 0d 2b 84 1f 20 20 53 57 |R1,scrn2.+.. SW| 00005220 49 20 22 4f 53 5f 52 65 61 64 56 64 75 56 61 72 |I "OS_ReadVduVar| 00005230 69 61 62 6c 65 73 22 0d 2b 8e 13 20 20 41 44 52 |iables".+.. ADR| 00005240 20 44 45 53 54 2c 78 74 61 62 0d 2b 98 14 20 20 | DEST,xtab.+.. | 00005250 4c 44 52 20 53 4f 55 52 2c 73 63 72 6e 32 0d 2b |LDR SOUR,scrn2.+| 00005260 a2 19 20 20 4d 4f 56 20 43 4f 2c 23 33 32 30 2a |.. MOV CO,#320*| 00005270 32 35 36 2f 34 2f 38 0d 2b ac 0c 20 20 2e 6c 6f |256/4/8.+.. .lo| 00005280 6f 70 6f 0d 2b b6 1b 20 20 20 20 4c 44 4d 49 41 |opo.+.. LDMIA| 00005290 20 28 53 4f 55 52 29 21 2c 7b 30 2d 37 7d 0d 2b | (SOUR)!,{0-7}.+| 000052a0 c0 1b 20 20 20 20 53 54 4d 49 41 20 28 44 45 53 |.. STMIA (DES| 000052b0 54 29 21 2c 7b 30 2d 37 7d 0d 2b ca 15 20 20 20 |T)!,{0-7}.+.. | 000052c0 20 53 55 42 53 20 43 4f 2c 43 4f 2c 23 31 0d 2b | SUBS CO,CO,#1.+| 000052d0 d4 0f 20 20 42 4e 45 20 6c 6f 6f 70 6f 0d 2b de |.. BNE loopo.+.| 000052e0 0e 4d 4f 56 20 50 43 2c 52 31 34 0d 2b e8 04 0d |.MOV PC,R14.+...| 000052f0 2b f2 09 2e 78 74 61 62 0d 2b fc 05 5d 0d 2c 06 |+...xtab.+..].,.| 00005300 05 e1 0d 2c 10 04 0d 2c 1a 0b dd 20 a4 66 69 6c |...,...,... .fil| 00005310 6c 0d 2c 24 0b ea 20 49 2c 46 2c 41 0d 2c 2e 0f |l.,$.. I,F,A.,..| 00005320 41 3d 34 2a 28 44 4d 31 2d 34 29 0d 2c 38 0d 46 |A=4*(DM1-4).,8.F| 00005330 3d 33 32 30 2a 32 5e 39 0d 2c 42 0f e3 20 49 3d |=320*2^9.,B.. I=| 00005340 31 20 b8 20 32 35 36 0d 2c 4c 0d 5b 4f 50 54 20 |1 . 256.,L.[OPT | 00005350 50 41 53 53 0d 2c 56 10 45 51 55 44 20 46 2f 28 |PASS.,V.EQUD F/(| 00005360 49 2b 41 29 0d 2c 60 05 5d 0d 2c 6a 05 ed 0d 2c |I+A).,`.].,j...,| 00005370 74 07 3d 22 22 0d ff |t.=""..| 00005377