[Simh] Sigma disk design notes

Bob Supnik bob at supnik.org
Thu Oct 30 14:57:32 EDT 2014


As I get ready to restart the Sigma project, I've gone back through the 
Sigma disk specs. My notes are attached. The current simulation module 
is not accurate, most notably in the way it allows controller/disk 
pairings that didn't exist in real life.

Comments are welcome.

/Bob
-------------- next part --------------
Notes for the Sigma Disk Controllers

Two patterns of disk controllers - "10 byte" sense controllers and "16 byte" sense controllers
All disks have 1024B (256W) sectors


model			units/cylinders/heads/sectors		type

7240/7242		8  / 203 (3 spare) / 20 / 6		10 byte
7260/7261		15 / 203 (3 spare) / 20 / 11		16 byte
7265/7266		15 / 411 (7 spare) / 20 / 11		16 byte
7270/7271		8  / 406 (6 spare) / 20 / 6		10 byte
7275/7276		15 / 411 (7 spare) / 19 / 11		16 byte

T3281/T3282		15 / 815 / 19 / 11			16 byte
T3281/T3283		15 / 815 / 19 / 17			16 byte
T3281/T3286		15 / 555 / 30 / 17 (16?)		16 byte
T3281/T3286F		15 / 555 / 60 / 17 (16?)		16 byte
T3281/T3288		15 / 822 / 5 / 17			16 byte

header format		7240				726X/727X/T3281

bytes 0-3		flaw / 0 / C / H		flaw / 0'CH / C / H
bytes 4-7		S / alt C / alt H / 0		S / alt CH / alt CL'alt H / 0


sense status		7240/7270

bytes 0-3		0'CH / C / H / S		most recent address
bytes 4-7		M'CS / diag / diag / diag	seek intr + current sector
bytes 8-11		stat / stat

			726X/7275

bytes 0-3		W'0'CH / C / H / S		W = write protect, most recent address
bytes 4-7		M'R'CS / cnf / stat / 0		M = modifier, R = reserve/release mode
bytes 8-11		stat / stat / modi / fiers
bytes 12-15		check / bytes / 0'dh / dl	14-15 = difference

sense byte 5-6

	7240,7270

0-15	header parity check bytes

	726X, 7275, T3281

0	1 for dual access
1-3	device type
	5 = 7261
	6 = 7266
	7 = 7276, T3286
4-7	device physical addr (cable position)

0	device fault
1	write fault
2	loss of on cylinder
3	offset polarity
4	airflow loss
5	parity error on device ID byte
6	spindle speed fault
7	positioning servo faulT

sense byte 7

	7240, 7270		726X, 7275		T3281

0-7	LSB of difference	0			physical address (unique)

sense bytes 8-9

	7240, 7270		726X, 7275, T3281

0	data parity error	check write error
1	check write error	data check error
2	sector verif error	IOP parity error
3	head verif error	data overrun
4	cylinder verif error	head addr incr err
5	sec addr !=0 @ hdr wr	arm in motion err
6	diff sent to device	order parity err
7	sector sel to device	test mode err

0	ctrl sel to device	seek transfer err
1	head sel to device	device unavailable
2	cyl sel sent to device	head addr ver err
3	seek forward set	sector addr ver err
4	read gate to device	cyl addr ver err
5	write/erase to device	726X, 7275: 0
				T3281: ctrl overtemp
6	read cyl sel to device	channel addr err
7	7240: not used		missing on sect
	7270: MSB of diff

sense bytes 10+

10-11	modifier bits
12-13	check bytes
14	0'diff high
15	diff low (absolute value)


operations			7240	726X
				7270	7275
					T3281

01	write			x	x
02	read 2			x	x
03	seek			x	x
04	sense			x	x
05	check-write		x	x
07	reserve				x
09	header write		x	x
0A	header read		x	x
0F	condition rls intr		x
12	read 1			x	x
13	select test mode	x	x
17	release				x
1F	condition rls intr		x
23	release			x
33	restore			x	x
83	seek with interrupt	x	x
B3	restore with interrupt		x


TIO, SIO, HIO status

	all

0	interrupt pending
1-2	device state
	00 = ready
	01 = not operational
	10 = reserved
	11 = busy
3	1 (automatic)
4	unusual end
5-6	controller state
	00 = ready
	01,10 = n/a
	11 = busy
7	0

TDV status

	7240, 7270		726X,7275		T3281

0	data overrun		0			error corrected
1	flaw mark		flaw mark		flaw mark
2	sector unavailable	programming err		programming err
3	0			write prot err		write prot err
4	header verif error	IOP parity err		IOP parity err
5	on cylinder		operational err		operational err
6	seek timeout error	verification err	verification err
7	header parity error	header parity err	header parity err

AIO status

	7240, 7270		726X, 7275, T3281

0	data overrun		data overrun
1	0			attn int ack
2	0			rls int ack
3	0			0
4	on sector interrupt	on sector intr
5	on cylinder		0
6	seek timeout error	seek timeout error
7	0			0

operational status byte (SIO, HIO, TIO, TDV)

	all

8	incorrect lnt
9	xmit data error
10	xmit memory err
11	mem addr err
12	IOP memory err
13	IOP ctrl err
14	IOP halt
15	0

operational status byte (AIO)

	all

8	incorrect lnt
9	xmit data error
10	zero byte cnt intr
11	channel end intr
12	unusual end intr
13-15	0




More information about the Simh mailing list