alexsunny123
Posts: 2
Joined: Sat Oct 03, 2020 9:23 am

Software Front Panel Similar to Research Machines RM380Z?.

Sat Oct 03, 2020 9:27 am

Hello,

One of the really good features of the old Research Machines RM380Z was that its firmware included a software front panel, documented in the 380Z Firmware Reference Manual. This allowed the user to examine and load registers, I/O and memory as well as single-step and many other features. I believe that this facility was influenced by the front panels on the minicomputers of the time i.e. DEC PDP8 (LINC8). Does anyone else think that such a feature would be possible and indeed useful in this latest generation educational computer? I have no experience with the ARM having spent the last thirty odd years with Intel, Motorola and Microchip processors. If I remember correctly, the trick with the Z80 was to force an interrupt which in turn stored the register values on the stack. These could then be read and altered before a return from interrupt restored them. This could be an interesting project and could work with the monitor, keyboard and mouse or perhaps a touch screen.

thanks
alexsunny

Heater
Posts: 16832
Joined: Tue Jul 17, 2012 3:02 pm

Re: Software Front Panel Similar to Research Machines RM380Z?.

Sat Oct 03, 2020 11:48 am

What you are describing used to be known as a "monitor" or "debug monitor" program. Burned into PROM/EPROMs on early 8 bit single board computers.

They allowed for entering code, usually from a HEX keypad. Running it, single stepping it, setting break points, inspecting memory and registers, reading writing I/O ports.

I wrote a couple of them back in the early 1980's. For the Motorola 6809 microprocessor, running on SBC we had designed and made by hand (Good old wire wrap technology). All written in assembler. I could write and read code from cassette tape. Had a serial console port and other goodies.

Certainly one could do that for a Pi. But I don't see many takers for it now a days.

A simulator of some processor with such a monitor would be educational for those who are interested. There are many. Like SIMH. I have used the SIMH based Altair emulator a lot: https://schorn.ch/altair.html

What I would really like is the Pi PDP-11 https://obsolescence.wixsite.com/obsolescence/pidp-11
Memory in C++ is a leaky abstraction .

bls
Posts: 859
Joined: Mon Oct 22, 2018 11:25 pm
Location: Seattle, WA
Contact: Twitter

Re: Software Front Panel Similar to Research Machines RM380Z?.

Sat Oct 03, 2020 1:41 pm

Heater wrote:
Sat Oct 03, 2020 11:48 am
What I would really like is the Pi PDP-11 https://obsolescence.wixsite.com/obsolescence/pidp-11
Although you can't hold it, you can see the PDP-11 lights in action with a bunch of different dinosaur OSen running at https://skn.noip.me/pdp11/pdp11.html.

I'm super-impressed that this whole emulator is written in Javascript :geek:
Pi tools:
Quickly and easily build customized-just-for-you SD Cards: https://github.com/gitbls/sdm
Easily run your network's DHCP/DNS on a Pi: https://github.com/gitbls/ndm
Easy strongSwan VPN installer/manager: https://github.com/gitbls/pistrong
Lightweight Virtual VNC Config: https://github.com/gitbls/RPiVNCHowTo

Heater
Posts: 16832
Joined: Tue Jul 17, 2012 3:02 pm

Re: Software Front Panel Similar to Research Machines RM380Z?.

Sat Oct 03, 2020 1:50 pm

bls wrote:
Sat Oct 03, 2020 1:41 pm
I'm super-impressed that this whole emulator is written in Javascript :geek:
Meh, now a days you can run a whole Linux in the browser:
https://bellard.org/jslinux/vm.html?cpu ... =1&mem=256

Or Windows 2000:
https://bellard.org/jslinux/vm.html?url ... 1024&h=768

Or how about a transistor level simulation of the veritable 6502:
http://www.visual6502.org/JSSim/
Memory in C++ is a leaky abstraction .

User avatar
jahboater
Posts: 6274
Joined: Wed Feb 04, 2015 6:38 pm
Location: Wonderful West Dorset

Re: Software Front Panel Similar to Research Machines RM380Z?.

Sat Oct 03, 2020 2:34 pm

Not a fancy front panel (I used a 380Z too!), but much of the functionality is available in the debugger.
Compile a program for debug in the usual way, and enter gdb.
Type:

layout reg (dual asm window display; may be abbreviated to "la r")
starti (starts at the first instruction)
stepi (single step; abbreviate to "si")

Pressing return will single step through the code one instruction at a time showing the registers (with the ones changed by the last instruction in inverse video), and the progress through the assembler code, in two windows.
Pi4 8GB running PIOS64 Lite

trejan
Posts: 2946
Joined: Tue Jul 02, 2019 2:28 pm

Re: Software Front Panel Similar to Research Machines RM380Z?.

Sat Oct 03, 2020 3:19 pm

It'd look neat but it isn't practical and it wouldn't be of any use for real debugging. Any serious debugging work will be done via a debugger like GDB. If you're debugging the kernel level code then you'd need to run it under an emulator like QEMU or using a JTAG debug probe connected to the JTAG interface on the GPIO header.

You'd need to greatly slow down the clock for your blinkenlights to be anything more than permanently on. Running a full multiuser capable OS will mean it'll be jumping around all over the place even when idle. There is no easy access to the internal bus either so you'd need to single step it via JTAG and then continually dump the registers and flags.

If you want fancy blinkenlights then get the PiDP-11 kit that Heater mentioned above.

ejolson
Posts: 5980
Joined: Tue Mar 18, 2014 11:47 am

Re: Software Front Panel Similar to Research Machines RM380Z?.

Sun Oct 04, 2020 5:26 am

trejan wrote:
Sat Oct 03, 2020 3:19 pm
It'd look neat but it isn't practical and it wouldn't be of any use for real debugging. Any serious debugging work will be done via a debugger like GDB.
I like the idea of a physical computing project to depict what's going on inside the Pi. I wanted to make a steampunk monitor to report load average

viewtopic.php?t=219131

but never managed to get started. A more practical idea might be an array of lights that somehow displays much of the information collected by the Linux performance counters, such as cache misses, branch rate, instructions per cycle, TLB, context switches and so forth.

Return to “General discussion”