From: vojta@steero.berkeley.edu (Paul Vojta)
Newsgroups: comp.sys.ibm.pc
Subject: Old PC's and hard disks (a solution)
Date: 28 Feb 88 06:57:33 GMT
In the past few weeks I have seen a number of postings concerning the
problem of installing a hard disk in an old PC-1, given the fact that
IBM has stopped selling its ROM upgrade (or is still selling it for
$60, depending on what you read). In any case, I am writing to share
with you the solution that I have been using for the past several
years, which involves creating a floppy with a modified boot record.
On all PC's, the computer first tries to read and execute a record
from the floppy drive before trying to boot up from the hard disk.
Usually this record contains a very small program which reads DOS from
the floppy and starts it running. With my special floppy, however,
the small program on the boot record initializes the hard disk and
loads DOS from the hard drive instead.
This modified boot record also has the following feature. If you
set your DIP switches to indicate that the computer has only 64K of
memory, then the boot record will automatically determine how much
memory your system actually has (up to 640K) and set its internal
parameters accordingly. This both avoids a lengthy memory check and
allows you to expand to 640K (instead of 512K).
To put this boot record on a given floppy disk, first edit out
the listing at the end of this posting. Let's say it's in a file
called "FOO." To modify a given floppy, put the diskette into drive
A: and type "DEBUG %-->%-->%----
l 100 0 0 1
a 100
jmp 0136
a 136
xor ax,ax
mov ds,ax
mov ss,ax
mov sp,7c00
sti
mov byte ptr [0440],01
mov ax,[0413]
cmp ax,0040
jg 016f
mov cl,06
shl ax,cl
cmp ax,a000
jnb 016f
mov es,ax
xor di,di
stosw
es:
cmp ax,[di-02]
jnz 016f
mov cx,01ff
repz
stosw
inc word ptr [0413]
add ax,0040
jmp 0151
cmp byte ptr [004f],c8
jz 017b
call c800:0003
xor ax,ax
mov ds,ax
mov es,ax
mov si,7c00
mov di,7e00
mov cx,0100
cld
repz
movsw
jmp 0390
test byte ptr [0417],08
jz 01bd
cld
mov si,7edb
lodsb
cmp al,00
jz 01ab
mov ah,0e
mov bx,0007
push si
int 10
pop si
jmp 019b
mov ah,01
int 16
pushf
mov ah,00
int 16
popf
jnz 01ab
mov word ptr [7ed9],0000
mov ax,0201
mov bx,7c00
mov cx,0001
mov dx,[7ed9]
int 13
jb 01bd
in al,21
and al,fe
out 21,al
jmp 0000:7c00
dw 80
db 'Insert DOS floppy and strike any key when ready.',d,a,0
w 100 0 0 1
q