•  Back 
  •  XHDI - eXtended HardDisk Interface (Version 1.30) 
  •  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-File16.8.5  XHDI-Funktionen                                            TOS

Alle Funktionen müssen im Supervisor-Modus aufgerufen werden. Das 
Verhalten für Aufrufe im User-Modus ist undefiniert. Bis auf D0 werden 
keine Prozessorregister verändert. Undefinierte Opcodes führen zur 
Fehlermeldung EINVFN.

Einige der Funktionsaufrufe - insbesondere XHReadWrite() - können zum 
Aufruf von BIOS- oder XBIOS-Routinen im Betriebssystem und damit zur 
Aktivierung des Critical Error Handler führen. Im Zweifel muß der CEH 
also vom Aufrufer abgeschaltet werden.

Für alle Funktionen seien folgende Return-Werte definiert:

TOS-Fehlernummern:

   0:  OK (OK) 
  -1:  unspezifizierter Fehler (ERROR) 
  -2:  Gerät nicht bereit (EDRVNR) 
 -15:  ungültige Device/Targetnummer (EUNDEV) 
 -32:  falsche Funktionsnummer (EINVFN) 
 -36:  Gerät ist zur Zeit 'reserved' (EACCDN) 
 -46:  BIOS-Device wird vom Treiber nicht bedient (EDRIVE) 

SCSI-Fehlernummern (Bereich von -200..-455)

 (-200 - N):  SCSI-Errorcode N (der `Additional Sense Code' aus Byte 
              12 des `Extended Sense Format', siehe Anhang B in `draft 
              proposed American National Standard for information 
              systems - Revision 11a - SCSI-3 Primary Commands, 28 
              March 1997').

IDE-Fehlernummern (Bereich von -456..-711)

 (-456 - N):  IDE-Errorcode N (Wert des IDE-Fehlerregisters).

Hinweis: SCSI-Fehlercodes können logischerweise nur bei ACSI-/SCSI- 
Geräten auftreten. Für Platten am IDE-Interface des ST-Book oder 
Falcon030 (oder Maschinen, bei denen ein derartiges Interface 
nachgerüstet worden ist), kann auch optional folgende Zuordnung 
benutzt werden:

 Bit im IDE- 
 Fehlerregister  Bedeutung               SCSI-Fehler  XHDI-Fehler 
 1               Track 0 not found       $06          -206 
 0               DAM not found           $13          -219 
 4               ID-Field not found      $12          -218 
 7               Bad block mark          $10          -216 
 6               Uncorrectable error     $11          -217 
 2               Command aborted         $20          -232 
 5               Media Change            $28          -240 
 3               Media Change requested  $5A          -290 

(Es empfiehlt sich, die einzelnen Bits in der angegebenen Reihenfolge 
zu testen).

Bei andersartigen Geräten, wie zum Beispiel Diskettenlaufwerken an der 
Floppy-Controller-Schnittstelle, können auch andere, hier noch nicht 
spezifizierte Error-Codes zurückgeliefert werden.

Für die Parameterübergabe gilt die GEMDOS-Übergabe-Konvention. Alle 
Parameter werden auf dem Stack abgelegt (zuletzt, also an der 
niedrigsten Adresse, der Opcode als 16-Bit-Wert). Das 32 Bit große 
Ergebnis wird in D0 zurückgeliefert.

Immer dann, wenn dokumentiert ist, daß der Aufrufer Nullzeiger 
übergeben darf, bedeutet die Übergabe eines Nullzeigers, daß der 
Aufrufer sich für den zurückzuliefernden Wert nicht interessiert. 
Treibersoftware muß also solche Zeiger vor einer Dereferenzierung 
immer überprüfen.

Querverweis: XHDI-Spezifikation   SCSI-Spezifikation   BIOS