File: W95_COM.TXT Guy Dunphy 25th May, 1997 Some comments on Windows 95, by an unbeliever --------------------------------------------- Contents -------- Background. Installing the devil. The PATH boot hack. Dirty Windows. How to save and restore boot sectors. Boot Sector Structure. How to run DOS 6.2, Win 3.1 and Win 95 on the same machine. Order of Boot Files in Root Directory. Ack! How _dare_ Windows touch my batch files! Hunting the Win 95 startup logo graphics data. -- 2nd part: continued in W95_WOE.TXT -- Windows Woes and the Microsoft Mindset. More on why the 'Start Menu' sucks. (Added Aug 97) Inclusions (As a zipped set of text files, UU encoded) (The complete set of utils are on my 'Programming' page) Utilities:- BOOT_GET BAT 2,864 Read the boot sector, into a file BOOTSECT.BIN. BOOT_PUT BAT 3,131 Write file BOOTSECT.BIN to a disk's boot sector. OS BAT 745 Set an environment variable to indicate current OS. Examples:- USE_DOS BAT 3,552 Switch to DOS 6.2/Win 3.1 boots. USE_W95 BAT 3,286 Switch to Win 95 boots. AUTOEXEC BAT 5,586 Example of how to cope with multiple MS OS versions. BOOTCOLD COM 10 Utility to make PC reboot. Background ---------- I'd had enough of Microsoft products, even back in the days of MS DOS. Windows 2 was useless, I went back to DOS. Then eventually installed Win 3.1, which is pretty bad, but bearable for the sake of the utilities that run under it. However long before Win 95 came out, I had resolved that I'd follow MS no more, neither down the (perpetual) upgrade path, or up the garden path. My observations of other's experiences with Win 95, and browsing some of the many very fat books on 'Win 95 secrets/internals' strongly confirmed my feeling that Win 95 is something best avoided. Reading various articles and books on Microsoft itself, its plans and business methods, also convinced me that this was a company that was deserving of strong opposition, at a minimum. And their software is junk. The best alternative (considering the political and cost aspects as well as software utility attributes) seemed to be Linux. Its advantages are:- - Its free. - Its supported by poor, clever, idealists; not stupid, megalomaniac billionaires. - Comes with complete source code. - Is fully scriptable. But most importantly, I knew I could install it in its own little play-area on my PC, and it would politely leave all my other OSs, utilities and files alone. I could run it when I wished, or else use my old familiar tools and setups. Linux has no agenda of total world domination, starting with my PC. From what I know of MS's mindset, backed up by other's experiences with Win 95 (and mine with Win 3.1), I _knew_ that letting Win 95 near my PC would be like asking Attila the Hun and his army in for afternoon tea. How Microsoft continues to convince people to pay money for what is effectively a gigantic destructive computer virus, is beyond me. Then, as tends to happen with all plans (particularly to do with computers), I was forced by circumstances to abandon my resolution and install Win 95. A job I _had_ to do, _had_ to use a particular tool, and that _had_ to have Win 95. Oh well. Thats the way the karma crumbles. The only question was, how was I going to do this, while guaranteeing that none of my existing OS and tool setups would be compromised? I'm well aware of MS software's tendency to attempt to delete/disable earlier versions or competing applications. Ideally, I also wanted to be able to easily remove all trace of Win 95 from my system whenever it wasn't being used. For this purpose, I bought a Jaz 1 Gb cartridge hard disk drive, and several removable cartridges - one of them for the Win 95 installation. Later I'd also experiment with other OSs (eg Linux) on other cartridges. All my existing setup could (hopefully) stay where it was on the fixed hard drives. (With complete backups on Jaz cartridges, in case Win 95 did damage something.) This left only the question of how to switch the boot process to match whichever OS was current. The rest of this file relates how this was achieved, and my comments on Win 95/Microsoft. Installing the devil -------------------- A few notes on the actual Win 95 installation. [Note: Installation was on my I: drive, which is a removable 'Jaz' 1Gb cartridge SCSI hard disk.] * When I told it to install on a different drive to Win3.1's, it said this would be a "bad idea", as I'd need to reinstall all my utils. Heh, heh, no, its not a bad idea, and no, I won't. * Of course, the first thing the installer got wrong was something to do with the mouse. I have a 3 button Logitech serial mouse, which Win 95 install failed to recognise. So the entire install process had to go without mouse input. * In Accessories select, I notice that WordPad (a pathetic text editor) requires 1.3 Mb! This is a degree of software bloat that boggles the mind. * How apt: my anti-virus stuff popped up a "Warning - virus detected in system files!" message after Win 95 altered them (of course.) But then, Windows _is_ a virus. * In the 'sawing off the branch you are sitting on' category: The Win 95 install was proceeding from a SCSI CD-ROM drive. Which the installer deleted the SCSI drivers for, mid point in the install. Then it complained that it couldn't find further files it needed, such as a SCSI driver for my SCSI bus card. Oh, really? This was where I learnt about MS 'cabinet' files, and how to manually extract their contents. Sigh. * Win 95 puts a hidden directory ('recycled', containing file 'desktop,ini', also hidden) in every disk partition on every drive in the system. It sure likes hiding things: 7 hidden directories in I:\WIN, and 13 hidden files in C:\ ! Well, screw you too, MS. Keep your dammed fingers out of my stuff, and stop implying that I'm not supposed to look at what is on my own computer. * The 'CD AutoPlay' feature is dangerous, and can be annoying at times. Finding how to stop this is not easy. Win 95 Help only says how great it is, not how to kill it. After looking everywhere I could think of, still no joy. Eventually asked 'experts' and was told about the 'auto-notify' checkbox in the System:CD:properties dialog. How obvious! * Win 95 keeps talking intermittently to my modem, even when I'm not online. Why is this? When I get a round tuit, I'll stick a serial monitor on the link and see what it's saying. Hopefully just an 'are you there? - yes' handshake. * Win 95 puts several 'clutter' files in the C:\ root, even though it is installed on I:\WIN. This is nothing but bad practice by MS programmers. * Win 95 provides a set of DOS/batch command executables, which superceed any older ones in C:\DOS. Rather than wipe the old ones, it keeps the new ones in a seperate directory (thankfully!) - I:\WIN\COMMAND. The standard boot proceedure results in these being earlier on the Path than the old Dos command directory, so the new ones get used instead. However, do you thing Win 95 could refrain entirely from messing with the old C:\DOS directory? Of course not. These are the C:\DOS files that Win 95 added or modified. It also renamed the old defrag.exe to defrag.ex~ DBLSPACE BAT 403 11-07-95 9:50a DEFRAG BAT 339 11-07-95 9:50a DEFRAG EX~ 79,177 30-09-93 6:20a DRVSPACE BAT 329 11-07-95 9:50a SCANDISK BAT 152 11-07-95 9:50a SCANDISK EX~ 134,738 19-03-97 8:27p * Most old DOS utilities (eg DEBUG, ATTRIB, etc) fail with an "incorrect DOS version" message if the one used does not match the booted system version. So you need to ensure that the right set are first on your Path when investigating DOS 6.2 vs Win 95 changes. * The startup (and other) log text files are created (good!), put in C:\ (well, OK), but are _hidden_ files. Why!? This is just plain mean-minded. * Oh no! NotePad still lives. And it still can't deal with decent sized files. Now it says: "This file is too large for NotePad to open. Would you like to use WordPad to read this file?" So why didn't MS just do one decent text editor/reader, that can handle files of any size? Answer: Not that they can't, but because they don't want you to easily handle large text files. Real knowledge tends to come in big chunks. * With a Pentium 120MHz, Win 95 takes more than two minutes to boot up! What the hell is it doing all that time? The PATH boot hack ------------------ During boot, an AUTOEXEC.BAT file is still executed, but is no longer simply run directly as it was with DOS/Win3.1. Under Win 95, it is now called by something else, which has already set up some DOS environment strings. Just before AUTOEXEC.BAT is called, the environment now contains:- TMP=I:\WIN TEMP=I:\WIN PROMPT=$p$g winbootdir=I:\WIN PATH=I:\WIN;I:\WIN\COMMAND COMSPEC=C:\COMMAND.COM Under Win 95 there seems no way to alter this pre-AUTOEXEC behaviour, other than by modifying the hard drive boot sector, or Windows executables. Also, when AUTOEXEC.BAT exits, the controlling program immediately tries to run WIN.COM. Or actually, it just issues a "WIN" command, which is searched for in the usual manner of DOS, ie in the working directory then sequentially through directories listed in the path string. So if the path at this time does not have the main Windows executables directory first in the list, and you have a batchfile named WIN.BAT in an earlier path directory, that will be run instead. If you wanted to have your computer boot up without immediately diving into Windows 95, this would be a good place to put an escape hatch. Oddly, those of us who do not love Microsoft often chose to use our computers in ways not sanctioned by the minions of Gates. We even sometimes want to (blasphemous whisper:..) run _old_ versions of software. We admit that this behaviour shockingly fails to generate upgrade revenue for MS, but we continue in sin anyway. Obviously then, the easiest way to abort a Win95 boot is to change the path in your AUTOEXEC.BAT file, and have a WIN.BAT early in the path, right? Well, yes, but Microsoft would rather you didn't. To assist you to _not_ do this, MS have introduced an interesting quirk to the behaviour of the PATH batch command under Windows 95. Specificly, the PATH statement executed _first_ in AUTOEXEC.BAT misbehaves. For this first time only, you might say "PATH your_path", but the resulting environment string will contain "PATH=I:\WIN;I:\WIN\COMMAND;your_path Subsequent PATH statements will give you just what you asked for. To demonstrate this behaviour, put this in the head of your AUTOEXEC.BAT:- In your file Resulting PATH string ------------ --------------------- rem ---- File: AUTOEXEC.BAT ---- rem Demonstrate that Win95 boot rem bodges the _first_ PATH cmd:- set savepath=%PATH% set > test0.txt PATH=I:\WIN;I:\WIN\COMMAND path c:\temp set > test1.txt PATH=I:\WIN;I:\WIN\COMMAND;C:\TEMP path c:\temp set > test2.txt PATH=C:\TEMP path c:\temp set > test3.txt PATH=C:\TEMP PATH %savepath% Dirty Windows ------------- While on the subject of environment variables, remember that the Win95 boot sequence set these as defaults:- TMP=I:\WIN TEMP=I:\WIN winbootdir=I:\WIN PATH=I:\WIN;I:\WIN\COMMAND So Microsoft's idea of clean data organisation is to put just about anything in one directory - the main Windows system directory. Hate to see their kitchen. How to save and restore boot sectors ------------------------------------ The 'boot' sector is the very first sector on the active DOS partition. At an early stage of the PC boot sequence, this sector is read into memory and the code it contains is run. There _should_ be checks on the data validity done before running it, but there seem to be none. (See Note 6 of 'Boot Sector Structure', below.) The boot sector code is the first part of whatever operating system you have that gets it's hands on the CPU. From this point on, your machine is under the command of that OS. The boot sector is not accessible to normal DOS/Windows file utilities, but can be examined with most hard disk low level repair tools, such as Norton Utilities. Be careful not to alter it! Before Windows 95, the boot sector began a process that first came up in DOS, then allowed your CONFIG.SYS and AUTOEXEC.BAT script files to pass control on to Windows (3.1) automaticly - if you wished. If AUTOEXEC.BAT didn't start Win3.1, you ended up with the DOS command line. The Windows 95 install process modifies the boot sector of the boot drive, so that now the boot process does its best to get your machine straight into Win 95. Microsoft is not very big on customer choice. Note that 'straight into' means 'without escape, and with a screenful of free advertising for Microsoft on the way'. It does not mean 'as quickly as possible'. The MS Win 95 startup logo screen is now a huge chunk of hi-res imagery, and its makings are even more deeply (and inextricably) buried in the boot binaries than they were in Win 3.1. I'm inclined to suspect also that part of the time its on the screen is just a deliberate delay, rather than for useful setup workings. So anyway, to sidestep out of Win 95, one thing that is useful is to be able to put whatever boot sector contents you wish, in place before a boot. There are utilities around to do this, but you don't need them. The ability is already in your machine, in the form of the good old (well, actually rather shitty) DEBUG.EXE. This thing is like a loaded gun - very dangerous but dammed useful when you really need it and are prepared to use it intelligently. The first thing you should do is make file copies of the different boot sectors you may want to use. For this, I've provided BOOT_GET.BAT. Use "BOOT_GET ?" for help. It drives DEBUG.EXE with a script to save a specified disk's boot sector to a specified file. The file will be the same length as a boot (or any DOS) disk sector: 512 bytes (200h). See the batch file itself for details of how it achieves this. There is a similar utility called BOOT_PUT.BAT that writes a file to the disk boot sector. Use with care. Make copies of the C: boot sector before and after installing Win 95. Oh, "too late!" you say? Never mind, all is not lost - provided that you still have copies of your DOS 6.2 install disks, or boot floppy. You'll need DOS 6.2 versions of:- IO.SYS MSDOS.SYS COMMAND.COM also SYS.COM Command to write minimal DOS system to a disk. DEBUG.EXE Used by BOOT_GET.BAT to copy boot sector to a file. If you don't have these, bad luck. Find someone who had the sense to keep theirs. I suggest you make a dir and sub dirs like: C:\SMASH_MS\BOOTSECT Holds various boot sector images. \ROOT_DOS Hold copy of all DOS 6.2 C:\ (root) files. \ROOT_W95 Hold copy of all Win 95 C:\ (root) files. Make _certain_ you copy _all_ files from the root, including system, hidden and read-only files. The best tool for stuff like this is XtreeGold, the DOS version. The aim is to get a complete set for DOS 6.2 in \ROOT_DOS, and a complete set for Win95 in ROOT_W95. Beware: Since MSDOS version 5.0, XCOPY does not copy hidden and system files. (Thanks MS - NOT!) But you can strip the 'r', 's' and 'h' attibutes from the files first, then copy them. Neither DOS 6.2 or Win 95 seem to care whether their system files are actually tagged as System or Hidden. *** ================== WARNING ========================================== *** This is important: Also make backups ON A BOOTABLE FLOPPY of all these *** files: the bootsector images, all the system files, the BOOT_GET and *** BOOT_PUT utilities, an ASCII text editor, and any other tools you *** often use. If you mess up your PC's boot files, you *WILL* need this *** floppy. If you mess up the bootsector badly enough, you won't be able *** to read your C: drive *AT ALL* - till you write back a correct boot *** sector. If you had the (only) backups on C:, you'll feel pretty silly. *** Hchhmm... believe me, I've been there. To make a DOS 6.2 boot sector copy on a Win 95 system:- 1. Make a backup of the Win 95 boot sector and root files, as above. Making copies of the above on a floppy is not a bad idea either. Backup _all_ the system files, including CONFIG.SYS and AUTOEXEC.BAT. Keep them (including BOOTSECT.W95) in C:\SMASH_MS\ROOT_W95. 2. Make sure you can re-write all of them (including the boot sector) back where they came from, even if booting from a floppy, under Win95 or DOS 6.2. Try it. The next steps will clobber your Win95 boot sector, and you want (probably?) to be able to get back later. See the section on 'writing boot sectors' below. 3. Boot from a DOS 6.2 floppy (A:) with IO.SYS, MSDOS.SYS and COMMAND.COM in its root. It also needs SYS.COM and DEBUG.EXE accessible. 4. Use command "A:>SYS A: C:" to install the minimal three DOS boot files on your C: drive. They are copied from the floppy, and the C: boot sector is overwritten as well (which is not mentioned in the DOS user guide). (See note on boot file order in root directory.) If you reboot the PC now, it should come up in DOS 6.2, though you may have to patch the CONFIG.SYS and AUTOEXEC.BAT files (which are still as Win95 left them). Ensure no 'WIN' command gets executed. 5. Once the PC boots OK in DOS 6.2, you can run BOOT_GET.BAT to make a copy of the DOS boot sector. Save it in both C:\SMASH_MS\BOOTSECT and C:\SMASH_MS\ROOT_DOS as BOOTSECT.DOS. Maybe its worth saving CONFIG.SYS and AUTOEXEC.BAT in C:\SMASH_MS\ROOT_DOS if it took some work to patch them. 6. (Optional!) Now restore your Win 95 setup. Copy all the win95 root files back, and rewrite the Win95 boot sector too. (Use BOOT_PUT.BAT) Beware that the DOS 'COPY' command won't copy files with System or Hidden attributes set. You'll have to patch & restore the attributes of some of these files. Check Win95 now boots OK. Also make a copy of a bootable and non-bootable floppy boot sectors, and examine them. Just for fun. What, you're not enjoying this? Awww.... Notice that you can patch the text messages in them, and rewrite to the floppy, and the floppy will still boot? ... Look Ma, no checksums! Incidentaly, I'd like to point out that in a well designed operating system, _everything_ on a disk would be accessible via the standard file system. There wouldn't be any need for all this futzing around with special methods of getting at boot sectors. There'd just be a normal file called BOOT_ME.BIN or something similar, kept in the root or somewhere commonly agreed on. But that would be too simple for Microsoft. Wouldn't give them that furtive glow they seem to revel in so. Would make things too easy for people wanting to get around the fences MS put up. Fences to herd us down the righteous path to the upgrade abattoir. Boot Sector Structure --------------------- Here is some information on the format of Microsoft disk boot sectors:- (Ref: The Programmer's PC Sourcebook, Thom Hogan) Offset Length Description ----------------------------------------------------------- 0h 3 bytes JMP to boot code. [1] 3h 8 bytes OEM name and version. [2] Bh (11) word Bytes per sector. Dh (13) byte Sectors per cluster (must be power of two). Eh (14) word Reserved sectors (for FAT, Dir, etc). 10h (16) byte Number of copies of FAT. Normally two. 11h (17) word Maximum number of root directory entries. 13h (19) word Total number of sectors in logical image. 15h (21) byte Media descriptor byte. [3] 16h (22) word Number of sectors in FAT. 18h (24) word Number of sectors per track. 1Ah (26) word Number of heads. 1Ch (28) word Number of hidden sectors. ---The rest I don't have documentation on, but my obsevations are: 1Eh (30) word ? Usually = 0000. 20h...22h ? ? Alter these, and the disk becomes unreadable. 23h...26h ? ? Usually = 00 80 00 29. 27h...2Ah ? ? 2Bh...35h 11 byte string, Volume name. No zero terminator, space filled. 36h...3Ah 5 bytes "FAT16" For both DOS and Win95 (for my disks). 3Bh...3Dh 3 bytes Spaces. Both DOS and Win95 3Eh Start of boot code under DOS 6.2 [4] 40h Start of boot code under Win 95 [4] ... 1FEh (510) word Magic number. Always = 55h, AAh for MS disks. [6] Notes [1] For DOS 2.x = 3-byte near jump, for DOS 3.x = 2-byte short jump + NOP. [2] OEM name and version are not always present (IBM does not use). [3] Media descriptor bytes are not necessarily valid, beginning with DOS 2.x [4] Code start position is determined by the destination address of the JMP opcode at offset 0. [5] At the end of the code section there is usually an ascii string (zero terminated) that gets displayed if something goes wrong with the boot (or if this is not a bootable disk). It is not checksummed, so you can easily change this to say whatever you like, and can use all space right up to the magic number at 1FEh. [6] Presumably, the magic number (55h,AAh) was intended to allow the BIOS to recognise valid boot sectors. But (on my PC at least) it can be set to any value (on a boot floppy) with no effect on the boot process. If anyone has original ASM source code for various MS DOS boot sectors, or the Win 95 one, I'd very much like to see it. How to run DOS 6.2, Win 3.1 and Win 95 on the same machine ---------------------------------------------------------- There are many 'boot manager utilities' around, but most of them require the user to manually select a desired OS during each boot. Also, they are binary executables, and so not transparent in their method of operation, and not fully user customisable. Whats needed is a _simple_ boot controller, easily reconfigurable, and which sets the machine up to boot in a desired OS every time, till the user changes it again. The following is a full description of how to do this, using nothing but DOS batch files. Including the BOOT_PUT.BAT utility. The basic technique involves keeping a seperate directory for each of the operating systems you want to use, with each dir containing just the key boot-up system files for that OS. To switch to an OS, use a batch file to copy a complete set of boot files for that OS into place in the primary DOS partition root - including a boot sector. This overwrites some or all of the active boot files for the OS currently in use, but you have master copies in your own keeping. When you want to go back to that OS, just rewrite _those_ to the root, etc. Recall the tree I suggested:- C:\SMASH_MS\BOOTSECT Holds various boot sector images. \ROOT_DOS Hold copy of all DOS 6.2 C:\ (root) files. (This does for Win 3.1 as well) \ROOT_W95 Hold copy of all Win 95 C:\ (root) files. You also need to have one 'batch commands' directory which will always be on the DOS path under all OSs you use. In my case this is called C:\ZAP, and holds general alias and shortcut batch commands. Here is a sample batch file to switch to Win95:- @echo off rem File: USE_W95.BAT Switch to booting Windows 95. set src=c:\smash_ms\root_w95\ attrib -r -s -h C:\IO.SYS attrib -r -s -h C:\MSDOS.SYS copy %src%IO.SYS C:\ copy %src%MSDOS.SYS C:\ copy %src%CONFIG.SYS C:\ copy %src%COMMAND.COM C:\ attrib +r +s +h C:\IO.SYS attrib +r +s +h C:\MSDOS.SYS call BOOT_PUT C: %src%bootsect.w95 echo Reboot now to suffer Windows 95. rem COLDBOOT.COM Note that all files in C:\SMASH_MS\ROOT_W95 have had their 'rsh' attributes cleared beforehand. Otherwise COPY won't copy them. I don't copy AUTOEXEC.BAT here, because I have one arranged to work for both DOS, Win 3.1 and Win 95 boots. It uses the 'OS.BAT' mechanism to determine which OS is booted, and act accordingly. But some people may find it simpler to keep and copy different versions of AUTOEXEC.BAT as well. This seems to work perfectly. It does not matter that some of the other boot files from Win 95 (or whatever) remain in the root when using DOS/Win3.1, since nothing is going to refer to or run them. You only need to overwrite the boot sector, and whatever boot files have the same names as boot files for other OSs you use. Of course, the DOS vs Win95 boot system files could have been named differently, allowing new and old versions to co-exist in the root. Then you'd have only needed to swap the boot sector. But Ohhhhhhh Noooooo, that would be too simple for Microsoft! Well stuff them. Best of all, by switching to DOS, and removing the Jaz cartridge with Win95 and it's installed applications, I have a system entirely uncontaminated by that latest and most extreme manifestation of Microsoft madness. Order of Boot Files in Root Directory ------------------------------------- One thing to beware of when switching between Win95 and DOS/Win31, is the order of the files IO.SYS and MSDOS.SYS in the root boot directory. In DOS 6.2, these two files _must_ be the 1st (IO.SYS) and 2nd (MSDOS.SYS) entries in the root directory, or the boot sector code cannot find them. In Win 95 this restriction seems to be removed, though Win95 does its best to prevent you from actually messing with these files. For instance, when I used Norton Disk Utilities in a Win 95 DOS box to edit the IO.SYS file name in the root directory, got a message: "Windows has disabled direct disk access to protect your long filenames. To override this protection, see the LOCK /? command for more information. The system has been halted. Press Ctrl+Alt+Del to restart your computer." Right, thanks MS. 'For your protection, we have taken your freedom.' Here is what the LOCK /? cmd gives: "Locks a drive, enabling direct disk access for an application." If you actually _do_ a 'LOCK C:', you get: "WARNING: The LOCK command enables direct disk access by programs that can CORRUPT file names and/or DESTROY disk data, resulting in the loss of files on your disk. Are you sure (Y/N)?" So I gather MS wishes to scare people off using such naughty tools. Anyway, the best way to experiment with moving the system files is to boot DOS 6.2 from a floppy, and use XtreeGold under that. When doing this, ensure that your file system manipulation tool is showing you an _unsorted_ view of directory file lists. Ack! How _dare_ Windows touch my batch files! --------------------------------------------- I have another directory full of quite complex batch files, that together form a work organisation system that lets me switch 'project tools' (mostly CAD stuff) and associate utilities with project working directories. These batch files call each other, do some tricky things, and have a lot of carefully maintained (and disk-saved & restored) environment variables. When I installed Windows 95 I was not using these at the time, although there were some connections between the AUTOEXEC.BAT file and these files. A while later, I tried to use them (in their original, fully DOS 6.2 context) and all hell broke loose. It turned out that Windows 95 had gone through the batch files and changed things, seemingly at random. As far as I'm concerned, this is wilful destruction of data, and if I had the resources I'd consider sueing Microsoft for this. The consequences could have been very serious in terms of lost project files, although in the end all it cost me was time spent tracking down the problem and restoring a backup of the batch system. Where Win 95 whimsically decided to 'REM' out lines, at least it left a record of its actions. Here is the result of a 'grep "windows setup" *.bat' in my project batch tools dir:- File IN_DIR.BAT: 7 rem - By Windows Setup - del %pj%\in_dirx.bat File USE.BAT: 76 rem - By Windows Setup - copy %pj%\s\%rconf%.sys %boot%\config.sys 191 rem - By Windows Setup - del %in_dir%%\%woof File ERROR.BAT: 16 rem - By Windows Setup - copy %pj%\S\config.sys %boot%\config.sys> nul File WHEN.BAT: 8 rem - By Windows Setup - del %pj%\whenx.bat 9 rem - By Windows Setup - del %pj%\whent.bat The problem is, will this happen again every time I use the Win 95 setup? Does this mean its not safe to refer to any other batch files in AUTOEXEC.BAT, in case that puts the MS batch-file-chewing hounds on the scent? Later: When doing a re-install of Win 95 after a hard disk upgrade, some more batch files were trashed in the same way. This time, so far as I can tell, their crime was to be in a directory mentioned in the PATH, and to make reference to the system files IO.SYS and MSDOS.SYS. So beware: any batch file in any directory on the PATH may be messed with by the Win 95 installer. Hunting the Win 95 startup logo graphics data --------------------------------------------- Note: The comments below relate to an early version of Win95. Later versions (such as the one that says 'Internet Explorer' on its start screen) have the startup graphic in a seperate file kept in C: root - LOGO.SYS. Which is actually a .BMP file.) For Windows 3.1 I had done a spoof of the startup logo, but then found that the logo display could be inhibited with "WIN.COM :" - which sped up the Windows startup time a bit. See the file W31_LOGO.GIF. That graphics gets included in the Win 3.1 startup file WIN.COM, which also does the work of putting it on the screen. Anyway, I'd like to do something similar with the Win 95 startup graphics. So the question of where that screen comes from arose. A comparison of boot system file sizes is interesting:- DOS 6.2 Win 95 -------------------------------------------------- command.com 54,619 92,870 (Bigger, of course.) io.sys 40,566 233,148 (MUCH bigger.) msdos.sys 38,138 1,649 (Now a short text file.) So which file contains the logo, and is it the same as whichever controls the Win 95 startup process? Just before the logo appears, a string "Starting Windows 95" is displayed. This string is found at offset $F31A in file IO.SYS. Therefore this file is running before the logo graphic appears. With the cartridge containing all the Win 95 installation removed, and all files deleted from the primary partition except IO.SYS and MSDOS.SYS, both the "Starting Windows 95" string and the logo screen still appear. So the logo data is in IO.SYS. However, I've not yet had time to figure out where, and how to alter it. If anyone has already done this, I'd like to hear from you. The two graphics that Win 95 shows as it shuts down, are- LOGOW.SYS "Wait..." LOGOS.SYS "Now safe to..." These are actually .BMP files, and work perfectly with .BMP viewers. MS's mis-naming the suffixes is just another instance of their deviousness. Misc Questions -------------- 1. Is it _possible_ to make a Win95 boot floppy? Just the root boot files come to nearly a meg. Must try it sometime. --- Continued in 'Windows Woes and the Microsoft Mindset' (W95_WOE.TXT) ---