Home » Archimedes archive » Acorn User » AU 1995-04.adf » !StarInfo_StarInfo » Turnbull/!C60/!RunImage
Turnbull/!C60/!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 » Acorn User » AU 1995-04.adf » !StarInfo_StarInfo |
Filename: | Turnbull/!C60/!RunImage |
Read OK: | ✔ |
File size: | 2177 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10MODE9 20FORT%=0TO15:COLOURT%,T%<<4,T%<<4,T%<<4:NEXT 30DIMX(60),Y(60),Z(60),L%(90,2) 40DIMplot(7),space%&30000:limit%=space%+&30000 50code%=space%:space%+=16384 60shape%=space%:space%+=16*64 70screen%=space%:space%+=16*64 80index%=space%:space%+=512 90perspective%=space%:space%+=&4000 100sprites%=space%:space%+=&20000 110IFspace%>limit%THENERROR255,"DIM size" 120PROCassemble 130PROCsprites 140PROCmakeshape 150FORT%=0TO4095:perspective%!(T%<<2)=65536*256/(T%+256):NEXT 160REPEAT:A%=A%+32AND&FFFF 170A=PI*A%/&8000 180C1=COS(A*3):S1=SIN(A*3):C2=COS(A*11):S2=SIN(A*11) 190vectors!0=&10000*C1:vectors!4=0:vectors!8=&10000*S1 200vectors!12=&10000*-S1*S2:vectors!16=&10000*C2:vectors!20=&10000*C1*S2 210vectors!24=&10000*-S1*C2:vectors!28=&10000*-S2:vectors!32=&10000*C1*C2 220MOUSEX%,Y%,Z% 230vectors!36=0:vectors!40=Y%-512:vectors!44=X% 240CALLframe 250C1%=191+64*COS(A*12):C2%=191+64*COS(A*17):C3%=191+64*COS(A*19) 260FORT%=15TO1STEP-1:COLOURT%,C1%,C2%,C3% 270C1%-=16:IFC1%<0THENC1%=0 280C2%-=16:IFC2%<0THENC2%=0 290C3%-=16:IFC3%<0THENC3%=0 300NEXT 310UNTIL0 320END 330: 340: 350DEFPROCsprites 360OSCLI("LOAD <C60$dir>.Index "+STR$~index%) 370OSCLI("LOAD <C60$dir>.Sprites "+STR$~sprites%) 380ENDPROC 390index%!0=0:index%!4=0 400SP%=sprites% 410FORL%=1TO63:IU%=index%+(L%<<3):L2%=L%*L%<<2 420CLS:F=1/(SQR(6)*L%*2) 430FORX%=-126TO126STEP4:FORY%=-126TOX%STEP4:R2%=X%*X%+Y%*Y% 440IFR2%<=L2%THEN 450Z=-SQR(L2%-R2%):B=(X%+Y%-2*Z)*F 460IFB<0THENGCOL0,1ELSEIF(X%AND4)=(Y%AND4)THENGCOL0,1+B*14ELSEGCOL0,1.5+B*14 470POINT128+X%,128+Y%:POINT128+Y%,128+X% 480ENDIF:NEXT, 490M%=2+L%>>1:SC%=!bankaddr+(224-M%)*160 500!IU%=SP%-sprites%:IU%?4=M%:IU%?5=M%*2 510!spaddr=SP%:!scaddr=SC%:!size=2*M%-1:CALLconvspr:SP%=!spaddr 520NEXT 530ENDPROC 540: 550DEFPROCmakeshape 560OSCLI("LOAD <C60$dir>.Shape "+STR$~shape%) 570ENDPROC 580FORT%=1TO60STEP5:READX%,Y%,Z%:FORU%=0TO4:X(T%+U%)=X%+U%*10:Y(T%+U%)=Y%:Z(T%+U%)=Z%:NEXT, 590FORT%=1TO90:READL%(T%,1),L%(T%,2):NEXT 600REPEAT:CLS 610FORT%=1TO90:LINE640+X(L%(T%,1)),512+Y(L%(T%,1)),640+X(L%(T%,2)),512+Y(L%(T%,2)):NEXT 620FORT%=1TO60:F=200/SQR(X(T%)*X(T%)+Y(T%)*Y(T%)+Z(T%)*Z(T%)):X(T%)=X(T%)*F:Y(T%)=Y(T%)*F:Z(T%)=Z(T%)*F:NEXT 630REPEAT:MF=0:FORT%=1TO90:F%=L%(T%,1):G%=L%(T%,2):DX=X(F%)-X(G%):DY=Y(F%)-Y(G%):DZ=Z(F%)-Z(G%) 640IFDX=0ANDDY=0ANDDZ=0THENDX=1 650R=SQR(DX*DX+DY*DY+DZ*DZ):F=0.5*(64/R-1):IFMF<ABS(F)THENMF=ABS(F) 660X(F%)=X(F%)+DX*F:Y(F%)=Y(F%)+DY*F:Z(F%)=Z(F%)+DZ*F 670X(G%)=X(G%)-DX*F:Y(G%)=Y(G%)-DY*F:Z(G%)=Z(G%)-DZ*F 680NEXT:PRINTMF:UNTILMF<0.2+0.19*INKEY(-1) 690UNTILINKEY(-99) 700SH%=shape%:FORT%=1TO60 710SH%!0=X(T%):SH%!4=Y(T%):SH%!8=Z(T%):SH%!12=72 720SH%+=16:NEXT:!SH%=&80000000 730ENDPROC 740: 750DATA0,100,0, 0,80,60, 50,80,50, 50,80,-50, -50,80,-50, -50,80,50 760DATA0,-100,0, 0,-80,60, 50,-80,50, 50,-80,-50, -50,-80,-50, -50,-80,50 770: 780DATA1,2, 2,3, 3,4, 4,5, 5,1, 6,7, 7,8, 8,9, 9,10, 10,6, 11,12, 12,13, 13,14, 14,15, 15,11, 16,17, 17,18, 18,19, 19,20, 20,16, 21,22, 22,23, 23,24, 24,25, 25,21, 26,27, 27,28, 28,29, 29,30, 30,26 790DATA31,32, 32,33, 33,34, 34,35, 35,31, 36,37, 37,38, 38,39, 39,40, 40,36, 41,42, 42,43, 43,44, 44,45, 45,41, 46,47, 47,48, 48,49, 49,50, 50,46, 51,52, 52,53, 53,54, 54,55, 55,51, 56,57, 57,58, 58,59, 59,60, 60,56 800DATA1,6, 2,11, 3,16, 4,21, 5,26, 31,36, 32,41, 33,46, 34,51, 35,56 810DATA7,15, 12,20, 17,25, 22,30, 27,10, 37,45, 42,50, 47,55, 52,60, 57,40 820DATA8,39, 38,14, 13,44, 43,19, 18,49, 48,24, 23,54, 53,29, 28,59, 58,9 830: 840DEFFNadr(R%,H%,I%):G%=H%-P%-8 850LOCALO%,U%,N%:O%=15:N%=0 860FORU%=1TOI% 870IFG%=0THEN 880ELSEWHILE(G%AND3)=0:G%=G%>>2:N%+=2:ENDWHILE 890IF(G%AND256)=0THEN 900[OPT T%:ADD R%,O%,#(G%AND255)<<N%:]:G%-=G%AND255 910ELSE[OPT T%:SUB R%,O%,#(256-G%AND255)<<N%:]:G%+=256-G%AND255 920ENDIF 930ENDIF 940O%=R%:NEXT:IFG%<>0THENERROR255,"ADR length" 950=T% 960: 970DEFPROCassemble 980FORT%=0TO2STEP2:P%=code% 990[OPT T% 1000.scaddr 1010EQUD 0 1020.spaddr 1030EQUD 0 1040.size 1050EQUD 0 1060.convspr 1070LDR R0,spaddr 1080LDR R1,scaddr 1090LDR R2,size 1100.yloop 1110]:FORU%=0TO1:[OPT T% 1120LDMIA R1!,{R7-R10} 1130]:FORV%=0TO3:[OPT T% 1140MOV (3+V%),#0 1150]:FORW%=0TO7:[OPT T% 1160TST (7+V%),#15<<(W%<<2) 1170ADDNE (3+V%),(3+V%),#15<<(W%<<2) 1180]:NEXT,:[OPT T% 1190STMIA R0!,{R3-R10} 1200]:NEXT:[OPT T% 1210ADD R1,R1,#160-32 1220SUBS R2,R2,#1 1230BGT yloop 1240STR R0,spaddr 1250MOV PC,R14 1260: 1270REM **************************** 1280: 1290.vduvars 1300EQUD 148 1310EQUD -1 1330.bankaddr 1340EQUD -1 1350EQUD -1 1360.bank 1370EQUD 0 1380.scraddr 1390EQUD 0 1400.animation 1410EQUD 0 1420: 1430.link 1440EQUD 0 1450EQUD 0 1460EQUD 0 1470.stackp 1480EQUD 0 1490: 1500REM **************************** 1510: 1520.frame 1530STR R13,stackp 1540STR R14,link+0 1550LDR R0,bank 1560EOR R0,R0,#1 1570STR R0,bank 1580OPT FNadr(14,bankaddr,1) 1590LDR R14,[R14,R0,ASL#2] 1600STR R14,scraddr 1610ADD R1,R0,#1 1620MOV R0,#112 1630SWI "OS_Byte" 1640MOV R0,#19 1650SWI "OS_Byte" 1660SWI &10C 1670: 1680BL rotate 1690BL sort 1700BL plot 1710: 1720LDR R1,bank 1730ADD R1,R1,#1 1740MOV R0,#113 1750SWI "OS_Byte" 1760LDR R13,stackp 1770LDR R14,link+0 1780MOV PC,R14 1790: 1800REM **************************** 1810.vectors 1820EQUD &10000:EQUD 0:EQUD 0 1830EQUD 0:EQUD &10000:EQUD 0 1840EQUD 0:EQUD 0:EQUD &10000 1850EQUD 0:EQUD 0:EQUD 0 1860: 1870.rotate 1880STR R14,link+4 1890OPT FNadr(14,shape%,2) 1900OPT FNadr(13,screen%,2) 1910OPT FNadr(12,vectors,1) 1920OPT FNadr(11,perspective%,2) 1930.ballloop 1940LDMIA R14!,{R0-R2,R9} 1950CMP R0,#&80000000 1960BEQ endrotate 1970LDMIA R12!,{R3-R5} 1980MUL R6,R3,R0 1990MUL R7,R4,R0 2000MUL R8,R5,R0 2010LDMIA R12!,{R3-R5} 2020MLA R6,R3,R1,R6 2030MLA R7,R4,R1,R7 2040MLA R8,R5,R1,R8 2050LDMIA R12!,{R3-R5} 2060MLA R6,R3,R2,R6 2070MLA R7,R4,R2,R7 2080MLA R8,R5,R2,R8 2090LDMIA R12!,{R3-R5} 2100ADD R6,R3,R6,ASR#16 2110ADD R7,R4,R7,ASR#16 2120ADD R8,R5,R8,ASR#16 2130SUB R12,R12,#4*3*4 2140ADDS R0,R8,#256 2150MOVLT R0,#0 2160CMP R0,#4096 2170MOVGE R0,#4096 2180SUBGE R0,R0,#1 2190LDR R0,[R11,R0,LSL#2] 2200MUL R6,R0,R6 2210MUL R7,R0,R7 2220MUL R9,R0,R9 2230MOV R6,R6,ASR#16 2240MOV R7,R7,ASR#16 2250MOV R9,R9,ASR#16 2260ADD R6,R6,#160 2270RSB R7,R7,#128 2280STMIA R13!,{R6-R9} 2290B ballloop 2300.endrotate 2310STR R0,[R13] 2320LDR R14,link+4 2330MOV PC,R14 2340: 2350REM **************************** 2360: 2370.plot 2380STR R14,link+4 2390LDR R14,scraddr 2400OPT FNadr(13,screen%,2) 2410OPT FNadr(12,index%,2) 2420.ballloop 2430.dontprint 2440.plotreturn 2450LDMIA R13!,{R0-R3} 2460CMP R0,#&80000000 2470BEQ endplot 2480CMP R0,#32 2490CMNGT R1,#31 2500BLE dontprint 2510CMP R0,#288 2520CMPLE R1,#288 2530BGT dontprint 2540CMP R3,#64 2550MOVGE R3,#63 2560ADD R3,R12,R3,ASL#3 2570LDR R11,[R3] 2580LDRB R10,[R3,#4] 2590LDRB R9,[R3,#5] 2600SUB R0,R0,#32 2610SUBS R1,R1,R10 2620ADDLT R9,R9,R1 2630SUBLT R11,R11,R1,ASL#6 2640MOVLT R1,#0 2650ADD R8,R1,R9 2660SUBS R8,R8,#256 2670SUBGT R9,R9,R8 2680CMP R9,#0 2690BLE dontprint 2700OPT FNadr(8,sprites%,2) 2710ADD R11,R8,R11 2720AND R8,R0,#7 2730MOV R0,R0,ASR#3 2740ADD R10,R14,R0,ASL#2 2750ADD R10,R10,R1,ASL#5 2760ADD R10,R10,R1,ASL#7 2770OPT FNadr(7,plotroutines,1) 2780LDR PC,[R7,R8,ASL#2] 2790.dontprint 2800.endplot 2810LDR R14,link+4 2820MOV PC,R14 2830: 2840REM **************************** 2850: 2860.plotroutines 2870]:FORU%=0TO7:[OPT T% 2880EQUD plot(U%) 2890]:NEXT:[OPT T% 2900: 2910.plot(0) 2920.yloop 2930]:FORW%=0TO1:[OPT T% 2940LDMIA R10,{R0-R3} 2950LDMIA R11!,{R4-R7} 2960]:FORV%=0TO3:[OPT T% 2970BIC V%,V%,(V%+4) 2980]:NEXT:[OPT T% 2990LDMIA R11!,{R4-R7} 3000]:FORV%=0TO3:[OPT T% 3010ORR V%,V%,(V%+4) 3020]:NEXT:[OPT T% 3030STMIA R10!,{R0-R3} 3040]:NEXT:[OPT T% 3050ADD R10,R10,#160-32 3060SUBS R9,R9,#1 3070BGT yloop 3080B plotreturn 3090: 3100]:FORU%=1TO7:Z%=U%<<2:[OPT T% 3110.plot(U%) 3120.yloop 3130LDMIA R10,{R0-R4} 3140LDMIA R11!,{R5-R8} 3150]:FORV%=0TO3:[OPT T% 3160BIC V%,V%,(V%+5),LSL#Z% 3170BIC (V%+1),(V%+1),(V%+5),LSR#32-Z% 3180]:NEXT:[OPT T% 3190LDMIA R11!,{R5-R8} 3200]:FORV%=0TO3:[OPT T% 3210ORR V%,V%,(V%+5),LSL#Z% 3220ORR (V%+1),(V%+1),(V%+5),LSR#32-Z% 3230]:NEXT:[OPT T% 3240STMIA R10!,{R0-R3} 3250ADD R8,R10,#4 3260LDMIA R8,{R5-R8} 3270LDMIA R11!,{R0-R3} 3280]:FORV%=0TO3:[OPT T% 3290BIC (V%+4),(V%+4),V%,LSL#Z% 3300BIC (V%+5),(V%+5),V%,LSR#32-Z% 3310]:NEXT:[OPT T% 3320LDMIA R11!,{R0-R3} 3330]:FORV%=0TO3:[OPT T% 3340ORR (V%+4),(V%+4),V%,LSL#Z% 3350ORR (V%+5),(V%+5),V%,LSR#32-Z% 3360]:NEXT:[OPT T% 3370STMIA R10!,{R4-R8} 3380ADD R10,R10,#160-36 3390SUBS R9,R9,#1 3400BGT yloop 3410B plotreturn 3420]:NEXT:[OPT T% 3430: 3440REM ******************************* 3450: 3460.sort 3470STR R14,link+4 3480OPT FNadr(14,screen%,2) 3490.outloop 3500MOV R13,R14 3510ADD R12,R13,#16 3520LDR R1,[R13,#8] 3530.inloop 3540LDR R0,[R12,#8] 3550CMP R0,R1 3560MOVGT R1,R0 3570MOVGT R13,R12 3580ADD R12,R12,#16 3590LDR R0,[R12] 3600CMP R0,#&80000000 3610BNE inloop 3620LDMIA R13,{R0-R3} 3630LDMIA R14,{R4-R7} 3640STMIA R14!,{R0-R3} 3650STMIA R13,{R4-R7} 3660LDR R0,[R14,#16] 3670CMP R0,#&80000000 3680BNE outloop 3690LDR R14,link+4 3700MOV PC,R14 3710]:NEXT 3711*FX112,2 3712SYS"OS_ReadVduVariables",vduvars,bankaddr+4 3713*FX112,1 3714SYS"OS_ReadVduVariables",vduvars,bankaddr 3720ENDPROC 3730: 3740DEFPROCtestscr 3750SH%=screen% 3760REPEAT:Z%=SH%!8-vectors!44+256:GCOL0,Z%>>5 3770CIRCLESH%!0<<2,255-SH%!4<<2,SH%!12<<1 3780SH%+=16:UNTILSH%!0=&80000000 3790ENDPROC 3800: 3810DEFPROCtestconv 3820SP%=sprites% 3830FORT%=0TO5:SC%=!bankaddr 3840FORY%=0TO255:FORX%=0TO63STEP4:SC%!X%=SP%!X%:NEXT 3850SC%+=160:SP%+=64:NEXT:A=GET:NEXT 3860ENDPROC
�9 $�T%=0�15:�T%,T%<<4,T%<<4,T%<<4:� �X(60),Y(60),Z(60),L%(90,2) (.�plot(7),space%&30000:limit%=space%+&30000 2code%=space%:space%+=16384 <shape%=space%:space%+=16*64 F screen%=space%:space%+=16*64 Pindex%=space%:space%+=512 Z%perspective%=space%:space%+=&4000 d"sprites%=space%:space%+=&20000 n"�space%>limit%��255,"DIM size" x �assemble ��sprites ��makeshape �8�T%=0�4095:perspective%!(T%<<2)=65536*256/(T%+256):� ��:A%=A%+32�&FFFF �A=�*A%/&8000 �-C1=�(A*3):S1=�(A*3):C2=�(A*11):S2=�(A*11) �7vectors!0=&10000*C1:vectors!4=0:vectors!8=&10000*S1 �Ivectors!12=&10000*-S1*S2:vectors!16=&10000*C2:vectors!20=&10000*C1*S2 �Jvectors!24=&10000*-S1*C2:vectors!28=&10000*-S2:vectors!32=&10000*C1*C2 �ȗX%,Y%,Z% �0vectors!36=0:vectors!40=Y%-512:vectors!44=X% � �frame �<C1%=191+64*�(A*12):C2%=191+64*�(A*17):C3%=191+64*�(A*19) �T%=15�1�-1:�T%,C1%,C2%,C3% C1%-=16:�C1%<0�C1%=0 C2%-=16:�C2%<0�C2%=0 "C3%-=16:�C3%<0�C3%=0 ,� 6�0 @� J: T: ^ ��sprites h'�("LOAD <C60$dir>.Index "+�~index%) r+�("LOAD <C60$dir>.Sprites "+�~sprites%) |� �index%!0=0:index%!4=0 �SP%=sprites% �,�L%=1�63:IU%=index%+(L%<<3):L2%=L%*L%<<2 ��:F=1/(�(6)*L%*2) �0�X%=-126�126�4:�Y%=-126�X%�4:R2%=X%*X%+Y%*Y% ��R2%<=L2%� �!Z=-�(L2%-R2%):B=(X%+Y%-2*Z)*F �2�B<0��0,1��(X%�4)=(Y%�4)��0,1+B*14��0,1.5+B*14 �#Ȓ128+X%,128+Y%:Ȓ128+Y%,128+X% ��:�, �)M%=2+L%>>1:SC%=!bankaddr+(224-M%)*160 �)!IU%=SP%-sprites%:IU%?4=M%:IU%?5=M%*2 �=!spaddr=SP%:!scaddr=SC%:!size=2*M%-1:�convspr:SP%=!spaddr � � : &��makeshape 0'�("LOAD <C60$dir>.Shape "+�~shape%) :� DM�T%=1�60�5:�X%,Y%,Z%:�U%=0�4:X(T%+U%)=X%+U%*10:Y(T%+U%)=Y%:Z(T%+U%)=Z%:�, N!�T%=1�90:�L%(T%,1),L%(T%,2):� X�:� bO�T%=1�90:�640+X(L%(T%,1)),512+Y(L%(T%,1)),640+X(L%(T%,2)),512+Y(L%(T%,2)):� le�T%=1�60:F=200/�(X(T%)*X(T%)+Y(T%)*Y(T%)+Z(T%)*Z(T%)):X(T%)=X(T%)*F:Y(T%)=Y(T%)*F:Z(T%)=Z(T%)*F:� vX�:MF=0:�T%=1�90:F%=L%(T%,1):G%=L%(T%,2):DX=X(F%)-X(G%):DY=Y(F%)-Y(G%):DZ=Z(F%)-Z(G%) ��DX=0�DY=0�DZ=0�DX=1 �:R=�(DX*DX+DY*DY+DZ*DZ):F=0.5*(64/R-1):�MF<�(F)�MF=�(F) �6X(F%)=X(F%)+DX*F:Y(F%)=Y(F%)+DY*F:Z(F%)=Z(F%)+DZ*F �6X(G%)=X(G%)-DX*F:Y(G%)=Y(G%)-DY*F:Z(G%)=Z(G%)-DZ*F ��:�MF:�MF<0.2+0.19*�(-1) ���(-99) �SH%=shape%:�T%=1�60 �1SH%!0=X(T%):SH%!4=Y(T%):SH%!8=Z(T%):SH%!12=72 �SH%+=16:�:!SH%=&80000000 �� �: �A�0,100,0, 0,80,60, 50,80,50, 50,80,-50, -50,80,-50, -50,80,50 �G�0,-100,0, 0,-80,60, 50,-80,50, 50,-80,-50, -50,-80,-50, -50,-80,50 : ��1,2, 2,3, 3,4, 4,5, 5,1, 6,7, 7,8, 8,9, 9,10, 10,6, 11,12, 12,13, 13,14, 14,15, 15,11, 16,17, 17,18, 18,19, 19,20, 20,16, 21,22, 22,23, 23,24, 24,25, 25,21, 26,27, 27,28, 28,29, 29,30, 30,26 ��31,32, 32,33, 33,34, 34,35, 35,31, 36,37, 37,38, 38,39, 39,40, 40,36, 41,42, 42,43, 43,44, 44,45, 45,41, 46,47, 47,48, 48,49, 49,50, 50,46, 51,52, 52,53, 53,54, 54,55, 55,51, 56,57, 57,58, 58,59, 59,60, 60,56 C�1,6, 2,11, 3,16, 4,21, 5,26, 31,36, 32,41, 33,46, 34,51, 35,56 *H�7,15, 12,20, 17,25, 22,30, 27,10, 37,45, 42,50, 47,55, 52,60, 57,40 4G�8,39, 38,14, 13,44, 43,19, 18,49, 48,24, 23,54, 53,29, 28,59, 58,9 >: Hݤadr(R%,H%,I%):G%=H%-P%-8 R�O%,U%,N%:O%=15:N%=0 \�U%=1�I% f �G%=0� p �ȕ(G%�3)=0:G%=G%>>2:N%+=2:� z�(G%�256)=0� �0[OPT T%:ADD R%,O%,#(G%�255)<<N%:]:G%-=G%�255 �9�[OPT T%:SUB R%,O%,#(256-G%�255)<<N%:]:G%+=256-G%�255 �� �� �$O%=R%:�:�G%<>0��255,"ADR length" �=T% �: ���assemble ��T%=0�2�2:P%=code% �[OPT T% �.scaddr � EQUD 0 �.spaddr EQUD 0 .size EQUD 0 $.convspr .LDR R0,spaddr 8LDR R1,scaddr BLDR R2,size L .yloop V]:�U%=0�1:[OPT T% `LDMIA R1!,{R7-R10} j]:�V%=0�3:[OPT T% tMOV (3+V%),#0 ~]:�W%=0�7:[OPT T% �TST (7+V%),#15<<(W%<<2) �$ADDNE (3+V%),(3+V%),#15<<(W%<<2) �]:�,:[OPT T% �STMIA R0!,{R3-R10} �]:�:[OPT T% �ADD R1,R1,#160-32 �SUBS R2,R2,#1 � BGT yloop �STR R0,spaddr �MOV PC,R14 �: �"� **************************** : .vduvars EQUD 148 EQUD -1 2 .bankaddr <EQUD -1 FEQUD -1 P .bank Z EQUD 0 d.scraddr n EQUD 0 x.animation � EQUD 0 �: � .link � EQUD 0 � EQUD 0 � EQUD 0 �.stackp � EQUD 0 �: �"� **************************** �: � .frame �STR R13,stackp STR R14,link+0 LDR R0,bank � R0,R0,#1 "STR R0,bank ,OPT �adr(14,bankaddr,1) 6LDR R14,[R14,R0,ASL#2] @STR R14,scraddr JADD R1,R0,#1 TMOV R0,#112 ^SWI "OS_Byte" hMOV R0,#19 rSWI "OS_Byte" |SWI &10C �: � BL rotate �BL sort �BL plot �: �LDR R1,bank �ADD R1,R1,#1 �MOV R0,#113 �SWI "OS_Byte" �LDR R13,stackp �LDR R14,link+0 �MOV PC,R14 �: "� **************************** .vectors EQUD &10000:EQUD 0:EQUD 0 &EQUD 0:EQUD &10000:EQUD 0 0EQUD 0:EQUD 0:EQUD &10000 :EQUD 0:EQUD 0:EQUD 0 D: N.rotate XSTR R14,link+4 bOPT �adr(14,shape%,2) lOPT �adr(13,screen%,2) vOPT �adr(12,vectors,1) �OPT �adr(11,perspective%,2) � .ballloop �LDMIA R14!,{R0-R2,R9} �CMP R0,#&80000000 �BEQ endrotate �LDMIA R12!,{R3-R5} �MUL R6,R3,R0 �MUL R7,R4,R0 �MUL R8,R5,R0 �LDMIA R12!,{R3-R5} �MLA R6,R3,R1,R6 �MLA R7,R4,R1,R7 �MLA R8,R5,R1,R8 LDMIA R12!,{R3-R5} MLA R6,R3,R2,R6 MLA R7,R4,R2,R7 MLA R8,R5,R2,R8 *LDMIA R12!,{R3-R5} 4ADD R6,R3,R6,ASR#16 >ADD R7,R4,R7,ASR#16 HADD R8,R5,R8,ASR#16 RSUB R12,R12,#4*3*4 \ADDS R0,R8,#256 fMOVLT R0,#0 pCMP R0,#4096 zMOVGE R0,#4096 �SUBGE R0,R0,#1 �LDR R0,[R11,R0,LSL#2] �MUL R6,R0,R6 �MUL R7,R0,R7 �MUL R9,R0,R9 �MOV R6,R6,ASR#16 �MOV R7,R7,ASR#16 �MOV R9,R9,ASR#16 �ADD R6,R6,#160 �RSB R7,R7,#128 �STMIA R13!,{R6-R9} �B ballloop �.endrotate STR R0,[R13] LDR R14,link+4 MOV PC,R14 $: ."� **************************** 8: B .plot LSTR R14,link+4 VLDR R14,scraddr `OPT �adr(13,screen%,2) jOPT �adr(12,index%,2) t .ballloop ~.dontprint �.plotreturn �LDMIA R13!,{R0-R3} �CMP R0,#&80000000 �BEQ endplot �CMP R0,#32 �CMNGT R1,#31 �BLE dontprint �CMP R0,#288 �CMPLE R1,#288 �BGT dontprint �CMP R3,#64 �MOVGE R3,#63 ADD R3,R12,R3,ASL#3 LDR R11,[R3] LDRB R10,[R3,#4] LDRB R9,[R3,#5] (SUB R0,R0,#32 2SUBS R1,R1,R10 <ADDLT R9,R9,R1 FSUBLT R11,R11,R1,ASL#6 PMOVLT R1,#0 ZADD R8,R1,R9 dSUBS R8,R8,#256 nSUBGT R9,R9,R8 x CMP R9,#0 �BLE dontprint �OPT �adr(8,sprites%,2) �ADD R11,R8,R11 �� R8,R0,#7 �MOV R0,R0,ASR#3 �ADD R10,R14,R0,ASL#2 �ADD R10,R10,R1,ASL#5 �ADD R10,R10,R1,ASL#7 �OPT �adr(7,plotroutines,1) �LDR PC,[R7,R8,ASL#2] �.dontprint �.endplot �LDR R14,link+4 MOV PC,R14 : "� **************************** ": ,.plotroutines 6]:�U%=0�7:[OPT T% @EQUD plot(U%) J]:�:[OPT T% T: ^.plot(0) h .yloop r]:�W%=0�1:[OPT T% |LDMIA R10,{R0-R3} �LDMIA R11!,{R4-R7} �]:�V%=0�3:[OPT T% �BIC V%,V%,(V%+4) �]:�:[OPT T% �LDMIA R11!,{R4-R7} �]:�V%=0�3:[OPT T% ��R V%,V%,(V%+4) �]:�:[OPT T% �STMIA R10!,{R0-R3} �]:�:[OPT T% �ADD R10,R10,#160-32 �SUBS R9,R9,#1 � BGT yloop B plotreturn : ]:�U%=1�7:Z%=U%<<2:[OPT T% & .plot(U%) 0 .yloop :LDMIA R10,{R0-R4} DLDMIA R11!,{R5-R8} N]:�V%=0�3:[OPT T% XBIC V%,V%,(V%+5),LSL#Z% b&BIC (V%+1),(V%+1),(V%+5),LSR#32-Z% l]:�:[OPT T% vLDMIA R11!,{R5-R8} �]:�V%=0�3:[OPT T% ��R V%,V%,(V%+5),LSL#Z% �%�R (V%+1),(V%+1),(V%+5),LSR#32-Z% �]:�:[OPT T% �STMIA R10!,{R0-R3} �ADD R8,R10,#4 �LDMIA R8,{R5-R8} �LDMIA R11!,{R0-R3} �]:�V%=0�3:[OPT T% �BIC (V%+4),(V%+4),V%,LSL#Z% �"BIC (V%+5),(V%+5),V%,LSR#32-Z% �]:�:[OPT T% �LDMIA R11!,{R0-R3} ]:�V%=0�3:[OPT T% �R (V%+4),(V%+4),V%,LSL#Z% !�R (V%+5),(V%+5),V%,LSR#32-Z% ]:�:[OPT T% *STMIA R10!,{R4-R8} 4ADD R10,R10,#160-36 >SUBS R9,R9,#1 H BGT yloop RB plotreturn \]:�:[OPT T% f: p%� ******************************* z: � .sort �STR R14,link+4 �OPT �adr(14,screen%,2) �.outloop �MOV R13,R14 �ADD R12,R13,#16 �LDR R1,[R13,#8] �.inloop �LDR R0,[R12,#8] � CMP R0,R1 �MOVGT R1,R0 �MOVGT R13,R12 �ADD R12,R12,#16 LDR R0,[R12] CMP R0,#&80000000 BNE inloop $LDMIA R13,{R0-R3} .LDMIA R14,{R4-R7} 8STMIA R14!,{R0-R3} BSTMIA R13,{R4-R7} LLDR R0,[R14,#16] VCMP R0,#&80000000 `BNE outloop jLDR R14,link+4 tMOV PC,R14 ~]:� *FX112,2 �.ș"OS_ReadVduVariables",vduvars,bankaddr+4 �*FX112,1 �,ș"OS_ReadVduVariables",vduvars,bankaddr �� �: � ��testscr �SH%=screen% �&�:Z%=SH%!8-vectors!44+256:�0,Z%>>5 �%ȏSH%!0<<2,255-SH%!4<<2,SH%!12<<1 �SH%+=16:�SH%!0=&80000000 �� �: ���testconv �SP%=sprites% ��T%=0�5:SC%=!bankaddr (�Y%=0�255:�X%=0�63�4:SC%!X%=SP%!X%:� SC%+=160:SP%+=64:�:A=�:� � �
00000000 0d 00 0a 06 eb 39 0d 00 14 24 e3 54 25 3d 30 b8 |.....9...$.T%=0.| 00000010 31 35 3a fb 54 25 2c 54 25 3c 3c 34 2c 54 25 3c |15:.T%,T%<<4,T%<| 00000020 3c 34 2c 54 25 3c 3c 34 3a ed 0d 00 1e 1f de 58 |<4,T%<<4:......X| 00000030 28 36 30 29 2c 59 28 36 30 29 2c 5a 28 36 30 29 |(60),Y(60),Z(60)| 00000040 2c 4c 25 28 39 30 2c 32 29 0d 00 28 2e de 70 6c |,L%(90,2)..(..pl| 00000050 6f 74 28 37 29 2c 73 70 61 63 65 25 26 33 30 30 |ot(7),space%&300| 00000060 30 30 3a 6c 69 6d 69 74 25 3d 73 70 61 63 65 25 |00:limit%=space%| 00000070 2b 26 33 30 30 30 30 0d 00 32 1e 63 6f 64 65 25 |+&30000..2.code%| 00000080 3d 73 70 61 63 65 25 3a 73 70 61 63 65 25 2b 3d |=space%:space%+=| 00000090 31 36 33 38 34 0d 00 3c 1f 73 68 61 70 65 25 3d |16384..<.shape%=| 000000a0 73 70 61 63 65 25 3a 73 70 61 63 65 25 2b 3d 31 |space%:space%+=1| 000000b0 36 2a 36 34 0d 00 46 20 73 63 72 65 65 6e 25 3d |6*64..F screen%=| 000000c0 73 70 61 63 65 25 3a 73 70 61 63 65 25 2b 3d 31 |space%:space%+=1| 000000d0 36 2a 36 34 0d 00 50 1d 69 6e 64 65 78 25 3d 73 |6*64..P.index%=s| 000000e0 70 61 63 65 25 3a 73 70 61 63 65 25 2b 3d 35 31 |pace%:space%+=51| 000000f0 32 0d 00 5a 25 70 65 72 73 70 65 63 74 69 76 65 |2..Z%perspective| 00000100 25 3d 73 70 61 63 65 25 3a 73 70 61 63 65 25 2b |%=space%:space%+| 00000110 3d 26 34 30 30 30 0d 00 64 22 73 70 72 69 74 65 |=&4000..d"sprite| 00000120 73 25 3d 73 70 61 63 65 25 3a 73 70 61 63 65 25 |s%=space%:space%| 00000130 2b 3d 26 32 30 30 30 30 0d 00 6e 22 e7 73 70 61 |+=&20000..n".spa| 00000140 63 65 25 3e 6c 69 6d 69 74 25 8c 85 32 35 35 2c |ce%>limit%..255,| 00000150 22 44 49 4d 20 73 69 7a 65 22 0d 00 78 0d f2 61 |"DIM size"..x..a| 00000160 73 73 65 6d 62 6c 65 0d 00 82 0c f2 73 70 72 69 |ssemble.....spri| 00000170 74 65 73 0d 00 8c 0e f2 6d 61 6b 65 73 68 61 70 |tes.....makeshap| 00000180 65 0d 00 96 38 e3 54 25 3d 30 b8 34 30 39 35 3a |e...8.T%=0.4095:| 00000190 70 65 72 73 70 65 63 74 69 76 65 25 21 28 54 25 |perspective%!(T%| 000001a0 3c 3c 32 29 3d 36 35 35 33 36 2a 32 35 36 2f 28 |<<2)=65536*256/(| 000001b0 54 25 2b 32 35 36 29 3a ed 0d 00 a0 14 f5 3a 41 |T%+256):......:A| 000001c0 25 3d 41 25 2b 33 32 80 26 46 46 46 46 0d 00 aa |%=A%+32.&FFFF...| 000001d0 10 41 3d af 2a 41 25 2f 26 38 30 30 30 0d 00 b4 |.A=.*A%/&8000...| 000001e0 2d 43 31 3d 9b 28 41 2a 33 29 3a 53 31 3d b5 28 |-C1=.(A*3):S1=.(| 000001f0 41 2a 33 29 3a 43 32 3d 9b 28 41 2a 31 31 29 3a |A*3):C2=.(A*11):| 00000200 53 32 3d b5 28 41 2a 31 31 29 0d 00 be 37 76 65 |S2=.(A*11)...7ve| 00000210 63 74 6f 72 73 21 30 3d 26 31 30 30 30 30 2a 43 |ctors!0=&10000*C| 00000220 31 3a 76 65 63 74 6f 72 73 21 34 3d 30 3a 76 65 |1:vectors!4=0:ve| 00000230 63 74 6f 72 73 21 38 3d 26 31 30 30 30 30 2a 53 |ctors!8=&10000*S| 00000240 31 0d 00 c8 49 76 65 63 74 6f 72 73 21 31 32 3d |1...Ivectors!12=| 00000250 26 31 30 30 30 30 2a 2d 53 31 2a 53 32 3a 76 65 |&10000*-S1*S2:ve| 00000260 63 74 6f 72 73 21 31 36 3d 26 31 30 30 30 30 2a |ctors!16=&10000*| 00000270 43 32 3a 76 65 63 74 6f 72 73 21 32 30 3d 26 31 |C2:vectors!20=&1| 00000280 30 30 30 30 2a 43 31 2a 53 32 0d 00 d2 4a 76 65 |0000*C1*S2...Jve| 00000290 63 74 6f 72 73 21 32 34 3d 26 31 30 30 30 30 2a |ctors!24=&10000*| 000002a0 2d 53 31 2a 43 32 3a 76 65 63 74 6f 72 73 21 32 |-S1*C2:vectors!2| 000002b0 38 3d 26 31 30 30 30 30 2a 2d 53 32 3a 76 65 63 |8=&10000*-S2:vec| 000002c0 74 6f 72 73 21 33 32 3d 26 31 30 30 30 30 2a 43 |tors!32=&10000*C| 000002d0 31 2a 43 32 0d 00 dc 0e c8 97 58 25 2c 59 25 2c |1*C2......X%,Y%,| 000002e0 5a 25 0d 00 e6 30 76 65 63 74 6f 72 73 21 33 36 |Z%...0vectors!36| 000002f0 3d 30 3a 76 65 63 74 6f 72 73 21 34 30 3d 59 25 |=0:vectors!40=Y%| 00000300 2d 35 31 32 3a 76 65 63 74 6f 72 73 21 34 34 3d |-512:vectors!44=| 00000310 58 25 0d 00 f0 0a d6 66 72 61 6d 65 0d 00 fa 3c |X%.....frame...<| 00000320 43 31 25 3d 31 39 31 2b 36 34 2a 9b 28 41 2a 31 |C1%=191+64*.(A*1| 00000330 32 29 3a 43 32 25 3d 31 39 31 2b 36 34 2a 9b 28 |2):C2%=191+64*.(| 00000340 41 2a 31 37 29 3a 43 33 25 3d 31 39 31 2b 36 34 |A*17):C3%=191+64| 00000350 2a 9b 28 41 2a 31 39 29 0d 01 04 1f e3 54 25 3d |*.(A*19).....T%=| 00000360 31 35 b8 31 88 2d 31 3a fb 54 25 2c 43 31 25 2c |15.1.-1:.T%,C1%,| 00000370 43 32 25 2c 43 33 25 0d 01 0e 18 43 31 25 2d 3d |C2%,C3%....C1%-=| 00000380 31 36 3a e7 43 31 25 3c 30 8c 43 31 25 3d 30 0d |16:.C1%<0.C1%=0.| 00000390 01 18 18 43 32 25 2d 3d 31 36 3a e7 43 32 25 3c |...C2%-=16:.C2%<| 000003a0 30 8c 43 32 25 3d 30 0d 01 22 18 43 33 25 2d 3d |0.C2%=0..".C3%-=| 000003b0 31 36 3a e7 43 33 25 3c 30 8c 43 33 25 3d 30 0d |16:.C3%<0.C3%=0.| 000003c0 01 2c 05 ed 0d 01 36 06 fd 30 0d 01 40 05 e0 0d |.,....6..0..@...| 000003d0 01 4a 05 3a 0d 01 54 05 3a 0d 01 5e 0d dd f2 73 |.J.:..T.:..^...s| 000003e0 70 72 69 74 65 73 0d 01 68 27 ff 28 22 4c 4f 41 |prites..h'.("LOA| 000003f0 44 20 3c 43 36 30 24 64 69 72 3e 2e 49 6e 64 65 |D <C60$dir>.Inde| 00000400 78 20 22 2b c3 7e 69 6e 64 65 78 25 29 0d 01 72 |x "+.~index%)..r| 00000410 2b ff 28 22 4c 4f 41 44 20 3c 43 36 30 24 64 69 |+.("LOAD <C60$di| 00000420 72 3e 2e 53 70 72 69 74 65 73 20 22 2b c3 7e 73 |r>.Sprites "+.~s| 00000430 70 72 69 74 65 73 25 29 0d 01 7c 05 e1 0d 01 86 |prites%)..|.....| 00000440 19 69 6e 64 65 78 25 21 30 3d 30 3a 69 6e 64 65 |.index%!0=0:inde| 00000450 78 25 21 34 3d 30 0d 01 90 10 53 50 25 3d 73 70 |x%!4=0....SP%=sp| 00000460 72 69 74 65 73 25 0d 01 9a 2c e3 4c 25 3d 31 b8 |rites%...,.L%=1.| 00000470 36 33 3a 49 55 25 3d 69 6e 64 65 78 25 2b 28 4c |63:IU%=index%+(L| 00000480 25 3c 3c 33 29 3a 4c 32 25 3d 4c 25 2a 4c 25 3c |%<<3):L2%=L%*L%<| 00000490 3c 32 0d 01 a4 15 db 3a 46 3d 31 2f 28 b6 28 36 |<2.....:F=1/(.(6| 000004a0 29 2a 4c 25 2a 32 29 0d 01 ae 30 e3 58 25 3d 2d |)*L%*2)...0.X%=-| 000004b0 31 32 36 b8 31 32 36 88 34 3a e3 59 25 3d 2d 31 |126.126.4:.Y%=-1| 000004c0 32 36 b8 58 25 88 34 3a 52 32 25 3d 58 25 2a 58 |26.X%.4:R2%=X%*X| 000004d0 25 2b 59 25 2a 59 25 0d 01 b8 0e e7 52 32 25 3c |%+Y%*Y%.....R2%<| 000004e0 3d 4c 32 25 8c 0d 01 c2 21 5a 3d 2d b6 28 4c 32 |=L2%....!Z=-.(L2| 000004f0 25 2d 52 32 25 29 3a 42 3d 28 58 25 2b 59 25 2d |%-R2%):B=(X%+Y%-| 00000500 32 2a 5a 29 2a 46 0d 01 cc 32 e7 42 3c 30 8c e6 |2*Z)*F...2.B<0..| 00000510 30 2c 31 8b e7 28 58 25 80 34 29 3d 28 59 25 80 |0,1..(X%.4)=(Y%.| 00000520 34 29 8c e6 30 2c 31 2b 42 2a 31 34 8b e6 30 2c |4)..0,1+B*14..0,| 00000530 31 2e 35 2b 42 2a 31 34 0d 01 d6 23 c8 92 31 32 |1.5+B*14...#..12| 00000540 38 2b 58 25 2c 31 32 38 2b 59 25 3a c8 92 31 32 |8+X%,128+Y%:..12| 00000550 38 2b 59 25 2c 31 32 38 2b 58 25 0d 01 e0 08 cd |8+Y%,128+X%.....| 00000560 3a ed 2c 0d 01 ea 29 4d 25 3d 32 2b 4c 25 3e 3e |:.,...)M%=2+L%>>| 00000570 31 3a 53 43 25 3d 21 62 61 6e 6b 61 64 64 72 2b |1:SC%=!bankaddr+| 00000580 28 32 32 34 2d 4d 25 29 2a 31 36 30 0d 01 f4 29 |(224-M%)*160...)| 00000590 21 49 55 25 3d 53 50 25 2d 73 70 72 69 74 65 73 |!IU%=SP%-sprites| 000005a0 25 3a 49 55 25 3f 34 3d 4d 25 3a 49 55 25 3f 35 |%:IU%?4=M%:IU%?5| 000005b0 3d 4d 25 2a 32 0d 01 fe 3d 21 73 70 61 64 64 72 |=M%*2...=!spaddr| 000005c0 3d 53 50 25 3a 21 73 63 61 64 64 72 3d 53 43 25 |=SP%:!scaddr=SC%| 000005d0 3a 21 73 69 7a 65 3d 32 2a 4d 25 2d 31 3a d6 63 |:!size=2*M%-1:.c| 000005e0 6f 6e 76 73 70 72 3a 53 50 25 3d 21 73 70 61 64 |onvspr:SP%=!spad| 000005f0 64 72 0d 02 08 05 ed 0d 02 12 05 e1 0d 02 1c 05 |dr..............| 00000600 3a 0d 02 26 0f dd f2 6d 61 6b 65 73 68 61 70 65 |:..&...makeshape| 00000610 0d 02 30 27 ff 28 22 4c 4f 41 44 20 3c 43 36 30 |..0'.("LOAD <C60| 00000620 24 64 69 72 3e 2e 53 68 61 70 65 20 22 2b c3 7e |$dir>.Shape "+.~| 00000630 73 68 61 70 65 25 29 0d 02 3a 05 e1 0d 02 44 4d |shape%)..:....DM| 00000640 e3 54 25 3d 31 b8 36 30 88 35 3a f3 58 25 2c 59 |.T%=1.60.5:.X%,Y| 00000650 25 2c 5a 25 3a e3 55 25 3d 30 b8 34 3a 58 28 54 |%,Z%:.U%=0.4:X(T| 00000660 25 2b 55 25 29 3d 58 25 2b 55 25 2a 31 30 3a 59 |%+U%)=X%+U%*10:Y| 00000670 28 54 25 2b 55 25 29 3d 59 25 3a 5a 28 54 25 2b |(T%+U%)=Y%:Z(T%+| 00000680 55 25 29 3d 5a 25 3a ed 2c 0d 02 4e 21 e3 54 25 |U%)=Z%:.,..N!.T%| 00000690 3d 31 b8 39 30 3a f3 4c 25 28 54 25 2c 31 29 2c |=1.90:.L%(T%,1),| 000006a0 4c 25 28 54 25 2c 32 29 3a ed 0d 02 58 07 f5 3a |L%(T%,2):...X..:| 000006b0 db 0d 02 62 4f e3 54 25 3d 31 b8 39 30 3a 86 36 |...bO.T%=1.90:.6| 000006c0 34 30 2b 58 28 4c 25 28 54 25 2c 31 29 29 2c 35 |40+X(L%(T%,1)),5| 000006d0 31 32 2b 59 28 4c 25 28 54 25 2c 31 29 29 2c 36 |12+Y(L%(T%,1)),6| 000006e0 34 30 2b 58 28 4c 25 28 54 25 2c 32 29 29 2c 35 |40+X(L%(T%,2)),5| 000006f0 31 32 2b 59 28 4c 25 28 54 25 2c 32 29 29 3a ed |12+Y(L%(T%,2)):.| 00000700 0d 02 6c 65 e3 54 25 3d 31 b8 36 30 3a 46 3d 32 |..le.T%=1.60:F=2| 00000710 30 30 2f b6 28 58 28 54 25 29 2a 58 28 54 25 29 |00/.(X(T%)*X(T%)| 00000720 2b 59 28 54 25 29 2a 59 28 54 25 29 2b 5a 28 54 |+Y(T%)*Y(T%)+Z(T| 00000730 25 29 2a 5a 28 54 25 29 29 3a 58 28 54 25 29 3d |%)*Z(T%)):X(T%)=| 00000740 58 28 54 25 29 2a 46 3a 59 28 54 25 29 3d 59 28 |X(T%)*F:Y(T%)=Y(| 00000750 54 25 29 2a 46 3a 5a 28 54 25 29 3d 5a 28 54 25 |T%)*F:Z(T%)=Z(T%| 00000760 29 2a 46 3a ed 0d 02 76 58 f5 3a 4d 46 3d 30 3a |)*F:...vX.:MF=0:| 00000770 e3 54 25 3d 31 b8 39 30 3a 46 25 3d 4c 25 28 54 |.T%=1.90:F%=L%(T| 00000780 25 2c 31 29 3a 47 25 3d 4c 25 28 54 25 2c 32 29 |%,1):G%=L%(T%,2)| 00000790 3a 44 58 3d 58 28 46 25 29 2d 58 28 47 25 29 3a |:DX=X(F%)-X(G%):| 000007a0 44 59 3d 59 28 46 25 29 2d 59 28 47 25 29 3a 44 |DY=Y(F%)-Y(G%):D| 000007b0 5a 3d 5a 28 46 25 29 2d 5a 28 47 25 29 0d 02 80 |Z=Z(F%)-Z(G%)...| 000007c0 18 e7 44 58 3d 30 80 44 59 3d 30 80 44 5a 3d 30 |..DX=0.DY=0.DZ=0| 000007d0 8c 44 58 3d 31 0d 02 8a 3a 52 3d b6 28 44 58 2a |.DX=1...:R=.(DX*| 000007e0 44 58 2b 44 59 2a 44 59 2b 44 5a 2a 44 5a 29 3a |DX+DY*DY+DZ*DZ):| 000007f0 46 3d 30 2e 35 2a 28 36 34 2f 52 2d 31 29 3a e7 |F=0.5*(64/R-1):.| 00000800 4d 46 3c 94 28 46 29 8c 4d 46 3d 94 28 46 29 0d |MF<.(F).MF=.(F).| 00000810 02 94 36 58 28 46 25 29 3d 58 28 46 25 29 2b 44 |..6X(F%)=X(F%)+D| 00000820 58 2a 46 3a 59 28 46 25 29 3d 59 28 46 25 29 2b |X*F:Y(F%)=Y(F%)+| 00000830 44 59 2a 46 3a 5a 28 46 25 29 3d 5a 28 46 25 29 |DY*F:Z(F%)=Z(F%)| 00000840 2b 44 5a 2a 46 0d 02 9e 36 58 28 47 25 29 3d 58 |+DZ*F...6X(G%)=X| 00000850 28 47 25 29 2d 44 58 2a 46 3a 59 28 47 25 29 3d |(G%)-DX*F:Y(G%)=| 00000860 59 28 47 25 29 2d 44 59 2a 46 3a 5a 28 47 25 29 |Y(G%)-DY*F:Z(G%)| 00000870 3d 5a 28 47 25 29 2d 44 5a 2a 46 0d 02 a8 1c ed |=Z(G%)-DZ*F.....| 00000880 3a f1 4d 46 3a fd 4d 46 3c 30 2e 32 2b 30 2e 31 |:.MF:.MF<0.2+0.1| 00000890 39 2a a6 28 2d 31 29 0d 02 b2 0b fd a6 28 2d 39 |9*.(-1)......(-9| 000008a0 39 29 0d 02 bc 17 53 48 25 3d 73 68 61 70 65 25 |9)....SH%=shape%| 000008b0 3a e3 54 25 3d 31 b8 36 30 0d 02 c6 31 53 48 25 |:.T%=1.60...1SH%| 000008c0 21 30 3d 58 28 54 25 29 3a 53 48 25 21 34 3d 59 |!0=X(T%):SH%!4=Y| 000008d0 28 54 25 29 3a 53 48 25 21 38 3d 5a 28 54 25 29 |(T%):SH%!8=Z(T%)| 000008e0 3a 53 48 25 21 31 32 3d 37 32 0d 02 d0 1c 53 48 |:SH%!12=72....SH| 000008f0 25 2b 3d 31 36 3a ed 3a 21 53 48 25 3d 26 38 30 |%+=16:.:!SH%=&80| 00000900 30 30 30 30 30 30 0d 02 da 05 e1 0d 02 e4 05 3a |000000.........:| 00000910 0d 02 ee 41 dc 30 2c 31 30 30 2c 30 2c 20 30 2c |...A.0,100,0, 0,| 00000920 38 30 2c 36 30 2c 20 35 30 2c 38 30 2c 35 30 2c |80,60, 50,80,50,| 00000930 20 35 30 2c 38 30 2c 2d 35 30 2c 20 2d 35 30 2c | 50,80,-50, -50,| 00000940 38 30 2c 2d 35 30 2c 20 2d 35 30 2c 38 30 2c 35 |80,-50, -50,80,5| 00000950 30 0d 02 f8 47 dc 30 2c 2d 31 30 30 2c 30 2c 20 |0...G.0,-100,0, | 00000960 30 2c 2d 38 30 2c 36 30 2c 20 35 30 2c 2d 38 30 |0,-80,60, 50,-80| 00000970 2c 35 30 2c 20 35 30 2c 2d 38 30 2c 2d 35 30 2c |,50, 50,-80,-50,| 00000980 20 2d 35 30 2c 2d 38 30 2c 2d 35 30 2c 20 2d 35 | -50,-80,-50, -5| 00000990 30 2c 2d 38 30 2c 35 30 0d 03 02 05 3a 0d 03 0c |0,-80,50....:...| 000009a0 c3 dc 31 2c 32 2c 20 32 2c 33 2c 20 33 2c 34 2c |..1,2, 2,3, 3,4,| 000009b0 20 34 2c 35 2c 20 35 2c 31 2c 20 36 2c 37 2c 20 | 4,5, 5,1, 6,7, | 000009c0 37 2c 38 2c 20 38 2c 39 2c 20 39 2c 31 30 2c 20 |7,8, 8,9, 9,10, | 000009d0 31 30 2c 36 2c 20 31 31 2c 31 32 2c 20 31 32 2c |10,6, 11,12, 12,| 000009e0 31 33 2c 20 31 33 2c 31 34 2c 20 31 34 2c 31 35 |13, 13,14, 14,15| 000009f0 2c 20 31 35 2c 31 31 2c 20 31 36 2c 31 37 2c 20 |, 15,11, 16,17, | 00000a00 31 37 2c 31 38 2c 20 31 38 2c 31 39 2c 20 31 39 |17,18, 18,19, 19| 00000a10 2c 32 30 2c 20 32 30 2c 31 36 2c 20 32 31 2c 32 |,20, 20,16, 21,2| 00000a20 32 2c 20 32 32 2c 32 33 2c 20 32 33 2c 32 34 2c |2, 22,23, 23,24,| 00000a30 20 32 34 2c 32 35 2c 20 32 35 2c 32 31 2c 20 32 | 24,25, 25,21, 2| 00000a40 36 2c 32 37 2c 20 32 37 2c 32 38 2c 20 32 38 2c |6,27, 27,28, 28,| 00000a50 32 39 2c 20 32 39 2c 33 30 2c 20 33 30 2c 32 36 |29, 29,30, 30,26| 00000a60 0d 03 16 d5 dc 33 31 2c 33 32 2c 20 33 32 2c 33 |.....31,32, 32,3| 00000a70 33 2c 20 33 33 2c 33 34 2c 20 33 34 2c 33 35 2c |3, 33,34, 34,35,| 00000a80 20 33 35 2c 33 31 2c 20 33 36 2c 33 37 2c 20 33 | 35,31, 36,37, 3| 00000a90 37 2c 33 38 2c 20 33 38 2c 33 39 2c 20 33 39 2c |7,38, 38,39, 39,| 00000aa0 34 30 2c 20 34 30 2c 33 36 2c 20 34 31 2c 34 32 |40, 40,36, 41,42| 00000ab0 2c 20 34 32 2c 34 33 2c 20 34 33 2c 34 34 2c 20 |, 42,43, 43,44, | 00000ac0 34 34 2c 34 35 2c 20 34 35 2c 34 31 2c 20 34 36 |44,45, 45,41, 46| 00000ad0 2c 34 37 2c 20 34 37 2c 34 38 2c 20 34 38 2c 34 |,47, 47,48, 48,4| 00000ae0 39 2c 20 34 39 2c 35 30 2c 20 35 30 2c 34 36 2c |9, 49,50, 50,46,| 00000af0 20 35 31 2c 35 32 2c 20 35 32 2c 35 33 2c 20 35 | 51,52, 52,53, 5| 00000b00 33 2c 35 34 2c 20 35 34 2c 35 35 2c 20 35 35 2c |3,54, 54,55, 55,| 00000b10 35 31 2c 20 35 36 2c 35 37 2c 20 35 37 2c 35 38 |51, 56,57, 57,58| 00000b20 2c 20 35 38 2c 35 39 2c 20 35 39 2c 36 30 2c 20 |, 58,59, 59,60, | 00000b30 36 30 2c 35 36 0d 03 20 43 dc 31 2c 36 2c 20 32 |60,56.. C.1,6, 2| 00000b40 2c 31 31 2c 20 33 2c 31 36 2c 20 34 2c 32 31 2c |,11, 3,16, 4,21,| 00000b50 20 35 2c 32 36 2c 20 33 31 2c 33 36 2c 20 33 32 | 5,26, 31,36, 32| 00000b60 2c 34 31 2c 20 33 33 2c 34 36 2c 20 33 34 2c 35 |,41, 33,46, 34,5| 00000b70 31 2c 20 33 35 2c 35 36 0d 03 2a 48 dc 37 2c 31 |1, 35,56..*H.7,1| 00000b80 35 2c 20 31 32 2c 32 30 2c 20 31 37 2c 32 35 2c |5, 12,20, 17,25,| 00000b90 20 32 32 2c 33 30 2c 20 32 37 2c 31 30 2c 20 33 | 22,30, 27,10, 3| 00000ba0 37 2c 34 35 2c 20 34 32 2c 35 30 2c 20 34 37 2c |7,45, 42,50, 47,| 00000bb0 35 35 2c 20 35 32 2c 36 30 2c 20 35 37 2c 34 30 |55, 52,60, 57,40| 00000bc0 0d 03 34 47 dc 38 2c 33 39 2c 20 33 38 2c 31 34 |..4G.8,39, 38,14| 00000bd0 2c 20 31 33 2c 34 34 2c 20 34 33 2c 31 39 2c 20 |, 13,44, 43,19, | 00000be0 31 38 2c 34 39 2c 20 34 38 2c 32 34 2c 20 32 33 |18,49, 48,24, 23| 00000bf0 2c 35 34 2c 20 35 33 2c 32 39 2c 20 32 38 2c 35 |,54, 53,29, 28,5| 00000c00 39 2c 20 35 38 2c 39 0d 03 3e 05 3a 0d 03 48 1e |9, 58,9..>.:..H.| 00000c10 dd a4 61 64 72 28 52 25 2c 48 25 2c 49 25 29 3a |..adr(R%,H%,I%):| 00000c20 47 25 3d 48 25 2d 50 25 2d 38 0d 03 52 18 ea 4f |G%=H%-P%-8..R..O| 00000c30 25 2c 55 25 2c 4e 25 3a 4f 25 3d 31 35 3a 4e 25 |%,U%,N%:O%=15:N%| 00000c40 3d 30 0d 03 5c 0c e3 55 25 3d 31 b8 49 25 0d 03 |=0..\..U%=1.I%..| 00000c50 66 0a e7 47 25 3d 30 8c 0d 03 70 20 cc c8 95 28 |f..G%=0...p ...(| 00000c60 47 25 80 33 29 3d 30 3a 47 25 3d 47 25 3e 3e 32 |G%.3)=0:G%=G%>>2| 00000c70 3a 4e 25 2b 3d 32 3a ce 0d 03 7a 10 e7 28 47 25 |:N%+=2:...z..(G%| 00000c80 80 32 35 36 29 3d 30 8c 0d 03 84 30 5b 4f 50 54 |.256)=0....0[OPT| 00000c90 20 54 25 3a 41 44 44 20 52 25 2c 4f 25 2c 23 28 | T%:ADD R%,O%,#(| 00000ca0 47 25 80 32 35 35 29 3c 3c 4e 25 3a 5d 3a 47 25 |G%.255)<<N%:]:G%| 00000cb0 2d 3d 47 25 80 32 35 35 0d 03 8e 39 cc 5b 4f 50 |-=G%.255...9.[OP| 00000cc0 54 20 54 25 3a 53 55 42 20 52 25 2c 4f 25 2c 23 |T T%:SUB R%,O%,#| 00000cd0 28 32 35 36 2d 47 25 80 32 35 35 29 3c 3c 4e 25 |(256-G%.255)<<N%| 00000ce0 3a 5d 3a 47 25 2b 3d 32 35 36 2d 47 25 80 32 35 |:]:G%+=256-G%.25| 00000cf0 35 0d 03 98 05 cd 0d 03 a2 05 cd 0d 03 ac 24 4f |5.............$O| 00000d00 25 3d 52 25 3a ed 3a e7 47 25 3c 3e 30 8c 85 32 |%=R%:.:.G%<>0..2| 00000d10 35 35 2c 22 41 44 52 20 6c 65 6e 67 74 68 22 0d |55,"ADR length".| 00000d20 03 b6 07 3d 54 25 0d 03 c0 05 3a 0d 03 ca 0e dd |...=T%....:.....| 00000d30 f2 61 73 73 65 6d 62 6c 65 0d 03 d4 16 e3 54 25 |.assemble.....T%| 00000d40 3d 30 b8 32 88 32 3a 50 25 3d 63 6f 64 65 25 0d |=0.2.2:P%=code%.| 00000d50 03 de 0b 5b 4f 50 54 20 54 25 0d 03 e8 0b 2e 73 |...[OPT T%.....s| 00000d60 63 61 64 64 72 0d 03 f2 0a 45 51 55 44 20 30 0d |caddr....EQUD 0.| 00000d70 03 fc 0b 2e 73 70 61 64 64 72 0d 04 06 0a 45 51 |....spaddr....EQ| 00000d80 55 44 20 30 0d 04 10 09 2e 73 69 7a 65 0d 04 1a |UD 0.....size...| 00000d90 0a 45 51 55 44 20 30 0d 04 24 0c 2e 63 6f 6e 76 |.EQUD 0..$..conv| 00000da0 73 70 72 0d 04 2e 11 4c 44 52 20 52 30 2c 73 70 |spr....LDR R0,sp| 00000db0 61 64 64 72 0d 04 38 11 4c 44 52 20 52 31 2c 73 |addr..8.LDR R1,s| 00000dc0 63 61 64 64 72 0d 04 42 0f 4c 44 52 20 52 32 2c |caddr..B.LDR R2,| 00000dd0 73 69 7a 65 0d 04 4c 0a 2e 79 6c 6f 6f 70 0d 04 |size..L..yloop..| 00000de0 56 15 5d 3a e3 55 25 3d 30 b8 31 3a 5b 4f 50 54 |V.]:.U%=0.1:[OPT| 00000df0 20 54 25 0d 04 60 16 4c 44 4d 49 41 20 52 31 21 | T%..`.LDMIA R1!| 00000e00 2c 7b 52 37 2d 52 31 30 7d 0d 04 6a 15 5d 3a e3 |,{R7-R10}..j.]:.| 00000e10 56 25 3d 30 b8 33 3a 5b 4f 50 54 20 54 25 0d 04 |V%=0.3:[OPT T%..| 00000e20 74 11 4d 4f 56 20 28 33 2b 56 25 29 2c 23 30 0d |t.MOV (3+V%),#0.| 00000e30 04 7e 15 5d 3a e3 57 25 3d 30 b8 37 3a 5b 4f 50 |.~.]:.W%=0.7:[OP| 00000e40 54 20 54 25 0d 04 88 1b 54 53 54 20 28 37 2b 56 |T T%....TST (7+V| 00000e50 25 29 2c 23 31 35 3c 3c 28 57 25 3c 3c 32 29 0d |%),#15<<(W%<<2).| 00000e60 04 92 24 41 44 44 4e 45 20 28 33 2b 56 25 29 2c |..$ADDNE (3+V%),| 00000e70 28 33 2b 56 25 29 2c 23 31 35 3c 3c 28 57 25 3c |(3+V%),#15<<(W%<| 00000e80 3c 32 29 0d 04 9c 10 5d 3a ed 2c 3a 5b 4f 50 54 |<2)....]:.,:[OPT| 00000e90 20 54 25 0d 04 a6 16 53 54 4d 49 41 20 52 30 21 | T%....STMIA R0!| 00000ea0 2c 7b 52 33 2d 52 31 30 7d 0d 04 b0 0f 5d 3a ed |,{R3-R10}....]:.| 00000eb0 3a 5b 4f 50 54 20 54 25 0d 04 ba 15 41 44 44 20 |:[OPT T%....ADD | 00000ec0 52 31 2c 52 31 2c 23 31 36 30 2d 33 32 0d 04 c4 |R1,R1,#160-32...| 00000ed0 11 53 55 42 53 20 52 32 2c 52 32 2c 23 31 0d 04 |.SUBS R2,R2,#1..| 00000ee0 ce 0d 42 47 54 20 79 6c 6f 6f 70 0d 04 d8 11 53 |..BGT yloop....S| 00000ef0 54 52 20 52 30 2c 73 70 61 64 64 72 0d 04 e2 0e |TR R0,spaddr....| 00000f00 4d 4f 56 20 50 43 2c 52 31 34 0d 04 ec 05 3a 0d |MOV PC,R14....:.| 00000f10 04 f6 22 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |..". ***********| 00000f20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00000f30 2a 0d 05 00 05 3a 0d 05 0a 0c 2e 76 64 75 76 61 |*....:.....vduva| 00000f40 72 73 0d 05 14 0c 45 51 55 44 20 31 34 38 0d 05 |rs....EQUD 148..| 00000f50 1e 0b 45 51 55 44 20 2d 31 0d 05 32 0d 2e 62 61 |..EQUD -1..2..ba| 00000f60 6e 6b 61 64 64 72 0d 05 3c 0b 45 51 55 44 20 2d |nkaddr..<.EQUD -| 00000f70 31 0d 05 46 0b 45 51 55 44 20 2d 31 0d 05 50 09 |1..F.EQUD -1..P.| 00000f80 2e 62 61 6e 6b 0d 05 5a 0a 45 51 55 44 20 30 0d |.bank..Z.EQUD 0.| 00000f90 05 64 0c 2e 73 63 72 61 64 64 72 0d 05 6e 0a 45 |.d..scraddr..n.E| 00000fa0 51 55 44 20 30 0d 05 78 0e 2e 61 6e 69 6d 61 74 |QUD 0..x..animat| 00000fb0 69 6f 6e 0d 05 82 0a 45 51 55 44 20 30 0d 05 8c |ion....EQUD 0...| 00000fc0 05 3a 0d 05 96 09 2e 6c 69 6e 6b 0d 05 a0 0a 45 |.:.....link....E| 00000fd0 51 55 44 20 30 0d 05 aa 0a 45 51 55 44 20 30 0d |QUD 0....EQUD 0.| 00000fe0 05 b4 0a 45 51 55 44 20 30 0d 05 be 0b 2e 73 74 |...EQUD 0.....st| 00000ff0 61 63 6b 70 0d 05 c8 0a 45 51 55 44 20 30 0d 05 |ackp....EQUD 0..| 00001000 d2 05 3a 0d 05 dc 22 f4 20 2a 2a 2a 2a 2a 2a 2a |..:...". *******| 00001010 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00001020 2a 2a 2a 2a 2a 0d 05 e6 05 3a 0d 05 f0 0a 2e 66 |*****....:.....f| 00001030 72 61 6d 65 0d 05 fa 12 53 54 52 20 52 31 33 2c |rame....STR R13,| 00001040 73 74 61 63 6b 70 0d 06 04 12 53 54 52 20 52 31 |stackp....STR R1| 00001050 34 2c 6c 69 6e 6b 2b 30 0d 06 0e 0f 4c 44 52 20 |4,link+0....LDR | 00001060 52 30 2c 62 61 6e 6b 0d 06 18 0e 82 20 52 30 2c |R0,bank..... R0,| 00001070 52 30 2c 23 31 0d 06 22 0f 53 54 52 20 52 30 2c |R0,#1..".STR R0,| 00001080 62 61 6e 6b 0d 06 2c 1b 4f 50 54 20 a4 61 64 72 |bank..,.OPT .adr| 00001090 28 31 34 2c 62 61 6e 6b 61 64 64 72 2c 31 29 0d |(14,bankaddr,1).| 000010a0 06 36 1a 4c 44 52 20 52 31 34 2c 5b 52 31 34 2c |.6.LDR R14,[R14,| 000010b0 52 30 2c 41 53 4c 23 32 5d 0d 06 40 13 53 54 52 |R0,ASL#2]..@.STR| 000010c0 20 52 31 34 2c 73 63 72 61 64 64 72 0d 06 4a 10 | R14,scraddr..J.| 000010d0 41 44 44 20 52 31 2c 52 30 2c 23 31 0d 06 54 0f |ADD R1,R0,#1..T.| 000010e0 4d 4f 56 20 52 30 2c 23 31 31 32 0d 06 5e 11 53 |MOV R0,#112..^.S| 000010f0 57 49 20 22 4f 53 5f 42 79 74 65 22 0d 06 68 0e |WI "OS_Byte"..h.| 00001100 4d 4f 56 20 52 30 2c 23 31 39 0d 06 72 11 53 57 |MOV R0,#19..r.SW| 00001110 49 20 22 4f 53 5f 42 79 74 65 22 0d 06 7c 0c 53 |I "OS_Byte"..|.S| 00001120 57 49 20 26 31 30 43 0d 06 86 05 3a 0d 06 90 0d |WI &10C....:....| 00001130 42 4c 20 72 6f 74 61 74 65 0d 06 9a 0b 42 4c 20 |BL rotate....BL | 00001140 73 6f 72 74 0d 06 a4 0b 42 4c 20 70 6c 6f 74 0d |sort....BL plot.| 00001150 06 ae 05 3a 0d 06 b8 0f 4c 44 52 20 52 31 2c 62 |...:....LDR R1,b| 00001160 61 6e 6b 0d 06 c2 10 41 44 44 20 52 31 2c 52 31 |ank....ADD R1,R1| 00001170 2c 23 31 0d 06 cc 0f 4d 4f 56 20 52 30 2c 23 31 |,#1....MOV R0,#1| 00001180 31 33 0d 06 d6 11 53 57 49 20 22 4f 53 5f 42 79 |13....SWI "OS_By| 00001190 74 65 22 0d 06 e0 12 4c 44 52 20 52 31 33 2c 73 |te"....LDR R13,s| 000011a0 74 61 63 6b 70 0d 06 ea 12 4c 44 52 20 52 31 34 |tackp....LDR R14| 000011b0 2c 6c 69 6e 6b 2b 30 0d 06 f4 0e 4d 4f 56 20 50 |,link+0....MOV P| 000011c0 43 2c 52 31 34 0d 06 fe 05 3a 0d 07 08 22 f4 20 |C,R14....:...". | 000011d0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 000011e0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 07 12 0c |************....| 000011f0 2e 76 65 63 74 6f 72 73 0d 07 1c 1d 45 51 55 44 |.vectors....EQUD| 00001200 20 26 31 30 30 30 30 3a 45 51 55 44 20 30 3a 45 | &10000:EQUD 0:E| 00001210 51 55 44 20 30 0d 07 26 1d 45 51 55 44 20 30 3a |QUD 0..&.EQUD 0:| 00001220 45 51 55 44 20 26 31 30 30 30 30 3a 45 51 55 44 |EQUD &10000:EQUD| 00001230 20 30 0d 07 30 1d 45 51 55 44 20 30 3a 45 51 55 | 0..0.EQUD 0:EQU| 00001240 44 20 30 3a 45 51 55 44 20 26 31 30 30 30 30 0d |D 0:EQUD &10000.| 00001250 07 3a 18 45 51 55 44 20 30 3a 45 51 55 44 20 30 |.:.EQUD 0:EQUD 0| 00001260 3a 45 51 55 44 20 30 0d 07 44 05 3a 0d 07 4e 0b |:EQUD 0..D.:..N.| 00001270 2e 72 6f 74 61 74 65 0d 07 58 12 53 54 52 20 52 |.rotate..X.STR R| 00001280 31 34 2c 6c 69 6e 6b 2b 34 0d 07 62 19 4f 50 54 |14,link+4..b.OPT| 00001290 20 a4 61 64 72 28 31 34 2c 73 68 61 70 65 25 2c | .adr(14,shape%,| 000012a0 32 29 0d 07 6c 1a 4f 50 54 20 a4 61 64 72 28 31 |2)..l.OPT .adr(1| 000012b0 33 2c 73 63 72 65 65 6e 25 2c 32 29 0d 07 76 1a |3,screen%,2)..v.| 000012c0 4f 50 54 20 a4 61 64 72 28 31 32 2c 76 65 63 74 |OPT .adr(12,vect| 000012d0 6f 72 73 2c 31 29 0d 07 80 1f 4f 50 54 20 a4 61 |ors,1)....OPT .a| 000012e0 64 72 28 31 31 2c 70 65 72 73 70 65 63 74 69 76 |dr(11,perspectiv| 000012f0 65 25 2c 32 29 0d 07 8a 0d 2e 62 61 6c 6c 6c 6f |e%,2).....balllo| 00001300 6f 70 0d 07 94 19 4c 44 4d 49 41 20 52 31 34 21 |op....LDMIA R14!| 00001310 2c 7b 52 30 2d 52 32 2c 52 39 7d 0d 07 9e 15 43 |,{R0-R2,R9}....C| 00001320 4d 50 20 52 30 2c 23 26 38 30 30 30 30 30 30 30 |MP R0,#&80000000| 00001330 0d 07 a8 11 42 45 51 20 65 6e 64 72 6f 74 61 74 |....BEQ endrotat| 00001340 65 0d 07 b2 16 4c 44 4d 49 41 20 52 31 32 21 2c |e....LDMIA R12!,| 00001350 7b 52 33 2d 52 35 7d 0d 07 bc 10 4d 55 4c 20 52 |{R3-R5}....MUL R| 00001360 36 2c 52 33 2c 52 30 0d 07 c6 10 4d 55 4c 20 52 |6,R3,R0....MUL R| 00001370 37 2c 52 34 2c 52 30 0d 07 d0 10 4d 55 4c 20 52 |7,R4,R0....MUL R| 00001380 38 2c 52 35 2c 52 30 0d 07 da 16 4c 44 4d 49 41 |8,R5,R0....LDMIA| 00001390 20 52 31 32 21 2c 7b 52 33 2d 52 35 7d 0d 07 e4 | R12!,{R3-R5}...| 000013a0 13 4d 4c 41 20 52 36 2c 52 33 2c 52 31 2c 52 36 |.MLA R6,R3,R1,R6| 000013b0 0d 07 ee 13 4d 4c 41 20 52 37 2c 52 34 2c 52 31 |....MLA R7,R4,R1| 000013c0 2c 52 37 0d 07 f8 13 4d 4c 41 20 52 38 2c 52 35 |,R7....MLA R8,R5| 000013d0 2c 52 31 2c 52 38 0d 08 02 16 4c 44 4d 49 41 20 |,R1,R8....LDMIA | 000013e0 52 31 32 21 2c 7b 52 33 2d 52 35 7d 0d 08 0c 13 |R12!,{R3-R5}....| 000013f0 4d 4c 41 20 52 36 2c 52 33 2c 52 32 2c 52 36 0d |MLA R6,R3,R2,R6.| 00001400 08 16 13 4d 4c 41 20 52 37 2c 52 34 2c 52 32 2c |...MLA R7,R4,R2,| 00001410 52 37 0d 08 20 13 4d 4c 41 20 52 38 2c 52 35 2c |R7.. .MLA R8,R5,| 00001420 52 32 2c 52 38 0d 08 2a 16 4c 44 4d 49 41 20 52 |R2,R8..*.LDMIA R| 00001430 31 32 21 2c 7b 52 33 2d 52 35 7d 0d 08 34 17 41 |12!,{R3-R5}..4.A| 00001440 44 44 20 52 36 2c 52 33 2c 52 36 2c 41 53 52 23 |DD R6,R3,R6,ASR#| 00001450 31 36 0d 08 3e 17 41 44 44 20 52 37 2c 52 34 2c |16..>.ADD R7,R4,| 00001460 52 37 2c 41 53 52 23 31 36 0d 08 48 17 41 44 44 |R7,ASR#16..H.ADD| 00001470 20 52 38 2c 52 35 2c 52 38 2c 41 53 52 23 31 36 | R8,R5,R8,ASR#16| 00001480 0d 08 52 16 53 55 42 20 52 31 32 2c 52 31 32 2c |..R.SUB R12,R12,| 00001490 23 34 2a 33 2a 34 0d 08 5c 13 41 44 44 53 20 52 |#4*3*4..\.ADDS R| 000014a0 30 2c 52 38 2c 23 32 35 36 0d 08 66 0f 4d 4f 56 |0,R8,#256..f.MOV| 000014b0 4c 54 20 52 30 2c 23 30 0d 08 70 10 43 4d 50 20 |LT R0,#0..p.CMP | 000014c0 52 30 2c 23 34 30 39 36 0d 08 7a 12 4d 4f 56 47 |R0,#4096..z.MOVG| 000014d0 45 20 52 30 2c 23 34 30 39 36 0d 08 84 12 53 55 |E R0,#4096....SU| 000014e0 42 47 45 20 52 30 2c 52 30 2c 23 31 0d 08 8e 19 |BGE R0,R0,#1....| 000014f0 4c 44 52 20 52 30 2c 5b 52 31 31 2c 52 30 2c 4c |LDR R0,[R11,R0,L| 00001500 53 4c 23 32 5d 0d 08 98 10 4d 55 4c 20 52 36 2c |SL#2]....MUL R6,| 00001510 52 30 2c 52 36 0d 08 a2 10 4d 55 4c 20 52 37 2c |R0,R6....MUL R7,| 00001520 52 30 2c 52 37 0d 08 ac 10 4d 55 4c 20 52 39 2c |R0,R7....MUL R9,| 00001530 52 30 2c 52 39 0d 08 b6 14 4d 4f 56 20 52 36 2c |R0,R9....MOV R6,| 00001540 52 36 2c 41 53 52 23 31 36 0d 08 c0 14 4d 4f 56 |R6,ASR#16....MOV| 00001550 20 52 37 2c 52 37 2c 41 53 52 23 31 36 0d 08 ca | R7,R7,ASR#16...| 00001560 14 4d 4f 56 20 52 39 2c 52 39 2c 41 53 52 23 31 |.MOV R9,R9,ASR#1| 00001570 36 0d 08 d4 12 41 44 44 20 52 36 2c 52 36 2c 23 |6....ADD R6,R6,#| 00001580 31 36 30 0d 08 de 12 52 53 42 20 52 37 2c 52 37 |160....RSB R7,R7| 00001590 2c 23 31 32 38 0d 08 e8 16 53 54 4d 49 41 20 52 |,#128....STMIA R| 000015a0 31 33 21 2c 7b 52 36 2d 52 39 7d 0d 08 f2 0e 42 |13!,{R6-R9}....B| 000015b0 20 62 61 6c 6c 6c 6f 6f 70 0d 08 fc 0e 2e 65 6e | ballloop.....en| 000015c0 64 72 6f 74 61 74 65 0d 09 06 10 53 54 52 20 52 |drotate....STR R| 000015d0 30 2c 5b 52 31 33 5d 0d 09 10 12 4c 44 52 20 52 |0,[R13]....LDR R| 000015e0 31 34 2c 6c 69 6e 6b 2b 34 0d 09 1a 0e 4d 4f 56 |14,link+4....MOV| 000015f0 20 50 43 2c 52 31 34 0d 09 24 05 3a 0d 09 2e 22 | PC,R14..$.:..."| 00001600 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |. **************| 00001610 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 09 |**************..| 00001620 38 05 3a 0d 09 42 09 2e 70 6c 6f 74 0d 09 4c 12 |8.:..B..plot..L.| 00001630 53 54 52 20 52 31 34 2c 6c 69 6e 6b 2b 34 0d 09 |STR R14,link+4..| 00001640 56 13 4c 44 52 20 52 31 34 2c 73 63 72 61 64 64 |V.LDR R14,scradd| 00001650 72 0d 09 60 1a 4f 50 54 20 a4 61 64 72 28 31 33 |r..`.OPT .adr(13| 00001660 2c 73 63 72 65 65 6e 25 2c 32 29 0d 09 6a 19 4f |,screen%,2)..j.O| 00001670 50 54 20 a4 61 64 72 28 31 32 2c 69 6e 64 65 78 |PT .adr(12,index| 00001680 25 2c 32 29 0d 09 74 0d 2e 62 61 6c 6c 6c 6f 6f |%,2)..t..ballloo| 00001690 70 0d 09 7e 0e 2e 64 6f 6e 74 70 72 69 6e 74 0d |p..~..dontprint.| 000016a0 09 88 0f 2e 70 6c 6f 74 72 65 74 75 72 6e 0d 09 |....plotreturn..| 000016b0 92 16 4c 44 4d 49 41 20 52 31 33 21 2c 7b 52 30 |..LDMIA R13!,{R0| 000016c0 2d 52 33 7d 0d 09 9c 15 43 4d 50 20 52 30 2c 23 |-R3}....CMP R0,#| 000016d0 26 38 30 30 30 30 30 30 30 0d 09 a6 0f 42 45 51 |&80000000....BEQ| 000016e0 20 65 6e 64 70 6c 6f 74 0d 09 b0 0e 43 4d 50 20 | endplot....CMP | 000016f0 52 30 2c 23 33 32 0d 09 ba 10 43 4d 4e 47 54 20 |R0,#32....CMNGT | 00001700 52 31 2c 23 33 31 0d 09 c4 11 42 4c 45 20 64 6f |R1,#31....BLE do| 00001710 6e 74 70 72 69 6e 74 0d 09 ce 0f 43 4d 50 20 52 |ntprint....CMP R| 00001720 30 2c 23 32 38 38 0d 09 d8 11 43 4d 50 4c 45 20 |0,#288....CMPLE | 00001730 52 31 2c 23 32 38 38 0d 09 e2 11 42 47 54 20 64 |R1,#288....BGT d| 00001740 6f 6e 74 70 72 69 6e 74 0d 09 ec 0e 43 4d 50 20 |ontprint....CMP | 00001750 52 33 2c 23 36 34 0d 09 f6 10 4d 4f 56 47 45 20 |R3,#64....MOVGE | 00001760 52 33 2c 23 36 33 0d 0a 00 17 41 44 44 20 52 33 |R3,#63....ADD R3| 00001770 2c 52 31 32 2c 52 33 2c 41 53 4c 23 33 0d 0a 0a |,R12,R3,ASL#3...| 00001780 10 4c 44 52 20 52 31 31 2c 5b 52 33 5d 0d 0a 14 |.LDR R11,[R3]...| 00001790 14 4c 44 52 42 20 52 31 30 2c 5b 52 33 2c 23 34 |.LDRB R10,[R3,#4| 000017a0 5d 0d 0a 1e 13 4c 44 52 42 20 52 39 2c 5b 52 33 |]....LDRB R9,[R3| 000017b0 2c 23 35 5d 0d 0a 28 11 53 55 42 20 52 30 2c 52 |,#5]..(.SUB R0,R| 000017c0 30 2c 23 33 32 0d 0a 32 12 53 55 42 53 20 52 31 |0,#32..2.SUBS R1| 000017d0 2c 52 31 2c 52 31 30 0d 0a 3c 12 41 44 44 4c 54 |,R1,R10..<.ADDLT| 000017e0 20 52 39 2c 52 39 2c 52 31 0d 0a 46 1a 53 55 42 | R9,R9,R1..F.SUB| 000017f0 4c 54 20 52 31 31 2c 52 31 31 2c 52 31 2c 41 53 |LT R11,R11,R1,AS| 00001800 4c 23 36 0d 0a 50 0f 4d 4f 56 4c 54 20 52 31 2c |L#6..P.MOVLT R1,| 00001810 23 30 0d 0a 5a 10 41 44 44 20 52 38 2c 52 31 2c |#0..Z.ADD R8,R1,| 00001820 52 39 0d 0a 64 13 53 55 42 53 20 52 38 2c 52 38 |R9..d.SUBS R8,R8| 00001830 2c 23 32 35 36 0d 0a 6e 12 53 55 42 47 54 20 52 |,#256..n.SUBGT R| 00001840 39 2c 52 39 2c 52 38 0d 0a 78 0d 43 4d 50 20 52 |9,R9,R8..x.CMP R| 00001850 39 2c 23 30 0d 0a 82 11 42 4c 45 20 64 6f 6e 74 |9,#0....BLE dont| 00001860 70 72 69 6e 74 0d 0a 8c 1a 4f 50 54 20 a4 61 64 |print....OPT .ad| 00001870 72 28 38 2c 73 70 72 69 74 65 73 25 2c 32 29 0d |r(8,sprites%,2).| 00001880 0a 96 12 41 44 44 20 52 31 31 2c 52 38 2c 52 31 |...ADD R11,R8,R1| 00001890 31 0d 0a a0 0e 80 20 52 38 2c 52 30 2c 23 37 0d |1..... R8,R0,#7.| 000018a0 0a aa 13 4d 4f 56 20 52 30 2c 52 30 2c 41 53 52 |...MOV R0,R0,ASR| 000018b0 23 33 0d 0a b4 18 41 44 44 20 52 31 30 2c 52 31 |#3....ADD R10,R1| 000018c0 34 2c 52 30 2c 41 53 4c 23 32 0d 0a be 18 41 44 |4,R0,ASL#2....AD| 000018d0 44 20 52 31 30 2c 52 31 30 2c 52 31 2c 41 53 4c |D R10,R10,R1,ASL| 000018e0 23 35 0d 0a c8 18 41 44 44 20 52 31 30 2c 52 31 |#5....ADD R10,R1| 000018f0 30 2c 52 31 2c 41 53 4c 23 37 0d 0a d2 1e 4f 50 |0,R1,ASL#7....OP| 00001900 54 20 a4 61 64 72 28 37 2c 70 6c 6f 74 72 6f 75 |T .adr(7,plotrou| 00001910 74 69 6e 65 73 2c 31 29 0d 0a dc 18 4c 44 52 20 |tines,1)....LDR | 00001920 50 43 2c 5b 52 37 2c 52 38 2c 41 53 4c 23 32 5d |PC,[R7,R8,ASL#2]| 00001930 0d 0a e6 0e 2e 64 6f 6e 74 70 72 69 6e 74 0d 0a |.....dontprint..| 00001940 f0 0c 2e 65 6e 64 70 6c 6f 74 0d 0a fa 12 4c 44 |...endplot....LD| 00001950 52 20 52 31 34 2c 6c 69 6e 6b 2b 34 0d 0b 04 0e |R R14,link+4....| 00001960 4d 4f 56 20 50 43 2c 52 31 34 0d 0b 0e 05 3a 0d |MOV PC,R14....:.| 00001970 0b 18 22 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |..". ***********| 00001980 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00001990 2a 0d 0b 22 05 3a 0d 0b 2c 11 2e 70 6c 6f 74 72 |*..".:..,..plotr| 000019a0 6f 75 74 69 6e 65 73 0d 0b 36 15 5d 3a e3 55 25 |outines..6.]:.U%| 000019b0 3d 30 b8 37 3a 5b 4f 50 54 20 54 25 0d 0b 40 11 |=0.7:[OPT T%..@.| 000019c0 45 51 55 44 20 70 6c 6f 74 28 55 25 29 0d 0b 4a |EQUD plot(U%)..J| 000019d0 0f 5d 3a ed 3a 5b 4f 50 54 20 54 25 0d 0b 54 05 |.]:.:[OPT T%..T.| 000019e0 3a 0d 0b 5e 0c 2e 70 6c 6f 74 28 30 29 0d 0b 68 |:..^..plot(0)..h| 000019f0 0a 2e 79 6c 6f 6f 70 0d 0b 72 15 5d 3a e3 57 25 |..yloop..r.]:.W%| 00001a00 3d 30 b8 31 3a 5b 4f 50 54 20 54 25 0d 0b 7c 15 |=0.1:[OPT T%..|.| 00001a10 4c 44 4d 49 41 20 52 31 30 2c 7b 52 30 2d 52 33 |LDMIA R10,{R0-R3| 00001a20 7d 0d 0b 86 16 4c 44 4d 49 41 20 52 31 31 21 2c |}....LDMIA R11!,| 00001a30 7b 52 34 2d 52 37 7d 0d 0b 90 15 5d 3a e3 56 25 |{R4-R7}....]:.V%| 00001a40 3d 30 b8 33 3a 5b 4f 50 54 20 54 25 0d 0b 9a 14 |=0.3:[OPT T%....| 00001a50 42 49 43 20 56 25 2c 56 25 2c 28 56 25 2b 34 29 |BIC V%,V%,(V%+4)| 00001a60 0d 0b a4 0f 5d 3a ed 3a 5b 4f 50 54 20 54 25 0d |....]:.:[OPT T%.| 00001a70 0b ae 16 4c 44 4d 49 41 20 52 31 31 21 2c 7b 52 |...LDMIA R11!,{R| 00001a80 34 2d 52 37 7d 0d 0b b8 15 5d 3a e3 56 25 3d 30 |4-R7}....]:.V%=0| 00001a90 b8 33 3a 5b 4f 50 54 20 54 25 0d 0b c2 13 84 52 |.3:[OPT T%.....R| 00001aa0 20 56 25 2c 56 25 2c 28 56 25 2b 34 29 0d 0b cc | V%,V%,(V%+4)...| 00001ab0 0f 5d 3a ed 3a 5b 4f 50 54 20 54 25 0d 0b d6 16 |.]:.:[OPT T%....| 00001ac0 53 54 4d 49 41 20 52 31 30 21 2c 7b 52 30 2d 52 |STMIA R10!,{R0-R| 00001ad0 33 7d 0d 0b e0 0f 5d 3a ed 3a 5b 4f 50 54 20 54 |3}....]:.:[OPT T| 00001ae0 25 0d 0b ea 17 41 44 44 20 52 31 30 2c 52 31 30 |%....ADD R10,R10| 00001af0 2c 23 31 36 30 2d 33 32 0d 0b f4 11 53 55 42 53 |,#160-32....SUBS| 00001b00 20 52 39 2c 52 39 2c 23 31 0d 0b fe 0d 42 47 54 | R9,R9,#1....BGT| 00001b10 20 79 6c 6f 6f 70 0d 0c 08 10 42 20 70 6c 6f 74 | yloop....B plot| 00001b20 72 65 74 75 72 6e 0d 0c 12 05 3a 0d 0c 1c 1e 5d |return....:....]| 00001b30 3a e3 55 25 3d 31 b8 37 3a 5a 25 3d 55 25 3c 3c |:.U%=1.7:Z%=U%<<| 00001b40 32 3a 5b 4f 50 54 20 54 25 0d 0c 26 0d 2e 70 6c |2:[OPT T%..&..pl| 00001b50 6f 74 28 55 25 29 0d 0c 30 0a 2e 79 6c 6f 6f 70 |ot(U%)..0..yloop| 00001b60 0d 0c 3a 15 4c 44 4d 49 41 20 52 31 30 2c 7b 52 |..:.LDMIA R10,{R| 00001b70 30 2d 52 34 7d 0d 0c 44 16 4c 44 4d 49 41 20 52 |0-R4}..D.LDMIA R| 00001b80 31 31 21 2c 7b 52 35 2d 52 38 7d 0d 0c 4e 15 5d |11!,{R5-R8}..N.]| 00001b90 3a e3 56 25 3d 30 b8 33 3a 5b 4f 50 54 20 54 25 |:.V%=0.3:[OPT T%| 00001ba0 0d 0c 58 1b 42 49 43 20 56 25 2c 56 25 2c 28 56 |..X.BIC V%,V%,(V| 00001bb0 25 2b 35 29 2c 4c 53 4c 23 5a 25 0d 0c 62 26 42 |%+5),LSL#Z%..b&B| 00001bc0 49 43 20 28 56 25 2b 31 29 2c 28 56 25 2b 31 29 |IC (V%+1),(V%+1)| 00001bd0 2c 28 56 25 2b 35 29 2c 4c 53 52 23 33 32 2d 5a |,(V%+5),LSR#32-Z| 00001be0 25 0d 0c 6c 0f 5d 3a ed 3a 5b 4f 50 54 20 54 25 |%..l.]:.:[OPT T%| 00001bf0 0d 0c 76 16 4c 44 4d 49 41 20 52 31 31 21 2c 7b |..v.LDMIA R11!,{| 00001c00 52 35 2d 52 38 7d 0d 0c 80 15 5d 3a e3 56 25 3d |R5-R8}....]:.V%=| 00001c10 30 b8 33 3a 5b 4f 50 54 20 54 25 0d 0c 8a 1a 84 |0.3:[OPT T%.....| 00001c20 52 20 56 25 2c 56 25 2c 28 56 25 2b 35 29 2c 4c |R V%,V%,(V%+5),L| 00001c30 53 4c 23 5a 25 0d 0c 94 25 84 52 20 28 56 25 2b |SL#Z%...%.R (V%+| 00001c40 31 29 2c 28 56 25 2b 31 29 2c 28 56 25 2b 35 29 |1),(V%+1),(V%+5)| 00001c50 2c 4c 53 52 23 33 32 2d 5a 25 0d 0c 9e 0f 5d 3a |,LSR#32-Z%....]:| 00001c60 ed 3a 5b 4f 50 54 20 54 25 0d 0c a8 16 53 54 4d |.:[OPT T%....STM| 00001c70 49 41 20 52 31 30 21 2c 7b 52 30 2d 52 33 7d 0d |IA R10!,{R0-R3}.| 00001c80 0c b2 11 41 44 44 20 52 38 2c 52 31 30 2c 23 34 |...ADD R8,R10,#4| 00001c90 0d 0c bc 14 4c 44 4d 49 41 20 52 38 2c 7b 52 35 |....LDMIA R8,{R5| 00001ca0 2d 52 38 7d 0d 0c c6 16 4c 44 4d 49 41 20 52 31 |-R8}....LDMIA R1| 00001cb0 31 21 2c 7b 52 30 2d 52 33 7d 0d 0c d0 15 5d 3a |1!,{R0-R3}....]:| 00001cc0 e3 56 25 3d 30 b8 33 3a 5b 4f 50 54 20 54 25 0d |.V%=0.3:[OPT T%.| 00001cd0 0c da 1f 42 49 43 20 28 56 25 2b 34 29 2c 28 56 |...BIC (V%+4),(V| 00001ce0 25 2b 34 29 2c 56 25 2c 4c 53 4c 23 5a 25 0d 0c |%+4),V%,LSL#Z%..| 00001cf0 e4 22 42 49 43 20 28 56 25 2b 35 29 2c 28 56 25 |."BIC (V%+5),(V%| 00001d00 2b 35 29 2c 56 25 2c 4c 53 52 23 33 32 2d 5a 25 |+5),V%,LSR#32-Z%| 00001d10 0d 0c ee 0f 5d 3a ed 3a 5b 4f 50 54 20 54 25 0d |....]:.:[OPT T%.| 00001d20 0c f8 16 4c 44 4d 49 41 20 52 31 31 21 2c 7b 52 |...LDMIA R11!,{R| 00001d30 30 2d 52 33 7d 0d 0d 02 15 5d 3a e3 56 25 3d 30 |0-R3}....]:.V%=0| 00001d40 b8 33 3a 5b 4f 50 54 20 54 25 0d 0d 0c 1e 84 52 |.3:[OPT T%.....R| 00001d50 20 28 56 25 2b 34 29 2c 28 56 25 2b 34 29 2c 56 | (V%+4),(V%+4),V| 00001d60 25 2c 4c 53 4c 23 5a 25 0d 0d 16 21 84 52 20 28 |%,LSL#Z%...!.R (| 00001d70 56 25 2b 35 29 2c 28 56 25 2b 35 29 2c 56 25 2c |V%+5),(V%+5),V%,| 00001d80 4c 53 52 23 33 32 2d 5a 25 0d 0d 20 0f 5d 3a ed |LSR#32-Z%.. .]:.| 00001d90 3a 5b 4f 50 54 20 54 25 0d 0d 2a 16 53 54 4d 49 |:[OPT T%..*.STMI| 00001da0 41 20 52 31 30 21 2c 7b 52 34 2d 52 38 7d 0d 0d |A R10!,{R4-R8}..| 00001db0 34 17 41 44 44 20 52 31 30 2c 52 31 30 2c 23 31 |4.ADD R10,R10,#1| 00001dc0 36 30 2d 33 36 0d 0d 3e 11 53 55 42 53 20 52 39 |60-36..>.SUBS R9| 00001dd0 2c 52 39 2c 23 31 0d 0d 48 0d 42 47 54 20 79 6c |,R9,#1..H.BGT yl| 00001de0 6f 6f 70 0d 0d 52 10 42 20 70 6c 6f 74 72 65 74 |oop..R.B plotret| 00001df0 75 72 6e 0d 0d 5c 0f 5d 3a ed 3a 5b 4f 50 54 20 |urn..\.]:.:[OPT | 00001e00 54 25 0d 0d 66 05 3a 0d 0d 70 25 f4 20 2a 2a 2a |T%..f.:..p%. ***| 00001e10 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00001e20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0d 7a 05 |************..z.| 00001e30 3a 0d 0d 84 09 2e 73 6f 72 74 0d 0d 8e 12 53 54 |:.....sort....ST| 00001e40 52 20 52 31 34 2c 6c 69 6e 6b 2b 34 0d 0d 98 1a |R R14,link+4....| 00001e50 4f 50 54 20 a4 61 64 72 28 31 34 2c 73 63 72 65 |OPT .adr(14,scre| 00001e60 65 6e 25 2c 32 29 0d 0d a2 0c 2e 6f 75 74 6c 6f |en%,2).....outlo| 00001e70 6f 70 0d 0d ac 0f 4d 4f 56 20 52 31 33 2c 52 31 |op....MOV R13,R1| 00001e80 34 0d 0d b6 13 41 44 44 20 52 31 32 2c 52 31 33 |4....ADD R12,R13| 00001e90 2c 23 31 36 0d 0d c0 13 4c 44 52 20 52 31 2c 5b |,#16....LDR R1,[| 00001ea0 52 31 33 2c 23 38 5d 0d 0d ca 0b 2e 69 6e 6c 6f |R13,#8].....inlo| 00001eb0 6f 70 0d 0d d4 13 4c 44 52 20 52 30 2c 5b 52 31 |op....LDR R0,[R1| 00001ec0 32 2c 23 38 5d 0d 0d de 0d 43 4d 50 20 52 30 2c |2,#8]....CMP R0,| 00001ed0 52 31 0d 0d e8 0f 4d 4f 56 47 54 20 52 31 2c 52 |R1....MOVGT R1,R| 00001ee0 30 0d 0d f2 11 4d 4f 56 47 54 20 52 31 33 2c 52 |0....MOVGT R13,R| 00001ef0 31 32 0d 0d fc 13 41 44 44 20 52 31 32 2c 52 31 |12....ADD R12,R1| 00001f00 32 2c 23 31 36 0d 0e 06 10 4c 44 52 20 52 30 2c |2,#16....LDR R0,| 00001f10 5b 52 31 32 5d 0d 0e 10 15 43 4d 50 20 52 30 2c |[R12]....CMP R0,| 00001f20 23 26 38 30 30 30 30 30 30 30 0d 0e 1a 0e 42 4e |#&80000000....BN| 00001f30 45 20 69 6e 6c 6f 6f 70 0d 0e 24 15 4c 44 4d 49 |E inloop..$.LDMI| 00001f40 41 20 52 31 33 2c 7b 52 30 2d 52 33 7d 0d 0e 2e |A R13,{R0-R3}...| 00001f50 15 4c 44 4d 49 41 20 52 31 34 2c 7b 52 34 2d 52 |.LDMIA R14,{R4-R| 00001f60 37 7d 0d 0e 38 16 53 54 4d 49 41 20 52 31 34 21 |7}..8.STMIA R14!| 00001f70 2c 7b 52 30 2d 52 33 7d 0d 0e 42 15 53 54 4d 49 |,{R0-R3}..B.STMI| 00001f80 41 20 52 31 33 2c 7b 52 34 2d 52 37 7d 0d 0e 4c |A R13,{R4-R7}..L| 00001f90 14 4c 44 52 20 52 30 2c 5b 52 31 34 2c 23 31 36 |.LDR R0,[R14,#16| 00001fa0 5d 0d 0e 56 15 43 4d 50 20 52 30 2c 23 26 38 30 |]..V.CMP R0,#&80| 00001fb0 30 30 30 30 30 30 0d 0e 60 0f 42 4e 45 20 6f 75 |000000..`.BNE ou| 00001fc0 74 6c 6f 6f 70 0d 0e 6a 12 4c 44 52 20 52 31 34 |tloop..j.LDR R14| 00001fd0 2c 6c 69 6e 6b 2b 34 0d 0e 74 0e 4d 4f 56 20 50 |,link+4..t.MOV P| 00001fe0 43 2c 52 31 34 0d 0e 7e 07 5d 3a ed 0d 0e 7f 0c |C,R14..~.]:.....| 00001ff0 2a 46 58 31 31 32 2c 32 0d 0e 80 2e c8 99 22 4f |*FX112,2......"O| 00002000 53 5f 52 65 61 64 56 64 75 56 61 72 69 61 62 6c |S_ReadVduVariabl| 00002010 65 73 22 2c 76 64 75 76 61 72 73 2c 62 61 6e 6b |es",vduvars,bank| 00002020 61 64 64 72 2b 34 0d 0e 81 0c 2a 46 58 31 31 32 |addr+4....*FX112| 00002030 2c 31 0d 0e 82 2c c8 99 22 4f 53 5f 52 65 61 64 |,1...,.."OS_Read| 00002040 56 64 75 56 61 72 69 61 62 6c 65 73 22 2c 76 64 |VduVariables",vd| 00002050 75 76 61 72 73 2c 62 61 6e 6b 61 64 64 72 0d 0e |uvars,bankaddr..| 00002060 88 05 e1 0d 0e 92 05 3a 0d 0e 9c 0d dd f2 74 65 |.......:......te| 00002070 73 74 73 63 72 0d 0e a6 0f 53 48 25 3d 73 63 72 |stscr....SH%=scr| 00002080 65 65 6e 25 0d 0e b0 26 f5 3a 5a 25 3d 53 48 25 |een%...&.:Z%=SH%| 00002090 21 38 2d 76 65 63 74 6f 72 73 21 34 34 2b 32 35 |!8-vectors!44+25| 000020a0 36 3a e6 30 2c 5a 25 3e 3e 35 0d 0e ba 25 c8 8f |6:.0,Z%>>5...%..| 000020b0 53 48 25 21 30 3c 3c 32 2c 32 35 35 2d 53 48 25 |SH%!0<<2,255-SH%| 000020c0 21 34 3c 3c 32 2c 53 48 25 21 31 32 3c 3c 31 0d |!4<<2,SH%!12<<1.| 000020d0 0e c4 1c 53 48 25 2b 3d 31 36 3a fd 53 48 25 21 |...SH%+=16:.SH%!| 000020e0 30 3d 26 38 30 30 30 30 30 30 30 0d 0e ce 05 e1 |0=&80000000.....| 000020f0 0d 0e d8 05 3a 0d 0e e2 0e dd f2 74 65 73 74 63 |....:......testc| 00002100 6f 6e 76 0d 0e ec 10 53 50 25 3d 73 70 72 69 74 |onv....SP%=sprit| 00002110 65 73 25 0d 0e f6 19 e3 54 25 3d 30 b8 35 3a 53 |es%.....T%=0.5:S| 00002120 43 25 3d 21 62 61 6e 6b 61 64 64 72 0d 0f 00 28 |C%=!bankaddr...(| 00002130 e3 59 25 3d 30 b8 32 35 35 3a e3 58 25 3d 30 b8 |.Y%=0.255:.X%=0.| 00002140 36 33 88 34 3a 53 43 25 21 58 25 3d 53 50 25 21 |63.4:SC%!X%=SP%!| 00002150 58 25 3a ed 0d 0f 0a 1c 53 43 25 2b 3d 31 36 30 |X%:.....SC%+=160| 00002160 3a 53 50 25 2b 3d 36 34 3a ed 3a 41 3d a5 3a ed |:SP%+=64:.:A=.:.| 00002170 0d 0f 14 05 e1 0d ff |.......| 00002177