💾 Archived View for spam.works › mirrors › textfiles › computers › pc1hrdsk.add captured on 2023-06-14 at 16:04:28.
-=-=-=-=-=-=-
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