Die Sprache sollte schon so Einsteiger-freundlich wie Basic sein, ähnlich nützlich sein, nach dem Einschalten incl. Editor da sein, keine externen Geräte brauchen und in 8KB (oder von mir aus auch 12 oder 16KB) passen. Halt, für was man Anfang der 80er Geld bezahlt hätte.
Ganz genau!
Ohne solche vernünftig gesetzten Restriktionen weichen die "Kollegen" nämlich gerne ins Aasen mit Speicher, x86-Rechenpower, Cross-Entwicklung aus ... also dahin wo die Aufgabe bequem und unspannend wird.
"Wir haben zuwenig Speicher ? - Zack, ein Modul in den Ex-Port!"
"Der Prozessor lahmt? - Ach entwickeln wir einfach auf einem anderen Rechner... und laden es rüber"
Dies sind gemessen an der olympischen Idee dieses Threads "Dopingversuche"
man muss wachsam sein gegenüber solchen Tendenzen die nicht authentisch im Sinne dieses Threads sind .. .der Olympische Gedanke sollte gewahrt bleiben
Speicherbereiche mit irgendwas füllen muss es eh schon im ROM geben, um Arrays zu initialisieren.
Adressen der Screenzeilen werden im Rahmen des Reset auch initialisiert, ich meine, bereits dort nach berechneter Anfangsadresse.
CLR könnte so schnell und kurz sein..
Da liegt der Hase im Pfeffer: für eine universellere Füllroutine gäbe es auch im Basic selbst vielfältige Verwendung... wenn man da einiges zusammenlegen kann, würde viell. einiges gespart an Bytes..
Zum 'Rennen' wird man es aber trotz alledem wohl leider eh nicht bekommen. Aber diese Fill-/Lösch-Funktion wäre eine schöne Sache gewesen, um in BASIC den Bitmap-Mode überhaupt halbwegs brauch-/nutzbar zu machen, ohne eine gähnend lange dauernde Lösch-Orgie vorweg.
Die verkorkste Bildschirm-Lösch-Funktion kommt von dem überstürzten Versuch, mit dem VC-20 eine "abstraktere" Bildschirmlogik zu erschaffen.
Beim Vorgänger PET nämlich erinnere ich mich dunkel, dass CLEAR SCREEN dort in etwa so aussah:
(alles in hex., Bildspeicher ab $8000 angenommen)
LDX#00
LDA#20
loop:
STA 8000, X
STA 8100, X
STA 8200, X
STA 8300, X
DEX
BNE loop
RTS
(Edit: kann sein, dass der 4. Block nur 24 bytes weniger gefüllt hat, insoweit verkürzte Darstellung)
Nix "Zeilenadressen mühsam berechnen", Farbram sowieso nicht, ABsolut-X-Indexierung statt Zeropage-Zeiger; Schleifenvariable Dekrementieren 1x je 4 Speicherbefehle ... also minimaler Overhead und maximal auf Geschwindigkeit getrimmt!
Garbage Collect : wäre toll , wenn man die Lösung von BASIC 4 aufs wesentliche eingedampft hier in den 9 KB mit unterbrächte.
macht wieder nur 2 Bytes Mehraufwand (s.o.) - pro String