ndr-nkc.de ndr-nbc.de
  
Startseite
News
 
NDR-NKC
Geräte Z80
Geräte 68000
Geräte 8088
 
NKC Emulator
 
Z80 Section
Baugruppen
ROM's
Software
68000 Section
Baugruppen
ROM's
PASCAL/S
Software
8088 Section
Baugruppen
Downloads
 
Bussysteme
Stromversorgung
Input / Output
Grafikkarten
Speicherkarten
Massenspeicher
Weitere Baugruppen
 
Projekte
 
Dokumentation
Datenblätter
Glossar
Portraits
Links

Impressum

 

Update 3.1 des Grundprogramms für Z80

Nach einem Hinweis von Marcel ist es mit dem neuen Grundprogramm 3.0 nicht möglich gewesen, das Assembler-ROM EZASS ablaufen zu lassen. Das liegt daran, dass der Assembler / Disassembler einige Unterprogramme hauptsächlich zur Symbolverwaltung direkt aus dem Grundprogramm aufruft.

Sprungvektoren

Der Assembler benutzt die in der Tabelle aufgeführten Routinen aus dem Grundprogramm. Damit sich die Adressen bei zukünftigen Änderungen des GP nicht verschieben, habe ich am Anfang des GP unmittelbar nach dem NMI Vektor einige Sprünge eingebaut, die von dort auf die effektiven Adressen der Routinen verweisen.

Routine Funktion GP Adr Aufrufe Vektor
LENGTH Ermittlung der Länge eines Befehls $0D2A $61C2 $0069
GETSYM Symbol holen $0AD0 $7199, $71A9 $006C
PUTSYM Symbol speichern $0BEE $728B, $72A2 $006F
LOESYM Symbol löschen $0B70 $7267, 7285 $0072
SUCHADR Adresse eines Symbols suchen $0BB6 $7436, $7441 $0075
PROGSTART Programm ab Adresse starten $1B86 $7E93 $0078
STEPSTART Einzelschritt ausführen $1A3F $7EA4 $007B

Änderung des Assembler-ROM

Das Assembler ROM muss zur Verwendung mit dem neuen GP an diesen Stellen gepatcht werden. Weiter unten ist der Download des gepatchten ROM für den Einsatz auf Adresse $6000 möglich.

Erweiterung des Menüs

Im Zuge der Änderungen habe ich eine Erweiterung des einseitigen Menüs vorgesehen. Jetzt ist es möglich, die ROM’s GOSI, BASIC und EZASS direkt aus dem Menü zu starten. Diese Menüpunkte können im Quelltext über Compiler-Schalter aktiviert oder deaktiviert werden.

ROM Taste Adresse Funktion Download
EGRUND31 $0000 Grundprogramm (deutsch, USB, FLOMON Start, GOSI, BASIC, EZASS) folgt
EGOSI G $2000 Grafisch Orientierte Sprache I folgt
EBASIC B $4000 BASIC Interpreter folgt
EZASS31 A $6000 Assembler, Disassembler folgt

Die Zusammenstellung der folgenden ROM's habe ich in meinem Z80 Testsystem bestehend aus CPUZ80, ROA64, GDP64K und KEY ausprobiert, bisher sind keine Fehler aufgetreten. Den Einsatz in Verbindung mit FLOMON habe ich in dieser Version bisher nicht probiert.

Start von GOSI

Nachdem der Menüpunkt GOSI aufgerufen wurde, wird ein Sprung an die Adresse $2000 ausgeführt. Es erscheint sofort die Startmeldung von GOSI. Zum Beenden von GOSI kann man einfach CALL 0 eingeben, das hat die gleiche Auswirkung wie ein Druck auf den RESET-Button an der CPU Baugruppe.

Start von BASIC

Nachdem der Menüpunkt BASIC aufgerufen wurde, erfolgt ein Sprung an die Adresse $4000. Zunächst erscheint nur ein ? auf dem Bildschirm, erst wenn ein großes C auf der Tastatur gedrückt wurde, erscheint die Einschaltmeldung von BASIC. Auch hier kann zum Verlassen des Interpreters einfach CALL 0 eingegeben werden.

Start des Debuggers

Nachdem der Menüpunkt EZASS aufgerufen wurde, wird ein Sprung an die Adresse $6000 ausgeführt. Es erscheint das Menü des Debuggers. Aus dem Menü des Debuggers kann man direkt über einen Menüpunkt in das Grundprogramm zurück springen.

Verschiedene Versionen des GP

Bei allen ROM’s sind die Einstellungen der Compiler-Optionen auf den letzten 64 Bytes im ROM klarschriftlich hinterlegt so dass sie mit einem passenden HEX-Editor eingesehen werden können.

Downloads

Quelltext Grundprogramm mit USB Unterstützung
Der Quelltext ist zur direkten Verwendung mit dem tabellengesteuerten Crossassembler TASM formatiert.
Die Include-Datei dient zum einfachen Einbinden von eigenem Testcode.
Download SOURCE
Binärdateien Das Archiv enthält verschiedene Versionen des ROM's
- Basisadresse 2000h in deutsch und englisch (zur Verwendung in Verbindung mit FLOMON)
- Basisadresse 0000h in deutsch und englisch (zur Verwendung auf ROA64)
Andere Versionen können mit Hilfe des Quelltextes und des Assemblers selbst übersetzt werden.
Download ROMS
EZASS Gepatchte Version des EZASS ROM
Eine speziell für den Einsatz mit dem hier beschriebenen Grundprogramm gepaschte Version des Assembler / Disassemblers. Alle direkten Aufrufe von Unterprogrammen des GP sind auf die neuen Sprungvektoren am Anfang des Grundprogramms umgelenkt.
Download SOURCE
TASM Das Archiv enthält den Table Driven Assembler
Betrieb des Assemblers erfolgt unter DOS oder in einer Eingabeaufforderung. Im Archiv ist eine Anleitung vorhanden.
Zum Übersetzen von Quellcodes werden am besten entsprechende Batch-Dateien angelegt.
Download TASM

Belegung des ROM

Nach den Änderungen und Erweiterungen ist das ROM des Grundprogramms je nach Einstellung der Optionen bis auf das letzte Byte voll belegt, es sind am Ende nur noch 64 Bytes übrig, die ich für die klarschriftliche Darstellung der beim kompilieren gewählten Optionen verwende. Durch Änderungen bei den Compiler-Schaltern am Beginn des Quelltextes kann zusätzlicher Platz für eigene Erweiterungen geschaffen werden.
  • 64 Bytes durch Verzicht auf die Darstellung der Optionen
  • 74 Bytes Einsparung ohne neue Menüpunkte (GOSI, BASIC, EZASS)
  • 101 Bytes Einsparung durch Verzicht auf die AutoFlip Funktion
  • 27 Bytes Einsparung durch Verzicht auf Floppy Boot bzw. FLOMON Start
  • 397 Bytes durch Verwendung von CAS anstelle von USB
  • 40 bis 80 Bytes durch Verwendung der englischen Sprache (optionsabhängig)
  • Ich bitte hiermit ausdrücklich um Benachrichtigung, falls jemand einen weiteren Fehler finden sollte.