P30 /P3 cp/m Disketten, .IMG was ich schon immer wissen wollte.

  • IMG Format - Alphatronic P30 /P3 cp/m Disketten,
    wie erzeuge ich eine Diskette direkt auf eine Zielmaschine?


    Alphatronic P3 / P30 IMAGE FILE FORMAT (.IMD) wie lese ich sowas?
    Im WEB habe ich eine FORMAT-Übesicht *) gefunden und mal z.B. an einigen P3 / P30
    .imd Files mit einem HEX Browser auf einem PC angesehen.


    Zu Beginn ist meist ein ASCII-String der mit 1Ah (EOF) folgt.
    Es werden hier bei Doppelkopf beschriebene Disketten immer alternierend
    von Track 0, Side 0 hier die 5 Sectoren abgelegt und dann auf Track 0,
    Side 1 die 5 Sectoren gespeichert. Dann weiter mit Track 1, Site 0
    und dann von oben - usw.


    Bei dem Anfang einer Spur (TRACK) kommt hier 04 als Mode byte vor.
    Dann folgt ein image - Bereich wie hier:
    Die Werte sind als HEXA zu interpretieren ( z.B. 4F als Track =79d)


    04 = Mode byte - 300 kbps MFM Aufzeichnungsdichte
    00 = Track (Cylinder)
    01 = Side (HEAD)
    05 = number of sectors in track
    03 = value sector size here 1024 as FORMATTING
    01 02 03 04 05, sector numbering map ( 5 Einträge )
    01 = sector data record ( 1 Sector normal hier folgend 400h Inhalt)


    Unter 6.7 Manual IMD-Prog. *)- Copyright 2005-2008 Dave Dunfield -
    sind diverse (data record) Kennungen zu beachten.
    02,04,06,08 sind mit einem folge - byte (FILL code) dargestellt (zwei byte für
    einen sector). Das ist hier eine Art der compressed! Also z.B. ein oben
    definierter Sector der nur E5h enthält, würde dann mit "02 E5" markiert sein.
    Gegen ENDE sind die letzten Spuren wie folgt dargestellt.
    .. .. ..
    04 4F 00 05 03 01 02 03 04 05 02 E5 02 E5 02 E5 02 E5 02 E5 - Track 79, Side 0;
    04 4F 01 05 03 01 02 03 04 05 02 E5 02 E5 02 E5 02 E5 02 E5 - Track 79, Side 1 - fertig!


    Aus dem Datenstrom ist für z.B. eine TA Alphatronic P3 / P30
    cp/m Diskette ( auch andere Diskinhalten) folgendes abzuleiten:


    In den runden Klammern sollen jeweils einen Sector mit 1024 Byte ( Block) sein.
    (dir0) ist z.B. der erste BLOCK mit 0 für Einträge als directory - Infos.
    Je Block sind 32 Byte x 32 Einträge = 1024 Byte. Somit 128 Directory- Einträge
    können dargestellt/gespeichert (von TA so eingerichtet) werden.
    Jede Blocknummer wird als Eintrag mit 16 Bit dargestellt.


    Aus dem .IMG file sind die Lagen der BLKxx zu den Programmteilen ersichtlich.
    T=0,S=0 (boot),(cp/m1),(cp/m2),(cp/m3),(cp/m4)
    T=0,S=1 (dir0),(dir1 ),(dir2 ),(dir3 ),(BLK04) (in BLK04 startet code vom pip.com)


    T=1,S=0 (cp/m5),(cp/m6),(cp/m7),(cp/m8),(else?)
    T=1,S=1 (BLK05),(BLK06),(BLK07),(BLK08),(BLK09) usw...


    Etwas Überlegungen sind erforderlich um die Zählweise der Blöcke zu
    verstehen. Je beim TA ( Px / Pyy) cp/m die Systemspuren eingerichtet wurden.


    Aus dem .IMG File ist es sehr einfach, Teile oder alles per V24 Drehkabel
    mit dem Tera Term (binmode) und einem kl. Programm, direkt auf eine
    Alphatronic P2 bis P40 ( direkt auf eine Zielmaschine) eine Diskette zu speichern.
    Disk-Formate beachten je Pxx. Sowas würde ich per MOS oder bei einem laufendem
    cp/m per SID / DDT erstellen.


    Aus Interesse schau ich demnächts mal, ob ich was daraus mache.
    Ein schneller Überblick der Strukturen ist ein Auszug beigefügt.


    Viele Grüße
    Helwie44