View Single Post
Old 20th Sep 2020, 8:49 pm   #382
john_newcombe
Hexode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
Default Re: Gemini 80-Bus System

Before I continue with trying to boot using the GM557 master image with the GM849(MFB) card I thought I would revisit something you mentioned back in post #70 to get some clarification. The reason is that I have a configuration option within the Gotek that may need to be adjusted depending upon the disk.

Quote:
Originally Posted by JohnBHanson View Post
Be careful when changing the DPB to include larger disks. The screen dumps of DISKDEF I gave earlier use the definition of even tracks being on side 0 and odd tracks being on side 1. (Scheme a)

The gemini bios uses the definition of tracks being cylinders eg each track starts on side 0 and continues on side 1. (Scheme b)

Both techniques are acceptable for CP/M and which is used depends on how the bios determines the side number.

The first definition - the bios divides the track number by two to give the cylinder number - the remainder being the side number

The second definition the sector number is compared to the number of sectors per track and this is used to determine the side number.

This means that there are a difference between some items within the Disk Parameter Block.

This affects the values of SPT and OFF defined in the Disk Parameter Block.

Scheme a
SPT: 40
OFF: 2

Scheme b
SPT:80
OFF:1

(NBSPT refer to 128 byte sectors which is what CP/M BDOS sees).

This is because scheme a tracks are actually tracks, whereas scheme b tracks are really cylinders - I hope that makes sense.

Some systems work one way and some another - CP/M does not directly have a concept of sides only tracks and sectors. So when double sided disks happened either the number of tracks or the number of sectors were doubled giving the two alternative layouts.

To change to 80 tracks you will need to change the DPB - the disk size is given by the DSM field. This is measured in blocks. If you keep the block size
the same then you will need to change the size of the allocation vector - this is one bit per block. If you don't have enough room in the bios for the larger allocation vector size you can change the block size. This will involve changing BSH/BLM/AL0/AL1. See the alteration guide for details, or look at the diskdef screen dumps earlier which have the values calculated. Note diskdef uses scheme a and not scheme b so you will have to double SPT and half the OFF values before using them in your bios.

Do make sure the memory allocted in the bios for he Check and allocation vectors are large enough.

So I am trying to understand the track/sector layout for both GEMDDDS disks and GEMQDDS disks. Checking my documentation shows the following


GEMDDDS Disks have a 'Side Change' parameter of 'T', and GEMQDDS has a 'Side Change' parameter of 'S"

So, if I understand this correctly, the arrangement for a 35 track GEMDDDS disk is 35 tracks of 20 sectors with the layout as follows;

[CODE]
track 0 = cylinder 0, side 0 followed by cylinder 0, side 1
track 1 = cy1inder 1, side 0 followed by cylinder 1, side 1
.
.
.
track 34 ...
[\CODE]


Following our discussions earlier, I am thinking that GEMQDDS is different in that it is considered by the bios to be 160 tracks of 10 sectors, however, the layout of the sectors on the disk is effectively the same e.g.

[CODE]
track 0 = cylinder 0, side 0
track 1 = cylinder 0, side 1
track 2 = cy1inder 1, side 0
track 3 = cylinder 1, side 1 etc...
.
.
.
track 159 ...
[\CODE]


I have got this right?

The setting I am referring to in the Gotek is shown below and defaults to interleaved, Which I suspect, if my understanding is good, is correct for both GEMDDDS and GEMQDDS disks as the sector order is the same. Naturally the tracks and sectors per track will be different for each disk.

Code:
# Optional: Image file track layout. Default is "interleaved".
# Comma-separated values:
#   sequential:    Sequential cylinder ordering: all side 0, then side 1.
#   interleaved:   Interleaved cylinder ordering: c0s0, c0s1, c1s0, c1s1, ...
#   reverse-sideN: Side-N cylinders are ordered from high to low (N=0,1).
#   sides-swapped: Sides 0 and 1 ordering is swapped in the image file.
#   eg. "sequential,reverse-side1"
#file-layout = interleaved

'c0s0' refers to 'Cylinder 0, Side 0' etc...
john_newcombe is offline