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.
To contact Royce please use the email link provided below:-



The 1301 project would like to have feedback, from anyone using
this Interpreter, as we have not seen this software.

So feel free to email the project by clicking the spinning
logo below, wherever you see it on the Site.





(Designed for 640 x 480, 800 x 600 or 1024 x 768 Resolution) a 'POPUP' and 'FRAMES' free zone
Legal Info = ©"Copyright Shedland Software design"
All Images, Graphics, Sounds, Applets, Text, JavaScripts, or Anything Else contained within the Shedlandrobotics WebSite, unless otherwise noted or documented, are the Property, Trademark, or Copyright of Shedlandrobotics 2004 and may not be Copied, Reused, Sold, or otherwise Distributed without permission. So please ask! (Web Masters please note) ) This site is updated monthly and its contents are liable to, and will change. Links to and from the site are both welcome and encouraged. However we consider it a common decency to seek permission first. If we know a link exists, we will endeavor to not make any changes, or notify you of any changes to your links.