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 17th May 2019, 6:37 pm   #61
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 344
Default Re: Gemini 80-Bus System

Once you have 32k CP/M running from disk the rest is easy

create a directory on you system ~/beaver/network - this will hold "network files"

run xbeaver with the 64k cpm file. within the emulator type

A>t-net n
A>pip n:=a:*.*

This will copy all files on a: to the network drive (eg the linux directory ~/beaver/network)

Copy t-net.com from there to rp/m using your existing technique via rpm
boot your 32k copy of cp/m disk on the real hardware (this will not destroy the program area)
use the save command to save the file t-net.com to disk

check the access permissions on /dev/ttyS0 allow access - change if necessary
then on linux run
xbeaver fileserver

on the real gemini system run the command
a>t-net n

Then any files in directory ~/beaver/network will appear in drive n: of your gemini machine
these can of course be copied.

To create a copy of the 64k system in real sectors do the following

a)extract icopy.com from xbeaver.dsk do the following
run
xbeaver
A0:0>copy a:icopy.com n:



B)
Translate the .DMP file to a .dsk file

in the gemini.cfg file change the floppy command to be use the line (or similar)

board 0xe0 gm829_floppy -geometry D35.2.10.0.512 ~/beaver/gm512/GM512_64.DMP C35.2.10.0.512 ~/beaver/network/cpm_64.dsk

now run xbeaver gemini.cfg

copy the program icopy.com into a: using
A>t-net n
A>pip a:=n:icopy.com
A>icopy
Source Drive>A
Destination Drive>B

This should copy the disk to the disk file
~/beaver/network/cpm_64.dsk
exit the simulator


On the real hardware the file n:cpm_64.dsk contains an image of the disk

use the following to create this onto drive b:
n:disked
Disked>Db (Echos as Disk B)
Disked>Fs (Echos as File set) n:cpm_64.dsk)
Disked>t0 (Echos as track 0)
Disked>s1 (Echos as sector 1)
Disked>Fr (Echos as File Read)
Disked>Q (To quit disked)

(Disked ? gives help)

This will copy the file cpm_64.dsk from the linux machine to disk b:

And you will have (hopefully) a CPM 64 k disk in drive B:

DIsked will be a useful tool for you. If you do Buffer read/write disked holds its buffer at 2000h and can be pre-loaded as required before running disked (including via rpm).
JohnBHanson is offline   Reply With Quote
Old 17th May 2019, 8:57 pm   #62
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 344
Default Re: Gemini 80-Bus System

Just to let you know that I enjoy your glasstty.com 6502 viewdata
service.

A while ago there was a viewdata/prestel card for sale on ebay that was 80bus
so I had to give into temptation and implement it in xbeaver.

The config line to get the screen is

board 0x47 wt625 0xfc800 Viewdata options kahsv

also make sure you have the shell server in your config:-
board 0x48 shellserv /bin/bash

And to run it within VPM/M the following commands
are useful. To start a virtual machine on the terminal type the
following

device ins a:vv
device vdu vv0

and then run program viewdata to get a linux shell, from there telnet glasstty.com 6502
or as you want.

Another test program
JohnBHanson is offline   Reply With Quote
Old 17th May 2019, 10:39 pm   #63
john_newcombe
Triode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 32
Default Re: Gemini 80-Bus System

I am glad you like Telstar, it has been very popular with BBC and Sinclair owners. Thanks for all your help and information I am working through it all. Will let you know how I get on with it all.
J
john_newcombe is offline   Reply With Quote
Old 19th May 2019, 7:48 am   #64
john_newcombe
Triode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 32
Default Re: Gemini 80-Bus System

Just looking at patching CP/M for serial and just wanted to check with you on the 'status' patch.

I am performing the patch within the script performing the conversion from .DMP to .IMG so that I can produce both patched and non patched automatically and the byte I see at F6EF (64K) doesn't match with the one you mentioned so my maths is probably wrong.

Given that I have a interleaved .IMG in memory as a byte array I can see that the first patch is at byte 6125 i.e. 12th (512 byte) sector, offset 31h. This ties up with the value at the end of the list of C3s. So I am happy with this patch.

The second patch 'status' I am not getting right. Based on bytes 3 & 4 in sector 0, I am using CP/M with the load address of 5D00, the 64K image you sent shows a load address of dd00. My maths suggests that a patch at F6EF on a 64K system relates to byte 1Bef within the byte array...

Code:
Patch Address - Load Address + Length of Sector 0
F6EF - DD00 + 0200 = 1BEF
...but this byte is 02 on each disk image not 20h as you suggested, can you see what I am doing wrong?

J
john_newcombe is offline   Reply With Quote
Old 19th May 2019, 8:36 am   #65
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 344
Default Re: Gemini 80-Bus System

You need to take the address of the patch 6ef, add the base of the bios f300 to get f9ef and then
work out
f9ef - dd00 + 0200 = 1eef

This should be 20h and you need to change it to 01h

Try that.
JohnBHanson is offline   Reply With Quote
Old 19th May 2019, 9:36 am   #66
john_newcombe
Triode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 32
Default Re: Gemini 80-Bus System

Thats it, many thanks.
john_newcombe is offline   Reply With Quote
Old 19th May 2019, 8:09 pm   #67
john_newcombe
Triode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 32
Default Re: Gemini 80-Bus System

Some progress to report...

I have now booted the system (sort of) from a Gotek, using a track interleaved disk image with output arriving at the serial port. I still have a few issues to investigate as I do not yet see the A: prompt. I will look into this next week. Both the 32k and 64k images behave the same. It looks for all the world like the serial parameters have been changed by CP/M loading.

Code:
57344 bytes -  RP/M for Gemini V2.1
Executing boot

Gemini Multiboard Auto Density System (1.4)

        64k CP/M vers 2.2
I also have discovered that the previously mentioned IVC failure is due to a dodgy output transistor. If that is all that is wrong, that is an easy fix. I will try and sort this this week and boot the machine using the IVC for display.

If I get all of this working I will publish the details on http://glasstty.com.
john_newcombe is offline   Reply With Quote
Old 19th May 2019, 10:47 pm   #68
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 344
Default Re: Gemini 80-Bus System

Try 2400 baud.... Divisor is at address offset 3a (address) f33a in the 64k version.

(Should be 0dh for 9600 baud which is the highest in common with a pc).

I think you are getting close. Don't forget most of the 64k image and all of the 32k image should be preserved across reset. So with the 32k image you can take the disk out hit reset and then look at what is in memory. You have always got my emulator for comparison .
JohnBHanson is offline   Reply With Quote
Old 20th May 2019, 8:37 am   #69
john_newcombe
Triode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 32
Default Re: Gemini 80-Bus System

Thats it. Booted to CP/M (32k and 64k) all files visible etc. and able to run programs as expected. I can't quite believe it really!

John: Thank you so much for you help, it has been invaluable.

I need to get my head around a couple of things now. The disk images are 35 track images (gemddds) and it would make sense for these to be 80 track (gemqdds). Naturally I could extend the disk image file with 'e5' blocks but I suspect there is more to it than that.

The second thing I would like to understand better is the issues you had in creating the 64k version of CP/M. I will re-read your posts on the matter.

In terms of hardware, I will try and fix the IVC today, boot to CP/M and add my real floppy disk as a second drive.

I will write up the Gotek settings today/tomorrow and post them here and on glasstty.

Once again, many thanks.
john_newcombe is offline   Reply With Quote
Old Yesterday, 3:55 am   #70
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 344
Default Re: Gemini 80-Bus System

Be careful when changing the DPB to include larger disks. The screen dumps of DISKDEF I gave earlier use the definition of even tracks being on side 0 and odd tracks being on side 1. (Scheme a)

The gemini bios uses the definition of tracks being cylinders eg each track starts on side 0 and continues on side 1. (Scheme b)

Both techniques are acceptable for CP/M and which is used depends on how the bios determines the side number.

The first definition - the bios divides the track number by two to give the cylinder number - the remainder being the side number

The second definition the sector number is compared to the number of sectors per track and this is used to determine the side number.

This means that there are a difference between some items within the Disk Parameter Block.

This affects the values of SPT and OFF defined in the Disk Parameter Block.

Scheme a
SPT: 40
OFF: 2

Scheme b
SPT:80
OFF:1

(NBSPT refer to 128 byte sectors which is what CP/M BDOS sees).

This is because scheme a tracks are actually tracks, whereas scheme b tracks are really cylinders - I hope that makes sense.

Some systems work one way and some another - CP/M does not directly have a concept of sides only tracks and sectors. So when double sided disks happened either the number of tracks or the number of sectors were doubled giving the two alternative layouts.

To change to 80 tracks you will need to change the DPB - the disk size is given by the DSM field. This is measured in blocks. If you keep the block size
the same then you will need to change the size of the allocation vector - this is one bit per block. If you don't have enough room in the bios for the larger allocation vector size you can change the block size. This will involve changing BSH/BLM/AL0/AL1. See the alteration guide for details, or look at the diskdef screen dumps earlier which have the values calculated. Note diskdef uses scheme a and not scheme b so you will have to double SPT and half the OFF values before using them in your bios.

Do make sure the memory allocted in the bios for he Check and allocation vectors are large enough.

Last edited by JohnBHanson; Yesterday at 4:08 am. Reason: Correct for 128 byte sectors that CP/M sees.
JohnBHanson is offline   Reply With Quote
Old Yesterday, 8:49 am   #71
john_newcombe
Triode
 
Join Date: Apr 2019
Location: Skipton, North Yorkshire, UK.
Posts: 32
Default Re: Gemini 80-Bus System

I now have a real 40/80 track floppy connected as drive B: and have been able to copy files across using PIP etc. SYSGEN was less successful.

In terms of using higher capacity drives I was just thinking of trying to create QDDS disk images for use with CP/M. I wondered if these would be supported automatically without any bios changes. I know that CP/M could be purchased in either format, GM512 (DDDS) and GM532 (QDDS), but it may be that each version is specifically tailored to the different drives in terms of DPBs and utilities such as FORMAT.COM.

I am not sure I am capable of making some of the changes you highlighted in the last post, so may end up grabbing a 35/40 track drive in place of my 80 track and turning my attention to adding a hard drive.
john_newcombe is offline   Reply With Quote
Old Yesterday, 10:55 am   #72
JohnBHanson
Hexode
 
Join Date: Aug 2009
Location: Worthing, Sussex, UK.
Posts: 344
Default Re: Gemini 80-Bus System

I think sysgen or movcpm is/are broken wrt writing to disk.

For updating the bios, you need to assemble multi.mac at the correct origin for you cp/m size
and then write the output file to the bios sectors on track 0

To assemble you need to look at the aseg/org/phase directives eg for 64k cpm use

aseg
org 0100h
.phase 0f300

then build with the commands
m80 =multi
l80 multi,multi/n/e

Then use disked to located the start of the bios on the boot tracks
then use the file set and file read commands to copy multi.com to the boot sectors where the bios is

Hope that helps somewhat
JohnBHanson is offline   Reply With Quote
Reply

Thread Tools



All times are GMT +1. The time now is 7:49 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.