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