#core #terminal #emulator

dmd_core

AT&T / Teletype DMD 5620 Terminal Emulator - Core Library

7 unstable releases (3 breaking)

✓ Uses Rust 2018 edition

0.6.3 Dec 31, 2018
0.6.2 Dec 30, 2018
0.4.0 Dec 20, 2018
0.3.1 Dec 19, 2018
0.2.1 Dec 10, 2018

#10 in Simulation

Download history 8/week @ 2019-04-06 3/week @ 2019-04-13 8/week @ 2019-04-20 1/week @ 2019-04-27 8/week @ 2019-05-04 10/week @ 2019-05-11 24/week @ 2019-05-18 7/week @ 2019-05-25 7/week @ 2019-06-01 42/week @ 2019-06-08 16/week @ 2019-06-15 26/week @ 2019-06-22 14/week @ 2019-06-29 59/week @ 2019-07-06

59 downloads per month

MIT license

1MB
10K SLoC

AT&T DMD5620 Core

Build Status

Core logic for an AT&T / Teletype DMD 5620 terminal emulator

Description

The AT&T / Teletype DMD 5620 terminal was a portrait display, programmable, windowing terminal produced in the early 1980s. It came out of research pioneered by Rob Pike and Bart Locanthi Jr., of AT&T Bell Labs.

DMD 5620 Terminal

This project implements the core logic needed to emulate a DMD 5620 terminal, including:

  • ROM
  • RAM
  • WE32100 CPU
  • I/O

Note that there is no user interface: This is a back-end library only. It may be used as a component to build a fully-fledged emulator, however.

Changelog

0.6.3: Bug fixes: Video Ram starting address was not being updated correctly for video ram read; Implement read_word for DUART (needed to run gebaca)

0.6.2: Fix UART character delay timing.

0.6.1: Fix failing tets.

0.6.0: Breaking change. Refactor DMD a bit to rename the function read to read_word, and added a read_byte function as well. Also refactored the CPU mnemonic lookup to be more efficient using a lookup table instead of a HashMap. Lastly, fixed a bug in the DUART that set the wrong delay for one baud rate.

0.5.0: Non-breaking but major change. dmd_core now presents a C compatible API to make interacting with C and C++ code easier, without needed to write a full stub library.

0.4.0: Breaking change. TX to the keyboard from the terminal is now supported, so that clients can use it to detect when a bell (^G) request has been sent.

0.3.1: Added exception handling for memory errors, and a run function to free-run the CPU for a given number of steps.

0.3.0: Breaking change. Charater RX from RS-232 and keyboard are now handled by internal queues, and no longer return DuartError on failure.

0.2.1: Initial release.

Emulator Reference Implementations

Two implementations of DMD 5620 emulator use this core library.

A Windows native application is in the works.

Dependencies