Giter Site home page Giter Site logo

pdp8emu's Introduction

Console-based PDP-8 emulator C/C++ CI

This PDP8 Emulator was originally written, and released as Freeware, by Douglas W. Jones at the University of Iowa back in 1995.

It has now been updated and converted from K&R style real UNIX targeted code into a more modern C99 compatible POSIX codebase with a few bugs and "syntax errors" fixed. It compiles cleanly and runs under MacOS / Linux using clang / gcc.

Changes

Bugfixes

  • Fix missing ) preventing compilation
  • Fix unintended commenting out a line of code
  • Fix buggy bitmask comparison
  • Fix missing stub functions in coremake/dump
  • Fix buggy handling of blocking/vs unblocking stdio reads
  • Make IRQ on RTC card disabled at reset as according to specs

Cleanups

  • Removal of all X11 -relates files and functionallity
  • Change K&R style function syntax into ANSI style
  • Add .h files for all .c source files
  • Remove speed-increase FUDGE factor
  • Change BSD termio handling into POSIX
  • Always include all modules/cards and remove their #ifdefs
  • Remove stubs for modules/cards never implemented
  • Only have externs in bus.h and then the actual globals in main.c

New features

  • Tracing of runs with dissasembly and registers
  • Control of "frontpanel" and TTY input via UDP port 2288
  • New utility for creading core files from bin files

Licence

When I asked about the freeware status the original author told me:

I wrote both the code and the readme, and I stand by it. It's free. Use it any way you want, make any modifications, and feel free to pass it on to anyone for any purpose.

So with that statement I assume it is fair to re-release his code with my updates and changes under the MIT license. Anyone that wants the full freedom of the Freeware can still use the original code.

Files

original/         - Original files from 1995
tests/            - PDP-8 tape images to run for testing
Makefile          - Used by make, contains the emulator configuration
README.md         - This file

main.c            - CPU
mem-km8e.c        - Memory manager
tty-kl8e.c        - Console interface
frontpanel-kc8m.c - Front panel (minimal function, dumb terminal)
rtc-dk8e.c        - Real time clock option
hstape-pc8e.c     - Paper-tape reader/punch
card-cr8f.c       - Card reader
floppy-rx8e.c     - RX01 floppy disk interface
bus.h             - Contains definitions all "boards" share
debug.c           - A makefile-selectable debugging aid
realtime.c        - Internal mechanisms to keep track of time
ttyaccess.c       - Internal mechanisms for terminal interface
utility.c         - Internal mechanisms for command-line interface
disasm.c          - Looks up octal op-code into disassembly
coredump.c        - A utility - prints an octal dump of a saved core image.
coremakerim.c     - A utility - loads a RIM file into a core image.
coremakebin.c     - A utility - loads a BIN file into a core image.

References

pdp8emu's People

Contributors

mengstr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

simrit1 warlockd

pdp8emu's Issues

Problems running Focal

The initial questions isn't shown, the asterisk prompt is not shown until after some keys are pressed and the initial code is not removed.

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.