Home » Archimedes archive » Archimedes World » AW-1994-05-Disc1.adf » Disk1May94 » !AWMay94/Goodies/3D_Demo/!Example-1/!RunImage
!AWMay94/Goodies/3D_Demo/!Example-1/!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-1994-05-Disc1.adf » Disk1May94 |
Filename: | !AWMay94/Goodies/3D_Demo/!Example-1/!RunImage |
Read OK: | ✔ |
File size: | 12A7 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
60ONERRORMODEMODE:REPORT:PRINT" at Line ";ERL:END 90MODE9+128:OFF:PROCUV:PROCUW:END 150DEFPROCUV:ORIGIN640,512:UX=13:UY=14:UZ=15:DIMUa 8*1024:PROCUb:SYS6,112,1:SYS6,113,1:CLS:!Uc=USRUd:SYS6,112,2:SYS6,113,2:CLS:!Ue=USRUd:SYS6,112,2:SYS6,113,1:!Uf=1:Ug= NOTTRUE:Uh=16*1024:DIMUi Uh:PROCUj(Ui,Uh):PROCUk(Ui,"<Example-1$Dir>.Data-Files.Sprites"):PROCUl:PROCUm:ENDPROC 330DEFPROCUl:FORi=0 TO15:COLOURi,0,0,0:NEXTi:A%=Un:B%=!Ue:C%=40*1024 :CALLUo:COLOUR0:COLOUR128+7:PRINTTAB(2,7)"EXAMPLE 1"'" ---------":COLOUR14:PRINTTAB(0,28)"Rotating a point on a 2-dimensional axis":PRINTTAB(7,31)"PRESS SPACE TO CONTINUE...":COLOUR128+0:CALLUp:PROCUq:REPEATUNTILINKEY(-99):REPEATUNTIL NOTINKEY(-99):ENDPROC 500DEFPROCUq:COLOUR0,&FF,&FF,&FF:COLOUR1,&DD,&DD,&DD:COLOUR2,&BB,&BB,&BB:COLOUR3,&99,&99,&99:COLOUR4,&77,&77,&77:COLOUR5,&55,&55,&55:COLOUR6,&33,&33,&33:COLOUR7,&00,&00,&00:COLOUR8,&00,&44,&99:COLOUR9,&EE,&EE,&00:COLOUR10,&00,&CC,&00:COLOUR11,&DD,&00,&00:COLOUR12,&EE,&EE,&BB:COLOUR13,&55,&88,&00:COLOUR14,&FF,&BB,&00:COLOUR15,&00,&BB,&FF 590ENDPROC 620DEFPROCUm:COLOUR0,&00,&00,&00:COLOUR1,&FF,&00,&00:COLOUR2,&00,&FF,&00:COLOUR3,&FF,&FF,&00:COLOUR4,&00,&00,&FF:COLOUR5,&FF,&00,&FF:COLOUR6,&00,&FF,&FF:COLOUR7,&FF,&FF,&FF:COLOUR8,&00,&00,&00:COLOUR9,&FF,&00,&00:COLOUR10,&00,&FF,&00:COLOUR11,&FF,&FF,&00:COLOUR12,&00,&00,&FF:COLOUR13,&FF,&00,&FF:COLOUR14,&00,&FF,&FF:COLOUR15,&FF,&FF,&FF 710ENDPROC 740DEFPROCUW:PROCUr:PROCUs:PROCUt:PROCUu:PROCUv:ENDPROC 830DEFPROCUr:Uw$="First of all, let's draw our standard":Ux$="2 dimensional axis (n and m)...":T=TIME:REPEAT:PROCUy:CALLUp:UNTILTIME>T+2*100:Uw$="":Ux$="":FORx=-640 TO640STEP16:GCOL0,1:LINE-640,0,x,0:PROCUz(x-8*4,0-48*4,"pencil_2"):CALLUp:NEXTx:FORy=-512 TO512STEP16:GCOL0,1:LINE-640,0,640,0:GCOL0,1:LINE0,-512,0,y 1030PROCUz(-48*4,y-8*4,"pencil_1"):CALLUp:NEXTy:T=TIME:REPEAT:PROCVU:PROCUy:CALLUp:UNTILTIME>T+3*100:ENDPROC 1150DEFPROCUs:Uw$="Right, now we can place our point":Ux$="somewhere on the (n,m) plane...":T=TIME:REPEAT:PROCVU:PROCUy:CALLUp:UNTILTIME>T+4*100:Uw$="":Ux$="":VV=200:VW=200:PROCVX(0):T=TIME:REPEAT:PROCVU:PROCVY:PROCUy:CALLUp:UNTILTIME>T+3*100:ENDPROC 1380DEFPROCVZ:PROCUz(Va,Vb,"pointer"):PROCUz(-240,200,"origin"):Vc+=1:IFVc=20 THENVc=0:Vd=-Vd 1430Va+=Vd*4:Vb-=Vd*4:ENDPROC 1480DEFPROCUt:Uw$="Great. Now, let's rotate it around the":Ux$="origin by 10 degrees.":Vc=0:Vd=+1:Va=-180:Vb=90:T=TIME:REPEAT:PROCVU:PROCVY:PROCVZ:PROCUy:CALLUp:UNTILTIME>T+6*100:Uw$="This is where the 2 equations are used.":Ux$="(See the magazine article if in doubt)":T=TIME:REPEAT:PROCVU:PROCVY 1630PROCUy:CALLUp:UNTILTIME>T+5*100:Uw$="Here we go! ...":Ux$="":T=TIME:REPEAT:PROCVU:PROCVY:PROCUy:CALLUp:UNTILTIME>T+3*100:FORVe=1 TO10:Uw$="Rotated to "+STR$Ve+" degrees":Ux$="":FORVf=1 TO10:WAIT:NEXTVf:PROCVX(Ve):PROCVU:PROCVY:PROCUy:CALLUp:NEXTVe:T=TIME:REPEAT:PROCVU:PROCVY:PROCUy:CALLUp:UNTILTIME>T+5*100:Uw$="Repeated enough times, the point" 1840Ux$="would perform an entire circle.":T=TIME:REPEAT:PROCVU:PROCVY:PROCUy:CALLUp:UNTILTIME>T+5*100:Uw$="Like this...":Ux$="":T=TIME:REPEAT:PROCVU:PROCVY:PROCUy:CALLUp:UNTILTIME>T+4*100:FORVe=10 TO360+10STEP10:Uw$="Rotated to "+STR$(Ve-10)+" degrees":Ux$="":PROCVX(Ve):PROCVU:PROCVY:PROCUy:CALLUp:T=TIME:REPEATUNTILTIME>T+0.4*100:NEXTVe:Uw$="" 2060Ux$="":T=TIME:REPEAT:PROCVU:PROCVY:PROCUy:CALLUp:UNTILTIME>T+5*100:ENDPROC 2140DEFPROCUu:Uw$="And if the angle decreases, the point":Ux$="will move in the opposite direction...":T=TIME:REPEAT:PROCVU:PROCVY:PROCUy:CALLUp:UNTILTIME>T+3*100:FORVe=360+10 TO10STEP-1:PROCVX(Ve):PROCVU:PROCVY:PROCUy:CALLUp:NEXTVe:Uw$="":Ux$="":T=TIME:REPEAT:PROCVU:PROCVY:PROCUy:CALLUp:UNTILTIME>T+4*100:Uw$="Simple, isn't it?":Ux$="" 2340T=TIME:REPEAT:PROCVU:PROCVY:PROCUy:CALLUp:UNTILTIME>T+4*100:ENDPROC 2410DEFPROCUv:PRINTTAB(15,14)" THE END ":PRINTTAB(15,15)"----------":PRINTTAB(1,20)"Press a mouse button or press SPACE...":CALLUp:ENDPROC 2490DEFPROCVX(Vg):Vh=VV* COS(RADVg)-VW*SIN(RADVg):Vi=VV* SIN(RADVg)+VW*COS(RADVg):ENDPROC 2550DEFPROCVY:GCOL0,2:LINE0,0,Vh,Vi:PROCUz(Vh-8*4,Vi-8*4,"acid"):ENDPROC 2610DEFPROCUz(Vj,Vk,Vl$):MOVEVj,Vk:SYS&2E,256+28,Ui,Vl$,,,8:ENDPROC 2670DEFPROCVU:GCOL0,1:LINE-640,0,640,0:LINE0,-512,0,512:VDU5:MOVE608,-16:PRINT"n":MOVE12,492:PRINT"m":VDU4:ENDPROC 2780DEFPROCUy:Vm=(40-LENUw$)/2:Vn=(40-LENUx$)/2:GCOL0,7:VDU5:MOVE-640+Vm*32,-512+64:PRINTUw$:MOVE-640+Vn*32,-512+32:PRINTUx$:VDU4:ENDPROC 2880DEFPROCUb:FORVo=0 TO2STEP2:P%=Ua:[OPT Vo:.Ud ADR r0,Vp:ADR r1,Vq:SWI "OS_ReadVduVariables":LDR r0,Vq:MOV PC,UY:.Uc DCD 0:.Ue DCD 0:.Uf DCD 0:.Vp DCD 149:DCD -1:.Vq DCD 0:.Up MOV r0,#19:SWI "OS_Byte":LDR r4,Uf:MOV r0,#112:MOV r1,r4:SWI "OS_Byte": EOR r4, r4, #3 3230MOV r0,#113:MOV r1,r4:SWI "OS_Byte":STR r4,Uf:LDR r0,Uc : LDR r1,Ue:STR r0,Ue : STR r1,Uc:MOV r0,#12:SWI "OS_WriteC":MOV PC,UY:.Uo LDRB r4,[r0],#1:LDRB r5,[r0],#1:SUBS r2,r2,r5:MOVLT PC,UY:.Vr STRB r4,[r1],#1:SUBS r5,r5,#1:BNE Vr:CMP r2,#0:BGT Uo 3520MOV PC,UY:.Un FNVs("Titl-Data"):]:NEXTVo:ENDPROC 3660DEFFNVt(Vu):P%+=Vu:=Vo 3710DEFFNVs(Vv$):Vv$="<Example-1$Dir>.Data-Files."+Vv$:Vw=OPENINVv$:Vx=EXT #Vw :CLOSE#Vw:IFVo>0 THENOSCLI"Load "+Vv$+" "+STR$~P% 3750P%+=Vx:[OPT Vo : ALIGN :]:=Vo 4130DEFFNVy(Vz,WU$):SYS&2E,256+40,Vz,WU$ TO,,,WV,WW,WX,WY:WZ=WV:=WZ 4190DEFFNWa(Vz,WU$):SYS&2E,256+40,Vz,WU$ TO,,,WV,WW,WX,WY:Wb=WW:=Wb 4250DEFFNWc(Vz,WU$):SYS&2E,256+40,Vz,WU$ TO,,,WV,WW,WX,WY:Wd=WY:=Wd 4310DEFFNWe(Vz,WU$):SYS&2E,256+40,Vz,WU$ TO,,,WV,WW,WX,WY:=(WX=1) 4360DEFFNWf(Vz,WU$):Wg=FNWh(Vz,WU$):Wi=Wg!32:IFWi=11*4 THEN 4400Wj= NOTTRUE 4410ELSE:Wj=Wg+11*4 4430ENDIF:=Wj 4470DEFFNWk(Vz):=Vz!4 4510DEFFNWl(Vz,n):Wm=Vz+Vz!8:Wn=1:WHILEWn<n:Wo=Wm!0:Wm+=Wo:Wn+=1:ENDWHILE:=LEFT$(FNWp(Wm+4),12)+CHR$0 4640DEFFNWq(Vz,WU$):SYS&2E,256+24,Vz,WU$ TO,,Wr:Ws=Wr:Wi=Ws!32:Wt=Ws+Wi:=Wt 4720DEFFNWu(Vz,WU$):SYS&2E,256+24,Vz,WU$ TO,,Wr:Ws=Wr:Wv=Ws!36:Ww=Ws+Wv:=Ww 4800DEFFNWh(Vz,WU$):SYS&2E,256+24,Vz,WU$ TO,,Wr:Wx=Wr:=Wx 4860DEFPROCWy(Vz,Wz$):SYS&2E,256+12,Vz,Wz$:ENDPROC 4910DEFPROCUk(Vz,Wz$):SYS&2E,256+10,Vz,Wz$:ENDPROC 4960DEFPROCUj(Vz,XU):Vz!0=XU:Vz!8=16:SYS&2E,256+9,Vz:ENDPROC 5030DEFFNXV(Vz,WU$,x,y):LOCALXW,XX:SYS&2E,256+41,Vz,WU$,x,y TO,,,,,WX,WY:XW=WX:XX=WY:=XW 5110DEFPROCXY(Vz,WU$,x,y,XW,XX):SYS&2E,256+42,Vz,WU$,x,y,XW,XX:ENDPROC
<���:�:�" at Line ";�:� Z�9+128:�:�UV:�UW:� ����UV:ȑ640,512:UX=13:UY=14:UZ=15:�Ua 8*1024:�Ub:ș6,112,1:ș6,113,1:�:!Uc=�Ud:ș6,112,2:ș6,113,2:�:!Ue=�Ud:ș6,112,2:ș6,113,1:!Uf=1:Ug= ��:Uh=16*1024:�Ui Uh:�Uj(Ui,Uh):�Uk(Ui,"<Example-1$Dir>.Data-Files.Sprites"):�Ul:�Um:� J���Ul:�i=0 �15:�i,0,0,0:�i:A%=Un:B%=!Ue:C%=40*1024 :�Uo:�0:�128+7:�2,7)"EXAMPLE 1"'" ---------":�14:�0,28)"Rotating a point on a 2-dimensional axis":�7,31)"PRESS SPACE TO CONTINUE...":�128+0:�Up:�Uq:���(-99):�� ��(-99):� ���Uq:�0,&FF,&FF,&FF:�1,&DD,&DD,&DD:�2,&BB,&BB,&BB:�3,&99,&99,&99:�4,&77,&77,&77:�5,&55,&55,&55:�6,&33,&33,&33:�7,&00,&00,&00:�8,&00,&44,&99:�9,&EE,&EE,&00:�10,&00,&CC,&00:�11,&DD,&00,&00:�12,&EE,&EE,&BB:�13,&55,&88,&00:�14,&FF,&BB,&00:�15,&00,&BB,&FF N� l���Um:�0,&00,&00,&00:�1,&FF,&00,&00:�2,&00,&FF,&00:�3,&FF,&FF,&00:�4,&00,&00,&FF:�5,&FF,&00,&FF:�6,&00,&FF,&FF:�7,&FF,&FF,&FF:�8,&00,&00,&00:�9,&FF,&00,&00:�10,&00,&FF,&00:�11,&FF,&FF,&00:�12,&00,&00,&FF:�13,&FF,&00,&FF:�14,&00,&FF,&FF:�15,&FF,&FF,&FF �� ���UW:�Ur:�Us:�Ut:�Uu:�Uv:� >���Ur:Uw$="First of all, let's draw our standard":Ux$="2 dimensional axis (n and m)...":T=�:�:�Uy:�Up:��>T+2*100:Uw$="":Ux$="":�x=-640 �640�16:�0,1:�-640,0,x,0:�Uz(x-8*4,0-48*4,"pencil_2"):�Up:�x:�y=-512 �512�16:�0,1:�-640,0,640,0:�0,1:�0,-512,0,y E�Uz(-48*4,y-8*4,"pencil_1"):�Up:�y:T=�:�:�VU:�Uy:�Up:��>T+3*100:� ~���Us:Uw$="Right, now we can place our point":Ux$="somewhere on the (n,m) plane...":T=�:�:�VU:�Uy:�Up:��>T+4*100:Uw$="":Ux$="":VV=200:VW=200:�VX(0):T=�:�:�VU:�VY:�Uy:�Up:��>T+3*100:� dN��VZ:�Uz(Va,Vb,"pointer"):�Uz(-240,200,"origin"):Vc+=1:�Vc=20 �Vc=0:Vd=-Vd �Va+=Vd*4:Vb-=Vd*4:� ���Ut:Uw$="Great. Now, let's rotate it around the":Ux$="origin by 10 degrees.":Vc=0:Vd=+1:Va=-180:Vb=90:T=�:�:�VU:�VY:�VZ:�Uy:�Up:��>T+6*100:Uw$="This is where the 2 equations are used.":Ux$="(See the magazine article if in doubt)":T=�:�:�VU:�VY ^��Uy:�Up:��>T+5*100:Uw$="Here we go! ...":Ux$="":T=�:�:�VU:�VY:�Uy:�Up:��>T+3*100:�Ve=1 �10:Uw$="Rotated to "+�Ve+" degrees":Ux$="":�Vf=1 �10:Ȗ:�Vf:�VX(Ve):�VU:�VY:�Uy:�Up:�Ve:T=�:�:�VU:�VY:�Uy:�Up:��>T+5*100:Uw$="Repeated enough times, the point" 0�Ux$="would perform an entire circle.":T=�:�:�VU:�VY:�Uy:�Up:��>T+5*100:Uw$="Like this...":Ux$="":T=�:�:�VU:�VY:�Uy:�Up:��>T+4*100:�Ve=10 �360+10�10:Uw$="Rotated to "+�(Ve-10)+" degrees":Ux$="":�VX(Ve):�VU:�VY:�Uy:�Up:T=�:���>T+0.4*100:�Ve:Uw$="" -Ux$="":T=�:�:�VU:�VY:�Uy:�Up:��>T+5*100:� \���Uu:Uw$="And if the angle decreases, the point":Ux$="will move in the opposite direction...":T=�:�:�VU:�VY:�Uy:�Up:��>T+3*100:�Ve=360+10 �10�-1:�VX(Ve):�VU:�VY:�Uy:�Up:�Ve:Uw$="":Ux$="":T=�:�:�VU:�VY:�Uy:�Up:��>T+4*100:Uw$="Simple, isn't it?":Ux$="" $&T=�:�:�VU:�VY:�Uy:�Up:��>T+4*100:� jh��Uv:�15,14)" THE END ":�15,15)"----------":�1,20)"Press a mouse button or press SPACE...":�Up:� �>��VX(Vg):Vh=VV* �(�Vg)-VW*�(�Vg):Vi=VV* �(�Vg)+VW*�(�Vg):� �4��VY:�0,2:�0,0,Vh,Vi:�Uz(Vh-8*4,Vi-8*4,"acid"):� 24��Uz(Vj,Vk,Vl$):�Vj,Vk:ș&2E,256+28,Ui,Vl$,,,8:� nL��VU:�0,1:�-640,0,640,0:�0,-512,0,512:�5:�608,-16:�"n":�12,492:�"m":�4:� �e��Uy:Vm=(40-�Uw$)/2:Vn=(40-�Ux$)/2:�0,7:�5:�-640+Vm*32,-512+64:�Uw$:�-640+Vn*32,-512+32:�Ux$:�4:� @���Ub:�Vo=0 �2�2:P%=Ua:[OPT Vo:.Ud ADR r0,Vp:ADR r1,Vq:SWI "OS_ReadVduVariables":LDR r0,Vq:MOV PC,UY:.Uc DCD 0:.Ue DCD 0:.Uf DCD 0:.Vp DCD 149:DCD -1:.Vq DCD 0:.Up MOV r0,#19:SWI "OS_Byte":LDR r4,Uf:MOV r0,#112:MOV r1,r4:SWI "OS_Byte": � r4, r4, #3 ��MOV r0,#113:MOV r1,r4:SWI "OS_Byte":STR r4,Uf:LDR r0,Uc : LDR r1,Ue:STR r0,Ue : STR r1,Uc:MOV r0,#12:SWI "OS_WriteC":MOV PC,UY:.Uo LDRB r4,[r0],#1:LDRB r5,[r0],#1:SUBS r2,r2,r5:MOVLT PC,UY:.Vr STRB r4,[r1],#1:SUBS r5,r5,#1:BNE Vr:CMP r2,#0:BGT Uo �*MOV PC,UY:.Un �Vs("Titl-Data"):]:�Vo:� LݤVt(Vu):P%+=Vu:=Vo ~gݤVs(Vv$):Vv$="<Example-1$Dir>.Data-Files."+Vv$:Vw=�Vv$:Vx=� #Vw :�#Vw:�Vo>0 ��"Load "+Vv$+" "+�~P% �!P%+=Vx:[OPT Vo : ALIGN :]:=Vo ">ݤVy(Vz,WU$):ș&2E,256+40,Vz,WU$ �,,,WV,WW,WX,WY:WZ=WV:=WZ ^>ݤWa(Vz,WU$):ș&2E,256+40,Vz,WU$ �,,,WV,WW,WX,WY:Wb=WW:=Wb �>ݤWc(Vz,WU$):ș&2E,256+40,Vz,WU$ �,,,WV,WW,WX,WY:Wd=WY:=Wd �<ݤWe(Vz,WU$):ș&2E,256+40,Vz,WU$ �,,,WV,WW,WX,WY:=(WX=1) 3ݤWf(Vz,WU$):Wg=�Wh(Vz,WU$):Wi=Wg!32:�Wi=11*4 � 0 Wj= �� :�:Wj=Wg+11*4 N �:=Wj vݤWk(Vz):=Vz!4 �OݤWl(Vz,n):Wm=Vz+Vz!8:Wn=1:ȕWn<n:Wo=Wm!0:Wm+=Wo:Wn+=1:�:=��Wp(Wm+4),12)+�0 FݤWq(Vz,WU$):ș&2E,256+24,Vz,WU$ �,,Wr:Ws=Wr:Wi=Ws!32:Wt=Ws+Wi:=Wt pFݤWu(Vz,WU$):ș&2E,256+24,Vz,WU$ �,,Wr:Ws=Wr:Wv=Ws!36:Ww=Ws+Wv:=Ww �4ݤWh(Vz,WU$):ș&2E,256+24,Vz,WU$ �,,Wr:Wx=Wr:=Wx �&��Wy(Vz,Wz$):ș&2E,256+12,Vz,Wz$:� .&��Uk(Vz,Wz$):ș&2E,256+10,Vz,Wz$:� `0��Uj(Vz,XU):Vz!0=XU:Vz!8=16:ș&2E,256+9,Vz:� �OݤXV(Vz,WU$,x,y):�XW,XX:ș&2E,256+41,Vz,WU$,x,y �,,,,,WX,WY:XW=WX:XX=WY:=XW �:��XY(Vz,WU$,x,y,XW,XX):ș&2E,256+42,Vz,WU$,x,y,XW,XX:� �
00000000 0d 00 3c 1b ee 85 eb eb 3a f6 3a f1 22 20 61 74 |..<.....:.:." at| 00000010 20 4c 69 6e 65 20 22 3b 9e 3a e0 0d 00 5a 16 eb | Line ";.:...Z..| 00000020 39 2b 31 32 38 3a 87 3a f2 55 56 3a f2 55 57 3a |9+128:.:.UV:.UW:| 00000030 e0 0d 00 96 e4 dd f2 55 56 3a c8 91 36 34 30 2c |.......UV:..640,| 00000040 35 31 32 3a 55 58 3d 31 33 3a 55 59 3d 31 34 3a |512:UX=13:UY=14:| 00000050 55 5a 3d 31 35 3a de 55 61 20 38 2a 31 30 32 34 |UZ=15:.Ua 8*1024| 00000060 3a f2 55 62 3a c8 99 36 2c 31 31 32 2c 31 3a c8 |:.Ub:..6,112,1:.| 00000070 99 36 2c 31 31 33 2c 31 3a db 3a 21 55 63 3d ba |.6,113,1:.:!Uc=.| 00000080 55 64 3a c8 99 36 2c 31 31 32 2c 32 3a c8 99 36 |Ud:..6,112,2:..6| 00000090 2c 31 31 33 2c 32 3a db 3a 21 55 65 3d ba 55 64 |,113,2:.:!Ue=.Ud| 000000a0 3a c8 99 36 2c 31 31 32 2c 32 3a c8 99 36 2c 31 |:..6,112,2:..6,1| 000000b0 31 33 2c 31 3a 21 55 66 3d 31 3a 55 67 3d 20 ac |13,1:!Uf=1:Ug= .| 000000c0 b9 3a 55 68 3d 31 36 2a 31 30 32 34 3a de 55 69 |.:Uh=16*1024:.Ui| 000000d0 20 55 68 3a f2 55 6a 28 55 69 2c 55 68 29 3a f2 | Uh:.Uj(Ui,Uh):.| 000000e0 55 6b 28 55 69 2c 22 3c 45 78 61 6d 70 6c 65 2d |Uk(Ui,"<Example-| 000000f0 31 24 44 69 72 3e 2e 44 61 74 61 2d 46 69 6c 65 |1$Dir>.Data-File| 00000100 73 2e 53 70 72 69 74 65 73 22 29 3a f2 55 6c 3a |s.Sprites"):.Ul:| 00000110 f2 55 6d 3a e1 0d 01 4a e3 dd f2 55 6c 3a e3 69 |.Um:...J...Ul:.i| 00000120 3d 30 20 b8 31 35 3a fb 69 2c 30 2c 30 2c 30 3a |=0 .15:.i,0,0,0:| 00000130 ed 69 3a 41 25 3d 55 6e 3a 42 25 3d 21 55 65 3a |.i:A%=Un:B%=!Ue:| 00000140 43 25 3d 34 30 2a 31 30 32 34 20 3a d6 55 6f 3a |C%=40*1024 :.Uo:| 00000150 fb 30 3a fb 31 32 38 2b 37 3a f1 8a 32 2c 37 29 |.0:.128+7:..2,7)| 00000160 22 45 58 41 4d 50 4c 45 20 31 22 27 22 20 20 2d |"EXAMPLE 1"'" -| 00000170 2d 2d 2d 2d 2d 2d 2d 2d 22 3a fb 31 34 3a f1 8a |--------":.14:..| 00000180 30 2c 32 38 29 22 52 6f 74 61 74 69 6e 67 20 61 |0,28)"Rotating a| 00000190 20 70 6f 69 6e 74 20 6f 6e 20 61 20 32 2d 64 69 | point on a 2-di| 000001a0 6d 65 6e 73 69 6f 6e 61 6c 20 61 78 69 73 22 3a |mensional axis":| 000001b0 f1 8a 37 2c 33 31 29 22 50 52 45 53 53 20 53 50 |..7,31)"PRESS SP| 000001c0 41 43 45 20 54 4f 20 43 4f 4e 54 49 4e 55 45 2e |ACE TO CONTINUE.| 000001d0 2e 2e 22 3a fb 31 32 38 2b 30 3a d6 55 70 3a f2 |..":.128+0:.Up:.| 000001e0 55 71 3a f5 fd a6 28 2d 39 39 29 3a f5 fd 20 ac |Uq:...(-99):.. .| 000001f0 a6 28 2d 39 39 29 3a e1 0d 01 f4 fe dd f2 55 71 |.(-99):.......Uq| 00000200 3a fb 30 2c 26 46 46 2c 26 46 46 2c 26 46 46 3a |:.0,&FF,&FF,&FF:| 00000210 fb 31 2c 26 44 44 2c 26 44 44 2c 26 44 44 3a fb |.1,&DD,&DD,&DD:.| 00000220 32 2c 26 42 42 2c 26 42 42 2c 26 42 42 3a fb 33 |2,&BB,&BB,&BB:.3| 00000230 2c 26 39 39 2c 26 39 39 2c 26 39 39 3a fb 34 2c |,&99,&99,&99:.4,| 00000240 26 37 37 2c 26 37 37 2c 26 37 37 3a fb 35 2c 26 |&77,&77,&77:.5,&| 00000250 35 35 2c 26 35 35 2c 26 35 35 3a fb 36 2c 26 33 |55,&55,&55:.6,&3| 00000260 33 2c 26 33 33 2c 26 33 33 3a fb 37 2c 26 30 30 |3,&33,&33:.7,&00| 00000270 2c 26 30 30 2c 26 30 30 3a fb 38 2c 26 30 30 2c |,&00,&00:.8,&00,| 00000280 26 34 34 2c 26 39 39 3a fb 39 2c 26 45 45 2c 26 |&44,&99:.9,&EE,&| 00000290 45 45 2c 26 30 30 3a fb 31 30 2c 26 30 30 2c 26 |EE,&00:.10,&00,&| 000002a0 43 43 2c 26 30 30 3a fb 31 31 2c 26 44 44 2c 26 |CC,&00:.11,&DD,&| 000002b0 30 30 2c 26 30 30 3a fb 31 32 2c 26 45 45 2c 26 |00,&00:.12,&EE,&| 000002c0 45 45 2c 26 42 42 3a fb 31 33 2c 26 35 35 2c 26 |EE,&BB:.13,&55,&| 000002d0 38 38 2c 26 30 30 3a fb 31 34 2c 26 46 46 2c 26 |88,&00:.14,&FF,&| 000002e0 42 42 2c 26 30 30 3a fb 31 35 2c 26 30 30 2c 26 |BB,&00:.15,&00,&| 000002f0 42 42 2c 26 46 46 0d 02 4e 05 e1 0d 02 6c fe dd |BB,&FF..N....l..| 00000300 f2 55 6d 3a fb 30 2c 26 30 30 2c 26 30 30 2c 26 |.Um:.0,&00,&00,&| 00000310 30 30 3a fb 31 2c 26 46 46 2c 26 30 30 2c 26 30 |00:.1,&FF,&00,&0| 00000320 30 3a fb 32 2c 26 30 30 2c 26 46 46 2c 26 30 30 |0:.2,&00,&FF,&00| 00000330 3a fb 33 2c 26 46 46 2c 26 46 46 2c 26 30 30 3a |:.3,&FF,&FF,&00:| 00000340 fb 34 2c 26 30 30 2c 26 30 30 2c 26 46 46 3a fb |.4,&00,&00,&FF:.| 00000350 35 2c 26 46 46 2c 26 30 30 2c 26 46 46 3a fb 36 |5,&FF,&00,&FF:.6| 00000360 2c 26 30 30 2c 26 46 46 2c 26 46 46 3a fb 37 2c |,&00,&FF,&FF:.7,| 00000370 26 46 46 2c 26 46 46 2c 26 46 46 3a fb 38 2c 26 |&FF,&FF,&FF:.8,&| 00000380 30 30 2c 26 30 30 2c 26 30 30 3a fb 39 2c 26 46 |00,&00,&00:.9,&F| 00000390 46 2c 26 30 30 2c 26 30 30 3a fb 31 30 2c 26 30 |F,&00,&00:.10,&0| 000003a0 30 2c 26 46 46 2c 26 30 30 3a fb 31 31 2c 26 46 |0,&FF,&00:.11,&F| 000003b0 46 2c 26 46 46 2c 26 30 30 3a fb 31 32 2c 26 30 |F,&FF,&00:.12,&0| 000003c0 30 2c 26 30 30 2c 26 46 46 3a fb 31 33 2c 26 46 |0,&00,&FF:.13,&F| 000003d0 46 2c 26 30 30 2c 26 46 46 3a fb 31 34 2c 26 30 |F,&00,&FF:.14,&0| 000003e0 30 2c 26 46 46 2c 26 46 46 3a fb 31 35 2c 26 46 |0,&FF,&FF:.15,&F| 000003f0 46 2c 26 46 46 2c 26 46 46 0d 02 c6 05 e1 0d 02 |F,&FF,&FF.......| 00000400 e4 1e dd f2 55 57 3a f2 55 72 3a f2 55 73 3a f2 |....UW:.Ur:.Us:.| 00000410 55 74 3a f2 55 75 3a f2 55 76 3a e1 0d 03 3e fa |Ut:.Uu:.Uv:...>.| 00000420 dd f2 55 72 3a 55 77 24 3d 22 46 69 72 73 74 20 |..Ur:Uw$="First | 00000430 6f 66 20 61 6c 6c 2c 20 6c 65 74 27 73 20 64 72 |of all, let's dr| 00000440 61 77 20 6f 75 72 20 73 74 61 6e 64 61 72 64 22 |aw our standard"| 00000450 3a 55 78 24 3d 22 32 20 64 69 6d 65 6e 73 69 6f |:Ux$="2 dimensio| 00000460 6e 61 6c 20 61 78 69 73 20 28 6e 20 61 6e 64 20 |nal axis (n and | 00000470 6d 29 2e 2e 2e 22 3a 54 3d 91 3a f5 3a f2 55 79 |m)...":T=.:.:.Uy| 00000480 3a d6 55 70 3a fd 91 3e 54 2b 32 2a 31 30 30 3a |:.Up:..>T+2*100:| 00000490 55 77 24 3d 22 22 3a 55 78 24 3d 22 22 3a e3 78 |Uw$="":Ux$="":.x| 000004a0 3d 2d 36 34 30 20 b8 36 34 30 88 31 36 3a e6 30 |=-640 .640.16:.0| 000004b0 2c 31 3a 86 2d 36 34 30 2c 30 2c 78 2c 30 3a f2 |,1:.-640,0,x,0:.| 000004c0 55 7a 28 78 2d 38 2a 34 2c 30 2d 34 38 2a 34 2c |Uz(x-8*4,0-48*4,| 000004d0 22 70 65 6e 63 69 6c 5f 32 22 29 3a d6 55 70 3a |"pencil_2"):.Up:| 000004e0 ed 78 3a e3 79 3d 2d 35 31 32 20 b8 35 31 32 88 |.x:.y=-512 .512.| 000004f0 31 36 3a e6 30 2c 31 3a 86 2d 36 34 30 2c 30 2c |16:.0,1:.-640,0,| 00000500 36 34 30 2c 30 3a e6 30 2c 31 3a 86 30 2c 2d 35 |640,0:.0,1:.0,-5| 00000510 31 32 2c 30 2c 79 0d 04 06 45 f2 55 7a 28 2d 34 |12,0,y...E.Uz(-4| 00000520 38 2a 34 2c 79 2d 38 2a 34 2c 22 70 65 6e 63 69 |8*4,y-8*4,"penci| 00000530 6c 5f 31 22 29 3a d6 55 70 3a ed 79 3a 54 3d 91 |l_1"):.Up:.y:T=.| 00000540 3a f5 3a f2 56 55 3a f2 55 79 3a d6 55 70 3a fd |:.:.VU:.Uy:.Up:.| 00000550 91 3e 54 2b 33 2a 31 30 30 3a e1 0d 04 7e b9 dd |.>T+3*100:...~..| 00000560 f2 55 73 3a 55 77 24 3d 22 52 69 67 68 74 2c 20 |.Us:Uw$="Right, | 00000570 6e 6f 77 20 77 65 20 63 61 6e 20 70 6c 61 63 65 |now we can place| 00000580 20 6f 75 72 20 70 6f 69 6e 74 22 3a 55 78 24 3d | our point":Ux$=| 00000590 22 73 6f 6d 65 77 68 65 72 65 20 6f 6e 20 74 68 |"somewhere on th| 000005a0 65 20 28 6e 2c 6d 29 20 70 6c 61 6e 65 2e 2e 2e |e (n,m) plane...| 000005b0 22 3a 54 3d 91 3a f5 3a f2 56 55 3a f2 55 79 3a |":T=.:.:.VU:.Uy:| 000005c0 d6 55 70 3a fd 91 3e 54 2b 34 2a 31 30 30 3a 55 |.Up:..>T+4*100:U| 000005d0 77 24 3d 22 22 3a 55 78 24 3d 22 22 3a 56 56 3d |w$="":Ux$="":VV=| 000005e0 32 30 30 3a 56 57 3d 32 30 30 3a f2 56 58 28 30 |200:VW=200:.VX(0| 000005f0 29 3a 54 3d 91 3a f5 3a f2 56 55 3a f2 56 59 3a |):T=.:.:.VU:.VY:| 00000600 f2 55 79 3a d6 55 70 3a fd 91 3e 54 2b 33 2a 31 |.Uy:.Up:..>T+3*1| 00000610 30 30 3a e1 0d 05 64 4e dd f2 56 5a 3a f2 55 7a |00:...dN..VZ:.Uz| 00000620 28 56 61 2c 56 62 2c 22 70 6f 69 6e 74 65 72 22 |(Va,Vb,"pointer"| 00000630 29 3a f2 55 7a 28 2d 32 34 30 2c 32 30 30 2c 22 |):.Uz(-240,200,"| 00000640 6f 72 69 67 69 6e 22 29 3a 56 63 2b 3d 31 3a e7 |origin"):Vc+=1:.| 00000650 56 63 3d 32 30 20 8c 56 63 3d 30 3a 56 64 3d 2d |Vc=20 .Vc=0:Vd=-| 00000660 56 64 0d 05 96 17 56 61 2b 3d 56 64 2a 34 3a 56 |Vd....Va+=Vd*4:V| 00000670 62 2d 3d 56 64 2a 34 3a e1 0d 05 c8 f8 dd f2 55 |b-=Vd*4:.......U| 00000680 74 3a 55 77 24 3d 22 47 72 65 61 74 2e 20 4e 6f |t:Uw$="Great. No| 00000690 77 2c 20 6c 65 74 27 73 20 72 6f 74 61 74 65 20 |w, let's rotate | 000006a0 69 74 20 61 72 6f 75 6e 64 20 74 68 65 22 3a 55 |it around the":U| 000006b0 78 24 3d 22 6f 72 69 67 69 6e 20 62 79 20 31 30 |x$="origin by 10| 000006c0 20 64 65 67 72 65 65 73 2e 22 3a 56 63 3d 30 3a | degrees.":Vc=0:| 000006d0 56 64 3d 2b 31 3a 56 61 3d 2d 31 38 30 3a 56 62 |Vd=+1:Va=-180:Vb| 000006e0 3d 39 30 3a 54 3d 91 3a f5 3a f2 56 55 3a f2 56 |=90:T=.:.:.VU:.V| 000006f0 59 3a f2 56 5a 3a f2 55 79 3a d6 55 70 3a fd 91 |Y:.VZ:.Uy:.Up:..| 00000700 3e 54 2b 36 2a 31 30 30 3a 55 77 24 3d 22 54 68 |>T+6*100:Uw$="Th| 00000710 69 73 20 69 73 20 77 68 65 72 65 20 74 68 65 20 |is is where the | 00000720 32 20 65 71 75 61 74 69 6f 6e 73 20 61 72 65 20 |2 equations are | 00000730 75 73 65 64 2e 22 3a 55 78 24 3d 22 28 53 65 65 |used.":Ux$="(See| 00000740 20 74 68 65 20 6d 61 67 61 7a 69 6e 65 20 61 72 | the magazine ar| 00000750 74 69 63 6c 65 20 69 66 20 69 6e 20 64 6f 75 62 |ticle if in doub| 00000760 74 29 22 3a 54 3d 91 3a f5 3a f2 56 55 3a f2 56 |t)":T=.:.:.VU:.V| 00000770 59 0d 06 5e fb f2 55 79 3a d6 55 70 3a fd 91 3e |Y..^..Uy:.Up:..>| 00000780 54 2b 35 2a 31 30 30 3a 55 77 24 3d 22 48 65 72 |T+5*100:Uw$="Her| 00000790 65 20 77 65 20 67 6f 21 20 2e 2e 2e 22 3a 55 78 |e we go! ...":Ux| 000007a0 24 3d 22 22 3a 54 3d 91 3a f5 3a f2 56 55 3a f2 |$="":T=.:.:.VU:.| 000007b0 56 59 3a f2 55 79 3a d6 55 70 3a fd 91 3e 54 2b |VY:.Uy:.Up:..>T+| 000007c0 33 2a 31 30 30 3a e3 56 65 3d 31 20 b8 31 30 3a |3*100:.Ve=1 .10:| 000007d0 55 77 24 3d 22 52 6f 74 61 74 65 64 20 74 6f 20 |Uw$="Rotated to | 000007e0 22 2b c3 56 65 2b 22 20 64 65 67 72 65 65 73 22 |"+.Ve+" degrees"| 000007f0 3a 55 78 24 3d 22 22 3a e3 56 66 3d 31 20 b8 31 |:Ux$="":.Vf=1 .1| 00000800 30 3a c8 96 3a ed 56 66 3a f2 56 58 28 56 65 29 |0:..:.Vf:.VX(Ve)| 00000810 3a f2 56 55 3a f2 56 59 3a f2 55 79 3a d6 55 70 |:.VU:.VY:.Uy:.Up| 00000820 3a ed 56 65 3a 54 3d 91 3a f5 3a f2 56 55 3a f2 |:.Ve:T=.:.:.VU:.| 00000830 56 59 3a f2 55 79 3a d6 55 70 3a fd 91 3e 54 2b |VY:.Uy:.Up:..>T+| 00000840 35 2a 31 30 30 3a 55 77 24 3d 22 52 65 70 65 61 |5*100:Uw$="Repea| 00000850 74 65 64 20 65 6e 6f 75 67 68 20 74 69 6d 65 73 |ted enough times| 00000860 2c 20 74 68 65 20 70 6f 69 6e 74 22 0d 07 30 f9 |, the point"..0.| 00000870 55 78 24 3d 22 77 6f 75 6c 64 20 70 65 72 66 6f |Ux$="would perfo| 00000880 72 6d 20 61 6e 20 65 6e 74 69 72 65 20 63 69 72 |rm an entire cir| 00000890 63 6c 65 2e 22 3a 54 3d 91 3a f5 3a f2 56 55 3a |cle.":T=.:.:.VU:| 000008a0 f2 56 59 3a f2 55 79 3a d6 55 70 3a fd 91 3e 54 |.VY:.Uy:.Up:..>T| 000008b0 2b 35 2a 31 30 30 3a 55 77 24 3d 22 4c 69 6b 65 |+5*100:Uw$="Like| 000008c0 20 74 68 69 73 2e 2e 2e 22 3a 55 78 24 3d 22 22 | this...":Ux$=""| 000008d0 3a 54 3d 91 3a f5 3a f2 56 55 3a f2 56 59 3a f2 |:T=.:.:.VU:.VY:.| 000008e0 55 79 3a d6 55 70 3a fd 91 3e 54 2b 34 2a 31 30 |Uy:.Up:..>T+4*10| 000008f0 30 3a e3 56 65 3d 31 30 20 b8 33 36 30 2b 31 30 |0:.Ve=10 .360+10| 00000900 88 31 30 3a 55 77 24 3d 22 52 6f 74 61 74 65 64 |.10:Uw$="Rotated| 00000910 20 74 6f 20 22 2b c3 28 56 65 2d 31 30 29 2b 22 | to "+.(Ve-10)+"| 00000920 20 64 65 67 72 65 65 73 22 3a 55 78 24 3d 22 22 | degrees":Ux$=""| 00000930 3a f2 56 58 28 56 65 29 3a f2 56 55 3a f2 56 59 |:.VX(Ve):.VU:.VY| 00000940 3a f2 55 79 3a d6 55 70 3a 54 3d 91 3a f5 fd 91 |:.Uy:.Up:T=.:...| 00000950 3e 54 2b 30 2e 34 2a 31 30 30 3a ed 56 65 3a 55 |>T+0.4*100:.Ve:U| 00000960 77 24 3d 22 22 0d 08 0c 2d 55 78 24 3d 22 22 3a |w$=""...-Ux$="":| 00000970 54 3d 91 3a f5 3a f2 56 55 3a f2 56 59 3a f2 55 |T=.:.:.VU:.VY:.U| 00000980 79 3a d6 55 70 3a fd 91 3e 54 2b 35 2a 31 30 30 |y:.Up:..>T+5*100| 00000990 3a e1 0d 08 5c fe dd f2 55 75 3a 55 77 24 3d 22 |:...\...Uu:Uw$="| 000009a0 41 6e 64 20 69 66 20 74 68 65 20 61 6e 67 6c 65 |And if the angle| 000009b0 20 64 65 63 72 65 61 73 65 73 2c 20 74 68 65 20 | decreases, the | 000009c0 70 6f 69 6e 74 22 3a 55 78 24 3d 22 77 69 6c 6c |point":Ux$="will| 000009d0 20 6d 6f 76 65 20 69 6e 20 74 68 65 20 6f 70 70 | move in the opp| 000009e0 6f 73 69 74 65 20 64 69 72 65 63 74 69 6f 6e 2e |osite direction.| 000009f0 2e 2e 22 3a 54 3d 91 3a f5 3a f2 56 55 3a f2 56 |..":T=.:.:.VU:.V| 00000a00 59 3a f2 55 79 3a d6 55 70 3a fd 91 3e 54 2b 33 |Y:.Uy:.Up:..>T+3| 00000a10 2a 31 30 30 3a e3 56 65 3d 33 36 30 2b 31 30 20 |*100:.Ve=360+10 | 00000a20 b8 31 30 88 2d 31 3a f2 56 58 28 56 65 29 3a f2 |.10.-1:.VX(Ve):.| 00000a30 56 55 3a f2 56 59 3a f2 55 79 3a d6 55 70 3a ed |VU:.VY:.Uy:.Up:.| 00000a40 56 65 3a 55 77 24 3d 22 22 3a 55 78 24 3d 22 22 |Ve:Uw$="":Ux$=""| 00000a50 3a 54 3d 91 3a f5 3a f2 56 55 3a f2 56 59 3a f2 |:T=.:.:.VU:.VY:.| 00000a60 55 79 3a d6 55 70 3a fd 91 3e 54 2b 34 2a 31 30 |Uy:.Up:..>T+4*10| 00000a70 30 3a 55 77 24 3d 22 53 69 6d 70 6c 65 2c 20 69 |0:Uw$="Simple, i| 00000a80 73 6e 27 74 20 69 74 3f 22 3a 55 78 24 3d 22 22 |sn't it?":Ux$=""| 00000a90 0d 09 24 26 54 3d 91 3a f5 3a f2 56 55 3a f2 56 |..$&T=.:.:.VU:.V| 00000aa0 59 3a f2 55 79 3a d6 55 70 3a fd 91 3e 54 2b 34 |Y:.Uy:.Up:..>T+4| 00000ab0 2a 31 30 30 3a e1 0d 09 6a 68 dd f2 55 76 3a f1 |*100:...jh..Uv:.| 00000ac0 8a 31 35 2c 31 34 29 22 20 54 48 45 20 20 45 4e |.15,14)" THE EN| 00000ad0 44 20 22 3a f1 8a 31 35 2c 31 35 29 22 2d 2d 2d |D ":..15,15)"---| 00000ae0 2d 2d 2d 2d 2d 2d 2d 22 3a f1 8a 31 2c 32 30 29 |-------":..1,20)| 00000af0 22 50 72 65 73 73 20 61 20 6d 6f 75 73 65 20 62 |"Press a mouse b| 00000b00 75 74 74 6f 6e 20 6f 72 20 70 72 65 73 73 20 53 |utton or press S| 00000b10 50 41 43 45 2e 2e 2e 22 3a d6 55 70 3a e1 0d 09 |PACE...":.Up:...| 00000b20 ba 3e dd f2 56 58 28 56 67 29 3a 56 68 3d 56 56 |.>..VX(Vg):Vh=VV| 00000b30 2a 20 9b 28 b2 56 67 29 2d 56 57 2a b5 28 b2 56 |* .(.Vg)-VW*.(.V| 00000b40 67 29 3a 56 69 3d 56 56 2a 20 b5 28 b2 56 67 29 |g):Vi=VV* .(.Vg)| 00000b50 2b 56 57 2a 9b 28 b2 56 67 29 3a e1 0d 09 f6 34 |+VW*.(.Vg):....4| 00000b60 dd f2 56 59 3a e6 30 2c 32 3a 86 30 2c 30 2c 56 |..VY:.0,2:.0,0,V| 00000b70 68 2c 56 69 3a f2 55 7a 28 56 68 2d 38 2a 34 2c |h,Vi:.Uz(Vh-8*4,| 00000b80 56 69 2d 38 2a 34 2c 22 61 63 69 64 22 29 3a e1 |Vi-8*4,"acid"):.| 00000b90 0d 0a 32 34 dd f2 55 7a 28 56 6a 2c 56 6b 2c 56 |..24..Uz(Vj,Vk,V| 00000ba0 6c 24 29 3a ec 56 6a 2c 56 6b 3a c8 99 26 32 45 |l$):.Vj,Vk:..&2E| 00000bb0 2c 32 35 36 2b 32 38 2c 55 69 2c 56 6c 24 2c 2c |,256+28,Ui,Vl$,,| 00000bc0 2c 38 3a e1 0d 0a 6e 4c dd f2 56 55 3a e6 30 2c |,8:...nL..VU:.0,| 00000bd0 31 3a 86 2d 36 34 30 2c 30 2c 36 34 30 2c 30 3a |1:.-640,0,640,0:| 00000be0 86 30 2c 2d 35 31 32 2c 30 2c 35 31 32 3a ef 35 |.0,-512,0,512:.5| 00000bf0 3a ec 36 30 38 2c 2d 31 36 3a f1 22 6e 22 3a ec |:.608,-16:."n":.| 00000c00 31 32 2c 34 39 32 3a f1 22 6d 22 3a ef 34 3a e1 |12,492:."m":.4:.| 00000c10 0d 0a dc 65 dd f2 55 79 3a 56 6d 3d 28 34 30 2d |...e..Uy:Vm=(40-| 00000c20 a9 55 77 24 29 2f 32 3a 56 6e 3d 28 34 30 2d a9 |.Uw$)/2:Vn=(40-.| 00000c30 55 78 24 29 2f 32 3a e6 30 2c 37 3a ef 35 3a ec |Ux$)/2:.0,7:.5:.| 00000c40 2d 36 34 30 2b 56 6d 2a 33 32 2c 2d 35 31 32 2b |-640+Vm*32,-512+| 00000c50 36 34 3a f1 55 77 24 3a ec 2d 36 34 30 2b 56 6e |64:.Uw$:.-640+Vn| 00000c60 2a 33 32 2c 2d 35 31 32 2b 33 32 3a f1 55 78 24 |*32,-512+32:.Ux$| 00000c70 3a ef 34 3a e1 0d 0b 40 fb dd f2 55 62 3a e3 56 |:.4:...@...Ub:.V| 00000c80 6f 3d 30 20 b8 32 88 32 3a 50 25 3d 55 61 3a 5b |o=0 .2.2:P%=Ua:[| 00000c90 4f 50 54 20 56 6f 3a 2e 55 64 20 41 44 52 20 72 |OPT Vo:.Ud ADR r| 00000ca0 30 2c 56 70 3a 41 44 52 20 72 31 2c 56 71 3a 53 |0,Vp:ADR r1,Vq:S| 00000cb0 57 49 20 22 4f 53 5f 52 65 61 64 56 64 75 56 61 |WI "OS_ReadVduVa| 00000cc0 72 69 61 62 6c 65 73 22 3a 4c 44 52 20 72 30 2c |riables":LDR r0,| 00000cd0 56 71 3a 4d 4f 56 20 50 43 2c 55 59 3a 2e 55 63 |Vq:MOV PC,UY:.Uc| 00000ce0 20 44 43 44 20 30 3a 2e 55 65 20 44 43 44 20 30 | DCD 0:.Ue DCD 0| 00000cf0 3a 2e 55 66 20 44 43 44 20 30 3a 2e 56 70 20 44 |:.Uf DCD 0:.Vp D| 00000d00 43 44 20 31 34 39 3a 44 43 44 20 2d 31 3a 2e 56 |CD 149:DCD -1:.V| 00000d10 71 20 44 43 44 20 30 3a 2e 55 70 20 4d 4f 56 20 |q DCD 0:.Up MOV | 00000d20 72 30 2c 23 31 39 3a 53 57 49 20 22 4f 53 5f 42 |r0,#19:SWI "OS_B| 00000d30 79 74 65 22 3a 4c 44 52 20 72 34 2c 55 66 3a 4d |yte":LDR r4,Uf:M| 00000d40 4f 56 20 72 30 2c 23 31 31 32 3a 4d 4f 56 20 72 |OV r0,#112:MOV r| 00000d50 31 2c 72 34 3a 53 57 49 20 22 4f 53 5f 42 79 74 |1,r4:SWI "OS_Byt| 00000d60 65 22 3a 20 82 20 72 34 2c 20 72 34 2c 20 23 33 |e": . r4, r4, #3| 00000d70 0d 0c 9e fa 4d 4f 56 20 72 30 2c 23 31 31 33 3a |....MOV r0,#113:| 00000d80 4d 4f 56 20 72 31 2c 72 34 3a 53 57 49 20 22 4f |MOV r1,r4:SWI "O| 00000d90 53 5f 42 79 74 65 22 3a 53 54 52 20 72 34 2c 55 |S_Byte":STR r4,U| 00000da0 66 3a 4c 44 52 20 72 30 2c 55 63 20 3a 20 4c 44 |f:LDR r0,Uc : LD| 00000db0 52 20 72 31 2c 55 65 3a 53 54 52 20 72 30 2c 55 |R r1,Ue:STR r0,U| 00000dc0 65 20 3a 20 53 54 52 20 72 31 2c 55 63 3a 4d 4f |e : STR r1,Uc:MO| 00000dd0 56 20 72 30 2c 23 31 32 3a 53 57 49 20 22 4f 53 |V r0,#12:SWI "OS| 00000de0 5f 57 72 69 74 65 43 22 3a 4d 4f 56 20 50 43 2c |_WriteC":MOV PC,| 00000df0 55 59 3a 2e 55 6f 20 4c 44 52 42 20 72 34 2c 5b |UY:.Uo LDRB r4,[| 00000e00 72 30 5d 2c 23 31 3a 4c 44 52 42 20 72 35 2c 5b |r0],#1:LDRB r5,[| 00000e10 72 30 5d 2c 23 31 3a 53 55 42 53 20 72 32 2c 72 |r0],#1:SUBS r2,r| 00000e20 32 2c 72 35 3a 4d 4f 56 4c 54 20 50 43 2c 55 59 |2,r5:MOVLT PC,UY| 00000e30 3a 2e 56 72 20 53 54 52 42 20 72 34 2c 5b 72 31 |:.Vr STRB r4,[r1| 00000e40 5d 2c 23 31 3a 53 55 42 53 20 72 35 2c 72 35 2c |],#1:SUBS r5,r5,| 00000e50 23 31 3a 42 4e 45 20 56 72 3a 43 4d 50 20 72 32 |#1:BNE Vr:CMP r2| 00000e60 2c 23 30 3a 42 47 54 20 55 6f 0d 0d c0 2a 4d 4f |,#0:BGT Uo...*MO| 00000e70 56 20 50 43 2c 55 59 3a 2e 55 6e 20 a4 56 73 28 |V PC,UY:.Un .Vs(| 00000e80 22 54 69 74 6c 2d 44 61 74 61 22 29 3a 5d 3a ed |"Titl-Data"):]:.| 00000e90 56 6f 3a e1 0d 0e 4c 17 dd a4 56 74 28 56 75 29 |Vo:...L...Vt(Vu)| 00000ea0 3a 50 25 2b 3d 56 75 3a 3d 56 6f 0d 0e 7e 67 dd |:P%+=Vu:=Vo..~g.| 00000eb0 a4 56 73 28 56 76 24 29 3a 56 76 24 3d 22 3c 45 |.Vs(Vv$):Vv$="<E| 00000ec0 78 61 6d 70 6c 65 2d 31 24 44 69 72 3e 2e 44 61 |xample-1$Dir>.Da| 00000ed0 74 61 2d 46 69 6c 65 73 2e 22 2b 56 76 24 3a 56 |ta-Files."+Vv$:V| 00000ee0 77 3d 8e 56 76 24 3a 56 78 3d a2 20 23 56 77 20 |w=.Vv$:Vx=. #Vw | 00000ef0 3a d9 23 56 77 3a e7 56 6f 3e 30 20 8c ff 22 4c |:.#Vw:.Vo>0 .."L| 00000f00 6f 61 64 20 22 2b 56 76 24 2b 22 20 22 2b c3 7e |oad "+Vv$+" "+.~| 00000f10 50 25 0d 0e a6 21 50 25 2b 3d 56 78 3a 5b 4f 50 |P%...!P%+=Vx:[OP| 00000f20 54 20 56 6f 20 3a 20 41 4c 49 47 4e 20 3a 5d 3a |T Vo : ALIGN :]:| 00000f30 3d 56 6f 0d 10 22 3e dd a4 56 79 28 56 7a 2c 57 |=Vo..">..Vy(Vz,W| 00000f40 55 24 29 3a c8 99 26 32 45 2c 32 35 36 2b 34 30 |U$):..&2E,256+40| 00000f50 2c 56 7a 2c 57 55 24 20 b8 2c 2c 2c 57 56 2c 57 |,Vz,WU$ .,,,WV,W| 00000f60 57 2c 57 58 2c 57 59 3a 57 5a 3d 57 56 3a 3d 57 |W,WX,WY:WZ=WV:=W| 00000f70 5a 0d 10 5e 3e dd a4 57 61 28 56 7a 2c 57 55 24 |Z..^>..Wa(Vz,WU$| 00000f80 29 3a c8 99 26 32 45 2c 32 35 36 2b 34 30 2c 56 |):..&2E,256+40,V| 00000f90 7a 2c 57 55 24 20 b8 2c 2c 2c 57 56 2c 57 57 2c |z,WU$ .,,,WV,WW,| 00000fa0 57 58 2c 57 59 3a 57 62 3d 57 57 3a 3d 57 62 0d |WX,WY:Wb=WW:=Wb.| 00000fb0 10 9a 3e dd a4 57 63 28 56 7a 2c 57 55 24 29 3a |..>..Wc(Vz,WU$):| 00000fc0 c8 99 26 32 45 2c 32 35 36 2b 34 30 2c 56 7a 2c |..&2E,256+40,Vz,| 00000fd0 57 55 24 20 b8 2c 2c 2c 57 56 2c 57 57 2c 57 58 |WU$ .,,,WV,WW,WX| 00000fe0 2c 57 59 3a 57 64 3d 57 59 3a 3d 57 64 0d 10 d6 |,WY:Wd=WY:=Wd...| 00000ff0 3c dd a4 57 65 28 56 7a 2c 57 55 24 29 3a c8 99 |<..We(Vz,WU$):..| 00001000 26 32 45 2c 32 35 36 2b 34 30 2c 56 7a 2c 57 55 |&2E,256+40,Vz,WU| 00001010 24 20 b8 2c 2c 2c 57 56 2c 57 57 2c 57 58 2c 57 |$ .,,,WV,WW,WX,W| 00001020 59 3a 3d 28 57 58 3d 31 29 0d 11 08 33 dd a4 57 |Y:=(WX=1)...3..W| 00001030 66 28 56 7a 2c 57 55 24 29 3a 57 67 3d a4 57 68 |f(Vz,WU$):Wg=.Wh| 00001040 28 56 7a 2c 57 55 24 29 3a 57 69 3d 57 67 21 33 |(Vz,WU$):Wi=Wg!3| 00001050 32 3a e7 57 69 3d 31 31 2a 34 20 8c 0d 11 30 0a |2:.Wi=11*4 ...0.| 00001060 57 6a 3d 20 ac b9 0d 11 3a 10 cc 3a 57 6a 3d 57 |Wj= ....:..:Wj=W| 00001070 67 2b 31 31 2a 34 0d 11 4e 09 cd 3a 3d 57 6a 0d |g+11*4..N..:=Wj.| 00001080 11 76 12 dd a4 57 6b 28 56 7a 29 3a 3d 56 7a 21 |.v...Wk(Vz):=Vz!| 00001090 34 0d 11 9e 4f dd a4 57 6c 28 56 7a 2c 6e 29 3a |4...O..Wl(Vz,n):| 000010a0 57 6d 3d 56 7a 2b 56 7a 21 38 3a 57 6e 3d 31 3a |Wm=Vz+Vz!8:Wn=1:| 000010b0 c8 95 57 6e 3c 6e 3a 57 6f 3d 57 6d 21 30 3a 57 |..Wn<n:Wo=Wm!0:W| 000010c0 6d 2b 3d 57 6f 3a 57 6e 2b 3d 31 3a ce 3a 3d c0 |m+=Wo:Wn+=1:.:=.| 000010d0 a4 57 70 28 57 6d 2b 34 29 2c 31 32 29 2b bd 30 |.Wp(Wm+4),12)+.0| 000010e0 0d 12 20 46 dd a4 57 71 28 56 7a 2c 57 55 24 29 |.. F..Wq(Vz,WU$)| 000010f0 3a c8 99 26 32 45 2c 32 35 36 2b 32 34 2c 56 7a |:..&2E,256+24,Vz| 00001100 2c 57 55 24 20 b8 2c 2c 57 72 3a 57 73 3d 57 72 |,WU$ .,,Wr:Ws=Wr| 00001110 3a 57 69 3d 57 73 21 33 32 3a 57 74 3d 57 73 2b |:Wi=Ws!32:Wt=Ws+| 00001120 57 69 3a 3d 57 74 0d 12 70 46 dd a4 57 75 28 56 |Wi:=Wt..pF..Wu(V| 00001130 7a 2c 57 55 24 29 3a c8 99 26 32 45 2c 32 35 36 |z,WU$):..&2E,256| 00001140 2b 32 34 2c 56 7a 2c 57 55 24 20 b8 2c 2c 57 72 |+24,Vz,WU$ .,,Wr| 00001150 3a 57 73 3d 57 72 3a 57 76 3d 57 73 21 33 36 3a |:Ws=Wr:Wv=Ws!36:| 00001160 57 77 3d 57 73 2b 57 76 3a 3d 57 77 0d 12 c0 34 |Ww=Ws+Wv:=Ww...4| 00001170 dd a4 57 68 28 56 7a 2c 57 55 24 29 3a c8 99 26 |..Wh(Vz,WU$):..&| 00001180 32 45 2c 32 35 36 2b 32 34 2c 56 7a 2c 57 55 24 |2E,256+24,Vz,WU$| 00001190 20 b8 2c 2c 57 72 3a 57 78 3d 57 72 3a 3d 57 78 | .,,Wr:Wx=Wr:=Wx| 000011a0 0d 12 fc 26 dd f2 57 79 28 56 7a 2c 57 7a 24 29 |...&..Wy(Vz,Wz$)| 000011b0 3a c8 99 26 32 45 2c 32 35 36 2b 31 32 2c 56 7a |:..&2E,256+12,Vz| 000011c0 2c 57 7a 24 3a e1 0d 13 2e 26 dd f2 55 6b 28 56 |,Wz$:....&..Uk(V| 000011d0 7a 2c 57 7a 24 29 3a c8 99 26 32 45 2c 32 35 36 |z,Wz$):..&2E,256| 000011e0 2b 31 30 2c 56 7a 2c 57 7a 24 3a e1 0d 13 60 30 |+10,Vz,Wz$:...`0| 000011f0 dd f2 55 6a 28 56 7a 2c 58 55 29 3a 56 7a 21 30 |..Uj(Vz,XU):Vz!0| 00001200 3d 58 55 3a 56 7a 21 38 3d 31 36 3a c8 99 26 32 |=XU:Vz!8=16:..&2| 00001210 45 2c 32 35 36 2b 39 2c 56 7a 3a e1 0d 13 a6 4f |E,256+9,Vz:....O| 00001220 dd a4 58 56 28 56 7a 2c 57 55 24 2c 78 2c 79 29 |..XV(Vz,WU$,x,y)| 00001230 3a ea 58 57 2c 58 58 3a c8 99 26 32 45 2c 32 35 |:.XW,XX:..&2E,25| 00001240 36 2b 34 31 2c 56 7a 2c 57 55 24 2c 78 2c 79 20 |6+41,Vz,WU$,x,y | 00001250 b8 2c 2c 2c 2c 2c 57 58 2c 57 59 3a 58 57 3d 57 |.,,,,,WX,WY:XW=W| 00001260 58 3a 58 58 3d 57 59 3a 3d 58 57 0d 13 f6 3a dd |X:XX=WY:=XW...:.| 00001270 f2 58 59 28 56 7a 2c 57 55 24 2c 78 2c 79 2c 58 |.XY(Vz,WU$,x,y,X| 00001280 57 2c 58 58 29 3a c8 99 26 32 45 2c 32 35 36 2b |W,XX):..&2E,256+| 00001290 34 32 2c 56 7a 2c 57 55 24 2c 78 2c 79 2c 58 57 |42,Vz,WU$,x,y,XW| 000012a0 2c 58 58 3a e1 0d ff |,XX:...| 000012a7