TABLES

.Page
;--
;		Nibble Table
;
;
; 6-bit to 7-bit nibl conversion table.  codes with more than one pair of
; adjacent zeros or with no adjacent ones (except B7) are excluded.
; Table is now 256 bytes long for use w. any byte.
;--

Nibl	.Equ *

	.Byte	096,097,09A,09B,09D,09E,09F,0A6,0A7,0AB,0AC,0AD
	.Byte	0AE,0AF,0B2,0B3,0B4,0B5,0B6,0B7,0B9,0BA,0BB,0BC
	.Byte	0BD,0BE,0BF,0CB,0CD,0CE,0CF,0D3,0D6,0D7,0D9,0DA
	.Byte	0DB,0DC,0DD,0DE,0DF,0E5,0E6,0E7,0E9,0EA,0EB,0EC
	.Byte	0ED,0EE,0EF,0F2,0F3,0F4,0F5,0F6,0F7,0F9,0FA,0FB
	.Byte	0FC,0FD,0FE,0FF
	.Byte	096,097,09A,09B,09D,09E,09F,0A6,0A7,0AB,0AC,0AD
	.Byte	0AE,0AF,0B2,0B3,0B4,0B5,0B6,0B7,0B9,0BA,0BB,0BC
	.Byte	0BD,0BE,0BF,0CB,0CD,0CE,0CF,0D3,0D6,0D7,0D9,0DA
	.Byte	0DB,0DC,0DD,0DE,0DF,0E5,0E6,0E7,0E9,0EA,0EB,0EC
	.Byte	0ED,0EE,0EF,0F2,0F3,0F4,0F5,0F6,0F7,0F9,0FA,0FB
	.Byte	0FC,0FD,0FE,0FF
	.Byte	096,097,09A,09B,09D,09E,09F,0A6,0A7,0AB,0AC,0AD
	.Byte	0AE,0AF,0B2,0B3,0B4,0B5,0B6,0B7,0B9,0BA,0BB,0BC
	.Byte	0BD,0BE,0BF,0CB,0CD,0CE,0CF,0D3,0D6,0D7,0D9,0DA
	.Byte	0DB,0DC,0DD,0DE,0DF,0E5,0E6,0E7,0E9,0EA,0EB,0EC
	.Byte	0ED,0EE,0EF,0F2,0F3,0F4,0F5,0F6,0F7,0F9,0FA,0FB
	.Byte	0FC,0FD,0FE,0FF
	.Byte	096,097,09A,09B,09D,09E,09F,0A6,0A7,0AB,0AC,0AD
	.Byte	0AE,0AF,0B2,0B3,0B4,0B5,0B6,0B7,0B9,0BA,0BB,0BC
	.Byte	0BD,0BE,0BF,0CB,0CD,0CE,0CF,0D3,0D6,0D7,0D9,0DA
	.Byte	0DB,0DC,0DD,0DE,0DF,0E5,0E6,0E7,0E9,0EA,0EB,0EC
	.Byte	0ED,0EE,0EF,0F2,0F3,0F4,0F5,0F6,0F7,0F9,0FA,0FB
	.Byte	0FC,0FD,0FE,0FF

WideLow	.Equ *			; empirically determined speed tables
	.Byte	003, 023
	.Byte	002, 0E2
	.Byte	002, 09C
	.Byte	002, 057
	.Byte	002, 015
WideH	.Equ *
	.Byte	003, 043
	.Byte	002, 0FE
	.Byte	002, 0B7
	.Byte	002, 070
	.Byte	002, 02B
ThinLow	.Equ *
	.Byte	003, 030
	.Byte	003, 0ED
	.Byte	002, 0A7
	.Byte	002, 062
	.Byte	002, 01E
ThinHih	.Equ *
	.Byte	003, 036
	.Byte	002, 0F3
	.Byte	002, 0AD
	.Byte	002, 066
	.Byte	002, 022

.Page

;++
;
;		Command parsing and testing tables
;
;--

; Command properties and parameters used, one byte per command:
;
; Bits are numbered 0 (LSb) to 7 (MSb)	(1/9/89  ARS)
;
;	Bit		Contents (command requires if set)
;	---		--------
;	0		Drive # & a clamped disk
;	1		Side #
;	2		Sector #
;	3		Track #
;	4		Mask
;	5		Confiramtion byte
;	6		Write protection
;	7		Format/Verify Parameters

TTCDrive	.Equ 001			; Test Table Constant:  Check validity of drive parameter
TTCSide		.Equ 002			; Test Table Constant:  Check validity of side parameter
TTCSectr	.Equ 004			; Test Table Constant:  Check validity of sector parameter
TTCTrack	.Equ 008			; Test Table Constant:  Check validity of track parameter
TTCMask		.Equ 010			; Test Table Constant:  Check validity of mask parameter
TTCFcfm		.Equ 020			; Test Table Constant:  Confirmation byte
TTCWprt		.Equ 040			; Test Table Constant:  Write protection
TTCFvpm		.Equ 080			; Test Table Constant:  Format/Verify

TestTbl	.Byte	TTCDrive+TTCSide+TTCSectr+TTCTrack			; Read
	.Byte	TTCDrive+TTCSide+TTCSectr+TTCTrack+TTCWprt		; Write
	.Byte	TTCDrive						; Unclamp
	.Byte	TTCDrive+TTCSide+TTCTrack+TTCfcfm+TTCWprt+TTCFvpm	; Format
	.Byte	TTCDrive+TTCSide+TTCTrack+TTCFvpm			; Verify
	.Byte	TTCDrive+TTCSide+TTCTrack+TTCFvpm+TTCWprt		; Format track
	.Byte	TTCDrive+TTCSide+TTCTrack				; Verify track
	.Byte	TTCDrive+TTCSide+TTCSectr+TTCTrack			; Read w/o checksum
	.Byte	TTCDrive+TTCSide+TTCSectr+TTCTrack+TTCWprt		; Write w/o checksum
	.Byte	000							; Clamp

TestGoB	.Byte	TTCDrive+TTCSide+TTCTrack				; Seek
	.Byte	000							; Call
	.Byte	000							; ClrSt
	.Byte	TTCMask							; SetIMsk
	.Byte	TTCMask							; ClrIMsk
	.Byte	000							; WaitROM
	.Byte	000							; Drop Dead

.Page
;++
;			Shared ram default tables
;--

ShareRam	.Equ *
	.Byte 0D5			;  0:15		Default Speed Codes For 5 Classes
	.Byte 0C0			; 16:31
	.Byte 0A7			; 32:47
	.Byte 089			; 48:63
	.Byte 064			; 64:79
	.Byte 01E			; ScDly		Speed change delay:  150 ms
	.Byte 004			; HeaDelay	Head settling time:  30 ms - 10 for SpdChk
	.Byte 009			; MaxDdly	DIP sample delay -- used for motor off
RomID	.Byte 088			; ROM identification number (@0018/FCC031)
	.Byte 064			; MaxRetry	Maximum retries count:  100.
	.Byte 002			; MaxRecal	Maximum recallibration count:  1
	.Byte 130.			; StpDly	# 100 usec fro step delay
	.Byte 04F			; MOnDly	Motor on delay:  400 ms - 10 for SpdChk
	ShareSz	.Equ *-ShareRam		; size of shared variable area

;++
;		SecPrTrk == Number of sectors per track
;--

SecPrTRk	.Equ *
	.Byte 12.			;  0:15
	.Byte 11.			; 16:31
	.Byte 10.			; 32:47
	.Byte 9.			; 48:63
	.Byte 8.			; 64:79

;++
;		Two tables -- Address marks & Data marks
;		allows modification by high level software for copy protection
;--

SavAdr	.Equ *
	.Byte 0D5			; First threew bytes indicate start of address field
	.Byte 0AA
	.Byte 096
	.Byte 0DE			; last two bytes finish the address field
	.Byte 0AA

SavDat	.Equ *
	.Byte 0D5			; First three bytes indicate start of data field
	.Byte 0AA
	.Byte 0AD
	.Byte 0DE			; last two bytes finish the data field
	.Byte 0AA