Git Product home page Git Product logo

asig / kosmos-cp1 Goto Github PK

View Code? Open in Web Editor NEW
6.0 4.0 2.0 51.77 MB

An emulator for the Kosmos CP1 "Computer Praxis" experimental kit that was sold in german-speaking Europe in the early 80s of the last century.

License: GNU General Public License v3.0

Groovy 0.54% Assembly 23.17% Makefile 0.11% Shell 0.13% NSIS 0.86% Java 75.18%
kosmos-cp1 emulator assembler simulator vintage retro retrocomputing kosmos cp1

kosmos-cp1's Introduction

KOSMOS CP1

What's this?

This is an emulator for the Kosmos CP1 "Computer Praxis" experimental kit that was sold in german-speaking Europe in the early 80s of the last century.

The Kosmos CP1 was intended to introduce children to programming. To do so, it used a virtual machine with a very simple machine language. Programs were written in Assembler, and then had to be manually translated to op-codes. The computer was accompanied by a pretty good manual that not only explained the virtual machine, but also contained a well written introduction to the inner workings of a computer.

Unlike other programs, kosmos-cp1 does not only simulate the Kosmos CP1's virtual machine, but is a cycle-exact emulation of the underlying hardware (an Intel 8049 and an Intel 8155). Therefore, you'll get the "full" CP1 experience, and can also run the demo programs described in the manual, "9 RUN" and "8 RUN".

What is currently emulated?

The current version emulates the following components:

  • CP1 base unit
  • CP3 memory extension
  • CP5 universal input/output interface

The CP2 cassette interface is not emulated yet, but memory can be read from and written to files.

Additional features

For your convenience, the emulator comes with an integrated assembler for CP1's assembly language. If you ever wrote assembly code (and I bet you did if you're interested in this emulator :-) ) you will have no problems understanding the syntax. Also, a lot of the sample programs from the manuals are included.

Further reading

You can find scans of all the manuals at http://www.retrozone.ch/cp1/

Building and running

./gradlew run

Usage

After starting the Kosmos CP1 emulator, you see 2 windows:

  • The "CPU" windows containing:
    • The disassembly of the Kosmos CP1's EEPROM,
    • the complete state and memory of the main Intel 8049,
    • the complete state and memory of the main unit's 8155, and finally
    • the complete state and memory of the CP3's 8155.
  • The "Panel" window that shows the display and controls of the CP1 main unit, as well as the LEDs and switches of the CP5 universal I/O interface

Additionally, there is an "Assembler" window (not visible after startup) that you can use to write programs in CP1 assembly language.

CPU Window

The emulator will start in "trace execution" mode. This means that the state is constantly updated in the CPU window, with quite a large impact on the speed of the emulated system. You can turn this off with the checkbox in the toolbar.

Also, the CPU window features a simple debugger that lets you single-step through the exection, set breakpoints (double-click on the disassembly line), and break on certain instructions (currently only MOVX).

Panel Window

Not a lot to say about that. It tries to reproduce the actual CP1 as closely as possible (and looks IMHO way nicer than the simulators out there :-) ).

Assembler Window

TODO write something up

Loading and storing programs

TODO write something up

Resources

kosmos-cp1's People

Contributors

asig avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  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.