• Prime emulator source released on GitHub

    From Jim Wilcoxson@21:1/5 to All on Wed Mar 11 08:34:13 2020
    Today, with much help from Dennis Boone, I'm releasing the Prime emulator source code on GitHub for non-commercial use. This is the full version of the emulator running on Linux and supports:

    - all Prime CPU modes: 16S, 32S, 32R, 64R, 64V, 32I
    - all Prime models, from the P400 to P6550
    - up to 512MB of memory, depending on the Primos rev and CPU
    - a system console
    - 128 incoming telnet terminal connections
    - 8 disk controllers, 8 drives each
    - support for all 25 disk drives sold by Prime
    - a tape controller, 4 drives, using the .TAP format
    - a PNC controller emulating RingNet over TCP/IP
    - a bypass for Primos system serial number checks
    - Unix utilities to read/write physical tapes & Magsav tapes

    Dennis owns the emulator GitHub repo and has also kindly agreed to take over hosting of the public Prime emulators that have been online since 2008. There are 7 public emulators running in a virtual Prime ring, allowing both remote terminal sessions (
    netlink) and remote disk access via PrimeNet. The Prime emulator on Linux is currently running 45-55 Prime MIPS in 64V mode.

    A wide range of Prime software is loaded on the public emulators:

    - ftn screaming fast Prime Fortran 66 compiler, written in assembler
    - f77 the not-so-screaming but full-featured Fortran '77
    - pl1g the PL/I Subset G compiler
    - pl1 the full PL/I compiler
    - plp the original Prime systems language (like PL/I)
    - spl the 2nd generation Prime systems language
    - cc the C compiler written by Garth Conby of Pacer Software
    - pascal the Pascal compiler
    - modula Wirth's successor to Pascal
    - dbg Prime's source level debugger rivaling modern debuggers
    - pma the Prime assembler
    - basicv the Prime BASIC compiler
    - cobol the original Prime COBOL compiler
    - cbl the Prime COBOL '74 compiler
    - emacs the full screen editor still used by many today (me!)
    - midas the Prime indexed sequential file software

    This week we are working on releasing Prime disk images for all of the public emulators to make it easy for others to get their own Prime up and running. For the truly adventurous who want to bootstrap their own Prime system, there are links in the
    emulator readme to Prime tape images at Bitsavers and to a large library of Prime manuals.

    I learned more about operating systems, compilers, concurrency, and other systems programming topics by reading Prime source code, making changes to Primos, and fiddling with Prime hardware, than I did from all of my college degree work. I loved Prime
    computers, Prime software, Prime hardware, and the Prime Computer company, and am grateful to all of the former Prime engineers that provided this robust and interesting hardware and software platform.

    I hope you enjoy it too! https://github.com/prirun

    Jim

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Al Kossow@21:1/5 to Jim Wilcoxson on Wed Mar 11 08:41:46 2020
    On 3/11/20 8:34 AM, Jim Wilcoxson wrote:
    Today, with much help from Dennis Boone, I'm releasing the Prime emulator source code on GitHub for non-commercial use.


    thank you!

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dennis Boone@21:1/5 to All on Wed Mar 11 14:24:21 2020
    For those interested in playing with Jim's emulator, a few resources:

    Bitsavers has some doco and bits:

    http://bitsavers.org/pdf/prime/
    http://bitsavers.org/bits/Prime/

    I have been assembling what I hope will be the definitive Prime info
    site. It's not complete, but contains manuals scanned by, among
    others, AEK and Jim Wilcoxson, as well as material from my Prime-using
    past, etc. I have more documentation and software to add as I have
    time.

    https://sysovl.info/reference_prime.html

    Of particular use might be this writeup on installing PRIMOS Revs 22 or
    23 on the emulator. It's set up for the old demo version of the
    emulator, so needs a fair amount of updating, but may help get you
    started. I'll work on it soonish.

    https://sysovl.info/reference_prime_drb_installing_primos.html

    De

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dennis Boone@21:1/5 to All on Thu Mar 12 09:18:43 2020
    A set of sample system images derived from the public emulators can be downloaded from https://yagi.h-net.org/p50em_samplemachines.tar.gz to
    get you started. The tarball is 309078820 bytes, and its sha256sum is 8fe261f7a9f19e9fab2814371387f9cef5c64161fe7cf4bdc542144202678ca9. We
    may rebuild these later and distribute them individually in a more
    formal fashion.

    De

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dennis Boone@21:1/5 to All on Thu Mar 19 15:48:31 2020
    A set of sample system images derived from the public emulators can be downloaded from https://yagi.h-net.org/p50em_samplemachines.tar.gz to
    get you started. The tarball is 309078820 bytes, and its sha256sum is 8fe261f7a9f19e9fab2814371387f9cef5c64161fe7cf4bdc542144202678ca9. We
    may rebuild these later and distribute them individually in a more
    formal fashion.

    An updated set of images is posted:

    The tarball is 142882727 bytes, and its sha256sum is 32647dbcc3a0d541209eafc2f78d054e456d58046c9b3c5bc4ca64a8d9fc0037. V3
    removes additional junk, and rebuilds the disk images as 600 MB drives,
    split 30/10 heads filesystem/paging. This tarball preserves sparse
    allocation ("holes"), so that uninitialized space in the disk images
    does not occupy actual space. You may need to tell tar to preserve this
    sparse allocation when you extract, e.g. with the -S option. Also
    includes enhancements to the wrapper scripts: directory independence and
    the ability to run the runem script from a terminal.

    De

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From amp1ron@gmail.com@21:1/5 to All on Sat Apr 11 19:04:52 2020
    Hi Dennis -- I see you've posted newer versions of the sample images, including https://sysovl.info/pages/blobs/emulator/p50em_samplemachines_v5.tar . I'm having a lot of fun re-familiarizing myself with some of the versions of Primos. I was able to
    easily start up the full collection of VMs with all the versions of Primos in the sample images collection. My most productive years of programming on Primos were mostly using the Pacer C compiler on a 9750 and later on the same system after it was
    ugpraded to a 9955-II. I was happy to see that C compiler included in the Primos 23 sample image. But I'm having troubles compiling a test "Hello, World" program. It appears that stdio.h (stdio.h.ins.cc) and most other C include files didn't get
    installed in Rev 23 sample disk image, unless I'm missing something:

    OK, LD SYSCOM>@@CC@@

    <SYS23K>SYSCOM (LUR access)
    518 records in this directory, 518 total records out of quota of 0.

    17 Files.

    A$KEYS.H.INS.CC A$KEYS.INS.CC DS$SEVERITY_KEYS.H.INS.CC
    ERRD.H.INS.CC ERRD.INS.CC ERRORMSGHDLR.H.INS.CC
    ISC_KEYS.H.INS.CC ISC_STRUCTURES.H.INS.CC
    KEYS.H.INS.CC KEYS.INS.CC SRS_CODES.H.INS.CC
    SYNC_CODES.H.INS.CC TIMERMIK.H.INS.CC
    USER_TYPES.H.INS.CC UT_KEYS.H.INS.CC UT_KEYS.INS.CC X$KEYS.H.INS.CC

    OK,

    I don't see STDIO.H.INS.CC there or anywhere else I could think of to look on the rev 23 disk:

    OK, LD -DISPLAY_MATCHES MFD>@@>STD@@
    Insufficient access rights. MFD>DSM* (ld)
    Insufficient access rights. MFD>DSM* (std$cp)

    <SYS23K>TRANSLATORS>HELP*>PRIMOS.TEXT>FTN (LUR access)
    39 records in this directory, 39 total records out of quota of 0.

    1 File.

    STDOPT.HELP

    Insufficient access rights. MFD>BATCHQ>Q.CTRL (ld)
    Insufficient access rights. MFD>BATCHQ>Q.CTRL (std$cp)
    Insufficient access rights. MFD>BATCHQ>CIFILE (ld)
    Insufficient access rights. MFD>BATCHQ>CIFILE (std$cp)

    <SYS23K>HELP*>PRIMOS.TEXT>FTN (LUR access)
    39 records in this directory, 39 total records out of quota of 0.

    1 File.

    STDOPT.HELP

    Insufficient access rights. MFD>SAD>DEFAULT (ld)
    Insufficient access rights. MFD>SAD>DEFAULT (std$cp)
    ER!

    Is there some .COMI or .CPL file I need to use to install the C header files on Rev23?

    FYI, I *DO* see the C header files on the Rev22 disk. I supposed I could just try copying them from the Rev23 disk to the Rev24 disk, but even if that seemed to work I'd always wonder if problems with C coding in Rev24 were due to my own code or my
    using the C headers grabbed from the Rev23 C compiler install.

    OK, LD <SYS221>SYSCOM>@@CC@@

    <SYS221>SYSCOM (LUR access)
    556 records in this directory, 556 total records out of quota of 0.

    41 Files.

    A$KEYS.H.INS.CC A$KEYS.INS.CC ASSERT.H.INS.CC CTYPE.H.INS.CC
    ERRD.H.INS.CC ERRD.INS.CC ERRNO.H.INS.CC ERRORMSGHDLR.H.INS.CC FLOAT.H.INS.CC FN_DCLS.H.INS.CC FN_DFGEN.H.INS.CC
    FN_ERRS.H.INS.CC FN_GLOBALS.H.INS.CC FN_KEYS.H.INS.CC ISC_KEYS.H.INS.CC ISC_STRUCTURES.H.INS.CC
    KEYS.H.INS.CC KEYS.INS.CC LIMITS.H.INS.CC LOCALE.H.INS.CC MATH.H.INS.CC PARM.K.INS.CC PRIME_ECS_CHARS.H.INS.CC
    SETJMP.H.INS.CC SIGNAL.H.INS.CC SRS_CODES.H.INS.CC
    STAT.H.INS.CC STDARG.H.INS.CC STDDEF.H.INS.CC STDIO.H.INS.CC STDLIB.H.INS.CC STRING.H.INS.CC STRINGS.H.INS.CC SYNC_CODES.H.INS.CC SYSTEMSPROGRAMMING.H.INS.CC TERM.H.INS.CC TIME.H.INS.CC
    TIMEB.H.INS.CC TIMERMIK.H.INS.CC USER_TYPES.H.INS.CC X$KEYS.H.INS.CC

    OK,

    Thanks for any guidance on this. And thank you and Jim for sharing Jim's wonderful Prime emulator and these pre-built Primos disk images.

    -- Ron

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From amp1ron@gmail.com@21:1/5 to All on Sat Apr 11 18:37:27 2020
    HI

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dennis Boone@21:1/5 to All on Sun Apr 12 15:38:31 2020
    It appears that stdio.h (stdio.h.ins.cc) and most other C include files didn't get installed in Rev 23 sample disk image, unless I'm missing something:

    I don't see STDIO.H.INS.CC there or anywhere else I could think of to
    look on the rev 23 disk:

    Ron,

    Since we don't have very many releases, and the layered products with
    each one vary, it's possible Jim installed the compiler from a version
    that doesn't strictly match.

    It actually looks to me like all of the emulators have to be up and
    running for the compiler to work at all on 23, because some key part
    of it is not on the local disk.:

    OK, cc f.c
    Not found. (OPENT$)

    Thanks for the report - I'll see if I can get the images sorted out,
    and post v6.

    In the meantime, if you're feeling adventurous, there's a tape image
    with just the Rev. 23 CC compiler here:

    https://yagi.h-net.org/prime_software/cc23.tap

    De

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From amp1ron@gmail.com@21:1/5 to Dennis Boone on Sun Apr 12 19:13:24 2020
    On Sunday, April 12, 2020 at 4:38:37 PM UTC-4, Dennis Boone wrote:
    It actually looks to me like all of the emulators have to be up and
    running for the compiler to work at all on 23, because some key part
    of it is not on the local disk.:

    OK, cc f.c
    Not found. (OPENT$)

    Thanks for the report - I'll see if I can get the images sorted out,
    and post v6.

    In the meantime, if you're feeling adventurous, there's a tape image
    with just the Rev. 23 CC compiler here:

    https://yagi.h-net.org/prime_software/cc23.tap

    Dennis -- Thanks! I experienced the same "not found" for CC that you show. But CI seemed to run properly, aside from the missing C include files. It's shocking what I remember and don't from Primos. "A <subdir> 1 2" and SLIST are apparently still in
    my muscle memory, but I did so little myself with tapes that I'll need to re-learn MAGRST. I'll try restoring from the C compiler tape image you linked to. I'll probably eventually be as foolishly pleased with myself as when I was first allowed to
    touch our 9-track drive and mount a tape so that I could use MAGSAV and MAGRST myself instead of relying on an operator. -- Ron

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From amp1ron@gmail.com@21:1/5 to Dennis Boone on Mon Apr 13 15:09:52 2020
    On Sunday, April 12, 2020 at 4:38:37 PM UTC-4, Dennis Boone wrote:
    In the meantime, if you're feeling adventurous, there's a tape image
    with just the Rev. 23 CC compiler here:

    https://yagi.h-net.org/prime_software/cc23.tap

    Well that was almost too easy. I made a tape-images directory in pub, placed a copy of cc23.tap in there, made a symlink from pub/tape-imgages/cc23.tap to pub/23/mt0 and then at the console in Rev23 while attached to the MFD I did a MAGRST for tape unit
    0 logical tape 1. Then in the restored CC directory I ran the installer (R CC.INSTALL) and shared the C compilers (COMI CC.SHARE.COMI). Then in the GUEST account I compiled and linked hello.cc:

    OK, stat sy

    System EM23 is currently running PRIMOS rev. 23.4.Y2K.R1
    Copyright (c) Computervision, Corp. 1993

    OK, slist hello.cc
    #include <stdio.h>
    int main()
    {
    /* printf function displays the content that is
    * passed between the double quotes.
    */
    printf("Hello World!\n");
    return 0;
    }
    OK, cc hello
    [CC Rev. T3.2-23.0 Copyright (c) 1992, Prime Computer, Inc.]
    [Serial #ABC1-DEFG23-HI3J (PRIME COMPUTER)]
    00 Errors and 00 Warnings detected in 9 lines and 191 include lines.
    OK, bind
    [BIND Rev. T3.2-23.0 Copyright (c) 1992, Prime Computer, Inc.]
    : lo hello.bin
    : li c_lib
    BIND COMPLETE
    : file
    OK, r hello
    Hello World!
    OK,

    Thank you Dennis!!

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dennis Boone@21:1/5 to All on Mon Apr 13 22:06:15 2020
    Well that was almost too easy. I made a tape-images directory in pub, placed a copy of cc23.tap in there, made a symlink from pub/tape-imgages/cc23.tap to pub/23/mt0 and then at the console in Rev23 while attached to the MFD I did a MAGRST for tape unit 0 logical tape 1. Then in the restored CC directory I ran the installer (R CC.INSTALL) and shared the C compilers (COMI CC.SHARE.COMI). Then in the GUEST account
    I compiled and linked hello.cc:

    Great! Glad it was easy. Thanks for sharing how you did it, as
    that might help someone else.

    De

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From marlow.agents@gmail.com@21:1/5 to Jim Wilcoxson on Sun Jun 14 01:51:07 2020
    On Wednesday, 11 March 2020 15:34:14 UTC, Jim Wilcoxson wrote:
    Today, with much help from Dennis Boone, I'm releasing the Prime emulator source code on GitHub for non-commercial use.
    [snip]
    I hope you enjoy it too! https://github.com/prirun

    Jim

    Hello Jim, Dennis and all other fellow (ex)Pr1mates! An enormous thank you to Jim for porting it to linux and making it available via github. I am now well and truly in Nostalgia City! Thanks!!!!

    -Andrew M.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)