Hardware Reset Button and Survivable RAM disk The IBM/PC lacks a hardware reset button. Not only is this a nuisance, but it makes using a RAM disk dangerous. If the computer really locks up, so CTL-ALT-DEL doesn't work, it's red switch time. Say Bye-bye to the contents of your RAM disk. This article gives simple directions for installing a reset button (no soldering inside the PC.) It also gives simple modifications to the device driver EDISK.COM, available on many bulletin boards, to install a 128K RAM disk that will survive a CTL-ALT -DEL reboot or a hardware reset. This RAM disk is installed in the high memory above 640K, so it requires a memory expansion board with DIP switches to specify starting memory location. The IBM board has these switches, but many don't, so check before you buy the board. The RAM disk occupies segments D000h to F000h. (This 128K was reserved for ROM cartridges in the PC jr.) 1. Installing the Hardware Reset Button The purpose of the reset button is to reboot the computer without having to turn it off and on again. This is done by momentarily grounding the "power good" line. Usually the computer does a warm boot when this happens, but occasionally it does a cold boot, including Power-on-Self-Test (POST). I don't know what determines which boot is taken, but the RAM disk to be described here will survive either with its contents intact. A hardware reset button is also kind to your hard disk, which is more likely to suffer head crashes when the PC is turned off and on frequently. The easiest place to ground the "power good" line is at the 8284A clock generator chip. Parts needed include a momentary push button switch, an 18-pin IC socket, and a cover plate of the type used to cover the adapter card cutouts on the PC's rear panel. The plate can be removed from the PC, because you will be reinstalling it. Drill a hole in the middle of the cover plate and mount the push button switch through it with the button on the "outside" side of the plate. Solder two eight inch long wires between the switch terminals and pins 9 and 11 on the IC socket as shown on the diagram: ___________________ | | ___________________|_____ | | 18 11 10 | | | | o notch |o 18 PIN IC SOCKET | switch | | o |_1_____________________9_| | | | |_______________| Use fine wire and solder to the pins as close to the socket as possible. Note that there is a notch at one end of the socket to identify which end is which. Now disconnect the PC's power cord and remove the cover. Locate the 8284A IC at the right rear of the system board near the keyboard jack and crystal. Note which way the notch on the IC points. It should point to the left if you are facing the case from the front. Remove the IC using an IC puller or a small screwdriver to pry it up. (I recommend getting a puller at Radio Shack. They're cheap. I also recommend that you ground yourself to the PC's case using a length of wire before you touch any IC. Otherwise static electricity can fry your IC's. Attaching the wire to your metal watch band works well.) If you bend any pins, straighten them carefully with a needle-nose pliers. Insert the wired IC socket into the original socket of the 8284A, making sure the notch points the same way as on the original socket. Reinsert the 8284A into the wired socket. You now have a "wedding cake" of original socket, new socket, and IC, each of which has its notch pointing the same way. Remove a blank cover plate from the rear panel of the PC, unless you already did this. Replace it by the cover plate with the wired push-button switch. Close up the PC, reconnect its power cord, and fire it up. When you see the prompt, push the switch button momentarily. You should hear a click from the loudspeaker, and the PC should reboot. Your hardware reset switch is installed. 2. Survivable RAM disk For this, you need to install a memory expansion board with 128K and switches set for segment D000. The instructions are in the file RAMDISK.TXT, available on many bulletin boards. This information is also in the Power User column of PC Magazine, vol 4 no 21, October 15, 1985. If you don't have access to either of these sources, just use a standard IBM 64/256K Memory Expansion Option board or equivalent. Set the DIP switches thus: 1 2 3 4 5 6 7 8 OFF OFF ON OFF OFF ON OFF OFF This configures the board for 128K at segment addresses D000h and E000h. Next you modify EDISK.COM, also available on many bulletin boards, so that it asks you whether to initialize its RAM disk memory on cold boot. When you first power up, you initialize. (Failure to initialize leads to memory parity errors.) When you do a hardware reset you do not initialize. That way, the only way to lose the contents of the RAM disk is by total power loss. The modification is made to EDISK.ASM at the label COLD_START: COLD_START: ; Initialize memory to avoid PARITY errors ;/MCN addition: ask if ramdisk should be initialized at cold boot ;Clobbers AX PUSH DS PUSH CS;Transfer CS to DS POP DS LEA DX,WHICH_MESS;Ramdisk clobber message MOV AH,9;Print string function INT 21H MOV AH,1;Keyboard input function INT 21H POP DS CMP AL,'Y';If capital Y JZ COLD_CONT CMP AL,'y';Or lower case y JZ COLD_CONT;Continue with cold start JMP HOT_START;Else treat as hot start WHICH_MESS: DB "Initialize Hi-RAM disk (y/n)?$" COLD_CONT: ;\MCN addition end SUB AX,AX ;Byte to write (null) MOV ES,CS:VDISK_PTR ;Get start addr of 1st ;64K sector etc... MCN is my son, who coded the modification. With this change to EDISK, a cold boot gives you the message "Initialize Hi-RAM disk (y/n)?" Only if you answer Y (or y) will the RAM disk be initialized. On first power-up answer Y, on hardware reset answer N or to preserve the RAM disk contents. I have uploaded the file RESETSW.ARC to Stan Staten's board (301- 670-9621) and to Tim Conner's board (301-353-3323.) That file contains RESETSW.TXT (this article), RAMDISK.TXT, EDISK2.ASM, AND EDISK2.SYS. The EDISK2 files include the modification to the original EDISK to prompt for RAM disk initialization on cold boot. If there were a way to keep POST from initializing normal memory on hardware reset, one could install a survivable RAM disk without using a memory expansion board, and it could be larger than 128K. I haven't been able to figure out how to do this. Can anyone help? David B. Nelson 2311 Spencer Road Silver Spring, MD 20910