Ing. Büro Kalawsky/RW-Software Dokumentation ROMMAKER II

© 1985 by RW-Software
written by Kosta Kostis
V 1985-09-25 KK

1 Wozu ROMMAKER II?

Eine kleine Einführung in den C64-Autostart.

1.1 Das BASIC-Programm

BASIC-Programme beim C64 liegen in der Regel ab $0800 = 2048 im Speicher. Die Struktur einer Zeile ist wie folgt:

Als erstes beginnt eine BASIC-Zeile grundsätzlich mit einer 0.
Darauf folgt dann ein Zeiger zur nächsten Zeile (low, high), wobei die Adresse $0000 als nächste Zeilenadresse das Ende des BASIC Programmes kennzeichnet.

Dann kommt die BASIC-Zeilennummer 2 Byte (low, high) und erst jetzt beginnt das eigentliche Programm. BASIC-Befehle werden nicht in ihrer vollen Textlänge abgespeichert, sondern als so genannte Tokens. Tokens sind alle Werte über 127 innerhalb eines BASIC-Textes, die nicht innerhalb von Anführungszeichen stehen.

Ein Bespiel:

.: 0800 00 0C 08 0A 00 8F 20 52 '...... T'
.: 0808 45 52 54 00 00 00 00 00 'EST.....'

entspricht:

10 REM TEST

1.1 Der Modul-Autostart

Wie Sie höchstwahrscheinlich wissen, ist im C64 schon ein Programm fest eingebaut. Richtig, das BASIC! Dieses BASIC benötigt zur Funktion ein so genanntes Betriebssystem, das die Tastatur abfragt, die Uhr weite laufen lässt, den Cursor blinken lässt, das Speichern und Laden erledigt usw.

Eine Eigenart der 6502 und der 6510 ist es, dass der Prozessor nach einem RESET (oder Einschalten) einen Zeiger aus der Adresse $FFFC übernimmt und indirekt über diesen springt.

Ein Beispiel:

.: FFFC E2 FC

so lautet die RESET Adresse $FCE2 = 64738

Das Betriebssystem des C64 schaut nach diesem Sprung dann nach, ob in den Speicherzellen von $8004 bis $8008 folgende Werte stehen:

.: 8004 C3 C2 CD 38 30

Das entspricht dem Text "CBM80"

Stehen diese Bytes an der genannten Adresse, so wird der normale RESET Vorgang mit RAM-Test, Bildschirm initialisieren usw. gar nicht erst fortgesetzt, sondern über einen Zeiger bei $8000 indirekt gesprungen. Ab der Adresse, zu der der Zeiger hinzeigt, muss dann der RESET weitergeführt werden.

Bei jedem R-S-RESTORE (NMI) wird wie bei einem RESET zuerst nachgeschaut, ob nicht etwa die Erkennungsbytes ab $8004 stehen. Ist das der Fall, so springt das Betriebssystem indirekt über einen Zeiger ab $8002. Die volle Kontrolle eines Moduls ist damit gewährleistet.

Vorbedingung allerdings sind die Erkennungsbytes, um das Betriebssystem ein ROM-Modul erkennen zu lassen. Brennen Sie einfach so ein BASIC-Programm in ein EPROM, so fehlen Ihnen die Erkennungsbytes und eine Routine, die den RESET oder NMI des Betriebssystems fortführt.

Beim Einstecken eines ins EPROM gebrannten Moduls ohne Erkennungsbytes und der entsprechenden Routine erscheint die gewohnte Einschaltmeldung auf dem Schirm. Mit einem Unterschied: Es sind nur noch 30719 BASIC BYTES FREE.

Ihr BASIC-Programm aber startet nicht, und es wird es wohl auch nicht mehr.

1.2 Was macht also ROMMAKER II?

ROMMAKER II lädt Ihr BASIC-Programme in einen für ihn günstigen Speicherbereich und speichert Ihr Programm dann modulgerecht, also mit Erkennungsbytes und Routinen versehen auf Diskette ab.

ROMMAKER II hängt zusätzlich zu den angegebenen Namen den Text ".R" an, um die Unterscheidung zwischen Original BASIC-Programm und dem modulfähigen File zu erleichtern.

Das abgespeicherte File liegt vorerst im Bereich $8000 - ... (max. $9FFFF), die Startadresse kann jedoch verändert werden (siehe 5.0 Hilfsprogramme).

Nach dem Abspeichern des Files steigen Sie aus dem ROMMAKER II aus und laden Ihre EPROMER Software ein und stellen vor dem Laden den Speicherbereich auf $8000-$9FFF (das ist beim EPROMKING nicht notwendig, da die Originaladresse beim EPROMKING ignoriert und immer die vorgewählte Adresse verwendet wird).

Wird das EPROM gebrannt und in eine EPROM Halter-Platine (siehe 4.0 Querverweise zu anderen Produkten) gesteckt, meldet sind nach dem Einschalten Ihr BASIC-Programm zu Wort.

Soweit zur Theorie, nun zur Praxis:

2 Wie lade ich ROMMAKER II?

Schalten Sie Ihren C-64 ohne eingestecktes oder -geschaltetes Modul (z. B. RW-Helferlein) ein. Nehmen Sie die ROMMAKER II Diskette aus der Hülle und schieben Sie diese in den freien Diskettenschacht.
Geben Sie nun folgendes ein:

LOAD ":*",8 (RETURN)

und dann
RUN (RETURN)

Sie sehen nun den Kalawsky/KK Jingle und daraufhin die Distributor Adresse. Die Diskette läuft wieder an, also lassen Sie die ROMMAKER II Diskette ruhig noch im Laufwerk stecken.

Sobald das RW-ROMMAKER II Titelbild und Menü erscheint, können Sie die Programmdiskette aus dem Schacht entnehmen und in ihre Hülle zurückstecken.

3 Anwendungsbeschreibung

Sie sehen auf dem Bildschirm die Aufforderung "BITTE WAEHLEN SIE" unten auf dem Schirm blinken. Verwenden Sie nun die Funktionstasten F1, F3, F5 und F7.

F1: BASIC-Programm laden
F3: als Modul abspeichern
F5: Diskinhaltsverzeichnis zeigen
F7: Ausstieg aus dem ROMMAKER II

Die Eingabelänge bei einem Dateinamen beträgt für das Laden 16 Zeichen, für das Speichern 14 Zeichen, da ja wie schon zuvor erwähnt beim Speichern an den von Ihnen genannten Namen noch der Text ".R" angehängt wird.

Versuche mit R/S oder R/S-RESTORE aus dem Programm auszusteigen werden fehlschlagen, Sie müssen schon mit F7 aussteigen, wobei Sie nach F7 erst einmal angeben müssen, ob Sie sicher sind, dass Sie aussteigen wollen und sich nicht etwa vertan haben.

Wichtig: ROMMAKER II verkraftet nur Programme bis 7936 Bytes Länge (32 Blocks), falls sie das EPROM in einem normalen EPROM Halter (z. B. HELFERLEIN oder UNIKUM) verwenden wollen. Ist Ihr Programm länger als 7935 Bytes aber kürzer als 32512 Bytes, dann erfolgt die Meldung "Soft-... ERFORDERLICH!". Ein so erzeugtes EPROM muss auf einer Platine vom Type "SOFT-64" eingesetzt werden! Ist Ihr Programm noch länger als 32511 Bytes, so wird sich ROMMAKER II bei Ihnen beschweren und kein File erzeugen!

4 Querverweis auf andere Produkte

HELFERLEIN (8 KByte)

UNIKUM (8-16 KByte)

EPROMKING

ROMMAKER 64 (Diskette)

SOFT-64.2 (64 KByte)

ROMMAKER II (Diskette)

5 Hilfsprogramme

Auf der ROMMAKER II Programmdiskette befindet sich noch ein Hilfsprogramm namens CSA (Change Start Address), mit dem man die Startadresse eines Programms auf Diskette ändern kann.

Geladen wird dieses Hilfsprogramm durch:

LOAD "CSA",8 (RETURN)

und dann
RUN (RETURN)

Das Programm fragt jetzt nach dem FILENAMEN, den Sie nicht mit den üblichen Abkürzungen "?" und "*" eingeben können, sondern in voller Länge eingeben müssen. Das File wird gesucht und falls vorhanden die Startadresse hexadezimal angegeben. Die angegebene Startadresse kann jetzt einfach geändert werden und mit (RETURN) abgeschlossen werden.

Ist die eingegebene Startadressen nicht mit der Originalstartadresse identisch, so wird diese auf Diskette zurück geschrieben.

CSA kann Ihnen besonders in Verbindung mit EPROM Programmiergeräten anderer Hersteller nützliche Dienst leisten. Unser EPROMKING benötigt Hilfen wie CSA nicht.