+3e

From Sinclair Wiki
Revision as of 23:01, 12 November 2011 by Guesser (talk | contribs)

The ZX Spectrum +3e is a replacement ROM for the ZX Spectrum +3 which fixes several bugs, improves the BASIC, and introduces support for hard drives and compact flash cards. It was created by Garry Lancaster, and its homepage is [1].

Extended eXtended Disk Parameter Block

The +3e has an "extended XDPB" based on the +3DOS XDPB. The data is ordered as follows

0x0000  SPT SPT BSH BLM EXM DSM DSM DRM DRM AL0 AL1 CKS CKS OFF OFF PSH
0x0010  PHM fl1 tps spt fsn ssz glr glf fl2 fzf fl3 drl fdu lac lac lac
0x0020  nfo nfd lud lud cka aba 

key:
SPT: Records Per Track
BSH: Block Shift: 128 * 2^BSH
BLM: Block Mask: 128 * (BLM + 1)
EXM: Extent Mask
DSM: Number of blocks - 1
DRM: Number of directory entries - 1
AL0: AL0 directory bitmap
AL1: AL1 directory bitmap
CKS: Size of checksum vector
OFF: Reserved tracks
PSH: Physical sector shift
PHM: Sector size
fl1: Flags relating to sidedness
tps: Number of tracks per side
spt: Number of sectors per track
fst: First physical sector number
ssz: Sector size
glr: Gap length (read/write)
glf: Gap length (format)
fl2: Flags relating to multitrack/modulation/skip
fzf: Freeze flag
fl3: Flags relating to drives
drl: Drive letter (ascii)
fdu: FD unit number for drive B:
lac: Last access (FRAMES)
nfo: Number of files open on drive
nfd: Number of free director entries
lud: Last used directory entry number
cka: Address of checksum vector
aba: Address of allocation bitmap
lda: Address of routine to login a disk
sra: Address of routine to read a sector
swa: Address of routine to write a sector

BASIC extensions

Mass storage