wie funktioniert der C128 Autostart?

Es gibt 49 Antworten in diesem Thema, welches 4.567 mal aufgerufen wurde. Der letzte Beitrag (9. Februar 2024 um 12:40) ist von Cpt.Hardy.

  • Ich muss C. Hardy beistimmen: Das hätte ich auch so verstanden.

    Ich hätte all-caps "CONTINUING WILL RESULT IN DATA LOSS!" so verstanden, dass weitermachen zu Datenverlust führt.

    Wie soll das denn bitte noch deutlicher formuliert werden? Drei Rufzeichen mehr? Fett kursiv unterstrichen? Blinken und Hupen?

    Sorry, aber ich finde, irgendwo sollte sich der mündige User schon einigermassen klar darüber sein, was er da gerade womit genau macht. Das ist echt kein Fehler des Programms.

  • ich will mich wirklich nicht über dieses mbm11.prg streiten zumal das evtl. auch nur eines von mehreren Programmen ist, um den C128 autoboot zu verwenden.

    Aber Freunde, logisch ist es nicht, daß man zuerst einen Bootsektor erzeugen soll, der ein Programm aufruft, welches in dem Moment noch nicht auf der Diskette sein darf, weil das Bootsektor-Erstellungs-Programm bei seiner Arbeit den Disketten-Inhalt zerstört.

    ist mir hier jetzt aber auch egal, es gibt ja noch andere Wege zum Ziel ....

  • ich will mich wirklich nicht über dieses mbm11.prg streiten zumal das evtl. auch nur eines von mehreren Programmen ist, um den C128 autoboot zu verwenden.

    Autoboot-Maker für den 128er gibt es in der Tat reichlich, aber jedes davon muss die Blockbelegung prüfen und ggfs. beim Benutzer rückfragen, ob die Aktion wirklich durchgeführt werden soll. Der einzige Weg, das idiotensicher zu bekommen, ist, statt INPUT "Are you sure?" ein PRINT "Won't do!":END auszuführen.

    logisch ist es nicht, daß man zuerst einen Bootsektor erzeugen soll, der ein Programm aufruft, welches in dem Moment noch nicht auf der Diskette sein darf, weil das Bootsektor-Erstellungs-Programm bei seiner Arbeit den Disketten-Inhalt zerstört.

    Da dieser Thread in Zukunft vielleicht noch von anderen Leuten gelesen wird, drösel ich das jetzt noch kurz auf, bevor den Quatsch noch einer für bare Münze nimmt. Also:

    - Natürlich darf das zu startende Programm bereits auf der Disk sein. Commodore-DOS beginnt mit dem Schreiben in der Mitte der Disk; bis der Bootblock auf Spur 1 belegt wird, muss man schon eine ganze Menge Daten geschrieben haben (selbst auf einer 1541-Disk ca. 600 Blocks).

    - Das Bootsektor-Erstellungs-Programm beschreibt nur den Bootblock und belegt ihn in der BAM, der Rest der Disk bleibt völlig unberührt. Da wird nicht "die gesamte Diskette dadurch korrupt" oder "der Disketten-Inhalt zerstört". Aber wenn man auf einer rappelvollen Geos-Startdisk trotz ausdrücklicher Warnung einen Block verändert, und dieser Block zufällig Teil einer Datei ist, die beim Starten von Geos gebraucht wird - ja, dann startet Geos nicht mehr. Wow, wer hätte das ahnen können?

    Yes, I'm the guy responsible for the Bitte melde dich an, um diesen Link zu sehen. cross assembler. And some Bitte melde dich an, um diesen Link zu sehen..

  • und das lustige ist, dasselbe Problem kann Dir 40 Jahre später noch mit einem Windows-PC passieren, wenn Du einen USB-bootstick im slot stecken gelassen hast.

    Der Unterschied ist allerdings, daß man bei modernen PCs die Bootreihenfolge festlegen kann, womit man ein versehentliches Booten verhindern kann. Für den Fall, daß ausnahmsweise mal ein anderes Medium gebootet werden soll, gibt es im BIOS das Bootmenü.

    Das geht nicht, da die Bootsektor-Kennung direkt bei Offset 0 beginnt und der Block daher keine gültige Blockverlinkung haben kann.

    Das sehe ich allerdings auch als grobe Designsünde. Es wäre doch so naheliegend gewesen, die ersten beiden Bytes DOS-kompatibel frei zu halten.

  • Das sehe ich allerdings auch als grobe Designsünde. Es wäre doch so naheliegend gewesen, die ersten beiden Bytes DOS-kompatibel frei zu halten.

    Ja. Ich verstehe auch nicht, dass damals keiner auf die Idee gekommen ist, die Kennung bei Offset 2 beginnen zu lassen. Oder die Kennung bei Offset 0 mit 00 ff beginnen zu lassen. "Naheliegend" ist treffend beschrieben.

    Yes, I'm the guy responsible for the Bitte melde dich an, um diesen Link zu sehen. cross assembler. And some Bitte melde dich an, um diesen Link zu sehen..

  • Aber wenn man auf einer rappelvollen Geos-Startdisk

    da war nichts rappelvoll sondern von den 3180 Blöcken noch 818 Blocks frei

    es war also 3/4 belegt ....aber sei's drum ....

  • Das sehe ich allerdings auch als grobe Designsünde. Es wäre doch so naheliegend gewesen, die ersten beiden Bytes DOS-kompatibel frei zu halten.

    Ja. Ich verstehe auch nicht, dass damals keiner auf die Idee gekommen ist, die Kennung bei Offset 2 beginnen zu lassen. Oder die Kennung bei Offset 0 mit 00 ff beginnen zu lassen. "Naheliegend" ist treffend beschrieben.

    Wir sprechen hier immer noch von Commodores genialer Softwareabteilung, oder?

  • Aber wenn man auf einer rappelvollen Geos-Startdisk

    da war nichts rappelvoll sondern von den 3180 Blöcken noch 818 Blocks frei

    es war also 3/4 belegt ....aber sei's drum ....

    Nur so als Randinformation:

    GEOS/MP3 reserviert Blöcke ab Tr=1/Se=0, GEOS2 wohl erst nach dem Verzeichnis (Tr=18+1 oder 40+1), also wie das Floppy-DOS. Ich kann mir ja mal überlegen das zu ändern. Allerdings dürfte das bei MP3-128 aussichtslos sein, da zumindest der 1571-Treiber kaum noch Platz für Veränderungen bietet. Und wenn die Suche in zwei Schritten erfolgt, sind ein paar zus. Abfragen erforderlich, das erfordert etwas mehr an Speicher im Treiber und der ist eben knapp...

    Allerdings ändert das nichts daran das in Deinem Fall trotzdem (vermutlich) die erste Spur schon mit Daten belegt wäre (nach dem Verzeichnis nur Platz für 1600 Blocks, der Rest wird dann ab Tr=1 gespeichert).

    Selbst wenn nicht ist die Anzahl der freien Blocks keine Garantie das der erste Block auf Disk unbenutzt ist. Man kann die Diskette ja von vorne bis hinten beschreiben und dann wahllos Dateien löschen. Dann sind die freien Blocks quer über die gesamte Diskette verteilt.

    Nein, der einzig sichere Weg ist eine leere Diskette zu verwenden (oder BootMake via BASIC auf eine leere Diskette speichern). Man kann ja das BootMake-Programm von der einen Diskette laden und dann eine andere Diskette einlegen: Unter VICE hab ich das BootMake-Programm per Drag'n'Drop auf das VICE-Fenster gezogen, dann über das VICE-Menü die 1581-Disk eingelegt.

  • Unter VICE hab ich das BootMake-Programm per Drag'n'Drop auf das VICE-Fenster gezogen, dann über das VICE-Menü die 1581-Disk eingelegt.

    ja, ganz genau so hat es heute morgen bei mir auch schon funktioniert mit einer leeren *.D81

    man muß nur wissen, wie e geht und da sowas ja auch nicht tag-täglich benutzt wird (hab ich jetzt in einener C128 Karriere zum 1. Mal verwendet) muß da mE auch nicht geändert werden.

    also besten Dank für Eure Hilfe ... und kann hier als "erledigt" markiert werden ...