Action! Listing von Demon Birds gesucht...


Action! Listing von Demon Birds gesucht...

von matti1104 » Do 11. Aug 2011, 23:29
Hi Leute,
hat evtl. jemand von Euch den Action! Quellcode von Demon Birds aus der ANALOG Issue #28 auf einem ATR? Wollte damit mal etwas testen und möchte ihn ungern aus der ANALOG abtippen.

Gruß,
Mathias

Re: Action! Listing von Demon Birds gesucht...

von eda70 » Fr 12. Aug 2011, 09:09
Ja, hab ich.
Gibt es gegen email per PN.

Habe mir gerade mal den Quelltext angesehen, ist m.E. nicht wirklich schön und nutzt viele Vorteile von Action! nicht.
Code: Alles auswählen
Beispiel:
memory=Peek(106)
:roll:

Die Nr. 28 ist mir wohl aussikumma, müsste eigentlich schon im wiki sein.
Hupps scho isse da...

Re: Action! Listing von Demon Birds gesucht...

von mp-one » So 14. Aug 2011, 12:58
eda70 hat geschrieben:Habe mir gerade mal den Quelltext angesehen, ist m.E. nicht wirklich schön und nutzt viele Vorteile von Action! nicht.
Code: Alles auswählen
Beispiel: memory=Peek(106)
:roll:


Es sieht ein bißchen "BASIC-like" aus, wobei man mal das Zeitverhalten und die Codegröße der PEEK- und POKE-Befehle gegenüber einer direkt auf eine Speicheradresse gelegten Variablen bzw. der Verwendung von CARD-Pointern messen müsste. Hatte ich auf der Fuji vor gehabt, hab es aber dann nicht mehr geschafft.

Re: Action! Listing von Demon Birds gesucht...

von FlorianD » So 14. Aug 2011, 18:38
Code: Alles auswählen
CARD RTCLK=19,I
BYTE A,B=710           
                       
PROC MAIN()           
 I=0                   
 RTCLK=0               
 DO                   
  A=PEEK(710)         
  I==+1               
  UNTIL I=50000       
 OD                   
 PRINTCE(RTCLK)       
                       
 I=0                   
 RTCLK=0               
 DO                   
  A=B                 
  I==+1               
  UNTIL I=50000       
 OD                   
 PRINTCE(RTCLK)       
RETURN


Ergebnis:
39424 zu
16896

mehr als doppelt so schnell.

Re: Action! Listing von Demon Birds gesucht...

von mp-one » Di 16. Aug 2011, 10:49
FlorianD hat geschrieben:Ergebnis:
39424 zu
16896
mehr als doppelt so schnell.


Das lohnt sich also! Zugleich ein gutes Beispiel für die Verwendung der ATARI-Uhr in Reg. 18,19,20. Danke!

Re: Action! Listing von Demon Birds gesucht...

von cas » Di 16. Aug 2011, 11:39
Poke() und Peek() sind Funktionsaufrufe, da wird sehr viel drumherum gemacht:

1) ACTION! - CPU Register mit Parameter vorgelegt
2) Unterroutine (JSR) aufgerufen
3) Speicherzugriff
4) Unterroutine verlassen (RTS)
5) Rückgabeparameter übergeben

bei einer auf eine Speicherstelle gelegten Variable:

1) Speicherzugriff

das macht einen grossen Unterschied.

-- Carsten