Git Product home page Git Product logo

cpm-uno's Introduction

CP/M 2.2 Port for ZXUno

This repository contains vanilla CP/M 2.2 ported to ZXUno. It uses RCPR CCP replacement.

It uses +3DOS volumes on divMMC as CP/M's partitions and Timex Hi-Res video mode for 80 characters text output

This software still in development and can be unstable!

Development

I'm using Zesarux emualtor, sjasmplus assembler and VSCode with DeZog plugin.

Project contains already preconfigured enviroment for development.

In Zesarux I've enabled speccy +2A with MMC emulation via divMMC but without divMMC paging.

You can also use +3e roms to check how it works with basic volumes.

MMC card should have +3DOS volumes. Most important things are - SD card should have these volumes:

  • CPM.A(case sensitive - important create them in uppercase, 8 megs size - cause CP/M 2.2 limitations)
  • CPM.B(similar)
  • CPM.C

Only CPM.A volume is mandatory but it easier to use with 3 drives.

Current state

CP/M boots in emulator(still not tested in real HW), uses 80 symbols per line video mode and works with +3e volumes. I've checked mbasic, zork and some other small utils.

Terminal

Currently, implemented ADM-3 compatible terminal(like KayPro).

Implemented control codes:

  • 0x01 - Home cursor
  • 0x0A - new line(works like cursor down)
  • 0x0C - clear screen
  • 0x0D - CR(just returns cursor to first character position in line)
  • 0x14 - cursor up
  • 0x15 - cursor down
  • 0x16 - cursor left(similar to backspace)
  • 0x17 - cursor right
  • ESC+=+YX - set absolute position on screen

Keyboard

Arrows work like ADM-3A(CTRL+hjkl), backspace will send 0x7f code(bdos line editor patched for handling it right).

CTRL key is implemented as EXTENDED key(in ps/2 keyboard - TAB or CS+SS on ZX keyboard).

ZXUno UART(WiFi)

You can access ZXUno's UART via IOBYTE handling. Uart accessible via TTY device, when console is CRT(honestly, any other devices are console).

Kermit that works via IOBYTE should work without problems. If you'd like talk to ESP - you should remember that it requires CRLF for commands(after pressing enter you should add CTRL+J).

Porting possibility

If you'll drop off timex screen driver and replace it with usual speccy screen driver - it should work out of the box with Speccy +2A/+3 with divMMC as +3e drive.

Porting to other hardware will require a bit more work.

Used third party components

I've used some 3rd party components:

  • ZXLDR's keyboard driver was used as reference
  • ZXMMC driver as reference for loading +3DOS partition table
  • Chloe Sans 6x8 font
  • DR's BDOS
  • ZCPR as CCP replacement

License

See LICENSE for details.

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.