home *** CD-ROM | disk | FTP | other *** search
- 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 <FOO" at the command line. Oh yes, I forget you
- don't have a hard disk yet. In that case, DEBUG should be copied to
- the special floppy first, or you could run it from drive B:. In any
- case, after running DEBUG, that special floppy should be placed into
- the computer each time you turn it on or reboot via Ctrl-Alt-Del. You
- might want to create several such floppies as backups; there is no
- normal way to copy this boot record. (These floppies are "special"
- only with respect to booting up the computer; they can still be used
- to hold DOS files. There is no reason to put DOS itself on them,
- though; you cannot boot DOS directly from these disks but instead must
- use them to boot DOS from elsewhere.)
-
- This is OK so far, but only if you already have DOS on your hard
- disk, which is unlikely. In order to put DOS on the hard disk, you
- need to boot DOS from a floppy, yet the hard disk must be already
- initialized so that DOS can run FDISK and FORMAT. To do this, you
- must use the third feature of this special boot record, which is the
- following. If you hold down the "Alt" key while booting with this
- specially modified floppy, the computer will initialize the hard disk
- and then pause, enabling you to insert another floppy to boot DOS from
- that second floppy instead of the hard disk. You can then run FDISK
- and FORMAT as if you had the newer BIOS.
-
- So, to sum it all up, you do the following:
-
- 1. Create a special floppy using the enclosed DEBUG script.
- 2. Reboot the computer using (a) the special floppy while holding the
- "Alt" key down, followed by (b) a normal DOS floppy.
- 3. Run FDISK as described in the DOS manual.
- 4. Repeat step 2.
- 5. Run FORMAT as described in the DOS manual.
-
- You now have a usable hard disk; you only have to remember always to
- boot from the special floppy created in step 1. I only wish the
- instructions leading up to this point were easier, but any easier
- description eludes me.
-
- ----%<--%<--%<-- CUT HERE -->%-->%-->%----
- 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
-