CyberClient - A GUI Front End for an Emulated CDC Cyber Mainframe

CyberClient is a fairly nasty hack that provides a "drag-and-drop" interface to a CDC Cyber mainframe running on a slightly modified version of Tom Hunter's Desktop Cyber emulator. It is specific to Windows (and I've only used it on Windows XP, although it should work on other versions of NT), so I'm afraid it isn't suitable for those dedicated to using Linux.

For more information on CDC mainframes, Desktop Cyber and why on Earth anyone would ever be interested in such ancient things, please see this page.

The Environment

Someone wants to access the CDC machine to run batch jobs. They are sitting on their client machine - which is running Windows XP. The CDC machine is running on the DtCyber emulator. That, in turn, is running on another Windows NT machine (the server machine), somewhere on the same LAN. Shares and permissions have been set up so that the client machine can "browse" certain directories on the server machine.

Specifically, there are three directories on the server machine that must be shared:

The DtCyber emulator has been modified so that when a file is deposited in a directory specified by the CYBER_CR_DIR environment variable, that file is loaded into the "virtual card reader". To NOS this looks like a 3447 card reader controller connected to a 405 card reader. For use with CyberClient, this directory must be given the share name "CardReader".

If the file contains a valid NOS batch job, then NOS will go and run it.

As you would expect, when the job has completed, its default output stream will get printed on the "virtual line printer" - to NOS, this is a 3555 line printer controller connected to a 512 line printer. The emulator has been slightly modified so that the line printer output goes to a file in a directory pointed to by the CYBER_LP_DIR environment variable. Also, a unique file is created for each print job.

A helper program (which should be a service, but isn't) called JobNanny watches this line printer directory. When a new file appears there, it reads the first few lines of it looking for "JOBCARD NAME =". If it finds it, it uses the name that follows for two things:

The effect of this is that when a job has finished, it disappears from the "card reader" and appears in the "line printer output tray". For use with CyberClient, the line printer output directory must be given the share name "LinePrinter".

Finally, the directory pointed to by CYBER_CP_DIR is used for output sent to the "virtual card punch" - to NOS that looks like a 3446 card punch controller. The emulator was modified a bit so that each punch job goes to a unique file, and the first card (a lace card punched with a human readable job name) is discarded.

The card punch is, of course, very useful as a way of transferring files from the Cyber to the emulator host machine, and thence to the client machine. For use with CyberClient, the card punch output directory must be given the share name "CardPunch".

Once these directories are shared, the client side can - in principle - see them, and you can move files to and from them using the usual GUI tools (i.e. Windows Explorer).

The CyberClient Hack

CyberClient is a small MFC application that lets you do 5 things:

CyberClient picking a file to send to the mainframe.

The work of automatically positioning the windows, popping and pushing them, and so forth, is done by Ritchie Lawrence's excellent CMDOW utility (see: How this gets run by CyberClient is not so excellent ... the CyberClient MFC appication runs .bat scripts to get the Start, Minimize, Restore and End functionality. Well, I told you it was a hack!

CyberClient in Use. Full size image

The Modified Emulator for the Server Machine

This is a now fairly elderly version of DtCyber (V2.0 Beta 1) to which I backported the CP3446 card punch emulation from V2.1 - as well as the changes described above.


To download the source code for CyberClient and matching modified DtCyber, click here. This contains a Microsoft Visual C++ V6 workspace which will build everything needed (I think!).

The CyberClient GUI is free software - no strings attached at all. Feel free to do anything you like with it - apart from complain about it to its author! Desktop Cyber is Copyright (C) Tom Hunter. It can be used free of charge, but please see the license for details.)

There is also a ZIPped .MSI installer package for CyberClient here. This unfortunately has my Cyber account name and password hardwired into it for file transfer, so rebuilding from the source is probably a good idea!


There are alternative approaches to providing a front end to a CDC mainframe. J. Philip Draughon has implemented a way of e-mailing jobs to the machine, with the output being mailed back. This is a very nice idea, and is well suited to a Unix emulator host. It may be part of the latest DtCyber releases.

There also appears to be a front end project on SourceForge ( although this may be specific to SCOPE/Hustler running on the CDC machine.

Go to HCCC Home