Anlass ist dieser Vergleich:
Leute, das muss doch auch kürzer gehen, oder? Und vielleicht auch schneller als der Specci?
Hier als Referenz die Doku des Circle-Befehls wie er in Spectrum-Basic implementiert ist:
- https://zxbasic.readthedocs.io/en/docs/circle/
Oben in CBM-BASIC das ist ja ein ziemlicher Spaghetti-Code, man beachte z.B. Zeile 15 und dann 90.
Wer bekommt es kürzer und evtl. sogar schneller hin, als der Circle-Befehl des Spectrum-Basic. Und zwar nicht nur mit Hilfe von ExBasic-Level-II, Simon's-Basic oder einer anderen Erweiterung, sondern insbesondere mit dem originalen CBM BASIC V2.0 im ROM und in Assembler.
4 Kategorien:
1. In CBM BASIC 2.0
2. Simon's BASIC - das dürfte einfach ein 1-2-Zeiler sein: https://www.c64-wiki.de/wiki/CIRCLE
3. ExBasic Level II - das kennt scheinbar keine passenden Grafikbefehle, wird einem also wahrscheinlich keinen Vorteil verschaffen
4. Assembler mit Aufruf per SYS aus BASIC
Die eigentliche Routine, welche den Kreis zeichnet, soll die gleichen Parameter <x>, <y> und <radius> bekommen, welche auch der Circle-Befehl auf dem Specci hat. Die jeweilige Laufzeit des Programms wäre auch interessant. Wer einen Specci hat, kann hier mal die Referenzzeit für den Circle-Befehl vorgeben, die zumindestens für Variante 2, und 4 zu schlagen wäre, der Circle-Befehl läuft ja dort sicher auch in Z80-Assembler.
Randbedingung: Die Zeitmessung muss auf Originalhardware ohne Hardware-Beschleunigung (Super-CPU, Turbo-Chameleon, c't 65sc816 Karte, etc.) oder Vice in Standardkonfig erfolgen, sonst wärs ja unfair.
Ich bin gespannt!