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

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

Notices

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

Reply
 
Thread Tools
Old 15th May 2019, 4:43 pm   #41
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 344
Default 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.
JohnBHanson is offline   Reply With Quote
Old 15th May 2019, 9:07 pm   #42
john_newcombe
Triode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 32
Default 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?
john_newcombe is offline   Reply With Quote
Old 15th May 2019, 9:37 pm   #43
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 344
Default Re: Gemini 80-Bus System

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
Attached Files
File Type: zip gm512_64.zip (159.8 KB, 4 views)

Last edited by JohnBHanson; 15th May 2019 at 9:47 pm.
JohnBHanson is offline   Reply With Quote
Old 15th May 2019, 10:01 pm   #44
john_newcombe
Triode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 32
Default Re: Gemini 80-Bus System

Thanks I will have a play.
john_newcombe is offline   Reply With Quote
Old 15th May 2019, 10:02 pm   #45
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 344
Default 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)

Last edited by JohnBHanson; 15th May 2019 at 10:15 pm. Reason: Code corrected
JohnBHanson is offline   Reply With Quote
Old 15th May 2019, 10:06 pm   #46
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 344
Default 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 is offline   Reply With Quote
Old 15th May 2019, 10:12 pm   #47
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 344
Default 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
JohnBHanson is offline   Reply With Quote
Old 16th May 2019, 8:18 am   #48
john_newcombe
Triode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 32
Default 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.
john_newcombe is offline   Reply With Quote
Old 16th May 2019, 11:59 am   #49
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 344
Default 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.
JohnBHanson is offline   Reply With Quote
Old 16th May 2019, 3:22 pm   #50
julie_m
Dekatron
 
Join Date: May 2008
Location: Derby, UK.
Posts: 7,184
Default 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).
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments.
julie_m is offline   Reply With Quote
Old 16th May 2019, 4:10 pm   #51
john_newcombe
Triode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 32
Default Re: Gemini 80-Bus System

I have just successfully formatted a floppy disk with the format.com program you sent. I created an RP/M hex file and pasted it into the terminal to load at 0100. It ran and successfully formatted my double sided 80 track drive although it only formatted to 35 tracks. My drive has a 40/80 track switch, I am guessing that at 40 track it will be double stepping.

I guess this is progress, still no CP/M yet though.

In other news, when using the Gotek RP/M is clearly detecting the double byte signature on sector 0 as it proceeds to try and Execute boot.

Code:
57344 bytes - RP/M for Gemini V2.1                                                        
                                                                                          
** RP/M ready **                                                                          
*b                                                                                        
Executing boot
If I fiddle with the Gotek settings I can see Bad disk and Wrong disk. It feels like I am close.
john_newcombe is offline   Reply With Quote
Old 16th May 2019, 4:40 pm   #52
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 344
Default Re: Gemini 80-Bus System

So close - bytes 3 and 4 in sector 0 give the load address of cp/m. The last programmed bytes in the
sector should contain c3 xx xx - this is the start address of cp/m.

After the failed boot use RP/M to look at memory and see what is there. For the moment you are better off working with the 32k image as it will not load behind rp/m.
OR
if you have linux and a 5 inch drive you can use fdparm (I think) to change the characteristics of the drive and write a disk directly.
JohnBHanson is offline   Reply With Quote
Old 16th May 2019, 5:33 pm   #53
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 344
Default Re: Gemini 80-Bus System

Just another thought - are you running RP/M via the serial port. If so remember CP/M is configured to run on a video card.

To change that look at track 0 sector 31h (Using 128 byte sectors). This sector starts with
C3 xx xx (17 times) and is the bios jump table. at offset 33h in this sector is a byte (15h). Change
this to 14h will make CP/M use the serial port.

You might find that is why you are not seeing anything on your screen and actually CP/M is booting to the video card you cannot see.

All numbers are in hex and are the result of using he disked program (Type ? to get help)

Last edited by JohnBHanson; 16th May 2019 at 5:35 pm. Reason: Make sure reader understands numbers are in hex
JohnBHanson is offline   Reply With Quote
Old 16th May 2019, 7:00 pm   #54
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 344
Default Re: Gemini 80-Bus System

Just checked there is a mix up in the SERST routine. For console this should be the status of input characters. For printer devices it is the status of the output.

The console status in the bios incorrectly returns the output status rather than the input status. However it is a common routine that is used for both printer and console so a simple patch is not sensible.

however if you want to patch it to work for console - at the sacrifice of the printer routines working (very few things use the printer status) patch address 0f6ef from 20h to 01h.
(Address given for 64k version) change first two digits of address accordingly.

Attached is bios listing for your reference..... Note you have to add the bios base addresses to those given in the listing. You can find the bios easy on disk by looking for
c3 xx xx repeated 11 times starting either at the start of a sector of half way through a sector (512 bytes).

xx xx will be different for each repeat.
Attached Files
File Type: zip multi.zip (23.1 KB, 4 views)
JohnBHanson is offline   Reply With Quote
Old 16th May 2019, 7:50 pm   #55
julie_m
Dekatron
 
Join Date: May 2008
Location: Derby, UK.
Posts: 7,184
Default Re: Gemini 80-Bus System

Note that the code in post #45 contains an error. The code at 5006 IS given as 01 00 0D, but that disassemble as LD BC, 0D00 not LD BC, 2300.
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments.
julie_m is offline   Reply With Quote
Old 16th May 2019, 8:46 pm   #56
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 344
Default Re: Gemini 80-Bus System

Sorry about that = I spotted the error but did not alter the assembed hex.
JohnBHanson is offline   Reply With Quote
Old 16th May 2019, 10:54 pm   #57
john_newcombe
Triode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 32
Default Re: Gemini 80-Bus System

Julie: Thank you for your input. I have a couple of BBCs here which I used to develop and test the Telstar Viewdata system, one of them has a DataCentre and the other has a Gotek. I was thinking of checking the disk images but you have saved me the trouble, many thanks.

Thanks for sharing the code, I will take a proper look. I have been using some python scripts to re-arrange the disk formats and this has worked reasonably well so far.

John: I had completely missed the fact that CP/M is designed to output to the IVC. Clearly I need to look at this next.

In addition, as I now have the physical drive working (albeit at 35 tracks on an 80 track drive) what I would love to do is write the sectors directly to the disk. The issue for me is that the only machines I have that support 5.25 inch drives are the BBCs and the Gemini. Ho Hum.

Last edited by john_newcombe; 16th May 2019 at 11:16 pm.
john_newcombe is offline   Reply With Quote
Old 17th May 2019, 7:18 am   #58
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 344
Default Re: Gemini 80-Bus System

Very easy - at least for a backchair programmer.

Using your 32k version of CP/M disk - the first one I posted load cylinder 0, side 0, sector 1 through to head 1 sector 6 inclusive to address 5d00 in ram. Using a python program via rpm as you have done
previously.

Then the routine at 76ab should contain the routine WRITSC in the bios listing.

To write a sector setup BUFTRK to the track required and BUFSEC to the sector required values - BUFTRK is the cylinder number and BUFSEC is 0..9 for side 0 and 10..19 for side 1.

Set BUFDRV to 1 for disk A:
Data goes to the buffer at BUFFER

To get addresses add 7300 to the value given in the listing
JohnBHanson is offline   Reply With Quote
Old 17th May 2019, 5:22 pm   #59
john_newcombe
Triode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 32
Default Re: Gemini 80-Bus System

I can do that... probably. That would give me a 32k CP/M which would be awesome and a major step forward.
L
john_newcombe is offline   Reply With Quote
Old 17th May 2019, 6:08 pm   #60
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 344
Default Re: Gemini 80-Bus System

You could write the sectors from the 64k disk image -
load the 32k in ram using rpm
then load each sector in turn from the 64k file and then the code to write the sector
run the code and the sector is written
repeat for each sector as before.
JohnBHanson is offline   Reply With Quote
Reply

Thread Tools



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