

                     FAST CIRCLE SYSTEM  LEIF BRANDT

AMIGA'n har nda se'n den introducerades ( ok, innan oxo faktiskt ) hjts
till skyarna fr att vara en fantastiskt snabb dator.
Och ser man till hrdvaran bara s r det inte helt fel, den konstruktion
som man valt har faktiskt vissa mjligheter fr att bilda grund till en
verkligt snabb dator.
De funktioner som r direkt hrdvarurelaterade och klarar sig utan srskilt
mycket software-overhead, finns det ingen anledning att klaga p, men allt
annat.........suck!

Skrckexemplet fr vl sgas vara layers.lib, ngot som den ansvarige (vars
namn inte skall nmnas) r vl medveten om.....ett litet citat:

"Om jag skulle skrivit rutinerna till layers.lib idag, s hade de sett ut
 p ett helt annat stt"

Alla har vl sett exempel phur snabbt blittern kan skyffla runt stora bit-
mapsomrden, fr att stadkomma imponerande animeringar.
Ngot som dremot inte imponerar srskilt mycket, r den hastighet med vilken
fnster uppdateras p workbenchskrmen. 
Brjar det bli lite fullt med fnster p skrmen, och man snabbt vill hoppa
fram och tillbaka mellan olika program genom att djuparrangera och flytta
runt pderas fnster, br man vara utrustad med stort tlamod eller vara
glad fr att hlla kaffepauser.

Men det r vl smed ett operativsystem att optimeringsgraden str i direkt
omvnd proportion till antalet finesser man fr, man kan inte ta kakan och
ha kvar den.....inte ens nr det gller AMIGA'n.
Man kan bara hoppas att CA verkligen gr ngra genomgripande frbttringar
i Kickstart 1.4 och inte bara kommer med en massa phngsrutiner som skall
laddas frn disk. ( Typ FastFonts och FFS som i 1.3, nej in i Kickstart'en
med alla frbttringar! )

Kickstart 1.1 innehll inga rutiner fr att rita cirklar, snr 1.2 kom var
DrawEllipse en av de rutiner jag testade frst.
Den r dock ganska lngsam, vilket en del tog tillfllet i akt att ppeka 
fr CA i BIX AMIGAarea.
CA frsvarade sig med att en cirkelrutin r ganska komplex och krver en hel
del berkningar, vilket iofs r sant.
DrawEllipse ritar dock vldigt runda och tjusiga cirkar, s det hade varit
p sin plats om man hade implementerat en stepvariabel.
D skulle man kunna ka hastigheten en del genom att ge avkall p cirkel-
kvaliten.

Fr att testa mjligheterna lite, satte jag mig ner och skrev en cirkelrutin
i assembler.
Den r skriven rakt upp och ner utan srskilt mycket planering, s fr att
f den att fungera blev det till att stoppa in lite extra saker hr och dr.
Det resulterade i att koden blev en del lngsammare och otympligare n det
var tnkt frn brjan.
Det gr dock att sknja en viss hastighetskning och ven om Drawellipse
ritar snyggare s kan man faktiskt identifiera resultatet av min rutin som
cirklar.

Om ngon har en bttre rutin p lager svar inte blyga fr att informera
oss andra okunniga stackare om den.

Kllkoden finns med, om ngon knner fr att optimera,skriva om,anvnda
eller kassera den.
Cirkelrutinen r min egen, stommen i programmet hrstammar frn COMPUTE's
AMIGA MACHINE LANGUAGE PROGRAMMING.
( Vad r programexempel till fr om inget annat n fr att snos? )

Det finns tre exempel i detta arkiv, de bygger dock p samma stomme s det
finns bara kllkod till ett exempel.


 FCSPEED

 Ritar 100 lika stora cirklar, hr syns skilnaden p FCS och DrawEllipse
 bst.


 FCSMAN

 Ritar 245 cirklar med minskande radie, samma antal punkter oavsett radie
 vilket gr att hastighetsskillnaden inte blir sstor.


 FCSAUTO

 Samma som ovan fast minskar antal punkter i cirkeln vid radie 100 och 25.




  Leif Brandt 88.07.18
