Concise Atari ST 68000 Programmer's Reference Guide

Parameter blocks

SYSTEM BLOCKS

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 OEM’s 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    

DEVICE DRIVERS

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  
  $    

PROGRAM PARAMETER BLOCKS

Transient program area block










HEADER BLOCKS

Cartridge header block