Ah, glad you asked! The unit came with a little module, encased in plastic but fairly obviously a RAM with a battery inside, suited to plug in to a ROM socket. It has three extra connectors which I gather allow the contents to be written. So, it’s a RAM-based ROM emulator. I’ll take a photo:
The INS8070 microprocessor is often referred to as the SC/MP III. However, it should not be confused with the actual SC/MP processor in P-channel technology or with its direct successor, the INS8060 (SC/MP II) in N-channel technology.
The INS8070 processor was just one member of a larger processor family. This family included:
INS8070 with 64 bytes of RAM without ROM
INS8072 with 64 bytes of RAM and 2.5 KB of ROM
INS8073 with 64 bytes of RAM and 2.5 KB of ROM, the ROM contains a Tiny BASIC interpreter
INS8074 with 64 bytes of RAM and 4 KB of ROM
INS8075 with 64 bytes of RAM and 4 KB of ROM, the ROM contains an N² BASIC interpreter
2.5KB of ROM for the TinyBasic - somewhat impressive - but then the CPU has 3 x 16-bit registers which take a lot more code in my implementation to manage - the IL (Internediate language) is similar but different from the 8080 TinyBasics, but does a very similar thing - compresses the actual interpreter into a very small subset of high level commands - however unlike an 8080 style TinyBasic which has a few dozen operators, NIBL only has 4 and one of them is “call machine code subroutine” so a lot of it is direct calls to a stub of machine code…
As for real-use? I understand it was used in some early automation - lifts (elevators) was one application. NIBL was designed to auto-start (“turnkey”) if it detected a valid program already in RAM (or ROM) so provided an easy way to build a system that was running from power-on.
Nice find! There’s a zip file disguised as a pdf there which also contains a stab at a reassembly of the Octagon monitor.
I’m impressed by some aspects of the Tiny Basic - that these low applications are partly Basic and partly machine code; that a program in ROM address space will run automatically at reset time; that there’s a mechanism to call subroutines as interrupt handlers.
We did speculate as to whether Acorn’s Atom Basic might share some structure with this NIBL as well as a number of syntactic points.
I’ll also note that you were able to download and build the appropriate assembler without too much bother, to rebuild the Utility ROM, using Alfred Arnold’s ASL assembler.
There’s an Emulator for the 807x in the EmulatorKit tree and it can run the TinyBASIC. Undocumented stuff is going to be wildly inaccurate though as the chips are rare and nobody has spent a few weeks analysing all the behaviours.
It’s a very strange processor. In places like the indexing it’s elegant but the rest of it is deeply painful to program.
Does have one wonderful instruction though PLI - push and load immediate which pushes the value of an index register and then loads it with a constant. It’s there simply because PC is an index register so doing a PLI on the program counter is in fact JSR…