Home » Archimedes archive » Acorn User » AU 1994-09.adf » !StarInfo_Star » Morris/!Dizzy/Source
Morris/!Dizzy/Source
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Acorn User » AU 1994-09.adf » !StarInfo_Star |
Filename: | Morris/!Dizzy/Source |
Read OK: | ✔ |
File size: | 9174 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >Source 20REM by Simon -Henley- Morris 30REM for 32-bit machines, particularly ARM3 40REM (c) AU September 1994 50: 60ON ERROR MODE0:REPORT:PRINT;" at line ";ERL:END 70: 80MODE0:OFF 90: 100SYS "Hourglass_On" 110float=16 120save=FALSE 130num=31 140codelength=160*1024 150DIM code codelength 160: 170FORI%=0 TO codelength-1 STEP4:I%!code=0:NEXT 180: 190PROCassem 200SYS "Hourglass_Off" 210REPEAT:MOUSE x,y,k:UNTILk<>0 OR INKEY-99 220CALLinitialise 230END 240: 250DEFPROCassem 260FORpass=0TO2STEP2:P%=code:L%=codelength+P%:[OPTpass 270B initialise 280 290\ Create our own stack 300.stack ]:P%+=&800:[OPTpass 310.registerdump ]:P%+=&040:[OPTpass 320 330\ ###################################################################### 340 350.initialise STR r0,[pc,#-80] 360 ADR r0,registerdump+4 370 STMIA r0,{r1-r14} 380 SUB r13,r0,#8 390\------------------------------------------------------------------------ 400 SWI 256+22 410 SWI 256+9 420 SWI 256+22 430 SWI 256+137 440 SWI "OS_RemoveCursors" 450 460 BL setcolour 470 BL resetcols 480 BL getvduvars 490 BL newshape 500 BL makenum 510 BL swapscreens 520 BL clearscr \ Clear all screens 530 BL swapscreens \ & Synchronise 540 BL clearscr 550 BL resetcols 560 MOV r0,#16 570.fadethemall BL fadeout 580 SUBS r0,r0,#1 590 BNE fadethemall 600 610 MOV r0,#&400 620 STR r0,shapetimer 630 MOV r0,#16 640 STR r0,fadeinflag 650.mainloop MOV r0,#19 660 SWI "OS_Byte" 670 BL swapscreens 680 BL clearscr 690 LDR r0,shapetimer 700 SUBS r0,r0,#1 710 STR r0,shapetimer 720 BNE carryon 730 LDR r0,timerreset 740 STR r0,shapetimer 750 MOV r0,#16 760 STR r0,fadeoutflag 770 BL resetcols 780.carryon LDR r0,fadeoutflag 790 CMP r0,#0 800 BEQ nofadeout 810 BL fadeout 820 MOV r1,#16 830 SUBS r0,r0,#1 840 STR r0,fadeoutflag 850 BNE nofade 860 STR r1,fadeinflag 870 BL newshape 880 BL makenum 890 B nofade 900.nofadeout LDR r0,fadeinflag 910 CMP r0,#0 920 BEQ nofade 930 BL fadein 940 SUB r0,r0,#1 950 STR r0,fadeinflag 960 970.nofade BL calcall 980 BL shownum 990 BL plotall 1000 1010 MOV r0,#&81 1020 MOV r1,#&B6 1030 MOV r2,#&FF 1040 SWI "XOS_Byte" 1050 CMP r1,#&FF 1060 BEQ checkfades 1070 1080 MOV r3,#360 1090 FNadr(4,sintable) 1100 FNadr(0,vars) 1110 LDR r1,[r0,#28] 1120 CMP r1,#0 1130 BEQ notsinep 1140 LDR r1,[r0,#36] 1150 LDR r2,[r0,#20] 1160 ADD r1,r1,r2 1170 CMP r3,r1,LSR#float 1180 SUBLE r1,r1,#360<<float 1190 STR r1,[r0,#36] 1200 MOV r1,r1,LSR#float 1210 LDR r1,[r4,r1,LSL#2] 1220 MOV r2,#179 1230 MUL r1,r2,r1 1240 ADD r1,r1,#180<<float 1250 STR r1,[r0,#8] 1260 B dotheta 1270 1280.notsinep LDR r1,[r0,#8] 1290 LDR r2,[r0,#20] 1300 ADD r1,r1,r2 1310 CMP r3,r1,LSR#float 1320 SUBLE r1,r1,#360<<float 1330 STR r1,[r0,#8] 1340 1350.dotheta LDR r1,[r0,#32] 1360 CMP r1,#0 1370 BEQ notsinet 1380 LDR r1,[r0,#40] 1390 LDR r2,[r0,#24] 1400 ADD r1,r1,r2 1410 CMP r3,r1,LSR#float 1420 SUBLE r1,r1,#360<<float 1430 STR r1,[r0,#40] 1440 MOV r1,r1,LSR#float 1450 LDR r1,[r4,r1,LSL#2] 1460 MOV r2,#179 1470 MUL r1,r2,r1 1480 ADD r1,r1,#180<<float 1490 STR r1,[r0,#12] 1500 B checkfades 1510 1520.notsinet LDR r1,[r0,#12] 1530 LDR r2,[r0,#24] 1540 ADD r1,r1,r2 1550 CMP r3,r1,LSR#float 1560 SUBLE r1,r1,#360<<float 1570 STR r1,[r0,#12] 1580 1590.checkfades LDR r0,fadeoutflag 1600 CMP r0,#0 1610 BNE checkescape 1620 LDR r0,fadeinflag 1630 CMP r0,#0 1640 BNE checkescape 1650 LDR r1,keypress 1660 CMP r1,#0 1670 BEQ newinput 1680 MOV r0,#129 1690 MOV r1,#&9D 1700 MOV r2,#&FF 1710 SWI "OS_Byte" 1720 CMP r1,#0 1730 STREQ r1,keypress 1740 B checkescape 1750.newinput MOV r0,#129 1760 MOV r1,#&9D 1770 MOV r2,#&FF 1780 SWI "OS_Byte" 1790 CMP r1,#&FF 1800 BNE checkescape 1810 STR r1,keypress 1820 MOV r0,#16 1830 STR r0,fadeoutflag 1840 BL resetcols 1850 LDR r0,timerreset 1860 STR r0,shapetimer 1870 1880.checkescape MOV r0,#129 1890 MOV r1,#&8F 1900 MOV r2,#&FF 1910 SWI "OS_Byte" 1920 CMP r1,#&FF 1930 BNE mainloop 1940 1950.resetforfin MOV r0,#19 1960 SWI "OS_Byte" 1970 BL swapscreens 1980 BL clearscr 1990 MOV r0,#19 2000 SWI "OS_Byte" 2010 BL swapscreens 2020 BL clearscr 2030 2040 MOV r0,#&7C 2050 SWI "XOS_Byte" \ Clear Escape 2060 2070 MOV r0,#19 2080 SWI "OS_Byte" 2090 SWI 256+22 2100 SWI 256+0 2110 MOV r0,#15 2120 MOV r1,#0 2130 MOV r2,#0 2140 SWI "OS_Byte" \ Clear Keyboard Buffer 2150\------------------------------------------------------------------------ 2160.return FNadr(0,registerdump) 2170 LDMIA r0,{r0-r13,pc}^ 2180 2190.keypress EQUD 0 2200.shapetimer EQUD 0 2210.timerreset EQUD 500 \ 10 seconds 2220 2230.fadeoutflag EQUD 0 \ 0-nothing 1-16 fadecount 2240.fadeinflag EQUD 0 2250 2260.getvduvars STMFD r13!,{r0-r1,r14} 2270 MOV r0,#112 2280 MOV r1,#1 2290 SWI "OS_Byte" 2300 MOV r0,#113 2310 MOV r1,#2 2320 SWI "OS_Byte" 2330 ADR r0,screenbases 2340 MOV r1,r0 2350 SWI "OS_ReadVduVariables" 2360 LDMFD r13!,{r0,r1,pc} 2370 2380.bank EQUD 1 2390.screenbases EQUD 148:EQUD 149:EQUD -1 2400 2410.swapscreens STMFD r13!,{r0,r1,r3,r14} 2420 ADR r14,bank 2430 MOV r0,#113 2440 LDR r1,[r14] 2450 EOR r3,r1,#3 2460 SWI "OS_Byte" 2470 STR r3,[r14] 2480 LDR r12,[r14,r3,LSL#2] 2490 LDMFD r13!,{r0,r1,r3,pc} 2500 2510\ Each ball is 20 by 16 and has eight versions for each pixel offset 2520\ Mask data first followed by 7 different colours 2530\ Each set of sprites is &600 in length. 2540 2550.balldata ]:P%+=&2A00:[OPTpass 2560.plotall STMFD r13!,{r0-r11,r14} 2570 FNadr(10,balldata) 2580 FNadr(11,zorder) \ Address of plot order 2590 FNadr(14,dest-16) 2600 LDR r9,nocoords 2610 ADD r11,r11,r9,LSL#2 2620 SUB r11,r11,#4 2630.mainloop LDR r7,[r11],#-4 2640 ADD r7,r14,r7,LSL#4 2650 LDMIA r7,{r0,r1,r4,r2} 2660 MOV r2,r4 2670 2680 AND r4,r0,#7 2690 BIC r0,r0,#7 2700 ADD r0,r12,r0,LSR#1 2710 ADD r0,r0,r1,LSL#7 2720 ADD r0,r0,r1,LSL#5 \ r0 is screen addr 2730 2740 ADD r1,r10,r4,LSL#7 2750 ADD r1,r1,r4,LSL#6 \ r1 is mask addr 2760 ADD r2,r1,r2 \ r2 is ball addr 2770 ]:FORI%=1TO16:[OPTpass 2780 LDMIA r0,{r3-r5} \ Speedy mask and plot 2790 LDMIA r1!,{r6-r8} 2800 AND r3,r3,r6 2810 AND r4,r4,r7 2820 AND r5,r5,r8 2830 LDMIA r2!,{r6-r8} 2840 ORR r3,r3,r6 2850 ORR r4,r4,r7 2860 ORR r5,r5,r8 2870 STMIA r0,{r3-r5} 2880 ADD r0,r0,#160 2890 ]:NEXT:[OPTpass 2900 SUBS r9,r9,#1 2910 BNE mainloop 2920 LDMFD r13!,{r0-r11,pc} 2930 2940.vars 2950.nocoords EQUD 0 2960.coordsad EQUD 0 2970.phi EQUD 0 2980.theta EQUD 0 2990.dataadd EQUD (dest-vars) 3000 3010.phiinc EQUD 0 3020.thetainc EQUD 0 3030.phisin EQUD 0 3040.thetasin EQUD 0 3050.phiangle EQUD 0 3060.theangle EQUD 0 3070 3080\ Display number of balls on the screen 3090.shownum STMFD r13!,{r0-r6,r12,r14} 3100 ADD r12,12,#100 3110 ADR r0,bits 3120 LDMIA r0!,{r1-r6}:STMIA r12,{r1-r3} 3130 ADD r12,12,#160:STMIA r12,{r4-r6} 3140 ADD r12,12,#160:LDMIA r0!,{r1-r6}:STMIA r12,{r1-r3} 3150 ADD r12,12,#160:STMIA r12,{r4-r6} 3160 ADD r12,12,#160:LDMIA r0!,{r1-r6}:STMIA r12,{r1-r3} 3170 ADD r12,12,#160:STMIA r12,{r4-r6} 3180 ADD r12,12,#160:LDMIA r0!,{r1-r6}:STMIA r12,{r1-r3} 3190 ADD r12,12,#160:STMIA r12,{r4-r6} 3200 LDMFD r13!,{r0-r6,r12,pc} 3210 3220.bits ]:P%+=4*8*3:[OPTpass 3230 3240\ Create screen data for a number, rather than use OS 3250.makenum STMFD r13!,{r0-r12,r14} 3260 FNldr(0,nocoords) 3270 ADR r1,buffer 3280 MOV r2,#16 3290 SWI "OS_ConvertCardinal2" 3300 LDR r2,[r0] 3310 SUB r1,r1,r0 3320 CMP r1,#1 3330 MOVEQ r2,r2,LSL#16 \ Maximum string length of 3 (0-999) 3340 ORREQ r2,r2,#&30 3350 ORREQ r2,r2,#&3000 \ Add leading zeros if required 3360 CMP r1,#2 3370 MOVEQ r2,r2,LSL#8 3380 ORREQ r2,r2,#&30 3390 MOV r1,#3 3400 ADR r0,bits 3410 ADR r3,fontdata 3420.numbloop AND r4,r2,#&FF 3430 MOV r2,r2,LSR#8 3440 SUB r4,r4,#48 3450 ADD r4,r3,r4,LSL#5 \ *32 3460 LDMIA r4,{r5-r12} 3470 MOV r4,r0 3480 STR r5,[r4],#12:STR r6,[r4],#12 3490 STR r7,[r4],#12:STR r8,[r4],#12 3500 STR r9,[r4],#12:STR r10,[r4],#12 3510 STR r11,[r4],#12:STR r12,[r4],#12 3520 ADD r0,r0,#4 3530 SUBS r1,r1,#1 3540 BNE numbloop 3550 LDMFD r13!,{r0-r12,pc} 3560 3570.buffer ]:P%+=16:[OPTpass 3580.fontdata ]:P%+=&140:[OPTpass 3590 3600]:count=0:coords=1:cp=2:st=3:sp=4:ct=5:nst=6:nsp=7:x=8:y=9:z=10:frac=11 3610newx=12:newy=x:togo=14:temp=12:[OPTpass 3620 3630\ This routine transforms coordinates around 2 axis, and adds perspective 3640.calcall STMFD r13!,{r0-r12,r14} 3650 ADR r4,vars 3660 \ get nc,cordsad,phi,theta,togo 3670 LDMIA r4,{r0,r1,r2,r3,r14} 3680 ADD r14,r14,r4 3690 ADR r6,sintable 3700 ADD r7,r6,#&168 \ &168 = 90*4 (Cos derived by Sin+90 ) 3710 MOV r2,r2,LSR#float 3720 MOV r3,r3,LSR#float 3730 LDR sp,[r6,r2,LSL#2] \ r4 = sin phi 3740 LDR ct,[r7,r3,LSL#2] \ r5 = cos theta 3750 LDR st,[r6,r3,LSL#2] \ r3 = sin theta 3760 LDR cp,[r7,r2,LSL#2] \ r2 = cos phi 3770 RSB nst,st,#0 \nst = -st 3780 RSB nsp,sp,#0 \nsp = -sp 3790 3800 ADD frac,PC,#(fractions-8-P%+255*4)MOD256 3810 ADD frac,frac,#((fractions-8-P%+255*4)DIV256)*&100 3820 3830.calcs LDMIA coords !,{x,y,z} \ x, y, z and (we'll get colour later) 3840 MUL newx,y,nst 3850 MLA newx,x,ct,newx \ newx = ct*x-st*y 3860 3870 MUL y,ct,y 3880 MLA y,x,st,y \ y = st*x+ct*y 3890 MOV y,y,ASR#float 3900 3910 MUL newy,z,nsp 3920 MLA newy,y,cp,newy \ newy = cp*y-sp*z 3930 3940 MUL z,cp,z 3950 MLA z,sp,y,z \ z = sp*y+cp*z 3960 \ x=newx y=newy z=z 3970 MOV y,newy,ASR#float 3980 MOV x,newx,ASR#float 3990 MOV z,z,ASR#float 4000 MOV temp,z 4010 4020 LDR temp,[frac,temp,LSL#2] 4030 4040 MUL x,temp,x 4050 MUL y,temp,y 4060 MOV temp,#128 \ Origin 128,128 4070 ADD x,temp,x,ASR#float 4080 ADD y,temp,y,ASR#float 4090 LDR temp,[coords],#4 4100 STMIA togo !,{x,y,z,temp} 4110 SUBS count,count,#1 4120 BNE calcs 4130 B sort 4140 4150.sintable ]:P%+=360*8:[OPTpass 4160.fractions ]:P%+=514*4:[OPTpass 4170 4180.regclear EQUD0:EQUD0:EQUD0:EQUD0:EQUD0:EQUD0:EQUD0:EQUD0 4190 EQUD0:EQUD0:EQUD0:EQUD0:EQUD0:EQUD0:EQUD0:EQUD0 4200 4210\ Heres a fun routine! This one is a 'bin sort', and needs to be very quick 4220.sort FNadr(0,regclear) 4230 LDMIA r0,{r3-r12} 4240 FNadr(0,zlist) 4250 MOV r2,r0 4260 MOV r1,#16 4270.resetlp STMIA r0!,{r3-r12} \ 64 lots of ten. (trim later) 4280 STMIA r0!,{r3-r12} 4290 SUBS r1,r1,#1 4300 BNE resetlp 4310 FNldr(0,nocoords) \ r0 is number of coordinates to sort 4320 FNadr(1,dest+8) \ r1 is address of first 'z' coordinate. 4330 FNadr(3,spare) \ r3 is adr of spare (r2 is zlist addr) 4340 FNadr(12,zorder) \r12 is address of ordered list 4350 ADD r0,r0,#1 \ to compensate-data doesn't begin at zero 4360 MOV r4,#1 \ r4 = count 4370 MOV r5,#1 \ r5 = index for items (0-noofcoords) 4380 MOV r10,#&10000 4390 SUB r10,r10,#1 \ R10 = &FFFF (mask for data) 4400.sortit1 LDR r6,[r1],#16 \ get z coord 4410 ADD r6,r6,#160 \ add 160 (gives us a range of +- 160) 4420 LDR r7,[r2,r6,LSL#2] \ get zlist(zc) 4430 MOVS r7,r7 4440 STREQ r5,[r2,r6,LSL#2] \ store index if nowt there 4450 BEQ next 4460 AND r8,r7,r10,LSL#16 \ r8 is pointer 4470 AND r9,r7,r10 \ r9 is data 4480 ORR r9,r9,r4,LSL#16 \ r9 is now |count|data| 4490 STR r9,[r2,r6,LSL#2] \ store r9 in zlist(zc) 4500 ORR r9,r5,r8 \ r9 is now |index|pointer| 4510 STR r9,[r3,r4,LSL#2] \ store r9 in spare(count) 4520 ADD r4,r4,#1 \ increment count 4530.next ADD r5,r5,#1 \ increment index 4540 CMP r5,r0 4550 BNE sortit1 \ Thats the easy bit folks! 4560 \ registers 4-11 are uncommitted 4570 \ register 0 is noofcoords (i%) 4580 MOV r4,#320 \ r4 is maxelements 4590.sortit2 LDR r5,[r2],#4 \ Get zlist(count) 4600 MOVS r5,r5 4610 BEQ next2 \ Ignore if zero 4620 ANDS r6,r5,r10,LSL#16 \ r6 is pointer. Is it single? 4630 STREQ r5,[r12],#4 \ Yes. Store in zorder. 4640 BEQ next2 \ Skip, and get next 4650 AND r7,r5,r10 \ r7 is data (coordinate number) 4660.afew STR r7,[r12],#4 \ store data in zorder 4670 LDR r6,[r3,r6,LSR#14]\ get new pointer|data from spare 4680 AND r7,r6,r10 \ r7 is new data 4690 ANDS r6,r6,r10,LSL#16 \ r6 is new pointer 4700 BNE afew \ continue until pointer is zero 4710 STR r7,[r12],#4 \ store data in zorder 4720.next2 SUBS r4,r4,#1 \ until all done. 4730 BNE sortit2 4740 LDMFD r13!,{r0-r12,pc} 4750 4760.dest ]:P%+=640*16:[OPTpass 4770.zlist ]:P%+=320*4:[OPTpass \ 320 means coordinates from -160 to 159. 4780.spare ]:P%+=640*4:[OPTpass 4790.zorder ]:P%+=640*4:[OPTpass 4800 4810.newshape STMFD r13!,{r0-r2,r14} 4820 ADR r0,shapetable 4830 LDR r1,[r0,#-4] 4840 ADD r2,r1,#1 4850 CMP r2,#(num+1) \ Number of shapes 4860 MOVEQ r2,#0 4870 STR r2,[r0,#-4] 4880 LDR r2,[r0,r1,LSL#5]! \ address 4890 ADD r2,r2,r0 4900 LDR r1,[r0,#4] \ number of coords 4910 FNadr(14,vars) 4920 STR r1,[r14] \ nc 4930 STR r2,[r14,#4] \ address 4940 LDR r1,[r0,#8] 4950 STR r1,[r14,#8] \ phi 4960 STR r1,[r14,#36] \ angle 4970 LDR r1,[r0,#12] 4980 STR r1,[r14,#12] \ theta 4990 STR r1,[r14,#40] \ angle 5000 LDR r1,[r0,#16] 5010 STR r1,[r14,#20] \ phi inc 5020 LDR r1,[r0,#20] 5030 STR r1,[r14,#24] \ theta inc 5040 LDR r1,[r0,#24] 5050 STR r1,[r14,#28] \ phi flag 5060 LDR r1,[r0,#28] 5070 STR r1,[r14,#32] \ theta flag 5080 LDMFD r13!,{r0-r2,pc} 5090 5100.shapenum EQUD 0 5110 5120.shapetable ]:P%+=32*32:[OPTpass \ address, number of coords 5130.coords ]:P%+=7000*16:[OPTpass \ *16 = !x , !y , !z, !colour 5140 5150 \ IMPORTANT NOTE: 5160 \ The 7000 above represents the total number of dots required. 5170 \ If you alter any of the shapes, make sure that this value 5180 \ is equal to or above to the total amount of coordinates. 5190 \ If you increase this value, be sure to adjust the amount of 5200 \ space reserved for the code in the beginning of the program. 5210 5220.zeroreg DCD0:DCD0:DCD0:DCD0:DCD0:DCD0:DCD0:DCD0:DCD0:DCD0:DCD0:DCD0:DCD0 5230 5240.clearscr STMFD r13!,{r0-r12,r14} 5250 ADR r0,zeroreg 5260 LDMIA r0!,{r0-r11,r14} 5270 ]:FORI%=1TO787:[OPTpass 5280 STMIA r12!,{r0-r11,r14} 5290 ]:NEXT:[OPTpass 5300 STMIA r12!,{r0-r8} 5310 LDMFD r13!,{r0-r12,pc} 5320 5330.setcolour STMFD r13!,{r0-r2,r14} 5340 ADR r1,palette 5350 MOV r2,#96 5360.colloop LDRB r0,[r1],#1 5370 SWI "OS_WriteC" 5380 SUBS r2,r2,#1 5390 BNE colloop 5400 LDMFD r13!,{r0-r2,pc} 5410 5420.palette ]:P%+=120:[OPTpass 5430.colreset ]:P%+=16*12:[OPTpass 5440.colfade ]:P%+=16*12:[OPTpass 5450 5460.resetcols STMFD r13!,{r0-r4,r14} 5470 ADR r0,colreset 5480 ADR r14,colfade 5490 MOV r4,#16 5500.resetloop LDMIA r0!,{r1-r3} 5510 STMIA r14!,{r1-r3} 5520 SUBS r4,r4,#1 5530 BNE resetloop 5540 LDMFD r13!,{r0-r4,pc} 5550 5560\ Sorry about the hardware access folks, but VDU19 was just too slow. 5570.fadeout STMFD r13!,{r0-r7,r14} 5580 SWI "OS_EnterOS" 5590 MOV r7,#&3400000 5600 ADR r5,colfade 5610 MOV r6,#15 5620.fadeoloop LDMIA r5,{r1-r3} 5630 ORR r0,r1,r6,LSL#26 5640 ORR r0,r0,r2,LSL#4 5650 ORR r0,r0,r3,LSL#8 5660 STR r0,[r7] 5670 SUBS r1,r1,#1:MOVMI r1,#0 5680 SUBS r2,r2,#1:MOVMI r2,#0 5690 SUBS r3,r3,#1:MOVMI r3,#0 5700 STMIA r5!,{r1-r3} 5710 SUBS r6,r6,#1 5720 BPL fadeoloop 5730 TEQP pc,#0 5740 MOVNV r0,r0 5750 LDMFD r13!,{r0-r7,pc} 5760 5770.fadein STMFD r13!,{r0-r11,r14} 5780 SWI "OS_EnterOS" 5790 MOV r11,#&3400000 5800 ADR r5,colfade 5810 ADR r7,colreset 5820 MOV r6,#15 5830.fadeiloop LDMIA r5,{r1-r3} 5840 LDMIA r7!,{r8-r10} 5850 ORR r0,r1,r6,LSL#26 5860 ORR r0,r0,r2,LSL#4 5870 ORR r0,r0,r3,LSL#8 5880 STR r0,[r11] 5890 ADD r1,r1,#1:CMP r1,r8:MOVGE r1,r8 5900 ADD r2,r2,#1:CMP r1,r9:MOVGE r2,r9 5910 ADD r3,r3,#1:CMP r1,r10:MOVGE r3,r10 5920 STMIA r5!,{r1-r3} 5930 SUBS r6,r6,#1 5940 BPL fadeiloop 5950 TEQP pc,#0 5960 MOVNV r0,r0 5970 LDMFD r13!,{r0-r11,pc} 5980 5990]:NEXT 6000PRINT"Code from &";~code;"-&";~P%;" (";(P%-code)DIV1024;"K)." 6010OSCLI"LOAD <Dizzy$Dir>.RawBall9 "+STR$~balldata 6020OSCLI"LOAD <Dizzy$Dir>.Palette "+STR$~palette 6030OSCLI"LOAD <Dizzy$Dir>.Font "+STR$~fontdata 6040 6050M%=palette:N%=colreset+15*12 6060FORI%=1TO16:R%=M%?3:G%=M%?4:B%=M%?5 6070!N%=R%DIV16:N%!4=G%DIV16:N%!8=B%DIV16:N%-=12:M%+=6 6080NEXT 6090 6100M%=sintable:FORI%=0 TO 449:!M%=SIN(RAD(I%))*2^float:M%+=4:NEXT 6110M%=fractions:FORI%=-255TO255:!M%=192*(1/(I%+256))*2^float:M%+=4:NEXT 6120 6130scale=1 6140 6150M%=coords:N%=shapetable 6160totaldots=0 6170cnt%=num 6180FORcnt%=0 TO num 6190tstart=0:pstart=0:tinc=1:pinc=1:tsine=0:psine=0 6200!N%=M%-N% 6210!nocoords=FNshape(cnt%):N%!4=!nocoords 6220N%!8=pstart*2^float:N%!12=tstart*2^float 6230N%!16=pinc*2^float:N%!20=tinc*2^float 6240N%!24=psine:N%!28=tsine:N%+=32 6250PRINT;!nocoords 6260totaldots+=!nocoords 6270NEXT 6280PRINT"total coordinates ";totaldots;". Press space bar...." 6290IFsave THEN 6300OSCLI"Save <Dizzy$Dir>.!RunImage "+STR$~code+" "+STR$~P% 6310*SETTYPE <Dizzy$Dir>.!RunImage FF8 6320ENDIF 6330ENDPROC 6340 6350DEFFNadr(dest,addr) 6360IFpass=0 THENaddr=P% 6370IFaddr<P% THEN 6380addr=P%-addr+8 6390IFaddr>&FFFF THENVDU7:PRINT"ILLEGAL ADR ATTEMPT.":END 6400[OPTpass:SUB dest,pc,#(addr AND&FF00):SUB dest,dest,#(addr AND&FF):] 6410ELSE 6420addr=addr-P%-8 6430IFaddr>&FFFF THENVDU7:PRINT"ILLEGAL ADR ATTEMPT.":END 6440[OPTpass:ADD dest,pc,#(addr AND&FF00):ADD dest,dest,#(addr AND&FF):] 6450ENDIF 6460=0 6470 6480DEFFNldr(dest,addr) 6490IFpass=0 THENaddr=P% 6500IFaddr<P% THEN 6510addr=P%-addr+8 6520IFaddr>&FFFF THENVDU7:PRINT"ILLEGAL ADR ATTEMPT.":END 6530[OPTpass:SUB dest,pc,#(addr AND&FF00):LDR dest,[dest,#-(addr AND&FF)]:] 6540ELSE 6550addr=addr-P%-8 6560IFaddr>&FFFF THENVDU7:PRINT"ILLEGAL ADR ATTEMPT.":END 6570[OPTpass:ADD dest,pc,#(addr AND&FF00):LDR dest,[dest,#(addr AND&FF)]:] 6580ENDIF 6590=0 6600 6610DEF FNshape(shape) 6620dots=0 6630CASE shape OF 6640 WHEN 0: 6650tstart=0:pstart=0:tinc=1:pinc=2:tsine=0:psine=0 6660scale=1:PRINT"'Hello'";TAB(15);"Scale: ";scale;TAB(30);"..."; 6670 DIM blk 100 6680 text$="Hello" 6690 a=6:m=-((LEN(text$)*8)/2) 6700C%=0 6710 FOR b=1 TO LENtext$ 6720C%+=&600:IFC%=&600*7 THENC%=&600 6730 blk?0=ASCMID$(text$,b) 6740 SYS "OS_Word",10,blk 6750FOR c=0 TO 7:B%=blk?(c+1):FOR d=0 TO 7 6760IF(B% AND 2^d)<>0 THENPROCdot(((7-d)+m)*a,(c-4)*a*2,-20) 6770NEXT:NEXT:m+=8:NEXT 6780 WHEN 1: 6790tstart=0:pstart=0:tinc=1:pinc=1:tsine=1:psine=0 6800step=17:limit=51 6810scale=1.4:PRINT"Box";TAB(15);"Scale: ";scale;TAB(30);"..."; 6820 FOR a=-limit TO limit STEP step 6830 FOR b=-limit TO limit STEP step 6840C%=&600*1 6850 PROCdot(a,b,-limit) 6860C%=&600*2 6870 PROCdot(a,b,limit) 6880 NEXT 6890 NEXT 6900 FOR a=(-limit+step) TO (limit-step) STEP step 6910 FOR b=(-limit+step) TO (limit-step) STEP step 6920C%=&600*3 6930 PROCdot(a,-limit,b) 6940C%=&600*4 6950 PROCdot(a,limit,b) 6960 NEXT 6970 NEXT 6980 FOR a=(-limit+step) TO (limit-step) STEP step 6990 FOR b=-limit TO limit STEP step 7000C%=&600*5:PROCdot(-limit,b,a) 7010C%=&600*6:PROCdot(limit,b,a) 7020NEXT:NEXT 7030 WHEN 2: 7040tstart=0:pstart=0:tinc=2:pinc=2:tsine=0:psine=0 7050scale=1:PRINT"Rings";TAB(15);"Scale: ";scale;TAB(30);"..."; 7060 FOR a=0 TO 350 STEP 10 7070 cos=80*COSRADa 7080 sin=80*SINRADa 7090C%=&600 7100 PROCdot(100,cos,sin) 7110C%=&600*2 7120 PROCdot(-100,cos,sin) 7130C%=&600*3 7140 PROCdot(cos,100,sin) 7150C%=&600*4 7160 PROCdot(cos,-100,sin) 7170C%=&600*5 7180 PROCdot(cos,sin,100) 7190C%=&600*6 7200 PROCdot(cos,sin,-100) 7210 NEXT 7220 WHEN 3: 7230tstart=0:pstart=0:tinc=2:pinc=1:tsine=0:psine=0 7240scale=1:C%=&600*6::PRINT"Bulbs";TAB(15);"Scale: ";scale;TAB(30);"..."; 7250 FOR r=20 TO 60 STEP 20 7260 b=r+40 7270step2=20:IFr<50 THENstep2=step2*2 7280 FOR a=0 TO 350 STEP step2 7290 cos=r*COSRADa 7300 sin=r*SINRADa 7310 PROCdot(b,cos,sin) 7320 PROCdot(-b,cos,sin) 7330 PROCdot(cos,b,sin) 7340 PROCdot(cos,-b,sin) 7350 PROCdot(cos,sin,b) 7360 PROCdot(cos,sin,-b) 7370 NEXT 7380 NEXT 7390 WHEN 4: 7400tstart=0:pstart=30:tinc=1:pinc=1:tsine=1:psine=1 7410scale=0.7:PRINT"Tube";TAB(15);"Scale: ";scale;TAB(30);"..."; 7420col=1:inc=1 7430 FOR a=-100 TO 100 STEP 20 7440C%=&600*col 7450IFcol=4 THENC%=&600*5 7460IFcol=5 THENC%=&600*4 7470 FOR b=0 TO 345 STEP 18 7480 PROCdot(80*COSRADb,a,80*SINRADb) 7490 NEXT 7500col+=inc:IFcol=6 THENinc=-1 7510 NEXT 7520 WHEN 5: 7530tstart=0:pstart=90:tinc=2:pinc=1:tsine=1:psine=1 7540scale=1::PRINT"Girders";TAB(15);"Scale: ";scale;TAB(30);"..."; 7550C%=&600*3 7560 FOR a=-120 TO -30 STEP 10 7570 FOR b=0 TO 300 STEP 90 7580 cos=30*COSRADb 7590 sin=30*SINRADb 7600 PROCdot(a,cos,sin) 7610 PROCdot(cos,a,sin) 7620 PROCdot(cos,sin,a) 7630 PROCdot(-a,cos,sin) 7640 PROCdot(cos,-a,sin) 7650 PROCdot(cos,sin,-a) 7660 NEXT 7670 NEXT 7680 WHEN 6: 7690tstart=0:pstart=0:tinc=1:pinc=1:tsine=0:psine=1 7700scale=0.7::PRINT"Vase";TAB(15);"Scale: ";scale;TAB(30);"..."; 7710C%=&600*4 7720 FOR a=-1 TO .9 STEP .1 7730 r=100-70*SINRAD(a*90+90) 7740 FOR b=0 TO 340 STEP 24 7750 PROCdot(r*COSRADb,a*100,r*SINRADb) 7760 NEXT 7770 NEXT 7780 WHEN 7: 7790tstart=0:pstart=90:tinc=2:pinc=2:tsine=0:psine=0 7800scale=1:C%=&600*4:PRINT"Tyre";TAB(15);"Scale: ";scale;TAB(30);"..."; 7810 FOR a=0 TO 340 STEP 20 7820 FOR b=0 TO 350 STEP 24 7830 r=70+30*COSRADb 7840 PROCdot(r*COSRADa,30*SINRADb,r*SINRADa) 7850 NEXT 7860 NEXT 7870 WHEN 8: 7880tstart=0:pstart=0:tinc=1:pinc=4:tsine=1:psine=0 7890scale=1 7900PRINT"DNA";TAB(15);"Scale: ";scale;TAB(30);"..."; 7910C%=&600 7920 FOR a=0 TO 300 STEP 60 7930 FOR b=0 TO 320 STEP 40 7940 r=70+25*COSRADb 7950 PROCdot(r*COSRADa-35,25*SINRADb,r*SINRADa) 7960 PROCdot(r*COSRADa+35,r*SINRADa,25*SINRADb) 7970 NEXT 7980C%+=&600 7990IFC%=&600*8 THENC%=&600 8000 NEXT 8010 WHEN 9: 8020tstart=0:pstart=120:tinc=1:pinc=0:tsine=1:psine=0 8030scale=1:C%=&600 8040PRINT"Music Grid";TAB(15);"Scale: ";scale;TAB(30);"..."; 8050size=10:C%=&600 8060add=-size*11:FORn=1TO8 8070FORa=-1TO1:FORb=-1TO1 8080PROCdot(a*size,b*size+add,0):NEXT:NEXT 8090add+=size*3:C%+=&600 8100IFC%=&600*4 THENC%=&600*5 8110IFC%=&600*6 THENC%=&600*1 8120NEXT 8130C%=&600*4:FORa=-2TO2:FORb=-13TO12:PROCdot(a*size,b*size,-size):NEXT:NEXT 8140 8150WHEN 10: 8160tstart=0:pstart=90:tinc=1:pinc=1:tsine=0:psine=1 8170scale=1:C%=&600 8180PRINT"Grid Sphere";TAB(15);"Scale: ";scale;TAB(30);"..."; 8190size=100:step=10 8200C%=&600*2 8210PROCdot(0,0,size):PROCdot(0,0,-size) 8220PROCdot(size,0,0):PROCdot(-size,0,0) 8230PROCdot(0,size,0):PROCdot(0,-size,0) 8240FORi%=step TO 180-step STEP step 8250s=SIN(RAD(i%))*size:c=COS(RAD(i%))*size 8260C%=&600*1:PROCdot(s,c,0):PROCdot(-s,c,0) 8270C%=&600*3:PROCdot(0,s,c):PROCdot(0,-s,c) 8280C%=&600*4:PROCdot(s,0,c):PROCdot(-s,0,c) 8290NEXT 8300WHEN 11: 8310tstart=0:pstart=0:tinc=1:pinc=1:tsine=1:psine=0 8320scale=1:C%=&600*4 8330PRINT"Whole Sphere";TAB(15);"Scale: ";scale;TAB(30);"..."; 8340size=100:step=15 8350FORa%=0 TO 359 STEP step 8360s=SIN(RAD(a%)):c=COS(RAD(a%)) 8370FORi%=step*2 TO 180-step*2 STEP step 8380x=SIN(RAD(i%))*size:y=COS(RAD(i%))*size 8390PROCdot(x*c,y,x*s):C%=C% EOR &3C00 8400NEXT:NEXT 8410C%=&600:FORi%=-size-step TO size+step STEPstep 8420PROCdot(0,i%,0):NEXT 8430WHEN 12: 8440tstart=0:pstart=0:tinc=1:pinc=1:tsine=0:psine=0 8450scale=1.5 8460PRINT"Random";TAB(15);"Scale: ";scale;TAB(30);"..."; 8470FOR a=1TO270 8480C%=&600*RND(6) 8490C%=&600 8500PROCdot(RND(100)-50,RND(100)-50,RND(100)-50) 8510NEXT 8520 WHEN 13: 8530tstart=0:pstart=0:tinc=4:pinc=1:tsine=0:psine=1 8540scale=1.5 8550PRINT"Circular Pegs";TAB(15);"Scale: ";scale;TAB(30);"..."; 8560C%=&600*4 8570 FOR a=-80 TO -30 STEP 20 8580 FOR b=0 TO 330 STEP 30 8590 cos=30*COSRADb 8600 sin=30*SINRADb 8610C%=&600*1 8620 PROCdot(a,cos,sin) 8630C%=&600*2 8640 PROCdot(cos,a,sin) 8650C%=&600*3 8660 PROCdot(cos,sin,a) 8670C%=&600*4 8680 PROCdot(-a,cos,sin) 8690C%=&600*5 8700 PROCdot(cos,-a,sin) 8710C%=&600*6 8720 PROCdot(cos,sin,-a) 8730 NEXT 8740 NEXT 8750 8760WHEN 14: 8770tstart=0:pstart=315:tinc=2:pinc=1:tsine=0:psine=1 8780scale=1.4:PRINT"'Arm'";TAB(15);"Scale: ";scale;TAB(30);"..."; 8790 DIM blk 100 8800 text$="ARM" 8810 a=6:m=-((LEN(text$)*8)/2) 8820 FOR b=1 TO LENtext$ 8830 blk?0=ASCMID$(text$,b) 8840 SYS "OS_Word",10,blk 8850FOR c=0 TO 6:B%=blk?(c+1):K%=B% EOR -1:FOR d=0 TO 7 8860C%=&600*2:IF(B% AND 2^d)<>0 THENPROCdot(((7-d)+m)*a,(c-4)*a*2,0) 8870IF(K% AND 2^d)<>0 THENC%=&600*4 ELSEC%=&600*1 8880PROCdot(((7-d)+m)*a,(c-4)*a*2,40) 8890NEXT:NEXT:m+=8:NEXT 8900 8910WHEN 15: 8920tstart=0:pstart=270:tinc=1:pinc=0:tsine=1:psine=0 8930scale=1.3:PRINT"'Henley'";TAB(15);"Scale: ";scale;TAB(30);"..."; 8940 DIM blk 100 8950 text$="Henley " 8960 a=70:m=360/(LEN(text$)*8) 8970angle=0 8980 FOR b=LENtext$ TO 1 STEP -1 8990 blk?0=ASCMID$(text$,b) 9000 SYS "OS_Word",10,blk 9010FOR c=0 TO 7:sin=SIN(RAD(angle))*a:cos=COS(RAD(angle))*a 9020FOR d=0 TO 7:B%=blk?(d+1) 9030C%=&600*6 9040IF(B% AND 2^c)<>0 THENPROCdot(sin,cos,(d-4)*11):C%=&600*4:PROCdot(SIN(RAD(angle+180))*a*0.8,COS(RAD(angle+180))*a*0.8,(d-4)*10) 9050NEXT:angle-=m:NEXT:NEXT 9060WHEN 16: 9070tstart=0:pstart=270:tinc=2:pinc=0:tsine=0:psine=0 9080scale=1:PRINT"RISC";TAB(15);"Scale: ";scale;TAB(30);"..."; 9090 DIM blk 100 9100 text$="risc" 9110 a=70:m=360/(LEN(text$)*8) 9120angle=0 9130 FOR b=LENtext$ TO 1 STEP -1 9140 blk?0=ASCMID$(text$,b) 9150 SYS "OS_Word",10,blk 9160FOR c=0 TO 7:sin=SIN(RAD(angle))*a:cos=COS(RAD(angle))*a 9170FOR d=0 TO 7:B%=blk?(d+1) 9180C%=&600*2 9190IF(B% AND 2^c)<>0 THEN 9200PROCdot(sin,cos,(d-4)*11) 9210C%=&600*1:PROCdot(sin*0.6,cos*0.6,(d-4)*10) 9220ELSE 9230C%=&600*4:PROCdot(sin*0.6,cos*0.6,(d-4)*10) 9240ENDIF 9250NEXT:angle-=m:NEXT:NEXT 9260WHEN 17: 9270tstart=0:pstart=90:tinc=2:pinc=0:tsine=1:psine=0 9280scale=1.4:PRINT"Spiral";TAB(15);"Scale: ";scale;TAB(30);"..."; 9290k=1:angle=0 9300FORzangle=-80 TO 80 STEP 1:C%=&600*k:k+=1:IFk=7 THENk=1 9310PROCdot(SIN(RAD(angle))*40,COS(RAD(angle))*40,zangle) 9320angle+=10:NEXT 9330WHEN 18: 9340tstart=10:pstart=0:tinc=1:pinc=2:tsine=0:psine=0 9350scale=1.4:PRINT"House";TAB(15);"Scale: ";scale;TAB(30);"..."; 9360size=10 9370RESTORE+11 9380FORyc%=0TO8:READ f$,l$,b$,r$ 9390FORxc%=0TOLEN(f$)-1:C%=(ASC(MID$(f$,xc%+1,1))-48)*&600 9400PROCdot((xc%-3)*size,(yc%-4)*size,size*2):NEXT 9410FORxc%=0TOLEN(b$)-1:C%=(ASC(MID$(b$,xc%+1,1))-48)*&600 9420PROCdot((xc%-3)*size,(yc%-4)*size,-size*2):NEXT 9430FORxc%=0TOLEN(l$)-1:C%=(ASC(MID$(l$,xc%+1,1))-48)*&600 9440PROCdot(-size*4,(yc%-4)*size,(xc%-2)*size):NEXT 9450FORxc%=0TOLEN(r$)-1:C%=(ASC(MID$(r$,xc%+1,1))-48)*&600 9460PROCdot(size*4,(yc%-4)*size,(xc%-2)*size):NEXT 9470NEXT 9480FORj=0TO2:READ b$:FORxc%=0TOLEN(b$)-1:C%=(ASC(MID$(b$,xc%+1,1))-48)*&600 9490PROCdot((xc%-3)*size,size*4,(j-1)*size):NEXT:NEXT 9500FORj=0TO2:READ b$:FORxc%=0TOLEN(b$)-1:C%=(ASC(MID$(b$,xc%+1,1))-48)*&600 9510IFj=1 THENadd=-size*2 ELSEadd=-size 9520PROCdot((xc%-4)*size,-size*4+add,(j-1)*size):NEXT:NEXT 9530PROCdot(-4*size,-5*size,0*size) 9540PROCdot(4*size,-5*size,0*size) 9550PROCdot(-3*size,-7*size,0*size) 9560DATA 1111111,11111,1111111,11111 9570DATA 2222222,22222,2222222,22222 9580DATA 4442444,22222,2222222,22222 9590DATA 4542454,22222,2222222,22222 9600DATA 4442444,22222,2222222,22222 9610DATA 2222222,22222,2222222,22222 9620DATA 2233322,22222,2222222,22222 9630DATA 2233322,22222,2222222,22222 9640DATA 2233322,22222,2222222,22222 9650DATA 2222222,2222222,2222222 9660DATA 111111111,111111111,111111111 9670WHEN 19: 9680tstart=0:pstart=180:tinc=5:pinc=1:tsine=0:psine=0 9690scale=1:PRINT"Dumb bells";TAB(15);"Scale: ";scale;TAB(30);"..."; 9700size=100:step=20:C%=&600 9710zc=-90:FORm=1TO2 9720FORa%=0 TO 180 STEP step:size=SIN(RAD(a%))*50:step2=24 9730IFsize<20 THENstep2=48 9740IFsize<10 THENstep2=360 9750FORb%=0TO359STEPstep2 9760C%=C% EOR &A00 9770s=SIN(RAD(b%)):c=COS(RAD(b%)) 9780PROCdot(s*size,c*size,zc) 9790NEXT:zc+=10:NEXT:C%=&600*4:NEXT 9800 9810WHEN 20: 9820tstart=0:pstart=0:tinc=2:pinc=1:tsine=1:psine=0 9830scale=1:PRINT"Axis Balls";TAB(15);"Scale: ";scale;TAB(30);"..."; 9840C%=&600:size=30:step=36:osize=size*3 9850ca%=1:cb%=2:cc%=3:cd%=4:ce%=5:cf%=6 9860FORi%=0 TO 180 STEP step 9870x=SIN(RAD(i%))*size:y=COS(RAD(i%))*size 9880step2=step 9890IFi%<40 OR i%>140 THENstep2=step*2 9900IFi%<10 OR i%>170 THENstep2=360 9910FORa%=0 TO 359 STEP step2 9920s=SIN(RAD(a%)):c=COS(RAD(a%)) 9930C%=ca%*&600:ca%=ca%EOR3:PROCdot(x*c-osize,y,x*s) 9940C%=cb%*&600:cb%=cb%EOR1:PROCdot(x*c+osize,y,x*s) 9950C%=cc%*&600:cc%=cc%EOR7:PROCdot(x*c,y-osize,x*s) 9960C%=cd%*&600:cd%=cd%EOR1:PROCdot(x*c,y+osize,x*s) 9970C%=ce%*&600:ce%=ce%EOR3:PROCdot(x*c,y,x*s-osize) 9980C%=cf%*&600:cf%=cf%EOR7:PROCdot(x*c,y,x*s+osize) 9990C%=&600*4:PROCdot(x*c,y,x*s) 10000NEXT:NEXT 10010 10020WHEN 21: 10030tstart=10:pstart=0:tinc=1:pinc=2:tsine=0:psine=0 10040scale=1.4:PRINT"Warning";TAB(15);"Scale: ";scale;TAB(30);"..."; 10050size=10 10060RESTORE+4 10070FORyc%=0TO14:READ f$:FORxc%=0TOLEN(f$)-1:C%=(ASC(MID$(f$,xc%+1,1))-48)*&600 10080IFC%<>0 THENPROCdot((xc%-7)*size,(yc%-7)*size,0) 10090NEXT:NEXT 10100DATA 000000010000000 10110DATA 000000010000000 10120DATA 000000111000000 10130DATA 000000121000000 10140DATA 000001121100000 10150DATA 000001242100000 10160DATA 000011444110000 10170DATA 000012444210000 10180DATA 000112444211000 10190DATA 000122242221000 10200DATA 001122222221100 10210DATA 001222242222100 10220DATA 011222444222110 10230DATA 012222242222210 10240DATA 111111111111111 10250WHEN 22: 10260tstart=10:pstart=270:tinc=2:pinc=0:tsine=0:psine=0 10270scale=1.4:PRINT"Face";TAB(15);"Scale: ";scale;TAB(30);"..."; 10280size=10:bend=30 10290RESTORE+6 10300angle=0 10310FORyc%=0TO14:angle2=0:READ f$:FORxc%=0TOLEN(f$)-1:C%=(ASC(MID$(f$,xc%+1,1))-48)*&600:syc=SIN(RAD(angle2))*bend*SIN(RAD(angle)) 10320IFC%=&600 THENsyc+=size 10330IFC%=&600*5 THENsyc+=size/2 10340IFC%=&600*4 THENsyc+=(size/1.5) 10350IFC%<>0 THENPROCdot((xc%-7)*size,syc,(yc%-7)*size) 10360angle2+=12 10370NEXT:angle+=12:NEXT 10380DATA 000222222222000 10390DATA 002266666662220 10400DATA 022666666666620 10410DATA 226655666556622 10420DATA 266554565455662 10430DATA 266655666556662 10440DATA 666666111666666 10450DATA 666661111166666 10460DATA 666666111666666 10470DATA 066446666664660 10480DATA 066646666644660 10490DATA 006644455446600 10500DATA 006666444466600 10510DATA 000066666660000 10520DATA 000000666000000 10530 10540WHEN 23: 10550tstart=10:pstart=270:tinc=2:pinc=1:tsine=0:psine=0 10560scale=1.4:PRINT"Flag";TAB(15);"Scale: ";scale;TAB(30);"..."; 10570size=10:bend=40 10580angle=0:C%=&600 10590FORyc%=0TO14:angle2=0:FORxc%=0TOLEN(f$)-1 10600syc=SIN(RAD(angle2))*bend*SIN(RAD(angle)) 10610PROCdot((xc%-7)*size,syc,(yc%-7)*size) 10620angle2+=12 10630NEXT:C%+=&600:IFC%>&600*3 THENC%=&600 10640angle+=24:NEXT 10650 10660WHEN 24: 10670tstart=10:pstart=270:tinc=1:pinc=2:tsine=1:psine=0 10680scale=1:PRINT"Circle Circle";TAB(15);"Scale: ";scale;TAB(30);"..."; 10690step=36:size=110:step2=24:size2=30:C%=&600*2 10700FORi%=0TO359 STEPstep 10710ax=SIN(RAD(i%))*size:ay=COS(RAD(i%))*size 10720c=-COS(RAD(i%)):s=SIN(RAD(i%)) 10730FORj%=0TO359 STEPstep2 10740v=SIN(RAD(j%))*size2:w=COS(RAD(j%))*size2 10750x=v:y=0:z=w 10760PROCdot((x*c-y*s)+ax,(x*s+y*c)+ay,z) 10770NEXT:C%+=&600:IFC%=&600*7 THENC%=&600*2 10780NEXT:C%=&600:PROCdot(0,0,0) 10790 10800WHEN 25: 10810tstart=10:pstart=270:tinc=1:pinc=2:tsine=1:psine=0 10820scale=1:PRINT"Random Circles";TAB(15);"Scale: ";scale;TAB(30);"..."; 10830FORI=1TO20 10840step=36:size=110:step2=24:size2=30:C%=&600*2 10850i%=RND(360) 10860ax=RND(150)-75:ay=RND(150)-75:az=RND(150)-75 10870c=-COS(RAD(i%)):s=SIN(RAD(i%)) 10880xsize=RND(30)+10:ysize=RND(30)+10:FORj%=0TO359 STEPstep2 10890v=SIN(RAD(j%))*xsize:w=COS(RAD(j%))*ysize 10900x=v:y=0:z=w 10910PROCdot((x*c-y*s)+ax,(x*s+y*c)+ay,z+az) 10920NEXT:C%+=&600:IFC%=&600*7 THENC%=&600*2 10930NEXT 10940 10950WHEN 26: 10960tstart=10:pstart=270:tinc=1:pinc=2:tsine=1:psine=0 10970scale=1:PRINT"Circle Box";TAB(15);"Scale: ";scale;TAB(30);"..."; 10980step=30:r=50:size=60:C%=&600*2 10990FORi%=0TO359STEPstep:c=COS(RAD(i%))*r:s=SIN(RAD(i%))*r 11000C%=&600*4 11010PROCdot(-r+c,-r+s,r):PROCdot(r+c,-r+s,r) 11020PROCdot(-r+c,r+s,r):PROCdot(r+c,r+s,r) 11030PROCdot(-r+c,-r+s,-r):PROCdot(r+c,-r+s,-r) 11040PROCdot(-r+c,r+s,-r):PROCdot(r+c,r+s,-r) 11050C%=&600*5 11060PROCdot(r,-r+c,-r+s):PROCdot(r,r+c,-r+s) 11070PROCdot(r,-r+c,r+s):PROCdot(r,r+c,r+s) 11080PROCdot(-r,-r+c,-r+s):PROCdot(-r,r+c,-r+s) 11090PROCdot(-r,-r+c,r+s):PROCdot(-r,r+c,r+s) 11100C%=&600*2 11110PROCdot(-r+c,r,-r+s):PROCdot(r+c,r,-r+s) 11120PROCdot(-r+c,r,r+s):PROCdot(r+c,r,r+s) 11130PROCdot(-r+c,-r,-r+s):PROCdot(r+c,-r,-r+s) 11140PROCdot(-r+c,-r,r+s):PROCdot(r+c,-r,r+s) 11150NEXT 11160WHEN 27: 11170tstart=0:pstart=270:tinc=1:pinc=0:tsine=0:psine=0 11180scale=1:PRINT"Lissajous";TAB(15);"Scale: ";scale;TAB(30);"..."; 11190angle=0:size=100:amp=80:step=4 11200C%=&600*5:FORi%=0TO359STEPstep 11210PROCdot(SIN(RAD(i%))*size,COS(RAD(i%))*size,SIN(RAD(angle))*amp) 11220angle+=12 11230NEXT 11240 11250WHEN 28: 11260tstart=0:pstart=270:tinc=2:pinc=2:tsine=1:psine=0 11270scale=1:PRINT"Barbers Pole";TAB(15);"Scale: ";scale;TAB(30);"..."; 11280r=50:size=60:step=15:C%=&600:l=45/step:m=0 11290FORi%=-size TO size STEP step 11300FORj%=0TO359STEP step 11310m+=1:IFm=l THENC%=C% EOR&A00:m=0 11320PROCdot(SIN(RAD(j%))*r,COS(RAD(j%))*r,i%) 11330NEXT:m+=1:IFm=l THENC%=C% EOR&A00:m=0 11340NEXT:C%=&600*5 11350FORi%=0TO359STEPstep*2 11360FORr=30 TO 50 STEP 10 11370PROCdot(SIN(RAD(i%))*r,COS(RAD(i%))*r,size+step) 11380PROCdot(SIN(RAD(i%))*r,COS(RAD(i%))*r,-size-step) 11390NEXT:NEXT 11400 11410WHEN 29: 11420tstart=0:pstart=0:tinc=2:pinc=3:tsine=0:psine=0 11430scale=1:PRINT"Dice";TAB(15);"Scale: ";scale;TAB(30);"..."; 11440size=15 11450RESTORE+15 11460FORyc%=0TO6:READ f$,l$,b$,r$ 11470FORxc%=0TOLEN(f$)-1:C%=(ASC(MID$(f$,xc%+1,1))-48)*&600 11480PROCdot((xc%-3)*size+20,(yc%-3)*size+20,size*3):NEXT 11490FORxc%=0TOLEN(b$)-1:C%=(ASC(MID$(b$,xc%+1,1))-48)*&600 11500PROCdot((xc%-3)*size+20,(yc%-3)*size+20,-size*3):NEXT 11510FORxc%=0TOLEN(l$)-1:C%=(ASC(MID$(l$,xc%+1,1))-48)*&600 11520PROCdot(-size*3+20,(yc%-3)*size+20,(xc%-2)*size):NEXT 11530FORxc%=0TOLEN(r$)-1:C%=(ASC(MID$(r$,xc%+1,1))-48)*&600 11540PROCdot(size*3+20,(yc%-3)*size+20,(xc%-2)*size):NEXT 11550NEXT 11560FORj=0TO4:READ t$,b$:FORxc%=0TOLEN(t$)-1:C%=(ASC(MID$(t$,xc%+1,1))-48)*&600 11570PROCdot((xc%-2)*size+20,size*3+20,(j-2)*size):NEXT 11580FORxc%=0TOLEN(b$)-1:C%=(ASC(MID$(b$,xc%+1,1))-48)*&600 11590PROCdot((xc%-2)*size+20,-size*3+20,(j-2)*size):NEXT:NEXT 11600DATA 4444444,44444,4444444,44444 11610DATA 4644464,34444,4544454,44444 11620DATA 4444444,44444,4444444,44444 11630DATA 4644464,44344,4445444,44144 11640DATA 4444444,44444,4444444,44444 11650DATA 4644464,44443,4544454,44444 11660DATA 4444444,44444,4444444,44444 11670 11680DATA 42444,24442 11690DATA 44444,44444 11700DATA 44444,44444 11710DATA 44444,44444 11720DATA 44424,24442 11730 11740WHEN 30: 11750tstart=0:pstart=0:tinc=2:pinc=1:tsine=1:psine=1 11760scale=1:PRINT"Squares";TAB(15);"Scale: ";scale;TAB(30);"..."; 11770size=8:zx=size*8:C%=&600:FORi%=3 TO 7 STEP 2:C%=&600*(i%-1) 11780FORa%=-i%+1 TO i%-1 STEP 2:FOR b%=-i%+1 TO i%-1 STEP 2 11790PROCdot(a%*size,b%*size,zx) 11800PROCdot(a%*size,b%*size,-zx) 11810NEXT:NEXT:zx-=size*3:NEXT:C%=&600 11820PROCdot(0,0,size*11):PROCdot(0,0,-size*11) 11830 11840WHEN 31: 11850tstart=0:pstart=0:tinc=2:pinc=1:tsine=1:psine=1 11860scale=1:PRINT"Zig Zag";TAB(15);"Scale: ";scale;TAB(30);"..."; 11870zstep=10:zx=100:m=0:inc=10:FORi%=1TO40:C%=&600*RND(6):FORj%=0TO359STEP90 11880PROCdot(SIN(RAD(j%))*m*1.3,COS(RAD(j%))*m*1.3,zx) 11890NEXT:m+=inc:IFm=50 ORm=0 THENinc=-inc 11900zx-=5:NEXT 11910ENDCASE 11920=dots 11930: 11940DEF PROCdot(x,y,z) 11950M%!0=x*scale 11960M%!4=y*scale 11970M%!8=z*scale 11980M%!12=C% 11990M%+=16 12000dots+=1 12010ENDPROC
� >Source � by Simon -Henley- Morris ,� for 32-bit machines, particularly ARM3 (� (c) AU September 1994 2: <� � �0:�:�;" at line ";�:� F: P�0:� Z: dș "Hourglass_On" nfloat=16 x save=� � num=31 �codelength=160*1024 �� code codelength �: �'�I%=0 � codelength-1 �4:I%!code=0:� �: � �assem �ș "Hourglass_Off" ��:ȗ x,y,k:�k<>0 � �-99 ��initialise �� �: ���assem 1�pass=0�2�2:P%=code:L%=codelength+P%:[OPTpass B initialise "\ Create our own stack ,%.stack ]:P%+=&800:[OPTpass 6%.registerdump ]:P%+=&040:[OPTpass @ JL\ ###################################################################### T ^$.initialise STR r0,[pc,#-80] h) ADR r0,registerdump+4 r# STMIA r0,{r1-r14} |! SUB r13,r0,#8 �M\------------------------------------------------------------------------ � SWI 256+22 � SWI 256+9 � SWI 256+22 � SWI 256+137 �* SWI "OS_RemoveCursors" � �! BL setcolour �! BL resetcols �" BL getvduvars � BL newshape � BL makenum �# BL swapscreens 7 BL clearscr \ Clear all screens 3 BL swapscreens \ & Synchronise BL clearscr &! BL resetcols 0 MOV r0,#16 :.fadethemall BL fadeout D SUBS r0,r0,#1 N# BNE fadethemall X b MOV r0,#&400 l% STR r0,shapetimer v MOV r0,#16 �% STR r0,fadeinflag �.mainloop MOV r0,#19 �! SWI "OS_Byte" �# BL swapscreens � BL clearscr �% LDR r0,shapetimer � SUBS r0,r0,#1 �% STR r0,shapetimer � BNE carryon �% LDR r0,timerreset �% STR r0,shapetimer � MOV r0,#16 �& STR r0,fadeoutflag ! BL resetcols &.carryon LDR r0,fadeoutflag CMP r0,#0 ! BEQ nofadeout * BL fadeout 4 MOV r1,#16 > SUBS r0,r0,#1 H& STR r0,fadeoutflag R BNE nofade \% STR r1,fadeinflag f BL newshape p BL makenum z B nofade �%.nofadeout LDR r0,fadeinflag � CMP r0,#0 � BEQ nofade � BL fadein � SUB r0,r0,#1 �% STR r0,fadeinflag � �.nofade BL calcall � BL shownum � BL plotall � � MOV r0,#&81 � MOV r1,#&B6 MOV r2,#&FF " SWI "XOS_Byte" CMP r1,#&FF $" BEQ checkfades . 8 MOV r3,#360 B" �adr(4,sintable) L �adr(0,vars) V# LDR r1,[r0,#28] ` CMP r1,#0 j BEQ notsinep t# LDR r1,[r0,#36] ~# LDR r2,[r0,#20] � ADD r1,r1,r2 �' CMP r3,r1,LSR#float �) SUBLE r1,r1,#360<<float �# STR r1,[r0,#36] �' MOV r1,r1,LSR#float �( LDR r1,[r4,r1,LSL#2] � MOV r2,#179 � MUL r1,r2,r1 �) ADD r1,r1,#180<<float �" STR r1,[r0,#8] � B dotheta � ".notsinep LDR r1,[r0,#8] # LDR r2,[r0,#20] ADD r1,r1,r2 ' CMP r3,r1,LSR#float () SUBLE r1,r1,#360<<float 2" STR r1,[r0,#8] < F#.dotheta LDR r1,[r0,#32] P CMP r1,#0 Z BEQ notsinet d# LDR r1,[r0,#40] n# LDR r2,[r0,#24] x ADD r1,r1,r2 �' CMP r3,r1,LSR#float �) SUBLE r1,r1,#360<<float �# STR r1,[r0,#40] �' MOV r1,r1,LSR#float �( LDR r1,[r4,r1,LSL#2] � MOV r2,#179 � MUL r1,r2,r1 �) ADD r1,r1,#180<<float �# STR r1,[r0,#12] �" B checkfades � �#.notsinet LDR r1,[r0,#12] �# LDR r2,[r0,#24] ADD r1,r1,r2 ' CMP r3,r1,LSR#float ) SUBLE r1,r1,#360<<float "# STR r1,[r0,#12] , 6&.checkfades LDR r0,fadeoutflag @ CMP r0,#0 J# BNE checkescape T% LDR r0,fadeinflag ^ CMP r0,#0 h# BNE checkescape r# LDR r1,keypress | CMP r1,#0 � BEQ newinput � MOV r0,#129 � MOV r1,#&9D � MOV r2,#&FF �! SWI "OS_Byte" � CMP r1,#0 �# STREQ r1,keypress �# B checkescape �.newinput MOV r0,#129 � MOV r1,#&9D � MOV r2,#&FF �! SWI "OS_Byte" � CMP r1,#&FF # BNE checkescape # STR r1,keypress MOV r0,#16 && STR r0,fadeoutflag 0! BL resetcols :% LDR r0,timerreset D% STR r0,shapetimer N X.checkescape MOV r0,#129 b MOV r1,#&8F l MOV r2,#&FF v! SWI "OS_Byte" � CMP r1,#&FF � BNE mainloop � �.resetforfin MOV r0,#19 �! SWI "OS_Byte" �# BL swapscreens � BL clearscr � MOV r0,#19 �! SWI "OS_Byte" �# BL swapscreens � BL clearscr � � MOV r0,#&7C 4 SWI "XOS_Byte" \ Clear Escape MOV r0,#19 ! SWI "OS_Byte" * SWI 256+22 4 SWI 256+0 > MOV r0,#15 H MOV r1,#0 R MOV r2,#0 \< SWI "OS_Byte" \ Clear Keyboard Buffer fM\------------------------------------------------------------------------ p&.return �adr(0,registerdump) z' LDMIA r0,{r0-r13,pc}^ � �.keypress EQUD 0 �.shapetimer EQUD 0 �'.timerreset EQUD 500 \ 10 seconds � �7.fadeoutflag EQUD 0 \ 0-nothing 1-16 fadecount �.fadeinflag EQUD 0 � �'.getvduvars STMFD r13!,{r0-r1,r14} � MOV r0,#112 � MOV r1,#1 � SWI "OS_Byte" � MOV r0,#113 MOV r1,#2 SWI "OS_Byte" % ADR r0,screenbases $ MOV r1,r0 ., SWI "OS_ReadVduVariables" 8& LDMFD r13!,{r0,r1,pc} B L.bank EQUD 1 V+.screenbases EQUD 148:EQUD 149:EQUD -1 ` j*.swapscreens STMFD r13!,{r0,r1,r3,r14} t ADR r14,bank ~ MOV r0,#113 � LDR r1,[r14] � � r3,r1,#3 � SWI "OS_Byte" � STR r3,[r14] �) LDR r12,[r14,r3,LSL#2] �) LDMFD r13!,{r0,r1,r3,pc} � �H\ Each ball is 20 by 16 and has eight versions for each pixel offset �5\ Mask data first followed by 7 different colours �,\ Each set of sprites is &600 in length. � �".balldata ]:P%+=&2A00:[OPTpass &.plotall STMFD r13!,{r0-r11,r14} �adr(10,balldata) < �adr(11,zorder) \ Address of plot order �adr(14,dest-16) ( LDR r9,nocoords 2% ADD r11,r11,r9,LSL#2 < SUB r11,r11,#4 F!.mainloop LDR r7,[r11],#-4 P$ ADD r7,r14,r7,LSL#4 Z% LDMIA r7,{r0,r1,r4,r2} d MOV r2,r4 n x � r4,r0,#7 � BIC r0,r0,#7 �$ ADD r0,r12,r0,LSR#1 �# ADD r0,r0,r1,LSL#7 �: ADD r0,r0,r1,LSL#5 \ r0 is screen addr � �$ ADD r1,r10,r4,LSL#7 �8 ADD r1,r1,r4,LSL#6 \ r1 is mask addr �8 ADD r2,r1,r2 \ r2 is ball addr �! ]:�I%=1�16:[OPTpass �= LDMIA r0,{r3-r5} \ Speedy mask and plot � LDMIA r1!,{r6-r8} � � r3,r3,r6 � � r4,r4,r7 � r5,r5,r8 LDMIA r2!,{r6-r8} �R r3,r3,r6 " �R r4,r4,r7 , �R r5,r5,r8 6 STMIA r0,{r3-r5} @ ADD r0,r0,#160 J ]:�:[OPTpass T SUBS r9,r9,#1 ^ BNE mainloop h% LDMFD r13!,{r0-r11,pc} r | .vars �.nocoords EQUD 0 �.coordsad EQUD 0 �.phi EQUD 0 �.theta EQUD 0 � .dataadd EQUD (dest-vars) � �.phiinc EQUD 0 �.thetainc EQUD 0 �.phisin EQUD 0 �.thetasin EQUD 0 �.phiangle EQUD 0 �.theangle EQUD 0 � +\ Display number of balls on the screen ).shownum STMFD r13!,{r0-r6,r12,r14} ADD r12,12,#100 & ADR r0,bits 02 LDMIA r0!,{r1-r6}:STMIA r12,{r1-r3} :2 ADD r12,12,#160:STMIA r12,{r4-r6} DD ADD r12,12,#160:LDMIA r0!,{r1-r6}:STMIA r12,{r1-r3} N2 ADD r12,12,#160:STMIA r12,{r4-r6} XD ADD r12,12,#160:LDMIA r0!,{r1-r6}:STMIA r12,{r1-r3} b2 ADD r12,12,#160:STMIA r12,{r4-r6} lD ADD r12,12,#160:LDMIA r0!,{r1-r6}:STMIA r12,{r1-r3} v2 ADD r12,12,#160:STMIA r12,{r4-r6} �( LDMFD r13!,{r0-r6,r12,pc} � �".bits ]:P%+=4*8*3:[OPTpass � �9\ Create screen data for a number, rather than use OS �&.makenum STMFD r13!,{r0-r12,r14} � �ldr(0,nocoords) � ADR r1,buffer � MOV r2,#16 �* SWI "OS_ConvertCardinal2" � LDR r2,[r0] � SUB r1,r1,r0 � CMP r1,#1 D �Q r2,r2,LSL#16 \ Maximum string length of 3 (0-999) �REQ r2,r2,#&30 A �REQ r2,r2,#&3000 \ Add leading zeros if required CMP r1,#2 * �Q r2,r2,LSL#8 4 �REQ r2,r2,#&30 > MOV r1,#3 H ADR r0,bits R ADR r3,fontdata \.numbloop � r4,r2,#&FF f MOV r2,r2,LSR#8 p SUB r4,r4,#48 z) ADD r4,r3,r4,LSL#5 \ *32 � LDMIA r4,{r5-r12} � MOV r4,r0 �0 STR r5,[r4],#12:STR r6,[r4],#12 �0 STR r7,[r4],#12:STR r8,[r4],#12 �1 STR r9,[r4],#12:STR r10,[r4],#12 �2 STR r11,[r4],#12:STR r12,[r4],#12 � ADD r0,r0,#4 � SUBS r1,r1,#1 � BNE numbloop �% LDMFD r13!,{r0-r12,pc} � �.buffer ]:P%+=16:[OPTpass �!.fontdata ]:P%+=&140:[OPTpass K]:count=0:coords=1:cp=2:st=3:sp=4:ct=5:nst=6:nsp=7:x=8:y=9:z=10:frac=11 +newx=12:newy=x:togo=14:temp=12:[OPTpass $ .M\ This routine transforms coordinates around 2 axis, and adds perspective 8&.calcall STMFD r13!,{r0-r12,r14} B ADR r4,vars L- \ get nc,cordsad,phi,theta,togo V) LDMIA r4,{r0,r1,r2,r3,r14} ` ADD r14,r14,r4 j ADR r6,sintable tL ADD r7,r6,#&168 \ &168 = 90*4 (Cos derived by Sin+90 ) ~$ MOV r2,r2,LSR#float �$ MOV r3,r3,LSR#float �4 LDR sp,[r6,r2,LSL#2] \ r4 = sin phi �6 LDR ct,[r7,r3,LSL#2] \ r5 = cos theta �6 LDR st,[r6,r3,LSL#2] \ r3 = sin theta �4 LDR cp,[r7,r2,LSL#2] \ r2 = cos phi �0 RSB nst,st,#0 \nst = -st �0 RSB nsp,sp,#0 \nsp = -sp � �8 ADD frac,PC,#(fractions-8-P%+255*4)�256 �A ADD frac,frac,#((fractions-8-P%+255*4)�256)*&100 � �N.calcs LDMIA coords !,{x,y,z} \ x, y, z and (we'll get colour later) MUL newx,y,nst : MLA newx,x,ct,newx \ newx = ct*x-st*y MUL y,ct,y (: MLA y,x,st,y \ y = st*x+ct*y 2" MOV y,y,ASR#float < F MUL newy,z,nsp P: MLA newy,y,cp,newy \ newy = cp*y-sp*z Z d MUL z,cp,z n: MLA z,sp,y,z \ z = sp*y+cp*z x! \ x=newx y=newy z=z �% MOV y,newy,ASR#float �% MOV x,newx,ASR#float �" MOV z,z,ASR#float � MOV temp,z � �+ LDR temp,[frac,temp,LSL#2] � � MUL x,temp,x � MUL y,temp,y �7 MOV temp,#128 \ Origin 128,128 �' ADD x,temp,x,ASR#float �' ADD y,temp,y,ASR#float �% LDR temp,[coords],#4 ( STMIA togo !,{x,y,z,temp} # SUBS count,count,#1 BNE calcs " B sort , 6".sintable ]:P%+=360*8:[OPTpass @#.fractions ]:P%+=514*4:[OPTpass J T=.regclear EQUD0:EQUD0:EQUD0:EQUD0:EQUD0:EQUD0:EQUD0:EQUD0 ^= EQUD0:EQUD0:EQUD0:EQUD0:EQUD0:EQUD0:EQUD0:EQUD0 h rO\ Heres a fun routine! This one is a 'bin sort', and needs to be very quick |.sort �adr(0,regclear) �! LDMIA r0,{r3-r12} � �adr(0,zlist) � MOV r2,r0 � MOV r1,#16 �A.resetlp STMIA r0!,{r3-r12} \ 64 lots of ten. (trim later) �" STMIA r0!,{r3-r12} � SUBS r1,r1,#1 � BNE resetlp �K �ldr(0,nocoords) \ r0 is number of coordinates to sort �N �adr(1,dest+8) \ r1 is address of first 'z' coordinate. �M �adr(3,spare) \ r3 is adr of spare (r2 is zlist addr) �E �adr(12,zorder) \r12 is address of ordered list �Q ADD r0,r0,#1 \ to compensate-data doesn't begin at zero 3 MOV r4,#1 \ r4 = count L MOV r5,#1 \ r5 = index for items (0-noofcoords) ! MOV r10,#&10000 &D SUB r10,r10,#1 \ R10 = &FFFF (mask for data) 04.sortit1 LDR r6,[r1],#16 \ get z coord :M ADD r6,r6,#160 \ add 160 (gives us a range of +- 160) D6 LDR r7,[r2,r6,LSL#2] \ get zlist(zc) N MOVS r7,r7 XB STREQ r5,[r2,r6,LSL#2] \ store index if nowt there b BEQ next l4 � r8,r7,r10,LSL#16 \ r8 is pointer v1 � r9,r7,r10 \ r9 is data �> �R r9,r9,r4,LSL#16 \ r9 is now |count|data| �> STR r9,[r2,r6,LSL#2] \ store r9 in zlist(zc) �A �R r9,r5,r8 \ r9 is now |index|pointer| �A STR r9,[r3,r4,LSL#2] \ store r9 in spare(count) �8 ADD r4,r4,#1 \ increment count �8.next ADD r5,r5,#1 \ increment index � CMP r5,r0 �B BNE sortit1 \ Thats the easy bit folks! �G \ registers 4-11 are uncommitted �F \ register 0 is noofcoords (i%) �: MOV r4,#320 \ r4 is maxelements �9.sortit2 LDR r5,[r2],#4 \ Get zlist(count) � MOVS r5,r5 7 BEQ next2 \ Ignore if zero C �S r6,r5,r10,LSL#16 \ r6 is pointer. Is it single? > STREQ r5,[r12],#4 \ Yes. Store in zorder. ; BEQ next2 \ Skip, and get next *E � r7,r5,r10 \ r7 is data (coordinate number) 4=.afew STR r7,[r12],#4 \ store data in zorder >H LDR r6,[r3,r6,LSR#14]\ get new pointer|data from spare H5 � r7,r6,r10 \ r7 is new data R8 �S r6,r6,r10,LSL#16 \ r6 is new pointer \G BNE afew \ continue until pointer is zero f= STR r7,[r12],#4 \ store data in zorder p8.next2 SUBS r4,r4,#1 \ until all done. z BNE sortit2 �& LDMFD r13!,{r0-r12,pc} � �%.dest ]:P%+=640*16:[OPTpass �P.zlist ]:P%+=320*4:[OPTpass \ 320 means coordinates from -160 to 159. �$.spare ]:P%+=640*4:[OPTpass �$.zorder ]:P%+=640*4:[OPTpass � �&.newshape STMFD r13!,{r0-r2,r14} �# ADR r0,shapetable �! LDR r1,[r0,#-4] � ADD r2,r1,#1 �6 CMP r2,#(num+1) \ Number of shapes � �Q r2,#0 ! STR r2,[r0,#-4] 1 LDR r2,[r0,r1,LSL#5]! \ address ADD r2,r2,r0 $: LDR r1,[r0,#4] \ number of coords . �adr(14,vars) 8& STR r1,[r14] \ nc B+ STR r2,[r14,#4] \ address L LDR r1,[r0,#8] V' STR r1,[r14,#8] \ phi `* STR r1,[r14,#36] \ angle j! LDR r1,[r0,#12] t* STR r1,[r14,#12] \ theta ~* STR r1,[r14,#40] \ angle �! LDR r1,[r0,#16] �, STR r1,[r14,#20] \ phi inc �! LDR r1,[r0,#20] �. STR r1,[r14,#24] \ theta inc �! LDR r1,[r0,#24] �- STR r1,[r14,#28] \ phi flag �! LDR r1,[r0,#28] �/ STR r1,[r14,#32] \ theta flag �% LDMFD r13!,{r0-r2,pc} � �.shapenum EQUD 0 � C.shapetable ]:P%+=32*32:[OPTpass \ address, number of coords E.coords ]:P%+=7000*16:[OPTpass \ *16 = !x , !y , !z, !colour \ IMPORTANT �E: (N \ The 7000 above represents the total number of dots required. 2K \ If you alter any of the shapes, make sure that this value <J \ is equal to or above to the total amount of coordinates. FM \ If you increase this value, be sure to adjust the amount of PN \ space reserved for the code in the beginning of the program. Z dQ.zeroreg DCD0:DCD0:DCD0:DCD0:DCD0:DCD0:DCD0:DCD0:DCD0:DCD0:DCD0:DCD0:DCD0 n x(.clearscr STMFD r13!,{r0-r12,r14} �! ADR r0,zeroreg �' LDMIA r0!,{r0-r11,r14} �% ]:�I%=1�787:[OPTpass �( STMIA r12!,{r0-r11,r14} � ]:�:[OPTpass �# STMIA r12!,{r0-r8} �' LDMFD r13!,{r0-r12,pc} � �'.setcolour STMFD r13!,{r0-r2,r14} �! ADR r1,palette � MOV r2,#96 �!.colloop LDRB r0,[r1],#1 �" SWI "OS_WriteC" SUBS r2,r2,#1 BNE colloop & LDMFD r13!,{r0-r2,pc} " ,!.palette ]:P%+=120:[OPTpass 6#.colreset ]:P%+=16*12:[OPTpass @#.colfade ]:P%+=16*12:[OPTpass J T%.resetcols STMFD r13!,{r0-r4,r14} ^ ADR r0,colreset h ADR r14,colfade r MOV r4,#16 | .resetloop LDMIA r0!,{r1-r3} �! STMIA r14!,{r1-r3} � SUBS r4,r4,#1 � BNE resetloop �$ LDMFD r13!,{r0-r4,pc} � �G\ Sorry about the hardware access folks, but �19 was just too slow. �%.fadeout STMFD r13!,{r0-r7,r14} �! SWI "OS_EnterOS" �! MOV r7,#&3400000 � ADR r5,colfade � MOV r6,#15 �.fadeoloop LDMIA r5,{r1-r3} �# �R r0,r1,r6,LSL#26 " �R r0,r0,r2,LSL#4 " �R r0,r0,r3,LSL#8 STR r0,[r7] &) SUBS r1,r1,#1:MOVMI r1,#0 0) SUBS r2,r2,#1:MOVMI r2,#0 :) SUBS r3,r3,#1:MOVMI r3,#0 D STMIA r5!,{r1-r3} N SUBS r6,r6,#1 X BPL fadeoloop b TEQP pc,#0 l MOVNV r0,r0 v$ LDMFD r13!,{r0-r7,pc} � �&.fadein STMFD r13!,{r0-r11,r14} �! SWI "OS_EnterOS" �" MOV r11,#&3400000 � ADR r5,colfade � ADR r7,colreset � MOV r6,#15 �.fadeiloop LDMIA r5,{r1-r3} �! LDMIA r7!,{r8-r10} �# �R r0,r1,r6,LSL#26 �" �R r0,r0,r2,LSL#4 �" �R r0,r0,r3,LSL#8 � STR r0,[r11] 3 ADD r1,r1,#1:CMP r1,r8:MOVGE r1,r8 3 ADD r2,r2,#1:CMP r1,r9:MOVGE r2,r9 5 ADD r3,r3,#1:CMP r1,r10:MOVGE r3,r10 STMIA r5!,{r1-r3} * SUBS r6,r6,#1 4 BPL fadeiloop > TEQP pc,#0 H MOVNV r0,r0 R% LDMFD r13!,{r0-r11,pc} \ f]:� p;�"Code from &";~code;"-&";~P%;" (";(P%-code)�1024;"K)." z,�"LOAD <Dizzy$Dir>.RawBall9 "+�~balldata �+�"LOAD <Dizzy$Dir>.Palette "+�~palette �,�"LOAD <Dizzy$Dir>.Font "+�~fontdata � � M%=palette:N%=colreset+15*12 �$�I%=1�16:R%=M%?3:G%=M%?4:B%=M%?5 �0!N%=R%�16:N%!4=G%�16:N%!8=B%�16:N%-=12:M%+=6 �� � �8M%=sintable:�I%=0 � 449:!M%=�(�(I%))*2^float:M%+=4:� �BM%=fractions:�I%=-255�255:!M%=192*(1/(I%+256))*2^float:M%+=4:� � �scale=1 � M%=coords:N%=shapetable totaldots=0 cnt%=num $�cnt%=0 � num .3tstart=0:pstart=0:tinc=1:pinc=1:tsine=0:psine=0 8 !N%=M%-N% B)!nocoords=�shape(cnt%):N%!4=!nocoords L,N%!8=pstart*2^float:N%!12=tstart*2^float V)N%!16=pinc*2^float:N%!20=tinc*2^float `"N%!24=psine:N%!28=tsine:N%+=32 j�;!nocoords ttotaldots+=!nocoords ~� �<�"total coordinates ";totaldots;". Press space bar...." ��save � �2�"Save <Dizzy$Dir>.!RunImage "+�~code+" "+�~P% �&*SETTYPE <Dizzy$Dir>.!RunImage FF8 �� �� � �ݤadr(dest,addr) ��pass=0 �addr=P% ��addr<P% � �addr=P%-addr+8 �-�addr>&FFFF ��7:�"ILLEGAL ADR ATTEMPT.":� D[OPTpass:SUB dest,pc,#(addr �&FF00):SUB dest,dest,#(addr �&FF):] � addr=addr-P%-8 -�addr>&FFFF ��7:�"ILLEGAL ADR ATTEMPT.":� (D[OPTpass:ADD dest,pc,#(addr �&FF00):ADD dest,dest,#(addr �&FF):] 2� <=0 F Pݤldr(dest,addr) Z�pass=0 �addr=P% d�addr<P% � naddr=P%-addr+8 x-�addr>&FFFF ��7:�"ILLEGAL ADR ATTEMPT.":� �G[OPTpass:SUB dest,pc,#(addr �&FF00):LDR dest,[dest,#-(addr �&FF)]:] �� �addr=addr-P%-8 �-�addr>&FFFF ��7:�"ILLEGAL ADR ATTEMPT.":� �F[OPTpass:ADD dest,pc,#(addr �&FF00):LDR dest,[dest,#(addr �&FF)]:] �� �=0 � �� �shape(shape) � dots=0 �Ȏ shape � � � 0: �3tstart=0:pstart=0:tinc=1:pinc=2:tsine=0:psine=0 7scale=1:�"'Hello'";�15);"Scale: ";scale;�30);"..."; � blk 100 text$="Hello" " a=6:m=-((�(text$)*8)/2) ,C%=0 6 � b=1 � �text$ @ C%+=&600:�C%=&600*7 �C%=&600 J blk?0=��text$,b) T ș "OS_Word",10,blk ^$� c=0 � 7:B%=blk?(c+1):� d=0 � 7 h3�(B% � 2^d)<>0 ��dot(((7-d)+m)*a,(c-4)*a*2,-20) r�:�:m+=8:� | � 1: �3tstart=0:pstart=0:tinc=1:pinc=1:tsine=1:psine=0 �step=17:limit=51 �5scale=1.4:�"Box";�15);"Scale: ";scale;�30);"..."; � � a=-limit � limit � step � � b=-limit � limit � step � C%=&600*1 � �dot(a,b,-limit) � C%=&600*2 � �dot(a,b,limit) � � � � �- � a=(-limit+step) � (limit-step) � step �- � b=(-limit+step) � (limit-step) � step C%=&600*3 �dot(a,-limit,b) C%=&600*4 & �dot(a,limit,b) 0 � : � D- � a=(-limit+step) � (limit-step) � step N � b=-limit � limit � step XC%=&600*5:�dot(-limit,b,a) bC%=&600*6:�dot(limit,b,a) l�:� v � 2: �3tstart=0:pstart=0:tinc=2:pinc=2:tsine=0:psine=0 �5scale=1:�"Rings";�15);"Scale: ";scale;�30);"..."; � � a=0 � 350 � 10 � cos=80*��a � sin=80*��a �C%=&600 � �dot(100,cos,sin) � C%=&600*2 � �dot(-100,cos,sin) � C%=&600*3 � �dot(cos,100,sin) � C%=&600*4 � �dot(cos,-100,sin) C%=&600*5 �dot(cos,sin,100) C%=&600*6 �dot(cos,sin,-100) * � 4 � 3: >3tstart=0:pstart=0:tinc=2:pinc=1:tsine=0:psine=0 H@scale=1:C%=&600*6::�"Bulbs";�15);"Scale: ";scale;�30);"..."; R � r=20 � 60 � 20 \ b=r+40 f!step2=20:�r<50 �step2=step2*2 p � a=0 � 350 � step2 z cos=r*��a � sin=r*��a � �dot(b,cos,sin) � �dot(-b,cos,sin) � �dot(cos,b,sin) � �dot(cos,-b,sin) � �dot(cos,sin,b) � �dot(cos,sin,-b) � � � � � � 4: �4tstart=0:pstart=30:tinc=1:pinc=1:tsine=1:psine=1 �6scale=0.7:�"Tube";�15);"Scale: ";scale;�30);"..."; �col=1:inc=1 � a=-100 � 100 � 20 C%=&600*col �col=4 �C%=&600*5 $�col=5 �C%=&600*4 . � b=0 � 345 � 18 8 �dot(80*��b,a,80*��b) B � Lcol+=inc:�col=6 �inc=-1 V � ` � 5: j4tstart=0:pstart=90:tinc=2:pinc=1:tsine=1:psine=1 t8scale=1::�"Girders";�15);"Scale: ";scale;�30);"..."; ~ C%=&600*3 � � a=-120 � -30 � 10 � � b=0 � 300 � 90 � cos=30*��b � sin=30*��b � �dot(a,cos,sin) � �dot(cos,a,sin) � �dot(cos,sin,a) � �dot(-a,cos,sin) � �dot(cos,-a,sin) � �dot(cos,sin,-a) � � � � � 6: 3tstart=0:pstart=0:tinc=1:pinc=1:tsine=0:psine=1 7scale=0.7::�"Vase";�15);"Scale: ";scale;�30);"..."; C%=&600*4 ( � a=-1 � .9 � .1 2 r=100-70*��(a*90+90) < � b=0 � 340 � 24 F �dot(r*��b,a*100,r*��b) P � Z � d � 7: n4tstart=0:pstart=90:tinc=2:pinc=2:tsine=0:psine=0 x>scale=1:C%=&600*4:�"Tyre";�15);"Scale: ";scale;�30);"..."; � � a=0 � 340 � 20 � � b=0 � 350 � 24 � r=70+30*��b � �dot(r*��a,30*��b,r*��a) � � � � � � 8: �3tstart=0:pstart=0:tinc=1:pinc=4:tsine=1:psine=0 �scale=1 �+�"DNA";�15);"Scale: ";scale;�30);"..."; �C%=&600 � � a=0 � 300 � 60 � � b=0 � 320 � 40 r=70+25*��b # �dot(r*��a-35,25*��b,r*��a) # �dot(r*��a+35,r*��a,25*��b) " � ,C%+=&600 6�C%=&600*8 �C%=&600 @ � J � 9: T5tstart=0:pstart=120:tinc=1:pinc=0:tsine=1:psine=0 ^scale=1:C%=&600 h2�"Music Grid";�15);"Scale: ";scale;�30);"..."; rsize=10:C%=&600 |add=-size*11:�n=1�8 ��a=-1�1:�b=-1�1 �!�dot(a*size,b*size+add,0):�:� �add+=size*3:C%+=&600 ��C%=&600*4 �C%=&600*5 ��C%=&600*6 �C%=&600*1 �� �=C%=&600*4:�a=-2�2:�b=-13�12:�dot(a*size,b*size,-size):�:� � � � 10: �4tstart=0:pstart=90:tinc=1:pinc=1:tsine=0:psine=1 �scale=1:C%=&600 �3�"Grid Sphere";�15);"Scale: ";scale;�30);"..."; �size=100:step=10 C%=&600*2 "�dot(0,0,size):�dot(0,0,-size) "�dot(size,0,0):�dot(-size,0,0) &"�dot(0,size,0):�dot(0,-size,0) 0�i%=step � 180-step � step :#s=�(�(i%))*size:c=�(�(i%))*size D&C%=&600*1:�dot(s,c,0):�dot(-s,c,0) N&C%=&600*3:�dot(0,s,c):�dot(0,-s,c) X&C%=&600*4:�dot(s,0,c):�dot(-s,0,c) b� l � 11: v3tstart=0:pstart=0:tinc=1:pinc=1:tsine=1:psine=0 �scale=1:C%=&600*4 �4�"Whole Sphere";�15);"Scale: ";scale;�30);"..."; �size=100:step=15 ��a%=0 � 359 � step �s=�(�(a%)):c=�(�(a%)) �"�i%=step*2 � 180-step*2 � step �#x=�(�(i%))*size:y=�(�(i%))*size �!�dot(x*c,y,x*s):C%=C% � &3C00 ��:� �,C%=&600:�i%=-size-step � size+step �step ��dot(0,i%,0):� � � 12: �3tstart=0:pstart=0:tinc=1:pinc=1:tsine=0:psine=0 ! scale=1.5 !.�"Random";�15);"Scale: ";scale;�30);"..."; ! � a=1�270 ! C%=&600*�(6) !*C%=&600 !4'�dot(�(100)-50,�(100)-50,�(100)-50) !>� !H � 13: !R3tstart=0:pstart=0:tinc=4:pinc=1:tsine=0:psine=1 !\ scale=1.5 !f5�"Circular Pegs";�15);"Scale: ";scale;�30);"..."; !p C%=&600*4 !z � a=-80 � -30 � 20 !� � b=0 � 330 � 30 !� cos=30*��b !� sin=30*��b !� C%=&600*1 !� �dot(a,cos,sin) !� C%=&600*2 !� �dot(cos,a,sin) !� C%=&600*3 !� �dot(cos,sin,a) !� C%=&600*4 !� �dot(-a,cos,sin) !� C%=&600*5 !� �dot(cos,-a,sin) " C%=&600*6 " �dot(cos,sin,-a) " � "$ � ". "8 � 14: "B5tstart=0:pstart=315:tinc=2:pinc=1:tsine=0:psine=1 "L7scale=1.4:�"'Arm'";�15);"Scale: ";scale;�30);"..."; "V � blk 100 "` text$="ARM" "j a=6:m=-((�(text$)*8)/2) "t � b=1 � �text$ "~ blk?0=��text$,b) "� ș "OS_Word",10,blk "�/� c=0 � 6:B%=blk?(c+1):K%=B% � -1:� d=0 � 7 "�;C%=&600*2:�(B% � 2^d)<>0 ��dot(((7-d)+m)*a,(c-4)*a*2,0) "�(�(K% � 2^d)<>0 �C%=&600*4 �C%=&600*1 "�"�dot(((7-d)+m)*a,(c-4)*a*2,40) "��:�:m+=8:� "� "� � 15: "�5tstart=0:pstart=270:tinc=1:pinc=0:tsine=1:psine=0 "�:scale=1.3:�"'Henley'";�15);"Scale: ";scale;�30);"..."; "� � blk 100 "� text$="Henley " # a=70:m=360/(�(text$)*8) # angle=0 # � b=�text$ � 1 � -1 # blk?0=��text$,b) #( ș "OS_Word",10,blk #21� c=0 � 7:sin=�(�(angle))*a:cos=�(�(angle))*a #<� d=0 � 7:B%=blk?(d+1) #F C%=&600*6 #Po�(B% � 2^c)<>0 ��dot(sin,cos,(d-4)*11):C%=&600*4:�dot(�(�(angle+180))*a*0.8,�(�(angle+180))*a*0.8,(d-4)*10) #Z�:angle-=m:�:� #d � 16: #n5tstart=0:pstart=270:tinc=2:pinc=0:tsine=0:psine=0 #x4scale=1:�"RISC";�15);"Scale: ";scale;�30);"..."; #� � blk 100 #� text$="risc" #� a=70:m=360/(�(text$)*8) #�angle=0 #� � b=�text$ � 1 � -1 #� blk?0=��text$,b) #� ș "OS_Word",10,blk #�1� c=0 � 7:sin=�(�(angle))*a:cos=�(�(angle))*a #�� d=0 � 7:B%=blk?(d+1) #� C%=&600*2 #��(B% � 2^c)<>0 � #��dot(sin,cos,(d-4)*11) #�,C%=&600*1:�dot(sin*0.6,cos*0.6,(d-4)*10) $� $,C%=&600*4:�dot(sin*0.6,cos*0.6,(d-4)*10) $� $"�:angle-=m:�:� $, � 17: $64tstart=0:pstart=90:tinc=2:pinc=0:tsine=1:psine=0 $@8scale=1.4:�"Spiral";�15);"Scale: ";scale;�30);"..."; $Jk=1:angle=0 $T1�zangle=-80 � 80 � 1:C%=&600*k:k+=1:�k=7 �k=1 $^.�dot(�(�(angle))*40,�(�(angle))*40,zangle) $hangle+=10:� $r � 18: $|4tstart=10:pstart=0:tinc=1:pinc=2:tsine=0:psine=0 $�7scale=1.4:�"House";�15);"Scale: ";scale;�30);"..."; $�size=10 $��+11 $��yc%=0�8:� f$,l$,b$,r$ $�/�xc%=0��(f$)-1:C%=(�(�f$,xc%+1,1))-48)*&600 $�,�dot((xc%-3)*size,(yc%-4)*size,size*2):� $�/�xc%=0��(b$)-1:C%=(�(�b$,xc%+1,1))-48)*&600 $�-�dot((xc%-3)*size,(yc%-4)*size,-size*2):� $�/�xc%=0��(l$)-1:C%=(�(�l$,xc%+1,1))-48)*&600 $�-�dot(-size*4,(yc%-4)*size,(xc%-2)*size):� $�/�xc%=0��(r$)-1:C%=(�(�r$,xc%+1,1))-48)*&600 $�,�dot(size*4,(yc%-4)*size,(xc%-2)*size):� $�� %;�j=0�2:� b$:�xc%=0��(b$)-1:C%=(�(�b$,xc%+1,1))-48)*&600 %,�dot((xc%-3)*size,size*4,(j-1)*size):�:� %;�j=0�2:� b$:�xc%=0��(b$)-1:C%=(�(�b$,xc%+1,1))-48)*&600 %& �j=1 �add=-size*2 �add=-size %01�dot((xc%-4)*size,-size*4+add,(j-1)*size):�:� %: �dot(-4*size,-5*size,0*size) %D�dot(4*size,-5*size,0*size) %N �dot(-3*size,-7*size,0*size) %X!� 1111111,11111,1111111,11111 %b!� 2222222,22222,2222222,22222 %l!� 4442444,22222,2222222,22222 %v!� 4542454,22222,2222222,22222 %�!� 4442444,22222,2222222,22222 %�!� 2222222,22222,2222222,22222 %�!� 2233322,22222,2222222,22222 %�!� 2233322,22222,2222222,22222 %�!� 2233322,22222,2222222,22222 %�� 2222222,2222222,2222222 %�#� 111111111,111111111,111111111 %� � 19: %�5tstart=0:pstart=180:tinc=5:pinc=1:tsine=0:psine=0 %�:scale=1:�"Dumb bells";�15);"Scale: ";scale;�30);"..."; %�size=100:step=20:C%=&600 %�zc=-90:�m=1�2 %�0�a%=0 � 180 � step:size=�(�(a%))*50:step2=24 &�size<20 �step2=48 &�size<10 �step2=360 &�b%=0�359�step2 & C%=C% � &A00 &*s=�(�(b%)):c=�(�(b%)) &4�dot(s*size,c*size,zc) &>�:zc+=10:�:C%=&600*4:� &H &R � 20: &\3tstart=0:pstart=0:tinc=2:pinc=1:tsine=1:psine=0 &f:scale=1:�"Axis Balls";�15);"Scale: ";scale;�30);"..."; &p(C%=&600:size=30:step=36:osize=size*3 &z'ca%=1:cb%=2:cc%=3:cd%=4:ce%=5:cf%=6 &��i%=0 � 180 � step &�#x=�(�(i%))*size:y=�(�(i%))*size &�step2=step &�!�i%<40 � i%>140 �step2=step*2 &��i%<10 � i%>170 �step2=360 &��a%=0 � 359 � step2 &�s=�(�(a%)):c=�(�(a%)) &�/C%=ca%*&600:ca%=ca%�3:�dot(x*c-osize,y,x*s) &�/C%=cb%*&600:cb%=cb%�1:�dot(x*c+osize,y,x*s) &�/C%=cc%*&600:cc%=cc%�7:�dot(x*c,y-osize,x*s) &�/C%=cd%*&600:cd%=cd%�1:�dot(x*c,y+osize,x*s) &�/C%=ce%*&600:ce%=ce%�3:�dot(x*c,y,x*s-osize) &�/C%=cf%*&600:cf%=cf%�7:�dot(x*c,y,x*s+osize) 'C%=&600*4:�dot(x*c,y,x*s) '�:� ' '$ � 21: '.4tstart=10:pstart=0:tinc=1:pinc=2:tsine=0:psine=0 '89scale=1.4:�"Warning";�15);"Scale: ";scale;�30);"..."; 'Bsize=10 'L�+4 'V>�yc%=0�14:� f$:�xc%=0��(f$)-1:C%=(�(�f$,xc%+1,1))-48)*&600 '`-�C%<>0 ��dot((xc%-7)*size,(yc%-7)*size,0) 'j�:� 't� 000000010000000 '~� 000000010000000 '�� 000000111000000 '�� 000000121000000 '�� 000001121100000 '�� 000001242100000 '�� 000011444110000 '�� 000012444210000 '�� 000112444211000 '�� 000122242221000 '�� 001122222221100 '�� 001222242222100 '�� 011222444222110 '�� 012222242222210 ( � 111111111111111 ( � 22: (6tstart=10:pstart=270:tinc=2:pinc=0:tsine=0:psine=0 (6scale=1.4:�"Face";�15);"Scale: ";scale;�30);"..."; ((size=10:bend=30 (2�+6 (<angle=0 (Fi�yc%=0�14:angle2=0:� f$:�xc%=0��(f$)-1:C%=(�(�f$,xc%+1,1))-48)*&600:syc=�(�(angle2))*bend*�(�(angle)) (P�C%=&600 �syc+=size (Z�C%=&600*5 �syc+=size/2 (d�C%=&600*4 �syc+=(size/1.5) (n/�C%<>0 ��dot((xc%-7)*size,syc,(yc%-7)*size) (xangle2+=12 (��:angle+=12:� (�� 000222222222000 (�� 002266666662220 (�� 022666666666620 (�� 226655666556622 (�� 266554565455662 (�� 266655666556662 (�� 666666111666666 (�� 666661111166666 (�� 666666111666666 (�� 066446666664660 (�� 066646666644660 (�� 006644455446600 )� 006666444466600 )� 000066666660000 )� 000000666000000 )" ), � 23: )66tstart=10:pstart=270:tinc=2:pinc=1:tsine=0:psine=0 )@6scale=1.4:�"Flag";�15);"Scale: ";scale;�30);"..."; )Jsize=10:bend=40 )Tangle=0:C%=&600 )^%�yc%=0�14:angle2=0:�xc%=0��(f$)-1 )h%syc=�(�(angle2))*bend*�(�(angle)) )r'�dot((xc%-7)*size,syc,(yc%-7)*size) )|angle2+=12 )�"�:C%+=&600:�C%>&600*3 �C%=&600 )�angle+=24:� )� )� � 24: )�6tstart=10:pstart=270:tinc=1:pinc=2:tsine=1:psine=0 )�=scale=1:�"Circle Circle";�15);"Scale: ";scale;�30);"..."; )�0step=36:size=110:step2=24:size2=30:C%=&600*2 )��i%=0�359 �step )�%ax=�(�(i%))*size:ay=�(�(i%))*size )�c=-�(�(i%)):s=�(�(i%)) )��j%=0�359 �step2 )�%v=�(�(j%))*size2:w=�(�(j%))*size2 )�x=v:y=0:z=w *%�dot((x*c-y*s)+ax,(x*s+y*c)+ay,z) *$�:C%+=&600:�C%=&600*7 �C%=&600*2 *�:C%=&600:�dot(0,0,0) *& *0 � 25: *:6tstart=10:pstart=270:tinc=1:pinc=2:tsine=1:psine=0 *D>scale=1:�"Random Circles";�15);"Scale: ";scale;�30);"..."; *N�I=1�20 *X0step=36:size=110:step2=24:size2=30:C%=&600*2 *b i%=�(360) *l*ax=�(150)-75:ay=�(150)-75:az=�(150)-75 *vc=-�(�(i%)):s=�(�(i%)) *�2xsize=�(30)+10:ysize=�(30)+10:�j%=0�359 �step2 *�%v=�(�(j%))*xsize:w=�(�(j%))*ysize *�x=v:y=0:z=w *�(�dot((x*c-y*s)+ax,(x*s+y*c)+ay,z+az) *�$�:C%+=&600:�C%=&600*7 �C%=&600*2 *�� *� *� � 26: *�6tstart=10:pstart=270:tinc=1:pinc=2:tsine=1:psine=0 *�:scale=1:�"Circle Box";�15);"Scale: ";scale;�30);"..."; *�"step=30:r=50:size=60:C%=&600*2 *�,�i%=0�359�step:c=�(�(i%))*r:s=�(�(i%))*r *� C%=&600*4 +&�dot(-r+c,-r+s,r):�dot(r+c,-r+s,r) +$�dot(-r+c,r+s,r):�dot(r+c,r+s,r) +(�dot(-r+c,-r+s,-r):�dot(r+c,-r+s,-r) + &�dot(-r+c,r+s,-r):�dot(r+c,r+s,-r) +* C%=&600*5 +4&�dot(r,-r+c,-r+s):�dot(r,r+c,-r+s) +>$�dot(r,-r+c,r+s):�dot(r,r+c,r+s) +H(�dot(-r,-r+c,-r+s):�dot(-r,r+c,-r+s) +R&�dot(-r,-r+c,r+s):�dot(-r,r+c,r+s) +\ C%=&600*2 +f&�dot(-r+c,r,-r+s):�dot(r+c,r,-r+s) +p$�dot(-r+c,r,r+s):�dot(r+c,r,r+s) +z(�dot(-r+c,-r,-r+s):�dot(r+c,-r,-r+s) +�&�dot(-r+c,-r,r+s):�dot(r+c,-r,r+s) +�� +� � 27: +�5tstart=0:pstart=270:tinc=1:pinc=0:tsine=0:psine=0 +�9scale=1:�"Lissajous";�15);"Scale: ";scale;�30);"..."; +�"angle=0:size=100:amp=80:step=4 +�C%=&600*5:�i%=0�359�step +�5�dot(�(�(i%))*size,�(�(i%))*size,�(�(angle))*amp) +� angle+=12 +�� +� +� � 28: +�5tstart=0:pstart=270:tinc=2:pinc=2:tsine=1:psine=0 ,<scale=1:�"Barbers Pole";�15);"Scale: ";scale;�30);"..."; ,.r=50:size=60:step=15:C%=&600:l=45/step:m=0 ,�i%=-size � size � step ,$�j%=0�359� step ,.m+=1:�m=l �C%=C% �&A00:m=0 ,8"�dot(�(�(j%))*r,�(�(j%))*r,i%) ,B �:m+=1:�m=l �C%=C% �&A00:m=0 ,L�:C%=&600*5 ,V�i%=0�359�step*2 ,`�r=30 � 50 � 10 ,j)�dot(�(�(i%))*r,�(�(i%))*r,size+step) ,t*�dot(�(�(i%))*r,�(�(i%))*r,-size-step) ,~�:� ,� ,� � 29: ,�3tstart=0:pstart=0:tinc=2:pinc=3:tsine=0:psine=0 ,�4scale=1:�"Dice";�15);"Scale: ";scale;�30);"..."; ,�size=15 ,��+15 ,��yc%=0�6:� f$,l$,b$,r$ ,�/�xc%=0��(f$)-1:C%=(�(�f$,xc%+1,1))-48)*&600 ,�2�dot((xc%-3)*size+20,(yc%-3)*size+20,size*3):� ,�/�xc%=0��(b$)-1:C%=(�(�b$,xc%+1,1))-48)*&600 ,�3�dot((xc%-3)*size+20,(yc%-3)*size+20,-size*3):� ,�/�xc%=0��(l$)-1:C%=(�(�l$,xc%+1,1))-48)*&600 - 3�dot(-size*3+20,(yc%-3)*size+20,(xc%-2)*size):� - /�xc%=0��(r$)-1:C%=(�(�r$,xc%+1,1))-48)*&600 -2�dot(size*3+20,(yc%-3)*size+20,(xc%-2)*size):� -� -(>�j=0�4:� t$,b$:�xc%=0��(t$)-1:C%=(�(�t$,xc%+1,1))-48)*&600 -20�dot((xc%-2)*size+20,size*3+20,(j-2)*size):� -</�xc%=0��(b$)-1:C%=(�(�b$,xc%+1,1))-48)*&600 -F3�dot((xc%-2)*size+20,-size*3+20,(j-2)*size):�:� -P!� 4444444,44444,4444444,44444 -Z!� 4644464,34444,4544454,44444 -d!� 4444444,44444,4444444,44444 -n!� 4644464,44344,4445444,44144 -x!� 4444444,44444,4444444,44444 -�!� 4644464,44443,4544454,44444 -�!� 4444444,44444,4444444,44444 -� -�� 42444,24442 -�� 44444,44444 -�� 44444,44444 -�� 44444,44444 -�� 44424,24442 -� -� � 30: -�3tstart=0:pstart=0:tinc=2:pinc=1:tsine=1:psine=1 -�7scale=1:�"Squares";�15);"Scale: ";scale;�30);"..."; -�9size=8:zx=size*8:C%=&600:�i%=3 � 7 � 2:C%=&600*(i%-1) ..�a%=-i%+1 � i%-1 � 2:� b%=-i%+1 � i%-1 � 2 .�dot(a%*size,b%*size,zx) .�dot(a%*size,b%*size,-zx) ."�:�:zx-=size*3:�:C%=&600 .,(�dot(0,0,size*11):�dot(0,0,-size*11) .6 .@ � 31: .J3tstart=0:pstart=0:tinc=2:pinc=1:tsine=1:psine=1 .T7scale=1:�"Zig Zag";�15);"Scale: ";scale;�30);"..."; .^Azstep=10:zx=100:m=0:inc=10:�i%=1�40:C%=&600*�(6):�j%=0�359�90 .h*�dot(�(�(j%))*m*1.3,�(�(j%))*m*1.3,zx) .r!�:m+=inc:�m=50 �m=0 �inc=-inc .|zx-=5:� .�� .� =dots .�: .�� �dot(x,y,z) .�M%!0=x*scale .�M%!4=y*scale .�M%!8=z*scale .�M%!12=C% .� M%+=16 .�dots+=1 .�� �
00000000 0d 00 0a 11 f4 20 20 20 20 20 3e 53 6f 75 72 63 |..... >Sourc| 00000010 65 0d 00 14 1f f4 20 62 79 20 20 53 69 6d 6f 6e |e..... by Simon| 00000020 20 2d 48 65 6e 6c 65 79 2d 20 4d 6f 72 72 69 73 | -Henley- Morris| 00000030 0d 00 1e 2c f4 20 66 6f 72 20 33 32 2d 62 69 74 |...,. for 32-bit| 00000040 20 6d 61 63 68 69 6e 65 73 2c 20 70 61 72 74 69 | machines, parti| 00000050 63 75 6c 61 72 6c 79 20 41 52 4d 33 0d 00 28 1b |cularly ARM3..(.| 00000060 f4 20 28 63 29 20 41 55 20 53 65 70 74 65 6d 62 |. (c) AU Septemb| 00000070 65 72 20 31 39 39 34 0d 00 32 05 3a 0d 00 3c 1e |er 1994..2.:..<.| 00000080 ee 20 85 20 eb 30 3a f6 3a f1 3b 22 20 61 74 20 |. . .0:.:.;" at | 00000090 6c 69 6e 65 20 22 3b 9e 3a e0 0d 00 46 05 3a 0d |line ";.:...F.:.| 000000a0 00 50 08 eb 30 3a 87 0d 00 5a 05 3a 0d 00 64 15 |.P..0:...Z.:..d.| 000000b0 c8 99 20 22 48 6f 75 72 67 6c 61 73 73 5f 4f 6e |.. "Hourglass_On| 000000c0 22 0d 00 6e 0c 66 6c 6f 61 74 3d 31 36 0d 00 78 |"..n.float=16..x| 000000d0 0a 73 61 76 65 3d a3 0d 00 82 0a 6e 75 6d 3d 33 |.save=.....num=3| 000000e0 31 0d 00 8c 17 63 6f 64 65 6c 65 6e 67 74 68 3d |1....codelength=| 000000f0 31 36 30 2a 31 30 32 34 0d 00 96 15 de 20 63 6f |160*1024..... co| 00000100 64 65 20 63 6f 64 65 6c 65 6e 67 74 68 0d 00 a0 |de codelength...| 00000110 05 3a 0d 00 aa 27 e3 49 25 3d 30 20 b8 20 63 6f |.:...'.I%=0 . co| 00000120 64 65 6c 65 6e 67 74 68 2d 31 20 88 34 3a 49 25 |delength-1 .4:I%| 00000130 21 63 6f 64 65 3d 30 3a ed 0d 00 b4 05 3a 0d 00 |!code=0:.....:..| 00000140 be 0a f2 61 73 73 65 6d 0d 00 c8 16 c8 99 20 22 |...assem...... "| 00000150 48 6f 75 72 67 6c 61 73 73 5f 4f 66 66 22 0d 00 |Hourglass_Off"..| 00000160 d2 1b f5 3a c8 97 20 78 2c 79 2c 6b 3a fd 6b 3c |...:.. x,y,k:.k<| 00000170 3e 30 20 84 20 a6 2d 39 39 0d 00 dc 0f d6 69 6e |>0 . .-99.....in| 00000180 69 74 69 61 6c 69 73 65 0d 00 e6 05 e0 0d 00 f0 |itialise........| 00000190 05 3a 0d 00 fa 0b dd f2 61 73 73 65 6d 0d 01 04 |.:......assem...| 000001a0 31 e3 70 61 73 73 3d 30 b8 32 88 32 3a 50 25 3d |1.pass=0.2.2:P%=| 000001b0 63 6f 64 65 3a 4c 25 3d 63 6f 64 65 6c 65 6e 67 |code:L%=codeleng| 000001c0 74 68 2b 50 25 3a 5b 4f 50 54 70 61 73 73 0d 01 |th+P%:[OPTpass..| 000001d0 0e 10 42 20 69 6e 69 74 69 61 6c 69 73 65 0d 01 |..B initialise..| 000001e0 18 04 0d 01 22 1a 5c 20 43 72 65 61 74 65 20 6f |....".\ Create o| 000001f0 75 72 20 6f 77 6e 20 73 74 61 63 6b 0d 01 2c 25 |ur own stack..,%| 00000200 2e 73 74 61 63 6b 20 20 20 20 20 20 20 20 5d 3a |.stack ]:| 00000210 50 25 2b 3d 26 38 30 30 3a 5b 4f 50 54 70 61 73 |P%+=&800:[OPTpas| 00000220 73 0d 01 36 25 2e 72 65 67 69 73 74 65 72 64 75 |s..6%.registerdu| 00000230 6d 70 20 5d 3a 50 25 2b 3d 26 30 34 30 3a 5b 4f |mp ]:P%+=&040:[O| 00000240 50 54 70 61 73 73 0d 01 40 04 0d 01 4a 4c 5c 20 |PTpass..@...JL\ | 00000250 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 |################| * 00000290 23 23 23 23 23 23 0d 01 54 04 0d 01 5e 24 2e 69 |######..T...^$.i| 000002a0 6e 69 74 69 61 6c 69 73 65 20 20 20 53 54 52 20 |nitialise STR | 000002b0 20 20 72 30 2c 5b 70 63 2c 23 2d 38 30 5d 0d 01 | r0,[pc,#-80]..| 000002c0 68 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |h) | 000002d0 41 44 52 20 20 20 72 30 2c 72 65 67 69 73 74 65 |ADR r0,registe| 000002e0 72 64 75 6d 70 2b 34 0d 01 72 23 20 20 20 20 20 |rdump+4..r# | 000002f0 20 20 20 20 20 20 20 20 20 53 54 4d 49 41 20 72 | STMIA r| 00000300 30 2c 7b 72 31 2d 72 31 34 7d 0d 01 7c 21 20 20 |0,{r1-r14}..|! | 00000310 20 20 20 20 20 20 20 20 20 20 20 20 53 55 42 20 | SUB | 00000320 20 20 72 31 33 2c 72 30 2c 23 38 0d 01 86 4d 5c | r13,r0,#8...M\| 00000330 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000370 2d 2d 2d 2d 2d 2d 2d 2d 0d 01 90 1e 20 20 20 20 |--------.... | 00000380 20 20 20 20 20 20 20 20 20 20 53 57 49 20 20 20 | SWI | 00000390 32 35 36 2b 32 32 0d 01 9a 1d 20 20 20 20 20 20 |256+22.... | 000003a0 20 20 20 20 20 20 20 20 53 57 49 20 20 20 32 35 | SWI 25| 000003b0 36 2b 39 0d 01 a4 1e 20 20 20 20 20 20 20 20 20 |6+9.... | 000003c0 20 20 20 20 20 53 57 49 20 20 20 32 35 36 2b 32 | SWI 256+2| 000003d0 32 0d 01 ae 1f 20 20 20 20 20 20 20 20 20 20 20 |2.... | 000003e0 20 20 20 53 57 49 20 20 20 32 35 36 2b 31 33 37 | SWI 256+137| 000003f0 0d 01 b8 2a 20 20 20 20 20 20 20 20 20 20 20 20 |...* | 00000400 20 20 53 57 49 20 20 20 22 4f 53 5f 52 65 6d 6f | SWI "OS_Remo| 00000410 76 65 43 75 72 73 6f 72 73 22 0d 01 c2 04 0d 01 |veCursors"......| 00000420 cc 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.! | 00000430 42 4c 20 20 20 20 73 65 74 63 6f 6c 6f 75 72 0d |BL setcolour.| 00000440 01 d6 21 20 20 20 20 20 20 20 20 20 20 20 20 20 |..! | 00000450 20 42 4c 20 20 20 20 72 65 73 65 74 63 6f 6c 73 | BL resetcols| 00000460 0d 01 e0 22 20 20 20 20 20 20 20 20 20 20 20 20 |..." | 00000470 20 20 42 4c 20 20 20 20 67 65 74 76 64 75 76 61 | BL getvduva| 00000480 72 73 0d 01 ea 20 20 20 20 20 20 20 20 20 20 20 |rs... | 00000490 20 20 20 20 42 4c 20 20 20 20 6e 65 77 73 68 61 | BL newsha| 000004a0 70 65 0d 01 f4 1f 20 20 20 20 20 20 20 20 20 20 |pe.... | 000004b0 20 20 20 20 42 4c 20 20 20 20 6d 61 6b 65 6e 75 | BL makenu| 000004c0 6d 0d 01 fe 23 20 20 20 20 20 20 20 20 20 20 20 |m...# | 000004d0 20 20 20 42 4c 20 20 20 20 73 77 61 70 73 63 72 | BL swapscr| 000004e0 65 65 6e 73 0d 02 08 37 20 20 20 20 20 20 20 20 |eens...7 | 000004f0 20 20 20 20 20 20 42 4c 20 20 20 20 63 6c 65 61 | BL clea| 00000500 72 73 63 72 20 20 20 20 5c 20 43 6c 65 61 72 20 |rscr \ Clear | 00000510 61 6c 6c 20 73 63 72 65 65 6e 73 0d 02 12 33 20 |all screens...3 | 00000520 20 20 20 20 20 20 20 20 20 20 20 20 20 42 4c 20 | BL | 00000530 20 20 20 73 77 61 70 73 63 72 65 65 6e 73 20 5c | swapscreens \| 00000540 20 26 20 53 79 6e 63 68 72 6f 6e 69 73 65 0d 02 | & Synchronise..| 00000550 1c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00000560 42 4c 20 20 20 20 63 6c 65 61 72 73 63 72 0d 02 |BL clearscr..| 00000570 26 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |&! | 00000580 42 4c 20 20 20 20 72 65 73 65 74 63 6f 6c 73 0d |BL resetcols.| 00000590 02 30 1e 20 20 20 20 20 20 20 20 20 20 20 20 20 |.0. | 000005a0 20 4d 4f 56 20 20 20 72 30 2c 23 31 36 0d 02 3a | MOV r0,#16..:| 000005b0 1f 2e 66 61 64 65 74 68 65 6d 61 6c 6c 20 20 42 |..fadethemall B| 000005c0 4c 20 20 20 20 66 61 64 65 6f 75 74 0d 02 44 20 |L fadeout..D | 000005d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 55 | SU| 000005e0 42 53 20 20 72 30 2c 72 30 2c 23 31 0d 02 4e 23 |BS r0,r0,#1..N#| 000005f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 4e | BN| 00000600 45 20 20 20 66 61 64 65 74 68 65 6d 61 6c 6c 0d |E fadethemall.| 00000610 02 58 04 0d 02 62 20 20 20 20 20 20 20 20 20 20 |.X...b | 00000620 20 20 20 20 20 4d 4f 56 20 20 20 72 30 2c 23 26 | MOV r0,#&| 00000630 34 30 30 0d 02 6c 25 20 20 20 20 20 20 20 20 20 |400..l% | 00000640 20 20 20 20 20 53 54 52 20 20 20 72 30 2c 73 68 | STR r0,sh| 00000650 61 70 65 74 69 6d 65 72 0d 02 76 1e 20 20 20 20 |apetimer..v. | 00000660 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 | MOV | 00000670 72 30 2c 23 31 36 0d 02 80 25 20 20 20 20 20 20 |r0,#16...% | 00000680 20 20 20 20 20 20 20 20 53 54 52 20 20 20 72 30 | STR r0| 00000690 2c 66 61 64 65 69 6e 66 6c 61 67 0d 02 8a 1e 2e |,fadeinflag.....| 000006a0 6d 61 69 6e 6c 6f 6f 70 20 20 20 20 20 4d 4f 56 |mainloop MOV| 000006b0 20 20 20 72 30 2c 23 31 39 0d 02 94 21 20 20 20 | r0,#19...! | 000006c0 20 20 20 20 20 20 20 20 20 20 20 53 57 49 20 20 | SWI | 000006d0 20 22 4f 53 5f 42 79 74 65 22 0d 02 9e 23 20 20 | "OS_Byte"...# | 000006e0 20 20 20 20 20 20 20 20 20 20 20 20 42 4c 20 20 | BL | 000006f0 20 20 73 77 61 70 73 63 72 65 65 6e 73 0d 02 a8 | swapscreens...| 00000700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 | B| 00000710 4c 20 20 20 20 63 6c 65 61 72 73 63 72 0d 02 b2 |L clearscr...| 00000720 25 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c |% L| 00000730 44 52 20 20 20 72 30 2c 73 68 61 70 65 74 69 6d |DR r0,shapetim| 00000740 65 72 0d 02 bc 20 20 20 20 20 20 20 20 20 20 20 |er... | 00000750 20 20 20 20 53 55 42 53 20 20 72 30 2c 72 30 2c | SUBS r0,r0,| 00000760 23 31 0d 02 c6 25 20 20 20 20 20 20 20 20 20 20 |#1...% | 00000770 20 20 20 20 53 54 52 20 20 20 72 30 2c 73 68 61 | STR r0,sha| 00000780 70 65 74 69 6d 65 72 0d 02 d0 1f 20 20 20 20 20 |petimer.... | 00000790 20 20 20 20 20 20 20 20 20 42 4e 45 20 20 20 63 | BNE c| 000007a0 61 72 72 79 6f 6e 0d 02 da 25 20 20 20 20 20 20 |arryon...% | 000007b0 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 72 30 | LDR r0| 000007c0 2c 74 69 6d 65 72 72 65 73 65 74 0d 02 e4 25 20 |,timerreset...% | 000007d0 20 20 20 20 20 20 20 20 20 20 20 20 20 53 54 52 | STR| 000007e0 20 20 20 72 30 2c 73 68 61 70 65 74 69 6d 65 72 | r0,shapetimer| 000007f0 0d 02 ee 1e 20 20 20 20 20 20 20 20 20 20 20 20 |.... | 00000800 20 20 4d 4f 56 20 20 20 72 30 2c 23 31 36 0d 02 | MOV r0,#16..| 00000810 f8 26 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.& | 00000820 53 54 52 20 20 20 72 30 2c 66 61 64 65 6f 75 74 |STR r0,fadeout| 00000830 66 6c 61 67 0d 03 02 21 20 20 20 20 20 20 20 20 |flag...! | 00000840 20 20 20 20 20 20 42 4c 20 20 20 20 72 65 73 65 | BL rese| 00000850 74 63 6f 6c 73 0d 03 0c 26 2e 63 61 72 72 79 6f |tcols...&.carryo| 00000860 6e 20 20 20 20 20 20 4c 44 52 20 20 20 72 30 2c |n LDR r0,| 00000870 66 61 64 65 6f 75 74 66 6c 61 67 0d 03 16 1d 20 |fadeoutflag.... | 00000880 20 20 20 20 20 20 20 20 20 20 20 20 20 43 4d 50 | CMP| 00000890 20 20 20 72 30 2c 23 30 0d 03 20 21 20 20 20 20 | r0,#0.. ! | 000008a0 20 20 20 20 20 20 20 20 20 20 42 45 51 20 20 20 | BEQ | 000008b0 6e 6f 66 61 64 65 6f 75 74 0d 03 2a 1f 20 20 20 |nofadeout..*. | 000008c0 20 20 20 20 20 20 20 20 20 20 20 42 4c 20 20 20 | BL | 000008d0 20 66 61 64 65 6f 75 74 0d 03 34 1e 20 20 20 20 | fadeout..4. | 000008e0 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 | MOV | 000008f0 72 31 2c 23 31 36 0d 03 3e 20 20 20 20 20 20 20 |r1,#16..> | 00000900 20 20 20 20 20 20 20 20 53 55 42 53 20 20 72 30 | SUBS r0| 00000910 2c 72 30 2c 23 31 0d 03 48 26 20 20 20 20 20 20 |,r0,#1..H& | 00000920 20 20 20 20 20 20 20 20 53 54 52 20 20 20 72 30 | STR r0| 00000930 2c 66 61 64 65 6f 75 74 66 6c 61 67 0d 03 52 1e |,fadeoutflag..R.| 00000940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 4e | BN| 00000950 45 20 20 20 6e 6f 66 61 64 65 0d 03 5c 25 20 20 |E nofade..\% | 00000960 20 20 20 20 20 20 20 20 20 20 20 20 53 54 52 20 | STR | 00000970 20 20 72 31 2c 66 61 64 65 69 6e 66 6c 61 67 0d | r1,fadeinflag.| 00000980 03 66 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.f | 00000990 20 42 4c 20 20 20 20 6e 65 77 73 68 61 70 65 0d | BL newshape.| 000009a0 03 70 1f 20 20 20 20 20 20 20 20 20 20 20 20 20 |.p. | 000009b0 20 42 4c 20 20 20 20 6d 61 6b 65 6e 75 6d 0d 03 | BL makenum..| 000009c0 7a 1e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |z. | 000009d0 42 20 20 20 20 20 6e 6f 66 61 64 65 0d 03 84 25 |B nofade...%| 000009e0 2e 6e 6f 66 61 64 65 6f 75 74 20 20 20 20 4c 44 |.nofadeout LD| 000009f0 52 20 20 20 72 30 2c 66 61 64 65 69 6e 66 6c 61 |R r0,fadeinfla| 00000a00 67 0d 03 8e 1d 20 20 20 20 20 20 20 20 20 20 20 |g.... | 00000a10 20 20 20 43 4d 50 20 20 20 72 30 2c 23 30 0d 03 | CMP r0,#0..| 00000a20 98 1e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.. | 00000a30 42 45 51 20 20 20 6e 6f 66 61 64 65 0d 03 a2 1e |BEQ nofade....| 00000a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 4c | BL| 00000a50 20 20 20 20 66 61 64 65 69 6e 0d 03 ac 20 20 20 | fadein... | 00000a60 20 20 20 20 20 20 20 20 20 20 20 20 53 55 42 20 | SUB | 00000a70 20 20 72 30 2c 72 30 2c 23 31 0d 03 b6 25 20 20 | r0,r0,#1...% | 00000a80 20 20 20 20 20 20 20 20 20 20 20 20 53 54 52 20 | STR | 00000a90 20 20 72 30 2c 66 61 64 65 69 6e 66 6c 61 67 0d | r0,fadeinflag.| 00000aa0 03 c0 04 0d 03 ca 1f 2e 6e 6f 66 61 64 65 20 20 |........nofade | 00000ab0 20 20 20 20 20 42 4c 20 20 20 20 63 61 6c 63 61 | BL calca| 00000ac0 6c 6c 0d 03 d4 1f 20 20 20 20 20 20 20 20 20 20 |ll.... | 00000ad0 20 20 20 20 42 4c 20 20 20 20 73 68 6f 77 6e 75 | BL shownu| 00000ae0 6d 0d 03 de 1f 20 20 20 20 20 20 20 20 20 20 20 |m.... | 00000af0 20 20 20 42 4c 20 20 20 20 70 6c 6f 74 61 6c 6c | BL plotall| 00000b00 0d 03 e8 04 0d 03 f2 1f 20 20 20 20 20 20 20 20 |........ | 00000b10 20 20 20 20 20 20 4d 4f 56 20 20 20 72 30 2c 23 | MOV r0,#| 00000b20 26 38 31 0d 03 fc 1f 20 20 20 20 20 20 20 20 20 |&81.... | 00000b30 20 20 20 20 20 4d 4f 56 20 20 20 72 31 2c 23 26 | MOV r1,#&| 00000b40 42 36 0d 04 06 1f 20 20 20 20 20 20 20 20 20 20 |B6.... | 00000b50 20 20 20 20 4d 4f 56 20 20 20 72 32 2c 23 26 46 | MOV r2,#&F| 00000b60 46 0d 04 10 22 20 20 20 20 20 20 20 20 20 20 20 |F..." | 00000b70 20 20 20 53 57 49 20 20 20 22 58 4f 53 5f 42 79 | SWI "XOS_By| 00000b80 74 65 22 0d 04 1a 1f 20 20 20 20 20 20 20 20 20 |te".... | 00000b90 20 20 20 20 20 43 4d 50 20 20 20 72 31 2c 23 26 | CMP r1,#&| 00000ba0 46 46 0d 04 24 22 20 20 20 20 20 20 20 20 20 20 |FF..$" | 00000bb0 20 20 20 20 42 45 51 20 20 20 63 68 65 63 6b 66 | BEQ checkf| 00000bc0 61 64 65 73 0d 04 2e 04 0d 04 38 1f 20 20 20 20 |ades......8. | 00000bd0 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 | MOV | 00000be0 72 33 2c 23 33 36 30 0d 04 42 22 20 20 20 20 20 |r3,#360..B" | 00000bf0 20 20 20 20 20 20 20 20 20 a4 61 64 72 28 34 2c | .adr(4,| 00000c00 73 69 6e 74 61 62 6c 65 29 0d 04 4c 1e 20 20 20 |sintable)..L. | 00000c10 20 20 20 20 20 20 20 20 20 20 20 a4 61 64 72 28 | .adr(| 00000c20 30 2c 76 61 72 73 29 0d 04 56 23 20 20 20 20 20 |0,vars)..V# | 00000c30 20 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 72 | LDR r| 00000c40 31 2c 5b 72 30 2c 23 32 38 5d 0d 04 60 1d 20 20 |1,[r0,#28]..`. | 00000c50 20 20 20 20 20 20 20 20 20 20 20 20 43 4d 50 20 | CMP | 00000c60 20 20 72 31 2c 23 30 0d 04 6a 20 20 20 20 20 20 | r1,#0..j | 00000c70 20 20 20 20 20 20 20 20 20 42 45 51 20 20 20 6e | BEQ n| 00000c80 6f 74 73 69 6e 65 70 0d 04 74 23 20 20 20 20 20 |otsinep..t# | 00000c90 20 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 72 | LDR r| 00000ca0 31 2c 5b 72 30 2c 23 33 36 5d 0d 04 7e 23 20 20 |1,[r0,#36]..~# | 00000cb0 20 20 20 20 20 20 20 20 20 20 20 20 4c 44 52 20 | LDR | 00000cc0 20 20 72 32 2c 5b 72 30 2c 23 32 30 5d 0d 04 88 | r2,[r0,#20]...| 00000cd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 | A| 00000ce0 44 44 20 20 20 72 31 2c 72 31 2c 72 32 0d 04 92 |DD r1,r1,r2...| 00000cf0 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 |' C| 00000d00 4d 50 20 20 20 72 33 2c 72 31 2c 4c 53 52 23 66 |MP r3,r1,LSR#f| 00000d10 6c 6f 61 74 0d 04 9c 29 20 20 20 20 20 20 20 20 |loat...) | 00000d20 20 20 20 20 20 20 53 55 42 4c 45 20 72 31 2c 72 | SUBLE r1,r| 00000d30 31 2c 23 33 36 30 3c 3c 66 6c 6f 61 74 0d 04 a6 |1,#360<<float...| 00000d40 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 |# S| 00000d50 54 52 20 20 20 72 31 2c 5b 72 30 2c 23 33 36 5d |TR r1,[r0,#36]| 00000d60 0d 04 b0 27 20 20 20 20 20 20 20 20 20 20 20 20 |...' | 00000d70 20 20 4d 4f 56 20 20 20 72 31 2c 72 31 2c 4c 53 | MOV r1,r1,LS| 00000d80 52 23 66 6c 6f 61 74 0d 04 ba 28 20 20 20 20 20 |R#float...( | 00000d90 20 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 72 | LDR r| 00000da0 31 2c 5b 72 34 2c 72 31 2c 4c 53 4c 23 32 5d 0d |1,[r4,r1,LSL#2].| 00000db0 04 c4 1f 20 20 20 20 20 20 20 20 20 20 20 20 20 |... | 00000dc0 20 4d 4f 56 20 20 20 72 32 2c 23 31 37 39 0d 04 | MOV r2,#179..| 00000dd0 ce 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00000de0 4d 55 4c 20 20 20 72 31 2c 72 32 2c 72 31 0d 04 |MUL r1,r2,r1..| 00000df0 d8 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.) | 00000e00 41 44 44 20 20 20 72 31 2c 72 31 2c 23 31 38 30 |ADD r1,r1,#180| 00000e10 3c 3c 66 6c 6f 61 74 0d 04 e2 22 20 20 20 20 20 |<<float..." | 00000e20 20 20 20 20 20 20 20 20 20 53 54 52 20 20 20 72 | STR r| 00000e30 31 2c 5b 72 30 2c 23 38 5d 0d 04 ec 1f 20 20 20 |1,[r0,#8].... | 00000e40 20 20 20 20 20 20 20 20 20 20 20 42 20 20 20 20 | B | 00000e50 20 64 6f 74 68 65 74 61 0d 04 f6 04 0d 05 00 22 | dotheta......."| 00000e60 2e 6e 6f 74 73 69 6e 65 70 20 20 20 20 20 4c 44 |.notsinep LD| 00000e70 52 20 20 20 72 31 2c 5b 72 30 2c 23 38 5d 0d 05 |R r1,[r0,#8]..| 00000e80 0a 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.# | 00000e90 4c 44 52 20 20 20 72 32 2c 5b 72 30 2c 23 32 30 |LDR r2,[r0,#20| 00000ea0 5d 0d 05 14 20 20 20 20 20 20 20 20 20 20 20 20 |]... | 00000eb0 20 20 20 41 44 44 20 20 20 72 31 2c 72 31 2c 72 | ADD r1,r1,r| 00000ec0 32 0d 05 1e 27 20 20 20 20 20 20 20 20 20 20 20 |2...' | 00000ed0 20 20 20 43 4d 50 20 20 20 72 33 2c 72 31 2c 4c | CMP r3,r1,L| 00000ee0 53 52 23 66 6c 6f 61 74 0d 05 28 29 20 20 20 20 |SR#float..() | 00000ef0 20 20 20 20 20 20 20 20 20 20 53 55 42 4c 45 20 | SUBLE | 00000f00 72 31 2c 72 31 2c 23 33 36 30 3c 3c 66 6c 6f 61 |r1,r1,#360<<floa| 00000f10 74 0d 05 32 22 20 20 20 20 20 20 20 20 20 20 20 |t..2" | 00000f20 20 20 20 53 54 52 20 20 20 72 31 2c 5b 72 30 2c | STR r1,[r0,| 00000f30 23 38 5d 0d 05 3c 04 0d 05 46 23 2e 64 6f 74 68 |#8]..<...F#.doth| 00000f40 65 74 61 20 20 20 20 20 20 4c 44 52 20 20 20 72 |eta LDR r| 00000f50 31 2c 5b 72 30 2c 23 33 32 5d 0d 05 50 1d 20 20 |1,[r0,#32]..P. | 00000f60 20 20 20 20 20 20 20 20 20 20 20 20 43 4d 50 20 | CMP | 00000f70 20 20 72 31 2c 23 30 0d 05 5a 20 20 20 20 20 20 | r1,#0..Z | 00000f80 20 20 20 20 20 20 20 20 20 42 45 51 20 20 20 6e | BEQ n| 00000f90 6f 74 73 69 6e 65 74 0d 05 64 23 20 20 20 20 20 |otsinet..d# | 00000fa0 20 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 72 | LDR r| 00000fb0 31 2c 5b 72 30 2c 23 34 30 5d 0d 05 6e 23 20 20 |1,[r0,#40]..n# | 00000fc0 20 20 20 20 20 20 20 20 20 20 20 20 4c 44 52 20 | LDR | 00000fd0 20 20 72 32 2c 5b 72 30 2c 23 32 34 5d 0d 05 78 | r2,[r0,#24]..x| 00000fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 | A| 00000ff0 44 44 20 20 20 72 31 2c 72 31 2c 72 32 0d 05 82 |DD r1,r1,r2...| 00001000 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 |' C| 00001010 4d 50 20 20 20 72 33 2c 72 31 2c 4c 53 52 23 66 |MP r3,r1,LSR#f| 00001020 6c 6f 61 74 0d 05 8c 29 20 20 20 20 20 20 20 20 |loat...) | 00001030 20 20 20 20 20 20 53 55 42 4c 45 20 72 31 2c 72 | SUBLE r1,r| 00001040 31 2c 23 33 36 30 3c 3c 66 6c 6f 61 74 0d 05 96 |1,#360<<float...| 00001050 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 |# S| 00001060 54 52 20 20 20 72 31 2c 5b 72 30 2c 23 34 30 5d |TR r1,[r0,#40]| 00001070 0d 05 a0 27 20 20 20 20 20 20 20 20 20 20 20 20 |...' | 00001080 20 20 4d 4f 56 20 20 20 72 31 2c 72 31 2c 4c 53 | MOV r1,r1,LS| 00001090 52 23 66 6c 6f 61 74 0d 05 aa 28 20 20 20 20 20 |R#float...( | 000010a0 20 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 72 | LDR r| 000010b0 31 2c 5b 72 34 2c 72 31 2c 4c 53 4c 23 32 5d 0d |1,[r4,r1,LSL#2].| 000010c0 05 b4 1f 20 20 20 20 20 20 20 20 20 20 20 20 20 |... | 000010d0 20 4d 4f 56 20 20 20 72 32 2c 23 31 37 39 0d 05 | MOV r2,#179..| 000010e0 be 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 000010f0 4d 55 4c 20 20 20 72 31 2c 72 32 2c 72 31 0d 05 |MUL r1,r2,r1..| 00001100 c8 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.) | 00001110 41 44 44 20 20 20 72 31 2c 72 31 2c 23 31 38 30 |ADD r1,r1,#180| 00001120 3c 3c 66 6c 6f 61 74 0d 05 d2 23 20 20 20 20 20 |<<float...# | 00001130 20 20 20 20 20 20 20 20 20 53 54 52 20 20 20 72 | STR r| 00001140 31 2c 5b 72 30 2c 23 31 32 5d 0d 05 dc 22 20 20 |1,[r0,#12]..." | 00001150 20 20 20 20 20 20 20 20 20 20 20 20 42 20 20 20 | B | 00001160 20 20 63 68 65 63 6b 66 61 64 65 73 0d 05 e6 04 | checkfades....| 00001170 0d 05 f0 23 2e 6e 6f 74 73 69 6e 65 74 20 20 20 |...#.notsinet | 00001180 20 20 4c 44 52 20 20 20 72 31 2c 5b 72 30 2c 23 | LDR r1,[r0,#| 00001190 31 32 5d 0d 05 fa 23 20 20 20 20 20 20 20 20 20 |12]...# | 000011a0 20 20 20 20 20 4c 44 52 20 20 20 72 32 2c 5b 72 | LDR r2,[r| 000011b0 30 2c 23 32 34 5d 0d 06 04 20 20 20 20 20 20 20 |0,#24]... | 000011c0 20 20 20 20 20 20 20 20 41 44 44 20 20 20 72 31 | ADD r1| 000011d0 2c 72 31 2c 72 32 0d 06 0e 27 20 20 20 20 20 20 |,r1,r2...' | 000011e0 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 72 33 | CMP r3| 000011f0 2c 72 31 2c 4c 53 52 23 66 6c 6f 61 74 0d 06 18 |,r1,LSR#float...| 00001200 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 |) S| 00001210 55 42 4c 45 20 72 31 2c 72 31 2c 23 33 36 30 3c |UBLE r1,r1,#360<| 00001220 3c 66 6c 6f 61 74 0d 06 22 23 20 20 20 20 20 20 |<float.."# | 00001230 20 20 20 20 20 20 20 20 53 54 52 20 20 20 72 31 | STR r1| 00001240 2c 5b 72 30 2c 23 31 32 5d 0d 06 2c 04 0d 06 36 |,[r0,#12]..,...6| 00001250 26 2e 63 68 65 63 6b 66 61 64 65 73 20 20 20 4c |&.checkfades L| 00001260 44 52 20 20 20 72 30 2c 66 61 64 65 6f 75 74 66 |DR r0,fadeoutf| 00001270 6c 61 67 0d 06 40 1d 20 20 20 20 20 20 20 20 20 |lag..@. | 00001280 20 20 20 20 20 43 4d 50 20 20 20 72 30 2c 23 30 | CMP r0,#0| 00001290 0d 06 4a 23 20 20 20 20 20 20 20 20 20 20 20 20 |..J# | 000012a0 20 20 42 4e 45 20 20 20 63 68 65 63 6b 65 73 63 | BNE checkesc| 000012b0 61 70 65 0d 06 54 25 20 20 20 20 20 20 20 20 20 |ape..T% | 000012c0 20 20 20 20 20 4c 44 52 20 20 20 72 30 2c 66 61 | LDR r0,fa| 000012d0 64 65 69 6e 66 6c 61 67 0d 06 5e 1d 20 20 20 20 |deinflag..^. | 000012e0 20 20 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 | CMP | 000012f0 72 30 2c 23 30 0d 06 68 23 20 20 20 20 20 20 20 |r0,#0..h# | 00001300 20 20 20 20 20 20 20 42 4e 45 20 20 20 63 68 65 | BNE che| 00001310 63 6b 65 73 63 61 70 65 0d 06 72 23 20 20 20 20 |ckescape..r# | 00001320 20 20 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 | LDR | 00001330 72 31 2c 6b 65 79 70 72 65 73 73 0d 06 7c 1d 20 |r1,keypress..|. | 00001340 20 20 20 20 20 20 20 20 20 20 20 20 20 43 4d 50 | CMP| 00001350 20 20 20 72 31 2c 23 30 0d 06 86 20 20 20 20 20 | r1,#0... | 00001360 20 20 20 20 20 20 20 20 20 20 42 45 51 20 20 20 | BEQ | 00001370 6e 65 77 69 6e 70 75 74 0d 06 90 1f 20 20 20 20 |newinput.... | 00001380 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 | MOV | 00001390 72 30 2c 23 31 32 39 0d 06 9a 1f 20 20 20 20 20 |r0,#129.... | 000013a0 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 72 | MOV r| 000013b0 31 2c 23 26 39 44 0d 06 a4 1f 20 20 20 20 20 20 |1,#&9D.... | 000013c0 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 72 32 | MOV r2| 000013d0 2c 23 26 46 46 0d 06 ae 21 20 20 20 20 20 20 20 |,#&FF...! | 000013e0 20 20 20 20 20 20 20 53 57 49 20 20 20 22 4f 53 | SWI "OS| 000013f0 5f 42 79 74 65 22 0d 06 b8 1d 20 20 20 20 20 20 |_Byte".... | 00001400 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 72 31 | CMP r1| 00001410 2c 23 30 0d 06 c2 23 20 20 20 20 20 20 20 20 20 |,#0...# | 00001420 20 20 20 20 20 53 54 52 45 51 20 72 31 2c 6b 65 | STREQ r1,ke| 00001430 79 70 72 65 73 73 0d 06 cc 23 20 20 20 20 20 20 |ypress...# | 00001440 20 20 20 20 20 20 20 20 42 20 20 20 20 20 63 68 | B ch| 00001450 65 63 6b 65 73 63 61 70 65 0d 06 d6 1f 2e 6e 65 |eckescape.....ne| 00001460 77 69 6e 70 75 74 20 20 20 20 20 4d 4f 56 20 20 |winput MOV | 00001470 20 72 30 2c 23 31 32 39 0d 06 e0 1f 20 20 20 20 | r0,#129.... | 00001480 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 | MOV | 00001490 72 31 2c 23 26 39 44 0d 06 ea 1f 20 20 20 20 20 |r1,#&9D.... | 000014a0 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 72 | MOV r| 000014b0 32 2c 23 26 46 46 0d 06 f4 21 20 20 20 20 20 20 |2,#&FF...! | 000014c0 20 20 20 20 20 20 20 20 53 57 49 20 20 20 22 4f | SWI "O| 000014d0 53 5f 42 79 74 65 22 0d 06 fe 1f 20 20 20 20 20 |S_Byte".... | 000014e0 20 20 20 20 20 20 20 20 20 43 4d 50 20 20 20 72 | CMP r| 000014f0 31 2c 23 26 46 46 0d 07 08 23 20 20 20 20 20 20 |1,#&FF...# | 00001500 20 20 20 20 20 20 20 20 42 4e 45 20 20 20 63 68 | BNE ch| 00001510 65 63 6b 65 73 63 61 70 65 0d 07 12 23 20 20 20 |eckescape...# | 00001520 20 20 20 20 20 20 20 20 20 20 20 53 54 52 20 20 | STR | 00001530 20 72 31 2c 6b 65 79 70 72 65 73 73 0d 07 1c 1e | r1,keypress....| 00001540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 4f | MO| 00001550 56 20 20 20 72 30 2c 23 31 36 0d 07 26 26 20 20 |V r0,#16..&& | 00001560 20 20 20 20 20 20 20 20 20 20 20 20 53 54 52 20 | STR | 00001570 20 20 72 30 2c 66 61 64 65 6f 75 74 66 6c 61 67 | r0,fadeoutflag| 00001580 0d 07 30 21 20 20 20 20 20 20 20 20 20 20 20 20 |..0! | 00001590 20 20 42 4c 20 20 20 20 72 65 73 65 74 63 6f 6c | BL resetcol| 000015a0 73 0d 07 3a 25 20 20 20 20 20 20 20 20 20 20 20 |s..:% | 000015b0 20 20 20 4c 44 52 20 20 20 72 30 2c 74 69 6d 65 | LDR r0,time| 000015c0 72 72 65 73 65 74 0d 07 44 25 20 20 20 20 20 20 |rreset..D% | 000015d0 20 20 20 20 20 20 20 20 53 54 52 20 20 20 72 30 | STR r0| 000015e0 2c 73 68 61 70 65 74 69 6d 65 72 0d 07 4e 04 0d |,shapetimer..N..| 000015f0 07 58 1f 2e 63 68 65 63 6b 65 73 63 61 70 65 20 |.X..checkescape | 00001600 20 4d 4f 56 20 20 20 72 30 2c 23 31 32 39 0d 07 | MOV r0,#129..| 00001610 62 1f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |b. | 00001620 4d 4f 56 20 20 20 72 31 2c 23 26 38 46 0d 07 6c |MOV r1,#&8F..l| 00001630 1f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d |. M| 00001640 4f 56 20 20 20 72 32 2c 23 26 46 46 0d 07 76 21 |OV r2,#&FF..v!| 00001650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 57 | SW| 00001660 49 20 20 20 22 4f 53 5f 42 79 74 65 22 0d 07 80 |I "OS_Byte"...| 00001670 1f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 |. C| 00001680 4d 50 20 20 20 72 31 2c 23 26 46 46 0d 07 8a 20 |MP r1,#&FF... | 00001690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 4e | BN| 000016a0 45 20 20 20 6d 61 69 6e 6c 6f 6f 70 0d 07 94 04 |E mainloop....| 000016b0 0d 07 9e 1e 2e 72 65 73 65 74 66 6f 72 66 69 6e |.....resetforfin| 000016c0 20 20 4d 4f 56 20 20 20 72 30 2c 23 31 39 0d 07 | MOV r0,#19..| 000016d0 a8 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.! | 000016e0 53 57 49 20 20 20 22 4f 53 5f 42 79 74 65 22 0d |SWI "OS_Byte".| 000016f0 07 b2 23 20 20 20 20 20 20 20 20 20 20 20 20 20 |..# | 00001700 20 42 4c 20 20 20 20 73 77 61 70 73 63 72 65 65 | BL swapscree| 00001710 6e 73 0d 07 bc 20 20 20 20 20 20 20 20 20 20 20 |ns... | 00001720 20 20 20 20 42 4c 20 20 20 20 63 6c 65 61 72 73 | BL clears| 00001730 63 72 0d 07 c6 1e 20 20 20 20 20 20 20 20 20 20 |cr.... | 00001740 20 20 20 20 4d 4f 56 20 20 20 72 30 2c 23 31 39 | MOV r0,#19| 00001750 0d 07 d0 21 20 20 20 20 20 20 20 20 20 20 20 20 |...! | 00001760 20 20 53 57 49 20 20 20 22 4f 53 5f 42 79 74 65 | SWI "OS_Byte| 00001770 22 0d 07 da 23 20 20 20 20 20 20 20 20 20 20 20 |"...# | 00001780 20 20 20 42 4c 20 20 20 20 73 77 61 70 73 63 72 | BL swapscr| 00001790 65 65 6e 73 0d 07 e4 20 20 20 20 20 20 20 20 20 |eens... | 000017a0 20 20 20 20 20 20 42 4c 20 20 20 20 63 6c 65 61 | BL clea| 000017b0 72 73 63 72 0d 07 ee 04 0d 07 f8 1f 20 20 20 20 |rscr........ | 000017c0 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 | MOV | 000017d0 72 30 2c 23 26 37 43 0d 08 02 34 20 20 20 20 20 |r0,#&7C...4 | 000017e0 20 20 20 20 20 20 20 20 20 53 57 49 20 20 20 22 | SWI "| 000017f0 58 4f 53 5f 42 79 74 65 22 20 20 20 20 5c 20 43 |XOS_Byte" \ C| 00001800 6c 65 61 72 20 45 73 63 61 70 65 0d 08 0c 04 0d |lear Escape.....| 00001810 08 16 1e 20 20 20 20 20 20 20 20 20 20 20 20 20 |... | 00001820 20 4d 4f 56 20 20 20 72 30 2c 23 31 39 0d 08 20 | MOV r0,#19.. | 00001830 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 |! S| 00001840 57 49 20 20 20 22 4f 53 5f 42 79 74 65 22 0d 08 |WI "OS_Byte"..| 00001850 2a 1e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |*. | 00001860 53 57 49 20 20 20 32 35 36 2b 32 32 0d 08 34 1d |SWI 256+22..4.| 00001870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 57 | SW| 00001880 49 20 20 20 32 35 36 2b 30 0d 08 3e 1e 20 20 20 |I 256+0..>. | 00001890 20 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 | MOV | 000018a0 20 72 30 2c 23 31 35 0d 08 48 1d 20 20 20 20 20 | r0,#15..H. | 000018b0 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 72 | MOV r| 000018c0 31 2c 23 30 0d 08 52 1d 20 20 20 20 20 20 20 20 |1,#0..R. | 000018d0 20 20 20 20 20 20 4d 4f 56 20 20 20 72 32 2c 23 | MOV r2,#| 000018e0 30 0d 08 5c 3c 20 20 20 20 20 20 20 20 20 20 20 |0..\< | 000018f0 20 20 20 53 57 49 20 20 20 22 4f 53 5f 42 79 74 | SWI "OS_Byt| 00001900 65 22 20 20 20 20 5c 20 43 6c 65 61 72 20 4b 65 |e" \ Clear Ke| 00001910 79 62 6f 61 72 64 20 42 75 66 66 65 72 0d 08 66 |yboard Buffer..f| 00001920 4d 5c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |M\--------------| 00001930 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00001960 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 08 70 26 2e 72 |----------..p&.r| 00001970 65 74 75 72 6e 20 20 20 20 20 20 20 a4 61 64 72 |eturn .adr| 00001980 28 30 2c 72 65 67 69 73 74 65 72 64 75 6d 70 29 |(0,registerdump)| 00001990 0d 08 7a 27 20 20 20 20 20 20 20 20 20 20 20 20 |..z' | 000019a0 20 20 4c 44 4d 49 41 20 72 30 2c 7b 72 30 2d 72 | LDMIA r0,{r0-r| 000019b0 31 33 2c 70 63 7d 5e 0d 08 84 04 0d 08 8e 18 2e |13,pc}^.........| 000019c0 6b 65 79 70 72 65 73 73 20 20 20 20 45 51 55 44 |keypress EQUD| 000019d0 20 20 30 0d 08 98 18 2e 73 68 61 70 65 74 69 6d | 0.....shapetim| 000019e0 65 72 20 20 45 51 55 44 20 20 30 0d 08 a2 27 2e |er EQUD 0...'.| 000019f0 74 69 6d 65 72 72 65 73 65 74 20 20 45 51 55 44 |timerreset EQUD| 00001a00 20 20 35 30 30 20 5c 20 31 30 20 73 65 63 6f 6e | 500 \ 10 secon| 00001a10 64 73 0d 08 ac 04 0d 08 b6 37 2e 66 61 64 65 6f |ds.......7.fadeo| 00001a20 75 74 66 6c 61 67 20 45 51 55 44 20 20 30 20 20 |utflag EQUD 0 | 00001a30 20 5c 20 30 2d 6e 6f 74 68 69 6e 67 20 20 20 31 | \ 0-nothing 1| 00001a40 2d 31 36 20 66 61 64 65 63 6f 75 6e 74 0d 08 c0 |-16 fadecount...| 00001a50 18 2e 66 61 64 65 69 6e 66 6c 61 67 20 20 45 51 |..fadeinflag EQ| 00001a60 55 44 20 20 30 0d 08 ca 04 0d 08 d4 27 2e 67 65 |UD 0.......'.ge| 00001a70 74 76 64 75 76 61 72 73 20 20 53 54 4d 46 44 20 |tvduvars STMFD | 00001a80 72 31 33 21 2c 7b 72 30 2d 72 31 2c 72 31 34 7d |r13!,{r0-r1,r14}| 00001a90 0d 08 de 1e 20 20 20 20 20 20 20 20 20 20 20 20 |.... | 00001aa0 20 4d 4f 56 20 20 20 72 30 2c 23 31 31 32 0d 08 | MOV r0,#112..| 00001ab0 e8 1c 20 20 20 20 20 20 20 20 20 20 20 20 20 4d |.. M| 00001ac0 4f 56 20 20 20 72 31 2c 23 31 0d 08 f2 20 20 20 |OV r1,#1... | 00001ad0 20 20 20 20 20 20 20 20 20 20 20 53 57 49 20 20 | SWI | 00001ae0 20 22 4f 53 5f 42 79 74 65 22 0d 08 fc 1e 20 20 | "OS_Byte".... | 00001af0 20 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 | MOV | 00001b00 20 72 30 2c 23 31 31 33 0d 09 06 1c 20 20 20 20 | r0,#113.... | 00001b10 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 72 | MOV r| 00001b20 31 2c 23 32 0d 09 10 20 20 20 20 20 20 20 20 20 |1,#2... | 00001b30 20 20 20 20 20 53 57 49 20 20 20 22 4f 53 5f 42 | SWI "OS_B| 00001b40 79 74 65 22 0d 09 1a 25 20 20 20 20 20 20 20 20 |yte"...% | 00001b50 20 20 20 20 20 41 44 52 20 20 20 72 30 2c 73 63 | ADR r0,sc| 00001b60 72 65 65 6e 62 61 73 65 73 0d 09 24 1c 20 20 20 |reenbases..$. | 00001b70 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 | MOV | 00001b80 72 31 2c 72 30 0d 09 2e 2c 20 20 20 20 20 20 20 |r1,r0..., | 00001b90 20 20 20 20 20 20 53 57 49 20 20 20 22 4f 53 5f | SWI "OS_| 00001ba0 52 65 61 64 56 64 75 56 61 72 69 61 62 6c 65 73 |ReadVduVariables| 00001bb0 22 0d 09 38 26 20 20 20 20 20 20 20 20 20 20 20 |"..8& | 00001bc0 20 20 4c 44 4d 46 44 20 72 31 33 21 2c 7b 72 30 | LDMFD r13!,{r0| 00001bd0 2c 72 31 2c 70 63 7d 0d 09 42 04 0d 09 4c 18 2e |,r1,pc}..B...L..| 00001be0 62 61 6e 6b 20 20 20 20 20 20 20 20 45 51 55 44 |bank EQUD| 00001bf0 20 20 31 0d 09 56 2b 2e 73 63 72 65 65 6e 62 61 | 1..V+.screenba| 00001c00 73 65 73 20 45 51 55 44 20 20 31 34 38 3a 45 51 |ses EQUD 148:EQ| 00001c10 55 44 20 31 34 39 3a 45 51 55 44 20 2d 31 0d 09 |UD 149:EQUD -1..| 00001c20 60 04 0d 09 6a 2a 2e 73 77 61 70 73 63 72 65 65 |`...j*.swapscree| 00001c30 6e 73 20 53 54 4d 46 44 20 72 31 33 21 2c 7b 72 |ns STMFD r13!,{r| 00001c40 30 2c 72 31 2c 72 33 2c 72 31 34 7d 0d 09 74 1f |0,r1,r3,r14}..t.| 00001c50 20 20 20 20 20 20 20 20 20 20 20 20 20 41 44 52 | ADR| 00001c60 20 20 20 72 31 34 2c 62 61 6e 6b 0d 09 7e 1e 20 | r14,bank..~. | 00001c70 20 20 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 | MOV | 00001c80 20 20 72 30 2c 23 31 31 33 0d 09 88 1f 20 20 20 | r0,#113.... | 00001c90 20 20 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 | LDR | 00001ca0 72 31 2c 5b 72 31 34 5d 0d 09 92 1d 20 20 20 20 |r1,[r14].... | 00001cb0 20 20 20 20 20 20 20 20 20 82 20 20 20 72 33 2c | . r3,| 00001cc0 72 31 2c 23 33 0d 09 9c 20 20 20 20 20 20 20 20 |r1,#3... | 00001cd0 20 20 20 20 20 20 53 57 49 20 20 20 22 4f 53 5f | SWI "OS_| 00001ce0 42 79 74 65 22 0d 09 a6 1f 20 20 20 20 20 20 20 |Byte".... | 00001cf0 20 20 20 20 20 20 53 54 52 20 20 20 72 33 2c 5b | STR r3,[| 00001d00 72 31 34 5d 0d 09 b0 29 20 20 20 20 20 20 20 20 |r14]...) | 00001d10 20 20 20 20 20 4c 44 52 20 20 20 72 31 32 2c 5b | LDR r12,[| 00001d20 72 31 34 2c 72 33 2c 4c 53 4c 23 32 5d 0d 09 ba |r14,r3,LSL#2]...| 00001d30 29 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 44 |) LD| 00001d40 4d 46 44 20 72 31 33 21 2c 7b 72 30 2c 72 31 2c |MFD r13!,{r0,r1,| 00001d50 72 33 2c 70 63 7d 0d 09 c4 04 0d 09 ce 48 5c 20 |r3,pc}.......H\ | 00001d60 45 61 63 68 20 62 61 6c 6c 20 69 73 20 32 30 20 |Each ball is 20 | 00001d70 62 79 20 31 36 20 61 6e 64 20 68 61 73 20 65 69 |by 16 and has ei| 00001d80 67 68 74 20 76 65 72 73 69 6f 6e 73 20 66 6f 72 |ght versions for| 00001d90 20 65 61 63 68 20 70 69 78 65 6c 20 6f 66 66 73 | each pixel offs| 00001da0 65 74 0d 09 d8 35 5c 20 4d 61 73 6b 20 64 61 74 |et...5\ Mask dat| 00001db0 61 20 66 69 72 73 74 20 66 6f 6c 6c 6f 77 65 64 |a first followed| 00001dc0 20 62 79 20 37 20 64 69 66 66 65 72 65 6e 74 20 | by 7 different | 00001dd0 63 6f 6c 6f 75 72 73 0d 09 e2 2c 5c 20 45 61 63 |colours...,\ Eac| 00001de0 68 20 73 65 74 20 6f 66 20 73 70 72 69 74 65 73 |h set of sprites| 00001df0 20 69 73 20 26 36 30 30 20 69 6e 20 6c 65 6e 67 | is &600 in leng| 00001e00 74 68 2e 0d 09 ec 04 0d 09 f6 22 2e 62 61 6c 6c |th........".ball| 00001e10 64 61 74 61 20 5d 3a 50 25 2b 3d 26 32 41 30 30 |data ]:P%+=&2A00| 00001e20 3a 5b 4f 50 54 70 61 73 73 0d 0a 00 26 2e 70 6c |:[OPTpass...&.pl| 00001e30 6f 74 61 6c 6c 20 20 53 54 4d 46 44 20 20 72 31 |otall STMFD r1| 00001e40 33 21 2c 7b 72 30 2d 72 31 31 2c 72 31 34 7d 0d |3!,{r0-r11,r14}.| 00001e50 0a 0a 1f 20 20 20 20 20 20 20 20 20 20 a4 61 64 |... .ad| 00001e60 72 28 31 30 2c 62 61 6c 6c 64 61 74 61 29 0d 0a |r(10,balldata)..| 00001e70 14 3c 20 20 20 20 20 20 20 20 20 20 a4 61 64 72 |.< .adr| 00001e80 28 31 31 2c 7a 6f 72 64 65 72 29 20 20 20 20 20 |(11,zorder) | 00001e90 20 20 20 5c 20 41 64 64 72 65 73 73 20 6f 66 20 | \ Address of | 00001ea0 70 6c 6f 74 20 6f 72 64 65 72 0d 0a 1e 1e 20 20 |plot order.... | 00001eb0 20 20 20 20 20 20 20 20 a4 61 64 72 28 31 34 2c | .adr(14,| 00001ec0 64 65 73 74 2d 31 36 29 0d 0a 28 20 20 20 20 20 |dest-16)..( | 00001ed0 20 20 20 20 20 20 4c 44 52 20 20 20 20 72 39 2c | LDR r9,| 00001ee0 6e 6f 63 6f 6f 72 64 73 0d 0a 32 25 20 20 20 20 |nocoords..2% | 00001ef0 20 20 20 20 20 20 41 44 44 20 20 20 20 72 31 31 | ADD r11| 00001f00 2c 72 31 31 2c 72 39 2c 4c 53 4c 23 32 0d 0a 3c |,r11,r9,LSL#2..<| 00001f10 1f 20 20 20 20 20 20 20 20 20 20 53 55 42 20 20 |. SUB | 00001f20 20 20 72 31 31 2c 72 31 31 2c 23 34 0d 0a 46 21 | r11,r11,#4..F!| 00001f30 2e 6d 61 69 6e 6c 6f 6f 70 20 4c 44 52 20 20 20 |.mainloop LDR | 00001f40 20 72 37 2c 5b 72 31 31 5d 2c 23 2d 34 0d 0a 50 | r7,[r11],#-4..P| 00001f50 24 20 20 20 20 20 20 20 20 20 20 41 44 44 20 20 |$ ADD | 00001f60 20 20 72 37 2c 72 31 34 2c 72 37 2c 4c 53 4c 23 | r7,r14,r7,LSL#| 00001f70 34 0d 0a 5a 25 20 20 20 20 20 20 20 20 20 20 4c |4..Z% L| 00001f80 44 4d 49 41 20 20 72 37 2c 7b 72 30 2c 72 31 2c |DMIA r7,{r0,r1,| 00001f90 72 34 2c 72 32 7d 0d 0a 64 1a 20 20 20 20 20 20 |r4,r2}..d. | 00001fa0 20 20 20 20 4d 4f 56 20 20 20 20 72 32 2c 72 34 | MOV r2,r4| 00001fb0 0d 0a 6e 04 0d 0a 78 1b 20 20 20 20 20 20 20 20 |..n...x. | 00001fc0 20 20 80 20 20 20 20 72 34 2c 72 30 2c 23 37 0d | . r4,r0,#7.| 00001fd0 0a 82 1d 20 20 20 20 20 20 20 20 20 20 42 49 43 |... BIC| 00001fe0 20 20 20 20 72 30 2c 72 30 2c 23 37 0d 0a 8c 24 | r0,r0,#7...$| 00001ff0 20 20 20 20 20 20 20 20 20 20 41 44 44 20 20 20 | ADD | 00002000 20 72 30 2c 72 31 32 2c 72 30 2c 4c 53 52 23 31 | r0,r12,r0,LSR#1| 00002010 0d 0a 96 23 20 20 20 20 20 20 20 20 20 20 41 44 |...# AD| 00002020 44 20 20 20 20 72 30 2c 72 30 2c 72 31 2c 4c 53 |D r0,r0,r1,LS| 00002030 4c 23 37 0d 0a a0 3a 20 20 20 20 20 20 20 20 20 |L#7...: | 00002040 20 41 44 44 20 20 20 20 72 30 2c 72 30 2c 72 31 | ADD r0,r0,r1| 00002050 2c 4c 53 4c 23 35 20 20 20 20 5c 20 72 30 20 69 |,LSL#5 \ r0 i| 00002060 73 20 73 63 72 65 65 6e 20 61 64 64 72 0d 0a aa |s screen addr...| 00002070 04 0d 0a b4 24 20 20 20 20 20 20 20 20 20 20 41 |....$ A| 00002080 44 44 20 20 20 20 72 31 2c 72 31 30 2c 72 34 2c |DD r1,r10,r4,| 00002090 4c 53 4c 23 37 0d 0a be 38 20 20 20 20 20 20 20 |LSL#7...8 | 000020a0 20 20 20 41 44 44 20 20 20 20 72 31 2c 72 31 2c | ADD r1,r1,| 000020b0 72 34 2c 4c 53 4c 23 36 20 20 20 20 5c 20 72 31 |r4,LSL#6 \ r1| 000020c0 20 69 73 20 6d 61 73 6b 20 61 64 64 72 0d 0a c8 | is mask addr...| 000020d0 38 20 20 20 20 20 20 20 20 20 20 41 44 44 20 20 |8 ADD | 000020e0 20 20 72 32 2c 72 31 2c 72 32 20 20 20 20 20 20 | r2,r1,r2 | 000020f0 20 20 20 20 5c 20 72 32 20 69 73 20 62 61 6c 6c | \ r2 is ball| 00002100 20 61 64 64 72 0d 0a d2 21 20 20 20 20 20 20 20 | addr...! | 00002110 20 20 20 5d 3a e3 49 25 3d 31 b8 31 36 3a 5b 4f | ]:.I%=1.16:[O| 00002120 50 54 70 61 73 73 0d 0a dc 3d 20 20 20 20 20 20 |PTpass...= | 00002130 20 20 20 20 4c 44 4d 49 41 20 20 72 30 2c 7b 72 | LDMIA r0,{r| 00002140 33 2d 72 35 7d 20 20 20 20 20 20 20 20 5c 20 53 |3-r5} \ S| 00002150 70 65 65 64 79 20 6d 61 73 6b 20 61 6e 64 20 70 |peedy mask and p| 00002160 6c 6f 74 0d 0a e6 20 20 20 20 20 20 20 20 20 20 |lot... | 00002170 20 4c 44 4d 49 41 20 20 72 31 21 2c 7b 72 36 2d | LDMIA r1!,{r6-| 00002180 72 38 7d 0d 0a f0 1b 20 20 20 20 20 20 20 20 20 |r8}.... | 00002190 20 80 20 20 20 20 72 33 2c 72 33 2c 72 36 0d 0a | . r3,r3,r6..| 000021a0 fa 1b 20 20 20 20 20 20 20 20 20 20 80 20 20 20 |.. . | 000021b0 20 72 34 2c 72 34 2c 72 37 0d 0b 04 1b 20 20 20 | r4,r4,r7.... | 000021c0 20 20 20 20 20 20 20 80 20 20 20 20 72 35 2c 72 | . r5,r| 000021d0 35 2c 72 38 0d 0b 0e 20 20 20 20 20 20 20 20 20 |5,r8... | 000021e0 20 20 4c 44 4d 49 41 20 20 72 32 21 2c 7b 72 36 | LDMIA r2!,{r6| 000021f0 2d 72 38 7d 0d 0b 18 1c 20 20 20 20 20 20 20 20 |-r8}.... | 00002200 20 20 84 52 20 20 20 20 72 33 2c 72 33 2c 72 36 | .R r3,r3,r6| 00002210 0d 0b 22 1c 20 20 20 20 20 20 20 20 20 20 84 52 |..". .R| 00002220 20 20 20 20 72 34 2c 72 34 2c 72 37 0d 0b 2c 1c | r4,r4,r7..,.| 00002230 20 20 20 20 20 20 20 20 20 20 84 52 20 20 20 20 | .R | 00002240 72 35 2c 72 35 2c 72 38 0d 0b 36 1f 20 20 20 20 |r5,r5,r8..6. | 00002250 20 20 20 20 20 20 53 54 4d 49 41 20 20 72 30 2c | STMIA r0,| 00002260 7b 72 33 2d 72 35 7d 0d 0b 40 1f 20 20 20 20 20 |{r3-r5}..@. | 00002270 20 20 20 20 20 41 44 44 20 20 20 20 72 30 2c 72 | ADD r0,r| 00002280 30 2c 23 31 36 30 0d 0b 4a 1a 20 20 20 20 20 20 |0,#160..J. | 00002290 20 20 20 20 5d 3a ed 3a 5b 4f 50 54 70 61 73 73 | ]:.:[OPTpass| 000022a0 0d 0b 54 1d 20 20 20 20 20 20 20 20 20 20 53 55 |..T. SU| 000022b0 42 53 20 20 20 72 39 2c 72 39 2c 23 31 0d 0b 5e |BS r9,r9,#1..^| 000022c0 1d 20 20 20 20 20 20 20 20 20 20 42 4e 45 20 20 |. BNE | 000022d0 20 20 6d 61 69 6e 6c 6f 6f 70 0d 0b 68 25 20 20 | mainloop..h% | 000022e0 20 20 20 20 20 20 20 20 4c 44 4d 46 44 20 20 72 | LDMFD r| 000022f0 31 33 21 2c 7b 72 30 2d 72 31 31 2c 70 63 7d 0d |13!,{r0-r11,pc}.| 00002300 0b 72 04 0d 0b 7c 09 2e 76 61 72 73 0d 0b 86 16 |.r...|..vars....| 00002310 2e 6e 6f 63 6f 6f 72 64 73 20 45 51 55 44 20 20 |.nocoords EQUD | 00002320 20 30 0d 0b 90 16 2e 63 6f 6f 72 64 73 61 64 20 | 0.....coordsad | 00002330 45 51 55 44 20 20 20 30 0d 0b 9a 16 2e 70 68 69 |EQUD 0.....phi| 00002340 20 20 20 20 20 20 45 51 55 44 20 20 20 30 0d 0b | EQUD 0..| 00002350 a4 16 2e 74 68 65 74 61 20 20 20 20 45 51 55 44 |...theta EQUD| 00002360 20 20 20 30 0d 0b ae 20 2e 64 61 74 61 61 64 64 | 0... .dataadd| 00002370 20 20 45 51 55 44 20 20 20 28 64 65 73 74 2d 76 | EQUD (dest-v| 00002380 61 72 73 29 0d 0b b8 04 0d 0b c2 16 2e 70 68 69 |ars).........phi| 00002390 69 6e 63 20 20 20 45 51 55 44 20 20 20 30 0d 0b |inc EQUD 0..| 000023a0 cc 16 2e 74 68 65 74 61 69 6e 63 20 45 51 55 44 |...thetainc EQUD| 000023b0 20 20 20 30 0d 0b d6 16 2e 70 68 69 73 69 6e 20 | 0.....phisin | 000023c0 20 20 45 51 55 44 20 20 20 30 0d 0b e0 16 2e 74 | EQUD 0.....t| 000023d0 68 65 74 61 73 69 6e 20 45 51 55 44 20 20 20 30 |hetasin EQUD 0| 000023e0 0d 0b ea 16 2e 70 68 69 61 6e 67 6c 65 20 45 51 |.....phiangle EQ| 000023f0 55 44 20 20 20 30 0d 0b f4 16 2e 74 68 65 61 6e |UD 0.....thean| 00002400 67 6c 65 20 45 51 55 44 20 20 20 30 0d 0b fe 04 |gle EQUD 0....| 00002410 0d 0c 08 2b 5c 20 44 69 73 70 6c 61 79 20 6e 75 |...+\ Display nu| 00002420 6d 62 65 72 20 6f 66 20 62 61 6c 6c 73 20 6f 6e |mber of balls on| 00002430 20 74 68 65 20 73 63 72 65 65 6e 0d 0c 12 29 2e | the screen...).| 00002440 73 68 6f 77 6e 75 6d 20 20 53 54 4d 46 44 20 20 |shownum STMFD | 00002450 72 31 33 21 2c 7b 72 30 2d 72 36 2c 72 31 32 2c |r13!,{r0-r6,r12,| 00002460 72 31 34 7d 0d 0c 1c 20 20 20 20 20 20 20 20 20 |r14}... | 00002470 20 20 41 44 44 20 20 20 20 72 31 32 2c 31 32 2c | ADD r12,12,| 00002480 23 31 30 30 0d 0c 26 1c 20 20 20 20 20 20 20 20 |#100..&. | 00002490 20 20 41 44 52 20 20 20 20 72 30 2c 62 69 74 73 | ADR r0,bits| 000024a0 0d 0c 30 32 20 20 20 20 20 20 20 20 20 20 4c 44 |..02 LD| 000024b0 4d 49 41 20 20 72 30 21 2c 7b 72 31 2d 72 36 7d |MIA r0!,{r1-r6}| 000024c0 3a 53 54 4d 49 41 20 72 31 32 2c 7b 72 31 2d 72 |:STMIA r12,{r1-r| 000024d0 33 7d 0d 0c 3a 32 20 20 20 20 20 20 20 20 20 20 |3}..:2 | 000024e0 41 44 44 20 20 20 20 72 31 32 2c 31 32 2c 23 31 |ADD r12,12,#1| 000024f0 36 30 3a 53 54 4d 49 41 20 72 31 32 2c 7b 72 34 |60:STMIA r12,{r4| 00002500 2d 72 36 7d 0d 0c 44 44 20 20 20 20 20 20 20 20 |-r6}..DD | 00002510 20 20 41 44 44 20 20 20 20 72 31 32 2c 31 32 2c | ADD r12,12,| 00002520 23 31 36 30 3a 4c 44 4d 49 41 20 72 30 21 2c 7b |#160:LDMIA r0!,{| 00002530 72 31 2d 72 36 7d 3a 53 54 4d 49 41 20 72 31 32 |r1-r6}:STMIA r12| 00002540 2c 7b 72 31 2d 72 33 7d 0d 0c 4e 32 20 20 20 20 |,{r1-r3}..N2 | 00002550 20 20 20 20 20 20 41 44 44 20 20 20 20 72 31 32 | ADD r12| 00002560 2c 31 32 2c 23 31 36 30 3a 53 54 4d 49 41 20 72 |,12,#160:STMIA r| 00002570 31 32 2c 7b 72 34 2d 72 36 7d 0d 0c 58 44 20 20 |12,{r4-r6}..XD | 00002580 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 72 | ADD r| 00002590 31 32 2c 31 32 2c 23 31 36 30 3a 4c 44 4d 49 41 |12,12,#160:LDMIA| 000025a0 20 72 30 21 2c 7b 72 31 2d 72 36 7d 3a 53 54 4d | r0!,{r1-r6}:STM| 000025b0 49 41 20 72 31 32 2c 7b 72 31 2d 72 33 7d 0d 0c |IA r12,{r1-r3}..| 000025c0 62 32 20 20 20 20 20 20 20 20 20 20 41 44 44 20 |b2 ADD | 000025d0 20 20 20 72 31 32 2c 31 32 2c 23 31 36 30 3a 53 | r12,12,#160:S| 000025e0 54 4d 49 41 20 72 31 32 2c 7b 72 34 2d 72 36 7d |TMIA r12,{r4-r6}| 000025f0 0d 0c 6c 44 20 20 20 20 20 20 20 20 20 20 41 44 |..lD AD| 00002600 44 20 20 20 20 72 31 32 2c 31 32 2c 23 31 36 30 |D r12,12,#160| 00002610 3a 4c 44 4d 49 41 20 72 30 21 2c 7b 72 31 2d 72 |:LDMIA r0!,{r1-r| 00002620 36 7d 3a 53 54 4d 49 41 20 72 31 32 2c 7b 72 31 |6}:STMIA r12,{r1| 00002630 2d 72 33 7d 0d 0c 76 32 20 20 20 20 20 20 20 20 |-r3}..v2 | 00002640 20 20 41 44 44 20 20 20 20 72 31 32 2c 31 32 2c | ADD r12,12,| 00002650 23 31 36 30 3a 53 54 4d 49 41 20 72 31 32 2c 7b |#160:STMIA r12,{| 00002660 72 34 2d 72 36 7d 0d 0c 80 28 20 20 20 20 20 20 |r4-r6}...( | 00002670 20 20 20 20 4c 44 4d 46 44 20 20 72 31 33 21 2c | LDMFD r13!,| 00002680 7b 72 30 2d 72 36 2c 72 31 32 2c 70 63 7d 0d 0c |{r0-r6,r12,pc}..| 00002690 8a 04 0d 0c 94 22 2e 62 69 74 73 20 20 20 20 20 |.....".bits | 000026a0 5d 3a 50 25 2b 3d 34 2a 38 2a 33 3a 5b 4f 50 54 |]:P%+=4*8*3:[OPT| 000026b0 70 61 73 73 0d 0c 9e 04 0d 0c a8 39 5c 20 43 72 |pass.......9\ Cr| 000026c0 65 61 74 65 20 73 63 72 65 65 6e 20 64 61 74 61 |eate screen data| 000026d0 20 66 6f 72 20 61 20 6e 75 6d 62 65 72 2c 20 72 | for a number, r| 000026e0 61 74 68 65 72 20 74 68 61 6e 20 75 73 65 20 4f |ather than use O| 000026f0 53 0d 0c b2 26 2e 6d 61 6b 65 6e 75 6d 20 20 53 |S...&.makenum S| 00002700 54 4d 46 44 20 20 72 31 33 21 2c 7b 72 30 2d 72 |TMFD r13!,{r0-r| 00002710 31 32 2c 72 31 34 7d 0d 0c bc 1e 20 20 20 20 20 |12,r14}.... | 00002720 20 20 20 20 20 a4 6c 64 72 28 30 2c 6e 6f 63 6f | .ldr(0,noco| 00002730 6f 72 64 73 29 0d 0c c6 1e 20 20 20 20 20 20 20 |ords).... | 00002740 20 20 20 41 44 52 20 20 20 20 72 31 2c 62 75 66 | ADR r1,buf| 00002750 66 65 72 0d 0c d0 1b 20 20 20 20 20 20 20 20 20 |fer.... | 00002760 20 4d 4f 56 20 20 20 20 72 32 2c 23 31 36 0d 0c | MOV r2,#16..| 00002770 da 2a 20 20 20 20 20 20 20 20 20 20 53 57 49 20 |.* SWI | 00002780 20 20 20 22 4f 53 5f 43 6f 6e 76 65 72 74 43 61 | "OS_ConvertCa| 00002790 72 64 69 6e 61 6c 32 22 0d 0c e4 1c 20 20 20 20 |rdinal2".... | 000027a0 20 20 20 20 20 20 4c 44 52 20 20 20 20 72 32 2c | LDR r2,| 000027b0 5b 72 30 5d 0d 0c ee 1d 20 20 20 20 20 20 20 20 |[r0].... | 000027c0 20 20 53 55 42 20 20 20 20 72 31 2c 72 31 2c 72 | SUB r1,r1,r| 000027d0 30 0d 0c f8 1a 20 20 20 20 20 20 20 20 20 20 43 |0.... C| 000027e0 4d 50 20 20 20 20 72 31 2c 23 31 0d 0d 02 44 20 |MP r1,#1...D | 000027f0 20 20 20 20 20 20 20 20 20 ec 51 20 20 72 32 2c | .Q r2,| 00002800 72 32 2c 4c 53 4c 23 31 36 20 20 5c 20 4d 61 78 |r2,LSL#16 \ Max| 00002810 69 6d 75 6d 20 73 74 72 69 6e 67 20 6c 65 6e 67 |imum string leng| 00002820 74 68 20 6f 66 20 33 20 28 30 2d 39 39 39 29 0d |th of 3 (0-999).| 00002830 0d 0c 1e 20 20 20 20 20 20 20 20 20 20 84 52 45 |... .RE| 00002840 51 20 20 72 32 2c 72 32 2c 23 26 33 30 0d 0d 16 |Q r2,r2,#&30...| 00002850 41 20 20 20 20 20 20 20 20 20 20 84 52 45 51 20 |A .REQ | 00002860 20 72 32 2c 72 32 2c 23 26 33 30 30 30 20 20 5c | r2,r2,#&3000 \| 00002870 20 41 64 64 20 6c 65 61 64 69 6e 67 20 7a 65 72 | Add leading zer| 00002880 6f 73 20 69 66 20 72 65 71 75 69 72 65 64 0d 0d |os if required..| 00002890 20 1a 20 20 20 20 20 20 20 20 20 20 43 4d 50 20 | . CMP | 000028a0 20 20 20 72 31 2c 23 32 0d 0d 2a 1d 20 20 20 20 | r1,#2..*. | 000028b0 20 20 20 20 20 20 ec 51 20 20 72 32 2c 72 32 2c | .Q r2,r2,| 000028c0 4c 53 4c 23 38 0d 0d 34 1e 20 20 20 20 20 20 20 |LSL#8..4. | 000028d0 20 20 20 84 52 45 51 20 20 72 32 2c 72 32 2c 23 | .REQ r2,r2,#| 000028e0 26 33 30 0d 0d 3e 1a 20 20 20 20 20 20 20 20 20 |&30..>. | 000028f0 20 4d 4f 56 20 20 20 20 72 31 2c 23 33 0d 0d 48 | MOV r1,#3..H| 00002900 1c 20 20 20 20 20 20 20 20 20 20 41 44 52 20 20 |. ADR | 00002910 20 20 72 30 2c 62 69 74 73 0d 0d 52 20 20 20 20 | r0,bits..R | 00002920 20 20 20 20 20 20 20 41 44 52 20 20 20 20 72 33 | ADR r3| 00002930 2c 66 6f 6e 74 64 61 74 61 0d 0d 5c 1d 2e 6e 75 |,fontdata..\..nu| 00002940 6d 62 6c 6f 6f 70 20 80 20 20 20 20 72 34 2c 72 |mbloop . r4,r| 00002950 32 2c 23 26 46 46 0d 0d 66 20 20 20 20 20 20 20 |2,#&FF..f | 00002960 20 20 20 20 4d 4f 56 20 20 20 20 72 32 2c 72 32 | MOV r2,r2| 00002970 2c 4c 53 52 23 38 0d 0d 70 1e 20 20 20 20 20 20 |,LSR#8..p. | 00002980 20 20 20 20 53 55 42 20 20 20 20 72 34 2c 72 34 | SUB r4,r4| 00002990 2c 23 34 38 0d 0d 7a 29 20 20 20 20 20 20 20 20 |,#48..z) | 000029a0 20 20 41 44 44 20 20 20 20 72 34 2c 72 33 2c 72 | ADD r4,r3,r| 000029b0 34 2c 4c 53 4c 23 35 20 5c 20 2a 33 32 0d 0d 84 |4,LSL#5 \ *32...| 000029c0 20 20 20 20 20 20 20 20 20 20 20 4c 44 4d 49 41 | LDMIA| 000029d0 20 20 72 34 2c 7b 72 35 2d 72 31 32 7d 0d 0d 8e | r4,{r5-r12}...| 000029e0 1a 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 |. MOV | 000029f0 20 20 72 34 2c 72 30 0d 0d 98 30 20 20 20 20 20 | r4,r0...0 | 00002a00 20 20 20 20 20 53 54 52 20 20 20 20 72 35 2c 5b | STR r5,[| 00002a10 72 34 5d 2c 23 31 32 3a 53 54 52 20 72 36 2c 5b |r4],#12:STR r6,[| 00002a20 72 34 5d 2c 23 31 32 0d 0d a2 30 20 20 20 20 20 |r4],#12...0 | 00002a30 20 20 20 20 20 53 54 52 20 20 20 20 72 37 2c 5b | STR r7,[| 00002a40 72 34 5d 2c 23 31 32 3a 53 54 52 20 72 38 2c 5b |r4],#12:STR r8,[| 00002a50 72 34 5d 2c 23 31 32 0d 0d ac 31 20 20 20 20 20 |r4],#12...1 | 00002a60 20 20 20 20 20 53 54 52 20 20 20 20 72 39 2c 5b | STR r9,[| 00002a70 72 34 5d 2c 23 31 32 3a 53 54 52 20 72 31 30 2c |r4],#12:STR r10,| 00002a80 5b 72 34 5d 2c 23 31 32 0d 0d b6 32 20 20 20 20 |[r4],#12...2 | 00002a90 20 20 20 20 20 20 53 54 52 20 20 20 20 72 31 31 | STR r11| 00002aa0 2c 5b 72 34 5d 2c 23 31 32 3a 53 54 52 20 72 31 |,[r4],#12:STR r1| 00002ab0 32 2c 5b 72 34 5d 2c 23 31 32 0d 0d c0 1d 20 20 |2,[r4],#12.... | 00002ac0 20 20 20 20 20 20 20 20 41 44 44 20 20 20 20 72 | ADD r| 00002ad0 30 2c 72 30 2c 23 34 0d 0d ca 1d 20 20 20 20 20 |0,r0,#4.... | 00002ae0 20 20 20 20 20 53 55 42 53 20 20 20 72 31 2c 72 | SUBS r1,r| 00002af0 31 2c 23 31 0d 0d d4 1d 20 20 20 20 20 20 20 20 |1,#1.... | 00002b00 20 20 42 4e 45 20 20 20 20 6e 75 6d 62 6c 6f 6f | BNE numbloo| 00002b10 70 0d 0d de 25 20 20 20 20 20 20 20 20 20 20 4c |p...% L| 00002b20 44 4d 46 44 20 20 72 31 33 21 2c 7b 72 30 2d 72 |DMFD r13!,{r0-r| 00002b30 31 32 2c 70 63 7d 0d 0d e8 04 0d 0d f2 1f 2e 62 |12,pc}.........b| 00002b40 75 66 66 65 72 20 20 20 5d 3a 50 25 2b 3d 31 36 |uffer ]:P%+=16| 00002b50 3a 5b 4f 50 54 70 61 73 73 0d 0d fc 21 2e 66 6f |:[OPTpass...!.fo| 00002b60 6e 74 64 61 74 61 20 5d 3a 50 25 2b 3d 26 31 34 |ntdata ]:P%+=&14| 00002b70 30 3a 5b 4f 50 54 70 61 73 73 0d 0e 06 04 0d 0e |0:[OPTpass......| 00002b80 10 4b 5d 3a 63 6f 75 6e 74 3d 30 3a 63 6f 6f 72 |.K]:count=0:coor| 00002b90 64 73 3d 31 3a 63 70 3d 32 3a 73 74 3d 33 3a 73 |ds=1:cp=2:st=3:s| 00002ba0 70 3d 34 3a 63 74 3d 35 3a 6e 73 74 3d 36 3a 6e |p=4:ct=5:nst=6:n| 00002bb0 73 70 3d 37 3a 78 3d 38 3a 79 3d 39 3a 7a 3d 31 |sp=7:x=8:y=9:z=1| 00002bc0 30 3a 66 72 61 63 3d 31 31 0d 0e 1a 2b 6e 65 77 |0:frac=11...+new| 00002bd0 78 3d 31 32 3a 6e 65 77 79 3d 78 3a 74 6f 67 6f |x=12:newy=x:togo| 00002be0 3d 31 34 3a 74 65 6d 70 3d 31 32 3a 5b 4f 50 54 |=14:temp=12:[OPT| 00002bf0 70 61 73 73 0d 0e 24 04 0d 0e 2e 4d 5c 20 54 68 |pass..$....M\ Th| 00002c00 69 73 20 72 6f 75 74 69 6e 65 20 74 72 61 6e 73 |is routine trans| 00002c10 66 6f 72 6d 73 20 63 6f 6f 72 64 69 6e 61 74 65 |forms coordinate| 00002c20 73 20 61 72 6f 75 6e 64 20 32 20 61 78 69 73 2c |s around 2 axis,| 00002c30 20 61 6e 64 20 61 64 64 73 20 70 65 72 73 70 65 | and adds perspe| 00002c40 63 74 69 76 65 0d 0e 38 26 2e 63 61 6c 63 61 6c |ctive..8&.calcal| 00002c50 6c 20 20 53 54 4d 46 44 20 20 72 31 33 21 2c 7b |l STMFD r13!,{| 00002c60 72 30 2d 72 31 32 2c 72 31 34 7d 0d 0e 42 1c 20 |r0-r12,r14}..B. | 00002c70 20 20 20 20 20 20 20 20 20 41 44 52 20 20 20 20 | ADR | 00002c80 72 34 2c 76 61 72 73 0d 0e 4c 2d 20 20 20 20 20 |r4,vars..L- | 00002c90 20 20 20 20 20 5c 20 67 65 74 20 6e 63 2c 63 6f | \ get nc,co| 00002ca0 72 64 73 61 64 2c 70 68 69 2c 74 68 65 74 61 2c |rdsad,phi,theta,| 00002cb0 74 6f 67 6f 0d 0e 56 29 20 20 20 20 20 20 20 20 |togo..V) | 00002cc0 20 20 4c 44 4d 49 41 20 20 72 34 2c 7b 72 30 2c | LDMIA r4,{r0,| 00002cd0 72 31 2c 72 32 2c 72 33 2c 72 31 34 7d 0d 0e 60 |r1,r2,r3,r14}..`| 00002ce0 1f 20 20 20 20 20 20 20 20 20 20 41 44 44 20 20 |. ADD | 00002cf0 20 20 72 31 34 2c 72 31 34 2c 72 34 0d 0e 6a 20 | r14,r14,r4..j | 00002d00 20 20 20 20 20 20 20 20 20 20 41 44 52 20 20 20 | ADR | 00002d10 20 72 36 2c 73 69 6e 74 61 62 6c 65 0d 0e 74 4c | r6,sintable..tL| 00002d20 20 20 20 20 20 20 20 20 20 20 41 44 44 20 20 20 | ADD | 00002d30 20 72 37 2c 72 36 2c 23 26 31 36 38 20 20 20 20 | r7,r6,#&168 | 00002d40 20 20 5c 20 26 31 36 38 20 3d 20 39 30 2a 34 20 | \ &168 = 90*4 | 00002d50 28 43 6f 73 20 64 65 72 69 76 65 64 20 62 79 20 |(Cos derived by | 00002d60 53 69 6e 2b 39 30 20 29 0d 0e 7e 24 20 20 20 20 |Sin+90 )..~$ | 00002d70 20 20 20 20 20 20 4d 4f 56 20 20 20 20 72 32 2c | MOV r2,| 00002d80 72 32 2c 4c 53 52 23 66 6c 6f 61 74 0d 0e 88 24 |r2,LSR#float...$| 00002d90 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 | MOV | 00002da0 20 72 33 2c 72 33 2c 4c 53 52 23 66 6c 6f 61 74 | r3,r3,LSR#float| 00002db0 0d 0e 92 34 20 20 20 20 20 20 20 20 20 20 4c 44 |...4 LD| 00002dc0 52 20 20 20 20 73 70 2c 5b 72 36 2c 72 32 2c 4c |R sp,[r6,r2,L| 00002dd0 53 4c 23 32 5d 20 5c 20 72 34 20 3d 20 73 69 6e |SL#2] \ r4 = sin| 00002de0 20 70 68 69 0d 0e 9c 36 20 20 20 20 20 20 20 20 | phi...6 | 00002df0 20 20 4c 44 52 20 20 20 20 63 74 2c 5b 72 37 2c | LDR ct,[r7,| 00002e00 72 33 2c 4c 53 4c 23 32 5d 20 5c 20 72 35 20 3d |r3,LSL#2] \ r5 =| 00002e10 20 63 6f 73 20 74 68 65 74 61 0d 0e a6 36 20 20 | cos theta...6 | 00002e20 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 73 | LDR s| 00002e30 74 2c 5b 72 36 2c 72 33 2c 4c 53 4c 23 32 5d 20 |t,[r6,r3,LSL#2] | 00002e40 5c 20 72 33 20 3d 20 73 69 6e 20 74 68 65 74 61 |\ r3 = sin theta| 00002e50 0d 0e b0 34 20 20 20 20 20 20 20 20 20 20 4c 44 |...4 LD| 00002e60 52 20 20 20 20 63 70 2c 5b 72 37 2c 72 32 2c 4c |R cp,[r7,r2,L| 00002e70 53 4c 23 32 5d 20 5c 20 72 32 20 3d 20 63 6f 73 |SL#2] \ r2 = cos| 00002e80 20 70 68 69 0d 0e ba 30 20 20 20 20 20 20 20 20 | phi...0 | 00002e90 20 20 52 53 42 20 20 20 20 6e 73 74 2c 73 74 2c | RSB nst,st,| 00002ea0 23 30 20 20 20 20 20 20 20 20 5c 6e 73 74 20 3d |#0 \nst =| 00002eb0 20 2d 73 74 0d 0e c4 30 20 20 20 20 20 20 20 20 | -st...0 | 00002ec0 20 20 52 53 42 20 20 20 20 6e 73 70 2c 73 70 2c | RSB nsp,sp,| 00002ed0 23 30 20 20 20 20 20 20 20 20 5c 6e 73 70 20 3d |#0 \nsp =| 00002ee0 20 2d 73 70 0d 0e ce 04 0d 0e d8 38 20 20 20 20 | -sp.......8 | 00002ef0 20 20 20 20 20 20 41 44 44 20 20 20 20 66 72 61 | ADD fra| 00002f00 63 2c 50 43 2c 23 28 66 72 61 63 74 69 6f 6e 73 |c,PC,#(fractions| 00002f10 2d 38 2d 50 25 2b 32 35 35 2a 34 29 83 32 35 36 |-8-P%+255*4).256| 00002f20 0d 0e e2 41 20 20 20 20 20 20 20 20 20 20 41 44 |...A AD| 00002f30 44 20 20 20 20 66 72 61 63 2c 66 72 61 63 2c 23 |D frac,frac,#| 00002f40 28 28 66 72 61 63 74 69 6f 6e 73 2d 38 2d 50 25 |((fractions-8-P%| 00002f50 2b 32 35 35 2a 34 29 81 32 35 36 29 2a 26 31 30 |+255*4).256)*&10| 00002f60 30 0d 0e ec 04 0d 0e f6 4e 2e 63 61 6c 63 73 20 |0.......N.calcs | 00002f70 20 20 20 4c 44 4d 49 41 20 20 63 6f 6f 72 64 73 | LDMIA coords| 00002f80 20 21 2c 7b 78 2c 79 2c 7a 7d 20 20 20 5c 20 78 | !,{x,y,z} \ x| 00002f90 2c 20 79 2c 20 7a 20 61 6e 64 20 28 77 65 27 6c |, y, z and (we'l| 00002fa0 6c 20 67 65 74 20 63 6f 6c 6f 75 72 20 6c 61 74 |l get colour lat| 00002fb0 65 72 29 0d 0f 00 1f 20 20 20 20 20 20 20 20 20 |er).... | 00002fc0 20 4d 55 4c 20 20 20 20 6e 65 77 78 2c 79 2c 6e | MUL newx,y,n| 00002fd0 73 74 0d 0f 0a 3a 20 20 20 20 20 20 20 20 20 20 |st...: | 00002fe0 4d 4c 41 20 20 20 20 6e 65 77 78 2c 78 2c 63 74 |MLA newx,x,ct| 00002ff0 2c 6e 65 77 78 20 20 20 20 20 5c 20 6e 65 77 78 |,newx \ newx| 00003000 20 3d 20 63 74 2a 78 2d 73 74 2a 79 0d 0f 14 04 | = ct*x-st*y....| 00003010 0d 0f 1e 1b 20 20 20 20 20 20 20 20 20 20 4d 55 |.... MU| 00003020 4c 20 20 20 20 79 2c 63 74 2c 79 0d 0f 28 3a 20 |L y,ct,y..(: | 00003030 20 20 20 20 20 20 20 20 20 4d 4c 41 20 20 20 20 | MLA | 00003040 79 2c 78 2c 73 74 2c 79 20 20 20 20 20 20 20 20 |y,x,st,y | 00003050 20 20 20 5c 20 20 20 20 79 20 3d 20 73 74 2a 78 | \ y = st*x| 00003060 2b 63 74 2a 79 0d 0f 32 22 20 20 20 20 20 20 20 |+ct*y..2" | 00003070 20 20 20 4d 4f 56 20 20 20 20 79 2c 79 2c 41 53 | MOV y,y,AS| 00003080 52 23 66 6c 6f 61 74 0d 0f 3c 04 0d 0f 46 1f 20 |R#float..<...F. | 00003090 20 20 20 20 20 20 20 20 20 4d 55 4c 20 20 20 20 | MUL | 000030a0 6e 65 77 79 2c 7a 2c 6e 73 70 0d 0f 50 3a 20 20 |newy,z,nsp..P: | 000030b0 20 20 20 20 20 20 20 20 4d 4c 41 20 20 20 20 6e | MLA n| 000030c0 65 77 79 2c 79 2c 63 70 2c 6e 65 77 79 20 20 20 |ewy,y,cp,newy | 000030d0 20 20 5c 20 6e 65 77 79 20 3d 20 63 70 2a 79 2d | \ newy = cp*y-| 000030e0 73 70 2a 7a 0d 0f 5a 04 0d 0f 64 1b 20 20 20 20 |sp*z..Z...d. | 000030f0 20 20 20 20 20 20 4d 55 4c 20 20 20 20 7a 2c 63 | MUL z,c| 00003100 70 2c 7a 0d 0f 6e 3a 20 20 20 20 20 20 20 20 20 |p,z..n: | 00003110 20 4d 4c 41 20 20 20 20 7a 2c 73 70 2c 79 2c 7a | MLA z,sp,y,z| 00003120 20 20 20 20 20 20 20 20 20 20 20 5c 20 20 20 20 | \ | 00003130 7a 20 3d 20 73 70 2a 79 2b 63 70 2a 7a 0d 0f 78 |z = sp*y+cp*z..x| 00003140 21 20 20 20 20 20 20 20 20 20 20 5c 20 78 3d 6e |! \ x=n| 00003150 65 77 78 20 79 3d 6e 65 77 79 20 7a 3d 7a 0d 0f |ewx y=newy z=z..| 00003160 82 25 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 |.% MOV | 00003170 20 20 20 79 2c 6e 65 77 79 2c 41 53 52 23 66 6c | y,newy,ASR#fl| 00003180 6f 61 74 0d 0f 8c 25 20 20 20 20 20 20 20 20 20 |oat...% | 00003190 20 4d 4f 56 20 20 20 20 78 2c 6e 65 77 78 2c 41 | MOV x,newx,A| 000031a0 53 52 23 66 6c 6f 61 74 0d 0f 96 22 20 20 20 20 |SR#float..." | 000031b0 20 20 20 20 20 20 4d 4f 56 20 20 20 20 7a 2c 7a | MOV z,z| 000031c0 2c 41 53 52 23 66 6c 6f 61 74 0d 0f a0 1b 20 20 |,ASR#float.... | 000031d0 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 74 | MOV t| 000031e0 65 6d 70 2c 7a 0d 0f aa 04 0d 0f b4 2b 20 20 20 |emp,z.......+ | 000031f0 20 20 20 20 20 20 20 4c 44 52 20 20 20 20 74 65 | LDR te| 00003200 6d 70 2c 5b 66 72 61 63 2c 74 65 6d 70 2c 4c 53 |mp,[frac,temp,LS| 00003210 4c 23 32 5d 0d 0f be 04 0d 0f c8 1d 20 20 20 20 |L#2]........ | 00003220 20 20 20 20 20 20 4d 55 4c 20 20 20 20 78 2c 74 | MUL x,t| 00003230 65 6d 70 2c 78 0d 0f d2 1d 20 20 20 20 20 20 20 |emp,x.... | 00003240 20 20 20 4d 55 4c 20 20 20 20 79 2c 74 65 6d 70 | MUL y,temp| 00003250 2c 79 0d 0f dc 37 20 20 20 20 20 20 20 20 20 20 |,y...7 | 00003260 4d 4f 56 20 20 20 20 74 65 6d 70 2c 23 31 32 38 |MOV temp,#128| 00003270 20 20 20 20 20 20 20 20 20 5c 20 4f 72 69 67 69 | \ Origi| 00003280 6e 20 31 32 38 2c 31 32 38 0d 0f e6 27 20 20 20 |n 128,128...' | 00003290 20 20 20 20 20 20 20 41 44 44 20 20 20 20 78 2c | ADD x,| 000032a0 74 65 6d 70 2c 78 2c 41 53 52 23 66 6c 6f 61 74 |temp,x,ASR#float| 000032b0 0d 0f f0 27 20 20 20 20 20 20 20 20 20 20 41 44 |...' AD| 000032c0 44 20 20 20 20 79 2c 74 65 6d 70 2c 79 2c 41 53 |D y,temp,y,AS| 000032d0 52 23 66 6c 6f 61 74 0d 0f fa 25 20 20 20 20 20 |R#float...% | 000032e0 20 20 20 20 20 4c 44 52 20 20 20 20 74 65 6d 70 | LDR temp| 000032f0 2c 5b 63 6f 6f 72 64 73 5d 2c 23 34 0d 10 04 28 |,[coords],#4...(| 00003300 20 20 20 20 20 20 20 20 20 20 53 54 4d 49 41 20 | STMIA | 00003310 20 74 6f 67 6f 20 21 2c 7b 78 2c 79 2c 7a 2c 74 | togo !,{x,y,z,t| 00003320 65 6d 70 7d 0d 10 0e 23 20 20 20 20 20 20 20 20 |emp}...# | 00003330 20 20 53 55 42 53 20 20 20 63 6f 75 6e 74 2c 63 | SUBS count,c| 00003340 6f 75 6e 74 2c 23 31 0d 10 18 1a 20 20 20 20 20 |ount,#1.... | 00003350 20 20 20 20 20 42 4e 45 20 20 20 20 63 61 6c 63 | BNE calc| 00003360 73 0d 10 22 19 20 20 20 20 20 20 20 20 20 20 42 |s..". B| 00003370 20 20 20 20 20 20 73 6f 72 74 0d 10 2c 04 0d 10 | sort..,...| 00003380 36 22 2e 73 69 6e 74 61 62 6c 65 20 5d 3a 50 25 |6".sintable ]:P%| 00003390 2b 3d 33 36 30 2a 38 3a 5b 4f 50 54 70 61 73 73 |+=360*8:[OPTpass| 000033a0 0d 10 40 23 2e 66 72 61 63 74 69 6f 6e 73 20 5d |..@#.fractions ]| 000033b0 3a 50 25 2b 3d 35 31 34 2a 34 3a 5b 4f 50 54 70 |:P%+=514*4:[OPTp| 000033c0 61 73 73 0d 10 4a 04 0d 10 54 3d 2e 72 65 67 63 |ass..J...T=.regc| 000033d0 6c 65 61 72 20 45 51 55 44 30 3a 45 51 55 44 30 |lear EQUD0:EQUD0| 000033e0 3a 45 51 55 44 30 3a 45 51 55 44 30 3a 45 51 55 |:EQUD0:EQUD0:EQU| 000033f0 44 30 3a 45 51 55 44 30 3a 45 51 55 44 30 3a 45 |D0:EQUD0:EQUD0:E| 00003400 51 55 44 30 0d 10 5e 3d 20 20 20 20 20 20 20 20 |QUD0..^= | 00003410 20 20 45 51 55 44 30 3a 45 51 55 44 30 3a 45 51 | EQUD0:EQUD0:EQ| 00003420 55 44 30 3a 45 51 55 44 30 3a 45 51 55 44 30 3a |UD0:EQUD0:EQUD0:| 00003430 45 51 55 44 30 3a 45 51 55 44 30 3a 45 51 55 44 |EQUD0:EQUD0:EQUD| 00003440 30 0d 10 68 04 0d 10 72 4f 5c 20 48 65 72 65 73 |0..h...rO\ Heres| 00003450 20 61 20 66 75 6e 20 72 6f 75 74 69 6e 65 21 20 | a fun routine! | 00003460 54 68 69 73 20 6f 6e 65 20 69 73 20 61 20 27 62 |This one is a 'b| 00003470 69 6e 20 73 6f 72 74 27 2c 20 61 6e 64 20 6e 65 |in sort', and ne| 00003480 65 64 73 20 74 6f 20 62 65 20 76 65 72 79 20 71 |eds to be very q| 00003490 75 69 63 6b 0d 10 7c 1e 2e 73 6f 72 74 20 20 20 |uick..|..sort | 000034a0 20 20 a4 61 64 72 28 30 2c 72 65 67 63 6c 65 61 | .adr(0,regclea| 000034b0 72 29 0d 10 86 21 20 20 20 20 20 20 20 20 20 20 |r)...! | 000034c0 4c 44 4d 49 41 20 20 20 72 30 2c 7b 72 33 2d 72 |LDMIA r0,{r3-r| 000034d0 31 32 7d 0d 10 90 1b 20 20 20 20 20 20 20 20 20 |12}.... | 000034e0 20 a4 61 64 72 28 30 2c 7a 6c 69 73 74 29 0d 10 | .adr(0,zlist)..| 000034f0 9a 1b 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 |.. MOV | 00003500 20 20 20 20 72 32 2c 72 30 0d 10 a4 1c 20 20 20 | r2,r0.... | 00003510 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 72 | MOV r| 00003520 31 2c 23 31 36 0d 10 ae 41 2e 72 65 73 65 74 6c |1,#16...A.resetl| 00003530 70 20 20 53 54 4d 49 41 20 20 20 72 30 21 2c 7b |p STMIA r0!,{| 00003540 72 33 2d 72 31 32 7d 20 5c 20 36 34 20 6c 6f 74 |r3-r12} \ 64 lot| 00003550 73 20 6f 66 20 74 65 6e 2e 20 28 74 72 69 6d 20 |s of ten. (trim | 00003560 6c 61 74 65 72 29 0d 10 b8 22 20 20 20 20 20 20 |later)..." | 00003570 20 20 20 20 53 54 4d 49 41 20 20 20 72 30 21 2c | STMIA r0!,| 00003580 7b 72 33 2d 72 31 32 7d 0d 10 c2 1e 20 20 20 20 |{r3-r12}.... | 00003590 20 20 20 20 20 20 53 55 42 53 20 20 20 20 72 31 | SUBS r1| 000035a0 2c 72 31 2c 23 31 0d 10 cc 1d 20 20 20 20 20 20 |,r1,#1.... | 000035b0 20 20 20 20 42 4e 45 20 20 20 20 20 72 65 73 65 | BNE rese| 000035c0 74 6c 70 0d 10 d6 4b 20 20 20 20 20 20 20 20 20 |tlp...K | 000035d0 20 a4 6c 64 72 28 30 2c 6e 6f 63 6f 6f 72 64 73 | .ldr(0,nocoords| 000035e0 29 20 20 20 20 20 20 20 20 5c 20 72 30 20 69 73 |) \ r0 is| 000035f0 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6f 72 64 | number of coord| 00003600 69 6e 61 74 65 73 20 74 6f 20 73 6f 72 74 0d 10 |inates to sort..| 00003610 e0 4e 20 20 20 20 20 20 20 20 20 20 a4 61 64 72 |.N .adr| 00003620 28 31 2c 64 65 73 74 2b 38 29 20 20 20 20 20 20 |(1,dest+8) | 00003630 20 20 20 20 5c 20 72 31 20 69 73 20 61 64 64 72 | \ r1 is addr| 00003640 65 73 73 20 6f 66 20 66 69 72 73 74 20 27 7a 27 |ess of first 'z'| 00003650 20 63 6f 6f 72 64 69 6e 61 74 65 2e 0d 10 ea 4d | coordinate....M| 00003660 20 20 20 20 20 20 20 20 20 20 a4 61 64 72 28 33 | .adr(3| 00003670 2c 73 70 61 72 65 29 20 20 20 20 20 20 20 20 20 |,spare) | 00003680 20 20 5c 20 72 33 20 69 73 20 61 64 72 20 6f 66 | \ r3 is adr of| 00003690 20 73 70 61 72 65 20 28 72 32 20 69 73 20 7a 6c | spare (r2 is zl| 000036a0 69 73 74 20 61 64 64 72 29 0d 10 f4 45 20 20 20 |ist addr)...E | 000036b0 20 20 20 20 20 20 20 a4 61 64 72 28 31 32 2c 7a | .adr(12,z| 000036c0 6f 72 64 65 72 29 20 20 20 20 20 20 20 20 20 5c |order) \| 000036d0 72 31 32 20 69 73 20 61 64 64 72 65 73 73 20 6f |r12 is address o| 000036e0 66 20 6f 72 64 65 72 65 64 20 6c 69 73 74 0d 10 |f ordered list..| 000036f0 fe 51 20 20 20 20 20 20 20 20 20 20 41 44 44 20 |.Q ADD | 00003700 20 20 20 20 72 30 2c 72 30 2c 23 31 20 20 20 20 | r0,r0,#1 | 00003710 20 20 20 20 20 5c 20 74 6f 20 63 6f 6d 70 65 6e | \ to compen| 00003720 73 61 74 65 2d 64 61 74 61 20 64 6f 65 73 6e 27 |sate-data doesn'| 00003730 74 20 62 65 67 69 6e 20 61 74 20 7a 65 72 6f 0d |t begin at zero.| 00003740 11 08 33 20 20 20 20 20 20 20 20 20 20 4d 4f 56 |..3 MOV| 00003750 20 20 20 20 20 72 34 2c 23 31 20 20 20 20 20 20 | r4,#1 | 00003760 20 20 20 20 20 20 5c 20 72 34 20 3d 20 63 6f 75 | \ r4 = cou| 00003770 6e 74 0d 11 12 4c 20 20 20 20 20 20 20 20 20 20 |nt...L | 00003780 4d 4f 56 20 20 20 20 20 72 35 2c 23 31 20 20 20 |MOV r5,#1 | 00003790 20 20 20 20 20 20 20 20 20 5c 20 72 35 20 3d 20 | \ r5 = | 000037a0 69 6e 64 65 78 20 66 6f 72 20 69 74 65 6d 73 20 |index for items | 000037b0 28 30 2d 6e 6f 6f 66 63 6f 6f 72 64 73 29 0d 11 |(0-noofcoords)..| 000037c0 1c 21 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 |.! MOV | 000037d0 20 20 20 20 72 31 30 2c 23 26 31 30 30 30 30 0d | r10,#&10000.| 000037e0 11 26 44 20 20 20 20 20 20 20 20 20 20 53 55 42 |.&D SUB| 000037f0 20 20 20 20 20 72 31 30 2c 72 31 30 2c 23 31 20 | r10,r10,#1 | 00003800 20 20 20 20 20 20 5c 20 52 31 30 20 3d 20 26 46 | \ R10 = &F| 00003810 46 46 46 20 28 6d 61 73 6b 20 66 6f 72 20 64 61 |FFF (mask for da| 00003820 74 61 29 0d 11 30 34 2e 73 6f 72 74 69 74 31 20 |ta)..04.sortit1 | 00003830 20 4c 44 52 20 20 20 20 20 72 36 2c 5b 72 31 5d | LDR r6,[r1]| 00003840 2c 23 31 36 20 20 20 20 20 20 5c 20 67 65 74 20 |,#16 \ get | 00003850 7a 20 63 6f 6f 72 64 0d 11 3a 4d 20 20 20 20 20 |z coord..:M | 00003860 20 20 20 20 20 41 44 44 20 20 20 20 20 72 36 2c | ADD r6,| 00003870 72 36 2c 23 31 36 30 20 20 20 20 20 20 20 5c 20 |r6,#160 \ | 00003880 61 64 64 20 31 36 30 20 28 67 69 76 65 73 20 75 |add 160 (gives u| 00003890 73 20 61 20 72 61 6e 67 65 20 6f 66 20 2b 2d 20 |s a range of +- | 000038a0 31 36 30 29 0d 11 44 36 20 20 20 20 20 20 20 20 |160)..D6 | 000038b0 20 20 4c 44 52 20 20 20 20 20 72 37 2c 5b 72 32 | LDR r7,[r2| 000038c0 2c 72 36 2c 4c 53 4c 23 32 5d 20 5c 20 67 65 74 |,r6,LSL#2] \ get| 000038d0 20 7a 6c 69 73 74 28 7a 63 29 0d 11 4e 1b 20 20 | zlist(zc)..N. | 000038e0 20 20 20 20 20 20 20 20 4d 4f 56 53 20 20 20 20 | MOVS | 000038f0 72 37 2c 72 37 0d 11 58 42 20 20 20 20 20 20 20 |r7,r7..XB | 00003900 20 20 20 53 54 52 45 51 20 20 20 72 35 2c 5b 72 | STREQ r5,[r| 00003910 32 2c 72 36 2c 4c 53 4c 23 32 5d 20 5c 20 73 74 |2,r6,LSL#2] \ st| 00003920 6f 72 65 20 69 6e 64 65 78 20 69 66 20 6e 6f 77 |ore index if now| 00003930 74 20 74 68 65 72 65 0d 11 62 1a 20 20 20 20 20 |t there..b. | 00003940 20 20 20 20 20 42 45 51 20 20 20 20 20 6e 65 78 | BEQ nex| 00003950 74 0d 11 6c 34 20 20 20 20 20 20 20 20 20 20 80 |t..l4 .| 00003960 20 20 20 20 20 72 38 2c 72 37 2c 72 31 30 2c 4c | r8,r7,r10,L| 00003970 53 4c 23 31 36 20 5c 20 72 38 20 69 73 20 70 6f |SL#16 \ r8 is po| 00003980 69 6e 74 65 72 0d 11 76 31 20 20 20 20 20 20 20 |inter..v1 | 00003990 20 20 20 80 20 20 20 20 20 72 39 2c 72 37 2c 72 | . r9,r7,r| 000039a0 31 30 20 20 20 20 20 20 20 20 5c 20 72 39 20 69 |10 \ r9 i| 000039b0 73 20 64 61 74 61 0d 11 80 3e 20 20 20 20 20 20 |s data...> | 000039c0 20 20 20 20 84 52 20 20 20 20 20 72 39 2c 72 39 | .R r9,r9| 000039d0 2c 72 34 2c 4c 53 4c 23 31 36 20 20 5c 20 72 39 |,r4,LSL#16 \ r9| 000039e0 20 69 73 20 6e 6f 77 20 7c 63 6f 75 6e 74 7c 64 | is now |count|d| 000039f0 61 74 61 7c 0d 11 8a 3e 20 20 20 20 20 20 20 20 |ata|...> | 00003a00 20 20 53 54 52 20 20 20 20 20 72 39 2c 5b 72 32 | STR r9,[r2| 00003a10 2c 72 36 2c 4c 53 4c 23 32 5d 20 5c 20 73 74 6f |,r6,LSL#2] \ sto| 00003a20 72 65 20 72 39 20 69 6e 20 7a 6c 69 73 74 28 7a |re r9 in zlist(z| 00003a30 63 29 0d 11 94 41 20 20 20 20 20 20 20 20 20 20 |c)...A | 00003a40 84 52 20 20 20 20 20 72 39 2c 72 35 2c 72 38 20 |.R r9,r5,r8 | 00003a50 20 20 20 20 20 20 20 20 5c 20 72 39 20 69 73 20 | \ r9 is | 00003a60 6e 6f 77 20 7c 69 6e 64 65 78 7c 70 6f 69 6e 74 |now |index|point| 00003a70 65 72 7c 0d 11 9e 41 20 20 20 20 20 20 20 20 20 |er|...A | 00003a80 20 53 54 52 20 20 20 20 20 72 39 2c 5b 72 33 2c | STR r9,[r3,| 00003a90 72 34 2c 4c 53 4c 23 32 5d 20 5c 20 73 74 6f 72 |r4,LSL#2] \ stor| 00003aa0 65 20 72 39 20 69 6e 20 73 70 61 72 65 28 63 6f |e r9 in spare(co| 00003ab0 75 6e 74 29 0d 11 a8 38 20 20 20 20 20 20 20 20 |unt)...8 | 00003ac0 20 20 41 44 44 20 20 20 20 20 72 34 2c 72 34 2c | ADD r4,r4,| 00003ad0 23 31 20 20 20 20 20 20 20 20 20 5c 20 69 6e 63 |#1 \ inc| 00003ae0 72 65 6d 65 6e 74 20 63 6f 75 6e 74 0d 11 b2 38 |rement count...8| 00003af0 2e 6e 65 78 74 20 20 20 20 20 41 44 44 20 20 20 |.next ADD | 00003b00 20 20 72 35 2c 72 35 2c 23 31 20 20 20 20 20 20 | r5,r5,#1 | 00003b10 20 20 20 5c 20 69 6e 63 72 65 6d 65 6e 74 20 69 | \ increment i| 00003b20 6e 64 65 78 0d 11 bc 1b 20 20 20 20 20 20 20 20 |ndex.... | 00003b30 20 20 43 4d 50 20 20 20 20 20 72 35 2c 72 30 0d | CMP r5,r0.| 00003b40 11 c6 42 20 20 20 20 20 20 20 20 20 20 42 4e 45 |..B BNE| 00003b50 20 20 20 20 20 73 6f 72 74 69 74 31 20 20 20 20 | sortit1 | 00003b60 20 20 20 20 20 20 5c 20 54 68 61 74 73 20 74 68 | \ Thats th| 00003b70 65 20 65 61 73 79 20 62 69 74 20 66 6f 6c 6b 73 |e easy bit folks| 00003b80 21 0d 11 d0 47 20 20 20 20 20 20 20 20 20 20 20 |!...G | 00003b90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00003ba0 20 20 20 20 20 20 20 20 5c 20 72 65 67 69 73 74 | \ regist| 00003bb0 65 72 73 20 34 2d 31 31 20 61 72 65 20 75 6e 63 |ers 4-11 are unc| 00003bc0 6f 6d 6d 69 74 74 65 64 0d 11 da 46 20 20 20 20 |ommitted...F | 00003bd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00003be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c | \| 00003bf0 20 72 65 67 69 73 74 65 72 20 30 20 69 73 20 6e | register 0 is n| 00003c00 6f 6f 66 63 6f 6f 72 64 73 20 28 69 25 29 0d 11 |oofcoords (i%)..| 00003c10 e4 3a 20 20 20 20 20 20 20 20 20 20 4d 4f 56 20 |.: MOV | 00003c20 20 20 20 20 72 34 2c 23 33 32 30 20 20 20 20 20 | r4,#320 | 00003c30 20 20 20 20 20 5c 20 72 34 20 69 73 20 6d 61 78 | \ r4 is max| 00003c40 65 6c 65 6d 65 6e 74 73 0d 11 ee 39 2e 73 6f 72 |elements...9.sor| 00003c50 74 69 74 32 20 20 4c 44 52 20 20 20 20 20 72 35 |tit2 LDR r5| 00003c60 2c 5b 72 32 5d 2c 23 34 20 20 20 20 20 20 20 5c |,[r2],#4 \| 00003c70 20 47 65 74 20 7a 6c 69 73 74 28 63 6f 75 6e 74 | Get zlist(count| 00003c80 29 0d 11 f8 1b 20 20 20 20 20 20 20 20 20 20 4d |).... M| 00003c90 4f 56 53 20 20 20 20 72 35 2c 72 35 0d 12 02 37 |OVS r5,r5...7| 00003ca0 20 20 20 20 20 20 20 20 20 20 42 45 51 20 20 20 | BEQ | 00003cb0 20 20 6e 65 78 74 32 20 20 20 20 20 20 20 20 20 | next2 | 00003cc0 20 20 20 5c 20 49 67 6e 6f 72 65 20 69 66 20 7a | \ Ignore if z| 00003cd0 65 72 6f 0d 12 0c 43 20 20 20 20 20 20 20 20 20 |ero...C | 00003ce0 20 80 53 20 20 20 20 72 36 2c 72 35 2c 72 31 30 | .S r6,r5,r10| 00003cf0 2c 4c 53 4c 23 31 36 20 5c 20 72 36 20 69 73 20 |,LSL#16 \ r6 is | 00003d00 70 6f 69 6e 74 65 72 2e 20 49 73 20 69 74 20 73 |pointer. Is it s| 00003d10 69 6e 67 6c 65 3f 0d 12 16 3e 20 20 20 20 20 20 |ingle?...> | 00003d20 20 20 20 20 53 54 52 45 51 20 20 20 72 35 2c 5b | STREQ r5,[| 00003d30 72 31 32 5d 2c 23 34 20 20 20 20 20 20 5c 20 59 |r12],#4 \ Y| 00003d40 65 73 2e 20 53 74 6f 72 65 20 69 6e 20 7a 6f 72 |es. Store in zor| 00003d50 64 65 72 2e 0d 12 20 3b 20 20 20 20 20 20 20 20 |der... ; | 00003d60 20 20 42 45 51 20 20 20 20 20 6e 65 78 74 32 20 | BEQ next2 | 00003d70 20 20 20 20 20 20 20 20 20 20 20 5c 20 53 6b 69 | \ Ski| 00003d80 70 2c 20 61 6e 64 20 67 65 74 20 6e 65 78 74 0d |p, and get next.| 00003d90 12 2a 45 20 20 20 20 20 20 20 20 20 20 80 20 20 |.*E . | 00003da0 20 20 20 72 37 2c 72 35 2c 72 31 30 20 20 20 20 | r7,r5,r10 | 00003db0 20 20 20 20 5c 20 72 37 20 69 73 20 64 61 74 61 | \ r7 is data| 00003dc0 20 28 63 6f 6f 72 64 69 6e 61 74 65 20 6e 75 6d | (coordinate num| 00003dd0 62 65 72 29 0d 12 34 3d 2e 61 66 65 77 20 20 20 |ber)..4=.afew | 00003de0 20 20 53 54 52 20 20 20 20 20 72 37 2c 5b 72 31 | STR r7,[r1| 00003df0 32 5d 2c 23 34 20 20 20 20 20 20 5c 20 73 74 6f |2],#4 \ sto| 00003e00 72 65 20 64 61 74 61 20 69 6e 20 7a 6f 72 64 65 |re data in zorde| 00003e10 72 0d 12 3e 48 20 20 20 20 20 20 20 20 20 20 4c |r..>H L| 00003e20 44 52 20 20 20 20 20 72 36 2c 5b 72 33 2c 72 36 |DR r6,[r3,r6| 00003e30 2c 4c 53 52 23 31 34 5d 5c 20 67 65 74 20 6e 65 |,LSR#14]\ get ne| 00003e40 77 20 70 6f 69 6e 74 65 72 7c 64 61 74 61 20 66 |w pointer|data f| 00003e50 72 6f 6d 20 73 70 61 72 65 0d 12 48 35 20 20 20 |rom spare..H5 | 00003e60 20 20 20 20 20 20 20 80 20 20 20 20 20 72 37 2c | . r7,| 00003e70 72 36 2c 72 31 30 20 20 20 20 20 20 20 20 5c 20 |r6,r10 \ | 00003e80 72 37 20 69 73 20 6e 65 77 20 64 61 74 61 0d 12 |r7 is new data..| 00003e90 52 38 20 20 20 20 20 20 20 20 20 20 80 53 20 20 |R8 .S | 00003ea0 20 20 72 36 2c 72 36 2c 72 31 30 2c 4c 53 4c 23 | r6,r6,r10,LSL#| 00003eb0 31 36 20 5c 20 72 36 20 69 73 20 6e 65 77 20 70 |16 \ r6 is new p| 00003ec0 6f 69 6e 74 65 72 0d 12 5c 47 20 20 20 20 20 20 |ointer..\G | 00003ed0 20 20 20 20 42 4e 45 20 20 20 20 20 61 66 65 77 | BNE afew| 00003ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 20 63 | \ c| 00003ef0 6f 6e 74 69 6e 75 65 20 75 6e 74 69 6c 20 70 6f |ontinue until po| 00003f00 69 6e 74 65 72 20 69 73 20 7a 65 72 6f 0d 12 66 |inter is zero..f| 00003f10 3d 20 20 20 20 20 20 20 20 20 20 53 54 52 20 20 |= STR | 00003f20 20 20 20 72 37 2c 5b 72 31 32 5d 2c 23 34 20 20 | r7,[r12],#4 | 00003f30 20 20 20 20 5c 20 73 74 6f 72 65 20 64 61 74 61 | \ store data| 00003f40 20 69 6e 20 7a 6f 72 64 65 72 0d 12 70 38 2e 6e | in zorder..p8.n| 00003f50 65 78 74 32 20 20 20 20 53 55 42 53 20 20 20 20 |ext2 SUBS | 00003f60 72 34 2c 72 34 2c 23 31 20 20 20 20 20 20 20 20 |r4,r4,#1 | 00003f70 20 5c 20 75 6e 74 69 6c 20 61 6c 6c 20 64 6f 6e | \ until all don| 00003f80 65 2e 0d 12 7a 1d 20 20 20 20 20 20 20 20 20 20 |e...z. | 00003f90 42 4e 45 20 20 20 20 20 73 6f 72 74 69 74 32 0d |BNE sortit2.| 00003fa0 12 84 26 20 20 20 20 20 20 20 20 20 20 4c 44 4d |..& LDM| 00003fb0 46 44 20 20 20 72 31 33 21 2c 7b 72 30 2d 72 31 |FD r13!,{r0-r1| 00003fc0 32 2c 70 63 7d 0d 12 8e 04 0d 12 98 25 2e 64 65 |2,pc}.......%.de| 00003fd0 73 74 20 20 20 20 20 20 20 5d 3a 50 25 2b 3d 36 |st ]:P%+=6| 00003fe0 34 30 2a 31 36 3a 5b 4f 50 54 70 61 73 73 0d 12 |40*16:[OPTpass..| 00003ff0 a2 50 2e 7a 6c 69 73 74 20 20 20 20 20 20 5d 3a |.P.zlist ]:| 00004000 50 25 2b 3d 33 32 30 2a 34 3a 5b 4f 50 54 70 61 |P%+=320*4:[OPTpa| 00004010 73 73 20 20 20 5c 20 33 32 30 20 6d 65 61 6e 73 |ss \ 320 means| 00004020 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 66 72 6f | coordinates fro| 00004030 6d 20 2d 31 36 30 20 74 6f 20 31 35 39 2e 0d 12 |m -160 to 159...| 00004040 ac 24 2e 73 70 61 72 65 20 20 20 20 20 20 5d 3a |.$.spare ]:| 00004050 50 25 2b 3d 36 34 30 2a 34 3a 5b 4f 50 54 70 61 |P%+=640*4:[OPTpa| 00004060 73 73 0d 12 b6 24 2e 7a 6f 72 64 65 72 20 20 20 |ss...$.zorder | 00004070 20 20 5d 3a 50 25 2b 3d 36 34 30 2a 34 3a 5b 4f | ]:P%+=640*4:[O| 00004080 50 54 70 61 73 73 0d 12 c0 04 0d 12 ca 26 2e 6e |PTpass.......&.n| 00004090 65 77 73 68 61 70 65 20 20 20 53 54 4d 46 44 20 |ewshape STMFD | 000040a0 72 31 33 21 2c 7b 72 30 2d 72 32 2c 72 31 34 7d |r13!,{r0-r2,r14}| 000040b0 0d 12 d4 23 20 20 20 20 20 20 20 20 20 20 20 20 |...# | 000040c0 41 44 52 20 20 20 72 30 2c 73 68 61 70 65 74 61 |ADR r0,shapeta| 000040d0 62 6c 65 0d 12 de 21 20 20 20 20 20 20 20 20 20 |ble...! | 000040e0 20 20 20 4c 44 52 20 20 20 72 31 2c 5b 72 30 2c | LDR r1,[r0,| 000040f0 23 2d 34 5d 0d 12 e8 1e 20 20 20 20 20 20 20 20 |#-4].... | 00004100 20 20 20 20 41 44 44 20 20 20 72 32 2c 72 31 2c | ADD r2,r1,| 00004110 23 31 0d 12 f2 36 20 20 20 20 20 20 20 20 20 20 |#1...6 | 00004120 20 20 43 4d 50 20 20 20 72 32 2c 23 28 6e 75 6d | CMP r2,#(num| 00004130 2b 31 29 20 20 20 5c 20 4e 75 6d 62 65 72 20 6f |+1) \ Number o| 00004140 66 20 73 68 61 70 65 73 0d 12 fc 18 20 20 20 20 |f shapes.... | 00004150 20 20 20 20 20 20 20 20 ec 51 20 72 32 2c 23 30 | .Q r2,#0| 00004160 0d 13 06 21 20 20 20 20 20 20 20 20 20 20 20 20 |...! | 00004170 53 54 52 20 20 20 72 32 2c 5b 72 30 2c 23 2d 34 |STR r2,[r0,#-4| 00004180 5d 0d 13 10 31 20 20 20 20 20 20 20 20 20 20 20 |]...1 | 00004190 20 4c 44 52 20 20 20 72 32 2c 5b 72 30 2c 72 31 | LDR r2,[r0,r1| 000041a0 2c 4c 53 4c 23 35 5d 21 20 5c 20 61 64 64 72 65 |,LSL#5]! \ addre| 000041b0 73 73 0d 13 1a 1e 20 20 20 20 20 20 20 20 20 20 |ss.... | 000041c0 20 20 41 44 44 20 20 20 72 32 2c 72 32 2c 72 30 | ADD r2,r2,r0| 000041d0 0d 13 24 3a 20 20 20 20 20 20 20 20 20 20 20 20 |..$: | 000041e0 4c 44 52 20 20 20 72 31 2c 5b 72 30 2c 23 34 5d |LDR r1,[r0,#4]| 000041f0 20 20 20 20 20 20 20 20 5c 20 6e 75 6d 62 65 72 | \ number| 00004200 20 6f 66 20 63 6f 6f 72 64 73 0d 13 2e 1d 20 20 | of coords.... | 00004210 20 20 20 20 20 20 20 20 20 20 a4 61 64 72 28 31 | .adr(1| 00004220 34 2c 76 61 72 73 29 0d 13 38 26 20 20 20 20 20 |4,vars)..8& | 00004230 20 20 20 20 20 20 20 53 54 52 20 20 20 72 31 2c | STR r1,| 00004240 5b 72 31 34 5d 20 20 20 20 5c 20 6e 63 0d 13 42 |[r14] \ nc..B| 00004250 2b 20 20 20 20 20 20 20 20 20 20 20 20 53 54 52 |+ STR| 00004260 20 20 20 72 32 2c 5b 72 31 34 2c 23 34 5d 20 5c | r2,[r14,#4] \| 00004270 20 61 64 64 72 65 73 73 0d 13 4c 20 20 20 20 20 | address..L | 00004280 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 72 31 | LDR r1| 00004290 2c 5b 72 30 2c 23 38 5d 0d 13 56 27 20 20 20 20 |,[r0,#8]..V' | 000042a0 20 20 20 20 20 20 20 20 53 54 52 20 20 20 72 31 | STR r1| 000042b0 2c 5b 72 31 34 2c 23 38 5d 20 5c 20 70 68 69 0d |,[r14,#8] \ phi.| 000042c0 13 60 2a 20 20 20 20 20 20 20 20 20 20 20 20 53 |.`* S| 000042d0 54 52 20 20 20 72 31 2c 5b 72 31 34 2c 23 33 36 |TR r1,[r14,#36| 000042e0 5d 20 5c 20 61 6e 67 6c 65 0d 13 6a 21 20 20 20 |] \ angle..j! | 000042f0 20 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 72 | LDR r| 00004300 31 2c 5b 72 30 2c 23 31 32 5d 0d 13 74 2a 20 20 |1,[r0,#12]..t* | 00004310 20 20 20 20 20 20 20 20 20 20 53 54 52 20 20 20 | STR | 00004320 72 31 2c 5b 72 31 34 2c 23 31 32 5d 20 5c 20 74 |r1,[r14,#12] \ t| 00004330 68 65 74 61 0d 13 7e 2a 20 20 20 20 20 20 20 20 |heta..~* | 00004340 20 20 20 20 53 54 52 20 20 20 72 31 2c 5b 72 31 | STR r1,[r1| 00004350 34 2c 23 34 30 5d 20 5c 20 61 6e 67 6c 65 0d 13 |4,#40] \ angle..| 00004360 88 21 20 20 20 20 20 20 20 20 20 20 20 20 4c 44 |.! LD| 00004370 52 20 20 20 72 31 2c 5b 72 30 2c 23 31 36 5d 0d |R r1,[r0,#16].| 00004380 13 92 2c 20 20 20 20 20 20 20 20 20 20 20 20 53 |.., S| 00004390 54 52 20 20 20 72 31 2c 5b 72 31 34 2c 23 32 30 |TR r1,[r14,#20| 000043a0 5d 20 5c 20 70 68 69 20 69 6e 63 0d 13 9c 21 20 |] \ phi inc...! | 000043b0 20 20 20 20 20 20 20 20 20 20 20 4c 44 52 20 20 | LDR | 000043c0 20 72 31 2c 5b 72 30 2c 23 32 30 5d 0d 13 a6 2e | r1,[r0,#20]....| 000043d0 20 20 20 20 20 20 20 20 20 20 20 20 53 54 52 20 | STR | 000043e0 20 20 72 31 2c 5b 72 31 34 2c 23 32 34 5d 20 5c | r1,[r14,#24] \| 000043f0 20 74 68 65 74 61 20 69 6e 63 0d 13 b0 21 20 20 | theta inc...! | 00004400 20 20 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 | LDR | 00004410 72 31 2c 5b 72 30 2c 23 32 34 5d 0d 13 ba 2d 20 |r1,[r0,#24]...- | 00004420 20 20 20 20 20 20 20 20 20 20 20 53 54 52 20 20 | STR | 00004430 20 72 31 2c 5b 72 31 34 2c 23 32 38 5d 20 5c 20 | r1,[r14,#28] \ | 00004440 70 68 69 20 66 6c 61 67 0d 13 c4 21 20 20 20 20 |phi flag...! | 00004450 20 20 20 20 20 20 20 20 4c 44 52 20 20 20 72 31 | LDR r1| 00004460 2c 5b 72 30 2c 23 32 38 5d 0d 13 ce 2f 20 20 20 |,[r0,#28].../ | 00004470 20 20 20 20 20 20 20 20 20 53 54 52 20 20 20 72 | STR r| 00004480 31 2c 5b 72 31 34 2c 23 33 32 5d 20 5c 20 74 68 |1,[r14,#32] \ th| 00004490 65 74 61 20 66 6c 61 67 0d 13 d8 25 20 20 20 20 |eta flag...% | 000044a0 20 20 20 20 20 20 20 20 4c 44 4d 46 44 20 72 31 | LDMFD r1| 000044b0 33 21 2c 7b 72 30 2d 72 32 2c 70 63 7d 0d 13 e2 |3!,{r0-r2,pc}...| 000044c0 04 0d 13 ec 17 2e 73 68 61 70 65 6e 75 6d 20 20 |......shapenum | 000044d0 20 45 51 55 44 20 20 30 0d 13 f6 04 0d 14 00 43 | EQUD 0.......C| 000044e0 2e 73 68 61 70 65 74 61 62 6c 65 20 5d 3a 50 25 |.shapetable ]:P%| 000044f0 2b 3d 33 32 2a 33 32 3a 5b 4f 50 54 70 61 73 73 |+=32*32:[OPTpass| 00004500 20 20 20 20 5c 20 61 64 64 72 65 73 73 2c 20 6e | \ address, n| 00004510 75 6d 62 65 72 20 6f 66 20 63 6f 6f 72 64 73 0d |umber of coords.| 00004520 14 0a 45 2e 63 6f 6f 72 64 73 20 20 20 20 20 5d |..E.coords ]| 00004530 3a 50 25 2b 3d 37 30 30 30 2a 31 36 3a 5b 4f 50 |:P%+=7000*16:[OP| 00004540 54 70 61 73 73 20 20 5c 20 2a 31 36 20 3d 20 21 |Tpass \ *16 = !| 00004550 78 20 2c 20 21 79 20 2c 20 21 7a 2c 20 21 63 6f |x , !y , !z, !co| 00004560 6c 6f 75 72 0d 14 14 04 0d 14 1e 1f 20 20 20 20 |lour........ | 00004570 20 20 20 20 20 20 20 20 5c 20 49 4d 50 4f 52 54 | \ IMPORT| 00004580 41 4e 54 20 ac 45 3a 0d 14 28 4e 20 20 20 20 20 |ANT .E:..(N | 00004590 20 20 20 20 20 20 20 5c 20 54 68 65 20 37 30 30 | \ The 700| 000045a0 30 20 61 62 6f 76 65 20 72 65 70 72 65 73 65 6e |0 above represen| 000045b0 74 73 20 74 68 65 20 74 6f 74 61 6c 20 6e 75 6d |ts the total num| 000045c0 62 65 72 20 6f 66 20 64 6f 74 73 20 72 65 71 75 |ber of dots requ| 000045d0 69 72 65 64 2e 0d 14 32 4b 20 20 20 20 20 20 20 |ired...2K | 000045e0 20 20 20 20 20 5c 20 49 66 20 79 6f 75 20 61 6c | \ If you al| 000045f0 74 65 72 20 61 6e 79 20 6f 66 20 74 68 65 20 73 |ter any of the s| 00004600 68 61 70 65 73 2c 20 6d 61 6b 65 20 73 75 72 65 |hapes, make sure| 00004610 20 74 68 61 74 20 74 68 69 73 20 76 61 6c 75 65 | that this value| 00004620 0d 14 3c 4a 20 20 20 20 20 20 20 20 20 20 20 20 |..<J | 00004630 5c 20 69 73 20 65 71 75 61 6c 20 74 6f 20 6f 72 |\ is equal to or| 00004640 20 61 62 6f 76 65 20 74 6f 20 74 68 65 20 74 6f | above to the to| 00004650 74 61 6c 20 61 6d 6f 75 6e 74 20 6f 66 20 63 6f |tal amount of co| 00004660 6f 72 64 69 6e 61 74 65 73 2e 0d 14 46 4d 20 20 |ordinates...FM | 00004670 20 20 20 20 20 20 20 20 20 20 5c 20 49 66 20 79 | \ If y| 00004680 6f 75 20 69 6e 63 72 65 61 73 65 20 74 68 69 73 |ou increase this| 00004690 20 76 61 6c 75 65 2c 20 62 65 20 73 75 72 65 20 | value, be sure | 000046a0 74 6f 20 61 64 6a 75 73 74 20 74 68 65 20 61 6d |to adjust the am| 000046b0 6f 75 6e 74 20 6f 66 0d 14 50 4e 20 20 20 20 20 |ount of..PN | 000046c0 20 20 20 20 20 20 20 5c 20 73 70 61 63 65 20 72 | \ space r| 000046d0 65 73 65 72 76 65 64 20 66 6f 72 20 74 68 65 20 |eserved for the | 000046e0 63 6f 64 65 20 69 6e 20 74 68 65 20 62 65 67 69 |code in the begi| 000046f0 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 70 72 6f |nning of the pro| 00004700 67 72 61 6d 2e 0d 14 5a 04 0d 14 64 51 2e 7a 65 |gram...Z...dQ.ze| 00004710 72 6f 72 65 67 20 20 20 20 20 44 43 44 30 3a 44 |roreg DCD0:D| 00004720 43 44 30 3a 44 43 44 30 3a 44 43 44 30 3a 44 43 |CD0:DCD0:DCD0:DC| 00004730 44 30 3a 44 43 44 30 3a 44 43 44 30 3a 44 43 44 |D0:DCD0:DCD0:DCD| 00004740 30 3a 44 43 44 30 3a 44 43 44 30 3a 44 43 44 30 |0:DCD0:DCD0:DCD0| 00004750 3a 44 43 44 30 3a 44 43 44 30 0d 14 6e 04 0d 14 |:DCD0:DCD0..n...| 00004760 78 28 2e 63 6c 65 61 72 73 63 72 20 20 20 20 53 |x(.clearscr S| 00004770 54 4d 46 44 20 72 31 33 21 2c 7b 72 30 2d 72 31 |TMFD r13!,{r0-r1| 00004780 32 2c 72 31 34 7d 0d 14 82 21 20 20 20 20 20 20 |2,r14}...! | 00004790 20 20 20 20 20 20 20 41 44 52 20 20 20 72 30 2c | ADR r0,| 000047a0 7a 65 72 6f 72 65 67 0d 14 8c 27 20 20 20 20 20 |zeroreg...' | 000047b0 20 20 20 20 20 20 20 20 4c 44 4d 49 41 20 72 30 | LDMIA r0| 000047c0 21 2c 7b 72 30 2d 72 31 31 2c 72 31 34 7d 0d 14 |!,{r0-r11,r14}..| 000047d0 96 25 20 20 20 20 20 20 20 20 20 20 20 20 20 5d |.% ]| 000047e0 3a e3 49 25 3d 31 b8 37 38 37 3a 5b 4f 50 54 70 |:.I%=1.787:[OPTp| 000047f0 61 73 73 0d 14 a0 28 20 20 20 20 20 20 20 20 20 |ass...( | 00004800 20 20 20 20 53 54 4d 49 41 20 72 31 32 21 2c 7b | STMIA r12!,{| 00004810 72 30 2d 72 31 31 2c 72 31 34 7d 0d 14 aa 1d 20 |r0-r11,r14}.... | 00004820 20 20 20 20 20 20 20 20 20 20 20 20 5d 3a ed 3a | ]:.:| 00004830 5b 4f 50 54 70 61 73 73 0d 14 b4 23 20 20 20 20 |[OPTpass...# | 00004840 20 20 20 20 20 20 20 20 20 53 54 4d 49 41 20 72 | STMIA r| 00004850 31 32 21 2c 7b 72 30 2d 72 38 7d 0d 14 be 27 20 |12!,{r0-r8}...' | 00004860 20 20 20 20 20 20 20 20 20 20 20 20 4c 44 4d 46 | LDMF| 00004870 44 20 72 31 33 21 2c 7b 72 30 2d 72 31 32 2c 70 |D r13!,{r0-r12,p| 00004880 63 7d 0d 14 c8 04 0d 14 d2 27 2e 73 65 74 63 6f |c}.......'.setco| 00004890 6c 6f 75 72 20 53 54 4d 46 44 20 20 20 72 31 33 |lour STMFD r13| 000048a0 21 2c 7b 72 30 2d 72 32 2c 72 31 34 7d 0d 14 dc |!,{r0-r2,r14}...| 000048b0 21 20 20 20 20 20 20 20 20 20 20 20 41 44 52 20 |! ADR | 000048c0 20 20 20 20 72 31 2c 70 61 6c 65 74 74 65 0d 14 | r1,palette..| 000048d0 e6 1d 20 20 20 20 20 20 20 20 20 20 20 4d 4f 56 |.. MOV| 000048e0 20 20 20 20 20 72 32 2c 23 39 36 0d 14 f0 21 2e | r2,#96...!.| 000048f0 63 6f 6c 6c 6f 6f 70 20 20 20 4c 44 52 42 20 20 |colloop LDRB | 00004900 20 20 72 30 2c 5b 72 31 5d 2c 23 31 0d 14 fa 22 | r0,[r1],#1..."| 00004910 20 20 20 20 20 20 20 20 20 20 20 53 57 49 20 20 | SWI | 00004920 20 20 20 22 4f 53 5f 57 72 69 74 65 43 22 0d 15 | "OS_WriteC"..| 00004930 04 1f 20 20 20 20 20 20 20 20 20 20 20 53 55 42 |.. SUB| 00004940 53 20 20 20 20 72 32 2c 72 32 2c 23 31 0d 15 0e |S r2,r2,#1...| 00004950 1e 20 20 20 20 20 20 20 20 20 20 20 42 4e 45 20 |. BNE | 00004960 20 20 20 20 63 6f 6c 6c 6f 6f 70 0d 15 18 26 20 | colloop...& | 00004970 20 20 20 20 20 20 20 20 20 20 4c 44 4d 46 44 20 | LDMFD | 00004980 20 20 72 31 33 21 2c 7b 72 30 2d 72 32 2c 70 63 | r13!,{r0-r2,pc| 00004990 7d 0d 15 22 04 0d 15 2c 21 2e 70 61 6c 65 74 74 |}.."...,!.palett| 000049a0 65 20 20 20 5d 3a 50 25 2b 3d 31 32 30 3a 5b 4f |e ]:P%+=120:[O| 000049b0 50 54 70 61 73 73 0d 15 36 23 2e 63 6f 6c 72 65 |PTpass..6#.colre| 000049c0 73 65 74 20 20 5d 3a 50 25 2b 3d 31 36 2a 31 32 |set ]:P%+=16*12| 000049d0 3a 5b 4f 50 54 70 61 73 73 0d 15 40 23 2e 63 6f |:[OPTpass..@#.co| 000049e0 6c 66 61 64 65 20 20 20 5d 3a 50 25 2b 3d 31 36 |lfade ]:P%+=16| 000049f0 2a 31 32 3a 5b 4f 50 54 70 61 73 73 0d 15 4a 04 |*12:[OPTpass..J.| 00004a00 0d 15 54 25 2e 72 65 73 65 74 63 6f 6c 73 20 53 |..T%.resetcols S| 00004a10 54 4d 46 44 20 72 31 33 21 2c 7b 72 30 2d 72 34 |TMFD r13!,{r0-r4| 00004a20 2c 72 31 34 7d 0d 15 5e 20 20 20 20 20 20 20 20 |,r14}..^ | 00004a30 20 20 20 20 41 44 52 20 20 20 72 30 2c 63 6f 6c | ADR r0,col| 00004a40 72 65 73 65 74 0d 15 68 20 20 20 20 20 20 20 20 |reset..h | 00004a50 20 20 20 20 41 44 52 20 20 20 72 31 34 2c 63 6f | ADR r14,co| 00004a60 6c 66 61 64 65 0d 15 72 1b 20 20 20 20 20 20 20 |lfade..r. | 00004a70 20 20 20 20 4d 4f 56 20 20 20 72 34 2c 23 31 36 | MOV r4,#16| 00004a80 0d 15 7c 20 2e 72 65 73 65 74 6c 6f 6f 70 20 4c |..| .resetloop L| 00004a90 44 4d 49 41 20 72 30 21 2c 7b 72 31 2d 72 33 7d |DMIA r0!,{r1-r3}| 00004aa0 0d 15 86 21 20 20 20 20 20 20 20 20 20 20 20 53 |...! S| 00004ab0 54 4d 49 41 20 72 31 34 21 2c 7b 72 31 2d 72 33 |TMIA r14!,{r1-r3| 00004ac0 7d 0d 15 90 1d 20 20 20 20 20 20 20 20 20 20 20 |}.... | 00004ad0 53 55 42 53 20 20 72 34 2c 72 34 2c 23 31 0d 15 |SUBS r4,r4,#1..| 00004ae0 9a 1e 20 20 20 20 20 20 20 20 20 20 20 42 4e 45 |.. BNE| 00004af0 20 20 20 72 65 73 65 74 6c 6f 6f 70 0d 15 a4 24 | resetloop...$| 00004b00 20 20 20 20 20 20 20 20 20 20 20 4c 44 4d 46 44 | LDMFD| 00004b10 20 72 31 33 21 2c 7b 72 30 2d 72 34 2c 70 63 7d | r13!,{r0-r4,pc}| 00004b20 0d 15 ae 04 0d 15 b8 47 5c 20 53 6f 72 72 79 20 |.......G\ Sorry | 00004b30 61 62 6f 75 74 20 74 68 65 20 68 61 72 64 77 61 |about the hardwa| 00004b40 72 65 20 61 63 63 65 73 73 20 66 6f 6c 6b 73 2c |re access folks,| 00004b50 20 62 75 74 20 ef 31 39 20 77 61 73 20 6a 75 73 | but .19 was jus| 00004b60 74 20 74 6f 6f 20 73 6c 6f 77 2e 0d 15 c2 25 2e |t too slow....%.| 00004b70 66 61 64 65 6f 75 74 20 20 20 53 54 4d 46 44 20 |fadeout STMFD | 00004b80 72 31 33 21 2c 7b 72 30 2d 72 37 2c 72 31 34 7d |r13!,{r0-r7,r14}| 00004b90 0d 15 cc 21 20 20 20 20 20 20 20 20 20 20 20 53 |...! S| 00004ba0 57 49 20 20 20 22 4f 53 5f 45 6e 74 65 72 4f 53 |WI "OS_EnterOS| 00004bb0 22 0d 15 d6 21 20 20 20 20 20 20 20 20 20 20 20 |"...! | 00004bc0 4d 4f 56 20 20 20 72 37 2c 23 26 33 34 30 30 30 |MOV r7,#&34000| 00004bd0 30 30 0d 15 e0 1f 20 20 20 20 20 20 20 20 20 20 |00.... | 00004be0 20 41 44 52 20 20 20 72 35 2c 63 6f 6c 66 61 64 | ADR r5,colfad| 00004bf0 65 0d 15 ea 1b 20 20 20 20 20 20 20 20 20 20 20 |e.... | 00004c00 4d 4f 56 20 20 20 72 36 2c 23 31 35 0d 15 f4 1f |MOV r6,#15....| 00004c10 2e 66 61 64 65 6f 6c 6f 6f 70 20 4c 44 4d 49 41 |.fadeoloop LDMIA| 00004c20 20 72 35 2c 7b 72 31 2d 72 33 7d 0d 15 fe 23 20 | r5,{r1-r3}...# | 00004c30 20 20 20 20 20 20 20 20 20 20 84 52 20 20 20 72 | .R r| 00004c40 30 2c 72 31 2c 72 36 2c 4c 53 4c 23 32 36 0d 16 |0,r1,r6,LSL#26..| 00004c50 08 22 20 20 20 20 20 20 20 20 20 20 20 84 52 20 |." .R | 00004c60 20 20 72 30 2c 72 30 2c 72 32 2c 4c 53 4c 23 34 | r0,r0,r2,LSL#4| 00004c70 0d 16 12 22 20 20 20 20 20 20 20 20 20 20 20 84 |..." .| 00004c80 52 20 20 20 72 30 2c 72 30 2c 72 33 2c 4c 53 4c |R r0,r0,r3,LSL| 00004c90 23 38 0d 16 1c 1c 20 20 20 20 20 20 20 20 20 20 |#8.... | 00004ca0 20 53 54 52 20 20 20 72 30 2c 5b 72 37 5d 0d 16 | STR r0,[r7]..| 00004cb0 26 29 20 20 20 20 20 20 20 20 20 20 20 53 55 42 |&) SUB| 00004cc0 53 20 20 72 31 2c 72 31 2c 23 31 3a 4d 4f 56 4d |S r1,r1,#1:MOVM| 00004cd0 49 20 72 31 2c 23 30 0d 16 30 29 20 20 20 20 20 |I r1,#0..0) | 00004ce0 20 20 20 20 20 20 53 55 42 53 20 20 72 32 2c 72 | SUBS r2,r| 00004cf0 32 2c 23 31 3a 4d 4f 56 4d 49 20 72 32 2c 23 30 |2,#1:MOVMI r2,#0| 00004d00 0d 16 3a 29 20 20 20 20 20 20 20 20 20 20 20 53 |..:) S| 00004d10 55 42 53 20 20 72 33 2c 72 33 2c 23 31 3a 4d 4f |UBS r3,r3,#1:MO| 00004d20 56 4d 49 20 72 33 2c 23 30 0d 16 44 20 20 20 20 |VMI r3,#0..D | 00004d30 20 20 20 20 20 20 20 20 53 54 4d 49 41 20 72 35 | STMIA r5| 00004d40 21 2c 7b 72 31 2d 72 33 7d 0d 16 4e 1d 20 20 20 |!,{r1-r3}..N. | 00004d50 20 20 20 20 20 20 20 20 53 55 42 53 20 20 72 36 | SUBS r6| 00004d60 2c 72 36 2c 23 31 0d 16 58 1e 20 20 20 20 20 20 |,r6,#1..X. | 00004d70 20 20 20 20 20 42 50 4c 20 20 20 66 61 64 65 6f | BPL fadeo| 00004d80 6c 6f 6f 70 0d 16 62 1a 20 20 20 20 20 20 20 20 |loop..b. | 00004d90 20 20 20 54 45 51 50 20 20 70 63 2c 23 30 0d 16 | TEQP pc,#0..| 00004da0 6c 1a 20 20 20 20 20 20 20 20 20 20 20 4d 4f 56 |l. MOV| 00004db0 4e 56 20 72 30 2c 72 30 0d 16 76 24 20 20 20 20 |NV r0,r0..v$ | 00004dc0 20 20 20 20 20 20 20 4c 44 4d 46 44 20 72 31 33 | LDMFD r13| 00004dd0 21 2c 7b 72 30 2d 72 37 2c 70 63 7d 0d 16 80 04 |!,{r0-r7,pc}....| 00004de0 0d 16 8a 26 2e 66 61 64 65 69 6e 20 20 20 20 53 |...&.fadein S| 00004df0 54 4d 46 44 20 72 31 33 21 2c 7b 72 30 2d 72 31 |TMFD r13!,{r0-r1| 00004e00 31 2c 72 31 34 7d 0d 16 94 21 20 20 20 20 20 20 |1,r14}...! | 00004e10 20 20 20 20 20 53 57 49 20 20 20 22 4f 53 5f 45 | SWI "OS_E| 00004e20 6e 74 65 72 4f 53 22 0d 16 9e 22 20 20 20 20 20 |nterOS"..." | 00004e30 20 20 20 20 20 20 4d 4f 56 20 20 20 72 31 31 2c | MOV r11,| 00004e40 23 26 33 34 30 30 30 30 30 0d 16 a8 1f 20 20 20 |#&3400000.... | 00004e50 20 20 20 20 20 20 20 20 41 44 52 20 20 20 72 35 | ADR r5| 00004e60 2c 63 6f 6c 66 61 64 65 0d 16 b2 20 20 20 20 20 |,colfade... | 00004e70 20 20 20 20 20 20 20 41 44 52 20 20 20 72 37 2c | ADR r7,| 00004e80 63 6f 6c 72 65 73 65 74 0d 16 bc 1b 20 20 20 20 |colreset.... | 00004e90 20 20 20 20 20 20 20 4d 4f 56 20 20 20 72 36 2c | MOV r6,| 00004ea0 23 31 35 0d 16 c6 1f 2e 66 61 64 65 69 6c 6f 6f |#15.....fadeiloo| 00004eb0 70 20 4c 44 4d 49 41 20 72 35 2c 7b 72 31 2d 72 |p LDMIA r5,{r1-r| 00004ec0 33 7d 0d 16 d0 21 20 20 20 20 20 20 20 20 20 20 |3}...! | 00004ed0 20 4c 44 4d 49 41 20 72 37 21 2c 7b 72 38 2d 72 | LDMIA r7!,{r8-r| 00004ee0 31 30 7d 0d 16 da 23 20 20 20 20 20 20 20 20 20 |10}...# | 00004ef0 20 20 84 52 20 20 20 72 30 2c 72 31 2c 72 36 2c | .R r0,r1,r6,| 00004f00 4c 53 4c 23 32 36 0d 16 e4 22 20 20 20 20 20 20 |LSL#26..." | 00004f10 20 20 20 20 20 84 52 20 20 20 72 30 2c 72 30 2c | .R r0,r0,| 00004f20 72 32 2c 4c 53 4c 23 34 0d 16 ee 22 20 20 20 20 |r2,LSL#4..." | 00004f30 20 20 20 20 20 20 20 84 52 20 20 20 72 30 2c 72 | .R r0,r| 00004f40 30 2c 72 33 2c 4c 53 4c 23 38 0d 16 f8 1d 20 20 |0,r3,LSL#8.... | 00004f50 20 20 20 20 20 20 20 20 20 53 54 52 20 20 20 72 | STR r| 00004f60 30 2c 5b 72 31 31 5d 0d 17 02 33 20 20 20 20 20 |0,[r11]...3 | 00004f70 20 20 20 20 20 20 41 44 44 20 20 20 72 31 2c 72 | ADD r1,r| 00004f80 31 2c 23 31 3a 43 4d 50 20 72 31 2c 72 38 3a 4d |1,#1:CMP r1,r8:M| 00004f90 4f 56 47 45 20 72 31 2c 72 38 0d 17 0c 33 20 20 |OVGE r1,r8...3 | 00004fa0 20 20 20 20 20 20 20 20 20 41 44 44 20 20 20 72 | ADD r| 00004fb0 32 2c 72 32 2c 23 31 3a 43 4d 50 20 72 31 2c 72 |2,r2,#1:CMP r1,r| 00004fc0 39 3a 4d 4f 56 47 45 20 72 32 2c 72 39 0d 17 16 |9:MOVGE r2,r9...| 00004fd0 35 20 20 20 20 20 20 20 20 20 20 20 41 44 44 20 |5 ADD | 00004fe0 20 20 72 33 2c 72 33 2c 23 31 3a 43 4d 50 20 72 | r3,r3,#1:CMP r| 00004ff0 31 2c 72 31 30 3a 4d 4f 56 47 45 20 72 33 2c 72 |1,r10:MOVGE r3,r| 00005000 31 30 0d 17 20 20 20 20 20 20 20 20 20 20 20 20 |10.. | 00005010 20 53 54 4d 49 41 20 72 35 21 2c 7b 72 31 2d 72 | STMIA r5!,{r1-r| 00005020 33 7d 0d 17 2a 1d 20 20 20 20 20 20 20 20 20 20 |3}..*. | 00005030 20 53 55 42 53 20 20 72 36 2c 72 36 2c 23 31 0d | SUBS r6,r6,#1.| 00005040 17 34 1e 20 20 20 20 20 20 20 20 20 20 20 42 50 |.4. BP| 00005050 4c 20 20 20 66 61 64 65 69 6c 6f 6f 70 0d 17 3e |L fadeiloop..>| 00005060 1a 20 20 20 20 20 20 20 20 20 20 20 54 45 51 50 |. TEQP| 00005070 20 20 70 63 2c 23 30 0d 17 48 1a 20 20 20 20 20 | pc,#0..H. | 00005080 20 20 20 20 20 20 4d 4f 56 4e 56 20 72 30 2c 72 | MOVNV r0,r| 00005090 30 0d 17 52 25 20 20 20 20 20 20 20 20 20 20 20 |0..R% | 000050a0 4c 44 4d 46 44 20 72 31 33 21 2c 7b 72 30 2d 72 |LDMFD r13!,{r0-r| 000050b0 31 31 2c 70 63 7d 0d 17 5c 04 0d 17 66 07 5d 3a |11,pc}..\...f.]:| 000050c0 ed 0d 17 70 3b f1 22 43 6f 64 65 20 66 72 6f 6d |...p;."Code from| 000050d0 20 26 22 3b 7e 63 6f 64 65 3b 22 2d 26 22 3b 7e | &";~code;"-&";~| 000050e0 50 25 3b 22 20 28 22 3b 28 50 25 2d 63 6f 64 65 |P%;" (";(P%-code| 000050f0 29 81 31 30 32 34 3b 22 4b 29 2e 22 0d 17 7a 2c |).1024;"K)."..z,| 00005100 ff 22 4c 4f 41 44 20 3c 44 69 7a 7a 79 24 44 69 |."LOAD <Dizzy$Di| 00005110 72 3e 2e 52 61 77 42 61 6c 6c 39 20 22 2b c3 7e |r>.RawBall9 "+.~| 00005120 62 61 6c 6c 64 61 74 61 0d 17 84 2b ff 22 4c 4f |balldata...+."LO| 00005130 41 44 20 3c 44 69 7a 7a 79 24 44 69 72 3e 2e 50 |AD <Dizzy$Dir>.P| 00005140 61 6c 65 74 74 65 20 20 22 2b c3 7e 70 61 6c 65 |alette "+.~pale| 00005150 74 74 65 0d 17 8e 2c ff 22 4c 4f 41 44 20 3c 44 |tte...,."LOAD <D| 00005160 69 7a 7a 79 24 44 69 72 3e 2e 46 6f 6e 74 20 20 |izzy$Dir>.Font | 00005170 20 20 20 22 2b c3 7e 66 6f 6e 74 64 61 74 61 0d | "+.~fontdata.| 00005180 17 98 04 0d 17 a2 20 4d 25 3d 70 61 6c 65 74 74 |...... M%=palett| 00005190 65 3a 4e 25 3d 63 6f 6c 72 65 73 65 74 2b 31 35 |e:N%=colreset+15| 000051a0 2a 31 32 0d 17 ac 24 e3 49 25 3d 31 b8 31 36 3a |*12...$.I%=1.16:| 000051b0 52 25 3d 4d 25 3f 33 3a 47 25 3d 4d 25 3f 34 3a |R%=M%?3:G%=M%?4:| 000051c0 42 25 3d 4d 25 3f 35 0d 17 b6 30 21 4e 25 3d 52 |B%=M%?5...0!N%=R| 000051d0 25 81 31 36 3a 4e 25 21 34 3d 47 25 81 31 36 3a |%.16:N%!4=G%.16:| 000051e0 4e 25 21 38 3d 42 25 81 31 36 3a 4e 25 2d 3d 31 |N%!8=B%.16:N%-=1| 000051f0 32 3a 4d 25 2b 3d 36 0d 17 c0 05 ed 0d 17 ca 04 |2:M%+=6.........| 00005200 0d 17 d4 38 4d 25 3d 73 69 6e 74 61 62 6c 65 3a |...8M%=sintable:| 00005210 e3 49 25 3d 30 20 b8 20 34 34 39 3a 21 4d 25 3d |.I%=0 . 449:!M%=| 00005220 b5 28 b2 28 49 25 29 29 2a 32 5e 66 6c 6f 61 74 |.(.(I%))*2^float| 00005230 3a 4d 25 2b 3d 34 3a ed 0d 17 de 42 4d 25 3d 66 |:M%+=4:....BM%=f| 00005240 72 61 63 74 69 6f 6e 73 3a e3 49 25 3d 2d 32 35 |ractions:.I%=-25| 00005250 35 b8 32 35 35 3a 21 4d 25 3d 31 39 32 2a 28 31 |5.255:!M%=192*(1| 00005260 2f 28 49 25 2b 32 35 36 29 29 2a 32 5e 66 6c 6f |/(I%+256))*2^flo| 00005270 61 74 3a 4d 25 2b 3d 34 3a ed 0d 17 e8 04 0d 17 |at:M%+=4:.......| 00005280 f2 0b 73 63 61 6c 65 3d 31 0d 17 fc 04 0d 18 06 |..scale=1.......| 00005290 1b 4d 25 3d 63 6f 6f 72 64 73 3a 4e 25 3d 73 68 |.M%=coords:N%=sh| 000052a0 61 70 65 74 61 62 6c 65 0d 18 10 0f 74 6f 74 61 |apetable....tota| 000052b0 6c 64 6f 74 73 3d 30 0d 18 1a 0c 63 6e 74 25 3d |ldots=0....cnt%=| 000052c0 6e 75 6d 0d 18 24 11 e3 63 6e 74 25 3d 30 20 b8 |num..$..cnt%=0 .| 000052d0 20 6e 75 6d 0d 18 2e 33 74 73 74 61 72 74 3d 30 | num...3tstart=0| 000052e0 3a 70 73 74 61 72 74 3d 30 3a 74 69 6e 63 3d 31 |:pstart=0:tinc=1| 000052f0 3a 70 69 6e 63 3d 31 3a 74 73 69 6e 65 3d 30 3a |:pinc=1:tsine=0:| 00005300 70 73 69 6e 65 3d 30 0d 18 38 0d 21 4e 25 3d 4d |psine=0..8.!N%=M| 00005310 25 2d 4e 25 0d 18 42 29 21 6e 6f 63 6f 6f 72 64 |%-N%..B)!nocoord| 00005320 73 3d a4 73 68 61 70 65 28 63 6e 74 25 29 3a 4e |s=.shape(cnt%):N| 00005330 25 21 34 3d 21 6e 6f 63 6f 6f 72 64 73 0d 18 4c |%!4=!nocoords..L| 00005340 2c 4e 25 21 38 3d 70 73 74 61 72 74 2a 32 5e 66 |,N%!8=pstart*2^f| 00005350 6c 6f 61 74 3a 4e 25 21 31 32 3d 74 73 74 61 72 |loat:N%!12=tstar| 00005360 74 2a 32 5e 66 6c 6f 61 74 0d 18 56 29 4e 25 21 |t*2^float..V)N%!| 00005370 31 36 3d 70 69 6e 63 2a 32 5e 66 6c 6f 61 74 3a |16=pinc*2^float:| 00005380 4e 25 21 32 30 3d 74 69 6e 63 2a 32 5e 66 6c 6f |N%!20=tinc*2^flo| 00005390 61 74 0d 18 60 22 4e 25 21 32 34 3d 70 73 69 6e |at..`"N%!24=psin| 000053a0 65 3a 4e 25 21 32 38 3d 74 73 69 6e 65 3a 4e 25 |e:N%!28=tsine:N%| 000053b0 2b 3d 33 32 0d 18 6a 0f f1 3b 21 6e 6f 63 6f 6f |+=32..j..;!nocoo| 000053c0 72 64 73 0d 18 74 18 74 6f 74 61 6c 64 6f 74 73 |rds..t.totaldots| 000053d0 2b 3d 21 6e 6f 63 6f 6f 72 64 73 0d 18 7e 05 ed |+=!nocoords..~..| 000053e0 0d 18 88 3c f1 22 74 6f 74 61 6c 20 63 6f 6f 72 |...<."total coor| 000053f0 64 69 6e 61 74 65 73 20 22 3b 74 6f 74 61 6c 64 |dinates ";totald| 00005400 6f 74 73 3b 22 2e 20 20 50 72 65 73 73 20 73 70 |ots;". Press sp| 00005410 61 63 65 20 62 61 72 2e 2e 2e 2e 22 0d 18 92 0b |ace bar...."....| 00005420 e7 73 61 76 65 20 8c 0d 18 9c 32 ff 22 53 61 76 |.save ....2."Sav| 00005430 65 20 3c 44 69 7a 7a 79 24 44 69 72 3e 2e 21 52 |e <Dizzy$Dir>.!R| 00005440 75 6e 49 6d 61 67 65 20 22 2b c3 7e 63 6f 64 65 |unImage "+.~code| 00005450 2b 22 20 22 2b c3 7e 50 25 0d 18 a6 26 2a 53 45 |+" "+.~P%...&*SE| 00005460 54 54 59 50 45 20 3c 44 69 7a 7a 79 24 44 69 72 |TTYPE <Dizzy$Dir| 00005470 3e 2e 21 52 75 6e 49 6d 61 67 65 20 46 46 38 0d |>.!RunImage FF8.| 00005480 18 b0 05 cd 0d 18 ba 05 e1 0d 18 c4 04 0d 18 ce |................| 00005490 14 dd a4 61 64 72 28 64 65 73 74 2c 61 64 64 72 |...adr(dest,addr| 000054a0 29 0d 18 d8 14 e7 70 61 73 73 3d 30 20 8c 61 64 |).....pass=0 .ad| 000054b0 64 72 3d 50 25 0d 18 e2 0e e7 61 64 64 72 3c 50 |dr=P%.....addr<P| 000054c0 25 20 8c 0d 18 ec 12 61 64 64 72 3d 50 25 2d 61 |% .....addr=P%-a| 000054d0 64 64 72 2b 38 0d 18 f6 2d e7 61 64 64 72 3e 26 |ddr+8...-.addr>&| 000054e0 46 46 46 46 20 8c ef 37 3a f1 22 49 4c 4c 45 47 |FFFF ..7:."ILLEG| 000054f0 41 4c 20 41 44 52 20 41 54 54 45 4d 50 54 2e 22 |AL ADR ATTEMPT."| 00005500 3a e0 0d 19 00 44 5b 4f 50 54 70 61 73 73 3a 53 |:....D[OPTpass:S| 00005510 55 42 20 64 65 73 74 2c 70 63 2c 23 28 61 64 64 |UB dest,pc,#(add| 00005520 72 20 80 26 46 46 30 30 29 3a 53 55 42 20 64 65 |r .&FF00):SUB de| 00005530 73 74 2c 64 65 73 74 2c 23 28 61 64 64 72 20 80 |st,dest,#(addr .| 00005540 26 46 46 29 3a 5d 0d 19 0a 05 cc 0d 19 14 12 61 |&FF):].........a| 00005550 64 64 72 3d 61 64 64 72 2d 50 25 2d 38 0d 19 1e |ddr=addr-P%-8...| 00005560 2d e7 61 64 64 72 3e 26 46 46 46 46 20 8c ef 37 |-.addr>&FFFF ..7| 00005570 3a f1 22 49 4c 4c 45 47 41 4c 20 41 44 52 20 41 |:."ILLEGAL ADR A| 00005580 54 54 45 4d 50 54 2e 22 3a e0 0d 19 28 44 5b 4f |TTEMPT.":...(D[O| 00005590 50 54 70 61 73 73 3a 41 44 44 20 64 65 73 74 2c |PTpass:ADD dest,| 000055a0 70 63 2c 23 28 61 64 64 72 20 80 26 46 46 30 30 |pc,#(addr .&FF00| 000055b0 29 3a 41 44 44 20 64 65 73 74 2c 64 65 73 74 2c |):ADD dest,dest,| 000055c0 23 28 61 64 64 72 20 80 26 46 46 29 3a 5d 0d 19 |#(addr .&FF):]..| 000055d0 32 05 cd 0d 19 3c 06 3d 30 0d 19 46 04 0d 19 50 |2....<.=0..F...P| 000055e0 14 dd a4 6c 64 72 28 64 65 73 74 2c 61 64 64 72 |...ldr(dest,addr| 000055f0 29 0d 19 5a 14 e7 70 61 73 73 3d 30 20 8c 61 64 |)..Z..pass=0 .ad| 00005600 64 72 3d 50 25 0d 19 64 0e e7 61 64 64 72 3c 50 |dr=P%..d..addr<P| 00005610 25 20 8c 0d 19 6e 12 61 64 64 72 3d 50 25 2d 61 |% ...n.addr=P%-a| 00005620 64 64 72 2b 38 0d 19 78 2d e7 61 64 64 72 3e 26 |ddr+8..x-.addr>&| 00005630 46 46 46 46 20 8c ef 37 3a f1 22 49 4c 4c 45 47 |FFFF ..7:."ILLEG| 00005640 41 4c 20 41 44 52 20 41 54 54 45 4d 50 54 2e 22 |AL ADR ATTEMPT."| 00005650 3a e0 0d 19 82 47 5b 4f 50 54 70 61 73 73 3a 53 |:....G[OPTpass:S| 00005660 55 42 20 64 65 73 74 2c 70 63 2c 23 28 61 64 64 |UB dest,pc,#(add| 00005670 72 20 80 26 46 46 30 30 29 3a 4c 44 52 20 64 65 |r .&FF00):LDR de| 00005680 73 74 2c 5b 64 65 73 74 2c 23 2d 28 61 64 64 72 |st,[dest,#-(addr| 00005690 20 80 26 46 46 29 5d 3a 5d 0d 19 8c 05 cc 0d 19 | .&FF)]:].......| 000056a0 96 12 61 64 64 72 3d 61 64 64 72 2d 50 25 2d 38 |..addr=addr-P%-8| 000056b0 0d 19 a0 2d e7 61 64 64 72 3e 26 46 46 46 46 20 |...-.addr>&FFFF | 000056c0 8c ef 37 3a f1 22 49 4c 4c 45 47 41 4c 20 41 44 |..7:."ILLEGAL AD| 000056d0 52 20 41 54 54 45 4d 50 54 2e 22 3a e0 0d 19 aa |R ATTEMPT.":....| 000056e0 46 5b 4f 50 54 70 61 73 73 3a 41 44 44 20 64 65 |F[OPTpass:ADD de| 000056f0 73 74 2c 70 63 2c 23 28 61 64 64 72 20 80 26 46 |st,pc,#(addr .&F| 00005700 46 30 30 29 3a 4c 44 52 20 64 65 73 74 2c 5b 64 |F00):LDR dest,[d| 00005710 65 73 74 2c 23 28 61 64 64 72 20 80 26 46 46 29 |est,#(addr .&FF)| 00005720 5d 3a 5d 0d 19 b4 05 cd 0d 19 be 06 3d 30 0d 19 |]:].........=0..| 00005730 c8 04 0d 19 d2 13 dd 20 a4 73 68 61 70 65 28 73 |....... .shape(s| 00005740 68 61 70 65 29 0d 19 dc 0a 64 6f 74 73 3d 30 0d |hape)....dots=0.| 00005750 19 e6 0e c8 8e 20 73 68 61 70 65 20 ca 0d 19 f0 |..... shape ....| 00005760 09 20 c9 20 30 3a 0d 19 fa 33 74 73 74 61 72 74 |. . 0:...3tstart| 00005770 3d 30 3a 70 73 74 61 72 74 3d 30 3a 74 69 6e 63 |=0:pstart=0:tinc| 00005780 3d 31 3a 70 69 6e 63 3d 32 3a 74 73 69 6e 65 3d |=1:pinc=2:tsine=| 00005790 30 3a 70 73 69 6e 65 3d 30 0d 1a 04 37 73 63 61 |0:psine=0...7sca| 000057a0 6c 65 3d 31 3a f1 22 27 48 65 6c 6c 6f 27 22 3b |le=1:."'Hello'";| 000057b0 8a 31 35 29 3b 22 53 63 61 6c 65 3a 20 22 3b 73 |.15);"Scale: ";s| 000057c0 63 61 6c 65 3b 8a 33 30 29 3b 22 2e 2e 2e 22 3b |cale;.30);"...";| 000057d0 0d 1a 0e 0f 20 20 de 20 62 6c 6b 20 31 30 30 0d |.... . blk 100.| 000057e0 1a 18 13 20 20 74 65 78 74 24 3d 22 48 65 6c 6c |... text$="Hell| 000057f0 6f 22 0d 1a 22 1d 20 20 61 3d 36 3a 6d 3d 2d 28 |o"..". a=6:m=-(| 00005800 28 a9 28 74 65 78 74 24 29 2a 38 29 2f 32 29 0d |(.(text$)*8)/2).| 00005810 1a 2c 08 43 25 3d 30 0d 1a 36 14 20 20 e3 20 62 |.,.C%=0..6. . b| 00005820 3d 31 20 b8 20 a9 74 65 78 74 24 0d 1a 40 20 43 |=1 . .text$..@ C| 00005830 25 2b 3d 26 36 30 30 3a e7 43 25 3d 26 36 30 30 |%+=&600:.C%=&600| 00005840 2a 37 20 8c 43 25 3d 26 36 30 30 0d 1a 4a 17 20 |*7 .C%=&600..J. | 00005850 20 20 62 6c 6b 3f 30 3d 97 c1 74 65 78 74 24 2c | blk?0=..text$,| 00005860 62 29 0d 1a 54 1a 20 20 20 c8 99 20 22 4f 53 5f |b)..T. .. "OS_| 00005870 57 6f 72 64 22 2c 31 30 2c 62 6c 6b 0d 1a 5e 24 |Word",10,blk..^$| 00005880 e3 20 63 3d 30 20 b8 20 37 3a 42 25 3d 62 6c 6b |. c=0 . 7:B%=blk| 00005890 3f 28 63 2b 31 29 3a e3 20 64 3d 30 20 b8 20 37 |?(c+1):. d=0 . 7| 000058a0 0d 1a 68 33 e7 28 42 25 20 80 20 32 5e 64 29 3c |..h3.(B% . 2^d)<| 000058b0 3e 30 20 8c f2 64 6f 74 28 28 28 37 2d 64 29 2b |>0 ..dot(((7-d)+| 000058c0 6d 29 2a 61 2c 28 63 2d 34 29 2a 61 2a 32 2c 2d |m)*a,(c-4)*a*2,-| 000058d0 32 30 29 0d 1a 72 0e ed 3a ed 3a 6d 2b 3d 38 3a |20)..r..:.:m+=8:| 000058e0 ed 0d 1a 7c 09 20 c9 20 31 3a 0d 1a 86 33 74 73 |...|. . 1:...3ts| 000058f0 74 61 72 74 3d 30 3a 70 73 74 61 72 74 3d 30 3a |tart=0:pstart=0:| 00005900 74 69 6e 63 3d 31 3a 70 69 6e 63 3d 31 3a 74 73 |tinc=1:pinc=1:ts| 00005910 69 6e 65 3d 31 3a 70 73 69 6e 65 3d 30 0d 1a 90 |ine=1:psine=0...| 00005920 14 73 74 65 70 3d 31 37 3a 6c 69 6d 69 74 3d 35 |.step=17:limit=5| 00005930 31 0d 1a 9a 35 73 63 61 6c 65 3d 31 2e 34 3a f1 |1...5scale=1.4:.| 00005940 22 42 6f 78 22 3b 8a 31 35 29 3b 22 53 63 61 6c |"Box";.15);"Scal| 00005950 65 3a 20 22 3b 73 63 61 6c 65 3b 8a 33 30 29 3b |e: ";scale;.30);| 00005960 22 2e 2e 2e 22 3b 0d 1a a4 1f 20 20 e3 20 61 3d |"...";.... . a=| 00005970 2d 6c 69 6d 69 74 20 b8 20 6c 69 6d 69 74 20 88 |-limit . limit .| 00005980 20 73 74 65 70 0d 1a ae 20 20 20 20 e3 20 62 3d | step... . b=| 00005990 2d 6c 69 6d 69 74 20 b8 20 6c 69 6d 69 74 20 88 |-limit . limit .| 000059a0 20 73 74 65 70 0d 1a b8 0d 43 25 3d 26 36 30 30 | step....C%=&600| 000059b0 2a 31 0d 1a c2 18 20 20 20 20 f2 64 6f 74 28 61 |*1.... .dot(a| 000059c0 2c 62 2c 2d 6c 69 6d 69 74 29 0d 1a cc 0d 43 25 |,b,-limit)....C%| 000059d0 3d 26 36 30 30 2a 32 0d 1a d6 17 20 20 20 20 f2 |=&600*2.... .| 000059e0 64 6f 74 28 61 2c 62 2c 6c 69 6d 69 74 29 0d 1a |dot(a,b,limit)..| 000059f0 e0 08 20 20 20 ed 0d 1a ea 07 20 20 ed 0d 1a f4 |.. ..... ....| 00005a00 2d 20 20 e3 20 61 3d 28 2d 6c 69 6d 69 74 2b 73 |- . a=(-limit+s| 00005a10 74 65 70 29 20 b8 20 28 6c 69 6d 69 74 2d 73 74 |tep) . (limit-st| 00005a20 65 70 29 20 88 20 73 74 65 70 0d 1a fe 2d 20 20 |ep) . step...- | 00005a30 e3 20 62 3d 28 2d 6c 69 6d 69 74 2b 73 74 65 70 |. b=(-limit+step| 00005a40 29 20 b8 20 28 6c 69 6d 69 74 2d 73 74 65 70 29 |) . (limit-step)| 00005a50 20 88 20 73 74 65 70 0d 1b 08 0d 43 25 3d 26 36 | . step....C%=&6| 00005a60 30 30 2a 33 0d 1b 12 18 20 20 20 20 f2 64 6f 74 |00*3.... .dot| 00005a70 28 61 2c 2d 6c 69 6d 69 74 2c 62 29 0d 1b 1c 0d |(a,-limit,b)....| 00005a80 43 25 3d 26 36 30 30 2a 34 0d 1b 26 17 20 20 20 |C%=&600*4..&. | 00005a90 20 f2 64 6f 74 28 61 2c 6c 69 6d 69 74 2c 62 29 | .dot(a,limit,b)| 00005aa0 0d 1b 30 08 20 20 20 ed 0d 1b 3a 07 20 20 ed 0d |..0. ...:. ..| 00005ab0 1b 44 2d 20 20 e3 20 61 3d 28 2d 6c 69 6d 69 74 |.D- . a=(-limit| 00005ac0 2b 73 74 65 70 29 20 b8 20 28 6c 69 6d 69 74 2d |+step) . (limit-| 00005ad0 73 74 65 70 29 20 88 20 73 74 65 70 0d 1b 4e 1f |step) . step..N.| 00005ae0 20 20 e3 20 62 3d 2d 6c 69 6d 69 74 20 b8 20 6c | . b=-limit . l| 00005af0 69 6d 69 74 20 88 20 73 74 65 70 0d 1b 58 1e 43 |imit . step..X.C| 00005b00 25 3d 26 36 30 30 2a 35 3a f2 64 6f 74 28 2d 6c |%=&600*5:.dot(-l| 00005b10 69 6d 69 74 2c 62 2c 61 29 0d 1b 62 1d 43 25 3d |imit,b,a)..b.C%=| 00005b20 26 36 30 30 2a 36 3a f2 64 6f 74 28 6c 69 6d 69 |&600*6:.dot(limi| 00005b30 74 2c 62 2c 61 29 0d 1b 6c 07 ed 3a ed 0d 1b 76 |t,b,a)..l..:...v| 00005b40 09 20 c9 20 32 3a 0d 1b 80 33 74 73 74 61 72 74 |. . 2:...3tstart| 00005b50 3d 30 3a 70 73 74 61 72 74 3d 30 3a 74 69 6e 63 |=0:pstart=0:tinc| 00005b60 3d 32 3a 70 69 6e 63 3d 32 3a 74 73 69 6e 65 3d |=2:pinc=2:tsine=| 00005b70 30 3a 70 73 69 6e 65 3d 30 0d 1b 8a 35 73 63 61 |0:psine=0...5sca| 00005b80 6c 65 3d 31 3a f1 22 52 69 6e 67 73 22 3b 8a 31 |le=1:."Rings";.1| 00005b90 35 29 3b 22 53 63 61 6c 65 3a 20 22 3b 73 63 61 |5);"Scale: ";sca| 00005ba0 6c 65 3b 8a 33 30 29 3b 22 2e 2e 2e 22 3b 0d 1b |le;.30);"...";..| 00005bb0 94 16 20 20 e3 20 61 3d 30 20 b8 20 33 35 30 20 |.. . a=0 . 350 | 00005bc0 88 20 31 30 0d 1b 9e 11 20 20 20 63 6f 73 3d 38 |. 10.... cos=8| 00005bd0 30 2a 9b b2 61 0d 1b a8 11 20 20 20 73 69 6e 3d |0*..a.... sin=| 00005be0 38 30 2a b5 b2 61 0d 1b b2 0b 43 25 3d 26 36 30 |80*..a....C%=&60| 00005bf0 30 0d 1b bc 19 20 20 20 20 f2 64 6f 74 28 31 30 |0.... .dot(10| 00005c00 30 2c 63 6f 73 2c 73 69 6e 29 0d 1b c6 0d 43 25 |0,cos,sin)....C%| 00005c10 3d 26 36 30 30 2a 32 0d 1b d0 1a 20 20 20 20 f2 |=&600*2.... .| 00005c20 64 6f 74 28 2d 31 30 30 2c 63 6f 73 2c 73 69 6e |dot(-100,cos,sin| 00005c30 29 0d 1b da 0d 43 25 3d 26 36 30 30 2a 33 0d 1b |)....C%=&600*3..| 00005c40 e4 19 20 20 20 20 f2 64 6f 74 28 63 6f 73 2c 31 |.. .dot(cos,1| 00005c50 30 30 2c 73 69 6e 29 0d 1b ee 0d 43 25 3d 26 36 |00,sin)....C%=&6| 00005c60 30 30 2a 34 0d 1b f8 1a 20 20 20 20 f2 64 6f 74 |00*4.... .dot| 00005c70 28 63 6f 73 2c 2d 31 30 30 2c 73 69 6e 29 0d 1c |(cos,-100,sin)..| 00005c80 02 0d 43 25 3d 26 36 30 30 2a 35 0d 1c 0c 19 20 |..C%=&600*5.... | 00005c90 20 20 20 f2 64 6f 74 28 63 6f 73 2c 73 69 6e 2c | .dot(cos,sin,| 00005ca0 31 30 30 29 0d 1c 16 0d 43 25 3d 26 36 30 30 2a |100)....C%=&600*| 00005cb0 36 0d 1c 20 1a 20 20 20 20 f2 64 6f 74 28 63 6f |6.. . .dot(co| 00005cc0 73 2c 73 69 6e 2c 2d 31 30 30 29 0d 1c 2a 08 20 |s,sin,-100)..*. | 00005cd0 20 20 ed 0d 1c 34 09 20 c9 20 33 3a 0d 1c 3e 33 | ...4. . 3:..>3| 00005ce0 74 73 74 61 72 74 3d 30 3a 70 73 74 61 72 74 3d |tstart=0:pstart=| 00005cf0 30 3a 74 69 6e 63 3d 32 3a 70 69 6e 63 3d 31 3a |0:tinc=2:pinc=1:| 00005d00 74 73 69 6e 65 3d 30 3a 70 73 69 6e 65 3d 30 0d |tsine=0:psine=0.| 00005d10 1c 48 40 73 63 61 6c 65 3d 31 3a 43 25 3d 26 36 |.H@scale=1:C%=&6| 00005d20 30 30 2a 36 3a 3a f1 22 42 75 6c 62 73 22 3b 8a |00*6::."Bulbs";.| 00005d30 31 35 29 3b 22 53 63 61 6c 65 3a 20 22 3b 73 63 |15);"Scale: ";sc| 00005d40 61 6c 65 3b 8a 33 30 29 3b 22 2e 2e 2e 22 3b 0d |ale;.30);"...";.| 00005d50 1c 52 16 20 20 e3 20 72 3d 32 30 20 b8 20 36 30 |.R. . r=20 . 60| 00005d60 20 88 20 32 30 0d 1c 5c 0d 20 20 20 62 3d 72 2b | . 20..\. b=r+| 00005d70 34 30 0d 1c 66 21 73 74 65 70 32 3d 32 30 3a e7 |40..f!step2=20:.| 00005d80 72 3c 35 30 20 8c 73 74 65 70 32 3d 73 74 65 70 |r<50 .step2=step| 00005d90 32 2a 32 0d 1c 70 1a 20 20 20 e3 20 61 3d 30 20 |2*2..p. . a=0 | 00005da0 b8 20 33 35 30 20 88 20 73 74 65 70 32 0d 1c 7a |. 350 . step2..z| 00005db0 11 20 20 20 20 63 6f 73 3d 72 2a 9b b2 61 0d 1c |. cos=r*..a..| 00005dc0 84 11 20 20 20 20 73 69 6e 3d 72 2a b5 b2 61 0d |.. sin=r*..a.| 00005dd0 1c 8e 17 20 20 20 20 f2 64 6f 74 28 62 2c 63 6f |... .dot(b,co| 00005de0 73 2c 73 69 6e 29 0d 1c 98 18 20 20 20 20 f2 64 |s,sin).... .d| 00005df0 6f 74 28 2d 62 2c 63 6f 73 2c 73 69 6e 29 0d 1c |ot(-b,cos,sin)..| 00005e00 a2 17 20 20 20 20 f2 64 6f 74 28 63 6f 73 2c 62 |.. .dot(cos,b| 00005e10 2c 73 69 6e 29 0d 1c ac 18 20 20 20 20 f2 64 6f |,sin).... .do| 00005e20 74 28 63 6f 73 2c 2d 62 2c 73 69 6e 29 0d 1c b6 |t(cos,-b,sin)...| 00005e30 17 20 20 20 20 f2 64 6f 74 28 63 6f 73 2c 73 69 |. .dot(cos,si| 00005e40 6e 2c 62 29 0d 1c c0 18 20 20 20 20 f2 64 6f 74 |n,b).... .dot| 00005e50 28 63 6f 73 2c 73 69 6e 2c 2d 62 29 0d 1c ca 08 |(cos,sin,-b)....| 00005e60 20 20 20 ed 0d 1c d4 07 20 20 ed 0d 1c de 09 20 | ..... ..... | 00005e70 c9 20 34 3a 0d 1c e8 34 74 73 74 61 72 74 3d 30 |. 4:...4tstart=0| 00005e80 3a 70 73 74 61 72 74 3d 33 30 3a 74 69 6e 63 3d |:pstart=30:tinc=| 00005e90 31 3a 70 69 6e 63 3d 31 3a 74 73 69 6e 65 3d 31 |1:pinc=1:tsine=1| 00005ea0 3a 70 73 69 6e 65 3d 31 0d 1c f2 36 73 63 61 6c |:psine=1...6scal| 00005eb0 65 3d 30 2e 37 3a f1 22 54 75 62 65 22 3b 8a 31 |e=0.7:."Tube";.1| 00005ec0 35 29 3b 22 53 63 61 6c 65 3a 20 22 3b 73 63 61 |5);"Scale: ";sca| 00005ed0 6c 65 3b 8a 33 30 29 3b 22 2e 2e 2e 22 3b 0d 1c |le;.30);"...";..| 00005ee0 fc 0f 63 6f 6c 3d 31 3a 69 6e 63 3d 31 0d 1d 06 |..col=1:inc=1...| 00005ef0 19 20 20 e3 20 61 3d 2d 31 30 30 20 b8 20 31 30 |. . a=-100 . 10| 00005f00 30 20 88 20 32 30 0d 1d 10 0f 43 25 3d 26 36 30 |0 . 20....C%=&60| 00005f10 30 2a 63 6f 6c 0d 1d 1a 15 e7 63 6f 6c 3d 34 20 |0*col.....col=4 | 00005f20 8c 43 25 3d 26 36 30 30 2a 35 0d 1d 24 15 e7 63 |.C%=&600*5..$..c| 00005f30 6f 6c 3d 35 20 8c 43 25 3d 26 36 30 30 2a 34 0d |ol=5 .C%=&600*4.| 00005f40 1d 2e 17 20 20 20 e3 20 62 3d 30 20 b8 20 33 34 |... . b=0 . 34| 00005f50 35 20 88 20 31 38 0d 1d 38 1d 20 20 20 20 f2 64 |5 . 18..8. .d| 00005f60 6f 74 28 38 30 2a 9b b2 62 2c 61 2c 38 30 2a b5 |ot(80*..b,a,80*.| 00005f70 b2 62 29 0d 1d 42 08 20 20 20 ed 0d 1d 4c 1b 63 |.b)..B. ...L.c| 00005f80 6f 6c 2b 3d 69 6e 63 3a e7 63 6f 6c 3d 36 20 8c |ol+=inc:.col=6 .| 00005f90 69 6e 63 3d 2d 31 0d 1d 56 07 20 20 ed 0d 1d 60 |inc=-1..V. ...`| 00005fa0 09 20 c9 20 35 3a 0d 1d 6a 34 74 73 74 61 72 74 |. . 5:..j4tstart| 00005fb0 3d 30 3a 70 73 74 61 72 74 3d 39 30 3a 74 69 6e |=0:pstart=90:tin| 00005fc0 63 3d 32 3a 70 69 6e 63 3d 31 3a 74 73 69 6e 65 |c=2:pinc=1:tsine| 00005fd0 3d 31 3a 70 73 69 6e 65 3d 31 0d 1d 74 38 73 63 |=1:psine=1..t8sc| 00005fe0 61 6c 65 3d 31 3a 3a f1 22 47 69 72 64 65 72 73 |ale=1::."Girders| 00005ff0 22 3b 8a 31 35 29 3b 22 53 63 61 6c 65 3a 20 22 |";.15);"Scale: "| 00006000 3b 73 63 61 6c 65 3b 8a 33 30 29 3b 22 2e 2e 2e |;scale;.30);"...| 00006010 22 3b 0d 1d 7e 0d 43 25 3d 26 36 30 30 2a 33 0d |";..~.C%=&600*3.| 00006020 1d 88 19 20 20 e3 20 61 3d 2d 31 32 30 20 b8 20 |... . a=-120 . | 00006030 2d 33 30 20 88 20 31 30 0d 1d 92 17 20 20 20 e3 |-30 . 10.... .| 00006040 20 62 3d 30 20 b8 20 33 30 30 20 88 20 39 30 0d | b=0 . 300 . 90.| 00006050 1d 9c 12 20 20 20 20 63 6f 73 3d 33 30 2a 9b b2 |... cos=30*..| 00006060 62 0d 1d a6 12 20 20 20 20 73 69 6e 3d 33 30 2a |b.... sin=30*| 00006070 b5 b2 62 0d 1d b0 17 20 20 20 20 f2 64 6f 74 28 |..b.... .dot(| 00006080 61 2c 63 6f 73 2c 73 69 6e 29 0d 1d ba 17 20 20 |a,cos,sin).... | 00006090 20 20 f2 64 6f 74 28 63 6f 73 2c 61 2c 73 69 6e | .dot(cos,a,sin| 000060a0 29 0d 1d c4 16 20 20 20 f2 64 6f 74 28 63 6f 73 |).... .dot(cos| 000060b0 2c 73 69 6e 2c 61 29 0d 1d ce 18 20 20 20 20 f2 |,sin,a).... .| 000060c0 64 6f 74 28 2d 61 2c 63 6f 73 2c 73 69 6e 29 0d |dot(-a,cos,sin).| 000060d0 1d d8 18 20 20 20 20 f2 64 6f 74 28 63 6f 73 2c |... .dot(cos,| 000060e0 2d 61 2c 73 69 6e 29 0d 1d e2 18 20 20 20 20 f2 |-a,sin).... .| 000060f0 64 6f 74 28 63 6f 73 2c 73 69 6e 2c 2d 61 29 0d |dot(cos,sin,-a).| 00006100 1d ec 08 20 20 20 ed 0d 1d f6 07 20 20 ed 0d 1e |... ..... ...| 00006110 00 09 20 c9 20 36 3a 0d 1e 0a 33 74 73 74 61 72 |.. . 6:...3tstar| 00006120 74 3d 30 3a 70 73 74 61 72 74 3d 30 3a 74 69 6e |t=0:pstart=0:tin| 00006130 63 3d 31 3a 70 69 6e 63 3d 31 3a 74 73 69 6e 65 |c=1:pinc=1:tsine| 00006140 3d 30 3a 70 73 69 6e 65 3d 31 0d 1e 14 37 73 63 |=0:psine=1...7sc| 00006150 61 6c 65 3d 30 2e 37 3a 3a f1 22 56 61 73 65 22 |ale=0.7::."Vase"| 00006160 3b 8a 31 35 29 3b 22 53 63 61 6c 65 3a 20 22 3b |;.15);"Scale: ";| 00006170 73 63 61 6c 65 3b 8a 33 30 29 3b 22 2e 2e 2e 22 |scale;.30);"..."| 00006180 3b 0d 1e 1e 0d 43 25 3d 26 36 30 30 2a 34 0d 1e |;....C%=&600*4..| 00006190 28 16 20 20 e3 20 61 3d 2d 31 20 b8 20 2e 39 20 |(. . a=-1 . .9 | 000061a0 88 20 2e 31 0d 1e 32 1b 20 20 20 72 3d 31 30 30 |. .1..2. r=100| 000061b0 2d 37 30 2a b5 b2 28 61 2a 39 30 2b 39 30 29 0d |-70*..(a*90+90).| 000061c0 1e 3c 17 20 20 20 e3 20 62 3d 30 20 b8 20 33 34 |.<. . b=0 . 34| 000061d0 30 20 88 20 32 34 0d 1e 46 1f 20 20 20 20 f2 64 |0 . 24..F. .d| 000061e0 6f 74 28 72 2a 9b b2 62 2c 61 2a 31 30 30 2c 72 |ot(r*..b,a*100,r| 000061f0 2a b5 b2 62 29 0d 1e 50 08 20 20 20 ed 0d 1e 5a |*..b)..P. ...Z| 00006200 07 20 20 ed 0d 1e 64 09 20 c9 20 37 3a 0d 1e 6e |. ...d. . 7:..n| 00006210 34 74 73 74 61 72 74 3d 30 3a 70 73 74 61 72 74 |4tstart=0:pstart| 00006220 3d 39 30 3a 74 69 6e 63 3d 32 3a 70 69 6e 63 3d |=90:tinc=2:pinc=| 00006230 32 3a 74 73 69 6e 65 3d 30 3a 70 73 69 6e 65 3d |2:tsine=0:psine=| 00006240 30 0d 1e 78 3e 73 63 61 6c 65 3d 31 3a 43 25 3d |0..x>scale=1:C%=| 00006250 26 36 30 30 2a 34 3a f1 22 54 79 72 65 22 3b 8a |&600*4:."Tyre";.| 00006260 31 35 29 3b 22 53 63 61 6c 65 3a 20 22 3b 73 63 |15);"Scale: ";sc| 00006270 61 6c 65 3b 8a 33 30 29 3b 22 2e 2e 2e 22 3b 0d |ale;.30);"...";.| 00006280 1e 82 16 20 20 e3 20 61 3d 30 20 b8 20 33 34 30 |... . a=0 . 340| 00006290 20 88 20 32 30 0d 1e 8c 17 20 20 20 e3 20 62 3d | . 20.... . b=| 000062a0 30 20 b8 20 33 35 30 20 88 20 32 34 0d 1e 96 13 |0 . 350 . 24....| 000062b0 20 20 20 20 72 3d 37 30 2b 33 30 2a 9b b2 62 0d | r=70+30*..b.| 000062c0 1e a0 20 20 20 20 20 f2 64 6f 74 28 72 2a 9b b2 |.. .dot(r*..| 000062d0 61 2c 33 30 2a b5 b2 62 2c 72 2a b5 b2 61 29 0d |a,30*..b,r*..a).| 000062e0 1e aa 08 20 20 20 ed 0d 1e b4 07 20 20 ed 0d 1e |... ..... ...| 000062f0 be 09 20 c9 20 38 3a 0d 1e c8 33 74 73 74 61 72 |.. . 8:...3tstar| 00006300 74 3d 30 3a 70 73 74 61 72 74 3d 30 3a 74 69 6e |t=0:pstart=0:tin| 00006310 63 3d 31 3a 70 69 6e 63 3d 34 3a 74 73 69 6e 65 |c=1:pinc=4:tsine| 00006320 3d 31 3a 70 73 69 6e 65 3d 30 0d 1e d2 0b 73 63 |=1:psine=0....sc| 00006330 61 6c 65 3d 31 0d 1e dc 2b f1 22 44 4e 41 22 3b |ale=1...+."DNA";| 00006340 8a 31 35 29 3b 22 53 63 61 6c 65 3a 20 22 3b 73 |.15);"Scale: ";s| 00006350 63 61 6c 65 3b 8a 33 30 29 3b 22 2e 2e 2e 22 3b |cale;.30);"...";| 00006360 0d 1e e6 0b 43 25 3d 26 36 30 30 0d 1e f0 16 20 |....C%=&600.... | 00006370 20 e3 20 61 3d 30 20 b8 20 33 30 30 20 88 20 36 | . a=0 . 300 . 6| 00006380 30 0d 1e fa 17 20 20 20 e3 20 62 3d 30 20 b8 20 |0.... . b=0 . | 00006390 33 32 30 20 88 20 34 30 0d 1f 04 13 20 20 20 20 |320 . 40.... | 000063a0 72 3d 37 30 2b 32 35 2a 9b b2 62 0d 1f 0e 23 20 |r=70+25*..b...# | 000063b0 20 20 20 f2 64 6f 74 28 72 2a 9b b2 61 2d 33 35 | .dot(r*..a-35| 000063c0 2c 32 35 2a b5 b2 62 2c 72 2a b5 b2 61 29 0d 1f |,25*..b,r*..a)..| 000063d0 18 23 20 20 20 20 f2 64 6f 74 28 72 2a 9b b2 61 |.# .dot(r*..a| 000063e0 2b 33 35 2c 72 2a b5 b2 61 2c 32 35 2a b5 b2 62 |+35,r*..a,25*..b| 000063f0 29 0d 1f 22 08 20 20 20 ed 0d 1f 2c 0c 43 25 2b |)..". ...,.C%+| 00006400 3d 26 36 30 30 0d 1f 36 17 e7 43 25 3d 26 36 30 |=&600..6..C%=&60| 00006410 30 2a 38 20 8c 43 25 3d 26 36 30 30 0d 1f 40 07 |0*8 .C%=&600..@.| 00006420 20 20 ed 0d 1f 4a 09 20 c9 20 39 3a 0d 1f 54 35 | ...J. . 9:..T5| 00006430 74 73 74 61 72 74 3d 30 3a 70 73 74 61 72 74 3d |tstart=0:pstart=| 00006440 31 32 30 3a 74 69 6e 63 3d 31 3a 70 69 6e 63 3d |120:tinc=1:pinc=| 00006450 30 3a 74 73 69 6e 65 3d 31 3a 70 73 69 6e 65 3d |0:tsine=1:psine=| 00006460 30 0d 1f 5e 13 73 63 61 6c 65 3d 31 3a 43 25 3d |0..^.scale=1:C%=| 00006470 26 36 30 30 0d 1f 68 32 f1 22 4d 75 73 69 63 20 |&600..h2."Music | 00006480 47 72 69 64 22 3b 8a 31 35 29 3b 22 53 63 61 6c |Grid";.15);"Scal| 00006490 65 3a 20 22 3b 73 63 61 6c 65 3b 8a 33 30 29 3b |e: ";scale;.30);| 000064a0 22 2e 2e 2e 22 3b 0d 1f 72 13 73 69 7a 65 3d 31 |"...";..r.size=1| 000064b0 30 3a 43 25 3d 26 36 30 30 0d 1f 7c 17 61 64 64 |0:C%=&600..|.add| 000064c0 3d 2d 73 69 7a 65 2a 31 31 3a e3 6e 3d 31 b8 38 |=-size*11:.n=1.8| 000064d0 0d 1f 86 13 e3 61 3d 2d 31 b8 31 3a e3 62 3d 2d |.....a=-1.1:.b=-| 000064e0 31 b8 31 0d 1f 90 21 f2 64 6f 74 28 61 2a 73 69 |1.1...!.dot(a*si| 000064f0 7a 65 2c 62 2a 73 69 7a 65 2b 61 64 64 2c 30 29 |ze,b*size+add,0)| 00006500 3a ed 3a ed 0d 1f 9a 18 61 64 64 2b 3d 73 69 7a |:.:.....add+=siz| 00006510 65 2a 33 3a 43 25 2b 3d 26 36 30 30 0d 1f a4 19 |e*3:C%+=&600....| 00006520 e7 43 25 3d 26 36 30 30 2a 34 20 8c 43 25 3d 26 |.C%=&600*4 .C%=&| 00006530 36 30 30 2a 35 0d 1f ae 19 e7 43 25 3d 26 36 30 |600*5.....C%=&60| 00006540 30 2a 36 20 8c 43 25 3d 26 36 30 30 2a 31 0d 1f |0*6 .C%=&600*1..| 00006550 b8 05 ed 0d 1f c2 3d 43 25 3d 26 36 30 30 2a 34 |......=C%=&600*4| 00006560 3a e3 61 3d 2d 32 b8 32 3a e3 62 3d 2d 31 33 b8 |:.a=-2.2:.b=-13.| 00006570 31 32 3a f2 64 6f 74 28 61 2a 73 69 7a 65 2c 62 |12:.dot(a*size,b| 00006580 2a 73 69 7a 65 2c 2d 73 69 7a 65 29 3a ed 3a ed |*size,-size):.:.| 00006590 0d 1f cc 04 0d 1f d6 09 c9 20 31 30 3a 0d 1f e0 |......... 10:...| 000065a0 34 74 73 74 61 72 74 3d 30 3a 70 73 74 61 72 74 |4tstart=0:pstart| 000065b0 3d 39 30 3a 74 69 6e 63 3d 31 3a 70 69 6e 63 3d |=90:tinc=1:pinc=| 000065c0 31 3a 74 73 69 6e 65 3d 30 3a 70 73 69 6e 65 3d |1:tsine=0:psine=| 000065d0 31 0d 1f ea 13 73 63 61 6c 65 3d 31 3a 43 25 3d |1....scale=1:C%=| 000065e0 26 36 30 30 0d 1f f4 33 f1 22 47 72 69 64 20 53 |&600...3."Grid S| 000065f0 70 68 65 72 65 22 3b 8a 31 35 29 3b 22 53 63 61 |phere";.15);"Sca| 00006600 6c 65 3a 20 22 3b 73 63 61 6c 65 3b 8a 33 30 29 |le: ";scale;.30)| 00006610 3b 22 2e 2e 2e 22 3b 0d 1f fe 14 73 69 7a 65 3d |;"...";....size=| 00006620 31 30 30 3a 73 74 65 70 3d 31 30 0d 20 08 0d 43 |100:step=10. ..C| 00006630 25 3d 26 36 30 30 2a 32 0d 20 12 22 f2 64 6f 74 |%=&600*2. .".dot| 00006640 28 30 2c 30 2c 73 69 7a 65 29 3a f2 64 6f 74 28 |(0,0,size):.dot(| 00006650 30 2c 30 2c 2d 73 69 7a 65 29 0d 20 1c 22 f2 64 |0,0,-size). .".d| 00006660 6f 74 28 73 69 7a 65 2c 30 2c 30 29 3a f2 64 6f |ot(size,0,0):.do| 00006670 74 28 2d 73 69 7a 65 2c 30 2c 30 29 0d 20 26 22 |t(-size,0,0). &"| 00006680 f2 64 6f 74 28 30 2c 73 69 7a 65 2c 30 29 3a f2 |.dot(0,size,0):.| 00006690 64 6f 74 28 30 2c 2d 73 69 7a 65 2c 30 29 0d 20 |dot(0,-size,0). | 000066a0 30 1e e3 69 25 3d 73 74 65 70 20 b8 20 31 38 30 |0..i%=step . 180| 000066b0 2d 73 74 65 70 20 88 20 73 74 65 70 0d 20 3a 23 |-step . step. :#| 000066c0 73 3d b5 28 b2 28 69 25 29 29 2a 73 69 7a 65 3a |s=.(.(i%))*size:| 000066d0 63 3d 9b 28 b2 28 69 25 29 29 2a 73 69 7a 65 0d |c=.(.(i%))*size.| 000066e0 20 44 26 43 25 3d 26 36 30 30 2a 31 3a f2 64 6f | D&C%=&600*1:.do| 000066f0 74 28 73 2c 63 2c 30 29 3a f2 64 6f 74 28 2d 73 |t(s,c,0):.dot(-s| 00006700 2c 63 2c 30 29 0d 20 4e 26 43 25 3d 26 36 30 30 |,c,0). N&C%=&600| 00006710 2a 33 3a f2 64 6f 74 28 30 2c 73 2c 63 29 3a f2 |*3:.dot(0,s,c):.| 00006720 64 6f 74 28 30 2c 2d 73 2c 63 29 0d 20 58 26 43 |dot(0,-s,c). X&C| 00006730 25 3d 26 36 30 30 2a 34 3a f2 64 6f 74 28 73 2c |%=&600*4:.dot(s,| 00006740 30 2c 63 29 3a f2 64 6f 74 28 2d 73 2c 30 2c 63 |0,c):.dot(-s,0,c| 00006750 29 0d 20 62 05 ed 0d 20 6c 09 c9 20 31 31 3a 0d |). b... l.. 11:.| 00006760 20 76 33 74 73 74 61 72 74 3d 30 3a 70 73 74 61 | v3tstart=0:psta| 00006770 72 74 3d 30 3a 74 69 6e 63 3d 31 3a 70 69 6e 63 |rt=0:tinc=1:pinc| 00006780 3d 31 3a 74 73 69 6e 65 3d 31 3a 70 73 69 6e 65 |=1:tsine=1:psine| 00006790 3d 30 0d 20 80 15 73 63 61 6c 65 3d 31 3a 43 25 |=0. ..scale=1:C%| 000067a0 3d 26 36 30 30 2a 34 0d 20 8a 34 f1 22 57 68 6f |=&600*4. .4."Who| 000067b0 6c 65 20 53 70 68 65 72 65 22 3b 8a 31 35 29 3b |le Sphere";.15);| 000067c0 22 53 63 61 6c 65 3a 20 22 3b 73 63 61 6c 65 3b |"Scale: ";scale;| 000067d0 8a 33 30 29 3b 22 2e 2e 2e 22 3b 0d 20 94 14 73 |.30);"...";. ..s| 000067e0 69 7a 65 3d 31 30 30 3a 73 74 65 70 3d 31 35 0d |ize=100:step=15.| 000067f0 20 9e 16 e3 61 25 3d 30 20 b8 20 33 35 39 20 88 | ...a%=0 . 359 .| 00006800 20 73 74 65 70 0d 20 a8 19 73 3d b5 28 b2 28 61 | step. ..s=.(.(a| 00006810 25 29 29 3a 63 3d 9b 28 b2 28 61 25 29 29 0d 20 |%)):c=.(.(a%)). | 00006820 b2 22 e3 69 25 3d 73 74 65 70 2a 32 20 b8 20 31 |.".i%=step*2 . 1| 00006830 38 30 2d 73 74 65 70 2a 32 20 88 20 73 74 65 70 |80-step*2 . step| 00006840 0d 20 bc 23 78 3d b5 28 b2 28 69 25 29 29 2a 73 |. .#x=.(.(i%))*s| 00006850 69 7a 65 3a 79 3d 9b 28 b2 28 69 25 29 29 2a 73 |ize:y=.(.(i%))*s| 00006860 69 7a 65 0d 20 c6 21 f2 64 6f 74 28 78 2a 63 2c |ize. .!.dot(x*c,| 00006870 79 2c 78 2a 73 29 3a 43 25 3d 43 25 20 82 20 26 |y,x*s):C%=C% . &| 00006880 33 43 30 30 0d 20 d0 07 ed 3a ed 0d 20 da 2c 43 |3C00. ...:.. .,C| 00006890 25 3d 26 36 30 30 3a e3 69 25 3d 2d 73 69 7a 65 |%=&600:.i%=-size| 000068a0 2d 73 74 65 70 20 b8 20 73 69 7a 65 2b 73 74 65 |-step . size+ste| 000068b0 70 20 88 73 74 65 70 0d 20 e4 12 f2 64 6f 74 28 |p .step. ...dot(| 000068c0 30 2c 69 25 2c 30 29 3a ed 0d 20 ee 09 c9 20 31 |0,i%,0):.. ... 1| 000068d0 32 3a 0d 20 f8 33 74 73 74 61 72 74 3d 30 3a 70 |2:. .3tstart=0:p| 000068e0 73 74 61 72 74 3d 30 3a 74 69 6e 63 3d 31 3a 70 |start=0:tinc=1:p| 000068f0 69 6e 63 3d 31 3a 74 73 69 6e 65 3d 30 3a 70 73 |inc=1:tsine=0:ps| 00006900 69 6e 65 3d 30 0d 21 02 0d 73 63 61 6c 65 3d 31 |ine=0.!..scale=1| 00006910 2e 35 0d 21 0c 2e f1 22 52 61 6e 64 6f 6d 22 3b |.5.!..."Random";| 00006920 8a 31 35 29 3b 22 53 63 61 6c 65 3a 20 22 3b 73 |.15);"Scale: ";s| 00006930 63 61 6c 65 3b 8a 33 30 29 3b 22 2e 2e 2e 22 3b |cale;.30);"...";| 00006940 0d 21 16 0d e3 20 61 3d 31 b8 32 37 30 0d 21 20 |.!... a=1.270.! | 00006950 10 43 25 3d 26 36 30 30 2a b3 28 36 29 0d 21 2a |.C%=&600*.(6).!*| 00006960 0b 43 25 3d 26 36 30 30 0d 21 34 27 f2 64 6f 74 |.C%=&600.!4'.dot| 00006970 28 b3 28 31 30 30 29 2d 35 30 2c b3 28 31 30 30 |(.(100)-50,.(100| 00006980 29 2d 35 30 2c b3 28 31 30 30 29 2d 35 30 29 0d |)-50,.(100)-50).| 00006990 21 3e 05 ed 0d 21 48 0a 20 c9 20 31 33 3a 0d 21 |!>...!H. . 13:.!| 000069a0 52 33 74 73 74 61 72 74 3d 30 3a 70 73 74 61 72 |R3tstart=0:pstar| 000069b0 74 3d 30 3a 74 69 6e 63 3d 34 3a 70 69 6e 63 3d |t=0:tinc=4:pinc=| 000069c0 31 3a 74 73 69 6e 65 3d 30 3a 70 73 69 6e 65 3d |1:tsine=0:psine=| 000069d0 31 0d 21 5c 0d 73 63 61 6c 65 3d 31 2e 35 0d 21 |1.!\.scale=1.5.!| 000069e0 66 35 f1 22 43 69 72 63 75 6c 61 72 20 50 65 67 |f5."Circular Peg| 000069f0 73 22 3b 8a 31 35 29 3b 22 53 63 61 6c 65 3a 20 |s";.15);"Scale: | 00006a00 22 3b 73 63 61 6c 65 3b 8a 33 30 29 3b 22 2e 2e |";scale;.30);"..| 00006a10 2e 22 3b 0d 21 70 0d 43 25 3d 26 36 30 30 2a 34 |.";.!p.C%=&600*4| 00006a20 0d 21 7a 18 20 20 e3 20 61 3d 2d 38 30 20 b8 20 |.!z. . a=-80 . | 00006a30 2d 33 30 20 88 20 32 30 0d 21 84 17 20 20 20 e3 |-30 . 20.!.. .| 00006a40 20 62 3d 30 20 b8 20 33 33 30 20 88 20 33 30 0d | b=0 . 330 . 30.| 00006a50 21 8e 12 20 20 20 20 63 6f 73 3d 33 30 2a 9b b2 |!.. cos=30*..| 00006a60 62 0d 21 98 12 20 20 20 20 73 69 6e 3d 33 30 2a |b.!.. sin=30*| 00006a70 b5 b2 62 0d 21 a2 0d 43 25 3d 26 36 30 30 2a 31 |..b.!..C%=&600*1| 00006a80 0d 21 ac 17 20 20 20 20 f2 64 6f 74 28 61 2c 63 |.!.. .dot(a,c| 00006a90 6f 73 2c 73 69 6e 29 0d 21 b6 0d 43 25 3d 26 36 |os,sin).!..C%=&6| 00006aa0 30 30 2a 32 0d 21 c0 17 20 20 20 20 f2 64 6f 74 |00*2.!.. .dot| 00006ab0 28 63 6f 73 2c 61 2c 73 69 6e 29 0d 21 ca 0d 43 |(cos,a,sin).!..C| 00006ac0 25 3d 26 36 30 30 2a 33 0d 21 d4 17 20 20 20 20 |%=&600*3.!.. | 00006ad0 f2 64 6f 74 28 63 6f 73 2c 73 69 6e 2c 61 29 0d |.dot(cos,sin,a).| 00006ae0 21 de 0d 43 25 3d 26 36 30 30 2a 34 0d 21 e8 18 |!..C%=&600*4.!..| 00006af0 20 20 20 20 f2 64 6f 74 28 2d 61 2c 63 6f 73 2c | .dot(-a,cos,| 00006b00 73 69 6e 29 0d 21 f2 0d 43 25 3d 26 36 30 30 2a |sin).!..C%=&600*| 00006b10 35 0d 21 fc 18 20 20 20 20 f2 64 6f 74 28 63 6f |5.!.. .dot(co| 00006b20 73 2c 2d 61 2c 73 69 6e 29 0d 22 06 0d 43 25 3d |s,-a,sin)."..C%=| 00006b30 26 36 30 30 2a 36 0d 22 10 18 20 20 20 20 f2 64 |&600*6.".. .d| 00006b40 6f 74 28 63 6f 73 2c 73 69 6e 2c 2d 61 29 0d 22 |ot(cos,sin,-a)."| 00006b50 1a 08 20 20 20 ed 0d 22 24 07 20 20 ed 0d 22 2e |.. .."$. ..".| 00006b60 04 0d 22 38 09 c9 20 31 34 3a 0d 22 42 35 74 73 |.."8.. 14:."B5ts| 00006b70 74 61 72 74 3d 30 3a 70 73 74 61 72 74 3d 33 31 |tart=0:pstart=31| 00006b80 35 3a 74 69 6e 63 3d 32 3a 70 69 6e 63 3d 31 3a |5:tinc=2:pinc=1:| 00006b90 74 73 69 6e 65 3d 30 3a 70 73 69 6e 65 3d 31 0d |tsine=0:psine=1.| 00006ba0 22 4c 37 73 63 61 6c 65 3d 31 2e 34 3a f1 22 27 |"L7scale=1.4:."'| 00006bb0 41 72 6d 27 22 3b 8a 31 35 29 3b 22 53 63 61 6c |Arm'";.15);"Scal| 00006bc0 65 3a 20 22 3b 73 63 61 6c 65 3b 8a 33 30 29 3b |e: ";scale;.30);| 00006bd0 22 2e 2e 2e 22 3b 0d 22 56 0f 20 20 de 20 62 6c |"...";."V. . bl| 00006be0 6b 20 31 30 30 0d 22 60 11 20 20 74 65 78 74 24 |k 100."`. text$| 00006bf0 3d 22 41 52 4d 22 0d 22 6a 1d 20 20 61 3d 36 3a |="ARM"."j. a=6:| 00006c00 6d 3d 2d 28 28 a9 28 74 65 78 74 24 29 2a 38 29 |m=-((.(text$)*8)| 00006c10 2f 32 29 0d 22 74 14 20 20 e3 20 62 3d 31 20 b8 |/2)."t. . b=1 .| 00006c20 20 a9 74 65 78 74 24 0d 22 7e 17 20 20 20 62 6c | .text$."~. bl| 00006c30 6b 3f 30 3d 97 c1 74 65 78 74 24 2c 62 29 0d 22 |k?0=..text$,b)."| 00006c40 88 1a 20 20 20 c8 99 20 22 4f 53 5f 57 6f 72 64 |.. .. "OS_Word| 00006c50 22 2c 31 30 2c 62 6c 6b 0d 22 92 2f e3 20 63 3d |",10,blk."./. c=| 00006c60 30 20 b8 20 36 3a 42 25 3d 62 6c 6b 3f 28 63 2b |0 . 6:B%=blk?(c+| 00006c70 31 29 3a 4b 25 3d 42 25 20 82 20 2d 31 3a e3 20 |1):K%=B% . -1:. | 00006c80 64 3d 30 20 b8 20 37 0d 22 9c 3b 43 25 3d 26 36 |d=0 . 7.".;C%=&6| 00006c90 30 30 2a 32 3a e7 28 42 25 20 80 20 32 5e 64 29 |00*2:.(B% . 2^d)| 00006ca0 3c 3e 30 20 8c f2 64 6f 74 28 28 28 37 2d 64 29 |<>0 ..dot(((7-d)| 00006cb0 2b 6d 29 2a 61 2c 28 63 2d 34 29 2a 61 2a 32 2c |+m)*a,(c-4)*a*2,| 00006cc0 30 29 0d 22 a6 28 e7 28 4b 25 20 80 20 32 5e 64 |0).".(.(K% . 2^d| 00006cd0 29 3c 3e 30 20 8c 43 25 3d 26 36 30 30 2a 34 20 |)<>0 .C%=&600*4 | 00006ce0 8b 43 25 3d 26 36 30 30 2a 31 0d 22 b0 22 f2 64 |.C%=&600*1.".".d| 00006cf0 6f 74 28 28 28 37 2d 64 29 2b 6d 29 2a 61 2c 28 |ot(((7-d)+m)*a,(| 00006d00 63 2d 34 29 2a 61 2a 32 2c 34 30 29 0d 22 ba 0e |c-4)*a*2,40)."..| 00006d10 ed 3a ed 3a 6d 2b 3d 38 3a ed 0d 22 c4 04 0d 22 |.:.:m+=8:.."..."| 00006d20 ce 09 c9 20 31 35 3a 0d 22 d8 35 74 73 74 61 72 |... 15:.".5tstar| 00006d30 74 3d 30 3a 70 73 74 61 72 74 3d 32 37 30 3a 74 |t=0:pstart=270:t| 00006d40 69 6e 63 3d 31 3a 70 69 6e 63 3d 30 3a 74 73 69 |inc=1:pinc=0:tsi| 00006d50 6e 65 3d 31 3a 70 73 69 6e 65 3d 30 0d 22 e2 3a |ne=1:psine=0.".:| 00006d60 73 63 61 6c 65 3d 31 2e 33 3a f1 22 27 48 65 6e |scale=1.3:."'Hen| 00006d70 6c 65 79 27 22 3b 8a 31 35 29 3b 22 53 63 61 6c |ley'";.15);"Scal| 00006d80 65 3a 20 22 3b 73 63 61 6c 65 3b 8a 33 30 29 3b |e: ";scale;.30);| 00006d90 22 2e 2e 2e 22 3b 0d 22 ec 0f 20 20 de 20 62 6c |"...";.".. . bl| 00006da0 6b 20 31 30 30 0d 22 f6 1a 20 20 74 65 78 74 24 |k 100.".. text$| 00006db0 3d 22 48 65 6e 6c 65 79 20 20 20 20 20 20 22 0d |="Henley ".| 00006dc0 23 00 1d 20 20 61 3d 37 30 3a 6d 3d 33 36 30 2f |#.. a=70:m=360/| 00006dd0 28 a9 28 74 65 78 74 24 29 2a 38 29 0d 23 0a 0b |(.(text$)*8).#..| 00006de0 61 6e 67 6c 65 3d 30 0d 23 14 19 20 20 e3 20 62 |angle=0.#.. . b| 00006df0 3d a9 74 65 78 74 24 20 b8 20 31 20 88 20 2d 31 |=.text$ . 1 . -1| 00006e00 0d 23 1e 17 20 20 20 62 6c 6b 3f 30 3d 97 c1 74 |.#.. blk?0=..t| 00006e10 65 78 74 24 2c 62 29 0d 23 28 1a 20 20 20 c8 99 |ext$,b).#(. ..| 00006e20 20 22 4f 53 5f 57 6f 72 64 22 2c 31 30 2c 62 6c | "OS_Word",10,bl| 00006e30 6b 0d 23 32 31 e3 20 63 3d 30 20 b8 20 37 3a 73 |k.#21. c=0 . 7:s| 00006e40 69 6e 3d b5 28 b2 28 61 6e 67 6c 65 29 29 2a 61 |in=.(.(angle))*a| 00006e50 3a 63 6f 73 3d 9b 28 b2 28 61 6e 67 6c 65 29 29 |:cos=.(.(angle))| 00006e60 2a 61 0d 23 3c 1a e3 20 64 3d 30 20 b8 20 37 3a |*a.#<.. d=0 . 7:| 00006e70 42 25 3d 62 6c 6b 3f 28 64 2b 31 29 0d 23 46 0d |B%=blk?(d+1).#F.| 00006e80 43 25 3d 26 36 30 30 2a 36 0d 23 50 6f e7 28 42 |C%=&600*6.#Po.(B| 00006e90 25 20 80 20 32 5e 63 29 3c 3e 30 20 8c f2 64 6f |% . 2^c)<>0 ..do| 00006ea0 74 28 73 69 6e 2c 63 6f 73 2c 28 64 2d 34 29 2a |t(sin,cos,(d-4)*| 00006eb0 31 31 29 3a 43 25 3d 26 36 30 30 2a 34 3a f2 64 |11):C%=&600*4:.d| 00006ec0 6f 74 28 b5 28 b2 28 61 6e 67 6c 65 2b 31 38 30 |ot(.(.(angle+180| 00006ed0 29 29 2a 61 2a 30 2e 38 2c 9b 28 b2 28 61 6e 67 |))*a*0.8,.(.(ang| 00006ee0 6c 65 2b 31 38 30 29 29 2a 61 2a 30 2e 38 2c 28 |le+180))*a*0.8,(| 00006ef0 64 2d 34 29 2a 31 30 29 0d 23 5a 12 ed 3a 61 6e |d-4)*10).#Z..:an| 00006f00 67 6c 65 2d 3d 6d 3a ed 3a ed 0d 23 64 09 c9 20 |gle-=m:.:..#d.. | 00006f10 31 36 3a 0d 23 6e 35 74 73 74 61 72 74 3d 30 3a |16:.#n5tstart=0:| 00006f20 70 73 74 61 72 74 3d 32 37 30 3a 74 69 6e 63 3d |pstart=270:tinc=| 00006f30 32 3a 70 69 6e 63 3d 30 3a 74 73 69 6e 65 3d 30 |2:pinc=0:tsine=0| 00006f40 3a 70 73 69 6e 65 3d 30 0d 23 78 34 73 63 61 6c |:psine=0.#x4scal| 00006f50 65 3d 31 3a f1 22 52 49 53 43 22 3b 8a 31 35 29 |e=1:."RISC";.15)| 00006f60 3b 22 53 63 61 6c 65 3a 20 22 3b 73 63 61 6c 65 |;"Scale: ";scale| 00006f70 3b 8a 33 30 29 3b 22 2e 2e 2e 22 3b 0d 23 82 0f |;.30);"...";.#..| 00006f80 20 20 de 20 62 6c 6b 20 31 30 30 0d 23 8c 12 20 | . blk 100.#.. | 00006f90 20 74 65 78 74 24 3d 22 72 69 73 63 22 0d 23 96 | text$="risc".#.| 00006fa0 1d 20 20 61 3d 37 30 3a 6d 3d 33 36 30 2f 28 a9 |. a=70:m=360/(.| 00006fb0 28 74 65 78 74 24 29 2a 38 29 0d 23 a0 0b 61 6e |(text$)*8).#..an| 00006fc0 67 6c 65 3d 30 0d 23 aa 19 20 20 e3 20 62 3d a9 |gle=0.#.. . b=.| 00006fd0 74 65 78 74 24 20 b8 20 31 20 88 20 2d 31 0d 23 |text$ . 1 . -1.#| 00006fe0 b4 17 20 20 20 62 6c 6b 3f 30 3d 97 c1 74 65 78 |.. blk?0=..tex| 00006ff0 74 24 2c 62 29 0d 23 be 1a 20 20 20 c8 99 20 22 |t$,b).#.. .. "| 00007000 4f 53 5f 57 6f 72 64 22 2c 31 30 2c 62 6c 6b 0d |OS_Word",10,blk.| 00007010 23 c8 31 e3 20 63 3d 30 20 b8 20 37 3a 73 69 6e |#.1. c=0 . 7:sin| 00007020 3d b5 28 b2 28 61 6e 67 6c 65 29 29 2a 61 3a 63 |=.(.(angle))*a:c| 00007030 6f 73 3d 9b 28 b2 28 61 6e 67 6c 65 29 29 2a 61 |os=.(.(angle))*a| 00007040 0d 23 d2 1a e3 20 64 3d 30 20 b8 20 37 3a 42 25 |.#... d=0 . 7:B%| 00007050 3d 62 6c 6b 3f 28 64 2b 31 29 0d 23 dc 0d 43 25 |=blk?(d+1).#..C%| 00007060 3d 26 36 30 30 2a 32 0d 23 e6 14 e7 28 42 25 20 |=&600*2.#...(B% | 00007070 80 20 32 5e 63 29 3c 3e 30 20 8c 0d 23 f0 1a f2 |. 2^c)<>0 ..#...| 00007080 64 6f 74 28 73 69 6e 2c 63 6f 73 2c 28 64 2d 34 |dot(sin,cos,(d-4| 00007090 29 2a 31 31 29 0d 23 fa 2c 43 25 3d 26 36 30 30 |)*11).#.,C%=&600| 000070a0 2a 31 3a f2 64 6f 74 28 73 69 6e 2a 30 2e 36 2c |*1:.dot(sin*0.6,| 000070b0 63 6f 73 2a 30 2e 36 2c 28 64 2d 34 29 2a 31 30 |cos*0.6,(d-4)*10| 000070c0 29 0d 24 04 05 cc 0d 24 0e 2c 43 25 3d 26 36 30 |).$....$.,C%=&60| 000070d0 30 2a 34 3a f2 64 6f 74 28 73 69 6e 2a 30 2e 36 |0*4:.dot(sin*0.6| 000070e0 2c 63 6f 73 2a 30 2e 36 2c 28 64 2d 34 29 2a 31 |,cos*0.6,(d-4)*1| 000070f0 30 29 0d 24 18 05 cd 0d 24 22 12 ed 3a 61 6e 67 |0).$....$"..:ang| 00007100 6c 65 2d 3d 6d 3a ed 3a ed 0d 24 2c 09 c9 20 31 |le-=m:.:..$,.. 1| 00007110 37 3a 0d 24 36 34 74 73 74 61 72 74 3d 30 3a 70 |7:.$64tstart=0:p| 00007120 73 74 61 72 74 3d 39 30 3a 74 69 6e 63 3d 32 3a |start=90:tinc=2:| 00007130 70 69 6e 63 3d 30 3a 74 73 69 6e 65 3d 31 3a 70 |pinc=0:tsine=1:p| 00007140 73 69 6e 65 3d 30 0d 24 40 38 73 63 61 6c 65 3d |sine=0.$@8scale=| 00007150 31 2e 34 3a f1 22 53 70 69 72 61 6c 22 3b 8a 31 |1.4:."Spiral";.1| 00007160 35 29 3b 22 53 63 61 6c 65 3a 20 22 3b 73 63 61 |5);"Scale: ";sca| 00007170 6c 65 3b 8a 33 30 29 3b 22 2e 2e 2e 22 3b 0d 24 |le;.30);"...";.$| 00007180 4a 0f 6b 3d 31 3a 61 6e 67 6c 65 3d 30 0d 24 54 |J.k=1:angle=0.$T| 00007190 31 e3 7a 61 6e 67 6c 65 3d 2d 38 30 20 b8 20 38 |1.zangle=-80 . 8| 000071a0 30 20 88 20 31 3a 43 25 3d 26 36 30 30 2a 6b 3a |0 . 1:C%=&600*k:| 000071b0 6b 2b 3d 31 3a e7 6b 3d 37 20 8c 6b 3d 31 0d 24 |k+=1:.k=7 .k=1.$| 000071c0 5e 2e f2 64 6f 74 28 b5 28 b2 28 61 6e 67 6c 65 |^..dot(.(.(angle| 000071d0 29 29 2a 34 30 2c 9b 28 b2 28 61 6e 67 6c 65 29 |))*40,.(.(angle)| 000071e0 29 2a 34 30 2c 7a 61 6e 67 6c 65 29 0d 24 68 0f |)*40,zangle).$h.| 000071f0 61 6e 67 6c 65 2b 3d 31 30 3a ed 0d 24 72 09 c9 |angle+=10:..$r..| 00007200 20 31 38 3a 0d 24 7c 34 74 73 74 61 72 74 3d 31 | 18:.$|4tstart=1| 00007210 30 3a 70 73 74 61 72 74 3d 30 3a 74 69 6e 63 3d |0:pstart=0:tinc=| 00007220 31 3a 70 69 6e 63 3d 32 3a 74 73 69 6e 65 3d 30 |1:pinc=2:tsine=0| 00007230 3a 70 73 69 6e 65 3d 30 0d 24 86 37 73 63 61 6c |:psine=0.$.7scal| 00007240 65 3d 31 2e 34 3a f1 22 48 6f 75 73 65 22 3b 8a |e=1.4:."House";.| 00007250 31 35 29 3b 22 53 63 61 6c 65 3a 20 22 3b 73 63 |15);"Scale: ";sc| 00007260 61 6c 65 3b 8a 33 30 29 3b 22 2e 2e 2e 22 3b 0d |ale;.30);"...";.| 00007270 24 90 0b 73 69 7a 65 3d 31 30 0d 24 9a 08 f7 2b |$..size=10.$...+| 00007280 31 31 0d 24 a4 1a e3 79 63 25 3d 30 b8 38 3a f3 |11.$...yc%=0.8:.| 00007290 20 66 24 2c 6c 24 2c 62 24 2c 72 24 0d 24 ae 2f | f$,l$,b$,r$.$./| 000072a0 e3 78 63 25 3d 30 b8 a9 28 66 24 29 2d 31 3a 43 |.xc%=0..(f$)-1:C| 000072b0 25 3d 28 97 28 c1 66 24 2c 78 63 25 2b 31 2c 31 |%=(.(.f$,xc%+1,1| 000072c0 29 29 2d 34 38 29 2a 26 36 30 30 0d 24 b8 2c f2 |))-48)*&600.$.,.| 000072d0 64 6f 74 28 28 78 63 25 2d 33 29 2a 73 69 7a 65 |dot((xc%-3)*size| 000072e0 2c 28 79 63 25 2d 34 29 2a 73 69 7a 65 2c 73 69 |,(yc%-4)*size,si| 000072f0 7a 65 2a 32 29 3a ed 0d 24 c2 2f e3 78 63 25 3d |ze*2):..$./.xc%=| 00007300 30 b8 a9 28 62 24 29 2d 31 3a 43 25 3d 28 97 28 |0..(b$)-1:C%=(.(| 00007310 c1 62 24 2c 78 63 25 2b 31 2c 31 29 29 2d 34 38 |.b$,xc%+1,1))-48| 00007320 29 2a 26 36 30 30 0d 24 cc 2d f2 64 6f 74 28 28 |)*&600.$.-.dot((| 00007330 78 63 25 2d 33 29 2a 73 69 7a 65 2c 28 79 63 25 |xc%-3)*size,(yc%| 00007340 2d 34 29 2a 73 69 7a 65 2c 2d 73 69 7a 65 2a 32 |-4)*size,-size*2| 00007350 29 3a ed 0d 24 d6 2f e3 78 63 25 3d 30 b8 a9 28 |):..$./.xc%=0..(| 00007360 6c 24 29 2d 31 3a 43 25 3d 28 97 28 c1 6c 24 2c |l$)-1:C%=(.(.l$,| 00007370 78 63 25 2b 31 2c 31 29 29 2d 34 38 29 2a 26 36 |xc%+1,1))-48)*&6| 00007380 30 30 0d 24 e0 2d f2 64 6f 74 28 2d 73 69 7a 65 |00.$.-.dot(-size| 00007390 2a 34 2c 28 79 63 25 2d 34 29 2a 73 69 7a 65 2c |*4,(yc%-4)*size,| 000073a0 28 78 63 25 2d 32 29 2a 73 69 7a 65 29 3a ed 0d |(xc%-2)*size):..| 000073b0 24 ea 2f e3 78 63 25 3d 30 b8 a9 28 72 24 29 2d |$./.xc%=0..(r$)-| 000073c0 31 3a 43 25 3d 28 97 28 c1 72 24 2c 78 63 25 2b |1:C%=(.(.r$,xc%+| 000073d0 31 2c 31 29 29 2d 34 38 29 2a 26 36 30 30 0d 24 |1,1))-48)*&600.$| 000073e0 f4 2c f2 64 6f 74 28 73 69 7a 65 2a 34 2c 28 79 |.,.dot(size*4,(y| 000073f0 63 25 2d 34 29 2a 73 69 7a 65 2c 28 78 63 25 2d |c%-4)*size,(xc%-| 00007400 32 29 2a 73 69 7a 65 29 3a ed 0d 24 fe 05 ed 0d |2)*size):..$....| 00007410 25 08 3b e3 6a 3d 30 b8 32 3a f3 20 62 24 3a e3 |%.;.j=0.2:. b$:.| 00007420 78 63 25 3d 30 b8 a9 28 62 24 29 2d 31 3a 43 25 |xc%=0..(b$)-1:C%| 00007430 3d 28 97 28 c1 62 24 2c 78 63 25 2b 31 2c 31 29 |=(.(.b$,xc%+1,1)| 00007440 29 2d 34 38 29 2a 26 36 30 30 0d 25 12 2c f2 64 |)-48)*&600.%.,.d| 00007450 6f 74 28 28 78 63 25 2d 33 29 2a 73 69 7a 65 2c |ot((xc%-3)*size,| 00007460 73 69 7a 65 2a 34 2c 28 6a 2d 31 29 2a 73 69 7a |size*4,(j-1)*siz| 00007470 65 29 3a ed 3a ed 0d 25 1c 3b e3 6a 3d 30 b8 32 |e):.:..%.;.j=0.2| 00007480 3a f3 20 62 24 3a e3 78 63 25 3d 30 b8 a9 28 62 |:. b$:.xc%=0..(b| 00007490 24 29 2d 31 3a 43 25 3d 28 97 28 c1 62 24 2c 78 |$)-1:C%=(.(.b$,x| 000074a0 63 25 2b 31 2c 31 29 29 2d 34 38 29 2a 26 36 30 |c%+1,1))-48)*&60| 000074b0 30 0d 25 26 20 e7 6a 3d 31 20 8c 61 64 64 3d 2d |0.%& .j=1 .add=-| 000074c0 73 69 7a 65 2a 32 20 8b 61 64 64 3d 2d 73 69 7a |size*2 .add=-siz| 000074d0 65 0d 25 30 31 f2 64 6f 74 28 28 78 63 25 2d 34 |e.%01.dot((xc%-4| 000074e0 29 2a 73 69 7a 65 2c 2d 73 69 7a 65 2a 34 2b 61 |)*size,-size*4+a| 000074f0 64 64 2c 28 6a 2d 31 29 2a 73 69 7a 65 29 3a ed |dd,(j-1)*size):.| 00007500 3a ed 0d 25 3a 20 f2 64 6f 74 28 2d 34 2a 73 69 |:..%: .dot(-4*si| 00007510 7a 65 2c 2d 35 2a 73 69 7a 65 2c 30 2a 73 69 7a |ze,-5*size,0*siz| 00007520 65 29 0d 25 44 1f f2 64 6f 74 28 34 2a 73 69 7a |e).%D..dot(4*siz| 00007530 65 2c 2d 35 2a 73 69 7a 65 2c 30 2a 73 69 7a 65 |e,-5*size,0*size| 00007540 29 0d 25 4e 20 f2 64 6f 74 28 2d 33 2a 73 69 7a |).%N .dot(-3*siz| 00007550 65 2c 2d 37 2a 73 69 7a 65 2c 30 2a 73 69 7a 65 |e,-7*size,0*size| 00007560 29 0d 25 58 21 dc 20 31 31 31 31 31 31 31 2c 31 |).%X!. 1111111,1| 00007570 31 31 31 31 2c 31 31 31 31 31 31 31 2c 31 31 31 |1111,1111111,111| 00007580 31 31 0d 25 62 21 dc 20 32 32 32 32 32 32 32 2c |11.%b!. 2222222,| 00007590 32 32 32 32 32 2c 32 32 32 32 32 32 32 2c 32 32 |22222,2222222,22| 000075a0 32 32 32 0d 25 6c 21 dc 20 34 34 34 32 34 34 34 |222.%l!. 4442444| 000075b0 2c 32 32 32 32 32 2c 32 32 32 32 32 32 32 2c 32 |,22222,2222222,2| 000075c0 32 32 32 32 0d 25 76 21 dc 20 34 35 34 32 34 35 |2222.%v!. 454245| 000075d0 34 2c 32 32 32 32 32 2c 32 32 32 32 32 32 32 2c |4,22222,2222222,| 000075e0 32 32 32 32 32 0d 25 80 21 dc 20 34 34 34 32 34 |22222.%.!. 44424| 000075f0 34 34 2c 32 32 32 32 32 2c 32 32 32 32 32 32 32 |44,22222,2222222| 00007600 2c 32 32 32 32 32 0d 25 8a 21 dc 20 32 32 32 32 |,22222.%.!. 2222| 00007610 32 32 32 2c 32 32 32 32 32 2c 32 32 32 32 32 32 |222,22222,222222| 00007620 32 2c 32 32 32 32 32 0d 25 94 21 dc 20 32 32 33 |2,22222.%.!. 223| 00007630 33 33 32 32 2c 32 32 32 32 32 2c 32 32 32 32 32 |3322,22222,22222| 00007640 32 32 2c 32 32 32 32 32 0d 25 9e 21 dc 20 32 32 |22,22222.%.!. 22| 00007650 33 33 33 32 32 2c 32 32 32 32 32 2c 32 32 32 32 |33322,22222,2222| 00007660 32 32 32 2c 32 32 32 32 32 0d 25 a8 21 dc 20 32 |222,22222.%.!. 2| 00007670 32 33 33 33 32 32 2c 32 32 32 32 32 2c 32 32 32 |233322,22222,222| 00007680 32 32 32 32 2c 32 32 32 32 32 0d 25 b2 1d dc 20 |2222,22222.%... | 00007690 32 32 32 32 32 32 32 2c 32 32 32 32 32 32 32 2c |2222222,2222222,| 000076a0 32 32 32 32 32 32 32 0d 25 bc 23 dc 20 31 31 31 |2222222.%.#. 111| 000076b0 31 31 31 31 31 31 2c 31 31 31 31 31 31 31 31 31 |111111,111111111| 000076c0 2c 31 31 31 31 31 31 31 31 31 0d 25 c6 09 c9 20 |,111111111.%... | 000076d0 31 39 3a 0d 25 d0 35 74 73 74 61 72 74 3d 30 3a |19:.%.5tstart=0:| 000076e0 70 73 74 61 72 74 3d 31 38 30 3a 74 69 6e 63 3d |pstart=180:tinc=| 000076f0 35 3a 70 69 6e 63 3d 31 3a 74 73 69 6e 65 3d 30 |5:pinc=1:tsine=0| 00007700 3a 70 73 69 6e 65 3d 30 0d 25 da 3a 73 63 61 6c |:psine=0.%.:scal| 00007710 65 3d 31 3a f1 22 44 75 6d 62 20 62 65 6c 6c 73 |e=1:."Dumb bells| 00007720 22 3b 8a 31 35 29 3b 22 53 63 61 6c 65 3a 20 22 |";.15);"Scale: "| 00007730 3b 73 63 61 6c 65 3b 8a 33 30 29 3b 22 2e 2e 2e |;scale;.30);"...| 00007740 22 3b 0d 25 e4 1c 73 69 7a 65 3d 31 30 30 3a 73 |";.%..size=100:s| 00007750 74 65 70 3d 32 30 3a 43 25 3d 26 36 30 30 0d 25 |tep=20:C%=&600.%| 00007760 ee 11 7a 63 3d 2d 39 30 3a e3 6d 3d 31 b8 32 0d |..zc=-90:.m=1.2.| 00007770 25 f8 30 e3 61 25 3d 30 20 b8 20 31 38 30 20 88 |%.0.a%=0 . 180 .| 00007780 20 73 74 65 70 3a 73 69 7a 65 3d b5 28 b2 28 61 | step:size=.(.(a| 00007790 25 29 29 2a 35 30 3a 73 74 65 70 32 3d 32 34 0d |%))*50:step2=24.| 000077a0 26 02 16 e7 73 69 7a 65 3c 32 30 20 8c 73 74 65 |&...size<20 .ste| 000077b0 70 32 3d 34 38 0d 26 0c 17 e7 73 69 7a 65 3c 31 |p2=48.&...size<1| 000077c0 30 20 8c 73 74 65 70 32 3d 33 36 30 0d 26 16 13 |0 .step2=360.&..| 000077d0 e3 62 25 3d 30 b8 33 35 39 88 73 74 65 70 32 0d |.b%=0.359.step2.| 000077e0 26 20 10 43 25 3d 43 25 20 82 20 26 41 30 30 0d |& .C%=C% . &A00.| 000077f0 26 2a 19 73 3d b5 28 b2 28 62 25 29 29 3a 63 3d |&*.s=.(.(b%)):c=| 00007800 9b 28 b2 28 62 25 29 29 0d 26 34 1a f2 64 6f 74 |.(.(b%)).&4..dot| 00007810 28 73 2a 73 69 7a 65 2c 63 2a 73 69 7a 65 2c 7a |(s*size,c*size,z| 00007820 63 29 0d 26 3e 1a ed 3a 7a 63 2b 3d 31 30 3a ed |c).&>..:zc+=10:.| 00007830 3a 43 25 3d 26 36 30 30 2a 34 3a ed 0d 26 48 04 |:C%=&600*4:..&H.| 00007840 0d 26 52 09 c9 20 32 30 3a 0d 26 5c 33 74 73 74 |.&R.. 20:.&\3tst| 00007850 61 72 74 3d 30 3a 70 73 74 61 72 74 3d 30 3a 74 |art=0:pstart=0:t| 00007860 69 6e 63 3d 32 3a 70 69 6e 63 3d 31 3a 74 73 69 |inc=2:pinc=1:tsi| 00007870 6e 65 3d 31 3a 70 73 69 6e 65 3d 30 0d 26 66 3a |ne=1:psine=0.&f:| 00007880 73 63 61 6c 65 3d 31 3a f1 22 41 78 69 73 20 42 |scale=1:."Axis B| 00007890 61 6c 6c 73 22 3b 8a 31 35 29 3b 22 53 63 61 6c |alls";.15);"Scal| 000078a0 65 3a 20 22 3b 73 63 61 6c 65 3b 8a 33 30 29 3b |e: ";scale;.30);| 000078b0 22 2e 2e 2e 22 3b 0d 26 70 28 43 25 3d 26 36 30 |"...";.&p(C%=&60| 000078c0 30 3a 73 69 7a 65 3d 33 30 3a 73 74 65 70 3d 33 |0:size=30:step=3| 000078d0 36 3a 6f 73 69 7a 65 3d 73 69 7a 65 2a 33 0d 26 |6:osize=size*3.&| 000078e0 7a 27 63 61 25 3d 31 3a 63 62 25 3d 32 3a 63 63 |z'ca%=1:cb%=2:cc| 000078f0 25 3d 33 3a 63 64 25 3d 34 3a 63 65 25 3d 35 3a |%=3:cd%=4:ce%=5:| 00007900 63 66 25 3d 36 0d 26 84 16 e3 69 25 3d 30 20 b8 |cf%=6.&...i%=0 .| 00007910 20 31 38 30 20 88 20 73 74 65 70 0d 26 8e 23 78 | 180 . step.&.#x| 00007920 3d b5 28 b2 28 69 25 29 29 2a 73 69 7a 65 3a 79 |=.(.(i%))*size:y| 00007930 3d 9b 28 b2 28 69 25 29 29 2a 73 69 7a 65 0d 26 |=.(.(i%))*size.&| 00007940 98 0e 73 74 65 70 32 3d 73 74 65 70 0d 26 a2 21 |..step2=step.&.!| 00007950 e7 69 25 3c 34 30 20 84 20 69 25 3e 31 34 30 20 |.i%<40 . i%>140 | 00007960 8c 73 74 65 70 32 3d 73 74 65 70 2a 32 0d 26 ac |.step2=step*2.&.| 00007970 1e e7 69 25 3c 31 30 20 84 20 69 25 3e 31 37 30 |..i%<10 . i%>170| 00007980 20 8c 73 74 65 70 32 3d 33 36 30 0d 26 b6 17 e3 | .step2=360.&...| 00007990 61 25 3d 30 20 b8 20 33 35 39 20 88 20 73 74 65 |a%=0 . 359 . ste| 000079a0 70 32 0d 26 c0 19 73 3d b5 28 b2 28 61 25 29 29 |p2.&..s=.(.(a%))| 000079b0 3a 63 3d 9b 28 b2 28 61 25 29 29 0d 26 ca 2f 43 |:c=.(.(a%)).&./C| 000079c0 25 3d 63 61 25 2a 26 36 30 30 3a 63 61 25 3d 63 |%=ca%*&600:ca%=c| 000079d0 61 25 82 33 3a f2 64 6f 74 28 78 2a 63 2d 6f 73 |a%.3:.dot(x*c-os| 000079e0 69 7a 65 2c 79 2c 78 2a 73 29 0d 26 d4 2f 43 25 |ize,y,x*s).&./C%| 000079f0 3d 63 62 25 2a 26 36 30 30 3a 63 62 25 3d 63 62 |=cb%*&600:cb%=cb| 00007a00 25 82 31 3a f2 64 6f 74 28 78 2a 63 2b 6f 73 69 |%.1:.dot(x*c+osi| 00007a10 7a 65 2c 79 2c 78 2a 73 29 0d 26 de 2f 43 25 3d |ze,y,x*s).&./C%=| 00007a20 63 63 25 2a 26 36 30 30 3a 63 63 25 3d 63 63 25 |cc%*&600:cc%=cc%| 00007a30 82 37 3a f2 64 6f 74 28 78 2a 63 2c 79 2d 6f 73 |.7:.dot(x*c,y-os| 00007a40 69 7a 65 2c 78 2a 73 29 0d 26 e8 2f 43 25 3d 63 |ize,x*s).&./C%=c| 00007a50 64 25 2a 26 36 30 30 3a 63 64 25 3d 63 64 25 82 |d%*&600:cd%=cd%.| 00007a60 31 3a f2 64 6f 74 28 78 2a 63 2c 79 2b 6f 73 69 |1:.dot(x*c,y+osi| 00007a70 7a 65 2c 78 2a 73 29 0d 26 f2 2f 43 25 3d 63 65 |ze,x*s).&./C%=ce| 00007a80 25 2a 26 36 30 30 3a 63 65 25 3d 63 65 25 82 33 |%*&600:ce%=ce%.3| 00007a90 3a f2 64 6f 74 28 78 2a 63 2c 79 2c 78 2a 73 2d |:.dot(x*c,y,x*s-| 00007aa0 6f 73 69 7a 65 29 0d 26 fc 2f 43 25 3d 63 66 25 |osize).&./C%=cf%| 00007ab0 2a 26 36 30 30 3a 63 66 25 3d 63 66 25 82 37 3a |*&600:cf%=cf%.7:| 00007ac0 f2 64 6f 74 28 78 2a 63 2c 79 2c 78 2a 73 2b 6f |.dot(x*c,y,x*s+o| 00007ad0 73 69 7a 65 29 0d 27 06 1d 43 25 3d 26 36 30 30 |size).'..C%=&600| 00007ae0 2a 34 3a f2 64 6f 74 28 78 2a 63 2c 79 2c 78 2a |*4:.dot(x*c,y,x*| 00007af0 73 29 0d 27 10 07 ed 3a ed 0d 27 1a 04 0d 27 24 |s).'...:..'...'$| 00007b00 09 c9 20 32 31 3a 0d 27 2e 34 74 73 74 61 72 74 |.. 21:.'.4tstart| 00007b10 3d 31 30 3a 70 73 74 61 72 74 3d 30 3a 74 69 6e |=10:pstart=0:tin| 00007b20 63 3d 31 3a 70 69 6e 63 3d 32 3a 74 73 69 6e 65 |c=1:pinc=2:tsine| 00007b30 3d 30 3a 70 73 69 6e 65 3d 30 0d 27 38 39 73 63 |=0:psine=0.'89sc| 00007b40 61 6c 65 3d 31 2e 34 3a f1 22 57 61 72 6e 69 6e |ale=1.4:."Warnin| 00007b50 67 22 3b 8a 31 35 29 3b 22 53 63 61 6c 65 3a 20 |g";.15);"Scale: | 00007b60 22 3b 73 63 61 6c 65 3b 8a 33 30 29 3b 22 2e 2e |";scale;.30);"..| 00007b70 2e 22 3b 0d 27 42 0b 73 69 7a 65 3d 31 30 0d 27 |.";.'B.size=10.'| 00007b80 4c 07 f7 2b 34 0d 27 56 3e e3 79 63 25 3d 30 b8 |L..+4.'V>.yc%=0.| 00007b90 31 34 3a f3 20 66 24 3a e3 78 63 25 3d 30 b8 a9 |14:. f$:.xc%=0..| 00007ba0 28 66 24 29 2d 31 3a 43 25 3d 28 97 28 c1 66 24 |(f$)-1:C%=(.(.f$| 00007bb0 2c 78 63 25 2b 31 2c 31 29 29 2d 34 38 29 2a 26 |,xc%+1,1))-48)*&| 00007bc0 36 30 30 0d 27 60 2d e7 43 25 3c 3e 30 20 8c f2 |600.'`-.C%<>0 ..| 00007bd0 64 6f 74 28 28 78 63 25 2d 37 29 2a 73 69 7a 65 |dot((xc%-7)*size| 00007be0 2c 28 79 63 25 2d 37 29 2a 73 69 7a 65 2c 30 29 |,(yc%-7)*size,0)| 00007bf0 0d 27 6a 07 ed 3a ed 0d 27 74 15 dc 20 30 30 30 |.'j..:..'t.. 000| 00007c00 30 30 30 30 31 30 30 30 30 30 30 30 0d 27 7e 15 |000010000000.'~.| 00007c10 dc 20 30 30 30 30 30 30 30 31 30 30 30 30 30 30 |. 00000001000000| 00007c20 30 0d 27 88 15 dc 20 30 30 30 30 30 30 31 31 31 |0.'... 000000111| 00007c30 30 30 30 30 30 30 0d 27 92 15 dc 20 30 30 30 30 |000000.'... 0000| 00007c40 30 30 31 32 31 30 30 30 30 30 30 0d 27 9c 15 dc |00121000000.'...| 00007c50 20 30 30 30 30 30 31 31 32 31 31 30 30 30 30 30 | 000001121100000| 00007c60 0d 27 a6 15 dc 20 30 30 30 30 30 31 32 34 32 31 |.'... 0000012421| 00007c70 30 30 30 30 30 0d 27 b0 15 dc 20 30 30 30 30 31 |00000.'... 00001| 00007c80 31 34 34 34 31 31 30 30 30 30 0d 27 ba 15 dc 20 |1444110000.'... | 00007c90 30 30 30 30 31 32 34 34 34 32 31 30 30 30 30 0d |000012444210000.| 00007ca0 27 c4 15 dc 20 30 30 30 31 31 32 34 34 34 32 31 |'... 00011244421| 00007cb0 31 30 30 30 0d 27 ce 15 dc 20 30 30 30 31 32 32 |1000.'... 000122| 00007cc0 32 34 32 32 32 31 30 30 30 0d 27 d8 15 dc 20 30 |242221000.'... 0| 00007cd0 30 31 31 32 32 32 32 32 32 32 31 31 30 30 0d 27 |01122222221100.'| 00007ce0 e2 15 dc 20 30 30 31 32 32 32 32 34 32 32 32 32 |... 001222242222| 00007cf0 31 30 30 0d 27 ec 15 dc 20 30 31 31 32 32 32 34 |100.'... 0112224| 00007d00 34 34 32 32 32 31 31 30 0d 27 f6 15 dc 20 30 31 |44222110.'... 01| 00007d10 32 32 32 32 32 34 32 32 32 32 32 31 30 0d 28 00 |2222242222210.(.| 00007d20 15 dc 20 31 31 31 31 31 31 31 31 31 31 31 31 31 |.. 1111111111111| 00007d30 31 31 0d 28 0a 09 c9 20 32 32 3a 0d 28 14 36 74 |11.(... 22:.(.6t| 00007d40 73 74 61 72 74 3d 31 30 3a 70 73 74 61 72 74 3d |start=10:pstart=| 00007d50 32 37 30 3a 74 69 6e 63 3d 32 3a 70 69 6e 63 3d |270:tinc=2:pinc=| 00007d60 30 3a 74 73 69 6e 65 3d 30 3a 70 73 69 6e 65 3d |0:tsine=0:psine=| 00007d70 30 0d 28 1e 36 73 63 61 6c 65 3d 31 2e 34 3a f1 |0.(.6scale=1.4:.| 00007d80 22 46 61 63 65 22 3b 8a 31 35 29 3b 22 53 63 61 |"Face";.15);"Sca| 00007d90 6c 65 3a 20 22 3b 73 63 61 6c 65 3b 8a 33 30 29 |le: ";scale;.30)| 00007da0 3b 22 2e 2e 2e 22 3b 0d 28 28 13 73 69 7a 65 3d |;"...";.((.size=| 00007db0 31 30 3a 62 65 6e 64 3d 33 30 0d 28 32 07 f7 2b |10:bend=30.(2..+| 00007dc0 36 0d 28 3c 0b 61 6e 67 6c 65 3d 30 0d 28 46 69 |6.(<.angle=0.(Fi| 00007dd0 e3 79 63 25 3d 30 b8 31 34 3a 61 6e 67 6c 65 32 |.yc%=0.14:angle2| 00007de0 3d 30 3a f3 20 66 24 3a e3 78 63 25 3d 30 b8 a9 |=0:. f$:.xc%=0..| 00007df0 28 66 24 29 2d 31 3a 43 25 3d 28 97 28 c1 66 24 |(f$)-1:C%=(.(.f$| 00007e00 2c 78 63 25 2b 31 2c 31 29 29 2d 34 38 29 2a 26 |,xc%+1,1))-48)*&| 00007e10 36 30 30 3a 73 79 63 3d b5 28 b2 28 61 6e 67 6c |600:syc=.(.(angl| 00007e20 65 32 29 29 2a 62 65 6e 64 2a b5 28 b2 28 61 6e |e2))*bend*.(.(an| 00007e30 67 6c 65 29 29 0d 28 50 17 e7 43 25 3d 26 36 30 |gle)).(P..C%=&60| 00007e40 30 20 8c 73 79 63 2b 3d 73 69 7a 65 0d 28 5a 1b |0 .syc+=size.(Z.| 00007e50 e7 43 25 3d 26 36 30 30 2a 35 20 8c 73 79 63 2b |.C%=&600*5 .syc+| 00007e60 3d 73 69 7a 65 2f 32 0d 28 64 1f e7 43 25 3d 26 |=size/2.(d..C%=&| 00007e70 36 30 30 2a 34 20 8c 73 79 63 2b 3d 28 73 69 7a |600*4 .syc+=(siz| 00007e80 65 2f 31 2e 35 29 0d 28 6e 2f e7 43 25 3c 3e 30 |e/1.5).(n/.C%<>0| 00007e90 20 8c f2 64 6f 74 28 28 78 63 25 2d 37 29 2a 73 | ..dot((xc%-7)*s| 00007ea0 69 7a 65 2c 73 79 63 2c 28 79 63 25 2d 37 29 2a |ize,syc,(yc%-7)*| 00007eb0 73 69 7a 65 29 0d 28 78 0e 61 6e 67 6c 65 32 2b |size).(x.angle2+| 00007ec0 3d 31 32 0d 28 82 11 ed 3a 61 6e 67 6c 65 2b 3d |=12.(...:angle+=| 00007ed0 31 32 3a ed 0d 28 8c 15 dc 20 30 30 30 32 32 32 |12:..(... 000222| 00007ee0 32 32 32 32 32 32 30 30 30 0d 28 96 15 dc 20 30 |222222000.(... 0| 00007ef0 30 32 32 36 36 36 36 36 36 36 32 32 32 30 0d 28 |02266666662220.(| 00007f00 a0 15 dc 20 30 32 32 36 36 36 36 36 36 36 36 36 |... 022666666666| 00007f10 36 32 30 0d 28 aa 15 dc 20 32 32 36 36 35 35 36 |620.(... 2266556| 00007f20 36 36 35 35 36 36 32 32 0d 28 b4 15 dc 20 32 36 |66556622.(... 26| 00007f30 36 35 35 34 35 36 35 34 35 35 36 36 32 0d 28 be |6554565455662.(.| 00007f40 15 dc 20 32 36 36 36 35 35 36 36 36 35 35 36 36 |.. 2666556665566| 00007f50 36 32 0d 28 c8 15 dc 20 36 36 36 36 36 36 31 31 |62.(... 66666611| 00007f60 31 36 36 36 36 36 36 0d 28 d2 15 dc 20 36 36 36 |1666666.(... 666| 00007f70 36 36 31 31 31 31 31 36 36 36 36 36 0d 28 dc 15 |661111166666.(..| 00007f80 dc 20 36 36 36 36 36 36 31 31 31 36 36 36 36 36 |. 66666611166666| 00007f90 36 0d 28 e6 15 dc 20 30 36 36 34 34 36 36 36 36 |6.(... 066446666| 00007fa0 36 36 34 36 36 30 0d 28 f0 15 dc 20 30 36 36 36 |664660.(... 0666| 00007fb0 34 36 36 36 36 36 34 34 36 36 30 0d 28 fa 15 dc |46666644660.(...| 00007fc0 20 30 30 36 36 34 34 34 35 35 34 34 36 36 30 30 | 006644455446600| 00007fd0 0d 29 04 15 dc 20 30 30 36 36 36 36 34 34 34 34 |.)... 0066664444| 00007fe0 36 36 36 30 30 0d 29 0e 15 dc 20 30 30 30 30 36 |66600.)... 00006| 00007ff0 36 36 36 36 36 36 30 30 30 30 0d 29 18 15 dc 20 |6666660000.)... | 00008000 30 30 30 30 30 30 36 36 36 30 30 30 30 30 30 0d |000000666000000.| 00008010 29 22 04 0d 29 2c 09 c9 20 32 33 3a 0d 29 36 36 |)"..),.. 23:.)66| 00008020 74 73 74 61 72 74 3d 31 30 3a 70 73 74 61 72 74 |tstart=10:pstart| 00008030 3d 32 37 30 3a 74 69 6e 63 3d 32 3a 70 69 6e 63 |=270:tinc=2:pinc| 00008040 3d 31 3a 74 73 69 6e 65 3d 30 3a 70 73 69 6e 65 |=1:tsine=0:psine| 00008050 3d 30 0d 29 40 36 73 63 61 6c 65 3d 31 2e 34 3a |=0.)@6scale=1.4:| 00008060 f1 22 46 6c 61 67 22 3b 8a 31 35 29 3b 22 53 63 |."Flag";.15);"Sc| 00008070 61 6c 65 3a 20 22 3b 73 63 61 6c 65 3b 8a 33 30 |ale: ";scale;.30| 00008080 29 3b 22 2e 2e 2e 22 3b 0d 29 4a 13 73 69 7a 65 |);"...";.)J.size| 00008090 3d 31 30 3a 62 65 6e 64 3d 34 30 0d 29 54 13 61 |=10:bend=40.)T.a| 000080a0 6e 67 6c 65 3d 30 3a 43 25 3d 26 36 30 30 0d 29 |ngle=0:C%=&600.)| 000080b0 5e 25 e3 79 63 25 3d 30 b8 31 34 3a 61 6e 67 6c |^%.yc%=0.14:angl| 000080c0 65 32 3d 30 3a e3 78 63 25 3d 30 b8 a9 28 66 24 |e2=0:.xc%=0..(f$| 000080d0 29 2d 31 0d 29 68 25 73 79 63 3d b5 28 b2 28 61 |)-1.)h%syc=.(.(a| 000080e0 6e 67 6c 65 32 29 29 2a 62 65 6e 64 2a b5 28 b2 |ngle2))*bend*.(.| 000080f0 28 61 6e 67 6c 65 29 29 0d 29 72 27 f2 64 6f 74 |(angle)).)r'.dot| 00008100 28 28 78 63 25 2d 37 29 2a 73 69 7a 65 2c 73 79 |((xc%-7)*size,sy| 00008110 63 2c 28 79 63 25 2d 37 29 2a 73 69 7a 65 29 0d |c,(yc%-7)*size).| 00008120 29 7c 0e 61 6e 67 6c 65 32 2b 3d 31 32 0d 29 86 |)|.angle2+=12.).| 00008130 22 ed 3a 43 25 2b 3d 26 36 30 30 3a e7 43 25 3e |".:C%+=&600:.C%>| 00008140 26 36 30 30 2a 33 20 8c 43 25 3d 26 36 30 30 0d |&600*3 .C%=&600.| 00008150 29 90 0f 61 6e 67 6c 65 2b 3d 32 34 3a ed 0d 29 |)..angle+=24:..)| 00008160 9a 04 0d 29 a4 09 c9 20 32 34 3a 0d 29 ae 36 74 |...)... 24:.).6t| 00008170 73 74 61 72 74 3d 31 30 3a 70 73 74 61 72 74 3d |start=10:pstart=| 00008180 32 37 30 3a 74 69 6e 63 3d 31 3a 70 69 6e 63 3d |270:tinc=1:pinc=| 00008190 32 3a 74 73 69 6e 65 3d 31 3a 70 73 69 6e 65 3d |2:tsine=1:psine=| 000081a0 30 0d 29 b8 3d 73 63 61 6c 65 3d 31 3a f1 22 43 |0.).=scale=1:."C| 000081b0 69 72 63 6c 65 20 43 69 72 63 6c 65 22 3b 8a 31 |ircle Circle";.1| 000081c0 35 29 3b 22 53 63 61 6c 65 3a 20 22 3b 73 63 61 |5);"Scale: ";sca| 000081d0 6c 65 3b 8a 33 30 29 3b 22 2e 2e 2e 22 3b 0d 29 |le;.30);"...";.)| 000081e0 c2 30 73 74 65 70 3d 33 36 3a 73 69 7a 65 3d 31 |.0step=36:size=1| 000081f0 31 30 3a 73 74 65 70 32 3d 32 34 3a 73 69 7a 65 |10:step2=24:size| 00008200 32 3d 33 30 3a 43 25 3d 26 36 30 30 2a 32 0d 29 |2=30:C%=&600*2.)| 00008210 cc 13 e3 69 25 3d 30 b8 33 35 39 20 88 73 74 65 |...i%=0.359 .ste| 00008220 70 0d 29 d6 25 61 78 3d b5 28 b2 28 69 25 29 29 |p.).%ax=.(.(i%))| 00008230 2a 73 69 7a 65 3a 61 79 3d 9b 28 b2 28 69 25 29 |*size:ay=.(.(i%)| 00008240 29 2a 73 69 7a 65 0d 29 e0 1a 63 3d 2d 9b 28 b2 |)*size.)..c=-.(.| 00008250 28 69 25 29 29 3a 73 3d b5 28 b2 28 69 25 29 29 |(i%)):s=.(.(i%))| 00008260 0d 29 ea 14 e3 6a 25 3d 30 b8 33 35 39 20 88 73 |.)...j%=0.359 .s| 00008270 74 65 70 32 0d 29 f4 25 76 3d b5 28 b2 28 6a 25 |tep2.).%v=.(.(j%| 00008280 29 29 2a 73 69 7a 65 32 3a 77 3d 9b 28 b2 28 6a |))*size2:w=.(.(j| 00008290 25 29 29 2a 73 69 7a 65 32 0d 29 fe 0f 78 3d 76 |%))*size2.)..x=v| 000082a0 3a 79 3d 30 3a 7a 3d 77 0d 2a 08 25 f2 64 6f 74 |:y=0:z=w.*.%.dot| 000082b0 28 28 78 2a 63 2d 79 2a 73 29 2b 61 78 2c 28 78 |((x*c-y*s)+ax,(x| 000082c0 2a 73 2b 79 2a 63 29 2b 61 79 2c 7a 29 0d 2a 12 |*s+y*c)+ay,z).*.| 000082d0 24 ed 3a 43 25 2b 3d 26 36 30 30 3a e7 43 25 3d |$.:C%+=&600:.C%=| 000082e0 26 36 30 30 2a 37 20 8c 43 25 3d 26 36 30 30 2a |&600*7 .C%=&600*| 000082f0 32 0d 2a 1c 19 ed 3a 43 25 3d 26 36 30 30 3a f2 |2.*...:C%=&600:.| 00008300 64 6f 74 28 30 2c 30 2c 30 29 0d 2a 26 04 0d 2a |dot(0,0,0).*&..*| 00008310 30 09 c9 20 32 35 3a 0d 2a 3a 36 74 73 74 61 72 |0.. 25:.*:6tstar| 00008320 74 3d 31 30 3a 70 73 74 61 72 74 3d 32 37 30 3a |t=10:pstart=270:| 00008330 74 69 6e 63 3d 31 3a 70 69 6e 63 3d 32 3a 74 73 |tinc=1:pinc=2:ts| 00008340 69 6e 65 3d 31 3a 70 73 69 6e 65 3d 30 0d 2a 44 |ine=1:psine=0.*D| 00008350 3e 73 63 61 6c 65 3d 31 3a f1 22 52 61 6e 64 6f |>scale=1:."Rando| 00008360 6d 20 43 69 72 63 6c 65 73 22 3b 8a 31 35 29 3b |m Circles";.15);| 00008370 22 53 63 61 6c 65 3a 20 22 3b 73 63 61 6c 65 3b |"Scale: ";scale;| 00008380 8a 33 30 29 3b 22 2e 2e 2e 22 3b 0d 2a 4e 0b e3 |.30);"...";.*N..| 00008390 49 3d 31 b8 32 30 0d 2a 58 30 73 74 65 70 3d 33 |I=1.20.*X0step=3| 000083a0 36 3a 73 69 7a 65 3d 31 31 30 3a 73 74 65 70 32 |6:size=110:step2| 000083b0 3d 32 34 3a 73 69 7a 65 32 3d 33 30 3a 43 25 3d |=24:size2=30:C%=| 000083c0 26 36 30 30 2a 32 0d 2a 62 0d 69 25 3d b3 28 33 |&600*2.*b.i%=.(3| 000083d0 36 30 29 0d 2a 6c 2a 61 78 3d b3 28 31 35 30 29 |60).*l*ax=.(150)| 000083e0 2d 37 35 3a 61 79 3d b3 28 31 35 30 29 2d 37 35 |-75:ay=.(150)-75| 000083f0 3a 61 7a 3d b3 28 31 35 30 29 2d 37 35 0d 2a 76 |:az=.(150)-75.*v| 00008400 1a 63 3d 2d 9b 28 b2 28 69 25 29 29 3a 73 3d b5 |.c=-.(.(i%)):s=.| 00008410 28 b2 28 69 25 29 29 0d 2a 80 32 78 73 69 7a 65 |(.(i%)).*.2xsize| 00008420 3d b3 28 33 30 29 2b 31 30 3a 79 73 69 7a 65 3d |=.(30)+10:ysize=| 00008430 b3 28 33 30 29 2b 31 30 3a e3 6a 25 3d 30 b8 33 |.(30)+10:.j%=0.3| 00008440 35 39 20 88 73 74 65 70 32 0d 2a 8a 25 76 3d b5 |59 .step2.*.%v=.| 00008450 28 b2 28 6a 25 29 29 2a 78 73 69 7a 65 3a 77 3d |(.(j%))*xsize:w=| 00008460 9b 28 b2 28 6a 25 29 29 2a 79 73 69 7a 65 0d 2a |.(.(j%))*ysize.*| 00008470 94 0f 78 3d 76 3a 79 3d 30 3a 7a 3d 77 0d 2a 9e |..x=v:y=0:z=w.*.| 00008480 28 f2 64 6f 74 28 28 78 2a 63 2d 79 2a 73 29 2b |(.dot((x*c-y*s)+| 00008490 61 78 2c 28 78 2a 73 2b 79 2a 63 29 2b 61 79 2c |ax,(x*s+y*c)+ay,| 000084a0 7a 2b 61 7a 29 0d 2a a8 24 ed 3a 43 25 2b 3d 26 |z+az).*.$.:C%+=&| 000084b0 36 30 30 3a e7 43 25 3d 26 36 30 30 2a 37 20 8c |600:.C%=&600*7 .| 000084c0 43 25 3d 26 36 30 30 2a 32 0d 2a b2 05 ed 0d 2a |C%=&600*2.*....*| 000084d0 bc 04 0d 2a c6 09 c9 20 32 36 3a 0d 2a d0 36 74 |...*... 26:.*.6t| 000084e0 73 74 61 72 74 3d 31 30 3a 70 73 74 61 72 74 3d |start=10:pstart=| 000084f0 32 37 30 3a 74 69 6e 63 3d 31 3a 70 69 6e 63 3d |270:tinc=1:pinc=| 00008500 32 3a 74 73 69 6e 65 3d 31 3a 70 73 69 6e 65 3d |2:tsine=1:psine=| 00008510 30 0d 2a da 3a 73 63 61 6c 65 3d 31 3a f1 22 43 |0.*.:scale=1:."C| 00008520 69 72 63 6c 65 20 42 6f 78 22 3b 8a 31 35 29 3b |ircle Box";.15);| 00008530 22 53 63 61 6c 65 3a 20 22 3b 73 63 61 6c 65 3b |"Scale: ";scale;| 00008540 8a 33 30 29 3b 22 2e 2e 2e 22 3b 0d 2a e4 22 73 |.30);"...";.*."s| 00008550 74 65 70 3d 33 30 3a 72 3d 35 30 3a 73 69 7a 65 |tep=30:r=50:size| 00008560 3d 36 30 3a 43 25 3d 26 36 30 30 2a 32 0d 2a ee |=60:C%=&600*2.*.| 00008570 2c e3 69 25 3d 30 b8 33 35 39 88 73 74 65 70 3a |,.i%=0.359.step:| 00008580 63 3d 9b 28 b2 28 69 25 29 29 2a 72 3a 73 3d b5 |c=.(.(i%))*r:s=.| 00008590 28 b2 28 69 25 29 29 2a 72 0d 2a f8 0d 43 25 3d |(.(i%))*r.*..C%=| 000085a0 26 36 30 30 2a 34 0d 2b 02 26 f2 64 6f 74 28 2d |&600*4.+.&.dot(-| 000085b0 72 2b 63 2c 2d 72 2b 73 2c 72 29 3a f2 64 6f 74 |r+c,-r+s,r):.dot| 000085c0 28 72 2b 63 2c 2d 72 2b 73 2c 72 29 0d 2b 0c 24 |(r+c,-r+s,r).+.$| 000085d0 f2 64 6f 74 28 2d 72 2b 63 2c 72 2b 73 2c 72 29 |.dot(-r+c,r+s,r)| 000085e0 3a f2 64 6f 74 28 72 2b 63 2c 72 2b 73 2c 72 29 |:.dot(r+c,r+s,r)| 000085f0 0d 2b 16 28 f2 64 6f 74 28 2d 72 2b 63 2c 2d 72 |.+.(.dot(-r+c,-r| 00008600 2b 73 2c 2d 72 29 3a f2 64 6f 74 28 72 2b 63 2c |+s,-r):.dot(r+c,| 00008610 2d 72 2b 73 2c 2d 72 29 0d 2b 20 26 f2 64 6f 74 |-r+s,-r).+ &.dot| 00008620 28 2d 72 2b 63 2c 72 2b 73 2c 2d 72 29 3a f2 64 |(-r+c,r+s,-r):.d| 00008630 6f 74 28 72 2b 63 2c 72 2b 73 2c 2d 72 29 0d 2b |ot(r+c,r+s,-r).+| 00008640 2a 0d 43 25 3d 26 36 30 30 2a 35 0d 2b 34 26 f2 |*.C%=&600*5.+4&.| 00008650 64 6f 74 28 72 2c 2d 72 2b 63 2c 2d 72 2b 73 29 |dot(r,-r+c,-r+s)| 00008660 3a f2 64 6f 74 28 72 2c 72 2b 63 2c 2d 72 2b 73 |:.dot(r,r+c,-r+s| 00008670 29 0d 2b 3e 24 f2 64 6f 74 28 72 2c 2d 72 2b 63 |).+>$.dot(r,-r+c| 00008680 2c 72 2b 73 29 3a f2 64 6f 74 28 72 2c 72 2b 63 |,r+s):.dot(r,r+c| 00008690 2c 72 2b 73 29 0d 2b 48 28 f2 64 6f 74 28 2d 72 |,r+s).+H(.dot(-r| 000086a0 2c 2d 72 2b 63 2c 2d 72 2b 73 29 3a f2 64 6f 74 |,-r+c,-r+s):.dot| 000086b0 28 2d 72 2c 72 2b 63 2c 2d 72 2b 73 29 0d 2b 52 |(-r,r+c,-r+s).+R| 000086c0 26 f2 64 6f 74 28 2d 72 2c 2d 72 2b 63 2c 72 2b |&.dot(-r,-r+c,r+| 000086d0 73 29 3a f2 64 6f 74 28 2d 72 2c 72 2b 63 2c 72 |s):.dot(-r,r+c,r| 000086e0 2b 73 29 0d 2b 5c 0d 43 25 3d 26 36 30 30 2a 32 |+s).+\.C%=&600*2| 000086f0 0d 2b 66 26 f2 64 6f 74 28 2d 72 2b 63 2c 72 2c |.+f&.dot(-r+c,r,| 00008700 2d 72 2b 73 29 3a f2 64 6f 74 28 72 2b 63 2c 72 |-r+s):.dot(r+c,r| 00008710 2c 2d 72 2b 73 29 0d 2b 70 24 f2 64 6f 74 28 2d |,-r+s).+p$.dot(-| 00008720 72 2b 63 2c 72 2c 72 2b 73 29 3a f2 64 6f 74 28 |r+c,r,r+s):.dot(| 00008730 72 2b 63 2c 72 2c 72 2b 73 29 0d 2b 7a 28 f2 64 |r+c,r,r+s).+z(.d| 00008740 6f 74 28 2d 72 2b 63 2c 2d 72 2c 2d 72 2b 73 29 |ot(-r+c,-r,-r+s)| 00008750 3a f2 64 6f 74 28 72 2b 63 2c 2d 72 2c 2d 72 2b |:.dot(r+c,-r,-r+| 00008760 73 29 0d 2b 84 26 f2 64 6f 74 28 2d 72 2b 63 2c |s).+.&.dot(-r+c,| 00008770 2d 72 2c 72 2b 73 29 3a f2 64 6f 74 28 72 2b 63 |-r,r+s):.dot(r+c| 00008780 2c 2d 72 2c 72 2b 73 29 0d 2b 8e 05 ed 0d 2b 98 |,-r,r+s).+....+.| 00008790 09 c9 20 32 37 3a 0d 2b a2 35 74 73 74 61 72 74 |.. 27:.+.5tstart| 000087a0 3d 30 3a 70 73 74 61 72 74 3d 32 37 30 3a 74 69 |=0:pstart=270:ti| 000087b0 6e 63 3d 31 3a 70 69 6e 63 3d 30 3a 74 73 69 6e |nc=1:pinc=0:tsin| 000087c0 65 3d 30 3a 70 73 69 6e 65 3d 30 0d 2b ac 39 73 |e=0:psine=0.+.9s| 000087d0 63 61 6c 65 3d 31 3a f1 22 4c 69 73 73 61 6a 6f |cale=1:."Lissajo| 000087e0 75 73 22 3b 8a 31 35 29 3b 22 53 63 61 6c 65 3a |us";.15);"Scale:| 000087f0 20 22 3b 73 63 61 6c 65 3b 8a 33 30 29 3b 22 2e | ";scale;.30);".| 00008800 2e 2e 22 3b 0d 2b b6 22 61 6e 67 6c 65 3d 30 3a |..";.+."angle=0:| 00008810 73 69 7a 65 3d 31 30 30 3a 61 6d 70 3d 38 30 3a |size=100:amp=80:| 00008820 73 74 65 70 3d 34 0d 2b c0 1c 43 25 3d 26 36 30 |step=4.+..C%=&60| 00008830 30 2a 35 3a e3 69 25 3d 30 b8 33 35 39 88 73 74 |0*5:.i%=0.359.st| 00008840 65 70 0d 2b ca 35 f2 64 6f 74 28 b5 28 b2 28 69 |ep.+.5.dot(.(.(i| 00008850 25 29 29 2a 73 69 7a 65 2c 9b 28 b2 28 69 25 29 |%))*size,.(.(i%)| 00008860 29 2a 73 69 7a 65 2c b5 28 b2 28 61 6e 67 6c 65 |)*size,.(.(angle| 00008870 29 29 2a 61 6d 70 29 0d 2b d4 0d 61 6e 67 6c 65 |))*amp).+..angle| 00008880 2b 3d 31 32 0d 2b de 05 ed 0d 2b e8 04 0d 2b f2 |+=12.+....+...+.| 00008890 09 c9 20 32 38 3a 0d 2b fc 35 74 73 74 61 72 74 |.. 28:.+.5tstart| 000088a0 3d 30 3a 70 73 74 61 72 74 3d 32 37 30 3a 74 69 |=0:pstart=270:ti| 000088b0 6e 63 3d 32 3a 70 69 6e 63 3d 32 3a 74 73 69 6e |nc=2:pinc=2:tsin| 000088c0 65 3d 31 3a 70 73 69 6e 65 3d 30 0d 2c 06 3c 73 |e=1:psine=0.,.<s| 000088d0 63 61 6c 65 3d 31 3a f1 22 42 61 72 62 65 72 73 |cale=1:."Barbers| 000088e0 20 50 6f 6c 65 22 3b 8a 31 35 29 3b 22 53 63 61 | Pole";.15);"Sca| 000088f0 6c 65 3a 20 22 3b 73 63 61 6c 65 3b 8a 33 30 29 |le: ";scale;.30)| 00008900 3b 22 2e 2e 2e 22 3b 0d 2c 10 2e 72 3d 35 30 3a |;"...";.,..r=50:| 00008910 73 69 7a 65 3d 36 30 3a 73 74 65 70 3d 31 35 3a |size=60:step=15:| 00008920 43 25 3d 26 36 30 30 3a 6c 3d 34 35 2f 73 74 65 |C%=&600:l=45/ste| 00008930 70 3a 6d 3d 30 0d 2c 1a 1b e3 69 25 3d 2d 73 69 |p:m=0.,...i%=-si| 00008940 7a 65 20 b8 20 73 69 7a 65 20 88 20 73 74 65 70 |ze . size . step| 00008950 0d 2c 24 13 e3 6a 25 3d 30 b8 33 35 39 88 20 73 |.,$..j%=0.359. s| 00008960 74 65 70 0d 2c 2e 1e 6d 2b 3d 31 3a e7 6d 3d 6c |tep.,..m+=1:.m=l| 00008970 20 8c 43 25 3d 43 25 20 82 26 41 30 30 3a 6d 3d | .C%=C% .&A00:m=| 00008980 30 0d 2c 38 22 f2 64 6f 74 28 b5 28 b2 28 6a 25 |0.,8".dot(.(.(j%| 00008990 29 29 2a 72 2c 9b 28 b2 28 6a 25 29 29 2a 72 2c |))*r,.(.(j%))*r,| 000089a0 69 25 29 0d 2c 42 20 ed 3a 6d 2b 3d 31 3a e7 6d |i%).,B .:m+=1:.m| 000089b0 3d 6c 20 8c 43 25 3d 43 25 20 82 26 41 30 30 3a |=l .C%=C% .&A00:| 000089c0 6d 3d 30 0d 2c 4c 0f ed 3a 43 25 3d 26 36 30 30 |m=0.,L..:C%=&600| 000089d0 2a 35 0d 2c 56 14 e3 69 25 3d 30 b8 33 35 39 88 |*5.,V..i%=0.359.| 000089e0 73 74 65 70 2a 32 0d 2c 60 13 e3 72 3d 33 30 20 |step*2.,`..r=30 | 000089f0 b8 20 35 30 20 88 20 31 30 0d 2c 6a 29 f2 64 6f |. 50 . 10.,j).do| 00008a00 74 28 b5 28 b2 28 69 25 29 29 2a 72 2c 9b 28 b2 |t(.(.(i%))*r,.(.| 00008a10 28 69 25 29 29 2a 72 2c 73 69 7a 65 2b 73 74 65 |(i%))*r,size+ste| 00008a20 70 29 0d 2c 74 2a f2 64 6f 74 28 b5 28 b2 28 69 |p).,t*.dot(.(.(i| 00008a30 25 29 29 2a 72 2c 9b 28 b2 28 69 25 29 29 2a 72 |%))*r,.(.(i%))*r| 00008a40 2c 2d 73 69 7a 65 2d 73 74 65 70 29 0d 2c 7e 07 |,-size-step).,~.| 00008a50 ed 3a ed 0d 2c 88 04 0d 2c 92 09 c9 20 32 39 3a |.:..,...,... 29:| 00008a60 0d 2c 9c 33 74 73 74 61 72 74 3d 30 3a 70 73 74 |.,.3tstart=0:pst| 00008a70 61 72 74 3d 30 3a 74 69 6e 63 3d 32 3a 70 69 6e |art=0:tinc=2:pin| 00008a80 63 3d 33 3a 74 73 69 6e 65 3d 30 3a 70 73 69 6e |c=3:tsine=0:psin| 00008a90 65 3d 30 0d 2c a6 34 73 63 61 6c 65 3d 31 3a f1 |e=0.,.4scale=1:.| 00008aa0 22 44 69 63 65 22 3b 8a 31 35 29 3b 22 53 63 61 |"Dice";.15);"Sca| 00008ab0 6c 65 3a 20 22 3b 73 63 61 6c 65 3b 8a 33 30 29 |le: ";scale;.30)| 00008ac0 3b 22 2e 2e 2e 22 3b 0d 2c b0 0b 73 69 7a 65 3d |;"...";.,..size=| 00008ad0 31 35 0d 2c ba 08 f7 2b 31 35 0d 2c c4 1a e3 79 |15.,...+15.,...y| 00008ae0 63 25 3d 30 b8 36 3a f3 20 66 24 2c 6c 24 2c 62 |c%=0.6:. f$,l$,b| 00008af0 24 2c 72 24 0d 2c ce 2f e3 78 63 25 3d 30 b8 a9 |$,r$.,./.xc%=0..| 00008b00 28 66 24 29 2d 31 3a 43 25 3d 28 97 28 c1 66 24 |(f$)-1:C%=(.(.f$| 00008b10 2c 78 63 25 2b 31 2c 31 29 29 2d 34 38 29 2a 26 |,xc%+1,1))-48)*&| 00008b20 36 30 30 0d 2c d8 32 f2 64 6f 74 28 28 78 63 25 |600.,.2.dot((xc%| 00008b30 2d 33 29 2a 73 69 7a 65 2b 32 30 2c 28 79 63 25 |-3)*size+20,(yc%| 00008b40 2d 33 29 2a 73 69 7a 65 2b 32 30 2c 73 69 7a 65 |-3)*size+20,size| 00008b50 2a 33 29 3a ed 0d 2c e2 2f e3 78 63 25 3d 30 b8 |*3):..,./.xc%=0.| 00008b60 a9 28 62 24 29 2d 31 3a 43 25 3d 28 97 28 c1 62 |.(b$)-1:C%=(.(.b| 00008b70 24 2c 78 63 25 2b 31 2c 31 29 29 2d 34 38 29 2a |$,xc%+1,1))-48)*| 00008b80 26 36 30 30 0d 2c ec 33 f2 64 6f 74 28 28 78 63 |&600.,.3.dot((xc| 00008b90 25 2d 33 29 2a 73 69 7a 65 2b 32 30 2c 28 79 63 |%-3)*size+20,(yc| 00008ba0 25 2d 33 29 2a 73 69 7a 65 2b 32 30 2c 2d 73 69 |%-3)*size+20,-si| 00008bb0 7a 65 2a 33 29 3a ed 0d 2c f6 2f e3 78 63 25 3d |ze*3):..,./.xc%=| 00008bc0 30 b8 a9 28 6c 24 29 2d 31 3a 43 25 3d 28 97 28 |0..(l$)-1:C%=(.(| 00008bd0 c1 6c 24 2c 78 63 25 2b 31 2c 31 29 29 2d 34 38 |.l$,xc%+1,1))-48| 00008be0 29 2a 26 36 30 30 0d 2d 00 33 f2 64 6f 74 28 2d |)*&600.-.3.dot(-| 00008bf0 73 69 7a 65 2a 33 2b 32 30 2c 28 79 63 25 2d 33 |size*3+20,(yc%-3| 00008c00 29 2a 73 69 7a 65 2b 32 30 2c 28 78 63 25 2d 32 |)*size+20,(xc%-2| 00008c10 29 2a 73 69 7a 65 29 3a ed 0d 2d 0a 2f e3 78 63 |)*size):..-./.xc| 00008c20 25 3d 30 b8 a9 28 72 24 29 2d 31 3a 43 25 3d 28 |%=0..(r$)-1:C%=(| 00008c30 97 28 c1 72 24 2c 78 63 25 2b 31 2c 31 29 29 2d |.(.r$,xc%+1,1))-| 00008c40 34 38 29 2a 26 36 30 30 0d 2d 14 32 f2 64 6f 74 |48)*&600.-.2.dot| 00008c50 28 73 69 7a 65 2a 33 2b 32 30 2c 28 79 63 25 2d |(size*3+20,(yc%-| 00008c60 33 29 2a 73 69 7a 65 2b 32 30 2c 28 78 63 25 2d |3)*size+20,(xc%-| 00008c70 32 29 2a 73 69 7a 65 29 3a ed 0d 2d 1e 05 ed 0d |2)*size):..-....| 00008c80 2d 28 3e e3 6a 3d 30 b8 34 3a f3 20 74 24 2c 62 |-(>.j=0.4:. t$,b| 00008c90 24 3a e3 78 63 25 3d 30 b8 a9 28 74 24 29 2d 31 |$:.xc%=0..(t$)-1| 00008ca0 3a 43 25 3d 28 97 28 c1 74 24 2c 78 63 25 2b 31 |:C%=(.(.t$,xc%+1| 00008cb0 2c 31 29 29 2d 34 38 29 2a 26 36 30 30 0d 2d 32 |,1))-48)*&600.-2| 00008cc0 30 f2 64 6f 74 28 28 78 63 25 2d 32 29 2a 73 69 |0.dot((xc%-2)*si| 00008cd0 7a 65 2b 32 30 2c 73 69 7a 65 2a 33 2b 32 30 2c |ze+20,size*3+20,| 00008ce0 28 6a 2d 32 29 2a 73 69 7a 65 29 3a ed 0d 2d 3c |(j-2)*size):..-<| 00008cf0 2f e3 78 63 25 3d 30 b8 a9 28 62 24 29 2d 31 3a |/.xc%=0..(b$)-1:| 00008d00 43 25 3d 28 97 28 c1 62 24 2c 78 63 25 2b 31 2c |C%=(.(.b$,xc%+1,| 00008d10 31 29 29 2d 34 38 29 2a 26 36 30 30 0d 2d 46 33 |1))-48)*&600.-F3| 00008d20 f2 64 6f 74 28 28 78 63 25 2d 32 29 2a 73 69 7a |.dot((xc%-2)*siz| 00008d30 65 2b 32 30 2c 2d 73 69 7a 65 2a 33 2b 32 30 2c |e+20,-size*3+20,| 00008d40 28 6a 2d 32 29 2a 73 69 7a 65 29 3a ed 3a ed 0d |(j-2)*size):.:..| 00008d50 2d 50 21 dc 20 34 34 34 34 34 34 34 2c 34 34 34 |-P!. 4444444,444| 00008d60 34 34 2c 34 34 34 34 34 34 34 2c 34 34 34 34 34 |44,4444444,44444| 00008d70 0d 2d 5a 21 dc 20 34 36 34 34 34 36 34 2c 33 34 |.-Z!. 4644464,34| 00008d80 34 34 34 2c 34 35 34 34 34 35 34 2c 34 34 34 34 |444,4544454,4444| 00008d90 34 0d 2d 64 21 dc 20 34 34 34 34 34 34 34 2c 34 |4.-d!. 4444444,4| 00008da0 34 34 34 34 2c 34 34 34 34 34 34 34 2c 34 34 34 |4444,4444444,444| 00008db0 34 34 0d 2d 6e 21 dc 20 34 36 34 34 34 36 34 2c |44.-n!. 4644464,| 00008dc0 34 34 33 34 34 2c 34 34 34 35 34 34 34 2c 34 34 |44344,4445444,44| 00008dd0 31 34 34 0d 2d 78 21 dc 20 34 34 34 34 34 34 34 |144.-x!. 4444444| 00008de0 2c 34 34 34 34 34 2c 34 34 34 34 34 34 34 2c 34 |,44444,4444444,4| 00008df0 34 34 34 34 0d 2d 82 21 dc 20 34 36 34 34 34 36 |4444.-.!. 464446| 00008e00 34 2c 34 34 34 34 33 2c 34 35 34 34 34 35 34 2c |4,44443,4544454,| 00008e10 34 34 34 34 34 0d 2d 8c 21 dc 20 34 34 34 34 34 |44444.-.!. 44444| 00008e20 34 34 2c 34 34 34 34 34 2c 34 34 34 34 34 34 34 |44,44444,4444444| 00008e30 2c 34 34 34 34 34 0d 2d 96 04 0d 2d a0 11 dc 20 |,44444.-...-... | 00008e40 34 32 34 34 34 2c 32 34 34 34 32 0d 2d aa 11 dc |42444,24442.-...| 00008e50 20 34 34 34 34 34 2c 34 34 34 34 34 0d 2d b4 11 | 44444,44444.-..| 00008e60 dc 20 34 34 34 34 34 2c 34 34 34 34 34 0d 2d be |. 44444,44444.-.| 00008e70 11 dc 20 34 34 34 34 34 2c 34 34 34 34 34 0d 2d |.. 44444,44444.-| 00008e80 c8 11 dc 20 34 34 34 32 34 2c 32 34 34 34 32 0d |... 44424,24442.| 00008e90 2d d2 04 0d 2d dc 09 c9 20 33 30 3a 0d 2d e6 33 |-...-... 30:.-.3| 00008ea0 74 73 74 61 72 74 3d 30 3a 70 73 74 61 72 74 3d |tstart=0:pstart=| 00008eb0 30 3a 74 69 6e 63 3d 32 3a 70 69 6e 63 3d 31 3a |0:tinc=2:pinc=1:| 00008ec0 74 73 69 6e 65 3d 31 3a 70 73 69 6e 65 3d 31 0d |tsine=1:psine=1.| 00008ed0 2d f0 37 73 63 61 6c 65 3d 31 3a f1 22 53 71 75 |-.7scale=1:."Squ| 00008ee0 61 72 65 73 22 3b 8a 31 35 29 3b 22 53 63 61 6c |ares";.15);"Scal| 00008ef0 65 3a 20 22 3b 73 63 61 6c 65 3b 8a 33 30 29 3b |e: ";scale;.30);| 00008f00 22 2e 2e 2e 22 3b 0d 2d fa 39 73 69 7a 65 3d 38 |"...";.-.9size=8| 00008f10 3a 7a 78 3d 73 69 7a 65 2a 38 3a 43 25 3d 26 36 |:zx=size*8:C%=&6| 00008f20 30 30 3a e3 69 25 3d 33 20 b8 20 37 20 88 20 32 |00:.i%=3 . 7 . 2| 00008f30 3a 43 25 3d 26 36 30 30 2a 28 69 25 2d 31 29 0d |:C%=&600*(i%-1).| 00008f40 2e 04 2e e3 61 25 3d 2d 69 25 2b 31 20 b8 20 69 |....a%=-i%+1 . i| 00008f50 25 2d 31 20 88 20 32 3a e3 20 62 25 3d 2d 69 25 |%-1 . 2:. b%=-i%| 00008f60 2b 31 20 b8 20 69 25 2d 31 20 88 20 32 0d 2e 0e |+1 . i%-1 . 2...| 00008f70 1c f2 64 6f 74 28 61 25 2a 73 69 7a 65 2c 62 25 |..dot(a%*size,b%| 00008f80 2a 73 69 7a 65 2c 7a 78 29 0d 2e 18 1d f2 64 6f |*size,zx).....do| 00008f90 74 28 61 25 2a 73 69 7a 65 2c 62 25 2a 73 69 7a |t(a%*size,b%*siz| 00008fa0 65 2c 2d 7a 78 29 0d 2e 22 1c ed 3a ed 3a 7a 78 |e,-zx).."..:.:zx| 00008fb0 2d 3d 73 69 7a 65 2a 33 3a ed 3a 43 25 3d 26 36 |-=size*3:.:C%=&6| 00008fc0 30 30 0d 2e 2c 28 f2 64 6f 74 28 30 2c 30 2c 73 |00..,(.dot(0,0,s| 00008fd0 69 7a 65 2a 31 31 29 3a f2 64 6f 74 28 30 2c 30 |ize*11):.dot(0,0| 00008fe0 2c 2d 73 69 7a 65 2a 31 31 29 0d 2e 36 04 0d 2e |,-size*11)..6...| 00008ff0 40 09 c9 20 33 31 3a 0d 2e 4a 33 74 73 74 61 72 |@.. 31:..J3tstar| 00009000 74 3d 30 3a 70 73 74 61 72 74 3d 30 3a 74 69 6e |t=0:pstart=0:tin| 00009010 63 3d 32 3a 70 69 6e 63 3d 31 3a 74 73 69 6e 65 |c=2:pinc=1:tsine| 00009020 3d 31 3a 70 73 69 6e 65 3d 31 0d 2e 54 37 73 63 |=1:psine=1..T7sc| 00009030 61 6c 65 3d 31 3a f1 22 5a 69 67 20 5a 61 67 22 |ale=1:."Zig Zag"| 00009040 3b 8a 31 35 29 3b 22 53 63 61 6c 65 3a 20 22 3b |;.15);"Scale: ";| 00009050 73 63 61 6c 65 3b 8a 33 30 29 3b 22 2e 2e 2e 22 |scale;.30);"..."| 00009060 3b 0d 2e 5e 41 7a 73 74 65 70 3d 31 30 3a 7a 78 |;..^Azstep=10:zx| 00009070 3d 31 30 30 3a 6d 3d 30 3a 69 6e 63 3d 31 30 3a |=100:m=0:inc=10:| 00009080 e3 69 25 3d 31 b8 34 30 3a 43 25 3d 26 36 30 30 |.i%=1.40:C%=&600| 00009090 2a b3 28 36 29 3a e3 6a 25 3d 30 b8 33 35 39 88 |*.(6):.j%=0.359.| 000090a0 39 30 0d 2e 68 2a f2 64 6f 74 28 b5 28 b2 28 6a |90..h*.dot(.(.(j| 000090b0 25 29 29 2a 6d 2a 31 2e 33 2c 9b 28 b2 28 6a 25 |%))*m*1.3,.(.(j%| 000090c0 29 29 2a 6d 2a 31 2e 33 2c 7a 78 29 0d 2e 72 21 |))*m*1.3,zx)..r!| 000090d0 ed 3a 6d 2b 3d 69 6e 63 3a e7 6d 3d 35 30 20 84 |.:m+=inc:.m=50 .| 000090e0 6d 3d 30 20 8c 69 6e 63 3d 2d 69 6e 63 0d 2e 7c |m=0 .inc=-inc..|| 000090f0 0b 7a 78 2d 3d 35 3a ed 0d 2e 86 05 cb 0d 2e 90 |.zx-=5:.........| 00009100 09 3d 64 6f 74 73 0d 2e 9a 05 3a 0d 2e a4 11 dd |.=dots....:.....| 00009110 20 f2 64 6f 74 28 78 2c 79 2c 7a 29 0d 2e ae 10 | .dot(x,y,z)....| 00009120 4d 25 21 30 3d 78 2a 73 63 61 6c 65 0d 2e b8 10 |M%!0=x*scale....| 00009130 4d 25 21 34 3d 79 2a 73 63 61 6c 65 0d 2e c2 10 |M%!4=y*scale....| 00009140 4d 25 21 38 3d 7a 2a 73 63 61 6c 65 0d 2e cc 0c |M%!8=z*scale....| 00009150 4d 25 21 31 32 3d 43 25 0d 2e d6 0a 4d 25 2b 3d |M%!12=C%....M%+=| 00009160 31 36 0d 2e e0 0b 64 6f 74 73 2b 3d 31 0d 2e ea |16....dots+=1...| 00009170 05 e1 0d ff |....| 00009174