Hallo Besucher, der Thread wurde 7,3k mal aufgerufen und enthält 32 Antworten

letzter Beitrag von Mike am

VC20: Programmierung

  • Ich würde da den Reiz sehen mit weniger einfach auszukommen. Also Standardkonfiguration. Ausserdem könnte man Routinen / Grafiken / Text von Disk nachladen. Muss ja nicht zwingend alles auf einmal im Speicher sein.

    Der Videochip wartet aber nicht, bis die nachgeladenen Daten im Speicher stehen. Solange die nicht da sind, siehst Du nicht das, was Du haben willst. Und nochmal: der Videochip kann nur auf das interne RAM ($0000..$03FF und $1000..$1FFF) und das Character-ROM zugreifen. Externe Erweiterungen sind für den Videochip nicht sichtbar.


    Wenn Du also jetzt z.B. auf einem nicht erweiterten VC-20 eine 160x192 Bitmap darstellen möchtest, hast Du folgendes Szenario: es werden dazu doppelt-hohe Zeichen verwendet, mit 8x16 Pixeln. Die werden in einem Textbildschirm mit 20x12 Zeichen angeordnet. Der braucht dann 240 Bytes. Die Character-Daten, die also jetzt als Bitmap angesprochen werden, brauchen das 16-fache davon, also 3840 Bytes. 3840+240 = 4080 ... das geht also mit "nur" 16 Bytes Verschnitt gerade so in den Bereich $1000..$1FFF rein und der ist damit *voll*.


    Jetzt bring' mal ein anspruchsvolles Programm zur Bearbeitung der Bitmap in den verbleibenden Speicher von $0000..$03FF rein. Viel Spaß.


    Und ja, ich hab' das schon gemacht, um so *vor* dem Einladen eines Spiels noch ein nettes Titelbild anzuzeigen. Das kann dann aber leider nicht stehenbleiben, während das Spiel geladen wird. Will man also hochauflösende (Bitmap-)Grafik auf dem VC-20 haben *und* auch ein nicht-triviales Programm im Speicher halten, welches die Grafik bearbeitet, kommt man nur mit Speichererweiterung auf einen grünen Zweig.

  • Nicht schlimm, dann wird das Titelbild halt vor dem Laden ideenreich ausgeblendet und irgendetwas anderes innovatives gezeigt während des Ladens.


    Das hat jetzt nichts direkt mit Dir zu tun (also kein Angriff oder persönliche Kritik):


    Es ist leider heutzutage (und das schon seit sehr langer Zeit) sehr verbreitet, eigene Unfähigkeit durch Hardwareaufstockung zu kompensieren.


    Daher käme für mich, alleine schon des Reizes wegen, nur die Originalkongiguration in Frage. Erst recht, wenn jeder zweite behauptet es ginge nicht.


    Aber jeder wie er mag.

  • Es ist leider heutzutage (und das schon seit sehr langer Zeit) sehr verbreitet, eigene Unfähigkeit durch Hardwareaufstockung zu kompensieren.

    Ich hab' das, speziell auf den Einsatz von Speichererweiterungen am VC-20 bezogen, schon von mehr Leuten gehört als ich noch irgendwie abzählen könnte, und meistens von solchen, die sich mit den Restriktionen der VC-20-Hardware nicht so wirklich gut auskennen.


    Daher käme für mich, alleine schon des Reizes wegen, nur die Originalkongiguration in Frage. Erst recht, wenn jeder zweite behauptet es ginge nicht.

    Ich gebe dir eine ganz einfache Möglichkeit, den Wahrheitsgehalt meiner Aussage zu überprüfen:


    Im Anhang befindet sich eine Spielesammlung für den nicht-erweiterten VC-20. Da sind hauptsächlich Type-Ins und auch ein paar selbstgeschriebene Programme mit dabei. Insofern soll das darlegen, daß ich mich mit dieser Programmklasse auf dem VC-20 schon recht ausgiebig beschäftigt habe und genau weiß, was geht, und was nicht geht.


    Unterhalb der Trennlinie mit "+24K REQ'D" kannst Du dann das Programm "READ ME" laden und starten und das zeigt dir dann eben einen READ-ME-Text mit ein paar Hintergrundinformationen zu der gesamten Sammlung (also, wie sie zustandegekommen ist) und auch noch eine Kurzanleitung zu allen 21 Spielen - nicht alle von denen haben eine Anleitung dabei, und die Bedienung nutzt bei fast jedem Spiel andere Tasten bzw. den Joystick. Auf diese Weise ist die Sammlung netterweise selbst-dokumentierend.


    Wie der Sektionstrenner schon andeutet, braucht das READ ME eine RAM-Erweiterung mit +24K. Meine Herausforderung an dich: bau das READ ME so um, daß es auf einem nicht-erweiterten VC-20 läuft. Und zwar genauso, wie Du es hier funktionstüchtig siehst, mit 40 Zeichen/Zeile und schnellem Scrolling. Wie ich schon sagte, viel Spaß. :D

  • 3.5 kB und ein Textadventure? Wie oft soll da denn nachgeladen werden? Ich wage mal darauf hinzuweisen, dass Dein hier zitierter Post alleine über ein halbes Kilobyte groß ist ^^ .

  • Es ist leider heutzutage (und das schon seit sehr langer Zeit) sehr verbreitet, eigene Unfähigkeit durch Hardwareaufstockung zu kompensieren.


    Daher käme für mich, alleine schon des Reizes wegen, nur die Originalkongiguration in Frage. Erst recht, wenn jeder zweite behauptet es ginge nicht.

    Der VC20 ist doch wohl ganz eindeutig als Cartridge-Maschine konzipiert. Mit sicher ist keiner der Entwickler davon ausgegangen, dass man in den 3,5 K RAM jemand sinnvolle Programme + Daten unterbringt.
    Was für einen Sinn macht es, da jetzt irgendwelche Programme zu entwickeln, für die die Hardware nie ausgelegt war?


    Mit "heutzutage" hat das nichts zu tun. Das funktionierte auch vor 38 Jahren nicht

  • Der VC20 war damals der erste Einsteiger-Rechner, den Commodore gebaut hat.
    Vorher gab es ja nur die "großen" Geräte aus der PET/CBM-Serie. Wenn man vom KIM mal absieht ;)


    Mit dem VC20 sollten 1981 hauptsächlich Leute angesprochen werden, die vorher noch gar keinen Computer hatten:
    Einsteiger, Spieler, Jugendliche und Käufer mit schmalem Budget.


    Zum ersten Ausprobieren der Basic-Befehle haben die 3,5 KB RAM ausgereicht, auch für kleinere Programme.
    Manche waren ja schon glücklich, wenn sie ein paar Print- und Input-Befehle in Basic programmieren konnten.


    Wer mehr wollte, musste sich eine Speichererweiterung kaufen oder einen "größeren" Rechner.
    Das gehörte zum Konzept.

  • Zum ersten Ausprobieren der Basic-Befehle haben die 3,5 KB RAM ausgereicht, auch für kleinere Programme.
    Manche waren ja schon glücklich, wenn sie ein paar Print- und Input-Befehle in Basic programmieren konnten.

    Ich hatte davor einen ZX-81 mit 1 KByte RAM. Was glaubst du wie man sich dann fühlt, wenn man einen VC-20 mit 3,5 KByte hatte? .... Da kam an sich wie Vollprofi. Zumindest im ersten Moment neigte man der fälschlicherweise einem gewissen Bill G. untergeschobenen Aussage zu verfallen: "3,5 K ought to be enough for everybody" :D

  • Ich habe gerade in einem meiner beiden VC20 die CPU gesockelt. Da soll jetzt das RAM/ROM-Board von x1541 rein.


    Ich habe mit dem VC20 eigentlich noch nichts gemacht. Als der rauskam hatte ich mal einen zum Testen, für ein paar Wochen. Aber da wusste ich auch schon nicht, was ich mit 3,5K RAM anfangen sollte. Mein PET hatte damals schon 40K RAM.


    Also bevor ich mit dem VC20 jetzt irgendwas mache, braucht der erst mal viel RAM! :D


  • Jetzt scheint es doch irgendwie zu funktionieren.


    Ich habe eine Basic+Kernal Version in jede der 4 Bänke geschrieben, jeweils mit einer anderen Start-Meldung, um die aktive Bank erkennen zu können.
    Das funktioniert jetzt einwandfrei. Die aktive Bank stimmt mit der Dip-Switch-Stellung überein.
    Keine Ahnung, warum das vorher nicht ging, als ich Basic+Kernal nur in Bank 0 stehen hatte.


    Aber der Option-ROM-Bereich verhält sich immer noch komisch.

  • Aber da wusste ich auch schon nicht, was ich mit 3,5K RAM anfangen sollte.

    Im Grundausbau ist das ein Abspielgerät für Videospiel-Module. Um damit größere Dinge zu programmieren als 'Hallo Welt' gabs die Erweiterungsmodule samt Modulbox (oder eher selten intern verbaute Erweiterungen)

    Mein PET hatte damals schon 40K RAM.

    Der war aber auch locker mal eine Größenordnung teurer, vor allem auf 1980 bezogen.

  • Der war aber auch locker mal eine Größenordnung teurer, vor allem auf 1980 bezogen.

    2000 DM kostete der CBM3032 Mitte 1981. Zu der zeit habe ich nämlich meinen bei Vobis gekauft.


    Laut C64-Wiki kostete der VC20 knapp unter 1000 DM und da war kein Bildschirm dabei.
    Also Größenordnungen sind das nicht.


    Aber ich denke, man kann die sowieso nicht vergleichen.


    Jedenfalls hat mein VC20 jetzt 28K RAM und mein heiß und innig geliebtes Exbasic Level II als internes Option-ROM (den ROM-Speicher bringt das ROM/RAM-Board mit).