Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » CP/M vom USB-Stick starten » Themenansicht

Autor Thread - Seiten: -1-
000
05.09.2015, 00:13 Uhr
Heiko_P



... hat das schon mal jemand probiert? Ich versuche gerade eine Startroutine dafür zu programmieren die in einen U555 auf der K2521 passt. Das könnte vielleicht auch für andere Neubauprojekte interessant sein, man braucht keine Bootdiskette mehr. Wenn es Interesse dafür gibt, würde ich über meine weiteren Versuche hier berichten.

Gruß
Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
05.09.2015, 20:30 Uhr
Klaus



Hallo Heiko,

.... klingt interessant....
Das wäre ja evtl. auch was für mein NANOS.
Welche Hardwarevoraussetzungen müssen denn vorhanden sein?

Über einen Bericht Deiner Ergebnisse würde ich mich natürlich freuen und mich auch wieder als Tester anbieten, falls es mit NANOS überhaupt machbar ist.

Nach der ausgedehnten Sommerpause kommt nun wieder etwas mehr Leben in die Bastelbude ;-)

Viele Grüße,
Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
05.09.2015, 21:04 Uhr
felge1966

Avatar von felge1966

Willst du da auch die ABS und die RAM-Karte verwenden oder soll das ganze nur mit der K2521 realisiert werden?

Gruß Jörg
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
05.09.2015, 23:31 Uhr
Heiko_P



Zu meiner geplanten Konfiguration sollen gehören: ZRE K2521, OPS K3526, ABS K7024 oder meine BWS-Karte für K1520, eine USB-Karte, GIDE und andere Karten. Die Boot-Routine selbst soll allein auf der ZRE-Platine laufen, ohne extra RAM oder Eprom.

Das Ganze soll aber auch für andere Rechner nutzbar sein wenn der Code an die entsprechende Hardware angepasst wird. Parallel dazu soll ein Start von der GIDE-Festplatte möglich sein. Dafür muss auf jeden Fall das BIOS angepasst werden. Bis dahin ist aber noch ein wenig Programmierarbeit notwendig

Gruß
Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
06.09.2015, 08:48 Uhr
Alwin

Avatar von Alwin

Das wäre noch interessant für den PC1715, zumindest hattest ja schonmal angedeutet den Boot Prom anzupassen, sodass er vom GIDE bootet.
--
...Z1013, KC87, KC85/5, KC Compact, C64
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
06.09.2015, 16:10 Uhr
Henning




Zitat:
Heiko_P schrieb
... hat das schon mal jemand probiert? Ich versuche gerade eine Startroutine dafür zu programmieren die in einen U555 auf der K2521 passt. Das könnte vielleicht auch für andere Neubauprojekte interessant sein, man braucht keine Bootdiskette mehr. Wenn es Interesse dafür gibt, würde ich über meine weiteren Versuche hier berichten.

Gruß
Heiko

Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
06.09.2015, 16:23 Uhr
Rolly2



Heiko, das ist von großem Interesse. Ist auch für die K2526 interessant.
Bin gespannt, wie es weiter geht.

vg. Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
06.09.2015, 16:24 Uhr
Henning



Hallo Heiko,

ich halte die Idee für toll nur über USB-Stick CP/M oder andere Systeme starten zu können. Aber kann man so was auch am KC85/4 realisieren ?.
Für eine Anwendung wäre es m.E. aber wichtig nicht Hardwarezusatzteile, die erst mit Lötbratereien angebracht werden müssen, zu benötigen
Ich finde das deshalb so toll, weil gelegentlich beim Einspielen von Diskette von CP/M und anderen Systemdisketten manchmal, aus unerfindlichem Grund, Funktionen (bspw. Druckfunktion) spinnen.
Leider kann ich Dir da auf keinen Fall praktisch helfen, da ich im wesentlichen Anwender und kein Programmierer bin.
Dennoch interessiert mich die Idee.
Darüberhinaus wäre es m.E. auch sinnvoll zu versuchen unterschiedliche Systeminstallierungsdisketten auf USB zu bringen und von dort zu starten.
Ich habe allerdings einen ganz normalen KC85/4 mit USB- Modul ohne zusätzliche Festplatte und auch keinen Internetanschluss am KC85/4. Allerdings, und das freut mich sehr, 2 gut funktionierende D002 im Einsatz.

Für eine gelegentliche Rückantwort wäre ich dankbar.

Gruss

Henning.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
06.09.2015, 19:39 Uhr
Heiko_P



Hallo Henning,

zum KC85 kann ich dir leider nicht viel sagen, damit habe ich mich bisher gar nicht beschäftigt. Ich werde erst einmal versuchen die Idee überhaupt in die Praxis umzusetzen und dann über meine Erkenntnisse hier berichten. Das soll eine Anregung sein, vielleicht findet sich jemand der das für den KC85 anpasst. USB-Hardware gibt es mit dem M052 bereits, vielleicht lässt sich die nutzen.

Gruß
Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
06.09.2015, 20:33 Uhr
Henning



Hallo Heiko,

danke für Deine Rückantwort.

Gruss

Henning.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
08.09.2015, 22:38 Uhr
Heiko_P



So, der Urlader scheint erst einmal zu funktionieren:



Die Grundlage für den Urlader bilden die Quellen vom GIDE und von den USB-Tools. Im Bild wird für den Test ein Mini-Programm vom Stick geladen, welches die Ausschrift "Hello World..." produziert.

Was genau macht der Urlader?

Die USB-Hardware wird initialisiert und im Hauptverzeichnis des USB-Laufwerkes wird eine Datei USBBOOT.BIN gesucht. Bei Erfolg werden die ersten 10 Bytes der Datei geladen und geprüft. Die ersten 6 Bytes enthalten eine von mir festgelegte Kennung. Wenn diese stimmt, werden die nächsten vier Bytes als Ladeadresse und Startadresse gespeichert, der Rest der Datei auf die Ladeadresse geladen und danach die Startadresse angesprungen. Das geladene Programm muss dann komplett die Steuerung des Rechners übernehmen.

Wird der erste Teil aus irgendeinem Grund abgebrochen (kein Stick, Datei nicht gefunden, Kennung falsch ...) wird sofort auf die GIDE-Startroutine verzweigt. Auf der Festplatte habe ich den Sektor 0 auf Kopf 0 als Bootsektor definiert, dieser wird geladen und geprüft. Die ersten 10 Bytes sind genau wie bei USB aufgebaut, darauf folgt die Anzahl der zu lesenden Sektoren und fortlaufend die zu lesenden Sektornummern. Bei korrektem Bootsektor werden die Daten auf die Ladeadresse geladen, danach wird die Startadresse angesprungen, das gleiche Verfahren wie beim Start vom USB. Die Daten werden vorher durch ein spezielles Programm auf die Festplatte geschrieben, der benötigte Platz ist im CP/M als Systemspur(en) gekennzeichnet. Das Nachladen des CCP von der Festplatte bei laufendem System funktioniert nach dem gleichen Prinzip.

Bevor Fragen auftauchen: Alle hier getroffenen Festlegungen habe ich willkürlich gewählt, das kann bei einer Nachnutzung alles beliebig verändert werden. Ich werde in den nächsten Tagen den Quelltext etwas strukturieren und möchte ihn dann veröffentlichen. Das wird allerdings kein "Kochrezept", sondern nur eine Anregung für eigene Programmierversuche. Ich werde als nächstes versuchen ein von USB startbares System zu bauen, der Start des CP/M vom GIDE funktioniert am AC1 bereits in der Praxis.

Gruß
Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
09.09.2015, 07:50 Uhr
felge1966

Avatar von felge1966

Macht doch schon mal einen guten Eindruck.

Gruß Jörg
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
12.09.2015, 21:27 Uhr
Heiko_P



Hallo,

hier ist der versprochene Quelltext für den Urlader. Der funktioniert so wie er ist nur an einer modifizierten K2521, die nötigen Erläuterungen sind in den Kommentaren zu finden. Der Code passt in einen U555, es bleibt also noch Platz für eigene Erweiterungen.

Gruß
Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
12.09.2015, 21:51 Uhr
Rolly2



Hallo Heiko, danke für deine Arbeit. Für mich sehr interessant. Ist auch gut anzupassen an andere GIDE und USB-Adressen.
Du schreibst für eine modifizierte K2521, warum?

vG. Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
12.09.2015, 22:07 Uhr
Rolly2



Pio-K2521 von 84h-87h auf 04h. Alles erst einmal klar.
Die K2521 ist, im Gegensatz zur 2526, in wenigen Rechnern drin. Ich habe keinen mit einer 2521. (8915,8924,
A5120), von daher wird es schwierig. Warum hast Du die K2521 ausgewählt?

Andreas

Dieser Beitrag wurde am 12.09.2015 um 22:18 Uhr von Rolly2 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
12.09.2015, 22:09 Uhr
maleuma




Zitat:
Henning schrieb
ich halte die Idee für toll nur über USB-Stick CP/M oder andere Systeme starten zu können. Aber kann man so was auch am KC85/4 realisieren ?

Hallo Henning und KC85-Freunde,

Um das am KC85/4(5) zu realisieren, müsste der D004-EPROM mit einem USB-Urlader erweitert werden. Die aktuelle Version 3.3 hat als Bootreihenfolge die Diskettenlaufwerke 0, 1, 2, 3 und danach das GIDE. Das Problem dabei: im D004-EPROM sind nur noch ca. 160 Byte frei für Erweiterungen. Da muss dann sicher ein Teil des Urladers in den EEPROM des M052 mit rein. Ich schreibe mir das mal mit auf meine ToDo-Liste...
--
Mario.

Dieser Beitrag wurde am 12.09.2015 um 22:10 Uhr von maleuma editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
12.09.2015, 22:43 Uhr
Heiko_P



@Rolly2:
Eine K2521 hatte ich gerade da Es sollte aber problemlos möglich sein den Urlader auch an andere ZRE-Karten anzupassen.

Die PIO-Adressen habe ich verlegt um später die USB-Routinen auf 84h - 87h nutzen zu können.

Gruß
Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
13.09.2015, 20:35 Uhr
Rolly2



Hallo Heiko, habe dir eine Mail geschickt.

vG. Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
13.09.2015, 20:43 Uhr
Heiko_P



... schon beantwortet ...

Gruß
Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
13.09.2015, 21:23 Uhr
Bert



Hallo maleuma,


Zitat:
maleuma schrieb
Um das am KC85/4(5) zu realisieren, müsste der D004-EPROM mit einem USB-Urlader erweitert werden.


Ich fände da eine andere Variante spannender:
Nur das D001 + M052 + ggf. RAM-Modul(e).

'Booten' muß man dann manuell (Bootloader vom Stick laden).
Das CAOS-ROM und IRM wird weggeschalten, die Treiber für Tastatur und Bildschirm kommen in einen Hintergrund-RAM, wie beim KC87. Da bleibt dann viel Platz für den TPA.
Der USB-Stick (oder ein Verzeichnis davon, oder ein Image) werden als Laufwerk(e) eingebunden. Offen ist dabei eigentlich nur, wie man die Attribute hinterlegt. Oder habe ich noch was übersehen?

Vorteil dieser Lösung wäre ein CP/M ohne D004, der Nachteil: die ganzen schönen Treiber (USB, M052, FADEN, etc.) gehen nicht und es ist langsamer, als auf dem D004.

Just my 2 ct.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
13.09.2015, 21:56 Uhr
maleuma



Hallo Bert,
Zitat:
Bert schrieb
Ich fände da eine andere Variante spannender:
Nur das D001 + M052 + ggf. RAM-Modul(e).

'Booten' muß man dann manuell (Bootloader vom Stick laden).
Das CAOS-ROM und IRM wird weggeschalten, die Treiber für Tastatur und Bildschirm kommen in einen Hintergrund-RAM, wie beim KC87. Da bleibt dann viel Platz für den TPA.
Der USB-Stick (oder ein Verzeichnis davon, oder ein Image) werden als Laufwerk(e) eingebunden. Offen ist dabei eigentlich nur, wie man die Attribute hinterlegt. Oder habe ich noch was übersehen?

Vorteil dieser Lösung wäre ein CP/M ohne D004, der Nachteil: die ganzen schönen Treiber (USB, M052, FADEN, etc.) gehen nicht und es ist langsamer, als auf dem D004.


So eine ähnliche Idee hatte ich auch schon mal als GIDE-Modul für das Grundgerät.
Das wäre dann so ähnlich wie das NVA-CP/M, allerdings mit Festplatte oder DOM.
Die Herausforderung bei Deiner Variante ist, den USB-Stick direkt als CP/M-Laufwerk einzubinden. Aber das ist ein Fall für das BIOS, welches da zu erstellen ist.. Vorstellen könnte ich mir das jedenfalls.
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
021
20.09.2015, 20:02 Uhr
Heiko_P



Hallo,

der Link in (012) ist aktualisiert (die Datei hat noch den gleichen Namen), es hatte sich ein Fehler in den Quelltext eingeschlichen (Danke Klaus für den Hinweis). Jetzt sollte das Laden von USB auch bei mehr als 128 Byte funktionieren

Gruß
Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
022
20.09.2015, 20:09 Uhr
Rolly2



Hallo Heiko, danke für die Info. Bei meinen kleiner Testprogramm ist mir das bis Freitag nicht aufgefallen. Gestern habe ich das ein wenig erweitert, 345 Bytes, da ging es nicht mehr. Zum testen der K2526 bin ich leider noch nicht gekommen, folgt aber noch.

vG. Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
023
20.09.2015, 20:46 Uhr
Klaus



Hallo Andreas,

ich habe von Anfang an eine größere Datei zum Testen benutzt und hatte schon fast den Verdacht, dass etwas bei der Initialisierung meiner RAM-Disk nicht ganz korrekt war. Doch nach einigen Recherchen, habe ich dann gesehen, dass die vom USB gelesenen 128Byte Blöcke immer auf die selbe Adresse im RAM geschrieben wurden.
Nun ist alles korrigiert und Heikos USB Urlader läuft an meinem NANOS auch mit großen Dateien.

Prima Arbeit Heiko. Vielen Dank.
Dank natürlich auch an Mario Leubner und Tilman Reh.

Viele Grüße,
Klaus

Dieser Beitrag wurde am 20.09.2015 um 20:50 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
024
22.09.2015, 18:49 Uhr
Rolly2



Hallo Heiko, der Urlader funktioniert auch mit der K2526 und einer K3526
einwandfrei.

vG. Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
025
01.11.2015, 16:13 Uhr
Heiko_P



Hallo,

so langsam geht es voran, zwischendurch musste ich mich um defekte Hardware kümmern die ich für dieses Projekt einsetzen möchte. Ein paar Neuigkeiten gibt es aber schon.

@maleuma (020):
Den Stick als CP/M-Laufwerk ins BIOS einbinden ohne ein komplett neues CP/M zu schreiben - das wäre natürlich die beste Variante. Leider ist mir dafür bisher keine Lösung eingefallen.

Ich verfolge einen anderen Weg. Aus dem Quelltext des CCP habe ich einen zusätzlichen Kommandointerpreter gebaut, der Programmdateien vom USB-Stick laden und starten kann. Alle anderen CCP-Funktionen (DIR, ERA, TYPE, ...) habe ich entfernt. Der Programmcode wird zusätzlich ins BIOS eingebaut, sitzt praktisch "hinter" dem BIOS und wird beim Kaltstart an Stelle des CCP angesprungen. Das BIOS wird so angepasst, dass es beim Warmstart den CCP vom Stick nachlädt. Um den nötigen Platz zu bekommen sind die BIOS-Funktionen auf das nötige Minimum reduziert. Zusammen mit dem normalen BDOS und CCP ergibt das ein Minimal-CP/M, welches vom Stick gestartet wird und Programme direkt vom Stick laden und starten kann. Das reicht aus, um z.B. eine leere GIDE-Festplatte zu formatieren, ein System aufzuspielen und die für den Betrieb notwendigen Programme auf die Festplatte zu kopieren.

Auf dem Foto ist der erste erfolgreiche Test zu sehen:




Wenn alles fertig ist und funktioniert gibts den Quelltext für die Nachnutzung.

Gruß
Heiko

Dieser Beitrag wurde am 01.11.2015 um 16:14 Uhr von Heiko_P editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
026
01.11.2015, 19:28 Uhr
Rolly2



Heiko, danke für die Info. Da bist Du ja schon viel weiter als ich. Ich bastele noch an den Grundlagen, aber mal sehen. Ich bin schon sehr gespannt.

vG. Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek