![]()
|
|
![]() Story ![]() Hardware ![]() (Software) Order code Initial orders Programing Languages ![]() People ![]() Media ![]() Support ![]() Future ![]() Links- ![]() |
The ICT 1301 Resurrection Project.
MPL-2
The interpreter Project
Here in Royce's own words is the description of his MPL-2 Interpreter
mpldesc.txt
Description of MPL-2 Interpreter written by Royce Smith.
=======================================================
First to avoid misconceptions, this program does NOT emulate the
hardware of an ICT 1031. It does not know or care about a 1301.
The program emulates a pseudo-computer who's machine language is MPL.
The interpreter executes the SOURCE code directly.
The program is written in RM-Cobol and runs in DOS or a DOS-box in windows.
(a SCO-Unix version also can be supplied).
Because it cannot run 1301 instructions, the E-Enter-Mahine-Code, and the
Y-1300-functions cannot be implemented. However extra instruction get around
this restriction. Existing MPL programs have to be slightly changed to run, but
most functions work.
Features emulated
2000 word memory (separate from program storage)
1200 decade drum (all available)
8 tape drives (files named by operator)
Card Reader & Punch ( can be up to 158 columns)
Printer (120 to 240 columns to printer, file or screen)
99 indicators (5-99 setable by program or operator)
The Following Instructions work as per the manual.
A-Add-to
B-Block-move
C-Clear-add
D-Drum-reference
F-Fetch
G21, G44, G54, G55, G56, G57
H-isolate-digits
I-Indictors-Set-Unset (See Enhancements)
J-Jump (Not to subroutines, use @)
K-Compare
L-Label (Blocks not used or needed)
N-Negate
P-Print (Sterling removed, Print-Literal added)
Q-Punch
R-Read
S-Subtract-from
T-Tally
U-Unit-Increase
V-Set-Values
W-Write-away
X-Multiply
Z-Zeroize
&-Plus
- Minus
/ Divide
. Stop (Enhanced)
# Modify (1/4)
% Define and Redefine
@ Store link and Jump to Subroutine (all subroutines are global)
( Tape read (1/2) See below
) Tape Write (3/4) See Below
Instruction not implemented YET (Tell me if you really need them)
M Mask (logical AND)
O Or (logical OR)
$ Paper Tape read
* Paper Tape Punch
Enhancements to normal MPL instruction
(some of these I implemented by changing real MPL in the late 1960's)
New Instructions
^ (up-arrow) return from subroutine (replaces Y 004, LINK)
(modifiable)
< (left-arrow) write-back C register
> (right-arrow) write-back A register
= Compare from 1 to 15 words (syntax like block-move)
! Debug Display (e.g. !THING displays the contents of THING
Enhanced Instructions
. Stop can have Alpha or Number, (e.g. .ENDCR)
displays A,B,C and modifier,
displays set-indicators and permits operator to change.
#MOD1 Normal use of modify
# 1 Modifies next instruction by 1
# 0 Modifies by contents of B
P4 Distribute Literal ( Can be used in Punch )
P5 Clear area, Distribute Literal
P6 Distribute Literal and Print
P7 Clear Area, Distribute Literal and Print
Example, print a heading starting column 20
P70101
02017
THIS I
S A HE
ADING
Instructions NOT to be implemented
Any sterling stuff.
E-Enter Machine code
Y-1300 functions
(3 Tape-Read-Write
)3 Tape Write Dump
Subroutines in data store
Multiple programs (sectors) in one file.
Record blocking in tape files (one record per tape block)
Differences.
Alpha-numeric data is not stored in the same way, but this is
not a major problem.
Numerics are stored and processed Signed numeric,
overpunch in last digit.
================================================
For anyone really interested in trying the interpreter, I can send them
the sample program from the back of the manual "Shopping List" as a running
program with the input data files ready to run, and running instructions.
The source programs and card input can be created with any text editor
(e.g. Notepad, Brief etc) and all files can be viewed with any editor or file viewer.
Program must be upper-case, but literals and data can be Upper or Lower case.
Programs look like this, only first 6 characters are seen.
L 0 This is a comment, label zero not needed
@00123 go to some routine
LINK3 store link
.1END end with run-out
!TEST debug TEST
.LBE stops program, end of program file also stop program.
Royce is happy to help those who are genuinely interested.
|
|
(Designed for 640 x 480, 800 x 600 or 1024 x 768 Resolution) a 'POPUP' and 'FRAMES' free zone
|