Monatsarchive: September 2012

Multiplattform Programmierung

Als der C64 im Jahr 1982 auf den Markt kam, hatte er ein Problem nicht: fehlende Software. Zwei ganz wesentliche Eigenschaften waren dafür verantwortlich: zum einen das Commodore BASIC 2.0, das die sprachbarrierenfreie Übernahme der bereits für ältere Commodore-Rechner (PET 2001, CBM und VC20) geschriebene Programme ermöglichte und zum anderen der über POKE-Befehle direkt beschreibbare Bildschirm mit 25 Zeilen zu 40 Zeichen (dem Format von PET 2001 und CBM 3001/4001 Series). Nahm man von beidem die Schnittmenge, so ergab sich, dass alles was als BASIC-Programm auf einem CBM-Rechner mit 40-Zeichen-Bildschirm lief, mit wenig Aufwand auf einen C64 übertragbar war.

Zwar bot der C64 mit Farbe, Grafik und Sound viele zusätzliche Möglichkeiten und natürlich lagen der Bildschirmspeicher und auch die für BASIC wichtigen Zeropage-Adressen an anderen Stellen im RAM, aber insgesamt war die Umstellung vom CBM auf den C64 nicht problematischer als die vom PET 2001 auf CBM 3001 Series. [Die stellte für Commodore sicher auch keine große Herausvorderung dar, aber ich erinnere mich noch mit Grausen an meine Probleme, denn mir fehlte damals jede Dokumentation.]

Spielanleitung ‘FROSCH’ Szene ‘FROSCH’

Eines der bekanntesten Beipiele für ein umgestelltes Programm ist sicher „FROSCH“ (Original Titel: „Back to Nature„) von der deutschen 1541-Demodiskette [Inhalt und Download]. Wie man an der Spielanleitung noch erkennt, wurde das Spiel ursprünglich für einen CBM-Rechner mit 40-Zeichen-Bildschirm und separatem Ziffernblock geschrieben (Autor: Bob Carr; veröffentlicht im CURSOR Magazine). Außer ein bißchen Farbe hat die C64-Version auch noch ein paar Geräusche bekommen. Doch allein durch einfaches Ändern der in Zeile 0 definierten Bildschirmadresse kann man, mit einigen Abstrichen, das Programm jederzeit auf einem CBM-Rechner ausführen.

Die Portierung von CBM-Programmen auf die Nachfolgegeräte (C64 /C128) hat also eine lange Tradition. Auch von mir gibt es dazu einige vor langer Zeit programmierte Beipiele (Wumpus, Wator). Im Zuge einer 4k BASIC Compo im Forum64 hatte ich mich (im Jahr 2009) des Themas mal wieder angenommen, besaß ich doch noch ein paar simple auf einem CBM 4008 programmierte BASIC-Spielchen auf Diskette, die außer mir noch kein Mensch gespielt hatte. Was lag da also näher, als sich an fertigen Programmen zu bedienen, anstatt sich neue Ideen abzuquälen.

Ich entschied mich damals für die Portierung von „Distichon„. Da noch genügend Bytes verfügbar waren, konnte ich allerdings gleich Nägel mit Köpfen machen und baute das Programm als Multiplattform-Game auf. Neben dem C64 wurden so auch CBM-Rechner (2001, 3001/4001 Series), der CBM 510 (aka P 500) aus der CBM2-Serie und der Plus 4 (C16/C116) bedient. Die bei der Compo noch bestehenden Limitierungen wurden jetzt mit einer Aktualisierung behoben (so dass nun auch die CBM 8001 Serie unterstützt wird).

Ein weiteres BASIC-Spiel (Isola) mit vergleichbarem „Migrationshintergrund“, habe ich für die letztjährigen C128 4kGame Coding Compo erstellt. Vermutlich mangels Teilnehmer ist es aber irgendwie nie zu einer Veröffentlichung der eingereichten Beiträge gekommen. Auch „Isola“ wird zu einem Multiplattform-Game weiterentwickelt. Ähnliches ist auch für das Spiel Canyon-Bomber geplant, das ich für die Compo auf der Bunkerparty 2012 vom CBM 4008 auf C64 portiert hatte (wobei hier zusätzlich einige Assemblerroutinen umzustellen waren).

Langer Rede kurzer Sinn: Im Laufe der Zeit hat sich so einiges an Informationen angesammelt, die es verdienen, hier dokumentiert zu werden. Es soll beleuchtet werden, wie man die einzelnen Rechner identifiziert und welche Besonderheiten zu berücksichtigen sind, wie kompatibel BASIC 2.0 mit sich selber ist, wie zickig sich 40-Zeichen-Bildschirme verhalten können und welche Gemeinheiten sonst noch so lauern. Wenn man all das beachtet, ist es jedoch keine große Kunst mehr ein Programm so aufzusetzen, dass es auf allen 40-Zeichen-Rechnern lauffähig ist.

Teil 1: Identifizieren Sie sich! – Auf welchem Computer läuft mein Programm?
Teil 2: Zeropage, oh, Zeropage – Synopse wichtiger Adressen im RAM
Teil 3: Jedem seine Extrawurst – Das Individuum fordert sein Recht
Teil 4: Immer im Takt – Die CPU (und BASIC): mal schnell, mal langsam
Teil 5: Abwärtskompatibel (zu BASIC 2.0) – Es ist gleich, doch nicht dasselbe
Teil 6: Das vierzigste Zeichen – Wie Fortschritt zum Problem wird

PS: Tokra hat mich darauf aufmerksam gemacht, dass es für den VC 20 einen PET-Simulator mit einer 40-Zeichen-Anzeige gibt. Und natürlich kann auch der VDC im C128 in einen 40-Zeichen-Modus geschaltet werden. Trotzdem werden beide Modi von meinen Multiplatformprogrammen nicht unterstützt. Diese Sonderfälle zu erfassen, würde sicher ein oder zwei Kilobyte zusätzlichen Programmcode erfordern. Da ich die Programme aber so klein halten will, dass sie auch auf einem CBM-Rechner mit nur 8K RAM lauffähig sind, ist das nicht umsetzbar. Was nicht heißen soll, dass es im Einzelfall nicht doch eine Spezialversion für den VDC im C128 geben wird.

Veröffentlicht unter C128, C64, CBM, Soft | Ein Kommentar

Digital Talk #95

Heute lag mal wieder was nettes im Briefkasten! Zwar mit (einmonatiger) Verspätung, aber wen kümmert das? Hauptsache sie ist da, die neue Digital Talk (#95). Neben der Diskette (in schön bunter Diskettenhülle) gab es auch noch ein Faltblatt. Nach dem Ausstieg von DJ Sid leider ohne weiteren Inhalt.

Das lag heute im Briefkasten: Digital Talk #95

Wer noch keine DT hat, sollte sie ordern, denn der Download wird erst in zwei Wochen freigeschaltet.

Digital Talk Intro

Ich habe die Diskette mal kurz durchstöbert und bin dabei auch auf die Auswertung des „Topbeitrag“ Wettbewerbs aus der letzte DT gestoßen. Die Leser sollten dazu die ihrer Meinung nach besten Beiträge aus den letzten sechs Ausgaben nennen. Zu gewinnen gab es Boxen mit TLC 5. Zu meiner Freude durfte ich lesen, dass zumindest einem Leser mein Beitrag Bunkerparty 2011 am besten gefallen hatte. Danke, Danke, Danke!

Zudem habe ich noch erfahren müssen, dass ich den DT-Chat (und ein gut gegrilltes Steak) verpasst habe. Schicksal! Zum Ausgleich habe ich mich sofort auf eine Flohmarktanzeige gemeldet und kann so vielleicht mit etwas Glück mein Ersatzteillager aufstocken. Man sieht, die DT hat für jeden etwas zu bieten.

Veröffentlicht unter Mags | Schreib einen Kommentar

Retro-Herbst 2012

Der Herbst hat kaum begonnen, da beginnt wieder die Zeit der großen Retro-Treffen. Am kommenden Wochenende geht es schon los mit der

Classic Computing

Wie bereits hier und da erwähnt, findet die diesjährige Classic Computing des Vereins zum Erhalt klasischer Computer e.V am Samstag 29. und Sonntag 30. September in Lorsch statt. Weitere Infos gibt es auf der Hompage des VzEkC. Nur wenige Wochen später folgt die

HomeCon XIX

Am 3. November ab 10:00 Uhr gibt es in der Alten Schule in Hanau-Grossauheim wieder viel Spiel und Spaß mit Konsolen und Homecomputern. Die Anmeldung läuft wie immer über die Homecon-Homepage. Einen das Jahr krönenden Abschluß gibt es dann auf der

Hobby und Elektronik

Vom 22. – 25. November zeigen der VzEkC, die RETRO sowie CCL und RETURN im Stuttgarter MesseHerbst was es Altbewährtes und Neues gibt in der Commodore-Welt. Dass der C64 jetzt 30 Jahre auf dem Buckel hat, wird dabei sicher nicht unberücksichtigt bleiben.

Veröffentlicht unter Events | Schreib einen Kommentar

Lesepause

Zu meinem Bericht über die letzte Bunkerparty muss ich noch einen ersten kurzen Nachtrag schreiben: Bedingt durch den Stress bei der Erstellung meines Compobeitrags und der Lösung des Bunkerrätsels, hatte ich damals fast vergessen, dass ich ja noch einen kleinen Stapel LOAD-Magazine eingepackt hatte. Ich hätte allerdings besser einen großen Stapel gehabt, denn die paar Hefte gingen weg wie warme Semmeln. Offenbar war ich in eine bisher LOAD-freie Zone geraten.

Lesestunde auf der Bunkerparty
Erholungspause vom Partystress: LOAD lesen!

Veröffentlicht unter Events, Mags | Schreib einen Kommentar

Text-Decoration mit dem CBM 8296

Textformatierungen wie Fettschrift oder unter- bzw. durchgestrichener Text sind einem CBM-Rechner fremd. Alles was er kann ist „normal“ und „revers“. Der VDC des Commodore 128 bietet da von Haus aus schon mehr Möglichkeiten (blinken, unterstreichen) und mit ein paar Tricks läßt sich auch noch mehr rauskitzeln. Der moderne, web-orientierte Mensch kann sich derartige Beschränkungen heute allerdings kaum noch vorstellen (vergl. CCS-Eigenschaft text-decoration).

Doch man muss sich ja nicht mit allen Unzulänglichkeiten abfinden. Das dachte wohl auch for(;;) aus dem Forum64. Er schreibt dazu in seinem Beitrag text-decorations: „Eigentlich kann man auf den PETs nicht unterstreichen, nicht fett schreiben und auch nicht Text durchstreichen. Eigentlich.“ Und er liefert auch gleich den Fotobeweis, dass es doch geht:

Text-Decorations auf einem CBM-Rechner [Bildquelle: for(;;)]

Wie for(;;) weiter ausführt, besteht der Trick darin, bei jedem Interrupt die Bildschirmseite zu wechseln. Aus zwei abwechselnd dargestellten Seiten entsteht so für das Auge ein Mischbild. Im Forum64 liefert er auch gleich den dokumentierten Quelltext für diese Spielerei.

Wie bei Interlace zu erwarten, stört leider das damit verbundene, hier recht stark ausgeprägte Flimmern. Der Trick ist zudem auf den CBM 8296 beschränkt. Nur dieser Rechner kann zwischen zwei Bildschirmseiten (Standard ab $8000 und zusätzlich ab $8800) umschalten. Den anderen Exemplaren mangelt es an der Umschalttechnik bzw. am RAM.

Leider fehlte dem Forumsbeitrag die entsprechende Demo zur Erzeugung des Textes auf dem Foto. Ich habe mir deshalb mal die Mühe gemacht und das nachprogrammiert. Die Assemblerroutine habe ich dann noch um eine Kopierroutine für den Bildschirminhalt erweitert. Wer keinen echten 8296 zum Testen hat, kann das Demoprogramm in VICE ausprobieren. Die gezippten PRG-Dateien sind von jedem (virtuellen) Laufwerk lauffähig.

Veröffentlicht unter CBM | Ein Kommentar

VDC Mode Mania (Grafikmode Demo)

Am zweiten September, also gestern, hat tokra (Akronyme Analogiker) sein Partyrelease „VDC Mode Mania“ von der Connected 9 online gestellt. Es handelt sich um eine Slideshow für diverse anspruchsvolle Videomodes des C128 (mit 64K VDC).

Terminator (Grafik aus VDC Mode Mania)

Gezeigt werden mit einem speziellen Tool konvertierte Bilder in folgenden exotischen Auflösungen:

– 640×480 interlace 8×2 color resolution
– 640×576 interlace 8×3 color resolution
– 480×252 non-interlace 8×1 color resolution
– 640×400 non-interlace 8×2 color resolution
– 720×700 interlace monochrome

Da der VDC von den existierenden C128-Emulatoren nur ungenügend unterstützt wird, kann man die Grafiken nur auf einem echten C128 mit entsprechendem RGB-Monitor fehlerfrei anzeigen lassen. Die Files der Demo liegen verteilt auf acht D64-Disketten vor. Das komplette Set mit Diskettenimages, Infos und Konvertiertools findet man zum Download in der CSDB oder auf POUET.

Bad News for IBM und Apple (Grafik aus VDC Mode Mania)Parrot (Grafik aus VDC Mode Mania)Blue Girl (Grafik aus VDC Mode Mania)Ironman (Grafik aus VDC Mode Mania)

Nach einer kleinen Kopierorgie habe ich alle Dateien der Demo in ein Native-Verzeichnis meiner RAMLink übertragen. Dabei galt es noch ein kleines Problem mit dem File „settings.vdc“ zu lösen (eine D2M-Version der Demo wäre daher sehr nützlich). Von der RAMLink aus, konnte man dann die Bilder in ordentlicher Geschwindigkeit durchblättern. [Trotz eines 1901-Monitors waren die Bilder im Menüpunkt 4 bei mir nicht stabil anzeigbar. Aber mein 1901 hat eine leichte Macke und ist daher nicht als Referenzgerät anzusehen.] Schon erstaunlich, was der VDC so alles auf den Schirm bringen kann!

Nachtrag (04.09.2012):
Vier weitere Bildschirmfotos wurden oben eingefügt und demonstrieren die VDC-Grafikfähigkeiten.

Nachtrag (01.10.2012):
In den Kommentaren finden sich Infos zu einer weiteren VDC-Grafik-Sammlung.

Veröffentlicht unter C128, Graphic, Soft | 6 Kommentare