Coder Social home page Coder Social logo

nealcrook / nascom Goto Github PK

View Code? Open in Web Editor NEW
13.0 5.0 4.0 116.98 MB

Software, utilities and documentation for the Z80-based NASCOM2 computer

Assembly 36.10% Perl 10.42% Shell 0.19% Verilog 0.97% C 15.60% CMake 5.42% C++ 1.43% Makefile 29.85% TypeScript 0.03%
retro retrocomputing z80 microprocessor nascom arduino-sketch polydos

nascom's Introduction

NASCOM

Software, utilities and documentation for the Z80-based NASCOM computers.

  • PolyDos - code and documentaton for this excellent NASCOM operating-system
  • ROM - NASCOM ROM images (monitors etc), most including source code
  • converters - scripts for manipulating NASCOM disk and binary images
  • doc
    • NASCOM 1 RAM expansion (tested) -- see nascom1_expansion for PCB
    • NASCOM 2 RAM expansion (untested)
  • gm808_eprom_programmer - code, photos and documentation for this 2708/2716 EPROM programmer
  • hw_sim - verilog simulation of the NASCOM 1 and NASCOM 2 video sub-systems
  • m5 - a very simple "high-level language"
  • nascom 4 - a NASCOM re-imagined for the 21st-century FPGA age
  • programs - miscellaneous code
  • nascom_kbd - Uses a Raspberry Pi Pico to interface a PS/2 keyboard to the NASCOM
  • sdcard - Arduino-based SDcard storage. There are 2 versions:
    • A version that connects to the serial port instead of a tape recorder, and works with NAS-SYS tape commands
    • A version that connects to the PIO, with all supporting software to run PolyDos and to extract data from your old floppies
    • NEW: a PCB and a detailed user guide
  • nascom1_expansion - a 100mm x 100mm PCB that breaks into pieces to provide sdcard, RAM card and connector adaptors

Projects in planning

At the concept stage..

  • Get NASCOM CP/M running on a NASCOM 2 without the need for a special NASMD PROM

Comments/improvements

  • Email me or use the 'issues' button at the top on the github page.

  • Fork the project and make a merge request

nascom's People

Contributors

feilipu avatar nealcrook avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

nascom's Issues

sddir formatting of pager is messy

the pager ("press space to continue") appends to the last output line instead of being on a line of its own. Tidy it up to make it look neater.

N4 add support for IACK/vectored interrupts

Reminder to finish off the I/O bridge by adding support for interrupt acknowledge cycles. This is fiddly because I don't want to stall the Z80 on every prefix byte (the simple way to do it). So, I will need to turn the bus around and force that prefix byte out just to satisfy the PIO/CTC. However, it's important.. a key reason for building a real board was to allow vectored interrupts (if only to be able to say: take that, emulators!)

ARDUINO SDCARD / POLYDOS

Hi Neil,

Earlier this month I remembered the box in the loft containing the Nascom 2, Memory Card & AVC that my Dad bought for us 40+ years ago. I doubt it had been powered up since the mid-80s when the BBC micro and then IBM PC arrived. Unsurprisingly it did not work but I am well on the way to getting the main board operational - a few 74 devices were not working and the video and IO PROMs were dead (just waiting for some replacements to program). Amazing how much I can remember about the NASCOM after so long! And surprised to find so many other people who have some enthusiasm for it.

While I was waiting for parts I was thinking about building a solid-state store based on a Netduino that I had lying around but then I stumbled on your Arduino / POLYDOS solution. I noticed that you say you might have a spare PCB and could supply the POLYDOS EPROM. I would like to get hold of these if possible. Also after a NASSYS3 ROM. I can get loan of a DATAMAN 48PRO which I will use to blow the Video and IO PROMS so could do the EPROMs myself at the same time if necessary. Happy to send parts / transfer money in whatever combination works best.

Thanks for any help you can provide.

David Robinson
[email protected]

N4 NAS-DIS corrupted alternate screen

When I was playing the NAS-DIS and its ability to support an alternate screen and swap between them, I saw a problem where the top line of the alternate screen was corrupted. Need to characterise this properly and figure out what causes it (maybe simply pilot error)

setdrv does not complain about non-existent file

setdrive 3 FILE.BIN

expects FILE.BIN to exist and blindly opens it by name. If the file did not exist it gets created and is zero-sized which causes havoc when you try to do eg a DIR on it.

It's a Known/defined behaviour of the code on the arduino that it responds to an open in this way, so the bug is in the z80 utility. I already coded a kinda-fix for this in the PolyDos ROM TSTDSK routine and just need to replay it here. Alternatively, think about creating a new command on the arduino to handle this

N4 Cannot start CP/M after changing the font

If you cold-start and use a menu entry to change the font, then use a menu entry to go to CP/M, the keyboard doesn't work (or maybe the screen is not mapped so that the keyboard does work but you cannot see it)

If you cold-start and use a menu entry to change the font, then reset (font is not affected) then use a menu entry to go to CP/M, the system works fine.

Seems as tho the font-loading menu sequence is leaving the address mapping in a bad state?

Nascom-2 on an ESP32

Hi Neal,

I couldn't find your e-mail, so I'm filing an 'issue', which isn't really an issue :)

I just came across your repo the other day. What you're doing (Nascom-4) is super cool.

Back in 1980, I built my own Nascom-2 and basically owe my career to this wonderful machine. Recently, I pulled it down from my Dad's loft, and powered it back up. It still ran! 40+ years later. The casette deck didn't. Rubber bands and acrylic gears doesn't last forever, I guess.

Anyways, a couple of months ago I decided to build a replica based on the ESP32 MCU. The project turned out better than I had expected. I'll be demo'ing it at the Vintage Computer Festival here in Silicon Valley tomorrow.

In case you're interested, I uploaded my code and a first cut at documentation today:

https://github.com/PeterJensen/nascom-esp

In case you're interested.

I forgot to mention, that I've also been trying to restore my stack of old casette tapes. Decoding 1200/2400 Hz audio reliably was a bit of a challenge. I wrote a bunch of python code to do it, and it seems to sort-of work:

https://github.com/PeterJensen/nascom-tape

All the best
Peter Jensen

How to add Intel HEX as an optional assembly listing mode?

I'm using Zen with the RC2014 NASCOM Basic, and I'd like to have it produce Intel HEX as an optional assembly listing mode.

I understand that Zen already produces a tabulated object format output which is close to HEX (key ->A->C), and with your perl tools it is easily convertible to HEX. But, it would very be nice to be able to go directly from a captured HEX output to loading it back into the machine without intermediate processing. This would allow larger programs to be built, and would simplify usage for me (and hopefully others too).

I'm quite happy to write the option and submit it back via PR, if you'd prefer. But, currently the only source I have has no comments so is challenging (to say the least) to understand where is the best place contribute.

Could you please give some guidance on where to start in the code to achieve this outcome?

Just to note I've modified my forked source format to assemble with z88dk-z80asm (just changes to text quoting and the OR symbol) rather than self assemble.

Cheers, Phillip

N4 PS/2 keyboard doens't reset reliably

PS/2 keyboard resets ok on 1sr power-up but after a power-cycle it often does not work
This was never a problem wirth the original PS/2 code on my Grant-derived 6809 system, so I may have introduced a sensitivity in my changes for NASCOM support. I think I'll need to add some pin observability to track this down

N4 pascal does not warm-start

Pascal starts up OK from the SBR cold-start menu, but does not start up again when the warm-reset button is pressed.

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.