008
14.03.2026, 17:08 Uhr
maleuma
|
Das Programm im EPROM des Nachbaus von Thyratron habe ich reassembliert, aber noch nicht alles verstanden. Hier einige Hinweise zu meinem aktuellen Kenntnisstand:
Hardware: 8 KByte EPROM, nicht abschaltbar und fest adressiert auf Adresse C000H-DFFFH 8 KByte Emulator-RAM 6264, davon aber nur 4K genutzt, adressiert auf Adresse B000-BFFFH (auf A000-AFFFH auch sichtbar) Um beim KC85/4 Zugriff auf den RAM zu bekommen, muss der RAM8 vor Aufruf von Z8E ausgeschaltet werden.
Speichernutzung: 0200H-5FFFH Quelltext (bis 3000H ohne RAM4) 3000H-3FFFH Symboltabelle, wenn kein RAM4 vorhanden ist 6000H-7FFFH Symboltabelle, wenn RAM4 vorhanden ist A000H-AFFFH Simulator-RAM 4 KByte (IRM dabei aus) BE00H-BFFFH modifizierte Zeichentabelle C000H-DFFFH Programmcode
Software (ausgelegt für den KC85/3): - Entwicklungsumgebung ähnlich DEVELOPMENT M027 (EDAS) Ich habe das Modul deswegen "Z8 Entwicklungssystem" M127 getauft. - Eingabe Menüworte mit nur 1 Buchstaben durch Spezialbehandlung - Direkte Benutzung der VRAM-Adressen ab B200H (KC85/4: Bild 0 benutzen!) - Menüwort 'Z8ENTW' = Kaltstart des Editors - Menüwort 'Z8WS = Warmstart des Editors (REZ8) - modifizierte Zeichentabelle mit eckigen Klammern - modifizierte Tastaturtabelle => groß/klein getauscht => Shift+Leertaste entspricht Leertaste => Shift+Unterstrich ergibt eckige Klammer auf - Funktionstasten F1=05H und F2=06H - Menüanzeige direkt, ohne die in CAOS sonst übliche Menüwortsuche - Nach Eingabe wird auch nur das "+"-Zeichen geprüft und der erste Buchstabe, welcher nach dem + folgt. - Für Menüworte, welche einen Parameter benötigen (B, C, D), ist dieser ohne Leerzeichen direkt nach dem Kennbuchstaben einzutragen. Also z.B. D0 für D(isplay) 0000
Menüworte: mit + als Promptzeichen +A(ssembler) Aufruf Assembler +B(reak) Adr. +C(opy) Adr. +Display Adr. +E(ditor) Aufruf Editor +M(enu) Menü auflisten +Q(uit) zurück zu CAOS +R(un) KoppelRAM fuer Z8-Zugriff aktivieren, Z8 mit RESET starten +S(top) KoppelRAM fuer Z8-Zugriff deaktivieren, Z8 stoppen +L(esen) steht nicht im Menü! +P(rogr.) steht nicht im Menü!
EDIT-Untermenü mit "*" als Prompt-Zeichen *Botom *Edit *Find *Load *Menu *Quit *Save *Top Das erinnert an EDAS, ist wohl von diesem Modul übernommen worden. Die LOAD-Routine liest EDAS-kompatible Dateien NAME.ASM ein und kann zusätzlich auch BASIC-Texte im Format UUUFILENAME einlesen (Beginn mit 3x hohes U)
Assembler:
Unterstützte Zahlenformate: - Dezimalzahlen im Ziffernbereich 0-9 - Hexzahlen beginnen mit dem Zeichen % - Binärzahlen beginnen mit %(2), es sind alle 8 Bit anzugeben
Definierte Registernamen: FLAGS, IMR, IPR, IRQ, PRE0, PRE1, P01M, P2M, P3M, RP, SIO, SP, SPH, SPL, TMR, T0, T1, P0, P1, P2, P3
Bedingungscodes: F, Z, NZ, C, NC, PL, MI, NE, EQ, OV, NOV, GE, LT, GT, LE (vorzeichenbehaftet), UGE, ULT, UGT, ULE (vorzeichenfrei)
Unterstützte Befehle: ADC, ADD, AND, CALL, CCF, CLR, COM, CP, DA, DEC, DECW, DI, DJNZ, EI, INC, INCW, IRET, JP, JR, LD, LDC, LDCI, LDE, LDEI, NOP, OR, POP, PUSH, RCF, RET, RL, RLC, RR, RRC, SBC, SCF, SRA, SRP, SUB, SWAP, TCM, TM, XOR
Unterstützte Pseudobefehle: BVAL, BYTE, WORD, WVAL, := (Konstantendeklaration) ähnlich EQU)
Unterstützte Assembler-Anweisungen: $ABSP, $ABSR, $LISTOFF, $LISTON, $IF, $ELSE, $FI, $PAGE, $PL
Unterstützte Arithmetik-Operatoren: +, -, NOT, AND, OR, XOR, HI, LO, SHR, SHL
Fehlercodes: 01 Marke/Symbol mehrfach vereinbart 02 Marke/Symbol nicht vereinbart 03 fehlerhafte Symbolvereinbarung 04 Markenfehler 05 Wert fehlerhaft 06 unbekannter Befehl 07 falsche Assemblerdirektive 08 Argumentfehler 09 $if fehlt 0A $fi fehlt 0B 0C 10 Warnung: Berechnete Zahl zu groß 11 Warnung: Doppelregister nicht geradzahlig 12 20 21 22 23 24
Zusatzhardware EPROM-Brenner Das Menü zeigt die beiden Befehle +L(esen) und +P(rogr.) nicht im Menü an. Die Befehle können aber eingetippt werden und führen zu Programmteilen zum Einlesen und Programmieren von EPROMs mit Upp = 21V oder 25V. Die Software zum Brennen von EPROM's programmiert unter anderem einen PIO, welcher möglicherweise in einem anderen Modul vorhanden oder auch nur geplant (?) war. Die Portadressen dieser "Zusatzhardware" EPROM-Brenner sind nicht kompatibel mit dem M030. Deshalb vermute ich ein anderes Modul. Verwendet werden in der Software diese Ports: 70H OUT ; Ausgabeport für Steuersignale zum EPROM 75H OUT 76H OUT ; EPROM-Adresse Bit 0-7 78H IN OUT ; PIO-A EPROM-Daten (wird umprogrammiert Ein-/Ausgabe) 79H OUT ; PIO-B Daten (Betriebsart Bitbetrieb, Bit 5=Eingang) 7AH OUT ; PIO-A Steuerbyte 7BH OUT ; PIO-B Steuerbyte
Mehr Details habe ich noch nicht herausbekommen. -- Mario. |