EMAS Self-loading memory dump SLMP, ICL 29xx, 1900, etc

After solving some PLC mysteries, I now return to the EMAS 2 “bootdisk” (ICL 2970) which is obviously a memory dump having binary, ASCII and some few EBCDIC segments.

Reading a manual of the SIEMENS 4004 PBS (DOS) which was in fact an RCA Spectra 70 clone, I found the internal program SLMP (self-loading memory dump). It has its own code and contains a dump including register contents etc and overwrites the first 128 bytes of RAM. One has to enter some parameters of the addresses and tape channels. I assume it’s similar on the ICL. It can be made on purpose or I think automatically after a crash.

To restore a dump (into RAM), it’s surprisingly the program SYSGEN (“SYSGENI” with an INIT card format 2).

There are no emulators nor binaries for ICL 2900, Siemens, RCA, etc, but at least for ICL 1900 which is in parts 2900 compatible. And maybe the UNIVAC (9300) or the Interdata32 MOUSES. A dump might be called differently dump post mortem, snapshot or else. Some of the EMAS sources contain binary segments (maybe it was on EMAS 3), disassemblers etc, but after the years I’m starting at point 0. On a 1900 there are XLA2 print DME microcode dumps ICLKDUMPFILE post mortem, XLA3 print George 3 executive dumps, previously made with XK77.

Maybe it’s possible to find some opcodes or addresses or anything else what might help. I tried some Spectra-70 opcodes. Not sure if the beginning is a header, code, register contents or else. Maybe code starts at 50 or 128. At least some recurring patterns, like 80 08.

48 8F       LH 8F Load Halfword 
7A 8E 2E DC AE Add Normalized (Short) RX
02 E3 FF    LIT Load Interval Timer (SF) -FF?
9F 62 90 49 CKC Check Channel register 90 (SI) Privileged 
0A 62       SVC Supervisor Call 6-2 (RR) 
8F 38 40 15 SLDA Shift Left Double (RS)
83 FA 88 77 DIG Diagnose (Priv) (snapshot memory) 
80 08 48 58 IDL Idle (Priv) 08=Bit 12 1-reset-inhibit simultaneity
            (48 58 must be 0 = wrong instr) 
83 5D 98 63 DIG 
80 08 B5 49 IDL 
98 6F 80 00 LM Load Multiple (RS) registers, addr 0 
08 62       SSK Set Storage Key (RR) Priv. 
81 48       -no instr. wrong 
8B 18 04 62

I haven’t read/recall all EMAS sources or ICL 1900.
Any ideas about such dumps, maybe for other mainframes?
The EMAS dump is here (also note the readme, ASC and string files)

Index of /archive/os/emas/emas2/boottape

000cd000: 48 8f 7a 8e 2e dc 02 e3 ff 9f 62 90 49 0a 62 8f : H.z…b.I.b.
before that the tape is empty.

Some EBCDIC parts from the end, I think showing the running processes. I think there’s a source for sup26c (supervisor).

              … 0  EMAS 2900  SUP26C   31/03/80  11.29.39…FEs  None             
                  …RUNQ1 RUNQ2  PQ1 PQ2 PQ3 PQ4  SUSP  DRUM…  0     2     0   0 
  0   0    3     6% …                                        …  1 DIRECT S  20  
         39           …  2 VOLUMS S  21           40           …  3 SPOOLR S  22
           41           …  4 ERCC07 R2 23           42           …  5 ERCC08 R2 
           
       QŸŸŸŸPage 0      All Queues          11.28.01…LP                 1 Entry
            1K…BATCH                Empty              …JOBBER               Emp
ty              …JOURNAL            7 Entries        104K…LP23                 E
mpty              …LP14                 Empty              …MT14                
 Empty              …GP14                 Empty              …LP15              
   Empty              …MP                   Empty              …GP              
     Empty              …PP                   Empty              …P34           
       Empty              …LP34                 Empty              …LP40        
         Empty              …LP44                 Empty              …LP51      
           Empty              …BENCH                Empty              …FEP49   
             Empty              …P49                  Empty              …LP49  
               Empty              …FEP80                Empty              …P80 
                 Empty              …                                  Q

Most interesting 1900 tape is 4650010 which might contain some of the tools. Here some parts

ICL 1900 magtape *4650010 PROGRAM GEOS(1/0) 18/10/05

     1    #GEOS 77812   
     2    SL39 
     3    #SL39 00000039
     5    MACROS 
     6       ALGOL ...

XKTN in there:

Block: 1    Size: 20 words

 50444462  04650010  60625747  62415520  47455763  00000000  00000001  00007777     HDDR4U08PROGRAM GEOS0000000100__
 00113362  31000000  00000000  00000000  00000000  00000000  00000000  00000000     09+R)000000000000000000000000000
 00000000  00000000  00000000  00000000                                             0000000000000000

 TAPE MARK

Block: 2    Size: 20 words

 73200001  47455763  20000000  00600000  00000000  00000000  00000000  04007700     [ 01GEOS 0000P0000000000000040_0
 00000000  00000000  00000000  00000000  00000000  77017073  07071001  02202020     00000000000000000000_1X[77812   
 00000000  00000000  00000000  00000000                                             0000000000000000

Block: 3    Size: 5 words

 73050005  00000020  00000540  02516215  02210776                                   [505000 005@2IR=2!7^

Block: 4    Size: 352 words

 00000000  65300014  05300007  07045444  03600347  03600360  03600220  07040203     0000U(0<5(0774LD3P3G3P3P3P2 7423
 07040204  07040205  07040206  07040207  07040210  07040211  00000000  00000000     74247425742674277428742900000000
 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000     00000000000000000000000000000000
 00000000  00000000  00000000  00000000  00000000  53401065  03500000  45200600     00000000000000000000K@8U3H00E 60
 53401065  03500000  00000000  00000000  00000000  00000000  00000000  00000000     K@8U3H00000000000000000000000000
 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000     00000000000000000000000000000000
 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000     00000000000000000000000000000000
 00000000  00000000  00500000  00000000  00000002  00000055  00500003  00000000     000000000H0000000002000M0H030000
 00501000  00000000  00000002  00000000  00000120  00000055  00300000  00000000     0H80000000020000001 000M0(000000
 00000120  00000055  00500200  00000000  20202020  20202020  20202020  00000000     001 000M0H200000            0000
 00000000  00000000  00000000  43504162  47452020  20202020  20202020  00000000     000000000000CHARGE          0000
 20565764  20465765  56442057  56206556  51642000  00202020  54572023  00000000      NOT FOUND ON UNIT 00   LO #0000

A loader loads a loader that loads a loader... (Interdata mainframes) paper tape bootstrap

32 bit virtual computers remade with

1 Like

Nice to see another mention of EMAS. Shame there doesn’t seem to be an ICL 2900 emulator out there - which surprises me.

I touched EMAS briefly in the early 80s. Mouses on the Interdata 7/32 too. (a year or 2 earlier) It all seemed quite simple then and very, very usable (especially for us schoolkids who seemed to annoy the staff at Moray House, but I learned more there about programming than I probably did at uni. (Another one in Edinburgh).

I keep thinking I’d like to try to get Mouses going again, but time seems ever so limited and I suspect any Imp77 I learned has now been overwritten by decades of C… (Although these days I seem to be regressing to BCPL. Ah well).

-Gordon

Bob Eager has been working on a 2900 emulator and a rebuild of EMAS for a few years now although he had been keeping fairly quiet about until he mentioned it in a BCS presentation this year. Before he could bootstrap EMAS (despite the memory dump in the archives, there are not enough binaries to restart the system - but all the source code is available…) he had to recreate the Imp compiler for the 2900. And with a lack of a bootstrapping compiler when he started the project, the first thing he had to do was translate the Imp compiler from Imp to C. Which I believe he now has working and is using to bootstrap the emulated EMAS. That is all I know of the effort, anything else you’ll have to get from Bob himself.

2 Likes

We have a working Mouses emulator in the archive. Culloch warned that it was not 100% reliable but I never had any failures whenever I ran it up. Files at Index of /history.dcs.ed.ac.uk/archive/os/mouses/emulator

2 Likes

Just to link this earlier thread:
EMAS - reliable, efficient, portable multi-user OS (Edinburgh, ‘70 to ‘92)

1 Like