[HN Gopher] The Microsoft SoftCard for the Apple II: Getting two...
___________________________________________________________________
The Microsoft SoftCard for the Apple II: Getting two processors to
share memory
Author : zdw
Score : 99 points
Date : 2025-11-05 02:58 UTC (20 hours ago)
(HTM) web link (devblogs.microsoft.com)
(TXT) w3m dump (devblogs.microsoft.com)
| systemswizard wrote:
| Would be cool if Microsoft would focus on engineering instead of
| blog posts
| johndoe0815 wrote:
| 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.
| ZeroConcerns wrote:
| 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...
| kryptiskt wrote:
| 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.
| asdefghyk wrote:
| RE "....Any contemporary engineers who don't think they have
| anything to learn from the experience of the past....." 100%
| correct
| WorldMaker wrote:
| 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.
| mikkupikku wrote:
| They don't have an engineering problem, they have a management
| problem which ruins and obstructs anything good their engineers
| might try to make.
| mschaef wrote:
| 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.
| ezconnect wrote:
| 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.
| johndoe0815 wrote:
| I wonder if anyone ever used the Z80 Softcard or one of its many
| clones to run something different than CP/M?
| pontifk8r wrote:
| I got MP/M working on the softcard back in the day. Never
| really had an application for it though.
| JSR_FDED wrote:
| 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 wrote:
| 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 wrote:
| > These days JOE (Joe's Own Editor) still uses a similar
| keyset.
|
| joe is definitely among the easiest CLI/TUI editors there
| are.
| icedchai wrote:
| 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 wrote:
| 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.
| EvanAnderson wrote:
| 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<
| ErroneousBosh wrote:
| WordStar was basically all we needed, and it still is.
|
| Imagine if you had something that small and powerful today.
| gapan wrote:
| > 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 wrote:
| 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 wrote:
| > 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 wrote:
| > But why do you think we don't have that today, if we
| choose to do so?
|
| Network effects.
| fragmede wrote:
| https://archive.org/details/wordstar_202310
| mimsee wrote:
| "According to Wikipedia..." aargh Wikipedia is not the source!
| ktallett wrote:
| 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.
| immibis wrote:
| Maybe in 2005, but in 2025, Wikipedia is more reliably accurate
| than many more-official-sounding sources.
| whobre wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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.
| thristian wrote:
| 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.
| wslh wrote:
| 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 wrote:
| 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 wrote:
| 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.
| kurlberg wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| Both worked to start a boot from the disk controller in
| that slot.
| Joe_Cool wrote:
| 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.
| TMWNN wrote:
| >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?
| Mountain_Skies wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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.)
| rasz wrote:
| 128D had 3 cpus :)
| GlenTheMachine wrote:
| 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.
| user3939382 wrote:
| This is great, I'm building new machines on the 6502 and can use
| this. Thanks.
| talkingtab wrote:
| 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.
| Dwedit wrote:
| 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.
| LarsDu88 wrote:
| 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.
___________________________________________________________________
(page generated 2025-11-05 23:02 UTC)