Copyleft HUMONGOUS CP/M Archives
При поддержке журналаRadio Magazine
RU | EN

CRISS CP/M

CRISS CP/M Project Status

CRISS CP/M is the special open project with the main goal: to do really 8 bit homebrew personal computer that can be assembled without any development boards, MCU platform, etc. It must be a computer that anyone can solder from the heap of IC chips and some MCUs. And it must not be "retro" computer, it should be modern computer for hobbyist having basic skills in the electronic.

CRISS CP/M Hackaday

To make this computer comfortable and useful there were postulated some basic rules:

  • it should be single-board device - as simple as possible;
  • there must not be any 0.5mm SMD components - don't think that everybody can mount them;
  • as few components as possible - balancing complexity and functionality;
  • it should be computer no "custom" interfaces and internals: standard (means one producing or easily purchasable now) monitor, keyboard and printer must be supported, standard OS is assumed;
  • computer should have clear internal architecture;
  • the project should be open hardware and open software;
  • and it should not be just a funny toy, it should allow some practical use

CRISS CP/M did this trick. Almost all already done but work is is still in progress, please refer to this page concerning project steps.

To make this computer comfortable and useful there were postulated some basic rules:

  • it should be single-board device - as simple as possible;
  • there must not be any 0.5mm SMD components - don't think that everybody can mount them;
  • as few components as possible - balancing complexity and functionality;
  • it should be computer no "custom" interfaces and internals: standard (means one producing or easily purchasable now) monitor, keyboard and printer must be supported, standard OS is assumed;
  • computer should have clear internal architecture;
  • the project should be open hardware and open software.

CRISS CP/M did this trick. Almost all already done but work is is still in progress, please refer to this page concerning project steps.

Developing

CRISS CP/M

Project has started in 2020, thanks to the lockdown. The basic principles were clear: CP/M and the set of AVR MCUs. But there were some challenges that have to be solved:

  • Z80 emulation: AVR and Z80 have totally different code systems, so it was an interesting task how to emulate 4MHz Z80 using 20 MHz AVR;
  • VGA controller: are you ready to build 25 MHz device using 20 MHz CPU? But this task was solved without overcloking and 25x80 characters monochrome VGA output appeared;
  • internal structure: internal bus, internal ports, etc. and make all this stuff fast enough;
  • to do a PCB that can be made at home: CRISS CP/M PCB has only 2 sides and 0.5mm tracks!

To the end of the 2020 computer was created, first time assembled, Z80 emulator passed "z80 Instruction Exercizer" test and that was a real win. The famous and leading Russian journal "Radio" requested one for testing and after that announced CRISS CP/M it in the iss. 12/2020!

From the January to March 2021 there was a hard work polishing it: making drawings for the panels (panels you see now is 3rd generation!), removing bags from the PCB (18th generation), refactoring ths firmware (there are 4 MCUs on the board!), etc.

Current status of development: 100% hardware stable version, just enjoy it!

Publishing

CRISS CP/M is open project and all its details will be published for free use. This work is permanently in progress but it will be done.

SubjectDescriptionStatusDate
First local announcementAnnouncement in Russian Radio journalPublishedDecember 2020
Detailed descriptionThe most detailed description appeared in Russian Radio journal, only Russian language, sorry!PublishedJanuary-June 2021
Support websitewww.criss.fun website launched during May 2021 collects all info and software for the projectSupporting up-to-dateMay 2021
International announcement in EnglishThe project page at HACKADAY.IO launchedSupporting up-to-dateAugust 2021
International support in EnglishEnglish version of the www.criss.fun website appearedWIPSeptember 2021
DIY kitsDIY kits for self-assemblingReady to orderSeptember 2021
TINDIE shopDIY kits for self-assembling at TINDIE shopComing soonOctober 2021 Expected
FirmwareFirmware and bootloaders for the MCUsPublished wt www.criss.funMay 2021
Firmware source codeFirmware and bootloaders source codes for the MCUsPublishing now at github.comOctober 2021 Expected

CRISS CP/M Radio journal covers

BIOS customization

The most advantage feature of CRISS CP/M computer is that all BIOS, BDOS and CCP procedures are supposed to be written on the level of CPU MCU firmware that would give unbelievable 60 Kb TPA, great performance and "native" communication with modern technologies.

Currently OS CPM 2.2 is 100% handles by the AVR code, next step will be CPM 3.0 support. All functions support CRISS CP/M hardware. For the user programs standard method af BIOS calls is used.

FunctionNameFeatures/ EnhancementsLocationDate
0BOOTCold start, returns to CCPFWMarch 2021
1WBOOTWarm start, returns to CCPFWMarch 2021
2CONSTConsole statusFWMarch 2021
3 CONINConsole input - can be mapped to UART, LPT or LAN channels for remote control FWMarch 2021
4CONOUTConsole output - can be mapped to UART, LPT or LAN channels for remote controlFWMarch 2021
5LISTPrinter output - can be mapped to UART, LPT or LAN channelsFWMarch 2021
6PUNCHUser device output - can be mapped to UART, LPT or LAN channels, may be used for LAN communication between two CRISS CP/M computersFWMarch 2021
7READERUser devise input - can be mapped to UART, LPT or LAN channels, may be used for LAN communication between two CRISS CP/M computers FWMarch 2021
8HOMEHome FDD - does nothingFWMarch 2021
9SELDSKSelect disk FWMarch 2021
10SETTRKSet track FWMarch 2021
11SETSEKSet sector FWMarch 2021
12SETDMASet DMA buffer address FWMarch 2021
13READRead 128b sector - can be mapped to UART, LPT or LAN channels FWMarch 2021
14WRITEWrite 128b sector - can be mapped to UART, LPT or LAN channelsFWMarch 2021
15LISTSTPrinter status - can be mapped to UART, LPT or LAN channels and may be used to read data from RS-232 LPT channelFWMarch 2021
16SECTRANSector translation - does nothingFWMarch 2021

BIOS code level also is responsible for the hardware terminal emulation: console and printer i/o routines call special hardware compatibility firmware library.

BIOS for the CP/M 3.0 is coming!

BDOS customization

After the BIOS next step is to move BDOS on the AVR level, Work is in progress, it is not so clear how to implement CP/M filesystem behavior because many programs use internal data structures directly. Coming soon, hope that it will be done till the end of 2021.

Under construction

CCP customization

After the BIOS and BDOS the next step is to move CCP on the AVR level and expand it with new functions. Work is almost done, but waiting for BDOS is processed. Coming soon, hope that it will at November 2021.

Feb 2022: custom CP/M build with sources is published!

Hardware support

Robotron 1715

CRISS CP/M has its own terminal settings but it also may pretend to be another hardware platform. For the each platform for following processing is applied:

  • esc-sequences for console output;
  • custom character set with symbols decoding;
  • standard ports behavior emulation.

The only strict limitation is that video-RAM is always located at F800h.

Many thanks to all people who have spent time and efforts and carefully preserve for us technical data and spirit of first personal computers and shared this information in the Internet!

Supported terminals for now (text mode only!):

TerminalSupported featuresKnown problems
CRISSAll featuresNo
Robotron PC1715ESC-sequences, port 12, inverse attribute (console output only), Russian codepageBrightness and blinking attributes
Kaypro IIESC-sequences, inverse attributeBrightness and blinking attributes, some programs don't work correctly, need help to resolve that
TRS-80ESC-sequences, inverse attributeBrightness and blinking attributes, some programs don't work correctly, need help to resolve that

Author would kindly appreciate any support concerning improvement of hardware terminal compatibility!

© Copyright Radio / Радио / OGSS / НГСС / I. Reshetnikov / Решетников И.С. 2020-2022