For device drivers which support SCSI arbitration, the machine needs an own SCSI device number which must be unique and shouldn't be stored on disk. Atari has reserved byte 16 in the non-volatile memory (NVRAM) of the Atari TT030 and Falcon030 computers. Bit assignments:
Bit 0..2: | Device number |
Bit 7: | Arbitration on (1) or off (0) |
The current arbitration number could be inquired this way:
WORD arbitration_id (VOID) { LONG ret = EINVFN; UBYTE nvmdata = 0; OSHEADER *Sys; LONG oldstack = Super(0L); Sys = *_sysbase; Super((VOID *)oldstack); host_id = -1; /* no arbitration by default */ if (Sys->os_version >= 0x300) ret = NVMaccess (0, 16, (WORD) sizeof (nvmdata), &nvmdata); if (ret == E_OK && (nvmdata & 0x80)) host_id = nvmdata & 7; return host_id; }
See also: XHDI specification SCSI specification About the GEMDOS About the BIOS