altes Phytec MCB-51 Monitor/Basic Befehle?

#8075794
Lesenswert?

Ich habe ein altes Phytec miniCon-535/LC Board, aber keine Unterlagen dazu.
Mit Spannungsversorgung läuft es und ich kann das Basic mit der Eingabe von "basic" im seriellen Terminal (9600baud) eingeben. Ich bin auf der Suche nach den Basicbefehlen und insbesondere wie man Graphik auf dem Display darstellen kann.

Angehängte Dateien:
#8075806
Lesenswert?

Ich würde einfach mal bei Phytec nach Unterlagen nachfragen. Meist waren die auch als PDF abrufbar und ich kann mir nicht vorstellen, dass dort keine Unterlagen für ihre Boards mehr vorhanden sind. Ich hatte früher beruflich mit Phytec öfter Kontakt und konnte mich über deren Service nicht beklagen.

#8075811
Lesenswert?

Günter N. schrieb:

Ich würde einfach mal bei Phytec nach Unterlagen nachfragen.

Danke für den Hinweis. Das wäre vielleicht der einfachste Weg. Eigentlich untersuche ich das Board nur aus Interesse. Das angezeigte Datum ist ja 1988 und das ist schon eine ganze Weile her. Mich wundert ja, dass das EPROM die Daten noch nicht verloren hat.

Da sich das Board über die RS232 ansprechen und bedienen lässt, habe ich schon ein paar Sachen durch Probieren heraus gefunden. Ich überlegen, einen Memory-Dump zu machen und die Befehle vielleicht optisch zu entdecken.

Hier mal die bisherigen Erkenntnisse.

1
Eingabe von
2
basic 
3
wechselt in den Basic-Interpreter
4

5
zurück mit
6
exit
7

8
? zeigt die Hilfe
9

10
mit
11

12
conf 0 
13

14
kommt man in den reinen terminal Mode
15

16
#?
17
memory  display    modify       fill                verify
18
bit:   >DB range  >EB address  >FILLB range value  >VB range value
19
code:  >DC range  >EC address  >FILLC range value  >VC range value
20
data:  >DD range  >ED address  >FILLD range value  >VD range value
21
idata: >DI range  >EI address  >FILLI range value  >VI range value
22
xdata: >DX range  >EX address  >FILLX range value  >VX range value
23

24
 program execution              breakpoint(s)      program load/save
25
>G [address] [,breakadd] - go  >BD bp - disable   >:hex_rec - load intel hex
26
>T [count] - trace step        >BE bp - enable    >S range - save intel hex
27
>P [count] - procedure step    >BK bp - kill
28
                               >BL - list
29
                               >BS address - set
30
 utility
31
>A address - assemble          >MX xrange dest - move xdata
32
>U range - disassemble         >MC crange dest - move cdata
33
>X [register] - disp/change    >BASIC -  basic interpreter
34
>CONF [0..4] - configuration   >TERM - terminal mode
35
>HELP - display menu           >MAP [basicram]
#8075833
Lesenswert?

#8075840
Lesenswert?

Christoph M. schrieb:

Ich habe ein altes Phytec miniCon-535/LC Board, aber keine Unterlagen dazu.

Hier gibt es ein Hardware Manual vom miniCON-535, allerdings nicht vom LC. https://www.phytec.de/fileadmin/legacy/downloads/Manuals/L-002E.pdf

Ich bin auf der Suche nach den Basicbefehlen ...

Basic als höhere Programmiersprache sollte, bis auf irgendwelche proprietären Erweiterung, die gleichen Grundbefehle verwenden, wie anderen Basic-Interpreter auch.

... und insbesondere wie man Graphik auf dem Display darstellen kann.

Das Display hängt wohl über einen Port am µP, d.h. da brauchst du das Manual vom Graphikcontroller.

#8076374
Lesenswert?

Vielen Dank für eure Antworten.

Roland F. schrieb:

https://www.dos4ever.com/8031board/Basic52Manual.pdf

Das Basic auf dem minConLC-Board scheint tatsächlich recht ähnlich. Die meisten Kommandos funktionieren und es gibt auch ein paar Erklärungen im Manual die weiterhelfen. Schön wäre es natürlich, wenn man ein Repository mit ein paar Programmbeispielen hätte. Damals gab es aber github noch nicht.
Ich habe noch das Spezifikationsblatt des minCon_LC gefunden.
Unpraktisch bei dem Basic ist, dass es kein "print at x,y" wie bei manchen frühen Basic-Computern gibt. Das heißt, man kann das LCD nur Zeichenweise füllen. Oder wie seht ihr das?

Angehängte Dateien:
#8076405
Lesenswert?

Christoph M. schrieb:

Schön wäre es natürlich, wenn man ein Repository mit ein paar Programmbeispielen hätte.

Na ja, der Befehlsvorrat ist überschaubar und BASIC ist jetzt auch nicht gerade C++. Von daher dürfte es recht einfach sein selbst ein paar kleine Beispielprogramme zu schreiben. Um die Beschäftigung mit der kontrollerspezifischen Eigenschaften (also Lage und Funktion der SFR) kommst du eh nicht herum.

Christoph M. schrieb:

Unpraktisch bei dem Basic ist, dass es kein "print at x,y" wie bei manchen frühen Basic-Computern gibt.

Dafür hast du ja das BASIC. :-) Ist ja jetzt kein Hexenwerk selbst ein entsprechendes Unterprogramm zu schreiben.

Dieter S. schrieb:

Wenn Du die Firmware des Boards hier hochlädst kann man schauen was es für Befehle gibt.

Das ist eine gute Idee! Vielleicht ist ja ein entsprechender PRINT-Befehl dabei.

rhf

: Bearbeitet durch User
#8076471
Lesenswert?

Roland F. schrieb:

Christoph M. schrieb:

Unpraktisch bei dem Basic ist, dass es kein "print at x,y" wie bei manchen frühen Basic-Computern gibt.

Dafür hast du ja das BASIC. :-) Ist ja jetzt kein Hexenwerk selbst ein entsprechendes Unterprogramm zu schreiben.

Ich vermute, Christoph wollte den Text pixelgenau positionieren. Das wird so oder so nicht funktionieren. Die meisten einfachen BASIC-Dialekte konnten keine Grafik (das gab die Hardware gar nicht her) sondern konnten Text nur auf einen 80x25 oder 40x25 Zeichenraster plazieren.

Mit den grafikfähigen Heimcomputern gegen Ende der BASIC-Ära kamen zwar BASIC-Dialekte auf, die das konnten. Aber verbreitet waren die zumindest in meiner Wahrnehmung nicht. Erkennen konnte man die recht einfach: wenn sie Primitiven wie LINE, RECT oder CIRCLE anboten, konnten sie zumindest Grafik. Aber Textausgabe war dann trotzdem meist auf ein festes Raster (typisch 8x8 Pixel) beschränkt.

Das hat mit der Organisation des Bildwiederholspeichers (Frame Buffer) zu tun. Ein Pixel entsprech damals typischerweise einem Bit. Adressierbar waren aber nur Bytes. Um ein Pixel an einer beliebigen Position zu setzen (bzw. löschen) brauchte man also einen read-modify-write Zyklus. Für ein Zeichen aus einem 8x8 Zeichensatz sind das 64 solche Zyklen. Zum Schreiben eines Zeichens auf eine Position im 8x8 Raster brauchte man aber nur 8 Schreibzugriffe. Das ging also deutlich fixer.

#8076499
Lesenswert?

Axel S. schrieb:

BASIC-Dialekte konnten keine Grafik (das gab die Hardware gar nicht her) sondern konnten Text nur auf einen 80x25 oder 40x25 Zeichenraster plazieren.

Ein erster Schritt könnte schon die Positionierung mit Zeichenauflösung sein, aber es wäre natürlich viel toller, wenn man z.B. auch einen Temperaturgraph zeichnen könnte. Im Anhang die Displayplatine von hinten.

Angehängte Dateien:
#8076515
Lesenswert?

Axel S. schrieb:

Mit den grafikfähigen Heimcomputern gegen Ende der BASIC-Ära kamen zwar BASIC-Dialekte auf, die das konnten. Aber verbreitet waren die zumindest in meiner Wahrnehmung nicht. Erkennen konnte man die recht einfach: wenn sie Primitiven wie LINE, RECT oder CIRCLE anboten, konnten sie zumindest Grafik. Aber Textausgabe war dann trotzdem meist auf ein festes Raster (typisch 8x8 Pixel) beschränkt.

Schon die Grafikbefehle des Commodore Basic 3.5 (C16, C116, Plus4) können das. Der Text allerdings im Graphikmodus geschrieben, was Einschränkungen der Geschwindigkeit nach sich zieht.

Diese Grafikroutinen habe ich vor vielen Jahren als Basis für eine Erweiterung des Extended Basic (Exbasic) für den C64 benutzt.

Aber was will man heute mit einem Basic auf der Basis 8052 noch anfangen?

Für die PIC32 gibt es ein Basic als C-Projekt. Damit kann man innerhin das Basic sehr leicht um eigene Befehle erweitern, deren Ausführung durch den Basicinterpreter für eine sinnvolle Anwendung zu langsam wäre. Also z.B. ein Messraster in eine Grafik einblenden.

Die Hardware ist dafür recht einfach gestrickt: Maximite/Duinomite. Der Controller (PIC32MX795F512) ist ein PIC32 mit immerhin 80 MHz Takt.

#8076532
Lesenswert?

Cartman E. schrieb:

Schon die Grafikbefehle des Commodore Basic 3.5 (C16, C116, Plus4) können das.

Das nützt in dem Fall aber wenig, da es keine Grafikkommandos gibt.
Das angehängte File mit dem Kommandos habe ich über Memory-Dumps und KI-Hilfe generiert und sieht dem hier ganz ähnlich:

Roland F. schrieb:

Das vermute ich auch. Hier ein Link zum Reference Manual:

https://www.dos4ever.com/8031board/Basic52Manual.pdf

Angehängte Dateien:
#8076590
Lesenswert?

Christoph M. schrieb:

Cartman E. schrieb:

Schon die Grafikbefehle des Commodore Basic 3.5 (C16, C116, Plus4) können das.

Das nützt in dem Fall aber wenig, da es keine Grafikkommandos gibt. Das angehängte File mit dem Kommandos habe ich über Memory-Dumps und KI-Hilfe generiert und sieht dem hier ganz ähnlich:

Mein Bezug war die Aussage:

Axel S. schrieb:

... Die meisten einfachen BASIC-Dialekte konnten keine Grafik (das gab die Hardware gar nicht her) sondern konnten Text nur auf einen 80x25 oder 40x25 Zeichenraster plazieren.

Was direkt wieder zu der Frage führt, was will man mit einem Basic das auf einem 8052 Derivat basiert, dass man nicht einmal für seine Zwecke anpassen kann. Z.B. Grafikbefehle beim Interpreter nachrüsten. Ein "ganz ähnlich" wird nicht reichen. Wäre es nicht auf einem 8052 Derivat basieren würde, sondern auf einem 8052, und der für das 8052AH-Basic geplanten Hardware, wäre dies immerhin möglich.

Eine Grafik die elementar mit Basicbefehlen aufgebaut und verändert wird, ist unbenutzbar langsam.

Alternativen habe ich ja erwähnt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren