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.

JohnBHanson 7th May 2019 4:34 pm

Re: Gemini 80-Bus System
 
1 Attachment(s)
I have extracted from the archive the format program for the gemini... please find here.

Extract from zip archive and then download into RP/M at location 100 and execute. Works under CP/M and so will probably work under RP/M. It accesses the controller directly.

This might allow you to create blank disks (I hope).

john_newcombe 9th May 2019 8:00 pm

Re: Gemini 80-Bus System
 
Many thanks John, really appreciated, I clearly have quite a bit to digest and some learning still to do.

I have the Gotek connected and have configured the raw image settings for a double sided 35 track disk with 10 sectors per track, 512 bytes per sector. The track layout is set to interleaved cylinder ordering: c0s0, c0s1, c1s0, c1s1, ... I have also ensured that index pulses are not suppressed.

I am coming to the conclusion that the DMP disk images I have are Anadisk formatted images, and, based on the Anadisk documentation means that the tracks may need to be shuffled around as you suggested in an earlier post. I will look at this next. Just in case you are unfamiliar, the Anadisk header is defined as follows:

# ACYL Actual cylinder, 1 byte
# ASID Actual side, 1 byte
# LCYL Logical cylinder; cylinder as read, 1 byte
# LSID Logical side; or side as read, 1 byte
# LSEC Sector number as read, 1 byte
# LLEN Length code as read, 1 byte
# COUNT Byte count of data to follow, 2 bytes.If zero, no data is contained in this sector.

At the moment I am unable to use XBeaver as I have no keyboard input. I am using KDE though. I will spend some time with this also.

Naturally I will keep you posted. Once again, many thanks for the help.
John

john_newcombe 9th May 2019 9:12 pm

Re: Gemini 80-Bus System
 
In an attempt to understand the DMP format track/sector ordering I discovered this sentence in the Anadisk documentation which I thought may be worth sharing.

All sectors occurring on a side will be grouped together; however, they will appear in the same order as they occurred on the diskette. Therefore, if an 8 sector-per-track diskette were scanned which had a physical interleave of 2:1, the sectors might appear in the order'~ 1,5,2,6,3,7,4,8 in the DOS dump file.

john_newcombe 10th May 2019 7:25 pm

Re: Gemini 80-Bus System
 
John, a quick update: xbeaver is now running properly under TWM on my Arch Linux machine.

Just in case it helps anyone, TWM seems to have an issue if a locale is anything other than en-US-UTF-8 is used. Even having both en-GB-UTF-8 and en-US-UTF-8 defined seems to cause a TWM font issue.

It's a tad awkward having to switch between SDDM/KDE and TWM but it is fine as I am very grateful that xbeaver exists. I understand that Gnome works fine, however, Gnome is just not for me so I have not tried it.

I have yet to get my head around the the xbeaver options etc. but will spend some time with it when I can.

Many thanks
J

john_newcombe 13th May 2019 8:05 pm

Re: Gemini 80-Bus System
 
Hi John, I wonder if you can tell me what I am doing wrong with my xbeaver setup?

I have created a minimalist config file that includes;
a G829 floppy pointing at my DMP image;
a binary image of my machines version of RP/M (2.2) loaded at F000;
the patch for the top of RAM required for RP/M;
the verbose switch.

The system starts to RP/M as expected which is great, however when I try and boot to my disk, it looks like sector 1 is read rather than sector 0. Checking the verbose output shows that the disk image is parsed and reports the correct geometry and states that the first sector is 0.

Code:

xbeaver.cfg:board 0xb8 serial_8250 bvrnet ~/beaver/network
Installing board serial_8250 (Serial Board (Intel 8250 Chip)) at address 0xb8
network directory for drive 0 set to "/home/john/beaver/network"
xbeaver.cfg:board 0xe0 gm829_floppy -debug DSZ -geometry DP35.2.10.512 ~/beaver/images/GM512_ORIGINAL.DMP
Installing board gm829_floppy (Gemini GM829 Floppy Disk Controller) at address 0xe0
Parsed file /home/john/beaver/images/GM512_ORIGINAL.DMP
    format = 35 cylinders 2 heads 10 sectors (first sector=0) of 512 bytes R/W
xbeaver.cfg:binload 0xf000 ~/beaver/roms/RPM_2.2.ROM
Successfully loaded 4096 bytes
xbeaver.cfg:byte 0f0a8 21 00 f0
Finished with xbeaver.cfg

When I try and boot the disk, the following is shown.

Code:

FDC Command 00
Floppy Drive Select 31
FDC Status:20
FDC Status:20
Floppy Sector Write 01
FDC Command 88
Floppy External Status 80
Floppy data read c3
Floppy External Status 80
Floppy data read 5c
Floppy External Status 80
Floppy data read 60
...

The read values tie up with those stored in sector 1, I would have expected to see the data from sector 0.

RP/M reports "Wrong Disk" which I assume is because the two 47h bytes stored at the start of sector 0 are not received.

Any help you can offer would be very welcome.
J.

JohnBHanson 13th May 2019 10:10 pm

Re: Gemini 80-Bus System
 
1 Attachment(s)
I have tried booting mine - and all appears to work (debug log attached) I suspect your version of RPM is trying to boot sector 1. (someone has patched it maybe).

This is a record of my log file.

Can you PM me a copy of your RPM file. Thank you.

john_newcombe 13th May 2019 10:22 pm

Re: Gemini 80-Bus System
 
That would explain a lot.

Will PM the rom.

JohnBHanson 13th May 2019 10:38 pm

Re: Gemini 80-Bus System
 
Thank you - got it, and when I run it the same as what yours does b command loads from sector 1 and then claims wrong disk. So it is the version of RPM that is the trouble.

john_newcombe 13th May 2019 10:44 pm

Re: Gemini 80-Bus System
 
Thankyou, I have an EPROM marked 2.1, so I will test that sometime tomorrow.

The only other thing I get that I am not sure of is that I get a few Unknown port messages , see below. Is this normal?

PHP Code:

xbeaver.cfg:cpuclock 4
xbeaver
.cfg:board 0xfe gm813_mmu
Installing board gm813_mmu 
(Gemini GM813 Memory Management Unitat address 0xfe
xbeaver
.cfg:board 0xb0 gm832 BeaverBoot planes green
Installing board gm832 
(Gemini GM832 Super Video Controllerat address 0xb0
xbeaver
.cfg:board 0xb8 serial_8250 bvrnet ~/beaver/network
Installing board serial_8250 
(Serial Board (Intel 8250 Chip)) at address 0xb8
network directory 
for drive 0 set to "/home/john/beaver/network"
xbeaver.cfg:board 0xe0 gm829_floppy -debug DSZ -geometry DP35.2.10.512 ~/beaver/images/GM512_ORIGINAL.DMP
Installing board gm829_floppy 
(Gemini GM829 Floppy Disk Controllerat address 0xe0
Parsed file 
/home/john/beaver/images/GM512_ORIGINAL.DMP
    format 
35 cylinders 2 heads 10 sectors (first sector=0of 512 bytes R/W
xbeaver
.cfg:binload 0xf000 ~/beaver/roms/RPM_2.2.ROM
Successfully loaded 4096 bytes
xbeaver
.cfg:byte 0f0a8 21 00 f0
Finished with xbeaver
.cfg
Unknown port ff 
(high bus 11write data 11
Unknown port f8 
(high bus 00read
Unknown port b4 
(high bus ffwrite data ff
Unknown port b5 
(high bus ffwrite data ff
Unknown port b6 
(high bus ffwrite data ff
Unknown port b6 
(high bus fdwrite data fd
Unknown port b7 
(high bus ffwrite data ff
Unknown port b7 
(high bus 00write data 00 


john_newcombe 13th May 2019 10:45 pm

Re: Gemini 80-Bus System
 
The config I have is...

Code:

verbose
cpuclock 4
board 0xfe gm813_mmu
board 0xb0 gm832 BeaverBoot planes green
board 0xb8 serial_8250 bvrnet ~/beaver/network
board 0xe0 gm829_floppy -debug DSZ -geometry DP35.2.10.512 ~/beaver/images/GM512_ORIGINAL.DMP
binload 0xf000 ~/beaver/roms/RPM_2.2.ROM
byte 0f0a8 21 00 f0 #Patch top of ram for RPM


JohnBHanson 13th May 2019 11:27 pm

Re: Gemini 80-Bus System
 
Just disassembled RPM V2.2 and it reads sector 1 at address 80h and then jumps to address 82h. And also looks for the first two bytes being G8 - clearly this is for a different type of CP/M system

To Patch RP/M to boot your system

The following might be helpful to add into your config file
binload 0xf000 ~/beaver/RPM_2.2.ROM
#Patch top of ram for RPM
byte 0f0a8 21 00 f0
#select boot sector
byte 0fc36 0
#patch disk code GG for floppy boot id
byte 0fc59 47 47

#patch in jump to patch routine
byte 0fc72 e0 ff

#patch routine - copy sector from 80h to 0h
byte 0ffe0 21 80 00 11 00 00 01 80 00 ed b0 f3 c3 02 00


( And still include the line )
byte 0000 c3 00 f0

This should boot the disk :-).



NOTE If you are doing a ROM do not patch the top of RAM test. This is done on xbeaver because actually xbeaver does not support ROM. If not patched the memory size routine overwrites the RP/M code.

JohnBHanson 14th May 2019 12:15 am

Re: Gemini 80-Bus System
 
For the unknown ports b4, b5, b6, b7 are the Z80 pio on the GM811 - which is not configured in the Gemini.cfg file.

Port ff is ram paging (Not used GM813 has much better memory management)
Port f8 - I don't know, might be keyboard on a GM811 processor card

john_newcombe 14th May 2019 7:25 am

Re: Gemini 80-Bus System
 
Thank you so much. I will let you know how you get on.

john_newcombe 14th May 2019 8:44 am

Re: Gemini 80-Bus System
 
To keep things as near to my machine as possible I dumped my version of RP/M 2.1 using RP/M itself, I then created the binary using a bit of python and changed the config to point to the new binary. The xbeaver system now boots to the disk images I have and I have a very convenient platform to simulate my system.

This is great progress, I cant thank you enough! I am sure I would have given up by now had you not been around to answer all my questions.

I now need to get back to the real machine and sort out the IVC board.

JohnBHanson 14th May 2019 2:09 pm

Re: Gemini 80-Bus System
 
Remember the IVC needs a 4MHz clock on the back plane provided by the processor.
An input/output from port b3 will reset the IVC card
Another thought - the IVC requires a fairly long keyboard strobe
PS - Where did you get RPM 2.1 from? - I would love a copy (I only have RPM 2.0)

john_newcombe 14th May 2019 5:38 pm

Re: Gemini 80-Bus System
 
1 Attachment(s)
Thanks for the info re: the IVC, I am using a 25ms strobe which was working fine and 4Mhz is provided from the backplane. I will have a probe around with a scope and see if I can come to any conclusions. I know that the Z80, CRT controller and RAM are all good so hopefully it will be something simple.

Attachment 183094

The eprom came with the machine, I also have the versions 0.1, 2.0 and 2.2.

There was an article in 80 Bus News that described details of how to take v2.0 to v2.1 and then on to v2.3 (there was no 2.2, despite me having one!). When I get round to patching it I will post it here.

john_newcombe 14th May 2019 7:09 pm

Re: Gemini 80-Bus System
 
Please ignore the HEX file that is in the RPM 2.1.zip file. It should not be there. The binary is correct.

john_newcombe 14th May 2019 7:50 pm

Re: Gemini 80-Bus System
 
1 Attachment(s)
Here is RP/M 2.3. I followed the directions described by Richard Beal in 80-Bus News Vol. 3 Iss. 6 to patch version 2.1 to 2.3. I hope this is of use.

Attachment 183105

J

JohnBHanson 15th May 2019 2:28 am

Re: Gemini 80-Bus System
 
I have been playing with the gemini version of CPM. It does some interesting things
with the input mode. Because of this I found a bug.

The SVC Command ESC K returned 0 if no characters were available for input else returned the character. Reading the spec properly if no character is available it is supposed to wait for a character. What was happening was that this was returning 0 for no character and forcing the gemini bios to enter edit mode. This was causing problems.

While we are on the subject one of the other problems is the keyboard mapping is fixed and the cursor keys are not the same as the gemini choice. I am thinking of an easy way to do this as different systems use different key mappings.

Please download the latest version from http://81.105.120.101/download/xbeaver.tgz for this bug fix.

Thank you.

john_newcombe 15th May 2019 3:55 pm

Re: Gemini 80-Bus System
 
Thanks John.

Now that I have an xbeaver up and running my next task is to boot the real machine to CP/M. I will try and source some Shugart interface drives and I will run the Format.com program you sent me. In the meantime I am playing around with the FlashFloppy software running on a Gotek and reading all that I can about RAW image formats.

I am thinking that a RAW image format should contain everything that was on the disk e.g. ID Address Marks, sector header, gap bytes, Data Address marks, sector data and CRCs etc. Do you think that would be correct?

I have the sector data directly from the .DMP images and I have the Gemini CP/M disk format in the very detailed articles published in Scorpio issues 1-4 by M.W.T Waters. It wouldn't take much to assemble this data into a proper RAW image.

Armed with the above information I wonder if by speaking to the Author, the Gemini definition(s) could be added to FlashFloppy. As the product is open source, I could even have a go myself.

I am hoping that in the longer term I will get to the point where I have a fully working CP/M Gemini machine with Floppy and HD. The journey is the fun bit though.

JohnBHanson 15th May 2019 4:43 pm

Re: Gemini 80-Bus System
 
Keep up with the fun - I have just added keyboard layout switching. Allows mapping of gemini
keyboard and easy use of the gemzap screen editor.

To switch keyboards hold down left control and press right control then release both controls

To switch back hold down right control and then press left control and then release both controls.

Please keep in touch with your progress on Gotek - I have wondered about getting one.

I don't have a 80bus machine any more I just use the emulator but as the emulator can drive (some) real cards eg (GEMINI SVC, PLUTO and Digitalker Card). I can do some real IO.

For the keyboard mapping I have compared it to a real gemini keyboard and the gemzap manual.

I thought you got a hard disk with your machine along with a xebec/adaptec scsi to mfm converter - do you know the model numbers (xebec most likely 1410).

I have had fun too.... please please please keep your blog going.

john_newcombe 15th May 2019 9:07 pm

Re: Gemini 80-Bus System
 
Yes I will keep the blog going, I will be adding the xbeaver part of my journey soon :).

I think it was Tony Duell who had the hard disk and xebec. There is a Miniscribe HD on EBay at the moment and I did wonder if I should go for it but without the xebec it wouldn't be much use. Anyway first things first.

What did you make of my question re RAW images? Am I right in thinking that a RAW image should include the IAM, sector header, gap byes CRCs etc. as well as the sector data?

JohnBHanson 15th May 2019 9:37 pm

Re: Gemini 80-Bus System
 
1 Attachment(s)
I am not sure of the file format of the Gotek - The .dmp and indeed the .img file contain most of the infomation that was in the sectors on the disk - the only other bit you need is the encoding scheme which is FM for single density and MFM for double density.

All modern systems have used MFM on floppies - there were a few odd ball systems (eg INTEL MDS MMFM and APPLE).

I am very interested in your experiences with the Gotek - I guess it just keeps "playing" the current track/side as selected.

PS - I have managed to construct a 64k CP/M. MovCPM does not appear to work in my version so I had to use my disk editor to write it to disk.

If you load this into ram you will have to write a little program to turn off the RPM eeprom and then copy it to the correct address

john_newcombe 15th May 2019 10:01 pm

Re: Gemini 80-Bus System
 
Thanks I will have a play.

JohnBHanson 15th May 2019 10:02 pm

Re: Gemini 80-Bus System
 
Assuming that the tracks 0, side 0 starting at sector 1 (not 0) and side 1 are loaded into the CP/M system at address 5d00
the following program should work

5000 21 00 5D LD HL,5D00
5003 11 00 DD LD DE,DD00
5006 01 00 0D LD BC,2300
5009 3E 0C LD A,0C
500B D3 BC OUT (BC),A
500D ED B0 LDIR
500F C3 00 F3 JP F300

(Load any program you like at 100)

if at 500f you add the following code
ld hl,0100h
ld (0f3c4),hl
jp 0f300h

it will run a program at address 0100 (Disked for example)
This should start CP/M in RAM and then optionally run the program given)

JohnBHanson 15th May 2019 10:06 pm

Re: Gemini 80-Bus System
 
As for a disk, almost any disk with single ended SCSI 50 pin connector will work with the GM829 - I have used a 100MByte disk onto a GM849 (similar) before I wrote the emulator.

JohnBHanson 15th May 2019 10:12 pm

Re: Gemini 80-Bus System
 
(Sorry too slow editing post above)
I am not sure of the file format of the Gotek - The .dmp and indeed the .img file contain most of the infomation that was in the sectors on the disk - the only other bit you need is the encoding scheme which is FM for single density and MFM for double density.

All modern systems have used MFM on floppies - there were a few odd ball systems (eg INTEL MDS MMFM and APPLE).

The RAW image I think would be encoded transitions in some method, so I would guess that it would include the IAM, sector header, gap bytes CRC etc. Indeed
you might be able to run the format program on the CP/M system into the gotek. It might also be possible that the software will allow loading of
other file formats.

I am very interested in your experiences with the Gotek - I guess it just keeps "playing" the current track/side as selected.

PS - I have managed to construct a 64k CP/M. MovCPM does not appear to work in my version so I had to use my disk editor to write it to disk.

If you load this into ram you will have to write a little program to turn off the RPM eeprom and then copy it to the correct address

john_newcombe 16th May 2019 8:18 am

Re: Gemini 80-Bus System
 
I am rather confused about the .img format as I found this on Wikipedia...

The file size of a raw disk image is always a multiple of the sector size. For floppy disks and hard drives this size is typically 512 bytes (but other sizes such as 128 and 1024 exist). More precisely, the file size of a raw disk image of a magnetic disk corresponds to:

Cylinders × Heads × (Sectors per track) × (Sector size)
E.g. for 80 cylinders (tracks) and 2 heads (sides) with 18 sectors per track:

80 × 2 × 18 × 512 = 1,474,560 bytes or 1440 KB


This suggests that IAMs, CRCs and gap bytes are not included in an .img file, fascinating. I have written to Keir Fraser the author of FlashFloppy in the hope that he can shed some light on the process of adding Gemini to the supported disk types.

JohnBHanson 16th May 2019 11:59 am

Re: Gemini 80-Bus System
 
My guess it is then the same as my .dsk format - which is the sector numbers in order sides in order and lastly the cylinders in order.

julie_m 16th May 2019 3:22 pm

Re: Gemini 80-Bus System
 
I've been doing some work with BBC Micro DFS disk images, as used by BeebEm, lately. In the course of this, I had to write some (rough and ready, but comprehensible) code that can extract files from a disk image and create disk image files, here on GitHub. While it probably won't be much help in its present form, I released it to the Public Domain, without restrictions; so feel free to borrow any code from it, if it helps you at all.

These BBC Micro disk images contain only the actual data that is readable from the disk; in strict order starting from track 0, with each sector in logical sector order (the physical sector order is created at the time of formatting and can only be changed by re-formatting the disc), then track 1 and so forth. So all the various sync bits, gaps &c. must be generated by the "disk hardware" portion of the emulator. The BBC Micro used an 8271 disk controller, and its disk drives are physically interchangeable with IBM PC drives (though the latter used a twist in the ribbon cable to avoid setting jumpers for each drive's ID; a PC drive will be detected as drive 1/3 by a BBC micro).


All times are GMT +1. The time now is 4:11 am.

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