Post AwqaEe2mVSbPZhHDPs by goosey@mastodon.sdf.org
(DIR) More posts by goosey@mastodon.sdf.org
(DIR) Post #AwqSzVXn7wCvBqcH7Q by tomjennings@tldr.nettime.org
2025-08-05T02:14:27Z
0 likes, 0 repeats
Wee! I wrote a window manager for MP/M, four windows in the screen, dynamically resizeable, while program(s) are running.Windows are virtually 24x80 "Heath H19" compatible, up to 30 x 90, so cursor ("curses") format windows shrunk to smallest visible, if dragged full size, draw the off-screen portions. Programs can be writing to the screen while resizing, the "VGA device" does the work.The bottom line of each command line interpreter, I call the "hotspot", is always visible in a window; portions of the window larger than the box are virtually present, just not displayed.The Z80 running MP/M or CP/M sees the screen as IO ports; one to write data to, one to specify the window. Magic keyboard keys (Fkeys) switch windows (MP/M: assigns keyboard to task window), arrow keys drag the "cursor" to resize all four at once, another key "maximizes" current screen (make largest; make 24x80; make tiny).Lol, the cursor decided to not display for the video, there' still bugs to shake out etc.You can resize the VGA display (480x640 to 1024x768) with program(s) running, and everything does exactly what you would expect. Can't do that with Xorg! Not that that's useful, lol, but the window buffering came out super clean.This is event driven/task loop programming taken all the way; none of this is interrupt driven, it's all non-blocking task loops. Average task loop time (running through all dozen main tasks) is 5 - 10 uS, worst case 55 or so mS (large screen scrolling). I may unwind scrolling and drop that to a millisec or so but there's no downside I can determine.MP/M will have four tasks, four "seats". on window per, and 48K per user/task, four running at once (and only four). MP/M performance will be very nice. Got the XIOS written, soon to test it...#CP/M #cpm #mpm #MP/M #retrocomputing #z80
(DIR) Post #AwqUOZbJHUQ2xvmJ28 by vga256@dialup.cafe
2025-08-05T02:27:08Z
0 likes, 0 repeats
@tomjennings that is crazy impressive. did you have some previous experience writing a windowing manager? my own experiments took months to guess and test my way through with lua, and they’re an absolute kludge compared to this
(DIR) Post #AwqaEe2mVSbPZhHDPs by goosey@mastodon.sdf.org
2025-08-05T03:35:27Z
0 likes, 0 repeats
@tomjennings
(DIR) Post #AwqeW6AHbdetWvMb3I by tomjennings@tldr.nettime.org
2025-08-05T04:23:36Z
0 likes, 0 repeats
@vga256 Lol, no, first time. The drive was mp/m, needing windowing for some small number of seats. The big cursor popped into my head as a paradigm that would fit nicely with a keyboard -only interface. It wouldn't scale at all! But the constraint works fine here. And the "hotspot", the command line lower left corner greatly simplified design and implementation. There's some funny business with the cursor, bugs. And one corner case I gotta solve, tje case of the hidden cursor -- a 24x80 window being displayed in a say 22x20 fraction of the screen, the cursor can be placed off screen. I have to either force the window to put the cursor on screen (ugly kludge) or more likely, display a freaky dim red fast blinking cursor st the correct column but top line to indicate "cursor ip above here". An experiment showed this to be viable. The entire console, display and keyboard, is 1000 lines of c/c++. The design constraints allowed the window to viewport MSP to be really simple (bound only on two edges, and always the same two, top and right). You can resize the hardware display and the windows all act exactly right. No special cases in the code. It was very satisfying to write!
(DIR) Post #Awr6sqlPpYD38pMwkq by eric@slon.yojik.net
2025-08-05T09:41:16Z
0 likes, 0 repeats
@tomjennings #Z80 #CPM #retrocomputing Wouah, impressive!Is there a repository where to find it? I'm really interested.I built several Z80 retro-computers this year, and I would like to test your window-manager :D
(DIR) Post #AwrNdXBy0vc3Jl4Sp6 by tsturm@famichiki.jp
2025-08-05T12:49:07Z
0 likes, 0 repeats
@tomjennings @amoroso This is amazing! I’ve been playing with a Z80 toy OS, but I would have never expected to see something this responsive!