Concise Atari ST 68000 Programmer's Reference Guide
System start-up block offset
| offset | |||
| $00 | Reseth | Branch to reset handler | |
| $02 | Vers | OS version number | |
| $04 | Reseth | System reset handler | |
| $08 | Ostext | Base of OS | |
| 12 | $0C | Endos | End of OS mem used Pointers |
| 16 | $10 | Reseth | Default shell |
| 20 | $14 | Magic | Verification no. or zero |
| 24 | $18 | Date | System build date |
Boot sector parameter block offset
| offset | |||
| $00 | BRA. S | Branch to boot code | |
| $02 | OEMs space | Reserved for OEMs use | |
| $08 | Vol ser # | 24 bit volume serial number | |
| 11 | $0B | BPS | Number of bytes/sector |
| 13 | $0D | SPCs | Number of sectors/cluster |
| 14 | $0E | RES | Number of reserved sectors |
| 16 | $10 | NFATS | Number of file allocation tables |
| 17 | $11 | NDIRS | Number of directory entries |
| 19 | $13 | NSECTS | Number of sectors on media |
| 21 | $15 | MEDIA | Media descriptor - not used |
| 22 | $16 | SPF | Number of sectors/FAT |
| 24 | $18 | SPT | Number of sectors/track |
| 26 | $1A | NSIDES | Number of sides on media |
| 28 | $1C | NHID | Number of hidden sectors - not used |
| 30 | $1E | boot code | Start of code, if any? |
| 511 | $1FE | last word | Used for checksum |
| 512 | $200 | ||
Each device has one driver (Device Control Block - DCB) that contains entry points to routines and constants used by system to initialise the device's state during a warm-start. The routines and constants are defined as follows:
Device driver
| offset | |||
| $00 | BREAD | Read sector | |
| $04 | BWRITE | Write sector | |
| $08 | BINIT | Initalise drive (warm start)Write sector | |
| 12 | $0C | BFORMAT | Format drive |
| 16 | $10 | BINTR | Vblank cal (timeout-homing) |
| 20 | $14 | BRDTRK | Read track |
| 24 | $18 | BWRTRK | Write track |
| 28 | $1C | BXLATE | Logical to physicla translate |
| 32 | $20 | BCVSIZ | CSV size allocation |
| 34 | $22 | BALSIZ | ALV size allocation |
| 38 | $26 | BDEFINFO | Default info block |
| 42 | $2A | ||
Device drivers are stored in RAM in a device state block (DSB), the DSB contains TOS-specific data structures (the DPB and DPH) and device-specific information, such as the number of tracks and head seek rate. The DSB is allocated during a warm-start.
Device state block
| offset | |||
| $00 | DDPH | Device parameter header | |
| 26 | $1A | DDPB | Disk parameter block |
| 42 | $2A | DINFOSIZ | DSB size (excluding DDPH) |
| 44 | $2C | DPHYSDEV | Device physical number |
| 46 | $2E | DNTRACKS | Number of tracks on device |
| 48 | $30 | DNSPT | Number of sectors/track |
| 50 | $32 | DNSIDES | Number of sides/device |
| 52 | $34 | DSEEKRT | Floppy seek rate |
| 54 | $36 | ||
Floppy parameter block
| offset | |||
| $00 | FLOCK | Floppy lock return address | |
| $04 | CRET | Callers return address | |
| $08 | DMAPN | DMA pointer | |
| 12 | $0C | - | Obsolete |
| 16 | $10 | DEVNO | Device number |
| 18 | $12 | SECNO | Sector number |
| 20 | $14 | TRKNO | Track number |
| 22 | $16 | SIDNO | Side number |
| 24 | $18 | SECNT | Sector count |
| 26 | $1A | ||
Sector buffer block
| offset | |||
| $00 | BNEXT | Next buffer or null | |
| $04 | BBUF | Size of bufer (512 bytes) | |
| $08 | BLRU | LRU replacement value | |
| 12 | $0C | BFLAGS | Valid/dirty flags |
| 14 | $0E | BDEV | Device number |
| 16 | $10 | BTRACK | Track number |
| 18 | $12 | BSIDE | Side number |
| 20 | $14 | BSSECT | Start sector number |
| 22 | $16 | BESECT | End sector number |
| 24 | $18 | BPSECT | Physical sector number |
| 26 | $1A | BSIZE | |
| $ | |||
Transient program area block
Cartridge header block