CP/M computer on Arduino Nano 3.0

Project news:

  • connected two FRAM chips (32 KBytes each), and made auto-configuration of chips (they can be up to 8) on banks, so that these two chips filled zero bank RAM
  • untied the hardware I2C from interrupts (by rejecting the use of Wire.h)
  • untied work with UART from interrupts
  • from interruptions I got off for good reason - timer 1 after these tweaks allowed to generate the horizontal line frequency for output on TV; I was able to select a set of assembler commands that would allow one pixel to be output in 7 cycles of the processor (where the characters are taken from the character generator - an array in flash memory, but not the screen buffer in RAM), and this at 56 μs of the active part of the line will give 128 pixels, e. Arduino Nano (one !!!) can both emulate and output to the screen through the composite TV input 24 chars in row with 5 x 8 font, although losing a few in performance (but still not to that the ZX80 of Sir Clive :-))
  • rewrote emulation code, saving a few kilobytes of flash
    To be continued (and a new version of the code on the GitHub, as well as a edited description (in russian) at Мой самодельный компьютер на Arduino Nano под управлением ОС CP/M | Мои увлекательные и опасные эксперименты)