Joseph_Joe_McManus@cup.portal.com (12/10/87)
Customizing the AT&T PC-6300 to use Unsupported Hard Disk Drives Joseph F. McManus AT&T Bell Laboratories Rm 2A-05 1600 Osgood St. North Andover, MA 01845 ihnp4!mvubs!mfj December 9, 1987 This document describes modifications that I made to the hard disk drive parameter table in the 1.43 version of the EPROMS of an AT&T PC-6300. I wanted to install a CDC Wren II 94155-86 hard disk drive which has 925 cylinders and 9 heads. This procedure requires access to a device which will read, edit and then burn the EPROMS. In the AT&T PC-6300, two 8K by 8-bit 2764 chips provide 16K bytes of EPROM which physically occupy addresses FC000 to FFFFF. The hard disk drive parameter table starts at address FCF9F or to use the standard DOS format, FC00:0F9F. The table contains 16 entries, each of which is 16 bytes long. Below is the table as seen from debug. At debug's '-' prompt type d for display then the address FC00:0F9F then L100 do display 100H or 256 decimal bytes as shown. C> debug - d FC00:0F9F L100 FC00:0F90 B9 . FC00:0FA0 02 05 80 00 00 00 0B 05-0C 87 28 00 00 00 00 64 ..........(....d FC00:0FB0 02 04 00 01 00 01 0B 05-0C 5A 28 00 00 00 00 64 .........Z(....d FC00:0FC0 02 04 64 02 64 02 0B 05-0C 5A 28 00 00 00 00 32 ..d.d....Z(....2 FC00:0FD0 01 04 32 01 80 00 0B 05-0C 2D 28 00 00 00 00 64 ..2......-(....d FC00:0FE0 02 04 80 00 80 00 0B 05-0C 5A 28 00 00 00 00 B9 .........Z(..... FC00:0FF0 02 05 80 00 00 00 0B 05-0C 87 28 00 00 00 00 64 ..........(....d FC00:1000 02 04 00 01 00 01 0B 05-0C 5A 28 00 00 00 00 64 .........Z(....d FC00:1010 02 04 80 00 80 00 0B 05-0C 5A 28 00 00 00 00 80 .........Z(..... FC00:1020 02 04 00 01 00 01 0B 05-0C 5A 28 00 00 00 00 00 .........Z(..... FC00:1030 04 05 00 02 00 02 0B 05-0C CB 28 00 00 00 00 D5 ..........(..... FC00:1040 03 05 D5 03 D5 03 0B 05-0C BD 28 00 00 00 00 D5 ..........(..... FC00:1050 03 05 D5 03 80 00 0B 05-0C FF 28 00 00 00 00 9D ..........(..... FC00:1060 03 07 9D 03 00 00 0B 05-0C FF 28 00 00 00 00 00 ..........(..... FC00:1070 04 08 00 04 00 04 0B 05-0C FF 28 00 00 00 00 34 ..........(....4 FC00:1080 03 06 34 03 00 01 0B 05-0C C8 28 00 00 00 00 32 ..4.......(....2 FC00:1090 01 04 32 01 80 00 0B 05-0C 2D 28 00 00 00 00 ..2......-(.... The meaning of each byte in an entry is explained in the next table: Byte Meaning 0,1 Number of Cylinders.(low byte, high byte IE. B9,02 = 02B9H or 667 cylinders) 2 Number of Heads. 3,4 Cylinder to Start Reduced Write Current. (low byte, high byte) 5,6 Cylinder to Start Write Precomp. (low byte, high byte) 7 Max Correctable Burst Error Length. 8 CCB Option Byte. 9 Standard Timeout Value. A Format Timeout Value. B Check Drive Timeout Value. C,D,E,F Reserved. Should be all zeros. The entry that starts at FC00:105F is for a CDC Wren II model 94155-67 which has 925 cylinders and 7 heads (039DH = 925 Decimal). What I needed to do was to change the byte at FC00:1061 from 07 to 09. Also, when the AT&T PC-6300 is booted, a checksum is calculated by summing all the bytes in the PROMS and if they don't add up to a certain value the ROM check fails. So since I was adding 2 to one byte, I must subtract 2 from another. The entry at FC00:108F is a duplicate of the entry at FC00:0FCF so I could change the byte at FC00:1091 from 04 to 02 and the checksum would pass. In the PC-6300, the even addresses are in the "L" EPROM and the odd addresses are in the "H" EPROM. The bytes that I wanted to change were in odd addresses so I just needed to change the "H" EPROM. To find the locations in the EPROM of those bytes I divided the offsets by 2. 1061H / 2 = 830H and 1091H / 2 = 848H. I pulled the "H" EPROM from my 6300 used a DATA I/O Universal PROM Programmer to read the EPROM, I then edited addresses 830H and 848H, then burned a new EPROM. The next step was to set the dip switches on the controller card to the proper setting. The controller has a bank of 8 switches used for selecting which entry in the drive parameter table to use. The controller is capable of controlling 2 hard drives so 4 switches are used for your first drive and four for your second. Positions 3,4,7,8 are for drive 1 and positions 1,2,5,6 are for drive 2. The following table shows the switch settings and formatted capacity of all the entries of the table. The capacity is calculated using the default 17 sectors of 512 bytes each per cylinder per head. SWITCH Formatted 3 4 7 8 ->drive 1 Entry Heads Cylinders Capacity 1 2 5 6 ->drive 2 0 5 697 30M C C C C 1 4 612 20M O C C C 2 4 612 20M C O C C 3 4 306 10M O O C C 4 4 612 20M C C O C 5 5 697 30M O C O C 6 4 612 20M C O O C 7 4 612 20M O O O C 8 4 640 22M C C C O 9 5 1024 45M O C C O A 5 981 40M C O C O B 5 981 40M O O C O C 9 925 70M C C O O D 8 1024 70M O C O O E 6 820 40M C O O O F 2 306 5M O O O O When I installed the new EPROM in my PC, the low level format program recognized the drive as a 69 megabyte unit with 9 heads and 925 cylinders. I then used AT&T's MS-DOS 3.2 to fdisk and format the drive as 3 logical drives: two 32 Meg partitions and a 5 meg partition.