Assembler Bibliothek

Diese Bibliothek deckt die wichtigsten Bedürfnisse für Assembler-Programmierung mit dem Kaypro II ab. Sie besteht aus zwei Hauptmodulen, einem Hardware-spezifischen (LIBH) und einem allgemeinen (LIBG), das auch auf anderen Systemen laufen sollte.
 
Das LIBH Modul enthält Funktionen für die schnelle Abfrage des Tastaturstatus direkt über Portzugriffe, die Z80 SIO, polling- und interrupt Modi mit wahlweiser Unterstützung von RTS/CTS und/oder DTR/DSR Handshake in beiden Modi), die Z80 PIO, alle Betriebsarten, es ist jedoch nur Port-A als Ausgang verfügbar, Port B und die Handshakeleitungen sind nur über internen Lötstützpunkte erreichbar. Ebenfalls einen Treiber für Paralleldrucker, jedoch ohne Interrupt-Möglichkeit. Zusätzlich sind hier alle Video-Steuersequenzen und andere gerätespezifischen Parameter definiert.
 
Das LIBG Modul enthält Funktionen für Konsolen Ein- und Ausgabe, formatierte Eingabe, Cursor-Positionierung, verschiedene Konvertier- und Stringfunktionen, Diskdateien lesen und schreiben, ein Menuprogramm, BDOS Aufrufe mit gesicherten Registern, BIOS Calls. 

Beide Module enthalten eine Definitionsdatei, worin angegeben wird, welche Module für die Applikation benötigt werden. Die Bibliothek muss einmal pro Applikation mit den angepassten Definitionsdateien assembliert werden, damit nur die benötigten Module eingebunden werden. Schöner wäre inkrementelles Linken, dies wird aber von M80/L80 nicht unterstützt. Die Applikation selbst wird dann mit den daraus resultierenden Objektdateien gelinkt.
Bemerkungen zum Interrupt-Betrieb

Das System verwendet Bank-Switching, der Interruptcode und die Vektortabelle müssen in einem von allen Banks sichtbaren Speicherbereich liegen. Dieser beginnt bei 8000H. Das BDOS beginnt bei EE00H, der CCP 2k darunter. Ohne Ueberscheiben des CCP (die Applikation kann mit einem RET, ohne Warmstart, beendet werden) bleiben noch 19k, 22k mit Ueberschreiben des CCP und Beenden mit Warmstart für Vektortabelle und Interruptcode übrig.
Wird der Seriell-Adapter mit einem Windows System verbunden, muss darauf geachtet werden, dass im RX Buffer genügend Platz oberhalb der Handshake-Ausschaltschwelle vorhanden ist. Windows sendet noch etliche Zeichen nach Deaktivieren des Handshake. Dies ist vermutlich system- und/oder treiberbedingt. Getestet mit Hardware-UART 16550 unter Win-XP.
BIOS Aufrufe sollten generell mit ausgeschalteten Interrupts erfolgen, es geschehen Calls, noch bevor der Stackpointer ins HiMem verlagert wurde. Crashs sind die Folge (ausser der Stack der Applikation liegt ebenfalls im non-banked Bereich).
Library Source Code

Der Sourcecode der Library. -LIBASM-.PRJ enthält eine Kurzanleitung zum Erstellen einer Applikation, die die Library verwendet.

Folgt...
Testprogramme für die Library. Für jede Kategorie (Konsolen Ein- und Ausgabe, Disk-I/O, SIO, Printer) ist eine eigenes Programm enthalten.
Disketten Images

Die Downloads enthalten SamDisk Images (.DSK) mit integriertem ZCPR (ausser anders angegeben). Dienstprogramme, die auf allen Disketten vorhanden sind, haben das $SYS Attribut, sind mit DIR nicht sichtbar. Das ZCPR Kommando DIR * S listet diese Dateien. Zudem sind alle Dateien einzeln im Download enthalten. Disketten-Icons mit Etikette zeigen beim Klicken das Inhaltsverzeichnis mit Beschreibung, erstellt mit DIRF.COM (auf allen Programmdisketten vorhanden).
Systemdiskette mit den meistgebrauchten Dienstprogrammen

Original Kaypro Systemdiskette, ohne ZCPR

ZCPR-D&J V1.4 CCP Ersatz. Enthält Source und Dokumentation. Details dazu auf der ITT-3030 Seite.

Assembler, Linker. Enthält auch DevPac80 Assembler und -Editor, zudem T80/DDTZ/ZSID Debugger und verschiedene Hilfsprogramme zur Programmierung in Assembler.

DevPac80 von HiSoft, IDE mit Editor, Assembler und Degugger. Ebenfalls enthalten der Programmier-Editor ED80. Die Install-Disk enthält die Installationsprogramme für IDE, Editor und Debugger.

XASM65, 6502/C02 Cross-Assembler, erzeugt nebst HEX auch Objektdateien für den KIM-1

Turbo-Pascal V3.00A, inklusive Installer und Dienstprogrammen

MBASIC-80 inclusive BASCOM Compiler, Linker, Laufzeitmodulen und HELP Dateien