NorthStar Double Density - DOS low level DCOM function

From: Dave Dunfield <dave04a_at_dunfield.com>
Date: Tue Jun 29 06:51:56 2004

Hi Guys,

I am trying to help someone with a NorthStar Horizon that has the double
density controller obtain a copy of CP/M for his system. I have located
someone with the software - not it's just a matter of figuring out how to
move it.

My plan is to write a little utility that will allow the one person to read
the disk image into a file on a PC which can be transferred by email, and
then the other guy can write it out to a diskette - this is somewhat complicated
by the fact that NorthStar allows mixed single/double density on a diskette
(I don't know if CP/M does this or not) - my idea is to read it a sector at a
time, and include a density flag for each sector - this will allow copying of
an single, double or mixed mode disk.

I am very familier with the N* single density controller (and have a system
running one), however I have never owned the DD controller.

The N* software manual fairly consistantly refers to SECTORS as either 256 or
512 byte depending on density, and FILE BLOCKS as 256 bytes - there are two
file blocks to physical sector on the DD controller.

My question is this: On page4 H-1 of the NorthStar System Software Manual,
the DCOM (Disk Command) subroutine is documented to have these parameters:
  ACC=NUMBER OF BLOCKS
  B=COMMAND(0=WRITE, 1=READ, 2=VERIFY, -1=SING-INIT -2=DBL-INIT)
  C=UNIT NUMBER, Bit7=DOUBLE DENSITY BIT
  DE=STARTING RAM ADRESS HL=STARTING DISK ADDRESS

My concern is that ACC indicates BLOCKS, not SECTORS - does this mean that the DD
controller can read/write 1/2 sectors, must always begin on an even block number,
or is this a typo and it really refers to 512 byte physical SECTORS.

The question also applies to the HL parameter - is this the starting address in 256
byte BLOCKS, or 512 byte SECTORS?

I would have assumed that the low-level command would only work on SECTORS, however
as noted at the beginning of my message, the manual is fairly consistant elseware
to use BLOCKS for 256 byte units, and SECTORS of physical disk units - the use of BLOCKS
here would imply 256 byte logical units.

This was never an issue on my SD system as BLOCK=SECTOR=256 bytes - both are
interchangable.

Can anyone with expereience on the N* DD system help clairify this issue? As I do not
have a DD system to test on, it would save me considerable time.

Thanks,
Dave
-- 
dave04a (at)    Dave Dunfield
dunfield (dot)  Firmware development services & tools: www.dunfield.com
com             Vintage computing equipment collector.
                http://www.parse.com/~ddunfield/museum/index.html
Received on Tue Jun 29 2004 - 06:51:56 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:37:01 BST