Xenix286 Hard Disk Boot Patch

Robin Cutshaw robin at medstar.UUCP
Fri May 3 07:10:17 AEST 1985


	Here is the patch for the Xenix kernel hard disk table.  Each table
entry consists of 4 int (short) parameters.  Entry 0 = # of cylinders,
1 = # of heads, 2 = # of sectors/track, and 3 = write precomp.  Note that
the the table as supplied has several differences to those in the ROM BIOS.
Also, there is only space for 13 entries so if you have a drive type 14
you must patch another location and you won't be able to use DOS.
	There are three places that will have to be patched, /boot,
/etc/badtrack, and /xenix.
	If you have a drive of type 4-8 you will somehow have to patch the
floppy drive kernel /xenix.fd.  This will be a trick because adb doesn't come
with this distribution.

The Original Table as supplied (/xenix) :

diskinfo:	306	4	17	128
diskinfo+8.:	615	4	17	300
diskinfo+16.:	615	6	17	300
diskinfo+24.:	915	8	17	512
diskinfo+32.:	410	6	17	256
diskinfo+40.:	462	8	17	256
diskinfo+48.:	492	5	17	256
diskinfo+56.:	900	7	17	-1
diskinfo+64.:	900	15	17	-1
diskinfo+72.:	820	3	17	-1
diskinfo+80.:	855	5	17	-1
diskinfo+88.:	855	7	17	-1
diskinfo+96.:	306	8	17	128
diskinfo+104.:	0	24919	28274	28265  /* DO NOT PATCH THIS!!!!!! */

/********** START of PATCHES ************/
Patch #1 :

First boot XENIX  from  the  installation  diskette and do a
full install. Then cp /boot /boot-. (on the fixed disk)

adb -w /boot
$x
3f:1f0f?w 75## (## = number of heads)
$q


Patch #2 :

This patch will patch the disk table in /boot.

adb -w /boot
71:10356/w 940
10364/w 940
10370/w 512
10372/w 615
10374/w 4
10378/w -1
10380/w 462
10382/w 8
10388/w 733
10390/w 5
$q

Patch #3 :

This patches the disk table in /etc/badtrack. (They are for the
whole table minus the extra entry that can't be added).

cp /etc/badtrack /etc/badtrack-
adb -w /etc/badtrack
71:28/w 940
36/w 940
42/w 512
44/w 615
46/w 4
50/w -1
52/w 462
54/w 8
60/w 733
62/w 5
$q

Patch #4 :

Patches to make it equivalent to the ROM BIOS (/xenix):

adb -w /xenix -
diskinfo+24/w 940		/* 915.= 940. */
diskinfo+32/w 940		/* 410.= 940. */
diskinfo+38/w 512		/* 256.= 512. */
diskinfo+40/w 615		/* 462.= 615. */
diskinfo+42/w 4			/* 8.= 4.     */
diskinfo+46/w -1		/* 256.= -1.  */
diskinfo+48/w 462		/* 492.= 462. */
diskinfo+50/w 8			/* 5.= 8.     */
diskinfo+56/w 733		/* 900.= 733. */
diskinfo+58/w 5			/* 7.= 5.     */
$q

Patch #5 :

apply patch #4 on floppy disk kernel /xenix.fd

/******** End of Patches **********/



New Table Entries (as patched) :

diskinfo:	306	4	17	128
diskinfo+8.:	615	4	17	300
diskinfo+16.:	615	6	17	300
diskinfo+24.:	940	8	17	512
diskinfo+32.:	940	6	17	512
diskinfo+40.:	615	4	17	-1
diskinfo+48.:	462	8	17	256
diskinfo+56.:	733	5	17	-1
diskinfo+64.:	900	15	17	-1
diskinfo+72.:	820	3	17	-1
diskinfo+80.:	855	5	17	-1
diskinfo+88.:	855	7	17	-1
diskinfo+96.:	306	8	17	128
diskinfo+104.:	0	24919	28274	28265  /* PATCH THIS AND DIE */

Questions, comments, bugs to me...

-- 
----
Robin Cutshaw
Director of Systems Research, MedSTAR, Inc.
..{akgua,gatech,gacsr}!medstar!robin



More information about the Comp.unix.wizards mailing list