VOGONS


First post, by ali90taz

User metadata
Rank Newbie
Rank
Newbie

Description:

Hi folks,
In this topic I want to offer you a small but very useful software for retrocomputer lovers, I coded this software myself to read and write the floppy disk boot sector (MBR), the idea of programming this software came from the need to have a way to create a floppy disk that can boot an old computer without resorting to third-party tools like rufus and similar, because I want to have total control over the boot sector for who knows in the future create my own operating system, if someone here aspires to do the same, maybe this software can also be useful.

It is worth mentioning that the software is in beta, so don't be alarmed if you find small bugs, I will improve it soon and add support for hard disks, keep an eye out.

Thank you for visiting my topic, long live the old computers!

Technical information:

CRC32: 10541770
Compatible with: MSDOS and Windows 9X in real mode.
Included files: FBW.EXE

Usage information:

Place the FBW folder in the root of the C:\ disk and enter the directory.

The following commands are available:

FBW READ - Reads the boot sector of the floppy disk on drive 0 and saves it as BOOT.BIN, the generated file will be saved in the folder where the program was started.

FBW WRITE - writes any file named BOOT.BIN to the boot sector of the floppy disk on drive 0, the file must be 512 bytes long and must be in the same folder or directory as FBW.EXE

Credits:

Used in understanding the floppy disk and its structure: http://www.manmrk.net/tutorials/DOS/PSBOOK/book4/floppyd.htm
Books used to get information: Borland Turbo C 2.0 - Reference Guide
Development environment: Borland Turbo C 2.01, Fujitsu Lifebook 770tx, IBM PC DOS Version 7.00 and HEXIT for debug porpuses.

Source code:

If you are interested in the source code, send me a PM requesting it.

Attachments

Reply 1 of 7, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Thank you very much! ^^

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 4 of 7, by debs3759

User metadata
Rank Oldbie
Rank
Oldbie

I always use John Fine's partcopy.exe

Nice to see more options for the same task though 😀

See my graphics card database at www.gpuzoo.com
Constantly being worked on. Feel free to message me with any corrections or details of cards you would like me to research and add.

Reply 5 of 7, by doshea

User metadata
Rank Member
Rank
Member

Nice! I'm accustomed to using Linux's dd command for transferring data to/from disk devices, so I wondered if any DOS ports were available that could do this. I would expect to be able to do something like dd if=a: of=bootsect.bin count=1 where if= and of= are the input and output files/devices respectively, and it defaults to copying 512-byte blocks so count=1 means it will only copy one sector instead of the whole disk.

uxutl23b.zip has a dd.exe which is documented in uxutl23a.zip (there are also some other .zip files with other utilities from the same author):

Some of the command support raw disks and floppies to a degree (cpio, dd). The filename for a raw disk is /dev/hdxy and /dev/fdx […]
Show full quote

Some of the command support raw disks and floppies to a degree (cpio, dd).
The filename for a raw disk is /dev/hdxy and /dev/fdx for a floppy where x
is the unit number and y is the partition (numbered from 1, partition 0 is
the whole disk unit). Thus: dd=/dev/hd00 count=1 bs=512 of=x copies the
boot sector from unit 0 to file x.

However I had trouble reading the boot sector from a 720KB floppy under Bochs, which reported attempts to access invalid sector numbers. That might be because Bochs is reporting the drive as 1.44MB even though I think I told it it should be a 720KB drive, but that probably means this tool won't deal with a 720KB floppy in a real 1.44MB drive. It could read the boot sector from my emulated hard drive though.

gnufut21.zip has a dd.exe where you can use if=0:, 1:, etc. to access physical disks, and I was able to read the boot sector of a 720KB floppy in a 1.44MB drive under Bochs using this tool, but it couldn't seem to read from my hard drive.

fut312bx.zip and futi14bx.zip also provide dd implementations but they don't seem to have any raw disk access facilities.

Those files are all available under https://www.ibiblio.org/pub/micro/pc-stuff/freedos/gnuish/ or on the Simtel 20 for MS-DOS CD-ROM disc 2 from September 1997 (https://archive.org/details/cdrom-cdrom-simte … ember1997-disc2). Unfortunately source isn't available for the uxutl23*.zip implementation but the rest seem to have source available.

Reply 6 of 7, by ali90taz

User metadata
Rank Newbie
Rank
Newbie

I would like to thank the following users for downloading, using and evaluating my little software:

Jo22 wrote on 2021-02-23, 12:44:

Thank you very much! ^^

vetz wrote on 2021-02-23, 12:57:

Very nice!

Warlord wrote on 2021-02-23, 13:38:

Thanks, never had somthing like this for pure dos which makes it useful to me. In the past Ive used a combination of winimage and bootice windows only programs for such tasks.

debs3759 wrote on 2021-02-23, 14:17:

I always use John Fine's partcopy.exe

Nice to see more options for the same task though 😀

doshea wrote on 2021-02-28, 04:53:
Nice! I'm accustomed to using Linux's dd command for transferring data to/from disk devices, so I wondered if any DOS ports wer […]
Show full quote

Nice! I'm accustomed to using Linux's dd command for transferring data to/from disk devices, so I wondered if any DOS ports were available that could do this. I would expect to be able to do something like dd if=a: of=bootsect.bin count=1 where if= and of= are the input and output files/devices respectively, and it defaults to copying 512-byte blocks so count=1 means it will only copy one sector instead of the whole disk.

uxutl23b.zip has a dd.exe which is documented in uxutl23a.zip (there are also some other .zip files with other utilities from the same author):

Some of the command support raw disks and floppies to a degree (cpio, dd). The filename for a raw disk is /dev/hdxy and /dev/fdx […]
Show full quote

Some of the command support raw disks and floppies to a degree (cpio, dd).
The filename for a raw disk is /dev/hdxy and /dev/fdx for a floppy where x
is the unit number and y is the partition (numbered from 1, partition 0 is
the whole disk unit). Thus: dd=/dev/hd00 count=1 bs=512 of=x copies the
boot sector from unit 0 to file x.

However I had trouble reading the boot sector from a 720KB floppy under Bochs, which reported attempts to access invalid sector numbers. That might be because Bochs is reporting the drive as 1.44MB even though I think I told it it should be a 720KB drive, but that probably means this tool won't deal with a 720KB floppy in a real 1.44MB drive. It could read the boot sector from my emulated hard drive though.

gnufut21.zip has a dd.exe where you can use if=0:, 1:, etc. to access physical disks, and I was able to read the boot sector of a 720KB floppy in a 1.44MB drive under Bochs using this tool, but it couldn't seem to read from my hard drive.

fut312bx.zip and futi14bx.zip also provide dd implementations but they don't seem to have any raw disk access facilities.

Those files are all available under https://www.ibiblio.org/pub/micro/pc-stuff/freedos/gnuish/ or on the Simtel 20 for MS-DOS CD-ROM disc 2 from September 1997 (https://archive.org/details/cdrom-cdrom-simte … ember1997-disc2). Unfortunately source isn't available for the uxutl23*.zip implementation but the rest seem to have source available.

Thank you! I appreciate your feedback, it inspires me to keep working on a new version.


A new version is already under construction, for now I can tell you that:

  • There will be help for the main commands.
  • It will be possible to read and write data from hard disks.
  • I am working on ways to allow you to choose the start of the read location and designate a size to save.
  • It will now optionally be possible to choose the file name and directory, either for either read or write actions.

Possible limitations:

  • CHS (Cylinder-Head-Sector) mode only.
  • Only real 16-bit mode, I have no plans to create a version supporting new systems, I believe that for these purposes Bootice is the ideal choice.

Reply 7 of 7, by debs3759

User metadata
Rank Oldbie
Rank
Oldbie

Awesome! Once you finish the new version, I'll test it by writing a version of my FAT12 boot sector to a floppy, booting from it, and copying back to a file. I'll also see about writing a mbr and FAT16 boot sector to a file.

See my graphics card database at www.gpuzoo.com
Constantly being worked on. Feel free to message me with any corrections or details of cards you would like me to research and add.