@bitsavers has just posted yet another computing history treasure: the scans of the original Digital Research listings of the sources of CP/M 2.2, CP/M Plus 3.0, CP/M-86, and Concurrent CP/M-86 in Intel 8080 Assembly, PL/M, and Intel 8086 Assembly.
New #openaccess publication #SciPost #Physics
Higher spin swampland conjecture for massive AdS3 gravity
Rajae Sammani, El Hassan Saidi
SciPost Phys. 18, 173 (2025)
https://scipost.org/SciPostPhys.18.6.173
My brand new #mfmemulator from https://decromancer.ca/mfm-emulator/ arrived from #Canada about a week ago. It doubles as an MFM harddisk reader as well as an emulator, and I just happened to have a 40 year old disk lying around.
#MFM was a weird standard, at least compared to SCSI and IDE. It's much closer to that of a floppy drive, than the hard disks we use today. That becomes apparent, when you realize that there are a lot of different standards for putting data on an MFM disks, and I'm just talking ones and zeroes here, not high level data like file systems. Basically, one model MFM controller probably won't read the data that another wrote on the same disk.
With that in mind, I was a little worried that the emulator wouldn't read my #CPM disk that was previously connected to an old Adaptec SCSI-to-MFM controller. To my surprise it worked like a charm, and I'm now looking at #pascal source code my dad wrote in the mid #80s. I'd call that a success!
CP/M-86 for Newbies is a starter kit for CP/M-86 with everything ready to unpack and run. It bundles the PCe PC emulator (Windows only), preconfigured PCe environments for running different CP/M-86 versions including Concurrent CP/M-86 and Concurrent DOS, and other software such as the Pirx Commander file manager.
https://github.com/MarekStarobrat/Pirx.Commander/tree/main/Releases/CPM-86
Wow, I didn't realise that LibreOffice turns 40 this year with it's latest release.
It started out as closed source Star Writer for CP/M in 1985 with DOS 3.2support in 1986.
Then became Star Office in 1994 for Windows 3.1
It became open source as Open office in 2001 and the LibreOffice fork in 2010.
https://en.wikipedia.org/wiki/StarOffice
After much testing and code comparison, the new Feb 2025 Release of #Vezza - my #z80 high speed #zmachine is ready! Took way longer than expected to synchronize across all of the code bases, particularly making sure that all optimizations made it across all platforms - TRS-80 model 1, TRS-80 model 3, TRS-80 model 4, the CP/M versions (~18 platforms), the embedded versions (Spectrum tape, TEC-1G), and slowly pushing into the Agon Light version (which has even more updates still in progress). Lots of individual tweaks, and some major rethinks and rewrites have come together to accelerate game play.
The hardest part of rewriting in this update involved rewriting the dictionary search code. I ended up going back to the original jzip interpreter, written in C for Unix waaay back when. Jzip provided much of the logic that went into ZXZVM, which provided the base for #M4ZVM #M3ZVM and #Vezza. Going back to Jzip made sense as Jzip has an even longer history; and is highly tested and stable and still maintained. This research gave me the confidence that the streamlining and changes I was making to such a fundamental part of the game would work, making all inputted dictionary searching more efficient.
To work around how CP/M stores executable files I spent a lot of time re-organising the memory map to make the executable smaller. This involved rearranging where the initialization code was stored inside the increasingly complex layout. Support across multiple versions means I needed to break up variable sized code and strings to sit inside variable sized gaps, while still compiling all the CP/M versions from the same interconnected set of source files. It needed quite a few manual checks to ensure that it all worked.
What this all means is that your favourite #infocom #punyinform and other text adventures will all play on your favourite z80 #retrocomputing platforms even faster than before!
More details in the devlog and downloads can be found at:
#TRS80 versions https://sijnstra.itch.io/m4zvm
#CPM #CPM80 versions https://sijnstra.itch.io/vezza
As promised: a complete deep clean of the late #70s #GeminiMicrocomputers parallel #keyboard by #Rotec. Everything disassembled, cleaned, lubed, rubber liners treated with silicone and brand new rubber feet installed. All keys are working, but some don't sit as well in their sockets as they used, so I expect the keys to stay in place if I hit someone with it! :D Also some electrical issues with scanning of the key matrix being incredibly slow - but it lives!!
And yeah, the "DISASSEMBLE FROM PCB SIDE" sticker was added by me. Taking this apart the wrong way will end in disaster. Learned that the hard way.
No spiders were hurt in this cleaning, although they had clearly taken up residency at some point.
Climbing out of the CPM/Zork rabbit hole for now...
I have fixed and reformatted the Z80 Z-Code Interpreter source, and successfully assembled it for RunCPM... And it works.
Going to play the game for a while, and then get back into my Kim-1 rabbit hole.
Anyway, all my CPM/Zork efforts are here:
https://github.com/ilneill/MyInfocom
Enjoy!
Having a break from other "rabbit holes" to return to #CPM, and I'm away from my hardware, so it's emulation only.
Got #runCPM up my laptop and had to get #Zork running. Found the eblong Infocom archive and the #Z80 the Z Interpretator source (+ Zork Z3 file).
Fixed some issues and it assembled with #z80asm but when I ran it the text display was not right. I recognised escape code issues. Dug into the Z80 code and found the problem. Hours later I found the reason.
Wyse codes, not VT100/ANSI
For those of you who are interested in my latest project, #dxbbs you may like to know that I've done some code cleanup, renamed existing variables and introduced new ones, especially for the message base files. this is in preparation of handling multiple message bases.
I've also implemented "message flagging/unflagging" in combination with the msg_purge routine. The latter takes some time to process all messages since it actually creates a re-indexd copy of all files for the selected message base.
So I thought it would make sense to "flag" messages for deletion, effectively excluding these from being listed or read and then have the option to physically delete them and re-arrange the message file during a maintenance window, where there is enough planned downtime for such an action.
Let me note that the code is by no means an example for proper #forth programming. I'm not there yet, but in case you are interested, here's the link:
https://gitlab.com/ufud-org/rc2014-dxforth/-/tree/main/bbs?ref_type=heads
drug references (Marijuana)
The Secret Father of Modern Computing: How Ed Roberts created the personal computer industry—and then walked away
https://every.to/the-crazy-ones/the-secret-father-of-modern-computing
#Altair #computinghistory #computers #vintagecomputing #retrocomputing #retrocomputers #vintagecomputers #S100 #CPM #8080 #IMSAI #EdRoberts #ACM
Rate my setup
#clockworkpi #rc2014 #cpm #uConsole #Z180