Giter VIP home page Giter VIP logo

900-simulator-in-c's Introduction

900-Simulator-in-C

A simple simulator in C for the Elliott 900 range of minicomputers.

This repository consists of a simulator for the Elliott 900 series of minicomputers written in C, along with supporting utilities. It compliments a similar simulator written in Python, available at

https://github.com/andrewjherbert/900-Simulator-in-Python

This version has more diagnostic facilities than the Python version. The file formats ued by both programs are compatible.

emu900 is the simulator.

from900 is a utility program to convert Elliott 900 paper tape and teleprinter code output to equivalent ASCII.

to900text converts a file containing ASCII characters to its equivalent in the Elliott 900 paper tape and teleprinter code.

traceprint.py prints out in human readable for a ".trace" file from 900sim.py.

emu900 is the principal program to use. It reads a dump of the machine store from a file ".store" if present. paper tape input is read from the file ".reader" which should be a sequence of bytes binary file containing either an image of an Elliott paper tape or the result of translating an ASCII file to Elliott 900 Telecode using to990text. 900sim writes all teleprinter output to stdout. Teleprinter input is read from the file "ttyin". Any paper tape punch output is written as a sequence of bytes to the file ".punch". If the output was in Elliott 900 Telecode it can be converted to ASCII using from900text.

At the end of a run of 900sim.py .reader is updated to contain any unconsumed input and .store is updated with the new contents of the store.

Usage: emu900 [options] [ ptr [ ptp [ tty ]]]

ptr is file containing paper tape reader input. Defaults to .reader. ptp is file to be used for paper tape punch output. Defaults to .punch. tty is file to be used for teletype input. Defaults to .ttyin.

Verbosity is controlled by the -v option:

  1      -- diagnostic reports, e.g., dynamic stop, etc
  2      -- jumps taken
  4      -- each instruction
  8      -- input/output

Options are: -vn set verbosity to n, e.g., v4 -tn turn on diagnostics after n instructions, e.g., t888 -sn when execution first reaches location n turn on diagnostics -rn when execution first reaches location n turn on -v7 and abandon after 1000 instructions
-an abandon execution after n instructions, e.g., a9999 -d write diagnostics to file log.txt rather than stdout -m monitor word n for changes, e.g., m100

In addresses can also write m^n for word n of (8K) store module m to express value n*8K+m.

The source code for the programs is in the directory src.

There are scripts algol.sh, 903fortran.sh 905fortran.sh to run example programs which can be found in src/algol (Elliott Algol60), src/903fortran (Elliott FORTRAN II), src/905fortran (Elliott FORTRAN IV).

There are also .dox / .pdf files containing a short "manual" for each of langauges

The script x3.sh runs the Elliott 900 functional test program X3.

900-simulator-in-c's People

Contributors

andrewjherbert avatar peterogb avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.