	18 Protobt

	void Protobt( void *buf, long serialno, int disktype, int execflag );

Diese Funktion dient dazu, einen Bootsektor zu erzeugen. Ein Bootsektor
steht auf Track 0, Sektor 1, Seite 0 einer Diskette und gibt dem DOS
Auskunft ber den Diskettentyp. Ist der Bootsektor ausfhrbar, kann
damit das Betriebssystem geladen werden. Mit dieser Funktion knnen
Sie einen neuen Bootsektor erzeugen, etwa fr ein anderes Disketten-
format, oder einen vorhandenen Bootsektor verndern. Die Parameter
haben folgende Bedeutung:

execflag: Damit wird entschieden, ob der Bootsektor ausfhrbar ist:
	  0 = nicht ausfhrbar;
	  1 = ausfhrbar;
	  -1= Bootsektor bleibt so, wie er war.

disktype: 0 = 40 Track, single sided (180 K);
	  1 = 40 Track, double sided (360 K);
	  2 = 80 Track, single sided (360 K);
	  3 = 80 Track, double sided (720 K);
	  4 = High-Density
	      (nur wenn im _FDC-Cookie der Wert fr HD-Untersttzung
	      eingetragen ist);
	  5 = Extra-High-Density
	      (nur wenn im _FDC-Cookie der Wert fr ED-Untersttzung
	      eingetragen ist);
	  -1= Disktyp bleibt unverndert.

serialno: ist eine 24-Bit-Seriennummer, die in den Bootsektor
	  geschrieben wird. Ist die Seriennummer grer als 24 Bits
	  ($01000000), so wird eine Zufalls-Seriennummer erzeugt
	  (mit der XBIOS-Funktion Random..\SPECIAL\RANDOM (17)). Ein Wert von -1
	  bedeutet, da die Seriennummer nicht verndert wird.

buf:	  ist die Adresse eines 512-Byte-Puffers, der den Bootsektor
	  enthlt bzw. in dem der Bootsektor erzeugt wird.

Ein Bootsektor hat folgenden Aufbau:

Adresse 	40 Track SS	40 Track DS	80 Track SS	80 Track DS

 0 -  1 	Branch-Befehl auf Bootprogramm sofern ausfhrbar
 2 -  7 	'Loader'
 8 - 10 	24-Bit-Seriennummer
11 - 12  BPS	512		512		512		512
13	 SPC	1		2		2		2
14 - 15  RES	1		1		1		1
16	 FAT	2		2		2		2
17 - 18  DIR	64		112		112		112
19 - 20  SEC	360		720		720		1440
21	 MEDIA	252		253		248		249
22 - 23  SPF	2		2		5		5
24 - 25  SPT	9		9		9		9
26 - 27  SIDE	1		2		1		2
28 - 29  HID	0		0		0		0
510-511  CHECKSUM

Die Abkrzungen haben dabei folgende Bedeutung:

BPS:	Bytes pro Sektor. Die Sektorgre ist bei allen Formaten
	einheitlich 512 Bytes.

SPC:	Sektoren pro Cluster. Die Anzahl der Sektoren, die vom DOS
	zu einem Block zusammengefat werden, 2 Sektoren gleich 1 KByte.

RES:	Anzahl der reservierten Sektoren am Beginn der Diskette
	einschlielich dem Bootsektor.

FAT:	Die Anzahl der File Allocation Tables auf der Diskette.

DIR:	Die maximale Anzahl der Directory-Eintrge.

SEC:	Die Gesamtzahl der Sektoren auf der Diskette.

MEDIA:	Media Descriptor Byte, wird vom ST-BIOS nicht benutzt.

SPF:	Anzahl der Sektoren pro FAT.

SPT:	Anzahl Sektoren pro Track.

SIDE:	Anzahl der Seiten auf der Diskette.

HID:	Anzahl der versteckten Sektoren auf der Diskette.

Der Bootsektor ist kompatibel zu MS-DOS. Deshalb sind alle 16-Bit-Worte
im 80x86-Format abgespeichert (erst Low-Byte, dann Hi-Byte).

Ist die Checksumme des gesamten Bootsektors $1234, so ist der Sektor
ausfhrbar. In diesem Falle steht ab Adresse 30 das Bootprogramm.

Beispiel:

	move.w	#-1,-(sp)	* Ausfhrbarkeit nicht ndern
	move.w	#3,-(sp)	* 80 Tracks, DS
	move.l	#-1,-(sp)	* Seriennummer nicht ndern
	move.l	#puffer,-(sp)
	move.w	#18,-(sp)	* Protobt
	trap	#14
	lea	14(sp),sp

puffer: ds.b	512

Mit diesem Beispielprogramm kann z.B. ein vorhandener Bootsektor
fr 80 Tracks, double sided, angepat werden.

Bemerkungen:
- Damit die Diskette auch auf MS-DOS-Systemen lesbar ist, mu man
  manuell die hexadezimalen Werte $E9 $00 $4E in die ersten drei
  Bytes des Bootsektors eintragen.
- Protobt neigt zur Verschwendung: auf einer normalen 720K-Diskette
  wird Platz fr 5 FAT-Sektoren angelegt, obwohl 3 vllig reichen
  wrden.