Post AzsWMkHMNmZFuFntxo by andrewault@twit.social
(DIR) More posts by andrewault@twit.social
(DIR) Post #Azr3M2VU2EJ0JvlFtw by tomjennings@tldr.nettime.org
2025-11-03T02:38:13Z
0 likes, 0 repeats
HOLY SHIT, on my stupid MP/M project, a bug I thought I had fixed kept coming back... it had aspects of a heisenbug, in that one arbitrary compiled exhibited no symptoms, and another, symptoms that pointed to one thing (a very specific window-sizing action) then another compile, small changes, looked like a Z80 interrupt problem. Like that. Maddening! Two months! that bug bit me, on and off.I finally got an easy repeatable trigger for the crash, two key sequences alternated for 1 to 10 iterations and CRASH.The manifestation was corruption of the emulated CPU's memory, instruction stream. The "z80" executed something random, causing truly remote symptoms. What a PITA to find,LAST NIGHT only, I finally nailed it down, solidly: a Teensy 4.1 RTC interrupt (50 Hz) interacting with DMA and another interrupt used by the DMA VGA driver. The keystrokes caused a whole-screen write of the window buffers, busying the DMA memory. HERE'S THE THING: only when MP/M is running, the emulated Z80 code resides elsewhere in DMAMEM, so there's big block copies and interrupts doing things in the same DMA RAM. It *should* work but....I'm using nearly every byte of the megabyte in the ARM chip, maybe 40K unallocated.WOW. It was so terrible, I was starting to doubt my sanity. But this week I'll bring it up with the folks who write the VGA code. They're great people. Today was a good day!The book is almost done (120 pages).Aluminum chassis arrives Monday.
(DIR) Post #Azr3jOq7AVBWFEYB5k by tomjennings@tldr.nettime.org
2025-11-03T02:42:26Z
0 likes, 0 repeats
(The fix: remove the RTC interrupt, implement the Z80's RTC interrupt in software. That makes it all jittery, task loop load dependent. The fix for that: the Z80 uses system calls to get the hardware RTC one-second clock to generate MP/Ms one second system flag; so the task-switch 50 Hz tick is jittery, htat doesn't matter; and time of day gets better long term stability.)
(DIR) Post #AzsUNiIh1ZD49RlG0e by andrewault@twit.social
2025-11-03T19:15:43Z
0 likes, 0 repeats
@tomjennings Is there a github project or other web page for your project?
(DIR) Post #AzsW5D8wKMxKDMVKQS by tomjennings@tldr.nettime.org
2025-11-03T19:34:49Z
0 likes, 0 repeats
@andrewault A shitty and inadequate webpage I am literally working on now. In July, here: https://www.bleeve.me/fZ80/index.htmlIt's much expanded, nice chassis, a real printed book, better software, and most of all, MP/M II 2.1. Which I hadn't originally set out to do, but I'm glad I took the detour.I've got a brief essay on intent in computing that accompanies it.Tweaking the keys that manipulate the window manager, which is approximately like the Ratpoison wm for linux.I've got a dozen I'll sell shortly. They're basically nicely done engineering prototypes. In aluminum chassis, should be pretty too.
(DIR) Post #AzsWJMdPppQphqVYBc by tomjennings@tldr.nettime.org
2025-11-03T19:37:23Z
0 likes, 0 repeats
@andrewault I fucking hate github with all my heart.lol.
(DIR) Post #AzsWMkHMNmZFuFntxo by andrewault@twit.social
2025-11-03T19:37:58Z
0 likes, 0 repeats
@tomjennings lol!
(DIR) Post #AzsWPOmCmige5PUqoK by andrewault@twit.social
2025-11-03T19:38:28Z
0 likes, 0 repeats
@tomjennings I've seen worse! :-)