•  Back 
  •  BIOS Strukturen 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
Topic       : TOS - das Betriebssystem
Author      : 
Version     : tos.hyp (5. März 2013)
Subject     : Programmieren/Atari
Nodes       : 3001
Index Size  : 93602
HCP-Version : 5
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : Titel
@help       : 
@options    : +g -i -s +x +zz -t4
@width      : 70
View Ref-File3.11.4  PUN_INFO                                                   TOS

Diese Struktur ist wie folgt definiert:

typedef struct
{
    WORD puns;               /* Anzahl der Geräte               */
    BYTE pun[16];            /* diverse Flags                   */
    LONG part_start[16];     /* Partitionsanfänge               */
    LONG P_cookie;           /* muss "AHDI" sein                */
    LONG *P_cooptr;          /* zeigt auf das vorherige Element */
    UWORD P_version;         /* Versionsnummer (>= 0x0300)      */
    UWORD P_max_sector;      /* maximale Sektorgröße            */
    LONG  reserved[16];      /* reserviert                      */
} PUN_INFO;

 puns          Enthält die Anzahl vom Hard-Disk-Treiber gefundenen 
               Festplatten.

 pun

                Bit 0..2:  Gerätenummer der Festplatte.

                Bit 3:     Bei gesetzem Bit handelt es sich um ein 
                           Gerät an der SCSI-Schnittstelle (sonst: 
                           ACSI): Diese Bit ist zwar noch nicht 
                           offiziell dokumentiert, kann aber wohl ohne 
                           Vorbehalt benutzt werden.

                Bit 4..6:  Reserviert.

                Bit 7:     Wenn dieses Bit gesetzt ist, dann wird das 
                           BIOS-Gerät nicht vom Plattentreiber 
                           verwaltet (gilt beispielsweise für die 
                           beiden Diskettenlaufwerke auf den 
                           Gerätenummern 0 und 1)

 part_start    Enthält für jede (unterstützte) Gerätenummer die Nummer 
               des Startsektors auf der betreffenden Festplatte.

 P_Cokkie      Magic-Wert; immer "AHDI"

 P_cookptr     Sollte immer auf das vorherige Strukrurelement zeigen.

 P_version     Versionsnummer z.B. 0x0300

 P_max_sector  Beschreibt die größte auftretbare Blockgröße für BIOS- 
               Sektoeren.

Beispiel wie man die Adresse der Struktur bekommt:

PUN_INFO *GetPunPtr (void)
{
  PUN_INFO *P;
  int32_t oldstack;

  oldstack = Super (0L);
  P = *((PUN_INFO **)(0x516L));
  Super ((void *)oldstack);

  if (p)
    if (P->P_cookptr == &(P->P_cookie)) /* Cookie ok? */
      if (P->P_version >= 0x300)
        return P;

  return 0L;
}

Querverweis: XHDI-Spezifikation   pun_ptr