[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Floppy Status



I took the recommendation to free myself from 8 inch floppy drives to
heart. Both my CP/M system and DOS/65 system now boot from 5.25 inch,
80 track, DSHD (1.2 MB) drives. Drives are configured with 15 sectors
of 512 bytes each per side for each track. Track 0 - Side0 is the
system track and with the ability to hold 60 128 byte records it has
more than enough room for the bootable system.

The 8 inch drives are now drives c & d and can be completely
disconnected and powered off if desired.

It is kind of nice to have a nearly 1.2 MB boot drive and then use the
hard drives (e & f) as either source code storage or working areas for
assembly or compile operations but have the ability to do that on the
boot floppy if desired.

Key steps to make this happen:

CP/M (Z80)

a. Change MONITOR ROM to boot from the 1.2 MB drive and also do much
of the warm boot from that drive using common code.
b. Change BOOT to use an approach similar to Kaypro in that the boot
record has no code just the load start address, execute address (BIOS
cold boot entry), and number of 128 byte records to load. All boot
code is in the MONITOR ROM. That ROM remains a 2Kx8 ROM using either a
2716 or upper half of a 2732 - yes, 24 pin ROMs are still good.
c. Change BIOS to reflect new drive order and to use MONITOR routine
for the main part of a warm boot.
d. Built a utility (PUTSYS.COM) to write the BOOT, CCP, BDOS, & BIOS
to the system track of the drive.

DOS/65 (6502)

a. Change MONITOR ROM to boot from the 1.2 MB drive and also do much
of the warm boot from that drive using common code. This proved
slightly more difficult than for the CP/M system as I ran out of room
in the ROM and had one software bug that eluded me for a couple of
days. I solved the space issue by moving the 8 inch drive translation
code and look up table to the SIM (the BIOS equivalent). The bug
turned out to be simple to fix once I remembered that the read and
write routines in the ROM do not necessarily preserve all input
parameters. This was especially true for the location of the start of
the read and write 512 byte long buffer. Normlly this is not an issue
as nothing directly calls the MONITOR except SIM and SIM does save all
parameters. All it took was three lines to reset the buffer location
before each full 512-byte sector read. Once I did that it worked like
a champ.
b. Change BOOT to use an approach similar to Kaypro in that the boot
record has no code just the load start address, execute address (SIM
cold boot entry), and number of 128 byte records to load. All boot
code is in the MONITOR ROM. That ROM remains a 1.75Kx8 ROM using
either a 2716 or 2732.
c. Change SIM to reflect new drive order and to use MONITOR routine
for the main part of a warm boot.
d. No utility was needed to write the BOOT, CCM, PEM, & SIM to the
system track of the drive as the DOS/65 SYSGEN.COM is able to write
the system tracks to almost any drive.

I wanted to reach this point before I had to focus on debugging the
6502 S-100 CPU prototype when it is available so "mission
accomplished".

I am building the parts list and assembly notes for the 6502 board and
will get parts ready for it within the next few days.

Rich