Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
elektronik:u883 [2017/12/11 09:14] – [TINY-MPBASIC] volkerpelektronik:u883 [2022/08/04 06:51] – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden volkerp
Zeile 1: Zeile 1:
 ====== U883 ====== ====== U883 ======
  
-FIXME +Der U883 ist ein spezieller Vertreter der [[elektronik:u881|U881]]-Familie der Einchipmikrorechner (EMR) der DDR.
- +
-Der U883 ist ein spezieller Vertreter der [[tiny:u881|U881]]-Familie der Einchipmikrorechner (EMR) der DDR.+
 Der U883 ist maskenprogammierter U881, der interne PROM enthält ein einfaches TINY-MPBASIC.  Der U883 ist maskenprogammierter U881, der interne PROM enthält ein einfaches TINY-MPBASIC. 
  
Zeile 12: Zeile 10:
 Der U883 wird im Heimcomputer [[:tiny|]] genutzt. Der U883 wird im Heimcomputer [[: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 ===== ===== Downloads =====
  
-  * {{:tiny:u883bas.zip|}} ROM des U883 incl. Assemberquellcode+  * {{:tiny: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. [[tiny:erweiterungen:zilog|]]. Damit kann man den U883 durch einen U882 + 2K-EPROM ersetzen. Ebenso kann ein moderner Z8-kompatibler Prozessor genutzt werden, wie z.B. [[tiny:erweiterungen:zilog|]].
 + 
 +**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 ===== ===== Literatur =====
  
-  * Claßen/Oefler, Wissensspeicher Mikrorechner-Programmierung, VEB Verlag Technik Berlin, 2. Auflage 1986 (als Auszug: {{ :elektronik:u88x-emr_cty.pdf |}})+  * 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-MPBASICRadio,Ferns. Elektron., Berlin 34(19853, S.143 ff.
   * TINY-MPBASIC. Kundeninformation, VEB Mikroelektronik Erfurt, 1984   * TINY-MPBASIC. Kundeninformation, VEB Mikroelektronik Erfurt, 1984
-  * ein paar Hinweise stehen auch in Kieser/Bankel, Einchipmikrorechner, VEB Verlag Technik Berlin, 1986+  * 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 [[elektronik:u883:bm200|mikroprozessortechnik MP8/1987 S.232 ff.]] Ein Entwicklungsboard basierend auf diesem ROM wurde 2016 entworfen:
 +
 +  * https://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=12933
 +  * http://www.krummsdorf.de/files/hobby/projekt1.html
  
 ===== TINY-MPBASIC ===== ===== TINY-MPBASIC =====
Zeile 33: Zeile 43:
 einen einfachen BASIC-Interpreter.  einen einfachen BASIC-Interpreter. 
  
-...+Autor des TINY-MPBASIC ist Siegmar Müller, damals Applikations-Ingim Funkwerk Erfurt (Truppe Meder/Kieser). 
 + 
 +Beschreibung s[[elektronik:u883:mpbasic|]], [[elektronik:u883:mpbasic2|]] und beim [[: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 [[elektronik:u883:listing|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 
 +  * ";" beendet das aktuelle Kommando. Jedes andere Zeichen (nicht nur ",") wiederholt das aktuelle Kommando. Damit können mehrere gleiche Befehle in eine Zeile geschrieben werden, ohne dass das Schlüsselwort wiederholt werden muss. Ausnahme: PROC. 
 +  * PROC-Aufrufe können nicht mit , aneinandergereiht werden (Bug im U883) 
 +  * erfolgt ein END in einem Unterprogramm, ist bei Rückkehr zum Aufrufer der Stackpointer geändert!  
 +  * Die Suche nach einer Zeile hat einen Fehler: Zeilennummern Hex xx0Dh werden nicht korrekt verarbeitet (Bug im U883). Deshalb keine Zeilen n*256+13 nutzen! 
 + 
 +<code> 
 +5 LET A=42 
 +10 PROC[A,B]=ABS[-25] 
 +20 PRINT "A="
 +30 PRINT "B="B
  
-Beschreibung s. TINY+RUN 
 +A= 00000 
 +B= 00025 
 +</code>
  • elektronik/u883.txt
  • Zuletzt geändert: 2024/04/28 13:13
  • von volkerp