This software generates emulators for several early IBM systems.
It is designed to run on IBM System/370 systems under DOS/VS.
There are two distinct groups of emulated machines:-
  1401/1440/1460 - Modules prefixed with IIQ (the 1401 group)
  1410/7010      - Modules prefixed with IIR (the 1410 group)
 
There are several kinds of modules here:-
  IIQ* and IIR* - group specific source
  *.A           - other source, seems to be common to both groups.
  EMSPLxxS.Z    - sample program source (xx=01/10 for each group)
  EMSPLxx.Z     - sample program object (xx=01/10 for each group)
  *.Y           - miscellaneous history and install (unimportant)
 
 
The following modules exist in two versions, one for each group:-
 
IIxCP   - General instructions
IIxCR   - Common region. Emulator tables and work areas
IIxDK   - Disk instructions
IIxDS   - DOS Disk I/O
IIxEI   - DOS I/O PROCESSING
IIxID   - I/O intruction decode
IIxIU   - UNIT RECORD DEVICES DOS SIMULATION
IIxMWTx - Message text "dictionaries" (x=1 to 6)
IIxOC   - Operator interface for CLEAR, TN/TF, EMCTL, LOAD, EOJ
IIxOD   - Operator interface for START, CONVERT, SET, ALTER
IIxOE   - Operator interface for DISPLAY UR, TAPE, DISK, CONF
IIxOG   - Operator interface for DISPLAY ADDRESS
IIxOI   - Operator interface for DISPLAY REG, SW, STAT, SENSE
IIxOJ   - EMULATOR COMMAND DICTIONARY
IIxTP   - TAPE SIMULATION
IIxUR   - UNIT RECORD SUMULATION
 
 
The following modules are unique to the 1401 group:-
 
IIQAP   - STORE ADDRESS REGISTERS
IIQBR   - BRANCH IF INDICATOR ON
IIQBY   - MOVE BINARY CODE AND DECODE
IIQCF   - CATALOG (Converts object code for use by DOS/VS librarian)
IIQCN   - READ/WRITE ON CONSOLE
IIQCS   - CS CONTROL CARDS PROCESSING
IIQDI   - DISKS I/O EMULATION
IIQEP   - Move chars and edit/suppress zeros instructions
IIQEP1  - MOVE CHARACTERS AND EDIT variation
IIQMC   - MOVE CHARACTERS AND EDIT another variation
IIQMD   - MULTIPLY AND DIVIDE EMULATION
IIQMD1  - MULTIPLY AND DIVIDE S/135 HIGH SPEED
IIQUR1  - PRINTER CARRIAGE CONTROL TAPE EMULATION
 
 
The following modules are unique to the 1410 group:-
 
IIRDCC  - DISK CHANNEL CONSTANTS AREA
IIRDL   - DISK EMULATION
IIRFP   - FLOATING POINT FEATURE EMULATION
IIRIS   - I/O SUPERVISOR
IIRMI   - MOVE,etc instructions
IIRPR   - 7010 PRIORITY TEST AND BRANCH
IIRST   - 7010 STORE AND RESTORE STATUS
 
 
The remaining non specific modules.
E* seem to be the emulator generation macros.
D* seem to be DSects for various control blocks.
 
BF14    - BUFFER ALLOCATION AND RELEASE
BF14T   - BUFFER ALLOCATION OR RELEASE FOR SUB
CC14    - CONTROL CARDS PROCESSING EMULATION
DB14    - 1400 DEBUGGING AIDS
DBIB    - BUFFER INFORMATION BLOCK DSECT
DDTF    - TAPE CCB AND CCW DSECT
DDUB    - DISK UNIT BLOCK DSECT
DECCB   - CHANNEL CONTROL BLOCK DSECT
DIIQCR  - 1401/1440/1460 COMMON REGION DSECT
DIIRCR  - 1410/7010 COMMON REGION DSECT
DSUB    - SEQUENTIAL UNIT BLOCK DSECT
EJ14    - END OF JOB EMULATION
EMCNSL  - CONSOLE MACRO GENERATION
EMDISK  - DISK MACRO GENERATION
EMEND   - Emulator generation final macro
EMPNCH  - PUNCH GENERATION
EMPTR   - PRINTER GENERATION
EMRDR   - READER GENERATION
EMSUP   - Support generation
EMTAPE  - TAPE MACRO GENERATION
EMULATOR- Emulator generation
EMVERIFY- "verify" generation
MT14    - EMULATOR DATA MANAGEMENT FOR TAPES
MW14    - MESSAGE WRITER 1ST PHASE
MW14T   - MESSAGE WRITER 2ND PHASE
NT14    - DOS INTERFACE 1400 FORMAT TAPE EMULATION
OA14    - OPERATOR SERVICE CONTROL
OB14    - COMMAND STRING ANALYZER
OF14    - KEYWORD EXECUTION  DISK, TAPE, UR, COMMENT
OH14    - KEYWORD EXECUTION  DUMP, DEBUG
OK14    - KEYWORD EXECUTION USER PROGRAMS
PP14    - TAPE FORMATTING PROGRAM
SD14    - SUB/DUB BUILDER
SD14T   - SUB BUILDER FOR TAPES AND UR
VT14    - DOS SPANNED VARIABLE LENGTH RECORD FORMAT
 
 
The "pseudo-microcode" for the core CPU functions that one would expect
to find in the source for an emulator is not here, rather these functions
were implemented in real microcode assists which were optional features
of the 370 machines, but required for these emulators.
The following are macros that simply invoke the microcode assists:-
 
ANUM    - Arithmetic
BDIL    - BRANCH/IFETCH
BIFLAG  - Branch if flag
COMP    - 6-bit Compare
DIL     - I-FETCH
MCPU    - Move data (Memory)
MIO     - Move data (I/O)
MULDIV  - Multiply & Divide
 
There are also other versions of some modules suffixed with ".A1"
These were unedited (A book) copies of the edited (E book) versions.
The ".A" versions are probably more correct, since the assembler would use the E books.
