Atarium: Neues von Atari

Was die »TOS 1.4 Release Notes« verraten

Die Düsseldorfer Messe hat ja bekanntlicherweise nicht nur an der Hardware-Front einige Neuigkeiten gebracht. Mit der endgültigen Freigabe des »Rainbow TOS« und dem Erscheinen des offiziellen Festplattentreibers AHDI 3.01 ist auch bei der Systemsoftware wieder einiges aufzuarbeiten.

Zunächst hat Atari endlich das Format der Physical-Unit-Struktur offiziell dokumentiert. Die in C formulierte Struktur finden Sie im Listing. Diese Struktur wird vom AHDI gesetzt, wobei der Zeiger auf die Struktur in der Systemvariablen $516 liegt. Bevor Sie auf die Informationen in der PUN_INFO-Struktur zugreifen, müssen Sie zunächst überprüfen, ob auch eine korrekte Struktur vorhanden ist. Denn bislang setzte ausschließlich AHDI 3.01 eine solche Struktur. Dafür hat Atari gleich eine Reihe Absicherungen vorgesehen: Zunächst gibt es einen »Magic cookie«, in dem der Wert $41484449 (»AHDI«) stehen muß. Im darauffolgenden Langwort muß zusätzlich ein Zeiger auf den »cookie« weisen. Und schließlich gibt es noch einen Eintrag für die Treiberversion - so kann Atari später die Struktur problemlos erweitern. Eine C-Funktion, die all dies überprüft, finden Sie im abgedruckten Listing.

Was kann man nun mit den Informationen in dieser Struktur anfangen? Zunächst finden Sie in »puns« die Anzahl der vom Hard-Disk-Treiber gefundenen Festplatten. In »pun« finden Sie zu jedem logischen Laufwerk die entsprechende ACSI-Gerätenummer. Dabei bedeutet der Wert $FF, daß sich der Festplattentreiber für dieses Gerät nicht zuständig fühlt. Man darf darauf gespannt sein, wie der AHDI auf dem TT zwischen Festplatten am ACSI-Bus und am SCSI-Bus unterscheidet... In »part_start« finden Sie für jede Partition den Startsektor auf der Platte. »p_max_sector« beschreibt schließlich die größte auftretbare Blockgröße für BIOS-Sektoren. Da es auch Wechselplatten gibt, reicht es eben nicht, mit »Getbpb()« die Sektorgrößen auf allen Geräten abzufragen - daher wohl auch der ungewohnte Aufwand, den Atari hier getrieben hat.

Noch ein Wort zur Versionsprüfung: Obwohl im »Cookie« die Zeichenkette »AHDI« steht, muß der installierte Festplattentreiber nicht unbedingt von Atari sein. Ist der Cookie richtig gesetzt und »p_version« größer oder gleich $300, so ist das folgendermaßen zu interpretieren: Die Informationen in der PUN_INFO-Struktur sind gültig und der installierte Treiber ist auf BIOS-Ebene voll kompatibel zu AHDI 3.00.

So mancher wird sich schon getagt haben, was denn die oberen 15 Bit in der ROM-Header-Variablen »os_palmode« (Offset $1C ab sys_base) zu bedeuten haben. Atari hat die Gelegenheit der TOS-Release-Notes am Schopf gegriffen und endlich beschrieben, was es damit auf sich hat: Die Variable heißt jetzt »os_conf« und enthält in den oberen 15 Bit eine Länderkennung für das eingebaute Betriebssystem. Damit fragen Sie endlich in eigenen Programmen sauber ab, welche Landessprache, welches Datums- und welches Währungsformat aktuell ist. Eine Liste der Landeskennungen finden Sie im Textkasten. Auch wenn Sie noch nicht das TOS 1.4 besitzen, können Sie diese Angabe nutzen, denn die Länderkennung funktioniert schon ab TOS 1.0. Da einige Programme es für nötig halten, die Systemvariable »_sysbase« auf eine Tabelle im RAM umzubiegen, sollten Sie mit Hilfe von »os_beg« (Offset 8 in der Tabelle) zunächst den tatsächlichen ROM-Header finden. Zur Erinnerung: Es war schon immer dokumentiert, daß das Betriebssystem nicht unbedingt bei $FC0000 anfängt. Beim TOS 1.6 im STE und bei TOS 3.0 im TT ist der Fall nun auch tatsächlich eingetreten.

Die Liste der »Country-Codes« im ROM-Header

Land Kürzel Nummer
U.S.A USA 0
DeutschlandFRG1
FrankreichFRA2
GroßbritannienUK3
SpanienSPA4
ItalienITA5
SchwedenSWE6
franz. SchweizSWF7
deutsche SchweizSWG8
TürkeiTUR9
FinnlandFIN10
NorwegenNOR11
DänemarkDEN12
Saudi-ArabienSAU13
NiederlandeHOL14

Ein Buchtip

Wärmstens empfohlen sei an dieser Stelle das GEM-Buch von Dieter und Jürgen Geiß (vom Hüthig-Verlag): Die beiden durch die ST-Version von Adimens bekannten Programmierer haben all ihr Wissen über GEM zusammengetragen und dabei auch GEM-Versionen auf anderen Computern nicht aus den Augen verloren. Als Beispielprogramm finden Sie im Buch das GEM-Clipboard-Accessory: Es stellt Metafiles, Images und Texte in Fenstern dar, benutzt die Message-Pipe, verlegt Drop-Down-Menüs in Fenster und vieles mehr.

(ba)

Listing: Das Format der PUN_INFO-Struktur und wie Sie diese bekommen: pun_info.c

Und zum Abschluß noch einige Nachbemerkungen zu unseren Programmiertricks in der Oktober-Ausgabe [1], denn leider hatten sich einige kleine Unkorrektheiten eingeschlichen:
In Tip 16 behaupteten wir, daß es reicht, bei TOS Aufrufen die Register d0, dl, a0 und a1 zu retten. Das mag funktionieren, Atari hat aber dokumentiert, daß auch a2 und d2 verändert werden könnten: »Registers d0-d2 and a0-a2 can be modified...« [2]. Also gehen Sie sicher und retten auch d2 und a2.

Tip 29 rät dazu, die Line-A Routinen statt der VDI-Funktionen zu benutzen. Mal davon abgesehen, daß die Line ARoutinen das Zeichnen von Kreisen etc. nicht unterstützen: Die Line-A Funktionen werden laut Atari auf künftigen Grafikkarten und auch schon im TT nicht mehr unterstützt. Wer portabel sein will, läßt also seine Finger von den Line-A Funktionen.

In Tip 48 rieten wir Ihnen, alle Interrupts zu sperren, um optimale Geschwindigkeit zu erhalten. Der Geschwindigkeitsgewinn ist allerdings geringfügig, so daß sich diese Methode nur in besonders zeitkritischen Programmteilen eignet.

Im Textkasten finden Sie die allerneueste XBRA-Liste, die gerade nach der Atari-Messe deutlich gewachsen ist. Sollten Sie ebenfalls ein vektorverbiegendes Programm entwickelt haben, zögern Sie nicht, und informieren Sie uns. Wenden Sie sich in diesem Fall an die im Textkasten aufgeführte Adresse.

(ba)

Quellennachweis:
[1] »50 Programmiertricks«, ST Magazin 10/1989, Seite 20
[2] »Atari GEMDOS Reference Manual«
[3] Dieter und Jürgen Geiß, »Vom Anfänger zum GEM-Profi«, ISBN 3-7785-1792-9, Hüthig Buch Verlag GmbH .

Liste der offiziell vergebenen XBRA-Kennungen (Stand 28.9.1989)

XBRA-ID Autor, Programm
AMC1 T A. Beißner, Software zur Monitor-Switchbox von Hard&Soft
AMC2 A. Beißner, Treibersoftware zum XT-Tastatur interface von Hard&Soft
AVOJ O. Joppich, Anti-Virus-Programm
BIGS J. Reschke, BigScreen, Ganzseitenemulation, ST Magazin 11/1988
CB2K C. Brod, Patch zur Behebung des »2KB-GEMDOS Bugs«
CBCE C. Brod, modifizierter Critical-Error-Handler
CBHD C. Brod, Harddisktreiber
CBHY C. Brod, Tastaturtreiber in »Hyperformat«
CBIT G. Sawade, c't Bus-Interface-Treiber
CISY I. Ciechowski, CISYSTEM (Ciechowsky Computer Innovations)
CLK1 D. Jankowski, Utility für MEGA-ST Hardwareuhr
COLO M. Schneider, »Colos« (Mono- >Color-Converter; Vertrieb ASH)
CRAC Protar, Protar-Festplattentreiber DPRS W. Cordes, Druckerbuffer (PD)
ETM M. Nick, Entmauser
FLXD A. Esser, Flexdisk (in Vorbereitung befindliche Version)
GNUC E. Röder, GNU-CC-Libraries
HABO J. Reschke, HaBoo 1.8, Harddiskcache (erstmals veröffentlicht in ST-Magazin 6/1988)
_HD_ U. Seimet, HDDRIVER (im Lieferumfang des CCD Tools Diskus«) '
HDJR Hard & Soft, Hard & Soft Harddisk-Interface
HMOC A. Alich, Object-Cache für Hänisch-Modul«
IDSK S. Becker, ICON-Desk (aus ST-Digital)
IMAC W. Cordes, Bootsektor-Wächter (PD)
JSHD J. Stessun, Hyper-Density Kontrollprogramm (ST Computer 7/1989)
KbEv M. Seyfried, Keyboard-Handling-Modul für MM2
KIM J. Reschke, Keyboard Interrupt Manager
LPCD L. Prüßner, Carrier-Detector
LPJM L. Prüßner, Joy-Mouse (ST-Magazin 7/89)
MM2_ T Tempelmann, Megamax Modula 2
MAST Naumann&Röder, Master (ab V5.6)
MJAF M. Jahr, AUTOFONT
MUPF G. Steffens, - Mupfel« (Unix-Shell)
N203 N. Kruysbergen, Multipurpose Accessory
OVER B. Gebauer, Treiber zum Hyperscreen/Overscan Umbau
PROT M. Schneider, »Protos« (Screen-Utility; Vertrieb ASH)
PRTR Protar, Protar Wechselplattentreiber
QIKM G. Steffens, QuickMouse, überarbeitete Version des Mausbeschleunigers aus der c't
QMAC W: Cordes, Quickmaustreiber-Acc (PD)
QMCP W. Cordes, Quickmaustreiber in CHEMPLOT
RING J. Reschke, Telefonklingel-Detektor
ROTS T Fürhölter, Rotate
SBKM S. Brück, RING-Erkennung in Modem-Routinen
SBTE S. Brück, Terminalprogramm
SBTS S. Brück, Trap-Spy
SCAH J. Reschke, Speed Cache (Hard & Soft)
SCRS U. Thürmann, Bildschirmschoner
SELC M. Haydn, File-Selector von C-Lab
SENV A. Groß, Environment-Setter
SMon K. Isakovic, System-Monitor
SNAP K. Hinsen, That's-Snap-Accessory
SPEX S. Eissing, Steve's Printing Exzessory V1.3 (erstmals veröffentlicht in ST-Magazin 4/1988)
TMon T Tempelmann, Tempelmon
TSEN J. Kriege, TSE-NET (Netzwerk von Inotec)
TWFS K. Hinsen, That's-Write-File-Selector-Accessory
UKBl U. Koloska, Fastload
UKB3 U. Koloska, Fastload & Midi-Through
Vsco A. Griesert, Virusscope (Maxon PD-Disk 227)
VSTM F. Frentzen, Transfer (über MIDI, PD)
WINZ C. Brod, WINZ-RAM-Disk (aus dem Buch »Scheibenkleister«)
XKBD A. Esser, Extended Keyboard, aktuelle Version

Julian F. Reschke
Aus: ST-Magazin 12 / 1989, Seite 56

Links

Copyright-Bestimmungen: siehe Über diese Seite