9 ms·
IBM PC 8088 replaced with a Motorola 68000
- sitkack 3y agoThis is an awesome post, but I don't think it proves that it wouldn't have mattered. The biggest win with 68k over 8088 is the flat address space and the innovations that would have been easier with a larger address space. The PC was super constrained from a software perspective because of segment registers and the memory model.
- skissane 3y ago> It could also have been the case that Microsoft did not have an operating system or BASIC ported to the Motorola 68000 architecture. The late 70s / early 80s incarnation of Microsoft was happy to port their software to just about anything, so long as there was a customer willing to pay for it. If IBM had asked Microsoft for a 68K OS instead of an x86 one, Bill Gates would have found a way to provide. He bought PC/MS-DOS from another company, he probably could have found someone selling a 68K OS instead. Or Tim Paterson surely could have ported it to 68K if asked. I think choosing the 8088 over 68K was all about hardware costs, not software-both the cost of the CPU, and the cost of compatible peripheral chips.
- aidenn0 3y agoI don't have a source handy, but I remember reading it was because the 68k was too late to production; it was scheduled to be ready on time, but the Intel parts were already available, and IBM didn't want the risk
- freitzkriesler2 3y agoAn alternate timeline where 68k was the dominant OS architecture? Man what a fun thought experiment. Reminds me of Palm OS and their OS5 68k emulator on top of arm.
- snvzz 3y agoOS architecture? Not ISA architecture?
- skissane 3y agoMy own thought experiment - what if “old IBM” had intervened in the product and tried to make it more “IBM”. Well, if they’d done that too much - e.g. a corporate edict that it had to use EBCDIC instead of ASCII - that probably would have killed it commercially. But what if “old IBM” had just demanded ASCII-EBCDIC conversion in the BIOS? With a “code page” field in each directory entry, which could be used to mark files as ASCII or EBCDIC (0=binary), with the BIOS ASCII-EBCDIC conversion service invoked to make EBCDIC files appear as ASCII to applications? That might have made the product more “interesting”, without adding so much complexity as would kill it. z/OS Unix has code page tagging in the filesystem; apparently IBM tried to get it added to DOS during DOS 4 development, but it got pulled before release (although that was not for EBCDIC, just for tagging which ASCII code page a file was) Maybe even demand some optional record-oriented support in the filesystem (e.g RECFM=F80). That would have been less alien to Microsoft than you’d think, because Microsoft BASIC always supported record-based file access.
- zabzonk 3y ago> and the cost of compatible peripheral chips. particularly this, i think, and also availability.
- klelatti 3y agoIBM, of course, did use (re-microcoded) 68000’s in a PC product - the XT/370. With a modified 8087 on a couple of cards these were used to emulate an S/370. https://en.wikipedia.org/wiki/PC-based_IBM_mainframe-compatible_systems https://en.wikipedia.org/wiki/PC-based_IBM_mainframe-compati...
- rjsw 3y agoIBM also made a standalone 68000 computer, the System 9000 [1]. [1] https://en.wikipedia.org/wiki/IBM_System_9000 https://en.wikipedia.org/wiki/IBM_System_9000
- sombragris 3y agoCorrect. A detailed description (with pictures) can be seen on page 278 and following ones of BYTE Magazine, February 1984 issue. The computer was branded as "IBM Instruments" https://archive.org/details/byte-magazine-1984-02/mode/2up?view=theater https://archive.org/details/byte-magazine-1984-02/mode/2up?v...
- klodolph 3y agoAccording to history, there were three microprocessors in the running for the IBM PC. They were the Intel 8088, the Motorola 68000, and the Texas Instruments TMS99000. If I remember correctly, the Intel had lots of 8088s available immediately (so IBM could do things like lifecycle testing), and Motorola did not have enough 68000s available yet. IBM was concerned about how much memory you would be able to use with future iterations of the 99000. The 68000 series did see use in the Macintosh, Amiga, Sharp X68000, and it completely dominated the Unix workstation space in the late 1980s. There were a lot of companies who thought, “I’ll buy a Unix license, buy some M68000s, and sell workstations.” Most of these companies disappeared. Later Unix workstations used all sorts of architectures.
- pbj1968 3y agoAlso saw use in soda machines… SEGA genesis…
- cesaref 3y agoRight, the 68k was the most logical step up from the early 8 bit processors in typical home computers (except for the TI99/4a which went in another direction). They were easy to design for, and easy to program (68k assembler is pretty elegant). The 68008 as mentioned was used in the Sinclair XL, with the 32 bit bus versions in the ST/Amiga/Mac. Initially limited to a 24 bit address bus, but when a machine was topping out at 1Mb, 16Mb seemed a long way away! I think the MMU was introduced with the 68020, which then appeared in early Sun 3s, and HP9000s, prior to the RISC invasion. Those machines seemed super fast at the time.
- mikewarot 3y agoOh man, 15 registers, each 32 bits wide, with indirect addressing modes... it would have been glorious! No more weird need to cram things into just the right registers to do a string operation. Not as nice as a PDP-11 processor, but damned close!
- 13of40 3y agoNo segment registers, as well. A byte of memory is just where it says it is, and you can access [n] and [n+100000] in one breath.
- tom_ 3y agoYou can't do [n+100000] - the displacement field for the equivalent addressing mode is 16 bits. I also wouldn't hold my breath while waiting for the 68000 to do anything... all the instructions are enormous, and they take ages to execute.
- NikkiA 3y agoDon't try just accessing a byte though, even though there are instructions for it it'll trap. I can't remember if working byte addressing got added in the 68010 or 68020.
- tom_ 3y agoYou could definitely access bytes? You couldn't do word or long accesses on odd addresses however. The 68000 doesn't have a pin for bit 0 of the address. (Byte accesses presumably fetch the word of interest and discard the 8 unwanted bits.)
- int_19h 3y agoBut it also means that all your pointers are now 32-bit wide, no? On a machine where memory is measured in kilobytes, that is an expensive luxury.
- pulvinar 3y agoWell, not as pure as the PDP-11, sure, but it was actually nicer to program and use.
- ok123456 3y agoDuring the initial meetings about the IBM PC, didn't Microsoft pitch the idea of using the 68k?
- 13of40 3y agoBill Gates claimed that at one of the Microsoft company meetings in the early 2000s.
- elvis70 3y agoBill Gates confirmed this in an interview published in PC Magazine in 1997 [1]: ..."Once we convinced IBM to go 16-bit (and we looked at 68000 which unfortunately wasn't debugged at the time so decided to go 8086)"... [1] https://web.archive.org/web/20010823113747/https://www.pcmag.com/article/0,2997,s=1754&a=11072,00.asp https://web.archive.org/web/20010823113747/https://www.pcmag...
- exsf0859 3y agoCool hack! Also interesting that the performance is no better, presumably due to the lack of cache. The first answer on this forum post has what is probably the correct explanation for why the 8088 was chosen: It was available, had a second source, and was not owned by a competitor. https://retrocomputing.stackexchange.com/questions/16912/did-ibm-originally-plan-to-use-the-68000-in-the-pc https://retrocomputing.stackexchange.com/questions/16912/did... Although ease-of-translation from 8080-based CP/M code was a benefit of choosing the 8086, this was just a nice-to-have, not a deciding factor.
- ok123456 3y agoAll the bus/memory timings are the same with this guy's hack. So it's not a big surprise that 10 print "hello world!" :print "!" : goto 10 doesn't have any perceived performance difference. Maybe if you made a purely arithmetic benchmark in assembly that could be done all within a few registers, like Fibonacci, you might see some difference.
- guenthert 3y ago> Also interesting that the performance is no better, presumably due to the lack of cache. Here an (emulated) MC68000 is pressed into serving an 8bit bus. The 68k (using its native 16bit bus) is faster (even if not by much) than a 8086.
- phkahler 3y agoNot sure about the authors performance claims. He doesn't indicate how fast his emulated 68000 is in terms of MIPS or equivalent MHz. It's also constrained by the 8bit bus which might have been wider if IBM had chosen that chip. Certainly would have been wider by the 286 equivalent generation.
- actionfromafar 3y agoAnd the 68k has better instructions. Many calculations would have been faster.
- zwieback 3y agoI vividly remember how sad I was when IBM chose the 8088, should have been 68K.
- ch_123 3y agoIBM also had experience of the 8085 and 8086 from their System/23 and Displaywriter systems which meant there was previous experience with Intel microprocessors in IBM at that time. I also read somewhere (but do not have a source to hand) that IBM had a significant investment in Intel at that point in time.
- gallier2 3y agoTake an Atari ST and you can see what a m68k PC could have been. Its operating system GEMDOS was a derivative of CP/M with comparable features of MS_DOS. The syscall even use the same numbers (trap #1 calls to GEMDOS map 1:1 on int 21H MS-DOS calls). This said, several hardware PC-emulators on the Atari did exactly the thing that article describes. PC-Speed added a NEC V30 that was soldered on the 68000 and could takeover the bus and the emulation only consisted on simulating the peripherals. It worked like a charm and thanks to the generous memory of the ST could even do some things better than real PC's (for example the 640K limit was in reality a 736K limit). Later versions used 286 and even 386sx cpu's.
- kabdib 3y agoGEMDOS was written from scratch (by Digital Research) and doesn't share any code or data structures with CP/M. Many of the BIOS and system calls were the same, but GEMDOS had recursive directories, etc.
- deleted 3y ago[deleted]
- grumpyprole 3y agoBut it's a derivative in the same sense that Linux is often called a derivative of Unix.
- cmrdporcupine 3y agoHah, funny, I just posted effectively the same comment elsewhere in this thread. Though as sibling comment correctly points out (and he'd know more than most, BTW) GEMDOS is more a CP/M-alike than a CP/M itself. There's really no or very little code shared in common with CP/M68k (both are under GPL now so you can go and look). I think the only thing shared between the two is the program loader source, and I might even be wrong about that. But yes I feel like this machine in this article should boot to a COMMAND.COM running on GEMDOS. Or at least CP/M68k. The source is available to make that happen fairly easily.
- 3y ago
- agar 3y agoI always thought that if the same amount of engineering and investment that went into overcoming the 8088 architecture instead was redirected into a more sane CPU architecture, development of the PC industry would have been accelerated by about a decade. I'm talking products like QEMM, Sidekick (and the whole "terminate and stay resident" industry), expanded vs. extended memory, and other massive engineering efforts by major software (Lotus, Ventura Publisher, etc.). Time spent overcoming the limitations of the 640K barrier, segmented memory, and similar design challenges could have been spent in more productive ways, as could be seen in the development of other ecosystems on a comparative shoestring budget. Granted I was an Amiga aficionado back in the late '80s/early 90's, so I'm comparing things like the ATI VGA Wonder (1988) to the Video Toaster (1990), or early efforts at GUIs (like GEM) to the multitasking OS of Amiga. But still, I think the point stands.
- tyingq 3y agoThat's really impressive, that the emulated M68K is socketed in the 8088 motherboard and talking to all the peripherals through it.
- Dwedit 3y agoIf you wanted to run 68000 code as fast as possible, nowadays you'd use a recompiler emulator.
- stefric 3y agoDon’t you love geeks… This was a simple and fun read while waiting for my coffee to be done. I also wonder how the world would look if IBM partnered with Apple rather than Microsoft.
- glonq 3y ago> I also wonder how the world would look if IBM partnered with Apple rather than Microsoft. Possibly underwhelming, if Taligent was any indication. https://en.wikipedia.org/wiki/Taligent https://en.wikipedia.org/wiki/Taligent
- randombits0 3y agoI like this guy. He does strange things with hardware. Z80 on a Teensy 4? No problem!
- cmrdporcupine 3y agoAuthor should port EmuTOS to it. Or at least just EmuCON, the console-only variant (basically GEMDOS) https://emutos.sourceforge.io/ https://emutos.sourceforge.io/
- dmitrygr 3y agoOn an 8 bit bus the 68k is almost useless. I am currently working on a project that involves that and looking at the logic analyzer trace is just tear-inducing. 68k has a terrible IPC to start with, and sticking it on a narrow bus cuts it by more than half. You’d be lucky to squeeze 0.8MIPS out of a 16MHz 68k on a 8 wide bus. Mainly the cause is the fact that the smallest possible instruction is 2 bytes. And it will take at least 4 cycles to fetch it (68k will execute a compete nCS cycle PER BYTE - no bursts to be found here).
- kazinator 3y ago> It could also have been the case that Microsoft did not have an operating system or BASIC ported to the Motorola 68000 architecture. That would be a big thing. 8088 assembly language is source-code compatible with 8080 assembly language. I believe IBM was eyeing the ability to run CP/M and derivatives like CP/M-86. IBM/MS DOS is basically a CP/M-like, derived from this: https://en.wikipedia.org/wiki/86-DOS https://en.wikipedia.org/wiki/86-DOS "[86-DOS's] application programming interface was very similar to that of CP/M. The system was licensed and then purchased by Microsoft and developed further as MS-DOS and PC DOS."