Es wird, noch ein paar Tests und ich kann's veröffentlichen - allerdings ist es jetzt doch ein Misch-Masch aus "Turbo C" und aus INT 13h BIOS Aufrufen geworden.
Das mit Assembler alleine zu programmieren wird sehr umfangreich und daher auch sehr zeitintensiv, da ist 'C' die bessere Wahl.
Es basiert aber auf den Erkenntnissen des 5.ten Beispielprogramms hier im Forum.
Einer der Ziele war, es MUSS auf einem IBM PC/XT lauffähig sein, ein anderes dass man auch Teile der Image-Datei auf ZIP 100 (oder andere Wechselträger) speichern kann.
Dazu kann man zuerst die als Image zu sichernde Festplatte auswählen, dann kann man auch weniger Sektoren angeben (zum Test) und man kann die Größe der Zieldatei (pro Teil) angeben.
Letztendlich kann man auch noch den Dateinamen selbst (ohne File-Extension) wählen.
Das habe ich auch schon ausprobiert, das Programm erzeugt Dateien, die man dann auch mit WinImage laden kann.
Wenn man die so erzeugte Image-Datei als RAW-Datei für ein Virtualisierungsprogramm nutzen will, geht auch (bspw. in PCEm).
Es wird unabhängig von der Partitionierung der Platte alles gesichert, so dass bspw. Platten mit einer XENIX oder OS/2 Installation auch kein Problem darstellen.
Ich habe noch nicht alle Fehleingaben seitens des Benutzers abgefangen, da habe ich noch ein paar Minuten dran zu basteln.
Ich hoffe aber, dass das mal ein sinnvolles Programm ist, was hier alle auch im echten Sammler-Leben nutzen können - also ist es eigentlich keine Demo, sondern viel mehr.
Hier im Beispiel ist die erste Festplatte vom Typ 2 (20MB), und die zweite Festplatte vom Typ 17 (40MB). Damit wird man eine ZIP100-Diskette natürlich nicht füllen können, aber es wird ja auch noch größere Festplatten geben. Übrigens wird das Programm auf moderneren Rechnern mit Festplattengrößen größer 4GB nicht korrekt laufen, weil nur 32bit Integer im Programm genutzt werden. Wie ich das abfange, weiss ich noch nicht, ggfls. reicht ja einfach ein Hinweis vorab.
Ist mehr als eine Datei erzeugt worden, können diese in korrekter Reihenfolge einfach auf dem Zielrechner mit copy /b part1 part2 part3 result zu einer einzigen Datei wieder zusammengesetzt werden.