Home » Archimedes archive » Archimedes World » AW-1994-06-Disc1.adf » Disk1Jun94 » !AWJune94/Goodies/3D_Demo/!Example-4/!RunImage
!AWJune94/Goodies/3D_Demo/!Example-4/!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-06-Disc1.adf » Disk1Jun94 |
Filename: | !AWJune94/Goodies/3D_Demo/!Example-4/!RunImage |
Read OK: | ✔ |
File size: | 11BC 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:PROCUh:PROCUi:Uj=6+8:Uk=3+12:Ul=0000:Um=0000:Un=0200:Uo%=000:Up%=000:Uq%=000:DIMUr(Uj+1,3):DIMUs(Uj+1,3):DIMUt(Uk+1,3) 350Uu=800:Ur(1,1)=-100:Ur(1,2)=0:Ur(1,3)=0:Ur(2,1)=+100:Ur(2,2)=0:Ur(2,3)=0:Ur(3,1)=0:Ur(3,2)=+100:Ur(3,3)=0:Ur(4,1)=0:Ur(4,2)=-100:Ur(4,3)=0:Ur(5,1)=0:Ur(5,2)=0:Ur(5,3)=-100:Ur(6,1)=0:Ur(6,2)=0:Ur(6,3)=+100:Ur(7,1)=-50:Ur(7,2)=+50:Ur(7,3)=+50 450Ur(8,1)=+50:Ur(8,2)=+50:Ur(8,3)=+50:Ur(9,1)=+50:Ur(9,2)=-50:Ur(9,3)=+50:Ur(10,1)=-50:Ur(10,2)=-50:Ur(10,3)=+50:Ur(11,1)=-50:Ur(11,2)=+50:Ur(11,3)=-50:Ur(12,1)=+50:Ur(12,2)=+50:Ur(12,3)=-50:Ur(13,1)=+50:Ur(13,2)=-50:Ur(13,3)=-50 520Ur(14,1)=-50:Ur(14,2)=-50:Ur(14,3)=-50:Ut(1,1)=1:Ut(1,2)=2:Ut(1,3)=1:Ut(2,1)=3:Ut(2,2)=4:Ut(2,3)=1:Ut(3,1)=5:Ut(3,2)=6:Ut(3,3)=1:Ut(4,1)=7:Ut(4,2)=8:Ut(4,3)=2:Ut(5,1)=8:Ut(5,2)=9:Ut(5,3)=2:Ut(6,1)=9:Ut(6,2)=10:Ut(6,3)=2:Ut(7,1)=10:Ut(7,2)=7:Ut(7,3)=2 630Ut(8,1)=11:Ut(8,2)=12:Ut(8,3)=2:Ut(9,1)=12:Ut(9,2)=13:Ut(9,3)=2:Ut(10,1)=13:Ut(10,2)=14:Ut(10,3)=2:Ut(11,1)=14:Ut(11,2)=11:Ut(11,3)=2:Ut(12,1)=7:Ut(12,2)=11:Ut(12,3)=2:Ut(13,1)=8:Ut(13,2)=12:Ut(13,3)=2:Ut(14,1)=9:Ut(14,2)=13:Ut(14,3)=2 710Ut(15,1)=10:Ut(15,2)=14:Ut(15,3)=2:DIMUv(360),Uw(360):FORi=0 TO359:Uv(i)=SIN(RADi):Uw(i)=COS(RADi):NEXTi:ENDPROC 780DEFPROCUh:FORi=0 TO15:COLOURi,0,0,0:NEXTi:A%=Ux:B%=!Ue:C%=40*1024 :CALLUy:COLOUR0:COLOUR128+7:PRINTTAB(2,7)"EXAMPLE 4"'" ---------":COLOUR14:PRINTTAB(0,28)"How the cube is drawn":PRINTTAB(7,31)"PRESS SPACE TO CONTINUE...":COLOUR128+0:CALLUz:PROCVU:REPEATUNTILINKEY(-99):REPEATUNTIL NOTINKEY(-99):CALLUz:ENDPROC 960DEFPROCVU: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 1050ENDPROC 1080DEFPROCUi: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:COLOUR3,7:COLOUR5,7:COLOUR14,&FF,&CC,&22:OSCLI"Fx 9 5":OSCLI"Fx 10 5":ENDPROC 1210DEFPROCUW:PROCVV:PROCVW:PROCVX:PROCVY:ENDPROC 1290DEFPROCVV:VZ=6:Va=3:T=TIME:REPEAT:WAIT:Vb$="This is the 3D axis system":Vc$="Our object is defined round this":Up%=(Up%+1) MOD360:Uo%=(Uw(Up%)*20) MOD360:IFUo%<0 THENUo%+=360 1400PROCVd:PROCVe:PROCVf:CALLUz:UNTILTIME>T+4*100:FORVg=&FF TO&88STEP-1:WAIT:COLOUR1,Vg,0,0:Up%=(Up%+1) MOD360:Uo%=(Uw(Up%)*20) MOD360:IFUo%<0 THENUo%+=360 1500PROCVd:PROCVe:PROCVf:CALLUz:NEXTVg:ENDPROC 1580DEFPROCVW:VZ=6+8:Va=3:T=TIME:COLOUR1,&88,&00,&00:REPEAT:Vb$="These are the 8 points":Vc$="that define the cube...":Up%=(Up%+1) MOD360:Uo%=(Uw(Up%)*20) MOD360:IFUo%<0 THENUo%+=360 1690PROCVd:PROCVe:PROCVf:CALLUz:UNTILTIME>T+7*100:ENDPROC 1760DEFPROCVX:VZ=6+8:Va=3+0:T=TIME:REPEAT:Vb$="Now we have to link":Vc$="whatever points we require...":Up%=(Up%+1) MOD360:Uo%=(Uw(Up%)*20) MOD360:IFUo%<0 THENUo%+=360 1870PROCVd:PROCVe:PROCVf:CALLUz:UNTILTIME>T+8*100:FORVh=1 TO12:VZ=6+8:Va=3+Vh:T=TIME:REPEAT:Vi=Ut(3+Vh,1)-6:Vj=Ut(3+Vh,2)-6:Vb$="Link point "+STR$Vi+" to point "+STR$Vj:Vc$="":Up%=(Up%+1) MOD360:Uo%=(Uw(Up%)*20) MOD360:IFUo%<0 THENUo%+=360 2040PROCVd:PROCVe:PROCVf:CALLUz:UNTILTIME>T+5*100:NEXTVh:VZ=6+8:Va=3+12:T=TIME:COLOUR1,0:COLOUR6,0:COLOUR7,2:REPEAT:Vi=Ut(3+Vh,1)-6:Vj=Ut(3+Vh,2)-6:Vb$="":Vc$="And there you have it.":Up%=(Up%+2) MOD360:Uo%=(Uw(Up%)*20) MOD360:IFUo%<0 THENUo%+=360 2240PROCVd:PROCVe:PROCVf:CALLUz:UNTILTIME>T+12*100:ENDPROC 2320DEFPROCVe:FORi=1 TOVa:Vk=Ut(i,1):Vl=Ut(i,2):Vm=Us(Vk,1):Vn=Us(Vk,2):Vo=Us(Vl,1):Vp=Us(Vl,2):GCOL0,Ut(i,3):LINEVm,Vn,Vo,Vp:NEXTi:IFVZ>6 THEN 2440FORi=7 TOVZ:x=Us(i,1):y=Us(i,2):GCOL0,7:PLOT69,x,y:GCOL0,6:VDU5:MOVEx+12,y-12:PRINT;i-6:VDU4:NEXTi 2500ENDIF:ENDPROC 2550DEFPROCVd:i=1:WHILEi<=VZ:X=Ur(i,1):Y=Ur(i,2):Z=Ur(i,3):y=Y* Uw( Uo% ) - Z * Uv( Uo% ):z=Y* Uv( Uo% ) + Z * Uw( Uo% ) :Y=y:Z=z:x=X* Uw( Up% ) + Z * Uv( Up% ):z=Z* Uw( Up% ) - X * Uv( Up% ) :X=x:Z=z:x=X* Uw( Uq% ) - Y * Uv( Uq% ) 2660y=X* Uv( Uq% ) + Y * Uw( Uq% ) :X=x:Y=y:X+=Ul:Y+=Um:Z+=Un:Us(i,1)=(Uu*X)/Z:Us(i,2)=(Uu*Y)/Z:Us(i,3)=Z:i+=1:ENDWHILE:ENDPROC 2780DEFPROCVf:Vq=(40-LENVb$)/2:Vr=(40-LENVc$)/2:GCOL0,14:VDU5:MOVE-640+Vq*32,-512+64:PRINTVb$:MOVE-640+Vr*32,-512+32:PRINTVc$:VDU4:ENDPROC 2880DEFPROCVY:PRINTTAB(15,14)" THE END ":PRINTTAB(15,15)"----------":PRINTTAB(1,20)"Press a mouse button or press SPACE...":CALLUz:ENDPROC 2960DEFPROCUb:FORVs=0 TO2STEP2:P%=Ua:[OPT Vs:.Ud ADR r0,Vt:ADR r1,Vu:SWI "OS_ReadVduVariables":LDR r0,Vu:MOV PC,UY:.Uc DCD 0:.Ue DCD 0:.Uf DCD 0:.Vt DCD 149:DCD -1:.Vu DCD 0:.Uz MOV r0,#19:SWI "OS_Byte":LDR r4,Uf:MOV r0,#112:MOV r1,r4:SWI "OS_Byte": EOR r4, r4, #3 3310MOV 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:.Uy LDRB r4,[r0],#1:LDRB r5,[r0],#1:SUBS r2,r2,r5:MOVLT PC,UY:.Vv STRB r4,[r1],#1:SUBS r5,r5,#1:BNE Vv:CMP r2,#0:BGT Uy 3600MOV PC,UY:.Ux FNVw("Titl-Data"):]:NEXTVs:ENDPROC 3740DEFFNVx(Vy):P%+=Vy:=Vs 3790DEFFNVw(Vz$):Vz$="<Example-4$Dir>.Data-Files."+Vz$:WU=OPENINVz$:WV=EXT #WU :CLOSE#WU:IFVs>0 THENOSCLI"Load "+Vz$+" "+STR$~P% 3830P%+=WV:[OPT Vs : ALIGN :]:=Vs
<���:�:�" 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:�Ui:Uj=6+8:Uk=3+12:Ul=0000:Um=0000:Un=0200:Uo%=000:Up%=000:Uq%=000:�Ur(Uj+1,3):�Us(Uj+1,3):�Ut(Uk+1,3) ^�Uu=800:Ur(1,1)=-100:Ur(1,2)=0:Ur(1,3)=0:Ur(2,1)=+100:Ur(2,2)=0:Ur(2,3)=0:Ur(3,1)=0:Ur(3,2)=+100:Ur(3,3)=0:Ur(4,1)=0:Ur(4,2)=-100:Ur(4,3)=0:Ur(5,1)=0:Ur(5,2)=0:Ur(5,3)=-100:Ur(6,1)=0:Ur(6,2)=0:Ur(6,3)=+100:Ur(7,1)=-50:Ur(7,2)=+50:Ur(7,3)=+50 ��Ur(8,1)=+50:Ur(8,2)=+50:Ur(8,3)=+50:Ur(9,1)=+50:Ur(9,2)=-50:Ur(9,3)=+50:Ur(10,1)=-50:Ur(10,2)=-50:Ur(10,3)=+50:Ur(11,1)=-50:Ur(11,2)=+50:Ur(11,3)=-50:Ur(12,1)=+50:Ur(12,2)=+50:Ur(12,3)=-50:Ur(13,1)=+50:Ur(13,2)=-50:Ur(13,3)=-50 �Ur(14,1)=-50:Ur(14,2)=-50:Ur(14,3)=-50:Ut(1,1)=1:Ut(1,2)=2:Ut(1,3)=1:Ut(2,1)=3:Ut(2,2)=4:Ut(2,3)=1:Ut(3,1)=5:Ut(3,2)=6:Ut(3,3)=1:Ut(4,1)=7:Ut(4,2)=8:Ut(4,3)=2:Ut(5,1)=8:Ut(5,2)=9:Ut(5,3)=2:Ut(6,1)=9:Ut(6,2)=10:Ut(6,3)=2:Ut(7,1)=10:Ut(7,2)=7:Ut(7,3)=2 v�Ut(8,1)=11:Ut(8,2)=12:Ut(8,3)=2:Ut(9,1)=12:Ut(9,2)=13:Ut(9,3)=2:Ut(10,1)=13:Ut(10,2)=14:Ut(10,3)=2:Ut(11,1)=14:Ut(11,2)=11:Ut(11,3)=2:Ut(12,1)=7:Ut(12,2)=11:Ut(12,3)=2:Ut(13,1)=8:Ut(13,2)=12:Ut(13,3)=2:Ut(14,1)=9:Ut(14,2)=13:Ut(14,3)=2 �^Ut(15,1)=10:Ut(15,2)=14:Ut(15,3)=2:�Uv(360),Uw(360):�i=0 �359:Uv(i)=�(�i):Uw(i)=�(�i):�i:� ���Uh:�i=0 �15:�i,0,0,0:�i:A%=Ux:B%=!Ue:C%=40*1024 :�Uy:�0:�128+7:�2,7)"EXAMPLE 4"'" ---------":�14:�0,28)"How the cube is drawn":�7,31)"PRESS SPACE TO CONTINUE...":�128+0:�Uz:�VU:���(-99):�� ��(-99):�Uz:� ����VU:�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 � 8���Ui:�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:�3,7:�5,7:�14,&FF,&CC,&22:�"Fx 9 5":�"Fx 10 5":� ���UW:�VV:�VW:�VX:�VY:� ���VV:VZ=6:Va=3:T=�:�:Ȗ:Vb$="This is the 3D axis system":Vc$="Our object is defined round this":Up%=(Up%+1) �360:Uo%=(Uw(Up%)*20) �360:�Uo%<0 �Uo%+=360 xs�Vd:�Ve:�Vf:�Uz:��>T+4*100:�Vg=&FF �&88�-1:Ȗ:�1,Vg,0,0:Up%=(Up%+1) �360:Uo%=(Uw(Up%)*20) �360:�Uo%<0 �Uo%+=360 ��Vd:�Ve:�Vf:�Uz:�Vg:� ,���VW:VZ=6+8:Va=3:T=�:�1,&88,&00,&00:�:Vb$="These are the 8 points":Vc$="that define the cube...":Up%=(Up%+1) �360:Uo%=(Uw(Up%)*20) �360:�Uo%<0 �Uo%+=360 � �Vd:�Ve:�Vf:�Uz:��>T+7*100:� ���VX:VZ=6+8:Va=3+0:T=�:�:Vb$="Now we have to link":Vc$="whatever points we require...":Up%=(Up%+1) �360:Uo%=(Uw(Up%)*20) �360:�Uo%<0 �Uo%+=360 N��Vd:�Ve:�Vf:�Uz:��>T+8*100:�Vh=1 �12:VZ=6+8:Va=3+Vh:T=�:�:Vi=Ut(3+Vh,1)-6:Vj=Ut(3+Vh,2)-6:Vb$="Link point "+�Vi+" to point "+�Vj:Vc$="":Up%=(Up%+1) �360:Uo%=(Uw(Up%)*20) �360:�Uo%<0 �Uo%+=360 ���Vd:�Ve:�Vf:�Uz:��>T+5*100:�Vh:VZ=6+8:Va=3+12:T=�:�1,0:�6,0:�7,2:�:Vi=Ut(3+Vh,1)-6:Vj=Ut(3+Vh,2)-6:Vb$="":Vc$="And there you have it.":Up%=(Up%+2) �360:Uo%=(Uw(Up%)*20) �360:�Uo%<0 �Uo%+=360 �!�Vd:�Ve:�Vf:�Uz:��>T+12*100:� z��Ve:�i=1 �Va:Vk=Ut(i,1):Vl=Ut(i,2):Vm=Us(Vk,1):Vn=Us(Vk,2):Vo=Us(Vl,1):Vp=Us(Vl,2):�0,Ut(i,3):�Vm,Vn,Vo,Vp:�i:�VZ>6 � �L�i=7 �VZ:x=Us(i,1):y=Us(i,2):�0,7:�69,x,y:�0,6:�5:�x+12,y-12:�;i-6:�4:�i ��:� ����Vd:i=1:ȕi<=VZ:X=Ur(i,1):Y=Ur(i,2):Z=Ur(i,3):y=Y* Uw( Uo% ) - Z * Uv( Uo% ):z=Y* Uv( Uo% ) + Z * Uw( Uo% ) :Y=y:Z=z:x=X* Uw( Up% ) + Z * Uv( Up% ):z=Z* Uw( Up% ) - X * Uv( Up% ) :X=x:Z=z:x=X* Uw( Uq% ) - Y * Uv( Uq% ) dry=X* Uv( Uq% ) + Y * Uw( Uq% ) :X=x:Y=y:X+=Ul:Y+=Um:Z+=Un:Us(i,1)=(Uu*X)/Z:Us(i,2)=(Uu*Y)/Z:Us(i,3)=Z:i+=1:�:� �f��Vf:Vq=(40-�Vb$)/2:Vr=(40-�Vc$)/2:�0,14:�5:�-640+Vq*32,-512+64:�Vb$:�-640+Vr*32,-512+32:�Vc$:�4:� @h��VY:�15,14)" THE END ":�15,15)"----------":�1,20)"Press a mouse button or press SPACE...":�Uz:� ����Ub:�Vs=0 �2�2:P%=Ua:[OPT Vs:.Ud ADR r0,Vt:ADR r1,Vu:SWI "OS_ReadVduVariables":LDR r0,Vu:MOV PC,UY:.Uc DCD 0:.Ue DCD 0:.Uf DCD 0:.Vt DCD 149:DCD -1:.Vu DCD 0:.Uz 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:.Uy LDRB r4,[r0],#1:LDRB r5,[r0],#1:SUBS r2,r2,r5:MOVLT PC,UY:.Vv STRB r4,[r1],#1:SUBS r5,r5,#1:BNE Vv:CMP r2,#0:BGT Uy *MOV PC,UY:.Ux �Vw("Titl-Data"):]:�Vs:� �ݤVx(Vy):P%+=Vy:=Vs �gݤVw(Vz$):Vz$="<Example-4$Dir>.Data-Files."+Vz$:WU=�Vz$:WV=� #WU :�#WU:�Vs>0 ��"Load "+Vz$+" "+�~P% �!P%+=WV:[OPT Vs : ALIGN :]:=Vs �
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 fb 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 f2 55 68 3a f2 55 69 3a 55 6a 3d 36 2b 38 |.:.Uh:.Ui:Uj=6+8| 000000d0 3a 55 6b 3d 33 2b 31 32 3a 55 6c 3d 30 30 30 30 |:Uk=3+12:Ul=0000| 000000e0 3a 55 6d 3d 30 30 30 30 3a 55 6e 3d 30 32 30 30 |:Um=0000:Un=0200| 000000f0 3a 55 6f 25 3d 30 30 30 3a 55 70 25 3d 30 30 30 |:Uo%=000:Up%=000| 00000100 3a 55 71 25 3d 30 30 30 3a de 55 72 28 55 6a 2b |:Uq%=000:.Ur(Uj+| 00000110 31 2c 33 29 3a de 55 73 28 55 6a 2b 31 2c 33 29 |1,3):.Us(Uj+1,3)| 00000120 3a de 55 74 28 55 6b 2b 31 2c 33 29 0d 01 5e f4 |:.Ut(Uk+1,3)..^.| 00000130 55 75 3d 38 30 30 3a 55 72 28 31 2c 31 29 3d 2d |Uu=800:Ur(1,1)=-| 00000140 31 30 30 3a 55 72 28 31 2c 32 29 3d 30 3a 55 72 |100:Ur(1,2)=0:Ur| 00000150 28 31 2c 33 29 3d 30 3a 55 72 28 32 2c 31 29 3d |(1,3)=0:Ur(2,1)=| 00000160 2b 31 30 30 3a 55 72 28 32 2c 32 29 3d 30 3a 55 |+100:Ur(2,2)=0:U| 00000170 72 28 32 2c 33 29 3d 30 3a 55 72 28 33 2c 31 29 |r(2,3)=0:Ur(3,1)| 00000180 3d 30 3a 55 72 28 33 2c 32 29 3d 2b 31 30 30 3a |=0:Ur(3,2)=+100:| 00000190 55 72 28 33 2c 33 29 3d 30 3a 55 72 28 34 2c 31 |Ur(3,3)=0:Ur(4,1| 000001a0 29 3d 30 3a 55 72 28 34 2c 32 29 3d 2d 31 30 30 |)=0:Ur(4,2)=-100| 000001b0 3a 55 72 28 34 2c 33 29 3d 30 3a 55 72 28 35 2c |:Ur(4,3)=0:Ur(5,| 000001c0 31 29 3d 30 3a 55 72 28 35 2c 32 29 3d 30 3a 55 |1)=0:Ur(5,2)=0:U| 000001d0 72 28 35 2c 33 29 3d 2d 31 30 30 3a 55 72 28 36 |r(5,3)=-100:Ur(6| 000001e0 2c 31 29 3d 30 3a 55 72 28 36 2c 32 29 3d 30 3a |,1)=0:Ur(6,2)=0:| 000001f0 55 72 28 36 2c 33 29 3d 2b 31 30 30 3a 55 72 28 |Ur(6,3)=+100:Ur(| 00000200 37 2c 31 29 3d 2d 35 30 3a 55 72 28 37 2c 32 29 |7,1)=-50:Ur(7,2)| 00000210 3d 2b 35 30 3a 55 72 28 37 2c 33 29 3d 2b 35 30 |=+50:Ur(7,3)=+50| 00000220 0d 01 c2 e7 55 72 28 38 2c 31 29 3d 2b 35 30 3a |....Ur(8,1)=+50:| 00000230 55 72 28 38 2c 32 29 3d 2b 35 30 3a 55 72 28 38 |Ur(8,2)=+50:Ur(8| 00000240 2c 33 29 3d 2b 35 30 3a 55 72 28 39 2c 31 29 3d |,3)=+50:Ur(9,1)=| 00000250 2b 35 30 3a 55 72 28 39 2c 32 29 3d 2d 35 30 3a |+50:Ur(9,2)=-50:| 00000260 55 72 28 39 2c 33 29 3d 2b 35 30 3a 55 72 28 31 |Ur(9,3)=+50:Ur(1| 00000270 30 2c 31 29 3d 2d 35 30 3a 55 72 28 31 30 2c 32 |0,1)=-50:Ur(10,2| 00000280 29 3d 2d 35 30 3a 55 72 28 31 30 2c 33 29 3d 2b |)=-50:Ur(10,3)=+| 00000290 35 30 3a 55 72 28 31 31 2c 31 29 3d 2d 35 30 3a |50:Ur(11,1)=-50:| 000002a0 55 72 28 31 31 2c 32 29 3d 2b 35 30 3a 55 72 28 |Ur(11,2)=+50:Ur(| 000002b0 31 31 2c 33 29 3d 2d 35 30 3a 55 72 28 31 32 2c |11,3)=-50:Ur(12,| 000002c0 31 29 3d 2b 35 30 3a 55 72 28 31 32 2c 32 29 3d |1)=+50:Ur(12,2)=| 000002d0 2b 35 30 3a 55 72 28 31 32 2c 33 29 3d 2d 35 30 |+50:Ur(12,3)=-50| 000002e0 3a 55 72 28 31 33 2c 31 29 3d 2b 35 30 3a 55 72 |:Ur(13,1)=+50:Ur| 000002f0 28 31 33 2c 32 29 3d 2d 35 30 3a 55 72 28 31 33 |(13,2)=-50:Ur(13| 00000300 2c 33 29 3d 2d 35 30 0d 02 08 fe 55 72 28 31 34 |,3)=-50....Ur(14| 00000310 2c 31 29 3d 2d 35 30 3a 55 72 28 31 34 2c 32 29 |,1)=-50:Ur(14,2)| 00000320 3d 2d 35 30 3a 55 72 28 31 34 2c 33 29 3d 2d 35 |=-50:Ur(14,3)=-5| 00000330 30 3a 55 74 28 31 2c 31 29 3d 31 3a 55 74 28 31 |0:Ut(1,1)=1:Ut(1| 00000340 2c 32 29 3d 32 3a 55 74 28 31 2c 33 29 3d 31 3a |,2)=2:Ut(1,3)=1:| 00000350 55 74 28 32 2c 31 29 3d 33 3a 55 74 28 32 2c 32 |Ut(2,1)=3:Ut(2,2| 00000360 29 3d 34 3a 55 74 28 32 2c 33 29 3d 31 3a 55 74 |)=4:Ut(2,3)=1:Ut| 00000370 28 33 2c 31 29 3d 35 3a 55 74 28 33 2c 32 29 3d |(3,1)=5:Ut(3,2)=| 00000380 36 3a 55 74 28 33 2c 33 29 3d 31 3a 55 74 28 34 |6:Ut(3,3)=1:Ut(4| 00000390 2c 31 29 3d 37 3a 55 74 28 34 2c 32 29 3d 38 3a |,1)=7:Ut(4,2)=8:| 000003a0 55 74 28 34 2c 33 29 3d 32 3a 55 74 28 35 2c 31 |Ut(4,3)=2:Ut(5,1| 000003b0 29 3d 38 3a 55 74 28 35 2c 32 29 3d 39 3a 55 74 |)=8:Ut(5,2)=9:Ut| 000003c0 28 35 2c 33 29 3d 32 3a 55 74 28 36 2c 31 29 3d |(5,3)=2:Ut(6,1)=| 000003d0 39 3a 55 74 28 36 2c 32 29 3d 31 30 3a 55 74 28 |9:Ut(6,2)=10:Ut(| 000003e0 36 2c 33 29 3d 32 3a 55 74 28 37 2c 31 29 3d 31 |6,3)=2:Ut(7,1)=1| 000003f0 30 3a 55 74 28 37 2c 32 29 3d 37 3a 55 74 28 37 |0:Ut(7,2)=7:Ut(7| 00000400 2c 33 29 3d 32 0d 02 76 ef 55 74 28 38 2c 31 29 |,3)=2..v.Ut(8,1)| 00000410 3d 31 31 3a 55 74 28 38 2c 32 29 3d 31 32 3a 55 |=11:Ut(8,2)=12:U| 00000420 74 28 38 2c 33 29 3d 32 3a 55 74 28 39 2c 31 29 |t(8,3)=2:Ut(9,1)| 00000430 3d 31 32 3a 55 74 28 39 2c 32 29 3d 31 33 3a 55 |=12:Ut(9,2)=13:U| 00000440 74 28 39 2c 33 29 3d 32 3a 55 74 28 31 30 2c 31 |t(9,3)=2:Ut(10,1| 00000450 29 3d 31 33 3a 55 74 28 31 30 2c 32 29 3d 31 34 |)=13:Ut(10,2)=14| 00000460 3a 55 74 28 31 30 2c 33 29 3d 32 3a 55 74 28 31 |:Ut(10,3)=2:Ut(1| 00000470 31 2c 31 29 3d 31 34 3a 55 74 28 31 31 2c 32 29 |1,1)=14:Ut(11,2)| 00000480 3d 31 31 3a 55 74 28 31 31 2c 33 29 3d 32 3a 55 |=11:Ut(11,3)=2:U| 00000490 74 28 31 32 2c 31 29 3d 37 3a 55 74 28 31 32 2c |t(12,1)=7:Ut(12,| 000004a0 32 29 3d 31 31 3a 55 74 28 31 32 2c 33 29 3d 32 |2)=11:Ut(12,3)=2| 000004b0 3a 55 74 28 31 33 2c 31 29 3d 38 3a 55 74 28 31 |:Ut(13,1)=8:Ut(1| 000004c0 33 2c 32 29 3d 31 32 3a 55 74 28 31 33 2c 33 29 |3,2)=12:Ut(13,3)| 000004d0 3d 32 3a 55 74 28 31 34 2c 31 29 3d 39 3a 55 74 |=2:Ut(14,1)=9:Ut| 000004e0 28 31 34 2c 32 29 3d 31 33 3a 55 74 28 31 34 2c |(14,2)=13:Ut(14,| 000004f0 33 29 3d 32 0d 02 c6 5e 55 74 28 31 35 2c 31 29 |3)=2...^Ut(15,1)| 00000500 3d 31 30 3a 55 74 28 31 35 2c 32 29 3d 31 34 3a |=10:Ut(15,2)=14:| 00000510 55 74 28 31 35 2c 33 29 3d 32 3a de 55 76 28 33 |Ut(15,3)=2:.Uv(3| 00000520 36 30 29 2c 55 77 28 33 36 30 29 3a e3 69 3d 30 |60),Uw(360):.i=0| 00000530 20 b8 33 35 39 3a 55 76 28 69 29 3d b5 28 b2 69 | .359:Uv(i)=.(.i| 00000540 29 3a 55 77 28 69 29 3d 9b 28 b2 69 29 3a ed 69 |):Uw(i)=.(.i):.i| 00000550 3a e1 0d 03 0c d4 dd f2 55 68 3a e3 69 3d 30 20 |:.......Uh:.i=0 | 00000560 b8 31 35 3a fb 69 2c 30 2c 30 2c 30 3a ed 69 3a |.15:.i,0,0,0:.i:| 00000570 41 25 3d 55 78 3a 42 25 3d 21 55 65 3a 43 25 3d |A%=Ux:B%=!Ue:C%=| 00000580 34 30 2a 31 30 32 34 20 3a d6 55 79 3a fb 30 3a |40*1024 :.Uy:.0:| 00000590 fb 31 32 38 2b 37 3a f1 8a 32 2c 37 29 22 45 58 |.128+7:..2,7)"EX| 000005a0 41 4d 50 4c 45 20 34 22 27 22 20 20 2d 2d 2d 2d |AMPLE 4"'" ----| 000005b0 2d 2d 2d 2d 2d 22 3a fb 31 34 3a f1 8a 30 2c 32 |-----":.14:..0,2| 000005c0 38 29 22 48 6f 77 20 74 68 65 20 63 75 62 65 20 |8)"How the cube | 000005d0 69 73 20 64 72 61 77 6e 22 3a f1 8a 37 2c 33 31 |is drawn":..7,31| 000005e0 29 22 50 52 45 53 53 20 53 50 41 43 45 20 54 4f |)"PRESS SPACE TO| 000005f0 20 43 4f 4e 54 49 4e 55 45 2e 2e 2e 22 3a fb 31 | CONTINUE...":.1| 00000600 32 38 2b 30 3a d6 55 7a 3a f2 56 55 3a f5 fd a6 |28+0:.Uz:.VU:...| 00000610 28 2d 39 39 29 3a f5 fd 20 ac a6 28 2d 39 39 29 |(-99):.. ..(-99)| 00000620 3a d6 55 7a 3a e1 0d 03 c0 fe dd f2 56 55 3a fb |:.Uz:.......VU:.| 00000630 30 2c 26 46 46 2c 26 46 46 2c 26 46 46 3a fb 31 |0,&FF,&FF,&FF:.1| 00000640 2c 26 44 44 2c 26 44 44 2c 26 44 44 3a fb 32 2c |,&DD,&DD,&DD:.2,| 00000650 26 42 42 2c 26 42 42 2c 26 42 42 3a fb 33 2c 26 |&BB,&BB,&BB:.3,&| 00000660 39 39 2c 26 39 39 2c 26 39 39 3a fb 34 2c 26 37 |99,&99,&99:.4,&7| 00000670 37 2c 26 37 37 2c 26 37 37 3a fb 35 2c 26 35 35 |7,&77,&77:.5,&55| 00000680 2c 26 35 35 2c 26 35 35 3a fb 36 2c 26 33 33 2c |,&55,&55:.6,&33,| 00000690 26 33 33 2c 26 33 33 3a fb 37 2c 26 30 30 2c 26 |&33,&33:.7,&00,&| 000006a0 30 30 2c 26 30 30 3a fb 38 2c 26 30 30 2c 26 34 |00,&00:.8,&00,&4| 000006b0 34 2c 26 39 39 3a fb 39 2c 26 45 45 2c 26 45 45 |4,&99:.9,&EE,&EE| 000006c0 2c 26 30 30 3a fb 31 30 2c 26 30 30 2c 26 43 43 |,&00:.10,&00,&CC| 000006d0 2c 26 30 30 3a fb 31 31 2c 26 44 44 2c 26 30 30 |,&00:.11,&DD,&00| 000006e0 2c 26 30 30 3a fb 31 32 2c 26 45 45 2c 26 45 45 |,&00:.12,&EE,&EE| 000006f0 2c 26 42 42 3a fb 31 33 2c 26 35 35 2c 26 38 38 |,&BB:.13,&55,&88| 00000700 2c 26 30 30 3a fb 31 34 2c 26 46 46 2c 26 42 42 |,&00:.14,&FF,&BB| 00000710 2c 26 30 30 3a fb 31 35 2c 26 30 30 2c 26 42 42 |,&00:.15,&00,&BB| 00000720 2c 26 46 46 0d 04 1a 05 e1 0d 04 38 b2 dd f2 55 |,&FF.......8...U| 00000730 69 3a fb 30 2c 26 30 30 2c 26 30 30 2c 26 30 30 |i:.0,&00,&00,&00| 00000740 3a fb 31 2c 26 46 46 2c 26 30 30 2c 26 30 30 3a |:.1,&FF,&00,&00:| 00000750 fb 32 2c 26 30 30 2c 26 46 46 2c 26 30 30 3a fb |.2,&00,&FF,&00:.| 00000760 33 2c 26 46 46 2c 26 46 46 2c 26 30 30 3a fb 34 |3,&FF,&FF,&00:.4| 00000770 2c 26 30 30 2c 26 30 30 2c 26 46 46 3a fb 35 2c |,&00,&00,&FF:.5,| 00000780 26 46 46 2c 26 30 30 2c 26 46 46 3a fb 36 2c 26 |&FF,&00,&FF:.6,&| 00000790 30 30 2c 26 46 46 2c 26 46 46 3a fb 37 2c 26 46 |00,&FF,&FF:.7,&F| 000007a0 46 2c 26 46 46 2c 26 46 46 3a fb 33 2c 37 3a fb |F,&FF,&FF:.3,7:.| 000007b0 35 2c 37 3a fb 31 34 2c 26 46 46 2c 26 43 43 2c |5,7:.14,&FF,&CC,| 000007c0 26 32 32 3a ff 22 46 78 20 20 39 20 35 22 3a ff |&22:."Fx 9 5":.| 000007d0 22 46 78 20 31 30 20 35 22 3a e1 0d 04 ba 1a dd |"Fx 10 5":......| 000007e0 f2 55 57 3a f2 56 56 3a f2 56 57 3a f2 56 58 3a |.UW:.VV:.VW:.VX:| 000007f0 f2 56 59 3a e1 0d 05 0a 9b dd f2 56 56 3a 56 5a |.VY:.......VV:VZ| 00000800 3d 36 3a 56 61 3d 33 3a 54 3d 91 3a f5 3a c8 96 |=6:Va=3:T=.:.:..| 00000810 3a 56 62 24 3d 22 54 68 69 73 20 69 73 20 74 68 |:Vb$="This is th| 00000820 65 20 33 44 20 61 78 69 73 20 73 79 73 74 65 6d |e 3D axis system| 00000830 22 3a 56 63 24 3d 22 4f 75 72 20 6f 62 6a 65 63 |":Vc$="Our objec| 00000840 74 20 69 73 20 64 65 66 69 6e 65 64 20 72 6f 75 |t is defined rou| 00000850 6e 64 20 74 68 69 73 22 3a 55 70 25 3d 28 55 70 |nd this":Up%=(Up| 00000860 25 2b 31 29 20 83 33 36 30 3a 55 6f 25 3d 28 55 |%+1) .360:Uo%=(U| 00000870 77 28 55 70 25 29 2a 32 30 29 20 83 33 36 30 3a |w(Up%)*20) .360:| 00000880 e7 55 6f 25 3c 30 20 8c 55 6f 25 2b 3d 33 36 30 |.Uo%<0 .Uo%+=360| 00000890 0d 05 78 73 f2 56 64 3a f2 56 65 3a f2 56 66 3a |..xs.Vd:.Ve:.Vf:| 000008a0 d6 55 7a 3a fd 91 3e 54 2b 34 2a 31 30 30 3a e3 |.Uz:..>T+4*100:.| 000008b0 56 67 3d 26 46 46 20 b8 26 38 38 88 2d 31 3a c8 |Vg=&FF .&88.-1:.| 000008c0 96 3a fb 31 2c 56 67 2c 30 2c 30 3a 55 70 25 3d |.:.1,Vg,0,0:Up%=| 000008d0 28 55 70 25 2b 31 29 20 83 33 36 30 3a 55 6f 25 |(Up%+1) .360:Uo%| 000008e0 3d 28 55 77 28 55 70 25 29 2a 32 30 29 20 83 33 |=(Uw(Up%)*20) .3| 000008f0 36 30 3a e7 55 6f 25 3c 30 20 8c 55 6f 25 2b 3d |60:.Uo%<0 .Uo%+=| 00000900 33 36 30 0d 05 dc 19 f2 56 64 3a f2 56 65 3a f2 |360.....Vd:.Ve:.| 00000910 56 66 3a d6 55 7a 3a ed 56 67 3a e1 0d 06 2c 9c |Vf:.Uz:.Vg:...,.| 00000920 dd f2 56 57 3a 56 5a 3d 36 2b 38 3a 56 61 3d 33 |..VW:VZ=6+8:Va=3| 00000930 3a 54 3d 91 3a fb 31 2c 26 38 38 2c 26 30 30 2c |:T=.:.1,&88,&00,| 00000940 26 30 30 3a f5 3a 56 62 24 3d 22 54 68 65 73 65 |&00:.:Vb$="These| 00000950 20 61 72 65 20 74 68 65 20 38 20 70 6f 69 6e 74 | are the 8 point| 00000960 73 22 3a 56 63 24 3d 22 74 68 61 74 20 64 65 66 |s":Vc$="that def| 00000970 69 6e 65 20 74 68 65 20 63 75 62 65 2e 2e 2e 22 |ine the cube..."| 00000980 3a 55 70 25 3d 28 55 70 25 2b 31 29 20 83 33 36 |:Up%=(Up%+1) .36| 00000990 30 3a 55 6f 25 3d 28 55 77 28 55 70 25 29 2a 32 |0:Uo%=(Uw(Up%)*2| 000009a0 30 29 20 83 33 36 30 3a e7 55 6f 25 3c 30 20 8c |0) .360:.Uo%<0 .| 000009b0 55 6f 25 2b 3d 33 36 30 0d 06 9a 20 f2 56 64 3a |Uo%+=360... .Vd:| 000009c0 f2 56 65 3a f2 56 66 3a d6 55 7a 3a fd 91 3e 54 |.Ve:.Vf:.Uz:..>T| 000009d0 2b 37 2a 31 30 30 3a e1 0d 06 e0 92 dd f2 56 58 |+7*100:.......VX| 000009e0 3a 56 5a 3d 36 2b 38 3a 56 61 3d 33 2b 30 3a 54 |:VZ=6+8:Va=3+0:T| 000009f0 3d 91 3a f5 3a 56 62 24 3d 22 4e 6f 77 20 77 65 |=.:.:Vb$="Now we| 00000a00 20 68 61 76 65 20 74 6f 20 6c 69 6e 6b 22 3a 56 | have to link":V| 00000a10 63 24 3d 22 77 68 61 74 65 76 65 72 20 70 6f 69 |c$="whatever poi| 00000a20 6e 74 73 20 77 65 20 72 65 71 75 69 72 65 2e 2e |nts we require..| 00000a30 2e 22 3a 55 70 25 3d 28 55 70 25 2b 31 29 20 83 |.":Up%=(Up%+1) .| 00000a40 33 36 30 3a 55 6f 25 3d 28 55 77 28 55 70 25 29 |360:Uo%=(Uw(Up%)| 00000a50 2a 32 30 29 20 83 33 36 30 3a e7 55 6f 25 3c 30 |*20) .360:.Uo%<0| 00000a60 20 8c 55 6f 25 2b 3d 33 36 30 0d 07 4e c3 f2 56 | .Uo%+=360..N..V| 00000a70 64 3a f2 56 65 3a f2 56 66 3a d6 55 7a 3a fd 91 |d:.Ve:.Vf:.Uz:..| 00000a80 3e 54 2b 38 2a 31 30 30 3a e3 56 68 3d 31 20 b8 |>T+8*100:.Vh=1 .| 00000a90 31 32 3a 56 5a 3d 36 2b 38 3a 56 61 3d 33 2b 56 |12:VZ=6+8:Va=3+V| 00000aa0 68 3a 54 3d 91 3a f5 3a 56 69 3d 55 74 28 33 2b |h:T=.:.:Vi=Ut(3+| 00000ab0 56 68 2c 31 29 2d 36 3a 56 6a 3d 55 74 28 33 2b |Vh,1)-6:Vj=Ut(3+| 00000ac0 56 68 2c 32 29 2d 36 3a 56 62 24 3d 22 4c 69 6e |Vh,2)-6:Vb$="Lin| 00000ad0 6b 20 70 6f 69 6e 74 20 22 2b c3 56 69 2b 22 20 |k point "+.Vi+" | 00000ae0 74 6f 20 70 6f 69 6e 74 20 22 2b c3 56 6a 3a 56 |to point "+.Vj:V| 00000af0 63 24 3d 22 22 3a 55 70 25 3d 28 55 70 25 2b 31 |c$="":Up%=(Up%+1| 00000b00 29 20 83 33 36 30 3a 55 6f 25 3d 28 55 77 28 55 |) .360:Uo%=(Uw(U| 00000b10 70 25 29 2a 32 30 29 20 83 33 36 30 3a e7 55 6f |p%)*20) .360:.Uo| 00000b20 25 3c 30 20 8c 55 6f 25 2b 3d 33 36 30 0d 07 f8 |%<0 .Uo%+=360...| 00000b30 c2 f2 56 64 3a f2 56 65 3a f2 56 66 3a d6 55 7a |..Vd:.Ve:.Vf:.Uz| 00000b40 3a fd 91 3e 54 2b 35 2a 31 30 30 3a ed 56 68 3a |:..>T+5*100:.Vh:| 00000b50 56 5a 3d 36 2b 38 3a 56 61 3d 33 2b 31 32 3a 54 |VZ=6+8:Va=3+12:T| 00000b60 3d 91 3a fb 31 2c 30 3a fb 36 2c 30 3a fb 37 2c |=.:.1,0:.6,0:.7,| 00000b70 32 3a f5 3a 56 69 3d 55 74 28 33 2b 56 68 2c 31 |2:.:Vi=Ut(3+Vh,1| 00000b80 29 2d 36 3a 56 6a 3d 55 74 28 33 2b 56 68 2c 32 |)-6:Vj=Ut(3+Vh,2| 00000b90 29 2d 36 3a 56 62 24 3d 22 22 3a 56 63 24 3d 22 |)-6:Vb$="":Vc$="| 00000ba0 41 6e 64 20 74 68 65 72 65 20 79 6f 75 20 68 61 |And there you ha| 00000bb0 76 65 20 69 74 2e 22 3a 55 70 25 3d 28 55 70 25 |ve it.":Up%=(Up%| 00000bc0 2b 32 29 20 83 33 36 30 3a 55 6f 25 3d 28 55 77 |+2) .360:Uo%=(Uw| 00000bd0 28 55 70 25 29 2a 32 30 29 20 83 33 36 30 3a e7 |(Up%)*20) .360:.| 00000be0 55 6f 25 3c 30 20 8c 55 6f 25 2b 3d 33 36 30 0d |Uo%<0 .Uo%+=360.| 00000bf0 08 c0 21 f2 56 64 3a f2 56 65 3a f2 56 66 3a d6 |..!.Vd:.Ve:.Vf:.| 00000c00 55 7a 3a fd 91 3e 54 2b 31 32 2a 31 30 30 3a e1 |Uz:..>T+12*100:.| 00000c10 0d 09 10 7a dd f2 56 65 3a e3 69 3d 31 20 b8 56 |...z..Ve:.i=1 .V| 00000c20 61 3a 56 6b 3d 55 74 28 69 2c 31 29 3a 56 6c 3d |a:Vk=Ut(i,1):Vl=| 00000c30 55 74 28 69 2c 32 29 3a 56 6d 3d 55 73 28 56 6b |Ut(i,2):Vm=Us(Vk| 00000c40 2c 31 29 3a 56 6e 3d 55 73 28 56 6b 2c 32 29 3a |,1):Vn=Us(Vk,2):| 00000c50 56 6f 3d 55 73 28 56 6c 2c 31 29 3a 56 70 3d 55 |Vo=Us(Vl,1):Vp=U| 00000c60 73 28 56 6c 2c 32 29 3a e6 30 2c 55 74 28 69 2c |s(Vl,2):.0,Ut(i,| 00000c70 33 29 3a 86 56 6d 2c 56 6e 2c 56 6f 2c 56 70 3a |3):.Vm,Vn,Vo,Vp:| 00000c80 ed 69 3a e7 56 5a 3e 36 20 8c 0d 09 88 4c e3 69 |.i:.VZ>6 ....L.i| 00000c90 3d 37 20 b8 56 5a 3a 78 3d 55 73 28 69 2c 31 29 |=7 .VZ:x=Us(i,1)| 00000ca0 3a 79 3d 55 73 28 69 2c 32 29 3a e6 30 2c 37 3a |:y=Us(i,2):.0,7:| 00000cb0 f0 36 39 2c 78 2c 79 3a e6 30 2c 36 3a ef 35 3a |.69,x,y:.0,6:.5:| 00000cc0 ec 78 2b 31 32 2c 79 2d 31 32 3a f1 3b 69 2d 36 |.x+12,y-12:.;i-6| 00000cd0 3a ef 34 3a ed 69 0d 09 c4 07 cd 3a e1 0d 09 f6 |:.4:.i.....:....| 00000ce0 df dd f2 56 64 3a 69 3d 31 3a c8 95 69 3c 3d 56 |...Vd:i=1:..i<=V| 00000cf0 5a 3a 58 3d 55 72 28 69 2c 31 29 3a 59 3d 55 72 |Z:X=Ur(i,1):Y=Ur| 00000d00 28 69 2c 32 29 3a 5a 3d 55 72 28 69 2c 33 29 3a |(i,2):Z=Ur(i,3):| 00000d10 79 3d 59 2a 20 55 77 28 20 55 6f 25 20 29 20 2d |y=Y* Uw( Uo% ) -| 00000d20 20 5a 20 2a 20 55 76 28 20 55 6f 25 20 29 3a 7a | Z * Uv( Uo% ):z| 00000d30 3d 59 2a 20 55 76 28 20 55 6f 25 20 29 20 2b 20 |=Y* Uv( Uo% ) + | 00000d40 5a 20 2a 20 55 77 28 20 55 6f 25 20 29 20 3a 59 |Z * Uw( Uo% ) :Y| 00000d50 3d 79 3a 5a 3d 7a 3a 78 3d 58 2a 20 55 77 28 20 |=y:Z=z:x=X* Uw( | 00000d60 55 70 25 20 29 20 2b 20 5a 20 2a 20 55 76 28 20 |Up% ) + Z * Uv( | 00000d70 55 70 25 20 29 3a 7a 3d 5a 2a 20 55 77 28 20 55 |Up% ):z=Z* Uw( U| 00000d80 70 25 20 29 20 2d 20 58 20 2a 20 55 76 28 20 55 |p% ) - X * Uv( U| 00000d90 70 25 20 29 20 3a 58 3d 78 3a 5a 3d 7a 3a 78 3d |p% ) :X=x:Z=z:x=| 00000da0 58 2a 20 55 77 28 20 55 71 25 20 29 20 2d 20 59 |X* Uw( Uq% ) - Y| 00000db0 20 2a 20 55 76 28 20 55 71 25 20 29 0d 0a 64 72 | * Uv( Uq% )..dr| 00000dc0 79 3d 58 2a 20 55 76 28 20 55 71 25 20 29 20 2b |y=X* Uv( Uq% ) +| 00000dd0 20 59 20 2a 20 55 77 28 20 55 71 25 20 29 20 3a | Y * Uw( Uq% ) :| 00000de0 58 3d 78 3a 59 3d 79 3a 58 2b 3d 55 6c 3a 59 2b |X=x:Y=y:X+=Ul:Y+| 00000df0 3d 55 6d 3a 5a 2b 3d 55 6e 3a 55 73 28 69 2c 31 |=Um:Z+=Un:Us(i,1| 00000e00 29 3d 28 55 75 2a 58 29 2f 5a 3a 55 73 28 69 2c |)=(Uu*X)/Z:Us(i,| 00000e10 32 29 3d 28 55 75 2a 59 29 2f 5a 3a 55 73 28 69 |2)=(Uu*Y)/Z:Us(i| 00000e20 2c 33 29 3d 5a 3a 69 2b 3d 31 3a ce 3a e1 0d 0a |,3)=Z:i+=1:.:...| 00000e30 dc 66 dd f2 56 66 3a 56 71 3d 28 34 30 2d a9 56 |.f..Vf:Vq=(40-.V| 00000e40 62 24 29 2f 32 3a 56 72 3d 28 34 30 2d a9 56 63 |b$)/2:Vr=(40-.Vc| 00000e50 24 29 2f 32 3a e6 30 2c 31 34 3a ef 35 3a ec 2d |$)/2:.0,14:.5:.-| 00000e60 36 34 30 2b 56 71 2a 33 32 2c 2d 35 31 32 2b 36 |640+Vq*32,-512+6| 00000e70 34 3a f1 56 62 24 3a ec 2d 36 34 30 2b 56 72 2a |4:.Vb$:.-640+Vr*| 00000e80 33 32 2c 2d 35 31 32 2b 33 32 3a f1 56 63 24 3a |32,-512+32:.Vc$:| 00000e90 ef 34 3a e1 0d 0b 40 68 dd f2 56 59 3a f1 8a 31 |.4:...@h..VY:..1| 00000ea0 35 2c 31 34 29 22 20 54 48 45 20 20 45 4e 44 20 |5,14)" THE END | 00000eb0 22 3a f1 8a 31 35 2c 31 35 29 22 2d 2d 2d 2d 2d |":..15,15)"-----| 00000ec0 2d 2d 2d 2d 2d 22 3a f1 8a 31 2c 32 30 29 22 50 |-----":..1,20)"P| 00000ed0 72 65 73 73 20 61 20 6d 6f 75 73 65 20 62 75 74 |ress a mouse but| 00000ee0 74 6f 6e 20 6f 72 20 70 72 65 73 73 20 53 50 41 |ton or press SPA| 00000ef0 43 45 2e 2e 2e 22 3a d6 55 7a 3a e1 0d 0b 90 fb |CE...":.Uz:.....| 00000f00 dd f2 55 62 3a e3 56 73 3d 30 20 b8 32 88 32 3a |..Ub:.Vs=0 .2.2:| 00000f10 50 25 3d 55 61 3a 5b 4f 50 54 20 56 73 3a 2e 55 |P%=Ua:[OPT Vs:.U| 00000f20 64 20 41 44 52 20 72 30 2c 56 74 3a 41 44 52 20 |d ADR r0,Vt:ADR | 00000f30 72 31 2c 56 75 3a 53 57 49 20 22 4f 53 5f 52 65 |r1,Vu:SWI "OS_Re| 00000f40 61 64 56 64 75 56 61 72 69 61 62 6c 65 73 22 3a |adVduVariables":| 00000f50 4c 44 52 20 72 30 2c 56 75 3a 4d 4f 56 20 50 43 |LDR r0,Vu:MOV PC| 00000f60 2c 55 59 3a 2e 55 63 20 44 43 44 20 30 3a 2e 55 |,UY:.Uc DCD 0:.U| 00000f70 65 20 44 43 44 20 30 3a 2e 55 66 20 44 43 44 20 |e DCD 0:.Uf DCD | 00000f80 30 3a 2e 56 74 20 44 43 44 20 31 34 39 3a 44 43 |0:.Vt DCD 149:DC| 00000f90 44 20 2d 31 3a 2e 56 75 20 44 43 44 20 30 3a 2e |D -1:.Vu DCD 0:.| 00000fa0 55 7a 20 4d 4f 56 20 72 30 2c 23 31 39 3a 53 57 |Uz MOV r0,#19:SW| 00000fb0 49 20 22 4f 53 5f 42 79 74 65 22 3a 4c 44 52 20 |I "OS_Byte":LDR | 00000fc0 72 34 2c 55 66 3a 4d 4f 56 20 72 30 2c 23 31 31 |r4,Uf:MOV r0,#11| 00000fd0 32 3a 4d 4f 56 20 72 31 2c 72 34 3a 53 57 49 20 |2:MOV r1,r4:SWI | 00000fe0 22 4f 53 5f 42 79 74 65 22 3a 20 82 20 72 34 2c |"OS_Byte": . r4,| 00000ff0 20 72 34 2c 20 23 33 0d 0c ee fa 4d 4f 56 20 72 | r4, #3....MOV r| 00001000 30 2c 23 31 31 33 3a 4d 4f 56 20 72 31 2c 72 34 |0,#113:MOV r1,r4| 00001010 3a 53 57 49 20 22 4f 53 5f 42 79 74 65 22 3a 53 |:SWI "OS_Byte":S| 00001020 54 52 20 72 34 2c 55 66 3a 4c 44 52 20 72 30 2c |TR r4,Uf:LDR r0,| 00001030 55 63 20 3a 20 4c 44 52 20 72 31 2c 55 65 3a 53 |Uc : LDR r1,Ue:S| 00001040 54 52 20 72 30 2c 55 65 20 3a 20 53 54 52 20 72 |TR r0,Ue : STR r| 00001050 31 2c 55 63 3a 4d 4f 56 20 72 30 2c 23 31 32 3a |1,Uc:MOV r0,#12:| 00001060 53 57 49 20 22 4f 53 5f 57 72 69 74 65 43 22 3a |SWI "OS_WriteC":| 00001070 4d 4f 56 20 50 43 2c 55 59 3a 2e 55 79 20 4c 44 |MOV PC,UY:.Uy LD| 00001080 52 42 20 72 34 2c 5b 72 30 5d 2c 23 31 3a 4c 44 |RB r4,[r0],#1:LD| 00001090 52 42 20 72 35 2c 5b 72 30 5d 2c 23 31 3a 53 55 |RB r5,[r0],#1:SU| 000010a0 42 53 20 72 32 2c 72 32 2c 72 35 3a 4d 4f 56 4c |BS r2,r2,r5:MOVL| 000010b0 54 20 50 43 2c 55 59 3a 2e 56 76 20 53 54 52 42 |T PC,UY:.Vv STRB| 000010c0 20 72 34 2c 5b 72 31 5d 2c 23 31 3a 53 55 42 53 | r4,[r1],#1:SUBS| 000010d0 20 72 35 2c 72 35 2c 23 31 3a 42 4e 45 20 56 76 | r5,r5,#1:BNE Vv| 000010e0 3a 43 4d 50 20 72 32 2c 23 30 3a 42 47 54 20 55 |:CMP r2,#0:BGT U| 000010f0 79 0d 0e 10 2a 4d 4f 56 20 50 43 2c 55 59 3a 2e |y...*MOV PC,UY:.| 00001100 55 78 20 a4 56 77 28 22 54 69 74 6c 2d 44 61 74 |Ux .Vw("Titl-Dat| 00001110 61 22 29 3a 5d 3a ed 56 73 3a e1 0d 0e 9c 17 dd |a"):]:.Vs:......| 00001120 a4 56 78 28 56 79 29 3a 50 25 2b 3d 56 79 3a 3d |.Vx(Vy):P%+=Vy:=| 00001130 56 73 0d 0e ce 67 dd a4 56 77 28 56 7a 24 29 3a |Vs...g..Vw(Vz$):| 00001140 56 7a 24 3d 22 3c 45 78 61 6d 70 6c 65 2d 34 24 |Vz$="<Example-4$| 00001150 44 69 72 3e 2e 44 61 74 61 2d 46 69 6c 65 73 2e |Dir>.Data-Files.| 00001160 22 2b 56 7a 24 3a 57 55 3d 8e 56 7a 24 3a 57 56 |"+Vz$:WU=.Vz$:WV| 00001170 3d a2 20 23 57 55 20 3a d9 23 57 55 3a e7 56 73 |=. #WU :.#WU:.Vs| 00001180 3e 30 20 8c ff 22 4c 6f 61 64 20 22 2b 56 7a 24 |>0 .."Load "+Vz$| 00001190 2b 22 20 22 2b c3 7e 50 25 0d 0e f6 21 50 25 2b |+" "+.~P%...!P%+| 000011a0 3d 57 56 3a 5b 4f 50 54 20 56 73 20 3a 20 41 4c |=WV:[OPT Vs : AL| 000011b0 49 47 4e 20 3a 5d 3a 3d 56 73 0d ff |IGN :]:=Vs..| 000011bc