My first OS4000 login in 20 years (approx)

This should freak out a few friends. 🙂

OS4000 Rel 6.5 A036 on A7 WED 24 JUN 2009 08:05:53
Logging in
user ALEC
password

ID last used WED 24 JUN 2009 07:56:36
STARTED - WED 24 JUN 2009 08:06:02
OS4000 Rel 6.5 A036 on A7 WED 24 JUN 2009 08:06:02
error 10 unknown command: USER.INITJCL
EXEC USER.INITJCL

READY
EXAMINE POOL
EXAMINE version 305

Catalogue  POOL
--------------------------------------------------------------------------------

BLOCKING  LST   BYTPERF   LST   BYTPERF2  LST   CONTROL   CAT   D0A1A020  PRB
DATA      CAT   DFDR706   LST   DFDRBYT   LST   DFDRLIST  LST   DFDRLST   LST
DISCARD   LSB   DUFFMAIL  LST   ED803900  LST   ETHDUMP   PRB   FORMATS   LST
FTP       LSB   FTP2      LSB   FTPD4     BYT   GHOST     CAT   LIFT      CAT
LINKJCL   CAT   LINKS     CAT   LOG       LSB   LOGIN     CAT   LOGN803   LST
MAIL1019  LST   MAIL353   LSB   MAILDIV   LST   MAILTAB5  LST   NFSIDGEN  BYT
OBJ       CAT   OFTPD     LSB   OLIFT     LSB   OUTFILE   LST   PERF      LST
PROTTEST  LST   RCP       LST   RCP1      LST   SADGDISC  LSB   SD        CAT
SPAT      LST   TCP6      LST   TCP66     LST   TCPRELAY  CAT   TCPSPI    LST
TCPSPILI  LST   TEST      BYT   TESTCPW   LST   TESTPAS   LST   TIMER     BYT
TIMTEST   LST   UIMLINKS  LST   WORK      CAT

--------------------------------------------------------------------------------

READY
EXAMINE SYS
EXAMINE version 305

Catalogue  SYS
--------------------------------------------------------------------------------

ACCOUNT   LSB   ACCTGEN   LSB   ADDRGEN   LSB   AIDA      LSB   ASS68000  LSB
ASS68K    LST   AUTOGEN   LSB   BABB      LSB   BABBCLG   LST   BASIC     LSB
BIDA      LSB   CHIP      LSB   COLS      LSB   COMM      LSB   COMM2     Ref
COMP      LSB   CONTROL   LSB   CONVERT   LSB   COPY      LSB   CSOT      LSB
DEFAULT   LST   DIRE      LSB   DIRE1     LSB   DISCLOG   LSB   DISCTOOL  LSB
DOCU      LSB   DODM      LSB   DOTS      LSB   DPAIDA    Ref   EDIT      LSB
ETHERNET  LSB   EXAMINE   LSB   FCHK      LSB   FCOPY     LSB   FILEGARB  LSB
FORM      LSB   FTP       LSB   GARB      LSB   GARB1     LSB   GEDIT     LSB
IBDA      LSB   INIT      LSB   INIT1     LSB   INITAIDA  LST   INITJCL   LST
INITMESS  LST   INITPROF  LST   INITSMOA  LST   INITSMOP  LST   INSPECT   LSB
ISFC      LSB   LCPSTAT   LSB   LGEN      LSB   LIFTPTCH  LSB   LINK2     LSB
LINKCAT   CAT   LINKLIB   LRB   LK68000   LSB   LPOT      LSB   LPQ       LST
LPR       LST   MAIL      LSB   MAILADD   LSB   MAILHELP  LRT   MERGE     LSB
ML1       LSB   ML1LIB    LST   ML1LIBB   LST   NFS       LSB   NFSIDGEN  LST
NNFS      LSB   OCOMM     LSB   ODP       LSB   OMAIL     LSB   OS68000   CAT
PAD       LST   PADCAT    CAT   PASXREF   LSB   PREPROC   LSB   PROFILE   LSB
PWGEN     LSB   RALDUMP   LSB   RELOAD    LSB   RSH       LSB   SADGCOMM  LSB
SADGCOMP  LSB   SADGDISC  LSB   SADGDUMP  LSB   SALVE     LSB   SALVE110  LSB
SETACCO   LSB   SETACCO1  LSB   SETIPL    LSB   SETIPL1   LSB   SETRAF    LSB
SETTERM   LSB   SF        LSB   SGSFDISC  LSB   SMAO      Ref   SORT      LSB
SPI       LSB   SRECCONV  LSB   SUNDRY    CAT   SYSMON    LSB   TCPSPI    LSB
TITLEGEN  LSB   TRACE     LSB   TRANSFER  LSB   TUNE      Ref   USERS     LSB
XPCONFIG  LSB   XREF      LSB

--------------------------------------------------------------------------------

READY
GEDIT FOO
Filing error 203 : unknown context pointer condition code 16 s= CC52 past= 7

GEDIT FROM SINK TO .FOO
GEDIT 301 ready
***bottom
I HELLO WORLD
Syntax error I HELLO WORLD
***bottom
I/HELLO WORLD!/
HELLO WORLD!
            ***bottom
E
Edit OK

READY
EXAMINE USER
EXAMINE version 305

Catalogue  USER
--------------------------------------------------------------------------------

FOO       LST

--------------------------------------------------------------------------------

READY
LOGOUT
CPU used: 2 ieu  elapsed time used: 2 mins
User ALEC terminal   7 logged out  WED 24 JUN 2009 08:08:02

OS4000 Rel 6.5 A036 on A7 WED 24 JUN 2009 08:08:04
Logging in
user too long - terminated

***Unplugged connection from Way 37

There’s a working system, *plus* a full hardware emulation and nucleus running on Solaris.

w00t!

Now where did I leave that JCL manual?

34 Replies to “My first OS4000 login in 20 years (approx)”

    1. Turns out a colleague here at Sun for the past forever, has been hiding the secret that he used to work at GEC. There’s other news, too, bit I’ll ask him to share. 🙂

    2. since Jim lacks TrackBack support:

      http://found.pale.org/?c=id&p=5285

      …Via Alec, two bits of news on this venerable and insane operating system, which ran on GEC mainframes back from the late 70’s through to the turn of the century, and was a part of UK Internet history. Firstly, he’s managed to get hold of an emulation of the bloody thing; and secondly, the Wikipedia page is under threat of deletion for non-notability. As Alec says, poppycock. Although I never really poked around inside it, I recall its bizarre directory structure and its awesome command syntax: everything you did sounded like it was a command to launch the nuclear weapons from some 80’s hacker movie. FCOPY USER SINK TRACE DESTROY for example, to delete all a users files (IIRC)….

    1. Last EUCLID version was vn 1.5 with not all the sources available – final patching was direct on the LSB file. ^_^

      I only have a Bullet III source on paper from 19/11/90 which was version 2.8f

  1. A little snippet from the “good ol’ days”…

    Message from ZCAHBRN just gone a quarter to ten pm, 7th January 1987
    ———————————————————————–
    Just a little message to tell you that we, Igor et moi, have decided
    to shift the conflab/verse files from POOL.MESSIDS to POOL.MESIDS as
    Igor says you intended to do. This has, however, necessiatated the
    removal of you CONVERSE temporarily until such time as you can
    amend your macro to cope with this. All conflab/verse original
    references in POOL.MESSIDS have been removed. Good luck with the
    project,

    Rob & Igor.

  2. And, here’s practically my last login to the old EUCLID at UCL… Maybe we should archive this stuff somewhere? National Computing Museum, Bletchley Park, maybe?

    UCL Data Exchange NODE 3^G
    03.026
    Which Service?
    pad
    Connected

    ^LUCL PAD 2 line 4 speed 2400
    PAD2>
    PAD2>logon f f
    PAD2>call 000005111000
    *** Call connected
    too long – terminated

    SESSION STARTING

    Euclid Rel 4.17.2c Rim-C FRI 08 JUN 1990 19:50:16

    enter userid and account ucacmsu ucac
    enter password
    Started – FRI 08 JUN 1990 19:50:34
    ID last used WED 06 JUN 1990 17:05:40
    Session limit 121 minutes
    *** THE EUCLID SERVICE WILL TERMINATE THIS FRIDAY (8th JUNE) AT 2000 ***

    ******************************************************************************
    * USING FORTRAN ON THE PYRAMID *
    * For details of plans for alternative facilities for Fortran users, *
    * enter HELP PYRAMID FORTRAN. *
    * *
    * TRANSFERS TO THE PYRAMID *
    * Any users who have not run the TOUNIX command and wish to transfer to *
    * the Pyramid should do so as soon as possible. *
    ******************************************************************************

    **** For all you aspiring Unix users the next Introduction to Unix Courses
    will run on Monday 11th and Friday 15th June.

    –> Your userid has been set up on the Unix service
    –> Your mail files have been copied to this service
    –> Files created or changed on Euclid
    –> will NOT be automatically copied to the new service
    There are changes to bulletin board:
    PDSOFT.
    No mail has arrived since 11:05:27 on TUE 02 JAN 1990.
    I148(UCACMSU:TF39), I129(UCCA03E:TF28), I024(UCCA20D:TF27)
    I035(UCZZW03:TF26), I026(UCCA11J:TF2
    I031(UCJTPAD:TF13), I131(ZCESE30:TF6
    I141(UCCA021:TF41), I139(GUEST:TF42), I147(ZCAPD49:TF40)
    Do you want to go into KERNAL? (semi-random ready generator)

    Hi this is Eddie, and I’m feeling just great Guys!

    1. Not forgetting that you could use direct access to most of the 5 machines:

      000005111×00 where a change of x would give a different machine, unless x = 0 when a “random” (or was it always C) machine was used.

  3. It’s interesting to get the shutdown date/time recorded. The session limit of 121 minutes would seem to be unobtainable in this case;-) Not sure why you connected in through a PAD — the UCL Data Exchange was connected directly to Euclid terminal lines.

    I was given the UCL disks when they arrived back at GEC after Euclid closed down. They were the best example we ever found of gross fragmentation, corruption, etc, and looked like they’d never been garbage collected! I used them for testing a new disk maintenance utility on. The filesystems were in such a bad state as a result of no maintenance they would have been having a very significant slowing effect on the OS. Before anyone asks, no, the data on the disks wasn’t preserved after I finished with them.

    1. I remember UCL DCX too, but sometimes from student houses and other universities we used to come in over JANET.

      As to the disk fragmentation, some of that may have been my fault. I forget the JCL now – too rusty – but it was something like:

      create dir .T
      context T .T
      loop:
      create dir T.T
      context T T.T
      goto loop

      …which did something very nasty indeed; apparently either Andrew Gosling or Jeremy Perron had to physically edit the disk contents and GC, or something…

      1. All that did was create a file with the name from initial context too long. Basically by repeating that process, but stopping the context t t.t earlier, a path from that context would be short enough to delete.

        I’m sure it confused a few of the advisory staff tho’…

  4. After experience with SINK, I always felt there needed to be a /dev/nulldir on unix; any file under it existed and was empty, any file written to it, thrown away. Alas I’ve never seen it…

  5. SINK is identical to /dev/null. The OS4000 stdio library (called UIM) was actually told when a stream was connected to SINK, so it could simply return read and write calls (GET and PUT) without bothering to do anything with the data, so mostly data never even got to the SINK device driver (DMAN.DSP) in the first place. There was no OS4000 equivalent of /dev/zero.

    I wrote the OS4000 PIPE driver (DMAN.PIPE), but that didn’t go into standard OS4000 until Rel 5 or Rel 6 (I forget exactly when), so it was never on the UCL system (which looks like it last ran Rel 4.17).

    The per-login-session temporary files (%C, &FRED, and similar) always seemed like a great idea which unix is sadly missing. Sharing a per-system /tmp between users never seemed sensible to me.

    1. Latest linux I loaded had a /tmp dir in a user’s home directory which could easily be configured to be cleared on logout/reboot.

  6. The filesystem fragmentation was caused by running heavy write workloads with almost full disks, exactly same as would happen with UFS. You can’t do much optimizing of file block placement when there are only 2 spare sectors left at opposite ends of the disk;-) If you never garbage collect, you never bring these fragments back together. It was typical to see up to perhaps 5% fragmented files on most systems which do even just quarterly garbage collections. ISTR the UCL disks were something like 98% fragmented files, meaning nearly all the files on the disks were written when the disks were virtually full, and they’ve never been garbage collected since. There were also quite a number of filesystem corruptions, which again would have been fixed by garbage collection. I can’t imagine how they happened in the first place though, as that’s not something I ever saw to anything like that degree with any other customer. Probably just 10 year’s accumulation of them.

    Your example creates a deep directory. OS4000 couldn’t care less about that – it has no limit. File paths may have been limited to 255 characters in some system calls, but you can use context pointers to get around that, up to any depth.

  7. Jim, I have my punch card notes cards around here somewhere with a few of the addresses on them. I’ll try to fish them out.

    Andrew, actually, EUCLID continued to operate for about a month after that session. I was connecting from Cornwall using an Amstrad V22bis modem (which didn’t have error correction) which is why I came in via the PAD.

    Having said that, pretty well all access to EUCLID was via the PAD. It allowed users to connect to other services such as the UL Library system or ULCC.

    I wonder if the fragmentation was why Bullet slowed the system down. If it was anything like the Sun of Bullet (and hence Bullet III) it used files for data transfer. Then again, Robert did use some cunning things in Babbage and some even more cunning things by modifying the binary code.

    1. Just to point out the Babbage I/O I used to replace stdio which seemed to ABEND the program if another process had a file already open for exclusive use was actually written for Bob de Bath (by someone in the CC, possibly CCAAJSP or CCAAHOT) for his porting of JOVE to EUCLID. I just took it and modified it for my use.

      If I had still had the sources for vn 1.5 I would have not needed the pre/post Bullet programs to add/delete the filing password (for those accounts where the password command had been disabled) as I would have written it straight into the code, along with the code that could ban Userids from running Bullet.

      The “funniest” Babbage I wrote was a talker tapper which meant I could sit programming without having to occasionally press RETURN to see what was happening. Funniest in the sense that A Gosling wrote one in [possibly] Fortran which was heavy on ieus whereas mine in Babbage used practically none – left running over a weekend it generated 100-200 pages of output and used in total about 5 ieus (most of them during login of the batch job!)

      One thing Alec noted was that of “preloading” Bullet by copying the object code to the users temporary filed (on the RIM machine) made running it (start up) quicker – obviously a major delay (bottleneck) in EUCLID was the HUB-RIM link. Unfortunately, the shared data had to sit on the HUB to ensure accessible from all RIMs.

    1. I Have a rescued GEC 4070 Mini at home and would desperately like to obtain a copy of the Emulator to run on a PC. I need to try to get the hang of programming via front panel keys on this splendid bit of kit.

  8. I want to release the emulator when GEC cease support for OS4000.

    The 4070 was a slowed down 4080 (store interleaving disabled), and there is support for the 4080 in my emulator in theory, but I haven’t really tried it. I’ve only used the emulator to emulate the later systems with PAS addressing – the 4160, 4090, and 4190 families. The emulator doesn’t have a working 4070/4080 front panel. However, it will let you drive a 4070/4080 system from a 4160 front panel and/or 4160 MCU, which is much easier to use. Also, I don’t have any 4070/4080 IPL PROM images, but the emulator can IPL a system without using the IPL PROM at all. If your 4070 works enough to power-up the CPU, it should be possible to read the IPL PROM image from the front panel (Reset, set Instruction-Stop mode, IPL2, and read bottom 256 bytes of store. Could repeat for IPL1 too, but the emulator doesn’t support the really old peripherals like paper tape which use IPL1.)

  9. You’ll have to let me know when you’re going to release the emulator – I’d love a copy. My first job was programming in Babbage at Rutherford Appleton Laboratories.

    1. Hello Keith,
      Just in case you’re interested, my GEC 4070 came from the RAL site and was the last working one. It was saved at the last minute by myself (from the skip !!) and is still in my possession.
      Because of this I am also desperate to get a copy of the emulator, so that I can experiment and try to get some minor programs entered and working via front panel keys.

      Cheers,
      Alan.

  10. Is this available yet??

    I’d also be keen to find out if any copies of the Prestel system software (and/or databases) still exist anywhere? I understand this ran on OS4000, across varying numbers of machines around the country…

  11. Hello All,
    Does anyone on here have any hardware knowledge of the GEC 4000 series computers (particularly the 4070). I need to get some cabling sorted out for the serial connections to be able to talk via rs232 (preferably directly to a PC serial port). I have the GEC serial port cards but all cables were cut and I have no references.
    Also any news on the 4000 series emulator please?

    Cheers,
    Alan.

Leave a Reply

Your email address will not be published. Required fields are marked *