Newbrain Hardware emulation for Mist

Great news, there is available a newbrain implementation for the Mist Fpga by Carlos Palmero.

It supports the 32Kb and the EIM with CP/M.

An FPGA implementation of the Grundy NewBrain (1982) for the MiST, Calypso, SiDi and Poseidon boards. It runs the original ROMs, including the COP420 keyboard/display microcontroller and the disk controller’s own Z80, and boots BASIC and CP/M 2.2 from EDSK disk images.

Features

  • Z80 at 4 MHz (T80), with the whole memory map (ROM and RAM) in SDRAM.
  • Real COP420: the original COP ROM runs on a COP400 core and handles the keyboard, the 16-character display and the 50 Hz timer.
  • Video: 40 and 80 column text, pixel graphics, reverse video and the 256-character mode, with an OSD choice of phosphor colour and aspect.
  • Tape: .bas/.bin files from the OSD, or real audio on the audio input.
  • Expansion Interface Module: paged memory from 96K to 768K and the paged operating system with its main menu.
  • Disk controller: a second Z80 running the original controller ROM with a uPD765, reading EDSK images. CP/M 2.2 works both on the 32K machine (cpm from BASIC) and on the 64K paged system (from the main menu).
  • Optional, off by default: the two serial ports, tape motor remote, and a 16×2 I2C LCD (Arduino LiquidCrystal_I2C module) showing the display text.
  • Disk image tools: Teledisk to EDSK, PC folder to bootable CP/M disk, and raw dumps to EDSK.

Implementation https://github.com/shaeon/newbrain

4 thoughts on “Newbrain Hardware emulation for Mist”

  1. I would appreciate a lot if someone having an actual NewBrain computer to run the following basic program:

    300 CALL 62383
    400 K=0
    500 K=K+1
    530 A=K^2
    540 B=LOG(K)
    550 C=SIN(K)
    600 IF K<100 THEN 500
    700 CALL 62399,MS
    750 PRINT "ELAPSED SECONDS: ",MS/50
    800 END

    Ideally, I would like from you to run it at least 4 times and post your results here.
    That will help us to adjust the core in order to be more accurate!

    Thanks in advance!

  2. VFD on
    Run 1 elapsed 6.98
    Run 2 elapsed 7.06
    Run 3 elapsed 7.14
    Run 4 elapsed 7.2
    Run 5 elapsed 6.4 (after put 31 that clears the screen)
    So it depends of how many chars the screen is showing. That is the busrq/busack. if a line has a1 char then the video circuit enables the cpu after that char, it does not wait for the line to end.
    with put 31:run elapsed 6.38 every time no chars on screen
    with vfd off the same results so the only the chars on the screen affects the result.
    with list (so the listing is displayed) i get 7.3 secs

Leave a Reply