Komponenten im Prop:
- VGA 80x50 S/W mit 2 Helligkeitsstufen(75% & 100%) Usermonitor
- Keybord deutsch
VGA 80x10 8/8 Color Systemstatusmonitor des Propellers im unteren bereich des VGA-Monitors[/color]
Laufwerke werden nur vom Propeller gemountet (wie beim händischen Diskettenwechsel)
Hartware:
- U880/Z80/Z8S180
- 64k SRAM (Basisspeicher)
- P8x32A
- SD-Kartenhalter
- GAL16V8-25 Die für den Prop relevanten IO-Adressen werden mit einem GAL Ausdecodiert. 1xSteuerung und 1xDaten Port.
EEPROM: 32K
Unveränderlicher Boot-/System Loader z.B. CP/M oder z1013
Das Image wird von SD-Karte geladen
Die Frage ist wo werden die Commados realisiert.
Hier meine Vorstellung.
xx________JMP BOOT_____;Kaltstart Routine SYSTEM Löschen kein Kommando Hardware-Reset
Das BIOS beginnt mit den folgenden Sprunganweisungen zu den Dienstroutinen:
BIOS-Nr. Offset[=3*(BIOS-Nr.-1)]Beschreibung
01__000H__JMP WBOOT_______;Warmstart - Laden BIOS/BDOS/CCP keine anderen veränderungen
02__003H__JMP CONST_______;Konsolstatus
03__006H__JMP CONIN_______;Konsoleingabe
04__009H__JMP CONOUT______;Konsolausgabe
05__00CH__JMP LIST________;Druckerausgabe
06__00FH__JMP PUNCH________;Lochstreifenausgabe
07__012H__JMP READER________;Lochstreifeneingabe
08__015H__JMP HOME__________;Disklesekopf auf Spur 0
09__018H__JMP SELDSK________;Laufwerk wählen
10__01BH__JMP SETTRK________;Spur wählen
11__01EH__JMP SETSEC________;Sektor wählen
12__021H__JMP SETDMA________;DMA-Adresse festlegen
13__024H__JMP READ________;Sektor lesen
14__027H__JMP WRITE________;Sektor schreiben
In CP/M 2 und höher sind noch die weiteren Sprunganweisungen vorhanden:
15__02AH__JMP LISTST______;Druckerstatus
16__02DH__JMP SECTRAN____;Übersetzung des Sektorversatzes (Skewing) <<-- unnötig bei SD-Karten 蛇足
In CP/M 3 ist ein weiterer Satz von Sprunganweisungen vorhanden:
17__030H__JMP CONOST____;Status der Konsolausgabe
18__033H__JMP AUXIST____;Status der Hilfsgeräteleingabe
19__036H__JMP AUXOST____;Status der Hilfsgerätelausgabe
20__039H__JMP DEVTBL____;Adresse der Gerätetabelle
21__03CH__JMP DEVINI______;Gerät initialisieren
22__03FH__JMP DRVTBL____;Adresse der Laufwerkstabelle
23__042H__JMP MULTIO____;Lesen/Schreiben von Mehrfachsektoren
24__045H__JMP FLUSH______;Leeren der Dateipuffer
25__048H__JMP MOVE______;Verschieben eines Speicherblocks
26__04BH__JMP TIME______;Echtzeituhr
27__04EH__JMP SELMEM____;Speicherbank wählen
28__051H__JMP SETBNK____;Bank für DMA-Operation wählen
29__054H__JMP XMOVE____;Bänke für MOVE laden
30__057H__JMP USERF______;Systemabhängige Funktionen
31__05AH__JMP RESERV1____;Reserviert
32__05DH__JMP RESERV2____;Reserviert
grün im Prop realisiert es werden nur das Kommando und Status Übertragen
blau Zusammenspiel Prop Z80
rot unklar
schwarz entfällt
Das IO-Byte
Code: Alles auswählen
Bits Bits 6,7 Bits 4,5 Bits 2,3 Bits 0,1
Device LIST PUNCH READER CONSOLE
10 10 10 01 --> %1010_1001 --> $A9
Value
00 TTY: TTY: TTY: TTY:
01 CRT: PTP: PTR: CRT:
10 LPT: UP1: UR1: BAT:
11 UL1: UP2: UR2: UC1:
CRT = Standard console (keyboard and terminal screen).
LPT = Standard line printer.
PTP = Standard Paper Tape Punch.
PTR = Standard Paper Tape Reader.
TTY = Teletype device, eg a serial port.
UC1 = User defined (ie implementation dependent) console device.
UL1 = User defined (ie implementation dependent) printer device.
UPn = User defined (ie implementation dependent) output device.
URn = User defined (ie implementation dependent) input device.