Git Product home page Git Product logo

vic-8080's Introduction

8080-CPU emulator for the VIC with Ultimem expansion + SD2IEC drive

This is just a sketch of it to see how it could work out. So far it amounts to 2.8K compiled code and it looks like the emulated code would run at least 5 to 10 times slower.

Requires GNU Make and CC65 to build.

Why!?

The number of applications for CP/M-80 is overwhelming.

How it is supposed to work

8080-CPU emulation

The emulator is basically a loop that fetches an opcode that is used as an index into a jump table to call the procedure that emulates that particular opcode. Two blocks are being used to access the emulated memory. One for optimized, sequential code reads with less overhead for banking and one for slower random data access. BIOS/BDOS calls are caught via an 'illegal' opcode.

This implementation is a hand-compiled version of the C version of https://github.com/superzazu/8080

Terminal

The terminal is a VT52 emulation with 40x24 grid of 4x8 pixel chars. WordStar and Turbo Pascal can be patched to work with this, for example. (Thanks to Polluks for pointing that out.)

Let's see how high the fun level of keyboard mapping will turn out…

BDOS

This is based on xcpm by Gábór Lénart, using the standard C library of cc65. And here is the catch; devices have to support random-access on sequential files, like the SD2IEC does.

BIOS

No support planned unless required or for disk images.

Possible improvements

  • Faster CPU emulation (a bit)
  • Z80 emulation
  • Disk image support
  • Higher CP/M versions
  • GIOS

vic-8080's People

Contributors

svenmichaelklose avatar

Stargazers

 avatar

Watchers

 avatar  avatar

vic-8080's Issues

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.