UK Vintage Radio Repair and Restoration Powered By Google Custom Search Vintage Radio and TV 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.

Closed Thread
 
Thread Tools
Old 15th Sep 2019, 7:26 pm   #221
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 659
Default Re: Gemini 80-Bus System

Comment on my previous post - the gemini bios inverts the data before presenting it to the hardware. So the data stored in a diskfile/scsi emulator will be correct.

The xbeaver bios records inverted data.
JohnBHanson is offline  
Old 15th Sep 2019, 10:05 pm   #222
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 659
Default Re: Gemini 80-Bus System

loading the boot sector from cpm64w.bin - eg the sector starting with 47h 47h at address 0 and then executing from location 2 allows the system to boot.

The simon.rom from your website looks for a signature of 6dh 47h at the start of the boot sector. I think this is a special boot rom for the mfb system and hence fails. Patching the test to 47h 47h at offset 31h in simon.rom tries to boot from floppy.

There is code in simon to boot from the hard disk but I have not found out how to do it.

This does however indicate that the version of simon you have does not match the boot sector starting 47h 47h in cpm64w.bin

I have not managed to do anything with the first four sectors of that file...

Getting there...
JohnBHanson is offline  
Old 16th Sep 2019, 11:08 am   #223
john_newcombe
Hexode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
Default Re: Gemini 80-Bus System

Quote:
Originally Posted by JohnBHanson View Post
loading the boot sector from cpm64w.bin - eg the sector starting with 47h 47h at address 0 and then executing from location 2 allows the system to boot.
I have just this morning been able to boot to M: thank you, I will have a play later today with the latest version. I guess my aim is to get a system that can be used to run GENSYS.

Quote:
The simon.rom from your website looks for a signature of 6dh 47h at the start of the boot sector. I think this is a special boot rom for the mfb system and hence fails.
I did notice that this seems to be an MFB system specific version of Simon, I still don't have any other versions. But have requests posted all over the Internet.

Quote:
Patching the test to 47h 47h at offset 31h in simon.rom tries to boot from floppy. There is code in simon to boot from the hard disk but I have not found out how to do it.
I vaguely remember that there was some Simon key combinations described in the 80-Bus News somewhere, I will have a scan at some point just in case it helps.

Quote:
Getting there...
Absolutely!

To get GEMSYS and BIOS 3.4 working on my hardware would be amazing.

In terms of a disk image, all I have is a backup of the disk as a collection of files. Most of which are normal CP/M apps (WS3, SC2 DBASEII etc.) I have placed some of these on individual disk images on the resources page. I will send over the backup in case it is of any use.
john_newcombe is offline  
Old 16th Sep 2019, 11:55 am   #224
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 659
Default Re: Gemini 80-Bus System

As usual the boot sequence of gemini preserves the memory from 0100 upwards eg the program area.

This can be useful. use binload in the config file to load a program of choice. The program of choice is of course t-net.com.

binload 0100 ./beaver/network/t-net.com


Add a line to the config file to define a serial port as bvrnet eg..

board 0xb8 serial_8250 bvrnet ~/beaver/network

create a file of suitable size filled with 0xe5 to be the hard disk (About 10MByte) gem925.dsk

run xbeaver with the configuration file.

at the prompt
M>save 0 go.com
M>go n
T-NET
M>
M>

Make sure ~beaver/network has the required files on it - eg t-net pip etc
M>N:PIP A:=N:*.*
And the files will be copied to the emulated hard disk giving an image file

With the correct utilities you should then be able to write the boot track and build a system.

*** NOTE *** this system requires a GM833 ram disk to boot. It copies the command processor into the ram disk and then reloads the command processor from the system
track of the ramdisk. If you don't have a ramdisk it will halt at booting.

You maybe able to use the utilities to generate a system that does not have a ramdisk though - this is new area for me I rolled my own out of public domain software CCPZ/BDOSZ.

Note also the GM925 would have had a double/high density 80 track drive eg 3.5 or 5 inch floppy 1.2M or 1.44MByte - there were 8 inch compatible in high density mode.

Last edited by JohnBHanson; 16th Sep 2019 at 12:02 pm.
JohnBHanson is offline  
Old 16th Sep 2019, 2:21 pm   #225
john_newcombe
Hexode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
Default Re: Gemini 80-Bus System

The GM833 could be an issue for me as I don't have one (yet). Never the less a useful exercise and some more Gemini software saved.

I am not sure if it is of any use but the backup of the GM925 is here...https://glasstty.com/wiki/index.php/File:GM925.zip

Many thanks for all your help, I hope you are still having fun...
john_newcombe is offline  
Old 16th Sep 2019, 3:47 pm   #226
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 659
Default Re: Gemini 80-Bus System

Good news - I have managed to get a disk image. Here is how to do it

unzip the GM925.zip file with the -LL option to force lower case.
rename directories a to a0 and b to b0

user the following line in the gem925.cfg to map the required drives (Change path to match your system)

board 0xb8 serial_8250 bvrnet &
~/beaver/gm925/gm925/a%d &
~/beaver/gm925/gm925/b%d

boot the system
M>go no
M>pip a:=n:*.*
M>user 1
M1>pip a:=n:*.*
etc
and then for drive b
M>user 0
M>pip b:=o:*.*
M>user 1
M1>pip b:=o:*.*
etc

This will copy the files across to the disk image

reboot (restart xbeaver)
programs gensys and config can then be used to write the system tracks.

I think you can remove the gm833 ramdisk from the configuration and this might provide you with a bootable system (I don't know).

The system track from cpm64w is not the mfb system and the mfb utilities complain (eg setup).
JohnBHanson is offline  
Old 16th Sep 2019, 6:35 pm   #227
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 659
Default Re: Gemini 80-Bus System

Good news cpm64w will run *without* a GM833 card. I think it needs the system tracks.

Download from

http://81.105.120.101/download/gem925.zip

for the bootable image

Still needs a boot rom though.
JohnBHanson is offline  
Old 16th Sep 2019, 10:41 pm   #228
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 659
Default Re: Gemini 80-Bus System

useful command
gensys system.cfg

OR
gensys mfb.cfg

to configure the hard disk to boot either a standard system or a mfb system.
and then boot to boot the system

This should get you system tracks that are suitable for your real hardware.
JohnBHanson is offline  
Old 17th Sep 2019, 7:29 am   #229
john_newcombe
Hexode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
Default Re: Gemini 80-Bus System

This is good progress and in trying to follow along I am experiencing a few difficulties. Below is my xbeaver config file which, when used, boots to M, however, anything else I do causes a system halt e.g.

If I save and run T-Net (go.com in your example) it halts. If I perform a DIR of A or B, it halts. A DIR of C shows garbage.

Code:
verbose
cpuclock 4

if T board 0x0 intbus 0x0 0xff xrwt trace
if T bus trace

board 0xfe gm813_mmu

board 0xb0 gm832 Gemini green

board 0xb8 serial_8250 bvrnet ~/Dropbox/Documents/CPM/Gemini80/Emulator/gm925/a%d ~/Dropbox/Documents/CPM/Gemini80/Emulator/gm925/b%d

board 0xe0 gm829_scsi ~/Dropbox/Documents/CPM/Gemini80/Emulator/gem925.dsk
board 0xe0 gm829_floppy -geometry D80.2.10.0.512 ~/Dropbox/Documents/CPM/Gemini80/Software/GeminiBios34/GEMBIOS34.80.DMP

board 0xfb gm833 -maxtrack 0x3f

if T bus io

binload cb00 ~/Dropbox/Documents/CPM/Gemini80/Emulator/cpm64w.bin
binload 0100 ~/Dropbox/Documents/CPM/Gemini80/Software/T-Net/files/t-net.com

byte 0 c3 00 eb
This is the verbose output...
Code:
[john@arch-vbox xbeaver]$ ./xbeaver gm925.cfg
gm925.cfg:cpuclock 4
gm925.cfg:if T board 0x0 intbus 0x0 0xff xrwt trace
gm925.cfg:if T bus trace
gm925.cfg:board 0xfe gm813_mmu
Installing board gm813_mmu (Gemini GM813 Memory Management Unit) at address 0xfe
gm925.cfg:board 0xb0 gm832 Gemini green
Installing board gm832 (Gemini GM832 Super Video Controller) at address 0xb0
gm925.cfg:board 0xb8 serial_8250 trace tty tty /dev/ttyS0
Installing board serial_8250 (Serial Board (Intel 8250 Chip)) at address 0xb8
gm925.cfg:board 0xb8 serial_8250 bvrnet ~/Dropbox/Documents/CPM/Gemini80/Emulator/gm925/a%d ~/Dropbox/Documents/CPM/Gemini80/Emulator/gm925/b%d
Installing board serial_8250 (Serial Board (Intel 8250 Chip)) at address 0xb8
network directory for drive 0 set to "/home/john/Dropbox/Documents/CPM/Gemini80/Emulator/gm925/a%d"
network directory for drive 1 set to "/home/john/Dropbox/Documents/CPM/Gemini80/Emulator/gm925/b%d"
gm925.cfg:board 0xe0 gm829_scsi ~/Dropbox/Documents/CPM/Gemini80/Emulator/gem925.dsk
Installing board gm829_scsi (Gemini GM829 Scsi Disk Controller) at address 0xe0
hard disk is file "/home/john/Dropbox/Documents/CPM/Gemini80/Emulator/gem925.dsk"
gm925.cfg:board 0xe0 gm829_floppy -geometry D80.2.10.0.512 ~/Dropbox/Documents/CPM/Gemini80/Software/GeminiBios34/GEMBIOS34.80.DMP
Installing board gm829_floppy (Gemini GM829 Floppy Disk Controller) at address 0xe0
Parsed file /home/john/Dropbox/Documents/CPM/Gemini80/Software/GeminiBios34/GEMBIOS34.80.DMP
    format = 80 cylinders 2 heads 10 sectors (first sector=0) of 512 bytes R/W
gm925.cfg:board 0xfb gm833 -maxtrack 0x3f
Installing board gm833 (Gemini GM833 Ram-Disk) at address 0xfb
gm925.cfg:if T bus io
gm925.cfg:binload cb00 ~/Dropbox/Documents/CPM/Gemini80/Emulator/cpm64w.bin
Successfully loaded 12288 bytes
gm925.cfg:binload 0100 ~/Dropbox/Documents/CPM/Gemini80/Software/T-Net/files/t-net.com
Successfully loaded 2688 bytes
gm925.cfg:byte 0 c3 00 eb
Finished with gm925.cfg
I guess I am misunderstanding something, any thoughts?

Last edited by john_newcombe; 17th Sep 2019 at 7:49 am.
john_newcombe is offline  
Old 17th Sep 2019, 8:03 am   #230
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 659
Default Re: Gemini 80-Bus System

Yes - I was at that stage. Make sure you have the latest xbeaver that will fix the halting on dir a: dir b: etc. This fixes the command that the xebec needs to set the drive geometry.

I am not sure why you are having t-net crash - this should be the same version you have for the real hardware.

Try downloading the disk image I have posted That has the correct versions in.

Remember go.com is a zero length file that just runs whatever program is in memory.
JohnBHanson is offline  
Old 17th Sep 2019, 9:49 pm   #231
john_newcombe
Hexode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
Default Re: Gemini 80-Bus System

Thanks for the explanation of GO.COM, I am with it now. I have now managed to boot xbeaver without the GM833 card and can see A: and B:. Although I did download the latest version I think I must have mixed up the versions and re-compiled a previous one... Doh!

In order to use gensys.com to create a boot disk for my real Gemini with RPM, I decided to build a bios based on BIOSFW.SYS rather than BIOSW.SYS. As I understand it this is the version with Winchester support that boots to floppy. The boot sector it creates is interesting... I created a floppy disk image based on this and tried to boot it in xbeaver with my standard config, whilst the Simon ROM attempted to boot it, it failed with a corrupted error message.

Code:
6d 47 31 00 01 b7 20 01 3c 08 3e 0f d3 bc cd 1f 00 b7 28 07 3e 03 d3 bc c3 00 f0 08 c3 00 eb 21 00 d5 01 e4 01 1e 13 db e5 07 16 82 30 02 16 88 08 d3 e4 08 78 d3 e2 7a d3 e0 18 02 77 23 ed 78 28 fc db e3 fa 3c 00 db e0 e6 fc c0 04 78 d6 0a 20 22 47 3a 7e 00 b7 28 0e cb 5a 20 04 08 f6 08 08 7a f6 0c 57 18 0d 3e 5b d3 e0 3d 20 fd db e0 cb 47 20 fa 1d 20 b9 af c9 00 00 00 ...

Last edited by john_newcombe; 17th Sep 2019 at 10:00 pm.
john_newcombe is offline  
Old 17th Sep 2019, 10:02 pm   #232
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 659
Default Re: Gemini 80-Bus System

6d 47 is the signature for the multi format bios boot sector. I have been using gensys to create the system and that appears to write the appropriate boot sector for the system being created. Some of the .cfg files on the hard disk can be used as arguments to gensys and these files contain the definition of the system - can be copied and edited to create the system of your choice.


Remember the GM925 would have a double sided 80 track drive fitted - almost certainly one that would do 1.2MByte as well as 800k formats.

Ideally you need to find out how to use simon to boot from hard disk. I am sure it is possible I have seen the hard disk code in it.

I have enjoyed getting experience of gemini software. For a quick note xbeaver has two keyboard settings.

To select gemini mapping
press and hold the left control key, press and release the right control key, release the left control key.
to select wordstar mapping swap swap left and right in the above.

Does make it easier to use cursor keys with gemini programs.
JohnBHanson is offline  
Old 18th Sep 2019, 3:42 am   #233
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 659
Default Re: Gemini 80-Bus System

Here is a short program to copy the boot sector from address 180 down to zero and execute it.
you can build a com file by combining the program with the boot sector you want and they
using the cpm save command
Code:
                     ;Program to boot a system
                     ;
                     ;use ddt to enter the program at address $100
                     ;load the boot sector of hard disk at address $180
                     ;type ^c
                     ;type save 1 bootsys.com - to save file to floppy disk
                     
0100                         org     $100
0100  21 80 01       start:  lxi     h,$180
0103  11 00 00               lxi     d,0
0106  01 80 00               lxi     b,$80
0109  ED B0                  ldir
010B  AF                     xra     a
010C  F3                     di
010D  C3 02 00               jmp     2
0100                         end     start
JohnBHanson is offline  
Old 19th Sep 2019, 12:42 pm   #234
john_newcombe
Hexode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
Default Re: Gemini 80-Bus System

Thanks, I will give this a go.
john_newcombe is offline  
Old 19th Sep 2019, 3:41 pm   #235
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 659
Default Re: Gemini 80-Bus System

If anyone with a Gemini 925 machine is reading this I would like to know what floppy disk controller it is equipped with.

If it is a GM849 or a GM849A version - I wonder if you would let me know what IC14 is (It is normally a 74LS21). Also is there any pins pulled/strapped/mods near this IC.

I am having trouble getting the MultiFormat Bios running. It is tripping up on some bits in the scsi status field that are "undefined" in the manual. The circuit diagram shows these bits come from an 74LS21 but implementing that does not help me. I wonder if there have been some custom mods to the GEM925 to protect the Multi Format Bios from being copied. Any ideas?
JohnBHanson is offline  
Old 28th Sep 2019, 9:16 pm   #236
john_newcombe
Hexode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
Default Re: Gemini 80-Bus System

The only person I know with access to a GM925 can be contacted via Facebook messenger at https://www.facebook.com/AintBigAintClever/. The machine he has access to is the one featured in the YouTube video I mentioned in a previous post.
john_newcombe is offline  
Old 29th Sep 2019, 12:18 am   #237
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 659
Default Re: Gemini 80-Bus System

I am getting someway. Looks like the two bits D6 and D5 on port e5 which are specified as indeterminate are critical for the Multiformat Bios to run.. I have also spotted some odd coding
problems. Some subroutines take parameters after the call. That is ok but if a conditional call is used
and the call is not taken then the parameters are executed as instructions. Also at one point it did an inc (ix-2) which incremented the return address on the stack to the middle of an instruction. The second byte of the instruction happened to be 76 which is halt.

I have created two additional scsi controllers (829m and 849m) that have the correct (I hope) behaviour for running MFB. I suspect these were meant to run on a modified card as a way of doing copy protection.

I have even wondered if my emulator is causing the problem in that the emulation is not perfect - but gemini code does some strange things like aborting transfers part way through.

Still getting closer all the time...
JohnBHanson is offline  
Old 29th Sep 2019, 8:22 am   #238
john_newcombe
Hexode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
Default Re: Gemini 80-Bus System

That's good news, well done. If the hardware is different as you suspect, I guess I won't see this working on my hardware.

Just as a matter of interest, is there a way to emulate a 4Mhz clock speed? I can see a cpuclock parameter in the config file but changing this from 1 to 0 stops the boot process. I ask so that I can test a delay routine i have coded.

I am currently working on coaxing the scsi2sd card (in xebec mode) into life via the GM839 SASI port and at the moment I cannot even select it, it hangs waiting for the msg bit so rather than looping in a waiting condition I want to use a delay so that I can investigate what is actually being returned etc. The scsi2sd xebec mode is probably not a complete implementation but I will persevere as I like the additional level of authenticity. Perhaps one day I can get hold of the Xebec card and move the disk emulation down the line a little.
john_newcombe is offline  
Old 29th Sep 2019, 9:28 am   #239
JohnBHanson
Heptode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 659
Default Re: Gemini 80-Bus System

Yes running at 0MHz stops the Z80 emulation. This is deliberate and was added later. It is actually how the network servers work by having a serial card (loopback) that is just a null modem cable connecting two serial ports - one of which is a real serial port and the other is the network server for the host.

Anyway putting numbers in other than zero changes the speed of emulation. It is a very approximate indicator of the CPU speed in MHz. So cpuspeed 4 will set for a 4MHz system.

If you look at gemini_scsi.c there is a DEBUG flag - set this to a high number for debug output on the emulator.

If you are using the Gemini version of software then it uses commands
00 - Test Unit Ready
08 - SCSI Read
0a - SCSI Write
0c - Init Drive Characteristics

Gemini software also issues reset during booting to abandon a disk read which could be what you are hitting.

I had to add the last one to support Gemini software as it allows the xebec controller to convert Logical Block to CHS addressing for the disk.

PS - Simon does boot a hard disk if you hit a key at the correct time. Any key seems to work.

Do you have a hard disk image that works on the emulator. PS - the latest version of xbeaver
can boot load and execute gemini boot sectors without any roms loaded (Loads the boot sector
at address 0 which is the most common).

Are you running a gemini image or your own code?
JohnBHanson is offline  
Old 29th Sep 2019, 2:56 pm   #240
john_newcombe
Hexode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 252
Default Re: Gemini 80-Bus System

I am running my own code as a com file under CP/M (Bios 1.4) accessing the controller directly with the commands you mention. I have followed the Xebec guide for protocol details etc. I think the issue I have is more fundamental. I think I need to pop the scope on the select and other control lines to see what is happening. My code works ok on the emulator, it is the real hardware and the scsi2sd in particular that seem to be the issue at the moment. Naturally I will keep you posted.
john_newcombe is offline  
Closed Thread

Thread Tools



All times are GMT +1. The time now is 4:24 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 - 2024, vBulletin Solutions, Inc.
Copyright ©2002 - 2023, Paul Stenning.