Post B2hEbOGfA9BCnh4wwS by oscarschnitzer@aus.social
(DIR) More posts by oscarschnitzer@aus.social
(DIR) Post #B2hDHdiNvARYxm40tk by tomjennings@tldr.nettime.org
2026-01-27T02:18:37Z
0 likes, 0 repeats
OK, writing "RSP" programs for MP/M. What a weird little system this is. RSPs are Resident System Programs, realtime dynamically loaded, position-independent (!) 8080 programs (!) that load into banked memory. On MP/M what were built-in's on CP/M (DIR, TYPE, etc) are .RSPs on MP/M.RSPs are daemons. The one I just wrote is a clock display that writes date and time in the margin between windows on the screen ("dead space"). It sleeps 99.99% of the time, wakes up once per second to write in the margin.What's really interesting about RSPs is that though they are background tasks you can type the RSP name on the command line, and the CLI (command line interpreter) will send the command tail to the running task. (Various controls including not allowing etc.) So MARCLOCK (margin clock) accepts a command liine changing default position, date format, colors, etc.Now that I've reigned in a few poorly behaved programs (mostly ones that poll the livin' shit out of the keyboard) performance is GREAT.The MARCLOCK RSP is 936 bytes long.(The margin itself, the black gap visually separating the four consoles) is itself an "H19 terminal" that accepts text and escape sequences, a 5th window.)MP/M is a lovely thing. Now to play with the "cron" equivalent.
(DIR) Post #B2hE6f3KhrbDshBuBU by tomjennings@tldr.nettime.org
2026-01-27T02:27:52Z
0 likes, 0 repeats
The CLI is not a shell, or a standalone program. It's an RSP that gets messages from the terminal process, that attaches to it's console. User programs can send messages to the CLIs! To do "DIR" on MP/M is to type "DIR return" to the TMP, which sends that text to a free CLI, which executes it and sends the result to the specified console. There isn't a shell or terminal per se. It's super frugal and very clever. There's lots of access controls that can be open or very narrow, but of course and program can cheat and pee in RAM and crash anything. So you don't do that, on purpose anyway. Since my Z80 is emulated I can in fact implement a half-fast memory-write protection scheme; but to do some things you get pointers up into kernel space and write bytes (lol). Multi-level pointer indirection on an 8080 is umm not elegant.
(DIR) Post #B2hEbOGfA9BCnh4wwS by oscarschnitzer@aus.social
2026-01-27T02:33:22Z
0 likes, 0 repeats
@tomjennings I’ve gotten deeply into CP/M internals (2.2 and 3.0), but never really looked at MP/M. From what you wrote I think I’d really enjoy it.
(DIR) Post #B2llDw5FrGexqg0Re4 by tomjennings@tldr.nettime.org
2026-01-29T06:57:48Z
0 likes, 0 repeats
@oscarschnitzer It never really got off the ground, for reasons that in hindsight may or may not be assessable. It feels incomplete, it never got rhe attention from users and developers that cpm did so it feels too spare. Theres s lot of tweaks required, system settings, that once done have made it truly a pleasure to write code on. As a development system. Im writing a lot of aystem tools and occasionally have to do work in cpm; then its quite painful compared to the richness of mpm. Its fun and interesting in its own right but there are things in here that resonate with current permacomputing and anti fascist tech thinking. The realtime stuff is very odd and will take some work to figure out how to exploit. O londa thought my interest would wane after making it go but it's become more interesting in fact. I made only a dozen machines, and wantfto make another larger batch. But theres still work to do. Maybe spring.