Hi,
> On Jun 24, 2023, at 9:50 AM, Patrick McCavery <[email protected]> wrote:
>
> Hi Everyone
>
> Thanks very much for all the excellent posts here.
>
> I am a little mixed up. One message seems to say that format /s will write
> solely to the boot sector while another says it won't.
>
> I am being a bit lazy, I am using gparted under Slackware Linux. I formatted
> to Fat32. I ran qemu with -hda freedos.img -hdb /dev/sdc
>
> freedos did not like the way that gparted formatted it so it reformatted it.
> It copied over files. I was able to boot the usb device under qemu, FreeDos
> came up just fine.
>
> gparted says that that almost 15Mb are used on the USB key. du command says 0.
>
> I would like to dd the minimal image of FreeDOS. If I write this to disk, and
> copy over, fdconfig.sys, command.com, an exe and an autoexec.bat that calls
> it, I think things should be good. Am I missing anything? Is it only a
> minimal pre-kernel in the boot sector? Do I also need to copy over the kernel?
>
> I work with scientific instruments. Surely, as per your industry, there are
> too many people trying to sell "new and improved" items. There are people
> selling new scientific instruments that are hardly better than the old ones
> and in many cases are worse. Lots of people have old computers with ISA cards
> lying around that could control their old instruments but they don't have the
> software to run nor the staff to write software for it.
>
> So the requirements are soft real time, astronauts will not suffocate etc :)
>
> Thanks again to all-Pat
As for creating a bootable DOS image, you could settle for the same method used
by the RBE. The RBE (Release Build Environment) is a fully automated linux
system that uses some fairly complicated scripting to pull various components
from the internet, modify them and generate a FreeDOS Release or the Interim
Build media. Simply run “make” and return an while later to retrieve all the
various release files.
The RBE creates bootable media of various sizes and media types. When it comes
to creating the Floppy or Hard Disk images, the process more or less works like
this:
Included with the RBE is a tiny compressed floppy image (a Bootstrap image).
The floppy image contains a boot sector. The RBE copies over other items like
the Kernel, FreeCom, other utilities and a job runner batch file. It then
executes QEMU booting the updated floppy with the new disk image also attached.
The QEMU instance partitions the drive, reboots, formats the filesystem, then
transfers the system files to the new disk image and shuts down. The New disk
image is now bootable.
Since you only need a bootable disk image, you could perform a similar task in
a much less complicated way. You could create a bootstrap floppy image that
contains all the tools needed to perform the partition, reboot, format and
system transfer files. Then when you deploy a build. A script could generate
the new disk image, use DOS under QEMU to perform the tasks needed to make it
bootable, then copy the program over and boot the new image.
So when you compile and deploy the program, it could call a script that looked
something like…
# create hard disk image
qemu-img create -f raw DOSDISK.IMG 15M || exit $?
# boot bootstrap image to partition, format and transfer system files.
qemu-system-i386 -display none -m 16M -drive
file=bootstrap.img,media=disk,index=0,if=floppy,format=raw -drive
file=DOSDISK.IMG,media=disk,format=raw -boot a
# mount disk image
# copy executable files to DOSDISK.IMG
# unmount disk image
# boot DOSDISK.IMG for testing compiled executables
Or to simplify things even more, you could just keep one or more various
“ready-to-go” disk images of the size(s) needed compressed, then expand a fresh
copy when deployed. Like…
# Pick an appropriate image size
if [[ ${needed} -gt 16 ]] ; then
img=DOS32MB.tar.gz
elif [[ ${needed} -gt 8 ]] ; then
img=DOS16MB.tar.gz
else
img=DOS8MB.tar.gz
fi
# extract a ready to go copy of DOSDISK.IMG from an archive
tar -xzf ${img}
# mount disk image
# copy executable files to DOSDISK.IMG
# unmount disk image
# boot DOSDISK.IMG for testing compiled executables
Of course, there are other ways to handle all of this.
For example, you most likely could just use one single larger pre-made image.
After all, 64Mb is not a lot of disk space and would be an enormous DOS program.
Personally, I think you should just go with a single larger compressed "ready
to go” image and not worry about it much.
:-)
Jerome
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel