PICL National Industrial Basic Language computer by Karen Orton

I’ve just done a small PCB for Karen’s 2007 PICL design, which is an SC/MP emulation in a PIC, running the genuine National NIBL interpreter code from 1976. Karens SC/MP emulation is cycle-perfect and enables a two-chip genuine NIBL machine to be built very cheaply and easily.
The PCB is under 3" square and has all the Flag and Sense lines brought out to LEDs, buttons and a header, and talks via the usual USB-to-serial CH340 module rather than Karens original MAX232. The chips are a 6264 static RAM and a PIC16F877 (I dont think an ‘877A’ will work).

For anyone fancying a look at NIBL or a trip down memory lane, this computer is really simple to make. Its nice to make one of Karens many projects as a tribute to all she achieved.

Here’s a video:

https://www.youtube.com/watch?v=Hv-_9tpXeqA

The channel also has a video of the strip-board version, another running a Geoff Graham terminal chip and one using a re-coded Xbox chatpad keyboard.

Ultimately I’ll post the gerbers but first I need to check some changes I made for the next batch (If there is a next batch! ). The change is minor, just repositioning the serial board so its flush against the edge of the PCB. Its electrically identical but I’d like to test one first.

If anyone would like a board, please email me and I’ll send a PCB at cost, strictly non-profit.

Here’s Karens original PICL page from 2007:
http://techlib.com/area_50/Readers/Karen/micro.htm#PICL

Cheers
Phil email: рhі[email protected]аlk21.соm
Note that to avoid spam, the address above is unsearchable text & cant be copy-&-pasted into the ‘to’ field, you need to manually retype it.

2 Likes

A splendid project, thanks for sharing and for the links.

I see there’s a collection of signposts to threads about her other published (retro) micro projects here:
The Computer Projects of Karen Orton - UK Vintage Radio Repair and Restoration Forums

Yes Tim has posted a handy reference, its not absolutely complete but most of Karens projects are listed. Frustratingly, however, its almost impossible to post anything on that particular forum without being moderated - the mods will even remove an off-topic sentence from within a post, often ruining the flow of conversation. This is why many former members are posting elsewhere.
Karen asked that her projects be preserved and I noticed that her techlib.com site has a few broken links and missing photos. I took the liberty of taking a mirror, replacing missing pictures and repairing links. This mirror isnt published, but its safe.
Cheers
Phil

4 Likes

I think it’s all there on archive.org, though

I’ve a soft spot for Karens two-chip marvel and I’ve been having a lot of fun with it lately. I have PAGE2.SYS running on the PICL, obviously some commands such as SAV & LOD (save/load to cassette) PRN (print) etc wont work as the hardware isnt there, but the commands DIR, DMP, CHM, ASM, NIB etc all seem to work perfectly. However whilst it does work, a serious PAGE2.SYS machine really needs more memory, PAGE2.SYS occupies the whole of page 2, and the ASM function nabs page 1 for a symbol table, leaving nowhere for ASM source or NIBL programs
The PICL isnt easily expanded as the port pins that would be A13 onwards (to take it above 8kb) are already used for /CE, /RD & /WR.

Consequently I thought I might have a crack at a smaller, PICL-specific resident machine-code monitor, something more like the old NS Kitbug would be ideal. One k should be enough for quite a capable monitor, and located right at the top of NV memory (say at #2C00) it would leave 3k free in page 2 and 4k in page1 - very little impact for the gain. Available any time by typing LINK(#2C00). You’d have to be careful with the length of page2 programs as NIBL has no concept of ‘reserved memory’ but 7k goes a long way!

Key to all this is replacing the 8k static ram with a pin-compatible 48Z08 NVRAM. For my second board I found the 48Z08 NVRAM is now out of stock at RS, so I’ve since been using the Maxim DS1225AD which is pretty much identical.
These last two weeks an accident-enforced lay up gave me the opportunity to create a smaller, simpler PICL-specific machine-code monitor to complement NIBL. It takes advantage of the NVRAM swap so (barring a catastrophe!) is permanently in memory ready to go.

This is after all a SCAMP and in its day, 8k of RAM, 4k ROM BASIC and a resident machine-code monitor is quite a respectable spec for a late 70’s computer based on just two chips!

and a bit of a demo here, though a few more commands have been added since: https://www.youtube.com/watch?v=3DpUGntVPQ8

I called the monitor KitBugPlus and it has the usual Display, Modify, Go, Type, List, Regs, & ? (help) commands, and an ‘N’ to return to NIBL.

I’ve done some documentation and a loader, all on http://philg.uk

Cheers
Phil
Cheers

1 Like

I do like to see a machine code monitor!

Interesting to see you use LINK there as a means of calling machine code - reminiscent of Acorn’s Atom, I think. Is there a connection or is that a coincidence? (Edit: see also discussion elsewhere)

Hi Ed,
The PICL uses the actual National Semiconductors NIBL interpreter SC/MP code from 1976 so it pre-dates Acorn by a long, long time! NIBL was described fully in Dr Dobbs Journal back in Nov/Dec 1976, I think they chose the keywork ‘link’ as they envisaged it being used to add extensions to the language.

I’ve since added an Intel hex loader to the PICL firmware, this is independent of NIBL or the monitor as its pic code in the 16F877. Consequently it can be used to load anything that will fit, including of course KitBugPlus or any other sc/mp machine-code programs or data.
Hex loading is down the console port so its just a case of ‘Send File’ from Teraterm.

The more I tinker with the PICL the more I like it, its so versatile ! :slight_smile:
All this is on http://philg.uk

Cheers
Phil

2 Likes

First published in 2007 as a simple, dedicated National Industrial Basic Language computer, Karen’s original project has evolved to the point where it really deserves a “Version 2 “ title, if only to encourage early adopters to revisit this fascinating design.

Rather than list the changes, here’s a full specification:
1200 baud terminal interface via CH340G USB (for Teraterm etc)
Full and accurate emulation of a 4Mhz SC/MP in a PIC16F877 using Karens cycle-perfect firmware plus omitted instructions
8k bytes of non-volatile static RAM, retaining programs and data during power-off
4k bytes of ROM containing the original National Semiconductors NIBL basic interpreter from 1976
1k Machine-code monitor typical of the period – Modify, List, Display, Hexload, Registers, Go (run) etc
4 controllable output lines with LEDs and interface strip
2 controllable input lines with buttons
Hex-loader reads standard Intel hex files into memory via the terminal (ie Teraterm ‘File, Send’)
Standalone mode, running without a terminal connected, maybe on a powerbank battery.
Cheap, sub 3” square PCB with just two chips
Crystal-clock equates to a precise 4mhz SC/MP II operation

This is probably the simplest possible SC/MP machine, comprising only of the processor and a memory chip, but its resident monitor and BASIC interpreter make this an ideal introductory project for anyone with an interest in the SC/MP and its applications.

There are no changes to the PCB and upgrading is simply a matter of swapping the RAM chip, updating the PIC software and loading the SC/MP monitor.
KB+ commands:
Intel hexloader, Txxxx = type memory, Mxxxx = modify memory,
Dxxxx = display memory, Lxxxx = list memory (opcode-formatted),
Gxxxx = goto program, R = display registers,
N = enter NIBL basic interpreter, Help is ‘?’.
It has other software bits & bobs such as breakpoint handling, register set & examine and a neat inline-print routine.
The Intel hexloader will directly accept the output of SBASM or AS, etc.
With SBASM use “.tf myfile.hex,int,32” in the source header.
V2 has a stand-alone mode where SC/MP machine-code programs can be run without a terminal connected, using (say) a power-bank phone charger. With its two sense inputs, four flag outputs, and program retention during power-down, it can be a simple standalone controller!
The files and a PICLV2 document are on http://philg.uk

Sincere thanks are due mainly to the late Karen Orton, a gifted and generous engineer whos projects have inspired all of us.
Karens perfect SC/MP emulation on a PIC chip is a fantastic achievement in itself and I credit the whole of this PICLV2 project to Karen, she’d probably have done all this anyway.

Here’s a video:

https://www.youtube.com/watch?v=d4PSkEpVwAE

2 Likes

Thanks for the version 2 post, @Phil_G. I see there’s a profile of Karen, from last year, here. (oops, wrong Karen. Thanks @Phil_G )

There’s a nice video with some NIBL content and others of Karen’s projects here:

And another of your own videos:

Hi Ed, thats an interesting link, but its not “our” Karen :smiley:

Oh no! I will annotate. Perhaps remove…

BTW, I strongly recommend the vintage radio forums for this catalogue of Karen’s projects and also for various long threads about them: