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