GithubHelp home page GithubHelp logo

eriktier / romt102disassembly Goto Github PK

View Code? Open in Web Editor NEW
4.0 2.0 1.0 2.21 MB

A little hobby project aiming to recreate a fully documented assembly source listing of the OS ROM in the TRS 80 Model 102 portable computer

Assembly 99.34% Rust 0.66%
trs-80 m100 t102 8080 8085 os rom

romt102disassembly's Introduction

Rom T102 Disassembly

This is a little hobby project aiming to recreate a fully documented assembly source listing of the OS-rom in the TRS 80 Model 102 portable computer.

The starting point of this project is the excellent work done by Ken Pettit, John Hogerhuis, Jerome Vernet and Stephen James Hurd, who maintain the Virtual T emulator. This includes a documented disassembly of the Model 100 (the predecessor of the 102). In addition to this Ken has made an even more extensively documented version in 2013.

In this project, I'm merging the disassembly of the 102 OS-rom (which includes bug fixes) with the documented versions of the 100 OS-rom.

Based on this documented T102 OS-rom disassembly, a new version will be constructed with labels and even more documentation, that can be assembled back into an OS-rom image that is identical to the original rom.

Goals

The goals of this project are:

  • to create fully functional and 'working' documented source code of this historically significant machine (the M100 and T102), which famously was the last project for which Bill Gates (with Jey Suzuki) himself wrote and tested a big part of the OS and system software. In addition to this, the M100 is considered to be (one of) the first true laptop computers. Here's an interview with Bill Gates about the M100: http://www.nausicaa.net/~lgreenf/bill.htm;
  • to form the basis for experimentation with custom OS-Roms that can be used in VirtualT or in the actual hardware using the REX Classic. This hardware extension allows replacement of the OS ROM with a custom rom image in flash memory;
  • to facilitate the study of the internal workings of computers using a non-trivial, real-life use-case that is small and simple enough to be understood by a single person.

Tools of the trade

The following tools are used on this project:

  • My trusty T102 with REXClassic and Cleuseau/ROM2 opt-rom: There is nothing like using the real thing to quickly run a hex-dump or disassembly (using the Cleuseau/ROM2 opt-rom);
  • VirtualT: this emulator includes an IDE, Assembler, Dis-assembler, Debugger and Monitor. These are indispensable in testing whether the new assembler source code reproduces the exact identical ROM image;
  • Visual Studio Code: This excellent editor is used as the main editor for the assembly files. It helps greatly with the editing, but also allows quick navigation and documentation previews on all addresses and labels in the source code. The built-in diff tool has been instrumental in merging the M100 documentation to the T102 dissassembly;
  • Intel 8080 Macro-Assembler plugin: this Visual Studio Code plugin does syntax highlighting, which helps a lot.

Standing on the shoulders of giants

This project is only possible because of the previous (and current) work of a lot of people. This includes:

Books:

  • 'Model 100 ROM Functions (700-2245)' by RadioShack: a book that documents all the ROM functions provided by the M100/T102 OS rom.
  • 'Inside The TRS-80 Model 100' by Carl Oppedahl (ISBN: 0-938862-31-6): a great book that documents the internal workings of these machines to great detail.
  • Intel 8080/8085 Assembly Language Programming, by RadioShack/Intel: a book containing all you need to know to learn coding in 8080/8085 assembler.

romt102disassembly's People

Contributors

eriktier avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

mccabet

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.