David Harley has an assembler free method for stopping your PC from locking up whenever you press Print Screen by mistake.
Sandro Melkuhn
Try Kendata on 0703 869922
Richard Moore
The machine has 2Mb of memory and a 65Mb hard disk, which was pre-installed with DOS 3.3. The disk is partitioned into three drives, C is 1Mb, D and E are both 32Mb. The disk partitioning routine used was not FDISK but a Seagate product, DM (Disk Manager). Also, when booting up a disk device driver is loaded, DMDVR.BIN, which displays a caption saying that it is a Seagate Disk Manager version 3.3. Without this driver the only disk available is the C drive. I believe the disk to be a Seagate ST277R, but the only documentation supplied is the label on the disk. I am a little uncertain.
When I try to use SmartDrive there appears to be a conflict between it and DMDVR.BIN, resulting in the machine locking up completely and the screen filling with garbage.
The BIOS is AWARD version 3.03GS 286, dated 15th November 1985. The drive parameters re set up as follows:-
819 CYL 6 HEAD 17 SECTORS.
The BIOS seems to be of the type that allows any disk configuration by letting you enter the cylinders, heads and sectors rather than selecting options from a restricted menu.
When running DM.EXE (for which I was not issued any documentation, and all the help files had been removed) it claims that the actual drive has 26 sectors instead of 17, but is configured to use 17 only. Also, if I select option ST277R, it gives me 820 Cylinders instead of 819, but this does not seem to effect the machine if written to the BIOS. If DM.EXE is allowed to choose a default configuration, it selects a drive with only 47.5Mb formatted capacity.
Here is a list of solutions that I have 'gathered' in the past few months from various sources, including Screens, Seagate, various mail order disk drive companies and technical support people:-
I have gathered many solutions from Screens, Seagate and various other sources; including replacement of the controller/drive/BIOS/machine in most combinations.
I would like to set up the BIOS to match the actual disk, use FDISK to partition it, remove the need for DM.EXE and DMDVR.BIN and use SMARTDRV.SYS. Can I do this? If I sue FDISK to re-partition the disk, will I lose data in the process? Will I need to reformat the disk?
Phil Meadway, Wokingham As you have found out for yourself, there are many sorts of 'IBM compatible' when it comes to hard disk systems. The PC disk interface has always been evolving; the de-facto standards trailing manufacturers solutions to the users' pleas for higher capacities and throughput.
Originally all PCs had 17 sectors on each track of their hard disks. It was so common that many utilities were written which assumed this. When RLL disk controllers appeared which could fit 26 sectors onto the same sized track this obviously created a compatibility problem. To get around this a translation was performed in the device driver fooled the software into thinking the drive had 17 sectors per track, but a greater number of tracks. The Seagate 277 drive has six heads and 820 cylinders. When formatted for MFM (17 512 byte sectors) this gives a capacity of:
820 x 6 x 17 x 512 = 42823680 bytes or 42 Mb (approx.)
However, if you use an RLL controller with 26 sectors per track you get 62.5Mb. Once this is translated to look like a 17 sector disk you end up with 6 heads, 17 sectors and 1255 tracks. This causes another problem - early versions of the system support a maximum of 1023 tracks. This, at last, is where Seagate's Disk Manager comes in. DM is a replacement driver which allows up to 2048 tracks. I suspect this is why your machine was supplied using it in the first place. Incidentally, Screens probably claimed a 65Mb capacity assuming that 1Mb = 1 million bytes when it really means 2^20 [This should be set as 2 to the power of 20]. Your drive has a 1Mb normal DOS partition to allow DM to be loaded and two 32Mb non-DOS partitions which are managed by DM.
This may explain the problem, however the solution depends on which type of controller you are using and it is difficult to say whether removing DM would work. The only way is to try it. Playing around with partitions is guaranteed to destroy your data so please back up first (at least twice!).
I suspect Windows and SMARTDRV are falling over because they bypass normal drivers and go to the controller directly, especially in V86 mode. Microsoft decided that DM was not standard (in spite of Seagate shipping 8 million copies) so it did not consider supporting it. SMARTDRV just will not work with more than 1023 cylinders (logical or physical). Use PC-Kwik or another cache program instead - SMARTDRV isn't particularly good anyway. You can persuade Windows to use existing drivers in 386 mode by adding the line
virtualhdirq=false
in the [386Enh] section of SYSTEM.INI.
Frank Leonhardt
leo2@cix.compulink.co.uk
uab1018@dircon.uucp
Telephone 081-429 3047.
However, there are a number of old extension out there which weave their perculiar brand of magic by rewriting parts of the System Suitcase in order o include new pieces of code. System 7's System Suitcase is substantially different from earlier Systems' System Files and this rewriting of the suitcase can result in a damaged file, which means that you will need to re-install the System.
If you're trying an old extension (that is, no colour icon, or a Get Info 'Created' date of 1990 or earlier), a safe way of testing it is to lock you System Suitcase before restarting your machine with the extension in place. If the INIT doesn't function, or, if on closing the window of a new Control panel you are told that changes chould not be made, the extension alters the System Suitcase. If the extension is really desirable you can try testing it again by unlocking the suitcase and restarting the machine, by proceed with cations and have your Installer disks to hand.
One culprit I have found is the free 'Kolor' control panel, written by an employee of Apple back in 1987 to show off the colour capabilities of the then brand-spaking new Mac II. Kolor needs to rewrite the System Suitcase to alter the default on-screen colours, and can damage the System in the process.
Two further points to note:
If the System Suitcase is locked on startip it will be considered locks for the rest of the session. To unlock it you will need to unlock inm that then restart your Mac.
Some Control Panels included with the System write directly to the System Suitcase, including General Controls and the Memory Panel, which writes out Virtual Memory settings. This is naughty on Apple's part - there is a Finder Preferences file - and is a good reason for not mixing parts of different Systems. When you install a new version of the System, install the entire thing and remove all parts of the old one, for safetl's sake.
Lloyd Wood. In October's Low Level, Jeff Sweeting's VPRINT utility captured all IBM PC printer output and quietly got rid of it to save the system locking up when there was no printer connected. Here David Harley presents a solution to the problem of lock-up when PrtScn is pressed accidently which does not need a copy of MASM (Microsoft's assembler) to use.
The program works by specifically disabling the PrtScr function by taking advantage of the fact that when the screen is being dumped the byte a memory location 0050:0h is set to 1, being reset when the process ends. Setting this to 1 without calling PrtScr will, in effect, disable the function. This could easily be done in BASIC, but using DEBUG is quicker and neater in this case.
The technique involves creating two tiny DEBUG scripts and a batch file.
NOPRTSCR.DTA contains two lines which instruct DEBUG to insert 1 into 0050:0h, thus disabling PrtScr, and then quit. PRTSCR.DTA reverses the process.
PRTSCR.BAT is a batch file which uses these scripts to turn the function on or off, depending on a supplied parameter.
David Harley
North London.