20th Sep 2020, 12:21 pm | #381 |
Heptode
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 661
|
Re: Gemini 80-Bus System
The 849 has jumpers to force the ready line into the fdc on a drive basis. This may help.
|
20th Sep 2020, 8:49 pm | #382 | |
Hexode
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
|
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:
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... |
|
20th Sep 2020, 10:00 pm | #383 |
Heptode
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 661
|
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. |
20th Sep 2020, 10:23 pm | #384 |
Hexode
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
|
Re: Gemini 80-Bus System
Right, so in Gotek terms, GEMDDDS uses interleaved and GEMQDDS uses sequential.
Many thanks John |
20th Sep 2020, 10:46 pm | #385 |
Heptode
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 661
|
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. |
21st Sep 2020, 1:18 am | #386 |
Heptode
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 661
|
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. |
21st Sep 2020, 8:01 am | #387 |
Hexode
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
|
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. |
21st Sep 2020, 9:26 am | #388 |
Heptode
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 661
|
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. |
23rd Sep 2020, 8:02 am | #389 |
Hexode
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
|
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 |
23rd Sep 2020, 8:26 am | #390 |
Heptode
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 661
|
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 |
23rd Sep 2020, 8:37 am | #391 |
Heptode
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 661
|
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. |
23rd Sep 2020, 9:20 am | #392 |
Hexode
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
|
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. |
23rd Sep 2020, 10:06 am | #393 |
Heptode
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 661
|
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. |
23rd Sep 2020, 10:18 am | #394 |
Hexode
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
|
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.
|
23rd Sep 2020, 11:36 am | #395 |
Heptode
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 661
|
Re: Gemini 80-Bus System
Yes - use the gm849m_scsi board rather than the normal gm849_scsi.
|
23rd Sep 2020, 2:21 pm | #396 |
Hexode
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
|
Re: Gemini 80-Bus System
|
23rd Sep 2020, 5:46 pm | #397 |
Hexode
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
|
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 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 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. |
23rd Sep 2020, 6:23 pm | #398 |
Hexode
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
|
Re: Gemini 80-Bus System
I am thinking it might be a 'drive ready' issue.
|
23rd Sep 2020, 6:36 pm | #399 |
Hexode
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
|
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) _ |
23rd Sep 2020, 6:47 pm | #400 |
Heptode
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 661
|
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). Last edited by JohnBHanson; 23rd Sep 2020 at 7:09 pm. |