Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Oct 2018 11:59:00 +0200
From:      Polytropon <freebsd@edvax.de>
To:        Ian Smith <smithi@exemail.com.au>
Cc:        questions@freebsd.org
Subject:   Re: FreeBSD boot manager customization for single-disk multiboot (4 x DOS)
Message-ID:  <20181015115900.4142cede.freebsd@edvax.de>
In-Reply-To: <50139023-EF23-4464-8E99-4958CB3A3044@exemail.com.au>
References:  <50139023-EF23-4464-8E99-4958CB3A3044@exemail.com.au>

Next in thread | Previous in thread | Raw E-Mail | Index | Archive | Help
On Mon, 15 Oct 2018 19:28:55 +1100, Ian Smith wrote:
> I've read the thread.  Manish is trying to help but his DOS
> familiarity doesn’t go back far enough.  I started at 2 and
> used 3.3 (with Desqview), later 5.0 for years running Fidonet
> mailer, BBS, message editor, DOS command space and other tasks
> in 6 MiB RAM .. so had to learn how to really squeeze things
> in - as did you, I gather. 

Correct. Started with DOS 3.3 (and its "foreign predecessors"
called SCP and DCP which aren't known outside former GDR), then
DOS 5.0 and 6.22 (with NDOS as COMMAND.COM replacement), and
I even used Novell DOS 7 for a short time (and its UNDELETE
program was really great). Oh, and I also know and still _have_
Desqview/X (with package, books, and floppies).



> Correct, you cannot boot DOS from a non-primary partition.
> Maybe you could use GRUB, it installs after the MBR on track
> 0 side 0 so shouldn't get in the way.

I think an older version of Grub might work - I don't assume
today's current version is up to the task on running on such
an old system.



> I dont think you need to install linux to install GRUB?

The smallest disk that I can use is 20 GB, so it would not
be a problem due to space limitation if I installed Linux.
For "logical space", it could even go into an extended
partition, for example like this

	Whole disk:				20,000 MB

	prim. part. 1 = DOS 5.0			    50 MB
	prim. part. 2 = DOS 6.22		   500 MB
	prim. part. 3 = data exchange (FAT)	 1,000 MB
	ext. part = {
		log. vol. 1 = Windows '95	 2,000 MB
		log. vol. 2 = Windows '98	 2,000 MB
		log. vol. 3 = Linux swap	 2,000 MB
		log. vol. 4 = Linux ext2	12,000 MB
	}

Disk space is not a problem. The replacement system does not
accept disks bigger than 20 GB, so when I say "smallest disk",
this is actually the only (!) disk I can use. :-)



> That said, I don't use it myself.  To add linux to the 4-DOS
> mix would need an extended partition, leaving only 3 primaries
> for 3 x DOS.  Same deal with OS/2, with its great boot manager.

Oh yes, OS/2... it wrecked my DOS installation and "shifted"
the partitions (3 became 2, 2 became 1, 1 disappeared) when
I tried to install it into partition 4. Luckily, with the
great Norton Disk Editor (run from DOS emergency floppy),
a handheld calculator, and pen & paper I could reconstruct
the partition table manually and "get my data back" (as it
was not overwritten, just not assigned to a partition anymore).



> boot0.s MBR code is VERY tight with about ZERO free space as
> I  recall .. however there's code there - still was at 9.x I
> think - for a 1Ķ (2 sector) version written by the same author
> (Robert Nordier IIRC, I don't have a system to hand).  That
> should have plenty of room for more lavish labels, and may
> in fact include such code?  If you have a spare system you
> could assemble that and test.

I haven't done assembly programming for many years. I can
generally understand how the boot manager works, but I don't
think I'm skilled enough for modifying it (and still get a
working version that can do what I expect). The detection
and labeling magic is quite powerful in there. :-)



> Of course you'll have a backup MBR (directed more at other readers :)

Luckily, that is an easy task with dd. In DOS, C, you'd use
the famous biosdisk() (prototype in dos.h!) to get the 512
bytes from the disk and store it to a file.

That reminds me to one of my first exercises in lower-level
C programming: Wrote a program that would modify the MBR to
change the start address of the 1st active primary partition
to the MBR itself, so the system would "boot into a loop".
Yes, we did actually consider this both funny and educational
at that time... :-)



> One thing to watch is that esp.  earlier versions of DOS may
> want to use the first slice explicitly?  I'm not sure, but I'd
> start with earliest versions first, and test each as you go. 

Yes, I think DOS 3.3 and before specifically needed that.
I'll check how DOS 5.0 will react. From older experience,
I seem to remember that DOS 6.22 could be booted from a
primary partition 2, 3, or 4, and depending on the content
of the ramining partitions, "drive letters" would then be
re-arranged (as the boot disk would always be C: as assigned
by a boot manager).



Interestingly, I found out that I could _maybe_ fix the
power supply of the IBM Thinkpad 755C. Documentation says
that it needs 20 V DC (so no 10 V DC as written on the label
of the exploded power supply). I think I still have a PSU
"brick" that provides 20 V DC, and making a new cable from
the remains of the old PSU is not a problem.

	      /-------\
	+ --- | o   o | --- Signal
	- --- | o   o | --- Ground
	      +-------+

Documentation suggests that "+" and "-" are the ones that
should be used, and _not_ connected to "S" and "G" in any
way. In case you are curious, this is the relevant documentation
that gave me hope to revive the TP 755C that has served me
so well for decades:

http://www.thinkwiki.org/wiki/Power_Connector#4-Pin_hexagon

https://www.powerstream.com/lta-IBM.htm

It looks like this one:

http://www.thinkwiki.org/w/images/9/9f/ThinkPad755CD.jpg

But instead of the optical unit, mine has the floppy disk
unit installed. And as I said, having access to old-fashioned
things like parallel ports, serial ports, or floppy drives
sadly is _not_ optional in this special case. :-)




-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...



Want to link to this message? Use this URL: <http://docs.FreeBSD.org/cgi/mid.cgi?20181015115900.4142cede.freebsd>