I use regina rexx, and bfi to make the diskettes, and vfd, to modify them.
This rexx code reads a diskette image, and creates a boot disk, eg
bootsect.rex msdos622.ima -> creates msdos622.bs
You could add rex to the CMDEXT variable, and associate rex with regina.exe. This allows you to type rexx scripts without extention. Note that 4nt does the same thing with set .rex=regina.exe.
/* REXX boot sector*/
parse arg disk
parse var disk file '.' ext ; bs = file'.bs'
call stream disk, 'c', 'open read'
bootsect = charin(disk, 1, 512)
call stream disk, 'c', 'close'
call stream bs, 'c', 'open write replace'
call charout bs, bootsect
call stream bs, 'c', 'close'
Once ye have a library of boot sectors, the next step is to use a wrapper around bfi to make the diskette.
The boot images are stashed away in some out-of-use directory, you can maker/ver images to this as ye go, eg
z-dos32.bs ZDOS image.
You need to activate the maker in the code.
/* Boot Diskette maker */
/* configure this to where your apps live */
diskdrv = 'l:\save'
diskdir = diskdrv || '\cdata\bootsect'
bootmkr = diskdrv || '\mswin\exe\bfi.exe'
opk = diskdrv || '\mswin\apps\opk'
parse arg dosver file directory
parse upper var dosver 1 dos 6 ver
select
when dos = 'DRDOS' & ver = '341' then dos1 = 'drbios.sys'
when dos = 'DRDOS' then do; dos1 = 'ibmbio.com'; dos2 = 'ibmdos.com'; end
when dos = 'MSDOS' then do; dos1 = 'io.sys'; dos2 = 'msdos.sys' ; end
when dos = 'PCDOS' then do; dos1 = 'ibmbio.com'; dos2 = 'ibmdos.com'; end
when dos = 'LZDOS' then do; dos1 = 'io.sys'; dos2 = 'msdos.sys' ; end
when dos = 'NODOS' then do; dos1 = '' ; dos2 = ''; dosver = 'nodos502'; end
when dos = 'GSDOS' then do; dos1 = 'dos.sys' ; end
when dos = 'WINNT' then do; call ntboot ; exit; end
when dos = '/?' then do; call ttyhelp; exit; end
when dos = '-?' then do; call ttyhelp; exit; end
otherwise;
say dos ver 'not known.'
end
pwd = directory()
dos1 = upper(dos1); dos2=upper(dos2)
parse var directory bdir . ; bdir = pwd'\'bdir
cmdline = 'chcase.exe -aur' directory'\*'
say cmdline
cmdline
cmdline = bootmkr '-f='file
if dos1 \= "" then cmdline = cmdline '-o='dos1
if dos2 \= "" then cmdline = cmdline '-o='dos2
cmdline = cmdline '-b='diskdir'\'dosver'.bs' directory
say cmdline
cmdline
exit
ntboot: ; /* Make a bootable ISO with oscd */
parse var directory label directory
if directory = '' then
do ; directory = label; label = upper('WINNT' || ver) ; end
cmdline = opk'\oscdimg.exe'
bootsect = opk'\etfsboot.com'
runme = cmdline '-b'bootsect '-g -j1 -o -l'label directory file
say runme
runme
return
ttyhelp:
call lineout, 'DOSDISK makes dos diskettes based on a command line'
call lineout, ''
call lineout, ' dosdisk makerVER file directory'
call lineout, ' maker = DRDOS, MSDOS, PCDOS, LZDOS, GSDOS, NODOS'
call lineout, ' ver = 3 digit, eg 710'
call lineout, ' file = output disk, eg dos7.ima'
call lineout, ' directory = root directory of diskette'
call lineout, ' eg dosdisk PCDOS710 bootdisk dosdisk'
call lineout, ' maker = WINNT makes a bootable iso using OSCDIMG'
call lineout, ' dosdisk WINNT510 [label] directory'
return
The NT code is normally out of use. We use it to make dos diskettes.
eg dosdisk.rex MSDOS622 msdos622.ima (root of image)
dosdisk.rex /? just prints help
You then use vfd to modify the stuff.
vfd open msdos622.ima
You can use extract from
http://www.winimage.com/extract (i rename it to extract2, since extract is a cab-unpacker, or you could use some sort of image writer to write diskettes from vfd to floppy.
I use dirtouch to make the thing look nice.