Description | Download | Changes | Home


(gnc100em window)


nc100em is an Amstrad NC100 emulator. (It also has NC200 support, but this is less complete.) It supports both the ROM software and my free CP/M-like replacement OS ZCN. There are actually four separate versions:

snc100em obviously requires Linux. The GTK+ and Xlib versions should work on any POSIX-ish Unix box with X (and GTK+, in the former case), though I've only tested it under Linux. tnc100em should run on anything those two run on, except it doesn't need X. :-)

Associated programs also included are `makememcard', a simple shell script to make a blank memory card image, and `zcntools', an mtools-like set of utils for reading/writing memory card images in ZCN format.

nc100em uses the Z80 emulator from Ian Collier's `xz80'.


The current version is 1.2, available from ibiblio.


This excerpt from NEWS lists the changes from nc100em 1.1 onwards.

Changes in nc100em 1.2

NC200 support, which you can enable using the `-2' option. It's still a bit experimental, but I think what's there is fully working. It supports (as with the NC100) serial I/O on stdin/stdout, parallel output, the memory card, but *doesn't* support the disk drive. Or the backlight. :-) (NB: Currently the NC200 isn't supported in the Xlib version - just in the GTK+ and svgalib versions.)

GTK+ version:

Pound sign (XK_sterling) didn't work in X versions. Whoops. :-) Thanks to Steven again for pointing this out. (Also similar fix for Caps Lock, but while that does now kind-of-work, it doesn't work very well.)

Doubled default refresh rate.

Fuller NC100 RTC emulation, including the two spare RAM pages.

Now uses value of $NC100EM_HOME (if set) instead of ~/nc100 for dir containing nc100.rom, nc100.ram, etc.

You can now identify from an NC100 program that you're running in nc100em. (Though it's pretty obtuse, as it has to be - see the man page for details.)

Previously, zcnformat had no effect if you didn't compile with USE_MMAP_FOR_CARD enabled.

zcnren didn't previously check if the new filename was taken - it does now.

Changes in nc100em 1.1

New GTK+-based version (gnc100em), supports runtime change of scale, and has the NC100 screen in a scrollable window, so you can use a scaled-up display without needing to accommodate such a wide window as with xnc100em.

You can now set the default scale with `-S'. Only the GTK+ version takes notice of this currently.

Added support for bitdepths other than 1-bit and 8-bit to xnc100em. Thanks to Steven Flintham for pointing this out (bizarrely, I seemed to have neglected to mention it in any docs). It's not as fast as it could be, but it should at least work on all bitdepths.

Made xnc100em's display differential like the svgalib version, so it only outputs lines which need to be output.

Added parallel printer support. If any printing takes place, the raw output is dumped in ~/nc100/printout.dat, appending output onto the end of the file if it already exists.

The stop-dead key is now F8 in all versions, with F10 now doing the `nice' context-saving exit. (Using F5 for a context-saving exit still works though.)

New `-m' option, causes modification of `colour' key messages in (real) ROM (no effect when using builtin ROM), to make them more understandable when using nc100em. For example, with `-m', nc100em changes "YELLOW & RED" to "INSERT & LEFT".

xnc100em now supports `delete window' message from window manager - it acts like F10 (doing a graceful context-saving exit).

Serial support is (apart from in tnc100em) no longer enabled by default; you have to specifically choose to have it, with the `-s' option. I think this makes a lot more sense than the old behaviour, which in retrospect was pretty broken.

Fixed an embarrassing bug in xnc100em (inappropriate code left over from xz80) which meant you couldn't use the left shift key to uppercase alphabetic chars. What can I say, except possibly that I use the right shift key... :-) Thanks to Steven Flintham for pointing out this bug.

Fixed the old bug where xnc100em wasn't redrawing in some circumstances.

Added support for left-win as `Function' in the svgalib version - probably preferable to using Insert :-), but only works on a Win95 keyboard. Similarly, added support for Super/Hyper modifiers as alternative ways of getting `Function' in the X versions - so on a Win95 keyboard under XFree86, you can use the win or menu keys to get it.

Renamed svgalib version (formerly `nc100em') to `snc100em'.

Last updated 2001 Jun 8