UK Vintage Radio Repair and Restoration Discussion Forum

UK Vintage Radio Repair and Restoration Discussion Forum (https://www.vintage-radio.net/forum/index.php)
-   Vintage Computers (https://www.vintage-radio.net/forum/forumdisplay.php?f=16)
-   -   Gemini 80-Bus System (https://www.vintage-radio.net/forum/showthread.php?t=156106)

john_newcombe 28th Apr 2019 8:43 pm

Gemini 80-Bus System
 
I recently purchased a Gemini system and I was wondering if there is anyone out there who has an interest in these machines

The unit came with much documentation and no software or keyboard. However, I successfully knocked up a PS/2 to parallel ASCII keyboard adapter using an Arduino Micro and have been able to create a cassette archive of the CP/M version of MBasic (MBASIC.COM). This runs directly on the RP/M monitor in the machine. However, I am hoping to boot to CP/M from a floppy (or GoTek). After contacting a member of this forum I have kindly been given some raw disk images to work as well as a pointer to the Xbeaver 80-Bus emulator.

There were a couple of interesting details regarding the machine I have. The first is that it includes RP/M version 2.2. This is odd as version 2.2 of RP/M was (supposedly) never released, the version numbers leapt from V2.1 to V2.3 to avoid confusion with version 2.2 of CP/M, this was confirmed in an article written for 80-bus news by RP/Ms creator Richard Beal (80-BUS vol. 3 iss. 6 p. 9).

The second interesting thing is that there is also an EPROM containing the Gemini Boot ROM for 8 inch Disks. This appears to be written by Roger Brooks, and, based on the included source code listings and manuscript amendments, this would appear be the machine he created it on.

TonyDuell 29th Apr 2019 5:36 pm

Re: Gemini 80-Bus System
 
I'm not sure I'd call it an 'interest' as I've not done anything with it for a couple of years, but I have one of these machines.

Mine has 3 boards in the cardcage -- CPU, Video, and hard/floppy disk controller. There's a single 5.25" floppy drive and a (electrically) small hard disk. I do have the original keyboard and what I was told was the video monitor normally used with this machine, a Hantarex unit.

Mine has some kind of network interface too. It connects to the parallel port on the CPU board. The numbers had been scratched off the ICs which meant it took me a couple of minutes to identify them. The main IC was a dumb UART (amazingly)

Alas no software. The hard disk contains the OS (enough to boot the machine anyway) but nothing else.

JohnBHanson 29th Apr 2019 7:38 pm

Re: Gemini 80-Bus System
 
Tony:-
I am guessing that you machine consists of a GM813 CPU Card, a GM832 video card and either a GM849/GM849A disk controller. You may either have a SCSI disk, or an MFM disk via a zebec controller.

Do you have details of the UART that was on the network card? or network boot roms/software?

mole42uk 29th Apr 2019 10:16 pm

Re: Gemini 80-Bus System
 
I also have several Gemini boards on an 80-BUS backplane with a NASCOM 2 micro board.

Somewhere there is a floppy disk controller and a couple of Pertec drives.

I have lots of manuals if you need anything in particular just shout…

john_newcombe 29th Apr 2019 10:50 pm

Re: Gemini 80-Bus System
 
Thanks Richard, I'll take the disk drive :).
The machine I have consists of the G811, MAP80, G812,
and G829. What I would love to do is boot the machine to CP/M from a floppy. John sent me some disk images, so I thought I would start with a Gotek and FlashFloppy and see where that would take me.

I have been able to load MBasic and ZSID from tape and these run fine under the RP/M monitor.

JohnBHanson 30th Apr 2019 1:53 am

Re: Gemini 80-Bus System
 
How are you creating the tapes?

TonyDuell 30th Apr 2019 4:56 am

Re: Gemini 80-Bus System
 
Quote:

Originally Posted by JohnBHanson (Post 1141060)
Tony:-
I am guessing that you machine consists of a GM813 CPU Card, a GM832 video card and either a GM849/GM849A disk controller. You may either have a SCSI disk, or an MFM disk via a zebec controller.

Do you have details of the UART that was on the network card? or network boot roms/software?

I will have to check what boards are in mine. But yes, SCSI disk interface on the controller board with Xebec controller hung off it to an ST412-interfaced hard disk.

The network UART is one of the AY-5-1013 / 6402 'dumb' things. It's on a little board with a baud rate generator and RS485 drivers. There's a little about it here :

https://nascom.wordpress.com/gemini/.../g836-network/

I did manage to work out the circuit diagram, I will try to find it.

I don't think I have a network boot ROM. I think the machine booted from the hard disk (and that it was probably the file server).

john_newcombe 30th Apr 2019 7:53 am

Re: Gemini 80-Bus System
 
John, I have detailed the process of creating the tapes here, https://glasstty.com/wiki/index.php/...ni_80-Bus_Saga

It basically involves creating a simply hex file from the binary, pasting this into a serial terminal, setting the length in RP/M and saving to tape.

JohnBHanson 30th Apr 2019 9:16 pm

Re: Gemini 80-Bus System
 
Here is something to look forward to:-

Within the xbeaver emulator there is a program called t-net.com. When you have xbeaver installed and running copy t-net.com from a: to drive n:

by default drive n: is a network drive connected to a linux directory (see xbeaver.cfg for details).

copy t-net.com onto your hardware (first copy to drive n:, then use genhex t-net.com 100 and then use minicom or similar to move the file to the cpm system pip t-net.hex=rdr:

finally on the cpm system convert to a binary and run it

load t-net

start the server on the linux box and connect the serial cable between the two

on linux type
xbeaver fileserver.cfg

and on the cpm system type
t-net n

the cpm system should be able to access the fileserver directory. Try dir n:
(Some versions of cp/m dir only give the first filename) - don't worry for now.

pip will then work (Assuming pip.com in the network directory or any other file)
eg
n:pip a:=n:pip.com

etc

9600 baud on a gemini is with a divisor of 13 set. this of course means that faster baud rates are non standard as the pc uses a divisor of 12 for 9600 baud and there is no common factor. It will still give acceptable performance for networking!

You can then have a gemini system with filestore/backups on a linux machine. To the best of my knowledge the following formats were used by gemini:-


Code:

DISKDEF V1.5

Command ?


Disk: A            Drive: A        Format: gemddss        Size (K): 164

Disk format                                                          DPB Table

  Disk size (inches)    5          Disk density          1          SPT 40
  Sides                1          Double stepping      1          BSH 4
  Tracks per side      35          Skew factor          1          BLM 15
  Sectors per track    10          First logical sector  1          EXM 1
  Sector size (bytes)  512        Cylinder mode        0          DSM 81
  First physical        0          Reserved tracks      2          DRM 127
  Force side 0 header  0          Block allocation (K)  2          AL0 192
  Invert data          0          Directory entries    128        AL1 0
                                                                      CKS 32
Sector translation table                                              OFF 2

  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20
  21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40


DISKDEF V1.5

Command ?


Disk: A            Drive: A        Format: gemddds        Size (K): 340

Disk format                                                          DPB Table

  Disk size (inches)    5          Disk density          1          SPT 40
  Sides                2          Double stepping      1          BSH 4
  Tracks per side      35          Skew factor          1          BLM 15
  Sectors per track    10          First logical sector  1          EXM 1
  Sector size (bytes)  512        Cylinder mode        1          DSM 169
  First physical        0          Reserved tracks      2          DRM 127
  Force side 0 header  0          Block allocation (K)  2          AL0 192
  Invert data          0          Directory entries    128        AL1 0
                                                                      CKS 32
Sector translation table                                              OFF 2

  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20
  21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40


DISKDEF V1.5

Command ?


Disk: A            Drive: A        Format: gemqdss        Size (K): 388

Disk format                                                          DPB Table

  Disk size (inches)    5          Disk density          1          SPT 40
  Sides                1          Double stepping      0          BSH 5
  Tracks per side      80          Skew factor          1          BLM 31
  Sectors per track    10          First logical sector  1          EXM 3
  Sector size (bytes)  512        Cylinder mode        0          DSM 96
  First physical        0          Reserved tracks      2          DRM 127
  Force side 0 header  0          Block allocation (K)  4          AL0 128
  Invert data          0          Directory entries    128        AL1 0
                                                                      CKS 32
Sector translation table                                              OFF 2

  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20
  21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40


DISKDEF V1.5

Command ?


Disk: A            Drive: A        Format: gemqdds        Size (K): 788

Disk format                                                          DPB Table

  Disk size (inches)    5          Disk density          1          SPT 40
  Sides                2          Double stepping      0          BSH 5
  Tracks per side      80          Skew factor          1          BLM 31
  Sectors per track    10          First logical sector  1          EXM 3
  Sector size (bytes)  512        Cylinder mode        1          DSM 196
  First physical        0          Reserved tracks      2          DRM 127
  Force side 0 header  0          Block allocation (K)  4          AL0 128
  Invert data          0          Directory entries    128        AL1 0
                                                                      CKS 32
Sector translation table                                              OFF 2

  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20
  21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40


JohnBHanson 1st May 2019 12:35 am

Re: Gemini 80-Bus System
 
Very sorry John - I just checked .DMP format has an 8 byte header for each sector

john_newcombe 1st May 2019 6:40 pm

Re: Gemini 80-Bus System
 
Many thanks, I have been dumping the images with a bit of python and I can see the 8 byte sector header. The geader shows how the sectors are laid out etc.

This is all new to me and I am trying to configure a Gotek to simulate a floppy. The latest FlashFloppy firmware allows for custom track layouts, however, I am not sure how to define 512 byte sectors with 8 bytes of header. Do you think this header would have been on the original disk? or is this some kind of meta data created during imaging?

Phut!, as I write this my G812 video card has just failed. Bah! Back to the serial port I guess :(

JohnBHanson 2nd May 2019 9:01 pm

Re: Gemini 80-Bus System
 
No the header is in the original file, not on the disk it is added by the disk read program

I think the sector headers are in the logical order, and so could just be stripped off to give a .raw format

Otherwise crate an array of sectors eg 35 by 2 by 10 and read the header, allocate it to the appropriate array index and down the file.

If you want you can check the correct order in the headers as you go.

PS - what went wrong with your IVC card ???

john_newcombe 2nd May 2019 9:53 pm

Re: Gemini 80-Bus System
 
Not sure yet, processor is ok and CRT controller good also, (tested it in a BBC) will have to have a probe around when I get chance.

john_newcombe 4th May 2019 10:31 pm

Re: Gemini 80-Bus System
 
John; Firstly many thanks for the disk definitions, much appreciated.

I am wondering if someone can confirm my understanding of how this all fits together.

As far as I understand, the DPB's form part of the customised CP/M (Bios) and provide support for the various types of disk drive that can be connected to the machine under CP/M.

This being the case I am assuming that any machine booting up using RP/M or any other monitor has no knowledge of the connected disk type, only that it should get the boot program from the fist sector on the first track. I am also guessing that this program is familiar with the drive type somehow and knows how to load the bios, bdos, ccp etc. or am I way off?

I am left with a few questions e.g.

* How does the CP/M system know which drive type is connected during the boot process?
* How does the CP/M system know which DPB to use, once CP/M is up and running?

I am sorry if this is a real newbie question, but I have searched the internet and the odd CP/M books I have here, and am a little confused.

JohnBHanson 5th May 2019 12:28 am

Re: Gemini 80-Bus System
 
booting process varies between machines - but most do the following

1. The boot rom initialises the floppy disk controller sets the stepping speed and does a recalibrate to move the head of floppy a: to track 0. Actually for most systems with 80 track drives two recalibrates are required as the disk controller will only step out 77 tracks.

2. Next the boot rom does a read of side 0, track 0 and the first sector (numbered 0 or 1) to some address in ram.

3. The boot rom passes control to this first sector by jumping to an address within the copy of the first sector in ram. This then loads CP/M (at least the BIOS and sometimes the whole CPM image). Control is then passed to the cold boot vector in CP/M

4. The cold boot routine reads any remaining parts of CP/M the were not read by the first sector loader and jumps to the command processor.

There are variations - sometimes the first sector reads the entire CP/M image and sometimes the bootrom does. Other variations are even stranger.

JohnBHanson 5th May 2019 12:36 am

Re: Gemini 80-Bus System
 
Within the BIOS there is a Disk Parameter Header for each disk drive.

The SELDSK routine within the bios gives the address of the disk parameter header. (DPH)

The disk parameter header gives references to several ram areas - one of these is the DPB for the drive. DPBs can be shared between drives, but DPH must be unique per drive.

The DPB contains numbers that define the layout of the disk. The diskdef program will calculate these numbers for you from the disk layout. Actually the diskdef program is part of my multi format system which will allow the gemini to read most floppy disk formats. Now you have xbeaver running
you should have them.

Note to run it type the following

killvpmm - this kills the virtual multitasking software and returns to CPM - actually CCPZ/BDOSZ
mfb - this installs the multi format system

and then use diskdef as required to install different floppy disk formats to drives N, O and P.

If you don't want to use the CP/M filesystem you can load mfb within VPM/M

? gives help witin diskdef, but it works like a spreadsheet.

dragonser 5th May 2019 11:18 am

Re: Gemini 80-Bus System
 
Hi, it was a long time ago,
but I seem to remember that the boot sector was either NG or GN depending on whether it was a Nascom or Gemini machine.
on a related subject, I have an MP/M manual somewhere if anyone would like it !

john_newcombe 5th May 2019 9:29 pm

Re: Gemini 80-Bus System
 
John; Many thanks for the explanation, much appreciated.

Peter; When you say that the boot sector was NG or GN what does NG/GN refer to exactly?

JohnBHanson 7th May 2019 3:31 pm

Re: Gemini 80-Bus System
 
Just been looking at RPM V2.0 - the boot code does the following

1. Check disk is rotating by looking at the index signal
2. Read the first 128 bytes of disk A:, track 0, sector 0 to address 80h
3. Check that the bytes at 80h (first two of track 0, sector 0) are both 47h
4. If the above check passes then copy the 128 bytes at 80h (First 128 bytes
of sector 0) down to location 0.
5. jump to location 2.

The code at sector 0, starting at offset 2 is responsible for loading CP/M

I hope that helps.

PS - If you are thinking of downloading the first sector code from linux, don't use 80h as
the location as RPM uses that is its line input buffer. Use 100h instead.

to copy the buffer at 100h down to zero and execute - try the following

21 00 01 ld hl,100h
11 00 00 ld de,0h
01 80 00 ld bc,80h
ed b0 ldir
c3 02 00 jp 2


This code can be run at any address above 180h and is relocatable. it does the
copy to 0 and then jumps to zero.

Remember the boot sector starts at offset 8 in the .DMP file I sent you.


(At location fc42 in my version of the RPM is the xor a which sets for sector 0). I don't know if Getek can handle sector 0 access).

The first two bytes are GG which might mean Gemini disk as in the above post.

JohnBHanson 7th May 2019 3:57 pm

Re: Gemini 80-Bus System
 
The bootstrap on sector 0 of the floppy does the following

Turn of the eeprom - thus enabling 64k of ram

Read from track 0 side 0 sector 1 for 16 sectors (Transitioning to side 1 sector 0) into ram starting at address 5d00.

This should load CPM

Then it executes a jump to 7300 which will be the cold boot entry point

I hope that helps.


All times are GMT +1. The time now is 12:49 pm.

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