6 ms·
The Microsoft SoftCard for the Apple II: Getting two processors to share memory
- systemswizard 1y agoWould be cool if Microsoft would focus on engineering instead of blog posts
- johndoe0815 1y agoRaymond Chen’s blog posts are one of the best things coming out of Microsoft. As a Unix person for decades, for me it’s great to see his incredibly experienced and insightful view on software development in general and specifically OS development at Microsoft and to read about his experience with all these nice processor architectures no longer supported by NT.
- ZeroConcerns 1y agoPersonally, I prefer cool blog posts over "add another Copilot button that does nothing to something that did not require it anyway" or "paper over a perfectly fine API with a newer version that has 60% of the functionality and 120% of the bugs" (which is what Microsoft engineering mostly seems to boil down to these days), but you be you...
- kryptiskt 1y agoThe Old New Thing is very much engineering. Any contemporary engineers who don't think they have anything to learn from the experience of the past as recounted in the blog are doomed to repeat the same missteps. And much as one would hope that Raymond Chen's blogging is holding up any important Microsoft initiatives, I very much doubt that it's much of a distraction for a megacorporation.
- asdefghyk 1y agoRE "....Any contemporary engineers who don't think they have anything to learn from the experience of the past....." 100% correct
- WorldMaker 1y agoAlso, you should be able to still search for Raymond Chen's blog process posts, but part of why he has nearly a blog post every work day for quite so many years is that he built up a huge queue, adds to the queue only during relatively free time, and has automated the posting of that queue. It's also seems to relate to why so many are multi-part deep dives. (This post also ends with a tease for the next post.) It was often probably only one root investigative journey related to a Windows support question investigation or user story writeup or documentation was needed to be written or some other TIL rabbit hole was found, but breaking it into multiple parts keeps each part easy to read individually and also keeps the queue full for weeks where things are much busier.
- mikkupikku 1y agoThey don't have an engineering problem, they have a management problem which ruins and obstructs anything good their engineers might try to make.
- mschaef 1y agoHe's been blogging continuously for close to twenty years - he was one of the original wave of Microsoft bloggers (along with Larry Osterman, Michael Kaplan, and several others I can't remember). It is very much an engineer's engineering blog, and written by someone deeply in the trenches.
- ezconnect 1y agoThey have been blogging about engineering before blogging was mainstream. You have to subscribe to their CD of MSDN articles to appreciate how info they put out for their products because they used to be developer centric.
- johndoe0815 1y agoI wonder if anyone ever used the Z80 Softcard or one of its many clones to run something different than CP/M?
- pontifk8r 1y agoI got MP/M working on the softcard back in the day. Never really had an application for it though.
- JSR_FDED 1y agoI remember my dad using the Z80 Softcard to run WordStar, which was astonishingly powerful considering how long ago it was king of word processors. I’d be surprised if some of the control keys hadn’t influenced our editors, although as a Vim user I can’t immediately think of any.
- jhbadger 1y agoTurbo Pascal and other Borland products used to use keys based on WordStar. These days JOE (Joe's Own Editor) still uses a similar keyset.
- mschuster91 1y ago> These days JOE (Joe's Own Editor) still uses a similar keyset. joe is definitely among the easiest CLI/TUI editors there are.
- icedchai 1y agoBack in the 90's, "pico" was always the go-to editor for those who didn't want to mess around with emacs or vi.
- technothrasher 1y agoJove was the big editor on campus at the University of Rochester back in the very early 90's, mostly because Jonathan Payne, who wrote it, attended the school. When I got there I pushed for Joe adoption because it was a simpler editor for the less geeky undergraduate users to use. Pico never really was a phenomenon there at the time.
- EvanAnderson 1y agoI remember finding joe back in the 90s, having come to Linux from mainly DOS, and bring overjoyed. The little Unix I'd used up to that point (mainly Xenix and a little SCO) had me using ed, which was enough like old DOS EDLIN that I could manage. When I found myself in vi I'd just hang up the modem because I never could figure out how to get out of it. >smile<
- mimsee 1y ago"According to Wikipedia..." aargh Wikipedia is not the source!
- ktallett 1y agoI mean Wikipedia is referenced and well sourced so it is a perfectly valid source in this day and age. I read papers weekly and they are full of more lies or dishonesty than Wikipedia nowadays where there is a desire to publish often.
- immibis 1y agoMaybe in 2005, but in 2025, Wikipedia is more reliably accurate than many more-official-sounding sources.
- whobre 1y agoCool post from Raymond as usual! I’d like to add that the hardware for the SoftCard was designed by Tim Paterson at SCP about the same time he was writing the future MS-DOS
- mrandish 1y agoI've never met Raymond but based on his posts, I have a fantasy that Microsoft would make him "Benevolent Dictator For Life" of Windows desktop OS. At this point, it's the only thing that might save Windows 11 as a daily desktop operating system for power users.
- raw_anon_1111 1y agoYears later. the Apple Dos Compstibility Card (code named Houdini) could do the same thing. It had a 486DX/2-66 and a Sound blaster card on board. By default it shared the host Mac’s memory and you could run both simultaneously. But it wasn’t a great experience on either side. They both ran slower Alternatively, you could put up to a 32MB RAM SIMM directly on the card. Now that I think about it, my first Mac did the same thing with the Apple //e card.
- PAPPPmAc 1y agoI find hosted/hybrid machines particularly fascinating, so I have a 6100/66 DOS with a Houdini II Nubus card and a Education-market LC with the Gemini-based Apple IIe PDS card that I've collected over the years. They are ...weird... machines. Both have a (different) extremely bespoke Y cable that are almost required, such that if you find a card separated from the cable, you probably shouldn't pay much for it. The IIe card has a little lag in the video circuitry compared to the real thing (at least in a first gen LC host, apparently that problem goes away if you stick it in a faster machine with a 24-bit PDS slot). Coaxing the Houdini II to boot things that are not fundamentally MSDOS is always a good way to throw away a couple hours, but it does a great job of convincing anything up to Win95 that it's a PC. Performance is absurdly better with dedicated RAM. There are a couple other things in the family, the MacCharlie and AST Mac86/Mac286 products for bolting PC hardware onto various Macs, and the later OrangePC cards (they ended up with the IP from both Apple and ASTs offerings). The apex of "weird hosted computers you can stick in a Mac" are probably the MacIvory (LISP machine on a NuBus card) products, but those are "costly and rare," and are infamously balky even if you do get the hardware (...and I just don't enjoy Lisp). Sun had a SunPC/SunPCi line in the same vein that will bolt a PC-on-a-card into various SPARC hosts. Commodore had that first-party Sidecar product with a PC-XT in a box for Amigas, and there was ShapeShifter that would let you fake a Mac semi-native on a 68k Amiga. Likewise DayDream (recently updated into DarkMatter) to run a Mac environment on a 68k NeXT host, both of which "needed" Mac ROMs attached on a dongle for license reasons. MAE is emulation, but it was an Apple-blessed way to run MacOS hosted on contemporary Unix workstations of the early 90s, which is sort of the opposite. I've managed to prod it onto a (real) PA-RISC/HPUX host, and (emulated, because my SS20 has been super balky as long as I've had it) SPARC/Solaris host just for sport - I'm pretty sure it was built out of decapitated A/UX parts and an emulator when A/UX4 didn't happen. I'd like to round out my set with at least a IIe with a Premium Softcard IIe at some point, but I'm not willing to pay ebay prices for any of that stuff.
- thristian 1y agoSteve Wozniak was incredibly foresighted when designing the Apple II, to make sure that expansion cards could disable the default ROMs and even disable the CPU, making this kind of thing possible. The article mentions a chunk of memory "used by peripheral devices"; every expansion card got its own slice of the address space, so you could plug a card in any slot and it would Just Work (maybe you'd have to tell software what slot the card was in). I was very disappointed when I "upgraded" to a 386 and suddenly cards had to be manually configured to non-conflicting IRQs and I/O addresses.
- wslh 1y agoClearly Steve Wozniak was a very unique [technical and geeky] guy at that time. Thinking about interoperability at that time was prophetic.
- cbm-vic-20 1y agoI woldn't go so far as to say it was "prophetic". Contemporary DEC PDP-8 (OMNIBUS) and PDP-11 (UNIBUS / QBUS) systems have a similar approach to "interoperability", where cards for peripherals were also mapped into the machine's address space. It was great that Woz saw the utility of this and brought it into the homebrew/microcomputer design.
- wslh 1y agoI understand that Steve knew about that but trying to create an inexpensive computer, working with hard trade-offs makes his decision very wise and smart. We can know about complex architectures but it might be very difficult to copy them in cheaper devices.
- tasty_freeze 1y agoI think it was more driven by his own desire to not limit what future hardware hacking he wanted to do with this computer he just designed.
- kurlberg 1y ago
- Mountain_Skies 1y agoOne of the biggest disappointments of the 8-bit era was the Commodore 128 not being able to use both the 8502 and Z80 CPUs in some kind of coprocessor setup.
- timbit42 1y agoThe Commodore 128D has two 6502 CPUs. One is in the floppy drive and you can run software on it while the main 6502 ran something else.
- mschaef 1y agoThat derives logically from the way Commodore implemented disks. If you bought a 1540 or 1541 (or any other Commodore drive) for a C-64 or VIC-20, it had an onboard 6502 to run the disk drive. The interaction between the computer and the disk drive was somewhat similar in concept to fetching a file from a network server. This could be useful to save on costs in computer labs... my grade school used multiplexer boxes to share a single 1541 across four C-64's.
- Joe_Cool 1y agoIt was always awkward to do low level disk stuff by basically "remoting" into the drive to execute code. OPEN 1,8,15,"N:NEWDISK,01":CLOSE 1 was always a weird way to format a floppy...
- mschaef 1y agoKnowing what I know now, I'd have appreciated it much more than I did at the time. (Also, fixing the link rate on the C64 would've been nice too.)
- rasz 1y ago128D had 3 cpus :)
- GlenTheMachine 1y agoI wrote code to do this between a C64 and a 1541 disk drive when I was in high school. It got me to the international science fair and (probably) earned me a full tuition scholarship for undergrad.
- user3939382 1y agoThis is great, I’m building new machines on the 6502 and can use this. Thanks.
- talkingtab 1y agoI bought an Apple II and then a SoftCard. I was trying to learn 'C' and there was a compiler on CPM (Borland) but not on the Apple II. It is always hard to go back and understand what it was like before an event. Like the Velvet Revolution. But at the time I was working on an IBM 360, mostly doing Fortran for scientists running anemometer simulations. The center for this activity was the person in charge of the 360 who could dole out time on the computer. The power dynamic was something I did not really notice, but in retrospect this was frustrating for the mathematicians/scientist trying to run simulations. They had to queue up and wait. Then one day a mathematician brought in an Apple II running VisiCalc. His own personal computer. He ran his simulations on that. It was like our small world trembled as the tectonic plates of technology shifted. The power shifted just in that one instant. It was cool - how we saw the world changed in one instant.
- Dwedit 1y agoOoh, the Z80 refresh line. You can have a program that writes to the R register in a loop and prevent the refreshes from happening.
- LarsDu88 1y agoIt was so much easier to do hardware shenanigans with these old-school chips where the pins on these breadboardable chips actually corresponded to memory address bits.
- deleted 1y ago[deleted]
- asdefghyk 1y agoFrom Google Manufacturing and development process: Although Microsoft developed the idea, the actual engineering and prototyping were done by Tim Paterson at Seattle Computer Products (SCP). Don Burtis of Burtronix redesigned the card, and California Computer Systems manufactured it for Microsoft
- stuaxo 1y agoSounds like the 6502 could have been doing more at the same time as the z80 for a sufficiently careful program.