Binary Dinosaurs Computer Museum
titlebar
button1Museum History button2Museum Updates button3BinarySaurs on Twitter button4Adverts&Reviews button5Moan, Bitch, Gripe scroll1
button6Inhabitants button7Reviews button8WOW! button9Contact button10Recursion 2017 scroll2
button11Links button17Floppy Recreation button13BDonFacebook button14CGE-UK 2004 button15WROCC 2006 scroll2
button16DECBOX button12Retro2017 button18Floppy Recreation spaaaaace spaaaaace scroll3
base blank_textbox

Intertec Supebrain file transfers
Comms Woe
With a working machine the next thing to do was get Kermit transferred down for sending files. I thought this would've been easy since the Superbrain was THE FIRST Kermit client. The code was WRITTEN for a Superbrain. Therefore I assumed, wrongly, that all this would be documented. First off, there's 2 ports on a Superbrain - Main and AUX. I had to guess which port was in use on the version of Kermit (4.03) I had on one of the disk images. Then, what cable to use? The original Kermit hooked up to a Gandalf serial port mux which had a non-standard pinout via its AUX port which was no good to me, so I dug out my venerable DEC BC22D-25 serial cable that I'd used on my VT100 back in my programming days. That's a null modem cable so with my FTDI USB-Serial adapter on a Win10 PC I had a few goes at transmissions with no luck.
PIP!
Then I remmebered that PIP on CP/M usually supports the standard input/output devices of RDR (tape reader), PUN (tape punch), LST (printer) and sometimes INP and OUT. Forgetting Kermit for now I did a simple test with
PIP FOO.TXT=RDR:[E]
and sent a text file from the PC using an emulator called RealTerm. Result! File transferred successfully, after I'd remembered to CTRL-Z in RealTerm's input window to send the EOF marker. This means I could compile Kermit locally on the PC and send it down in small chunks, reassembling it on the Superbrain. PIP itself has a file size limit of 24K so the chunks had to be smaller than that.
Kermit itself is made up of 2 portions, a device independent part based around CPSKER.ASM and a device specific part built around CPXTYP.ASM. You edit CPXTYP.ASM to specify which machine you're building for then use LASM to assemble. The easiest way to do that in 2020 is to use a CP/M emulator, my favourite is MyZ80 which has 3 'disks' you can import files into for processing. The only downside to MyZ80 is it's a DOS program so on 64bit Win10 you need to install DOSbox to then run MyZ80. I won't cover that here. Edit the matching part (lines 297-303) of CPXTYP.ASM on the PC to look like this:
ampro	EQU	FALSE		; Ampro Little Board (terminal required)
basicns	EQU	FALSE		; Basic Northstar using printer port (CRT req.)
bbII	EQU	FALSE		;BigBoard II (terminal required)
brainm	EQU	FALSE		;Select Superbrain Main port  **[obs]
braina	EQU	TRUE		;Select Superbrain AUX port  **[obs]
comart	EQU	FALSE		;[10] Comart Communicator
				; (terminal required)
then import the whole lot into the B: drive of MyZ80, LASM.COM is part of the Kermit bundle so once it's all imported just typing 'LASM CPSKER' will assemble the main part. When that's done LASM CPXTYP will do the machine-specific part and tell you which machine you're compiling for.
The result is CPSKER.HEX and CPXTYP.HEX which can be EXPORTed back to the PC. Once there use a text editor to split CPSKER.HEX into 6 parts which can then be transmitted down to the Superbrain, for example KER1 to KER6. Also send down MLOAD.HEX if your CP/M disk doesn't have it on there. What you WILL need on the CP/M disk is LOAD.COM. On the Superbrain join the main parts back together and create the binaries:
PIP CPSKER.HEX=KER1,KER2,KER3,KER4,KER5,KER6
LOAD MLOAD.COM=MLOAD.HEX
MLOAD KERM411.COM=CPSKER.HEX,CPXTYP.HEX
and you're good to go! On the PC side there's very little to do other than remember that Kermit-95 is a 32bit program so only the CLI portion works. Once it's installed and run (as administrator) just
SET PORT com(x)
SET SPEED 9600
SET SERVER GET-PATH \path\to\files
SERVER
then everything can be driven from the Superbrain end.
Note
There are 2 other important things to remember, the first and most important being that the ports are wired differently. The main port is wired as a DCE (Data Comms Equipment) while the Aux port is a DTE (Data Terminal Equipment). This means that if you're using a null modem cable on the Main port you'll need to add another null modem adapter to use the AUX port. More info is in the pictures below. The second thing is that if you're using the Main port you'll also need to strap CTS low to get comms working, this is as simple as jumpering pin 17 on the 8251 chip (above the backspace key) to GND. Using the AUX port doesn't need this to be done.

All images and text © Adrian Graham 1999-2021 unless otherwise noted using words. Also on