| ▲ | The Microsoft SoftCard for the Apple II: Getting two processors to share memory(devblogs.microsoft.com) |
| 104 points by zdw a day ago | 57 comments |
| |
|
| ▲ | talkingtab 18 hours ago | parent | next [-] |
| I 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. |
|
| ▲ | thristian 21 hours ago | parent | prev | next [-] |
| Steve 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. |
| |
| ▲ | Joe_Cool 16 hours ago | parent | next [-] | | And if something didn't work he included a complete debugger inside "Apple II Machine Language Monitor" in ROM so you could always just disassemble and poke at things, pipe disassembly to the printer, read memory, change code, add own macros to CTRL+Y and rerun stuff. All that without extra software or a massive pile of printed assembly. from BASIC: CALL -151 (short for CALL 65385, but BASIC can't handle unsigned INT so that wouldn't work)
F666G
and the machine is your playground. | |
| ▲ | kurlberg 20 hours ago | parent | prev | next [-] | | I don't think this is entirely due to Wozniak. Early "home" computer systems were based on connecting cards to a bus (eg the S-100 bus), eg. with one card supporting the CPU, another RAM, a third for disk drive, video card etc, etc. The cards where then memory mapped, presumably you controlled the memory mapping by setting jumpers. (I guess you're saying that Apple II managed this automatically?) Of course the full story might be a bit more complicated: 6502 and 6800 used memory mapped I/O, whereas 8080 (and Z80?) had certain I/O pins coming out of the CPU. | | |
| ▲ | raw_anon_1111 19 hours ago | parent [-] | | Memory mapping happened automatically. Each card was mapped based on the slot it was in. $C000 - $C700 I believe with each slot assigned 256 bytes. | | |
| ▲ | kot_manul 17 hours ago | parent [-] | | You're correct; slot 6 for instance is $C600. If you crashed to the system monitor you could boot a disk by entering C600G (with the 'G' standing for 'go to'). IIRC the disk controller had firmware that loaded the first 256 byte sector from disk into memory. | | |
| ▲ | Dwedit 16 hours ago | parent [-] | | If you crashed to the monitor, you could hit Ctrl+B and get back to BASIC, then type IN#6 to boot the disk. | | |
| ▲ | Joe_Cool 16 hours ago | parent [-] | | Yeah. It was neat. But it rebooted in under a second so a complete crash was no biggie. RAM wasn't even cleared so usually no (or limited) data loss. I thought it was PR#6 (redirect output) to boot from the disk controller in slot 6. I wonder what redirecting input would do. | | |
| ▲ | raw_anon_1111 15 hours ago | parent | next [-] | | That was it at the AppleSoft BASIC prompt (or IN#6). But the parent poster commented on how to do it from assembly. | | |
| ▲ | Joe_Cool 15 hours ago | parent [-] | | There is an even quicker way from the monitor: 6 CTRL+P Will instantly divert output to slot 6. (and boot the disk if there is hardware there) |
| |
| ▲ | Polizeiposaune 15 hours ago | parent | prev [-] | | Both worked to start a boot from the disk controller in that slot. |
|
|
|
|
| |
| ▲ | TMWNN 15 hours ago | parent | prev | next [-] | | >to make sure that expansion cards could disable the default ROMs and even disable the CPU, making this kind of thing possible. Today we would call this bus mastering, yes? | |
| ▲ | wslh 21 hours ago | parent | prev [-] | | Clearly Steve Wozniak was a very unique [technical and geeky] guy at that time. Thinking about interoperability at that time was prophetic. | | |
| ▲ | cbm-vic-20 17 hours ago | parent | next [-] | | I 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. | |
| ▲ | tasty_freeze 17 hours ago | parent | prev [-] | | I 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. |
|
|
|
| ▲ | whobre 21 hours ago | parent | prev | next [-] |
| Cool 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 12 hours ago | parent [-] | | I'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 21 hours ago | parent | prev | next [-] |
| Years 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 13 hours ago | parent [-] | | I 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. | | |
| ▲ | raw_anon_1111 13 hours ago | parent [-] | | Both the Apple LCII with the Apple //e card, 5-1/4 drive for it and the Apple //e joystick and the PowerMac 6100/60 with the DOS Compatibility card exists somewhere in my parent’s house. I have no idea where my 5-1/4 disks are. But I know where the 3-1/2 disks are for my Mac. They aren’t in the attic. They are in my childhood bedroom. My old Apple //e though is lost forever. I don’t have any real sentimental attachment to the hardware. If anything, i am going to eventually take the time to rin emulators on my Mac. Since the 6100/60, I’ve only bought them three Macs - a G4 Mac Mini, an Intel Core 2 Duo Mac Mini and my current M2 MacBook Air. The rest have been cheap PCs. I don’t really use my personal computer for much of anything. |
|
|
|
| ▲ | JSR_FDED a day ago | parent | prev | next [-] |
| I 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 a day ago | parent | next [-] | | Turbo 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 17 hours ago | parent [-] | | > These days JOE (Joe's Own Editor) still uses a similar keyset. joe is definitely among the easiest CLI/TUI editors there are. | | |
| ▲ | EvanAnderson 12 hours ago | parent | next [-] | | I 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< | |
| ▲ | icedchai 16 hours ago | parent | prev [-] | | Back 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 15 hours ago | parent [-] | | Jove 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. |
|
|
| |
| ▲ | ErroneousBosh a day ago | parent | prev [-] | | WordStar was basically all we needed, and it still is. Imagine if you had something that small and powerful today. | | |
| ▲ | fragmede 20 hours ago | parent | next [-] | | https://archive.org/details/wordstar_202310 | |
| ▲ | gapan a day ago | parent | prev [-] | | > WordStar was basically all we needed, and it still is.
>
> Imagine if you had something that small and powerful today. I completely agree with the first part. But why do you think we don't have that today, if we choose to do so? | | |
| ▲ | flenserboy 19 hours ago | parent | next [-] | | 1. there is no longer a market for certain sorts of software, whether due to market dominance (Word), or the likely market size being too small to bother with. 2. FOSS has dropped into Code Reuse Mode*, & getting out of that is going to require motivated individuals to build their own, entirely new versions. LibreOffice is Good Enough for most users, so why go to all the effort of starting from ground level when a fork & reskin will do? one would hope that FOSS would lead to having cool, alternate approaches to particular use problems (as in the old days, when there were myriad word processors on the market — XyWrite, WordPerfect, WriteNow, Word, etc., etc.), but Good Enough means that attention can be put on more interesting problems. what we're left with is a mediocre mass of applications. *which is why nearly every alternate OS ends up feeling like Linux with missing programs & weird commands, so why not just use Linux? we're going to be stuck in a rut for a long time to come. | | |
| ▲ | yjftsjthsd-h 18 hours ago | parent [-] | | > FOSS has dropped into Code Reuse Mode, & getting out of that is going to require motivated individuals to build their own, entirely new versions I don't necessarily disagree that there are some issues in the ecosystem, but I don't think that's the problem. For starters, I don't think anyone is* forking LibreOffice and throwing on a layer of paint? And when I need a word processor, I personally prefer AbiWord, which is its own thing. In particular, > which is why nearly every alternate OS ends up feeling like Linux with missing programs & weird commands, so why not just use Linux? we're going to be stuck in a rut for a long time to come. This feels backwards. Alternatives tend to present a similar interface without* sharing code. In fact, even just on Linux I'd argue we have a rather lot of (re)implementations of the same things: Consider that we are in a position where Debian is shipping GNU coreutils, Ubuntu replaced them with a rust version (uutils), and Alpine has been happily shipping busybox for years (AFAIK, as long as it's existed). |
| |
| ▲ | philipallstar 19 hours ago | parent | prev [-] | | > But why do you think we don't have that today, if we choose to do so? Network effects. |
|
|
|
|
| ▲ | asdefghyk 10 hours ago | parent | prev | next [-] |
| From 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 |
|
| ▲ | LarsDu88 16 hours ago | parent | prev | next [-] |
| It 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. |
|
| ▲ | Dwedit 16 hours ago | parent | prev | next [-] |
| Ooh, the Z80 refresh line. You can have a program that writes to the R register in a loop and prevent the refreshes from happening. |
|
| ▲ | user3939382 20 hours ago | parent | prev | next [-] |
| This is great, I’m building new machines on the 6502 and can use this. Thanks. |
|
| ▲ | johndoe0815 a day ago | parent | prev | next [-] |
| I wonder if anyone ever used the Z80 Softcard or one of its many clones to run something different than CP/M? |
| |
| ▲ | pontifk8r 19 hours ago | parent [-] | | I got MP/M working on the softcard back in the day. Never really had an application for it though. |
|
|
| ▲ | Mountain_Skies 20 hours ago | parent | prev | next [-] |
| One 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 18 hours ago | parent [-] | | The 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 17 hours ago | parent | next [-] | | That 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 16 hours ago | parent [-] | | It 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 13 hours ago | parent [-] | | Knowing 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.) |
|
| |
| ▲ | GlenTheMachine 15 hours ago | parent | prev | next [-] | | I 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. | |
| ▲ | rasz 16 hours ago | parent | prev [-] | | 128D had 3 cpus :) |
|
|
|
| ▲ | mimsee a day ago | parent | prev | next [-] |
| "According to Wikipedia..." aargh Wikipedia is not the source! |
| |
| ▲ | immibis 20 hours ago | parent | next [-] | | Maybe in 2005, but in 2025, Wikipedia is more reliably accurate than many more-official-sounding sources. | |
| ▲ | ktallett a day ago | parent | prev [-] | | I 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. |
|
|
| ▲ | systemswizard a day ago | parent | prev [-] |
| Would be cool if Microsoft would focus on engineering instead of blog posts |
| |
| ▲ | kryptiskt a day ago | parent | next [-] | | The 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. | | |
| ▲ | WorldMaker 14 hours ago | parent | next [-] | | Also, 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. | |
| ▲ | asdefghyk 21 hours ago | parent | prev [-] | | RE "....Any contemporary engineers who don't think they have anything to learn from the experience of the past....." 100% correct |
| |
| ▲ | ZeroConcerns a day ago | parent | prev | next [-] | | Personally, 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... | |
| ▲ | mschaef 17 hours ago | parent | prev | next [-] | | He'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. | |
| ▲ | mikkupikku 21 hours ago | parent | prev | next [-] | | They don't have an engineering problem, they have a management problem which ruins and obstructs anything good their engineers might try to make. | |
| ▲ | johndoe0815 a day ago | parent | prev | next [-] | | Raymond 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. | |
| ▲ | ezconnect 14 hours ago | parent | prev [-] | | They 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. |
|