UK Vintage Radio Repair and Restoration Powered By Google Custom Search Vintage Radio Service Data

Go Back   UK Vintage Radio Repair and Restoration Discussion Forum > Specific Vintage Equipment > Vintage Computers

Notices

Vintage Computers Any vintage computer systems, calculators, video games etc., but with an emphasis on 1980s and earlier equipment.

Reply
 
Thread Tools
Old 20th Sep 2020, 12:21 pm   #381
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 572
Default Re: Gemini 80-Bus System

The 849 has jumpers to force the ready line into the fdc on a drive basis. This may help.
JohnBHanson is offline   Reply With Quote
Old 20th Sep 2020, 8:49 pm   #382
john_newcombe
Pentode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 246
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   Reply With Quote
Old 20th Sep 2020, 10:00 pm   #383
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 572
Default Re: Gemini 80-Bus System

The answer is in the mfb bios manual.

Side change type are as follows

s: use side 0 before side 1.
EG use Cyl0Sid0, Cyl1Sid0, Cyl2Sid0...Cyl79Sid0
then Cyl0Sid1, Cyl1Sid1, Cyl2Sid1...Cyl79Sid1

u: use side 0 before side 1 - tracks in reverse order
EG use Cyl0Sid0, Cyl1Sid0, Cyl2Sid0...Cyl79Sid0
then Cyl79Sid1, Cyl78Sid1, Cyl77Sid1...Cyl0Sid1

c: and t; are the same as for the layout of the disk and are generally interchangable.
EG use use Cyl0Sid0, Cyl0Sid1, Cyl1Sid0, Cyl1Sid1...Cyl79Sid0, Cyl79Sid0

The difference between c and t is how these are presented to cpm. CPM only understands tracks and sectors. To expand from a single sided disk it is possible to double either the nuumber of sectors OR the number of tracks. CPMs view is always in terms of 128 byte sectors. Gemini disks have 10 sectors of 512 byte sectors per track which cpm sees as 40 sectors of 128 byte sectors because of the deblocking algorithm in the bios. If C format is selected then the number of sectors per track is doubled to account for the two sides, if T format is selected the number of tracks is doubled when presented to cpm.

Thus the same disk can be regarded by cpm as 80 cpm tracks of 80 128 byte sectors per track OR as 160 cpm tracks or 40 128 byte cpm sectors.

one thing that could cause an incompatability is the OFF item within the DPB. This also doubles in t format. However it is possible in t format for this to be odd which means that the directory starts on side 1 of the disk in this case C format cannot be used but in most cases either can be used.

Another possible incompatibiltiy is that C format allows different physical sector numbers to be used on side 0 and side 1 as the sector translate table
is doubled in size. However I don't know any system that uses this.

The gemini MFB supports both C and T. However my MFB/Diskdef only use
the (Slightly) more general T varient.

To convert one to the other in the DPB half/double OFF and double/half the SPT within the DPB, but the bios code need a change to the
code which determines the side. For T mode it is the bottom bit of the CPM track number used for side number, for C number the side number is
used by looking at the sector number.

Gotek knows about cylinder/side/sector directly.

I hope that helps....

Last edited by JohnBHanson; 20th Sep 2020 at 10:08 pm.
JohnBHanson is offline   Reply With Quote
Old 20th Sep 2020, 10:23 pm   #384
john_newcombe
Pentode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 246
Default Re: Gemini 80-Bus System

Right, so in Gotek terms, GEMDDDS uses interleaved and GEMQDDS uses sequential.

Many thanks John
john_newcombe is offline   Reply With Quote
Old 20th Sep 2020, 10:46 pm   #385
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 572
Default Re: Gemini 80-Bus System

Sequential is S,
C or T is interleave. I think.
GEMQDDS is S
GEMDDDS is C

using gemini setup program.
JohnBHanson is offline   Reply With Quote
Old 21st Sep 2020, 1:18 am   #386
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 572
Default Re: Gemini 80-Bus System

On reflextion I think what you are asking is how xbeaver interprets the image file in terms of cylinder/side/sector.


The file organisation is determined by the geometry infomation given on the board definition line for reference please see

http://81.105.120.101/xbeaver/floppy_geometry.html


The mode you refer to is defined determined by the S character within the
format definition for double sided formats. Note that S is not specified in the geometry definition in gem557.cfg

When using real hardware with the gotek this
infomation is encoded in the gotek configuration.

Hence in gotek terms I think you need interleave mode.

If S were specified you would need sequential mode.

Sorry for miss-understanding your question.

Last edited by JohnBHanson; 21st Sep 2020 at 1:24 am.
JohnBHanson is offline   Reply With Quote
Old 21st Sep 2020, 8:01 am   #387
john_newcombe
Pentode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 246
Default Re: Gemini 80-Bus System

That helps, I think .

I guess it all depends upon how the disk is imaged in the first place. What I think you are saying is that as 'S' is not specified in the xbeaver drive options, it is an inteleaved image and that is how I should set the Gotek.

This might also explain why CPMTOOLS works with both the GEMDDDS and GEMQDDS images as they are both laid out the same when in raw image format.
john_newcombe is offline   Reply With Quote
Old 21st Sep 2020, 9:26 am   #388
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 572
Default Re: Gemini 80-Bus System

Yes you are correct.

Remember there are two layes of translation, the first is provided by the bios
and the second by the gotek hardware or xbeaver emulator.

By moving from xbeaver emulator to real hardware you are replacing the xbeaver translation with the gotek translation. Thus to use the same file format in both
cases these must match.

The first layer bios is the same because you are running the same code on the emulator and real hardware.

If you are using a different bios - such as changing using the native bios and
an MFB bios (either the xbeaver or the gemini one) - then it is possible that the
mapping changes between C and T as discussed above.

It is helpful to see these as seperate cases however what really matters is the combined translation effect.
You could change both at the same time in such a way that the combination is still correct, but that would be making life hard for yourself.
JohnBHanson is offline   Reply With Quote
Old 23rd Sep 2020, 8:02 am   #389
john_newcombe
Pentode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 246
Default Re: Gemini 80-Bus System

Thanks for that John,

I have one remaining anomaly with xbeaver in that whilst I can now boot to the GM557_MASTER.img disk with both SIMON 4.1 and RP/M 2.3, I cannot see any files on the disk using DIR in either case. If I place the same image on the Gotek and boot to real hardware of the same combination, I can see the files. CPMTOOLS shows the files also. I am obviously missing something...

My Config is:

Code:
cpuclock 4

board 0xfe gm813_mmu
board 0xb0 gm832 Gemini557 green keyboard gemini
board 0xe0 gm829_floppy -geometry 80.2.10.0.512 ./Disks/GM557_MASTER.img

board 0xb8 serial_8250 bvrnet ./NetworkDrive

#binload 0xf000 ./ROMs/SIMON4.2.ROM
bnload 0xf000 ./ROMs/RPM_2.3.ROM

byte 0f0a8 21 00 f0 #Patch top of ram for RPM
No errors are reported when launching with -vv.
john_newcombe is offline   Reply With Quote
Old 23rd Sep 2020, 8:26 am   #390
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 572
Default Re: Gemini 80-Bus System

Sorry - I don't understand. I run the cfg file above and this is the screen output
all appears to be working.

try using -v -v
for more output is best I can offer
Attached Thumbnails
Click image for larger version

Name:	gem557.png
Views:	10
Size:	11.3 KB
ID:	216224  
JohnBHanson is offline   Reply With Quote
Old 23rd Sep 2020, 8:37 am   #391
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 572
Default Re: Gemini 80-Bus System

Try including the gm849_scsi board as well or the gm829_scsi board in the configuration. If the bios is auto-detecting which floppy disk controller is
being used it probably is using differences in the scsi interface to do it.
JohnBHanson is offline   Reply With Quote
Old 23rd Sep 2020, 9:20 am   #392
john_newcombe
Pentode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 246
Default Re: Gemini 80-Bus System

Yes, adding the 829_scsi board sorted it.

As an aside you may be interested to know that I now run xbeaver on my Mac using a Docker image. This works really well and is so much better than having a dedicated machine or using virtualisation. I have pushed a container image to Docker Hub and details of how to use it are shown at the link below.

As Docker runs on Windows and Linux also, this may be a simple way to run XBeaver on other platforms.

https://glasstty.com/wiki/index.php/...emini_Emulator


The really nice bit is that when I re-create the container image it downloads your code compiles it. The image can be accessed via VNC or a browser. Seeing XBeaver in a browser is quite cool.
Attached Thumbnails
Click image for larger version

Name:	Screenshot 2020-09-23 at 09.18.43.jpg
Views:	13
Size:	60.4 KB
ID:	216227  
john_newcombe is offline   Reply With Quote
Old 23rd Sep 2020, 10:06 am   #393
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 572
Default Re: Gemini 80-Bus System

Thanks for finding the issue about the 829 and 849. The difference between
the two controllers is the number of floppy drives supported and the organisation
of the register which selects the side and floppy drive.

When I wrote xbeaver I kept the floppy/scsi parts seperate and this appeared
to be a good decission. One bit in the scsi status register is used to indicate
the type of controller card (829/849) and two bits contain the dongle for the
mfb software on the 849.

It appears that the gemini bios looks at the scsi hardware to determine the type of controller card fitted. If the scsi part of the 829 is not fitted the bios
detects a gm849 controller and behaves accordingly. Else the problem.

Idealy the 829 configuration should define enough bits in the status scsi status
port to allow the gemini bios to make the correct determination. But this should only be done if there is no scsi card present. There is no easy clean way to do this at present.

Apart from this the scsi and floppy sections of the controller cards are totally disjoint - and some floppy boards were available partially populated - hence the decission to implement them as seaperate boards within xbeaver.

PS - Thank you for the docker work, it is really nice to see.
JohnBHanson is offline   Reply With Quote
Old 23rd Sep 2020, 10:18 am   #394
john_newcombe
Pentode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 246
Default Re: Gemini 80-Bus System

In terms of the 849, is there any special config to select the MFB version? I am sure we have covered this already but I can't quite remember.
john_newcombe is offline   Reply With Quote
Old 23rd Sep 2020, 11:36 am   #395
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 572
Default Re: Gemini 80-Bus System

Yes - use the gm849m_scsi board rather than the normal gm849_scsi.
JohnBHanson is offline   Reply With Quote
Old 23rd Sep 2020, 2:21 pm   #396
john_newcombe
Pentode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 246
Default Re: Gemini 80-Bus System

Quote:
Originally Posted by JohnBHanson View Post
Yes - use the gm849m_scsi board rather than the normal gm849_scsi.
I remember now, thank you.
john_newcombe is offline   Reply With Quote
Old 23rd Sep 2020, 5:46 pm   #397
john_newcombe
Pentode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 246
Default Re: Gemini 80-Bus System

I now have a boot floppy image for Gemini Bios 3.4 MFB. This was built with the Gemini GENSYS tools and .cfg files using an xbeaver configuration which matches (as far as possible) my actual MFB machine. XBeaver is awesome!

I can boot this with xbeaver using the minimal config below and the Simon 4.1 MFB rom taken from my CPU card.

There is a but though....

When I try and boot this image using the actual hardware (using a Gotek) it reports...
Code:
                       ***** Gemini M-F-B 2 System *****

      *****READ ERROR***** while loading boot sector - Press any key to repeat
The config is below, which I hope accurately reflects my system (813/SVC/849MFB). As I say I have dumped the version of Simon 4.1 MFB that is on my CPU card to be absolutely sure that I have the correct version.

Code:
cpuclock 1
    
board 0xb0 gm832 GeminiMFB green keyboard gemini
board 0xe0 gm849m_scsi  ./Disks/gem925.dsk
board 0xe0 gm849_floppy -geometry 80.2.10.0.512 ./Disks/BIOS34_MFB_FW.IMG ./Disks/BLANK_QDDS.img
    
binload 0xf000 ./ROMs/SIMON_V4.1_MFB.ROM
byte 0f0a8 21 00 f0 #Patch top of ram for ROM
I can boot to BIOS 3.5 (Non MFB) with the Gotek and real hardware (only using the 829 though) and then switch to the 3.4 disk to access it if necessary but at this stage I am not sure how that helps me.

I am wondering if this is an 849MFB-Gotek incompatibility or the 849MFB is looking for something I am not aware of.

I will keep investigating. Once I have a Gotek booting the MFB machine I can really start to make progress with it.

Last edited by john_newcombe; 23rd Sep 2020 at 5:54 pm.
john_newcombe is offline   Reply With Quote
Old 23rd Sep 2020, 6:23 pm   #398
john_newcombe
Pentode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 246
Default Re: Gemini 80-Bus System

I am thinking it might be a 'drive ready' issue.
john_newcombe is offline   Reply With Quote
Old 23rd Sep 2020, 6:36 pm   #399
john_newcombe
Pentode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 246
Default Re: Gemini 80-Bus System

OK, Drive Ready is part of the problem, I have reconfigured the Gotek to provide a Drive Ready signal on pin 34 and I can now boot but it halts without displaying the A> prompt.

Code:
   Gemini Multiboard Computer System
64K CP/M-80 vers 2.2      (Bios vers 3.4)


_
john_newcombe is offline   Reply With Quote
Old 23rd Sep 2020, 6:47 pm   #400
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 572
Default Re: Gemini 80-Bus System

The rom loads the boot sector.

The boot sector then loads the rest of cpm.

I actually have the same problem when I use

xbeaver gem925.cfg -o r

which uses simon

using -v -v option i.e.

xbeaver gem925.cfg -o r -v -v

gives the same error message - indicating it is looking for a side 1 header on
side 0 of the disk. i.e. the boot sector code fails to switch to the second side
of the floppy disk as it loads the operating system.

i.e. the floppy boot sector code is not compatible with a gm849 (Probably only
compatible with a gm829).

it does appear that you have a different floppy image to boot from now so I don't think I am reproducing the problem you now have.

Please note that xbeaver is capable of booting a hard disk without roms!
when a scsi card is encountered in the configuration xbeaver looks for and loads a boot sector and if the boot sector execution address
when a rom is loaded not at address 0 a jump is placed at address 0 to the start of the rom.

Also read only memory is *not* implemented in xbeaver rom contents are loaded into ram. Furthermore the use of the control line of
the cpu card serial port to page rom in/out is not supported.

it looks like you have loaded the mfb bios, but it is not running properly on your hardware...
The hang up could be that the loaded cpm cannot read a: (a: could mean a floppy or a hard disk depending on the bios loaded).

what is the current hardware configuration you are trying to boot?
Does the same configuration work with a real floppy rather than a gotec. Are you trying to install the gotek into your mfb machine or
into your rack system? What are you using for your hard disk (xebec or real scsi disk or something else?).

The hard disk xebec controller supports the scsi command to set the geometry of the hard disk - if you are working without a zebec
controller this command may not be supported. (I don't know).
Attached Files
File Type: zip gem925.zip (861 Bytes, 4 views)

Last edited by JohnBHanson; 23rd Sep 2020 at 7:09 pm.
JohnBHanson is offline   Reply With Quote
Reply

Thread Tools



All times are GMT +1. The time now is 7:55 am.


All information and advice on this forum is subject to the WARNING AND DISCLAIMER located at https://www.vintage-radio.net/rules.html.
Failure to heed this warning may result in death or serious injury to yourself and/or others.


Powered by vBulletin®
Copyright ©2000 - 2020, vBulletin Solutions, Inc.
Copyright ©2002 - 2020, Paul Stenning.