Entwicklungs-Umgebung

PsPad Progammier Editor mit Dateiauswahl
PsPad Progammier Editor Favoriten und Scriptmenu
PsPad eignet sich hervorragend zur Entwicklung von Programmen für den MPF. Zusammen mit dem ASL-Assembler und TeraTerm, welches für die Kommunikation zuständig ist, entsteht eine sehr komfortable Entwicklungsumgebung für Assembler- und Basicprogramme, die sogar noch unter Windows-XP funktioniert. PsPad ist so konfiguriert, dass abhängig vom aktiven Dateityp die verfügbaren Funktionen im Extern-Tool Menu erscheinen. Die folgenden Dateitypen werden dabei unterstützt:
.AZ8 (ASL Assembler Source)
Konvertieren der vom ASL erzeugten Objektdatei in Binärformat und senden  zum MPF
.BAS
Konvertieren von und zu Basic-Sourcen für das MPF-TinyBasic und senden oder empfangen. Die Makrosprache von TeraTerm übernimmt dabei die Tokenisierung.

Für senden und empfangen ist auf der MPF-1 Seite das Programm RS erforderlich, siehe weiter unten.

Die in PsPad verfügbaren Scripting Funktionen initialisieren beim Starten das Windows Kontextmenu zum Senden/Empfangen und stellen verschiedene Funktionen, die über das Scriptmenu aufrufbar sind, zur Verfügung.
Assembler-Bibliothek

Library Definitionen
Interrupt-Zähler des Interrupt-Test Programms
Die Bibliothek enthält Treiberprogramme und Interrupthandler für die CTC und PIO sowie einige Hilfsroutinen, die das Programmieren in Assembler ein wenig erleichtern. Die Bibliothek kann entweder im oberen Teil des Monitor-EPROMS ab Adresse 0800 (anstelle des Tiny-Basic beim MPF-1B) oder im freien Steckplatz U7 untergebracht werden. Die Definitionsdatei muss von einem Programm, das die Bibliothek verwendet, INCLUDEd werden.
Zum Testen der Bibliotheks-Interrupt-Funktionen ein kleines Programm, das CTC- und PIO Interrupts verwendet, diese zählt und anzeigt.

Dienstprogramme

Rom Menu, Position RS
ROM Menu Utility im RAM des EPB-MPF
ROM-Menu
Dient dem erleichterten Aufruf von Programmen in ROMs, ohne sich die Startadressen merken zu müssen. Es ist für verschiedene Konfigurationen assemblierbar (MPF-1, MPF1-B oder EPB RAM). Alle Konfigurationen haben vier Menupunkte gemeinsam:
'0' springt nach 2000H, dort ist das ROM-Menu in U7 des MPF, sinnvoll nur aus Menus im EPB-RAM.
'7' schaltet den Tasten-Beep ein oder aus, verbleibt im Menu.
'8' löst einen Reset der PIO aus, im Fall eines Absturzes oder Resets in einer Interrupt-Routine. Beended mit HALT, die Tasten MONI-GO führen zurück ins Menu
'9' falls der EPB-MPF Programmer angeschlossen ist, wird ein 2732 EPROM in dessen ZIF-Sockel ins EPB-RAM an 8000H kopiert. Beendet mit HALT, nach MONI-GO  erfolgt ein Sprung nach 8000H.

RS232 Verbindungskabel
Die Schaltung im DSUB-Stecker
Der serielle Anschluss an die PIO
Der serielle Anschluss am ZIF-Sockel des Programmers
RS Menu, checksum receive, system 8255
RS Menu, normal receive, Programmer 8255
RS Menu, transmit, PIO
RS(232)
Empfangen und Senden von Speicherbereichen. Da der MPF über keine UART verfügt, übernimmt der Prozessor das Bit-Timing. Die Uebertragung erfolgt entweder über die 8255 des Eprom Programmers, die PIO oder EAR/SPK des MPF. Das Programm sucht beim Start nach dem Anschluss in dieser Reihenfolge. Mit der STEP Taste kann, während das Menu angezeigt ist, eine neue Suche des Interface veranlasst werden. Damit dies möglich ist, muss zwischen TX und RX eine Diode vorhanden sein. Zusätzlich eine Schutzschaltung um negative und zu hohe positive Spannungen zu verhindern. Die Uebertragungsrate ist auf 1200 Baud fixiert, bedingt durch die Verabeitungszeit für Bit-Banging, Verifizierung sowie Adress- und Checksummenprüfung. Das Ueberscheiben des Systembereichs wird verhindert.
Betriebsmodi
- Empfangen mit Checksumme, dabei sendet der PC die Speicheradresse in den ersten zwei Bytes.
- Empfangen ohne Checksumme, die Speicheradresse muss eingegeben werden.
- Senden, Start- und Endadresse müssen eingegben werden. Als letztes Byte folgt die Checksumme.
Die Auswahl erfolgt beim Programmstart mit '1', '2' oder '3' oder durch Auswahl mit '+' oder '-' und GO ausser das Programm wurde an ORG+3 gestartet.
Einsprungadressen
- ORG+0: Manuelle Auswahl der Funktion, Rückkehr ins Menu
- ORG+3: Empfangen mit Checksumme, ohne Anzeige des Menu, Rückkehr zum Monitor
- ORG+6: Aufruf aus einem anderen Programm, Funktion und Adressen werden durch Register bzw. Speicherzellen übergeben. Rückkehr konfigurierbar.

Anzeige des gefundenen Interface, hier PIO
RH, Eingabe der Startadresse
ReceiveHex
Dieses Programm war urprünglich in RS integriert, musste aber aus Platzgründen, verursacht durch die Interface-Erkennung,  weichen. Es empfängt Intel-HEX Dateien mit automatischer Zuordnung der Speicheradresse, wobei auch Gaps unterstützt werden. Wenn eine Ladeadresse ungleich Null eingegeben wird, ist diese massgebend, Gaps sind in diesem Fall nicht unterstützt.
ReceiveHex verwendet wie RS die Interface-Erkennung, mit STEP während der Adresseingabe kann diese erneut ausgelöst werden. In der Anzeige erscheint 'E' für die 8255 auf dem Eprom Programmer, 'P' für die PIO oder 'I' für die System-8255 (EAR/SPK)
Die Baudrate ist hier durch die erhöhte Laufzeit, bedingt durch Konvertierung und Tests, auf 300 bps beschränkt.

Stoppuhr
Stoppuhr
Verwendet CTC Interrupts als Zeitbasis. Tickt den Lausprecher im Sekundentakt (mit '+' Taste abschaltbar), Start/Stop mit 'GO', Rückstellung mit '0' Taste. Es ist eine erweiterte Version des Beispiels in der Bedienungsanleitung des MPF.

Der EPROM Programmer EPB-MPF
EPROM to RAM
Dieses Progrämmchen funktioniert nur mit dem EPB-MPF EPROM Programmer und erlaubt direktes Kopieren von EPROMS ins RAM des MPF ohne Umweg über die Programmer-Software. So können Programme, die im EPROM gespeichert sind, ins RAM kopiert und ausgeführt werden, vorausgesetzt, sie wurden für an die zu ladende Adresse gelinkt. Der Code passt in den freien Bereich am Ende des EPB EPROMS und hat drei Einsprungadressen:

- 97C0: 2732 EPROM wird nach 8000, ins RAM des Epomers, kopiert.
- 97C2: 2716 EPROM wird nach 8000 kopiert, 8800-8FFF bleiben unverändert.
- 97C4: 2716 EPROM wird nach 2000, ins RAM U7 des MPF kopiert.

Christiani Drucker

Der MPF-1 mit dem Christiani Drucker an der MPF-PIO
Christiani Drucker
Anschluss am EPROM Sockel des Programmers
Der Drucker an der MPF-1 PIO
Schema der Anschlusskabel für EPB-ZIF und MPF-PIO
Da kein MPF Drucker vorhanden ist, aber ein überzähliger Christiani, wie er seinerzeit mit dem Mikroprozessor-Labor ausgeliefert wurde, entstand ein Treiber für diesen Drucker. Er kann sowohl an der PIO des MPF als auch am ZIF-Sockel des Eprom Programmers angeschlossen werden. Der Treiber sucht bei der Initialisierung nach dem Drucker und verwendet die gefundene Schnittstelle. Er bietet Funktionen zum Suchen des Druckers, drucken einer Zeile oder Z-terminiertem Text sowie Zeilenvorschub. Der Treiber lässt sich einfach auf einen beliebigen Parallel-Drucker (z.B. Epson FX-80) anpassen.

Disassembler Listing
HEX Dump
Disassembler und Hexdump
Der Code für Disassembler und Hexump wurde vom PRT-MPF Eprom übernommen, mit einigen Erweiterungen gegenüber der Originalversion. Diese wurden möglich, weil der Christiani keinen Sofware-Character Generator benötigt, er hat ein ROM dafür.

Basic Listing
Eingabe der Von-Zeilennummer
Eingabe der Bis-Zeilennummer
Tiny-Basic Lister/RS
Der Lister/RS erlaubt den Ausdruck und Senden/Empfangen von Basic Source. Beim Starten führt das Programm einen Basic-Kaltstart durch, schreibt ein kleines Basic-Programm (Zeilen 990-999) zum direkten Aufruf der Funktionen aus Basic:
- 991: Ermitteln der Print-Buffer Adresse, wird in Variable B9 gespeichert.
- 993: Drucken einer Leerzeile
- 995: Drucken einer Textzeile
- 997: Senden des Basic Programms via RS
- 998: Empfangen eines Basic Programms via RS
- 999: Aufruf des Listers
Gegenüber der Originalversion erlaubt der Lister mit CONT die Eingabe eines Zeilenbereichs, GO druckt das gesamte Programm, SAVE bzw. LOAD rufen RS für senden oder empfangen direkt auf. Nach dem Empfangen wird das 990er Programm jeweils wieder angehängt. INS und DEL drucken eine bzw. fünf Leerzeilen.

Schreibmaschine
Schreibmaschine
Druckt Text von der RS Schnittstelle auf dem Christiani Drucker. Auch hier wird wie bei RS die Schnittstelle gesucht. Zusätzlich kommt hier das XON/XOFF Protokoll zum Einsatz, wichtig wenn Dateien gesendet werden. Als Experiment mit Interrupts erfolgt die Startbit-Erkennung im PIO Modus mittels Interrupts. Dadurch wird es auch möglich, in diesem Modus den Füllstand des Buffers anzuzeigen.
Als einzige Editierfunktion steht Backspace zur Verfügung, welche das zuletzt eingegebene Zeichen aus dem Buffer löscht. Falls der Buffer leer ist, wird dies durch 'Lc' (Line Clear) angezeigt. Bei Bufferüberlauf leuchtet die grüne LED und folgende Zeichen werden ignoriert. Die LED verlöscht nach einem Backspace wieder. Der Ausdruck einer Zeile (maximal 24 Zeichen) erfolgt nach CR.

EPROM Images

Monitor (original)
2516/2716 Monitor EPROM in U6, ohne TinyBasic

MPF-1B Monitor mit Tiny Basic (original)
2532 Monitor EPROM in U6, mit TinyBasic

MPF-1 Tiny Basic (original)
2516/2716 Basic EPROM in U7

EPB-MPF Programmer (original)
2716 EPROM des Programmers

EPB-MPF Programmer mit EPROM to RAM
2716 EPROM des Programmers, modfiziert zum Kopieren von EPROMs ins RAM

MPF-1B, U7
2732 EPROM
- 2000 Menu
- 2100 RS
- 24C0 Basic Lister/RS (Basic muss in U6 sein)
- 2900 Stoppuhr
- 2A00 Treiber für Christiani-Drucker
- 2BA0 Assembler Bibliothek

MPF-1B Disassembler/Hexdump
2732 EPROM, muss mit dem Programmer in dessen RAM kopiert werden.
- 8000 Menu
- 8100 Disassembler
- 8103 Hexdump

MPF-1B Utilities
2732 EPROM, muss mit dem Programmer in dessen RAM kopiert werden.
- 8000 Menu
- 8100 Receive Hex
- 8400 Frequenzzähler
- 8580 Interrupt Test
- 8680 Schreibmaschine