Dies ist eine alte Version des Dokuments!
U883
Der U883 ist ein spezieller Vertreter der U881-Familie der Einchipmikrorechner (EMR) der DDR. Der U883 ist maskenprogammierter U881, der interne PROM enthält ein einfaches TINY-MPBASIC.
Von Zilog gibt es den Z8671, einen Z8601 mit integriertem TINY-BASIC. Diese Variante entspricht überhaupt nicht dem U883!! Weder die BASIC-Beschreibung noch der PROM-Hexdump entsprechen denen des U883. Damit ist der Z8671 auch kein Ersatz für den U883.
Der U883 wird im Heimcomputer JU+TE TINY genutzt.
Ein Vorläufer des U883 ist der UB881D-004. Dieser maskenprogammierte Einchipmikrorechner enthält die Version 2.0 des Tiny- MPBASIC. im U883 ist Version 3.0 des Tiny-MPBASIC enthalten.
Zusätzlich zum U883 erschien ein 8K-PROM U2365 BM200 mit Entwicklungstools zum U883 (Basic-Editor, Debugger, Assembler, MC-Monitor).
Downloads
- u883bas.zip ROM des U883 incl. Assemberquellcode (neu 07/2021)
Damit kann man den U883 durch einen U882 + 2K-EPROM ersetzen. Ebenso kann ein moderner Z8-kompatibler Prozessor genutzt werden, wie z.B. Zilog Z86C93 statt U883.
Achtung: Der U883 unterscheidet beim internen ROM nicht das Speichersignal /DM; es wird in jedem Fall auf den internen Speicher zugegriffen. Bei externem ROM sollte daher auch nur ein gemeinsamer 64K-Speicher ohne Trennung in Programm- und Datenspeicher genutzt werden.
Literatur
- REIHE AUTOMATISIERUNGSTECHNIK Band 216, Programmieren mit BASIC, Siegmar Müller, 1. Auflage, VEB Verlag Technik, Berlin, 1985 (Abschnitt 7, MPBASIC)
- Claßen/Oefler, Wissensspeicher Mikrorechner-Programmierung, VEB Verlag Technik Berlin, 4. Auflage 1989
Achtung in der 2.+3. Auflage wird die Entwicklungsversion UB881D-004 des TINY-MPBASIC beschrieben. Diese weicht in einigen Details von der finalen Version des U883 ab! - Müller, S.: Einchipmikrorechner U883 interpretiert Tiny-MPBASIC. Radio,Ferns. Elektron., Berlin 34(1985) 3, S.143 ff.
- TINY-MPBASIC. Kundeninformation, VEB Mikroelektronik Erfurt, 1984
- ein paar Hinweise zum TINY-MPBASIC stehen auch in Kieser/Bankel, Einchipmikrorechner, VEB Verlag Technik Berlin, 1986
Mit dem PROM U2365 BM200 gab es einen 8K-ROM mit Entwicklungstools zum U883. Beschrieben wurde dies in der mikroprozessortechnik MP8/1987 S.232 ff. Ein Entwicklungsboard basierend auf diesem ROM wurde 2016 entworfen:
TINY-MPBASIC
Der Einchipmikrorechner U883 enthält in seinem 2 KByte großen internen ROM einen einfachen BASIC-Interpreter.
Autor des TINY-MPBASIC ist Siegmar Müller, damals Applikations-Ing. im Funkwerk Erfurt (Truppe Meder/Kieser).
Beschreibung s. MPBASIC, MPBASIC2 und beim JU+TE TINY.
JU+TE-Hinweise
- nach 0D (Zeilenende) wird das 7. Bit des nachfolgenden Bytes (15. Bit der Zeilennummer) gesetzt. Die höchstmögliche Zeilennummer ist daher 32767.
- AND, OR, XOR werden mit $A, $O, $X abgekürzt, vgl. a. Quellform Zeile 1000.
- Zeilennummern, die in ihrer Hexadezimaldarstellung %0D (Zeilenende) oder %00 (Programmende) enthalten, sind nicht zulässig (z.B. Zeilennummer 0, 13, 256)
Quellcode
2021 habe ich den Code den U883-Tiny-MP-BASIC komplett reassembliert und dokumentiert.
Erkenntnisse:
- Proc-Befehlserweiterungen können zur Laufzeit gesetzt werden (Adresse der Prozedurtabelle in Register 8 und 9).
Es ist sogar möglich, die Tabellen zwischendurch zu wechseln und unterschiedliche Implementierungen für dieselben Prozedurnamen zu programmieren, z.B. für ein Programm, dass auf verschiedenen Systemen laufen soll. - Rückgabeparameter werden mit 0 vorbelegt
- TO bei TRAP muss als , übersetzt werden
- GOTO sucht passende Zeile oder nächstgrößere; bei Programmende → Ende
- REM endet bei „;“, dahinter können normal ausgeführte Anweisungen folgen
- PROC-Aufrufe können nicht mit , aneinandergereiht werden (bug im U883)
5 LET A=42 10 PROC[A,B]=ABS[-25] 20 PRINT "A="A 30 PRINT "B="B RUN A= 00000 B= 00025