don@chopin.udel.edu (Donald R Lloyd) (04/16/91)
In article <m0jSNab-0003OuC@reed.edu> kuch@reed.bitnet (Jerry Kuch) writes: >I think the meaning that was intended is from the past, not the present. Of >course the 64 is no big deal today...8 bit micros are effectively DEAD! Find >a valid surviving computer that is in the C64's market now? The 8 bit micro >field is not current! Hanging on by its fingernails as it bleeds to death, >maybe... > "The rumors of my death have been greatly exaggerated..." CBM sold something in the neighborhood of 750,000 C64's last year. That's certainly not a thriving market, but it's far from a dead one. James Dionne, CBM's president (in the U.S.), said at the World of Amiga show not long ago that the 64 is "A machine that just won't die." Tell the millions of XT-clone users out there that the 8-bit market is dead. (Actually, IMHO, even a fast 486 qualifies as an 8-bit machine when it's running MS-DOS :-). Not intended as a flame or insult, just mild disagreement :-). -- Gibberish May the Publications Editor, AmigaNetwork is spoken fork() be Amiga Student On-Campus Consultant, U of D here. with you. DISCLAIMER: It's all YOUR fault.
kls30@duts.ccc.amdahl.com (Kent L Shephard) (04/18/91)
In article <16928@chopin.udel.edu> don@chopin.udel.edu (Donald R Lloyd) writes: - stuff deleted - > CBM sold something in the neighborhood of 750,000 C64's last year. That's >certainly not a thriving market, but it's far from a dead one. James Dionne, >CBM's president (in the U.S.), said at the World of Amiga show not long ago >that the 64 is "A machine that just won't die." > Tell the millions of XT-clone users out there that the 8-bit market is dead. >(Actually, IMHO, even a fast 486 qualifies as an 8-bit machine when it's >running MS-DOS :-).~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ MS-DOS IS a 16 bit OS not eight bit. THe 8088 IS a 16 bit cpu with an 8 bit data bus. The 386sx is to the 386dx as a 8088 is to an 8086. That is 16 bits vs 32 bits and 8 bits vs 16 bits. Now tell me that a 386sx is a 16 bit cpu. Kent -- /* -The opinions expressed are my own, not my employers. */ /* For I can only express my own opinions. */ /* */ /* Kent L. Shephard : email - kls30@DUTS.ccc.amdahl.com */
peter@sugar.hackercorp.com (Peter da Silva) (04/21/91)
In article <e1Gj02be06fI01@JUTS.ccc.amdahl.com> kls30@DUTS.ccc.amdahl.com (Kent L. Shephard) writes: > That is 16 bits vs 32 bits and 8 bits vs 16 bits. Now tell me that > a 386sx is a 16 bit cpu. It's not the CPU, it's the software. Anything you run MS-DOS on is basically a CP/M box. A VW Beetle with a V-8. MS-DOS is an 8-bit operating system. As is MacOS (a VW Beetle with a great sound system). Xenix-286 and other swapping UNIX variants are 16-bit operating systems. As is AmigaOS. VMUNIX is a 32-bit operating system. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
blissmer@expert.cc.purdue.edu (Kevin) (04/22/91)
>MS-DOS is an 8-bit operating system. As is MacOS (a VW Beetle with a great >sound system). > Hmm. Are you REAL sure about that. I thought the MacOS was _always_ 16 bit and will be 32 bit (on 32 bit machines) with 7.0. It makes little sense to me that Apple would write an 8 bit OS for a 16 bit machine (the Mac 128). It does make sense to me that IBM would write an 8 bit OS for an 8 bit machine (the IBM XT). I just pulled out a tech note on 7.0 and it does say that 7.0 will be a 32 bit clean OS. I'm not claiming to be an OS gura, but it seems to me that Apple wouldn't lie to their developers. I could be wrong though...
peter@sugar.hackercorp.com (Peter da Silva) (04/22/91)
In article <10944@mentor.cc.purdue.edu> blissmer@expert.cc.purdue.edu (Corey) writes: > >MS-DOS is an 8-bit operating system. As is MacOS (a VW Beetle with a great > >sound system). > Hmm. Are you REAL sure about that. I thought the MacOS was _always_ 16 bit The 68000 is a 32-bit processor, but the Mac O/S was designed with the same sort of address space limitations as CP/M. It's even more primitive a design than the rather nice ProDOS that the Apple-/// used. It's got a glorious graphics library, but the basic underlying operating system is basically CP/M. > and will be 32 bit (on 32 bit machines) with 7.0. It makes little sense to me > that Apple would write an 8 bit OS for a 16 bit machine (the Mac 128). It > does make sense to me that IBM would write an 8 bit OS for an 8 bit machine > (the IBM XT). Programming-model-wise, the 80x86 (x<3) is 16-bit, the 680x0 (any x) is 32-bit. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
torrie@cs.stanford.edu (Evan Torrie) (04/22/91)
peter@sugar.hackercorp.com (Peter da Silva) writes: >In article <10944@mentor.cc.purdue.edu> blissmer@expert.cc.purdue.edu (Corey) writes: >> >MS-DOS is an 8-bit operating system. As is MacOS (a VW Beetle with a great >> >sound system). >> Hmm. Are you REAL sure about that. I thought the MacOS was _always_ 16 bit >The 68000 is a 32-bit processor, but the Mac O/S was designed with the same >sort of address space limitations as CP/M. The only address space limitation in the original Mac OS was a 24-bit limit on pointers (and hence program addresses), since the upper 8 bits of a pointer address were used for memory management. [This is now fixed in System 7.0, following on from A/UX which fixed it 2-3 years ago]. There was at one point a 32K limit on resources in the Resource Manager, which meant segments of code could only be 32K. But this was fixed, I believe in the Mac Plus ROM of '86. -- ------------------------------------------------------------------------------ Evan Torrie. Stanford University, Class of 199? torrie@cs.stanford.edu Today's maxim: All socialists are failed capitalists
peterk@cbmger.UUCP (Peter Kittel GERMANY) (04/22/91)
In article <e1Gj02be06fI01@JUTS.ccc.amdahl.com> kls30@DUTS.ccc.amdahl.com (Kent L. Shephard) writes: > >MS-DOS IS a 16 bit OS not eight bit. THe 8088 IS a 16 bit cpu with an >8 bit data bus. The 386sx is to the 386dx as a 8088 is to an 8086. >That is 16 bits vs 32 bits and 8 bits vs 16 bits. Now tell me that >a 386sx is a 16 bit cpu. But if you stress this argument, then the Amiga (also the A500) is even a 32-bit system! The 68000 processor does most of its internal computation in 32 bits, only has a 16-bit bus the outer world. (Ok, address space is only 24 bits, but don't be too picky :-) -- Best regards, Dr. Peter Kittel // E-Mail to \\ Only my personal opinions... Commodore Frankfurt, Germany \X/ {uunet|pyramid|rutgers}!cbmvax!cbmger!peterk
peter@sugar.hackercorp.com (Peter da Silva) (04/22/91)
In article <1991Apr22.021234.23673@neon.Stanford.EDU> torrie@cs.stanford.edu (Evan Torrie) writes: > The only address space limitation in the original Mac OS was a 24-bit limit > on pointers (and hence program addresses), since the upper 8 bits of a pointer > address were used for memory management. [This is now fixed in System 7.0, > following on from A/UX which fixed it 2-3 years ago]. Well, there was also the 128K available memory limit, which made the 32K code size limit (due to 68000 addressing modes) reasonable. Plus, didn't a whole bunch of stuff stop working when you went over 1M... and that's only 20 bits. Anyway, the amount of memory available for the O/S in the original Mac was pretty much the same as it was for 8-bit "operating systems" like CP/M. Thus you had a single-tasking, flat file system (when PRO Dos, on the Apple ///, already had directories), and so on. If they'd waited 1 year, they could have released it with 512K and gone to multitasking, but Jobs just had to get it out for 1984 for political reasons. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
torrie@cs.stanford.edu (Evan Torrie) (04/23/91)
peter@sugar.hackercorp.com (Peter da Silva) writes: >In article <1991Apr22.021234.23673@neon.Stanford.EDU> torrie@cs.stanford.edu (Evan Torrie) writes: >> The only address space limitation in the original Mac OS was a 24-bit limit >> on pointers (and hence program addresses), since the upper 8 bits of a pointer >> address were used for memory management. [This is now fixed in System 7.0, >> following on from A/UX which fixed it 2-3 years ago]. >Well, there was also the 128K available memory limit, Yes, but this was a hardware limit, not an OS limit. There were no changes necessary to the OS when the memory went to 512K and then 4MB. >Plus, didn't a whole >bunch of stuff stop working when you went over 1M... and that's only 20 bits. As far as I know, Microsoft Excel 1.0 was the only program which exhibited this behaviour (if you put it above the first 1MB of memory). This was somehow related to Microsoft's peculiar, non-standard PCODE system at the time. Other vendors programs weren't so affected (admittedly, Microsoft had some reason to do this - it allowed them to run Excel in 512K of memory while similar spreadsheets required 1MB). >Anyway, the amount of memory available for the O/S in the original Mac was >pretty much the same as it was for 8-bit "operating systems" like >CP/M. Yes, but the OS was not an 8-bit OS - only the particular implementation of the hardware at that time. >Thus >you had a single-tasking, flat file system (when PRO Dos, on the Apple ///, >already had directories), and so on. Yes, both of these were bad decisions, given that they'd already had experience with both of these in the Lisa. The flat file system was particularly poor. Luckily, they managed to graft HFS on top reasonably successfully (and HFS continues to be one of the better file systems around). They weren't so lucky with multitasking. -- ------------------------------------------------------------------------------ Evan Torrie. Stanford University, Class of 199? torrie@cs.stanford.edu "Dear Fascist Bully Boy, Give me some money, or else. Neil. P.S. May the seed of your loins be fruitful in the womb of your woman..."
kls30@duts.ccc.amdahl.com (Kent L Shephard) (04/23/91)
In article <1991Apr21.152513.23054@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: >In article <e1Gj02be06fI01@JUTS.ccc.amdahl.com> kls30@DUTS.ccc.amdahl.com (Kent L. Shephard) writes: >> That is 16 bits vs 32 bits and 8 bits vs 16 bits. Now tell me that >> a 386sx is a 16 bit cpu. > >It's not the CPU, it's the software. Anything you run MS-DOS on is basically >a CP/M box. A VW Beetle with a V-8. > >MS-DOS is an 8-bit operating system. As is MacOS (a VW Beetle with a great ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ WRONG. If MS-DOS was an 8-bit OS you would not have 16-bit anything built in. In fact you do. CPM was 8-bit MS-DOS is 16-bits. The compilers for the OS are 16-bit. The initial cpu that MS-DOS ran on was 16-bit. >sound system). > >Xenix-286 and other swapping UNIX variants are 16-bit operating systems. As >is AmigaOS. Just because MS-DOS doesn't allow swapping and virtual memory directly does not mean it is not 16-bit. What is your definition of a 16-bit OS? Mine is one that directly supports 16-bit integers, data formats, if it is segmented - allows at least 16-bit segments for memory addressing. The same goes for a 32-bit OS. > >VMUNIX is a 32-bit operating system. So is NeXT Os 2.0 which, BTW is what my other machine runs. >-- >Peter da Silva. `-_-' ><peter@sugar.hackercorp.com>. -- /* -The opinions expressed are my own, not my employers. */ /* For I can only express my own opinions. */ /* */ /* Kent L. Shephard : email - kls30@DUTS.ccc.amdahl.com */
daveh@cbmvax.commodore.com (Dave Haynie) (04/23/91)
In article <e1Gj02be06fI01@JUTS.ccc.amdahl.com> kls30@DUTS.ccc.amdahl.com (Kent L. Shephard) writes: >In article <16928@chopin.udel.edu> don@chopin.udel.edu (Donald R Lloyd) writes: >MS-DOS IS a 16 bit OS not eight bit. THe 8088 IS a 16 bit cpu with an >8 bit data bus. The 386sx is to the 386dx as a 8088 is to an 8086. >That is 16 bits vs 32 bits and 8 bits vs 16 bits. Now tell me that >a 386sx is a 16 bit cpu. That all depends on whether you're a hardware, software, or CPU architect type. From the software viewpoint, the '386SX is a 32 bit CPU with some hard modes restricted to 16 bit only operations (8086 and 80286 compatibility modes, for instance). The '486, and 68000->68040 all appear to be 32 bit systems from the software view. From the hardware view, the '386sx and 68000 are 16 bit CPUs, the '386DX, '486, and 68020->68040 are 32 bits CPUs, and the 8088 and 68008 are 8 bit CPUs. From the CPU architecture view, the 68000 is a 16 bit CPU with 32 bit registers. What difference does it all make? Depends on what you're doing. Since all 680x0s run 32 bit instructions, all 680x0 code can take advantage of a 32 bit bus, and therefore a 32 bit [hardware] CPU will go close to twice as fast as as a 16 bit [hardware] CPU, all else being equal. You get "close to", because some operations are only byte or word wide even on a 32 bit system. The same would apply to a '386sx versus '386dx, under UNIX or any other 32 bit OS. Thing is, who's running their PC in a '386 native mode? Not the vast majority of people out there, most things are 8088 emulation mode. So the '386sx was a clever idea on Intel's part -- it could run nearly as fast on most things as the '386 or AMD's speedy '286s, but for real '386 stuff, although it would be much slower, it would still work. > Kent -- Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy "That's me in the corner, that's me in the spotlight" -R.E.M.
jbickers@templar.actrix.gen.nz (John Bickers) (04/24/91)
Quoted from <02J7020m07rC01@JUTS.ccc.amdahl.com> by kls30@duts.ccc.amdahl.com (Kent L Shephard): > >MS-DOS is an 8-bit operating system. As is MacOS (a VW Beetle with a great > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > WRONG. If MS-DOS was an 8-bit OS you would not have 16-bit anything > built in. In fact you do. CPM was 8-bit MS-DOS is 16-bits. The I suspect the original poster was refering to MS-DOS being embarassingly small and puny. The idea is probably that if the thing is barely a step above the C= 64's disk drive wedge thing, then it deserves to be labelled accordingly. I'm sure there must be real microcomputer 16-bit OSs that so far outpower MS-DOS that it would be an insult to them to be considered in the same general class just because of the bit-width they happen to care most about. > /* Kent L. Shephard : email - kls30@DUTS.ccc.amdahl.com */ Hoping I've got the right newsgroup... -- *** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** *** "Patterns multiplying, re-direct our view" - Devo. ***
kent@vf.jsc.nasa.gov (04/26/91)
In article <2584.tnews@templar.actrix.gen.nz>, jbickers@templar.actrix.gen.nz (John Bickers) writes: > Quoted from <02J7020m07rC01@JUTS.ccc.amdahl.com> by kls30@duts.ccc.amdahl.com (Kent L Shephard): >> >MS-DOS is an 8-bit operating system. As is MacOS (a VW Beetle with a great >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> WRONG. If MS-DOS was an 8-bit OS you would not have 16-bit anything >> built in. In fact you do. CPM was 8-bit MS-DOS is 16-bits. The > > I suspect the original poster was refering to MS-DOS being > embarassingly small and puny. Actually, MS-DOS started out as a 8 bit operating system since the orignal PC as 8 bit based. Just because you have a 16 bit ore 32 bit 286 or 386 that does not mean the OS or the application programs are executing 32 wide instructions. A lot of programs are faster only because the clock speed of the 286 and 386 machines are faster.... the programs still execute 8 bit instructions..... #define TRUE 1 #define FLAME_SUPPRESSION_SYSTEM TRUE I'm ready for your responses..... -- Mike Kent - Lockheed Engineering and Sciences Company at NASA JSC 2400 NASA Rd One, Houston, TX 77058 (713) 483-3791 KENT@vf.jsc.nasa.gov
peter@sugar.hackercorp.com (Peter da Silva) (04/27/91)
In article <1991Apr22.175525.2785@neon.Stanford.EDU> torrie@cs.stanford.edu (Evan Torrie) writes: > >Well, there was also the 128K available memory limit, > Yes, but this was a hardware limit, not an OS limit. Yeh, but that hardware limit hurt the OS (32K segments? on a 68000?) > >Plus, didn't a whole > >bunch of stuff stop working when you went over 1M... and that's only 20 bits. > > As far as I know, Microsoft Excel 1.0 was the only program which > exhibited this behaviour (if you put it above the first 1MB of > memory). I don't think so. They had a number of titles that had problems when memory went over 1M. I can't list them, but I was quite interested in the Mac at the time (I still think it's the best machine for computerphobes) and I was dismayed at the lists that showed up in magazines. > Yes, but the OS was not an 8-bit OS - only the particular > implementation of the hardware at that time. Well, it was written to fit into the same constraints. It looked a lot like CP/M to me. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
peter@sugar.hackercorp.com (Peter da Silva) (04/27/91)
In article <02J7020m07rC01@JUTS.ccc.amdahl.com> kls30@DUTS.ccc.amdahl.com (Kent L. Shephard) writes: > Just because MS-DOS doesn't allow swapping and virtual memory directly > does not mean it is not 16-bit. What is your definition of a 16-bit > OS? Mine is one that directly supports 16-bit integers, data formats, if > it is segmented - allows at least 16-bit segments for memory addressing. CP/M allows all those things. My definitions: "8-bit O/S" written for memory on the order of 64K, single user, single tasking. "16-bit O/S" written for memory > 64K, multitasking. "32-bit O/S" written for memory >> 64K, sophissticated VM. > So is NeXT Os 2.0 which, BTW is what my other machine runs. Wish I had that sort of disposable income. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
peter@sugar.hackercorp.com (Peter da Silva) (04/27/91)
In article <2584.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: > I'm sure there must be real microcomputer 16-bit OSs that > so far outpower MS-DOS that it would be an insult to them to be > considered in the same general class just because of the bit-width > they happen to care most about. There are 8-bit micro OSes that do that: MP/M, OS/9, ... Just because it's an 8-bit micro doesn't mean you have to put up with an 8-bit O/S. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
cpmwc@marlin.jcu.edu.au (Matthew W Crowd) (04/27/91)
In article <1991Apr26.085327.1@vf.jsc.nasa.gov> kent@vf.jsc.nasa.gov writes: >In article <2584.tnews@templar.actrix.gen.nz>, jbickers@templar.actrix.gen.nz (John Bickers) writes: >> Quoted from <02J7020m07rC01@JUTS.ccc.amdahl.com> by kls30@duts.ccc.amdahl.com (Kent L Shephard): >>> >MS-DOS is an 8-bit operating system. As is MacOS (a VW Beetle with a great >>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> WRONG. If MS-DOS was an 8-bit OS you would not have 16-bit anything >>> built in. In fact you do. CPM was 8-bit MS-DOS is 16-bits. The >> >> I suspect the original poster was refering to MS-DOS being >> embarassingly small and puny. > >Actually, MS-DOS started out as a 8 bit operating system since the >orignal PC as 8 bit based. Just because you have a 16 bit ore 32 bit 286 or >386 that does not mean the OS or the application programs are executing 32 wide >instructions. A lot of programs are faster only because the clock speed of the >286 and 386 machines are faster.... the programs still execute 8 bit >instructions..... > >#define TRUE 1 >#define FLAME_SUPPRESSION_SYSTEM TRUE > > I'm ready for your responses..... > >-- >Mike Kent - Lockheed Engineering and Sciences Company at NASA JSC > 2400 NASA Rd One, Houston, TX 77058 (713) 483-3791 > KENT@vf.jsc.nasa.gov This is wrong, MS-DOS is a 16bit operating system, 386's are the ones who don't benefit while running MS-DOS. matt.
peter@sugar.hackercorp.com (Peter da Silva) (04/28/91)
In article <1991Apr27.155155.12730@marlin.jcu.edu.au> cpmwc@marlin.jcu.edu.au (Matthew W Crowd) writes: > This is wrong, MS-DOS is a 16bit operating system, 386's are the ones > who don't benefit while running MS-DOS. Nope, MS-DOS is a straight copy of CP/M-80. Originally named QDOS (Quick and Dirty Operating System) by its author's at Seattle Computer (they were well aware that it was a kludge, only useful until they could afford to do it over from scratch), it was just plain adopted by Microsoft after IBM asked them to do an O/S for the IBM-PC. You see, IBM bought the PC from Seattle. Microsoft was purely a language house at the time, with absolutely no experience in operating systems. They really had no alternative. What I never could understand was why IBM went to Microsoft at all, when there were other, better, companies out there. DRI blew them off, we know that, but DRI wasn't the only fish in the sea. In any case, MS-DOS is a bug for bug copy of CP/M. If that doesn't make it an 8-bit operating system for you, you're listening to too much propoganda. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
dinda@cat55.cs.wisc.edu (Peter Dinda) (04/28/91)
In article <1991Apr28.122439.13393@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: >Nope, MS-DOS is a straight copy of CP/M-80. Originally named QDOS (Quick and >Dirty Operating System) by its author's at Seattle Computer (they were well >aware that it was a kludge, only useful until they could afford to do it over >from scratch), it was just plain adopted by Microsoft after IBM asked them to >do an O/S for the IBM-PC. You see, IBM bought the PC from Seattle. > >Microsoft was purely a language house at the time, with absolutely no >experience in operating systems. They really had no alternative. > >What I never could understand was why IBM went to Microsoft at all, when there >were other, better, companies out there. DRI blew them off, we know that, but >DRI wasn't the only fish in the sea. > >In any case, MS-DOS is a bug for bug copy of CP/M. If that doesn't make it an >8-bit operating system for you, you're listening to too much propoganda. >-- WRONG. MS DOS is a 16 bit REAL MODE operating system. You may be getting confused since something like OS/2 1.x is a 16 bit PROTECTED MODE OS, while OS/2 2.x is a 32 bit PROTECTED MODE OS. The simplest processor that can run MS DOS (the Intel 8088) is a 16 bit processor with an 8 bit data bus. MS DOS, or for that matter, QDOS, is not a direct copy of CP/M - even the command interpreters accept different commands. Finally, MS DOS has now been rewritten 4 times - pretty much elliminating any resemblence to CP/M, even in the file system, etc. Take this from someone who has programmed for MS DOS and used CP/M. Peter A. Dinda #include <stddisclaimer.h>
david@kessner.denver.co.us (David Kessner) (04/29/91)
In article <1991Apr28.122439.13393@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: >In article <1991Apr27.155155.12730@marlin.jcu.edu.au> cpmwc@marlin.jcu.edu.au (Matthew W Crowd) writes: >> This is wrong, MS-DOS is a 16bit operating system, 386's are the ones >> who don't benefit while running MS-DOS. > >Nope, MS-DOS is a straight copy of CP/M-80. Originally named QDOS (Quick and >Dirty Operating System) by its author's at Seattle Computer (they were well >aware that it was a kludge, only useful until they could afford to do it over >from scratch), it was just plain adopted by Microsoft after IBM asked them to >do an O/S for the IBM-PC. You see, IBM bought the PC from Seattle. > >In any case, MS-DOS is a bug for bug copy of CP/M. If that doesn't make it an >8-bit operating system for you, you're listening to too much propoganda. Now, I will be the _LAST_ person to extole the virtues of MS-DOS, but lets get our facts straight, will we? MS-DOS is a _16_ bit operating system. While it may be similar to CPM I doubt that it is a "staight copy" since CPM was strictly a 8 bit OS, and MS-DOS clearly has support for the _16_BIT_REGISTERS_ that the CPU has. Any BIOS/DOS reference book will provide you with enough _facts_ to show you that it does indeed use 16 bit numbers in the 16 bit CPU registers. That is _my_ definition of a 16 bit operating system-- the number of bits in the registers that it actually _uses_. Notice how this definition totally ignores any reference to the amount of RAM useable, disk space, multi-tasking, etc-- as it should do. The original PC used the 8088 CPU. This CPU is the same as the 8086-- both have 16 bit registers, but the 8088 has a 8 bit data bus where the 8086 has a 16 bit data bus. The software is the same for both. It's like the relationship between the 68000 and the 68008-- same CPU, different data bus size. Now, while MS-DOS is a 16 bit OS, it is _not_ a 32 bit OS. When running on a 386/486 MS-DOS does not utilize some of the features of the CPU-- like the MMU, 32 bit registers, or 'protected mode' (the full-blown mode that you would expect from a modern CPU). The long and short of it is, MS-DOS is _not_ an 8 bit OS running on a 16 bit CPU. It may _resemble_ an 8 bit OS, but it is not. It is 16 bits. Now, even though it is a 16 bit OS, it does not mean that Bill Gates didn't give it the "Look and Feel like CP/M". :) -- David Kessner - david@kessner.denver.co.us | do { 1135 Fairfax, Denver CO 80220 (303) 377-1801 (p.m.) | . . . If you cant flame MS-DOS, who can you flame? | } while( jones);
kls30@duts.ccc.amdahl.com (Kent L Shephard) (04/29/91)
In article <1991Apr26.221002.24745@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: >In article <02J7020m07rC01@JUTS.ccc.amdahl.com> kls30@DUTS.ccc.amdahl.com (Kent L. Shephard) writes: >> Just because MS-DOS doesn't allow swapping and virtual memory directly >> does not mean it is not 16-bit. What is your definition of a 16-bit >> OS? Mine is one that directly supports 16-bit integers, data formats, if >> it is segmented - allows at least 16-bit segments for memory addressing. > >CP/M allows all those things. > >My definitions: "8-bit O/S" written for memory on the order of 64K, single >user, single tasking. "16-bit O/S" written for memory > 64K, multitasking. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ As long as it is written for 64K or greater it is a 16bit OS. Multitasking has nothing to do with whether an OS is 8,16, or 32bits. If you exclude the multitasking constraint MS-DOS is a 16 bit OS. As long as an OS uses all the features of a CPU, that is 16 bit uses 16 bit data and 32 bit uses 32 bit data etc. that determines the size of the OS. You are confusing features of an OS with what it takes for one to be functional. >"32-bit O/S" written for memory >> 64K, sophissticated VM. Actually 32 bits would require you to address 4 gigabytes of memory. Sophisticated VM is not a requirement. Like I said you confuse req. with features. > >> So is NeXT Os 2.0 which, BTW is what my other machine runs. > >Wish I had that sort of disposable income. >-- >Peter da Silva. `-_-' ><peter@sugar.hackercorp.com>. -- /* -The opinions expressed are my own, not my employers. */ /* For I can only express my own opinions. */ /* */ /* Kent L. Shephard : email - kls30@DUTS.ccc.amdahl.com */
jburnes@swbatl.sbc.com (Jim Burnes - 235-0709) (04/30/91)
Ok guys! Let me be the first to propose that MSDOS is not an operating system at all. It is a very much souped up basic i/o system with a unix-like file system kludged onto it. (ohh....wait ...its not really a unix file system...they went and changed the path delimiter to a backslash.. how clever! ..big 8-) ) Seriously. Lets get our semantics in order here. Operating systems are more based on resource allocation for their classifications. CPUs are more based upon both their internal logic width and their addressable memory size. Let me also say that the 8086 is not properly a full 16bit CPU. Its more like a hopped up 8085 with wider arithmetic instructions. See any 16bitx16bit multiplies in there? I don't think so. (i might be wrong here) Worst of all is its unbelievably brain damaged addressing scheme. OK! I know you're out there...somebody who want to explain why INTEL did it that way. Well...stop right there....its fucked up! OK? 8-) Phew...(as he wipes the spittle from his mouth)...ahem...anyway back to MSDOS. I've programmed UNIX, AmigaDOS and MSDOS and (drum roll please) CP/M right to the metal. I can tell you even MDSOS 3.3 has the same damn internal data structures as CP/M. The ones that are new to the later versions of MSDOS are different of course. I've programmed low level BIOS functions/DOS functions/dissasembled and single-stepped through AMIBIOS so I can tell you how thoroughly screwed up MSDOS is. (used SOFTICE for single stepping ....get it!) PS: For fun sometime, try writing any type of real-time control system that runs under MessyDos. Try writing an interrupt driven device driver sometime. Go ahead I dare you. OK..nuf hubris here. I say MSDOS is a 8/16bit segmented architecture OS with extensions that let it run in 386 virtual machine environment. Eeewwww! (Now to return all you hackers to your Zen-Meditative-Harmonic- Balance-with-the-machine lets mention some nice OS's) AmigaDos (except for some slow file system access and lack of protected memory) PLAN-9 Amoeba QNX (even 4.3 Reno BSD) MINIX386/68k Sprite (There...now don't you feel better) MSDOS...just say No! (thankyou Mrs. Bush) J. Burnes -- ------------------------------------------+----------------------------- Jim Burnes - System Engineer ! When the world is SouthWestern Bell Advanced Technology Labs! running down... Internet: jburnes@swbatl.swbell.com ! Make the best of what's
peter@sugar.hackercorp.com (Peter da Silva) (04/30/91)
In article <1991Apr28.162045.15585@daffy.cs.wisc.edu> dinda@cat55.cs.wisc.edu (Peter Dinda) writes: > WRONG. I love it how these college freshmen are so bloody sure of themselves. Especially when they haven't been paying attention. > MS DOS is a 16 bit REAL MODE operating system. You may be getting > confused since something like OS/2 1.x is a 16 bit PROTECTED MODE OS, while > OS/2 2.x is a 32 bit PROTECTED MODE OS. I'm not confused, bucko. You are. Look at what you wrote: full of intel marketing terms for privileged mode, user mode, and so on. > The simplest processor that > can run MS DOS (the Intel 8088) is a 16 bit processor with an 8 bit data > bus. As far as the programming model (the only one that counts) is concerned, the 8088 is an 8-bit processor with 4 bank-select registers built in. There were companies doing operating systems for bank-selected 8-bit micros that would have blown your socks of: Cromix from Cromemco, a UNIX-like O/S on multiple bank-switched Z80s. OS/9 from Microware, still available for the Radio Shack color computer, and still a 16-bit O/S for all it's running on a 6809. > MS DOS, or for that matter, QDOS, is not a direct copy of CP/M - even > the command interpreters accept different commands. Oh, the shell defines the O/S? Look at the system calls in MS-DOS 1.x some time. Bug-for-bug compatible with CP/M. > Finally, MS DOS has now > been rewritten 4 times - pretty much elliminating any resemblence to CP/M, > even in the file system, etc. Oh? It's not an extent-based file system, with 8+3 filenames, CR/LF as the line terminator, and so on? It's not still purely single-tasking? They now provide real interrupt-driven device drivers? From where I sit, the 2.0 system calls are nothing more than a frill. No. Actually, MS-DOS is worse than CP/M. CP/M never got caught into the trap of becoming specific to one piece of hardware. > Take this from someone who has programmed for MS DOS and used CP/M. Take this from someone who has programmed both MS-DOS and CP/M, who did a Forth-based multitasker that ran fine under CP/M in 1983, and who has used and programmed under more different operating systems than you can spell. Sheesh. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
peter@sugar.hackercorp.com (Peter da Silva) (04/30/91)
In article <1991Apr28.203012.2793@kessner.denver.co.us> david@kessner.denver.co.us (David Kessner) writes: > Now, I will be the _LAST_ person to extole the virtues of MS-DOS, but lets > get our facts straight, will we? OK, you go read the message I just wrote to Peter Dinda. You been eating up the propoganda just fine too... > MS-DOS is a _16_ bit operating system. While it may be similar to CPM I > doubt that it is a "staight copy" since CPM was strictly a 8 bit OS, and > MS-DOS clearly has support for the _16_BIT_REGISTERS_ that the CPU has. Oh right! The 16-bit registers! I'd suggest you look at the 1802, a 4/8 bit microprocessor that comes with 16 16-bit registers. For that matter, what do you think HL is? As for being a copy of CP/M... that was not only intentional it was stated as a virtue of the machine by IBM back in 1981. All us CP/M hackers were puking, but the business community ate it up by god. > That is _my_ definition of a 16 bit operating system-- the number of bits > in the registers that it actually _uses_. Fine. Then I've *written* a 16-bit operating system. So I'm qualified to speak on such issues, and MS-DOS isn't one. > Now, even though it is a 16 bit OS, it does not mean that Bill Gates didn't > give it the "Look and Feel like CP/M". :) Bill Gates didn't give it anything. He didn't write line 1 of the code in QDOS. He just took an existing program (written at Seattle Computer) and filed off the serial numbers. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
peter@sugar.hackercorp.com (Peter da Silva) (04/30/91)
In article <2brN02no07bc01@JUTS.ccc.amdahl.com> kls30@DUTS.ccc.amdahl.com (PUT YOUR NAME HERE) writes: > As long as it is written for 64K or greater it is a 16bit OS. As another poster has noted, MS-DOS really isn't an O/S at all. But if you include "64K or greater" that makes TRS-DOS, Apple-DOS, CP/M, and so on 16-bitters. (hell, the Apple ROMS did include a 16-bit p-machine) > Multitasking has nothing to do with whether an OS is 8,16, or 32bits. If > you exclude the multitasking constraint MS-DOS is a 16 bit OS. If you exclude the passenger seats a motorcycle is a car, right? > You are confusing features of an OS with what it takes for one to be > functional. No, I'm not confusing anything at all. > >"32-bit O/S" written for memory >> 64K, sophissticated VM. > Actually 32 bits would require you to address 4 gigabytes of memory. ">>" means "much greater than". By your logic, an 8-bit O/S could only address 256 bytes, right? -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
david@kessner.denver.co.us (David Kessner) (05/01/91)
In article <1991Apr30.112820.2451@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: >In article <1991Apr28.162045.15585@daffy.cs.wisc.edu> dinda@cat55.cs.wisc.edu (Peter Dinda) writes: >> WRONG. >I love it how these college freshmen are so bloody sure of themselves. What makes _YOU_ so sure? >> MS DOS is a 16 bit REAL MODE operating system. You may be getting >> confused since something like OS/2 1.x is a 16 bit PROTECTED MODE OS, while >> OS/2 2.x is a 32 bit PROTECTED MODE OS. > >I'm not confused, bucko. You are. Look at what you wrote: full of intel >marketing terms for privileged mode, user mode, and so on. I would not call it marketing hype. More like a difference in religion and it's terms. In the Motorola processors, privileged/user modes are used to allow the OS to execute several instructions that normal programs should not be allowed to use-- because they can effect the integrity of the computer. The 286/386/486's have a similar mechanism for this-- that is _loosely_ tied to 'protected mode'. What protected mode _really_ means is that the MMU is turned on fully-- and that _MEMORY_PROTECTION_ is turned on, hence the name "Protected mode". Since the 8088/8086 did not contain anything even closely resembling an MMU, it does not have a protected mode. (While I imply that the 286 _does_ have an MMU, I will agree that it only resembles an MMU in the most broad sence of the word.) It's not a marketing term-- mearly another name for what is taken for granted on most 32 bit CPU's. Intel users could not take it for granted since they never had it before (and judging by all the MS-DOS software out there, they still dont have it :). >As far as the programming model (the only one that counts) is concerned, >the 8088 is an 8-bit processor with 4 bank-select registers built in. There >were companies doing operating systems for bank-selected 8-bit micros that >would have blown your socks of: Cromix from Cromemco, a UNIX-like O/S on >multiple bank-switched Z80s. OS/9 from Microware, still available for the >Radio Shack color computer, and still a 16-bit O/S for all it's running >on a 6809. In _every_ respect, the 8088/8086 is a _16_ bit CPU. Eveything from the instruction set to it's registers indicate this. MS-DOS fully utilizes all of the 8088 features, so I will classify it as a 16 bit OS. What the 8088 is not is a 24 or 32 bit CPU. It is strictly a 16 bit device, even down to the address calculation section of the chip. In this section, all addresses are calulated to 16 bits, then at the last moment it is added to the segment prefix, yeilding a 20 bit result (ok, there is one >16 bit thing in it). Anyway, Intel choose to use segments to give it a 1 meg address range rather than increase the registers and what-not to 24 or 32 bits. I'm sure that in the late 1970's this seemed to be the reasonable thing to do, however hindsight shows it in a different light. And as we all know, this has been proved by most to be _stupid_. I really must say, however, that the addressing of the CPU has no effect on the number of bits that the OS "is". Weither the OS is multi-tasking, multi-user, how much memory it supports, if it has virtual memory, or even if it supports hard drives has _NOTHING_ to do with how many bits the OS is... >Oh? It's not an extent-based file system, with 8+3 filenames, CR/LF as the >line terminator, and so on? It's not still purely single-tasking? They now >provide real interrupt-driven device drivers? Hmmm... Yes, MS-DOS has been re-written several times-- but no-one is saying that it is a _good_ rewrite. It is also a common mis-conception that the PC's intterupts are somewhat lacking. Well, the only thing they lack is a limit of 15 intterupt sources on the ISA bus. They are fully 'hard' vectored, etc, etc... The 'device' drivers are intterupt driven-- and all third-party drivers that I know of are intterupt driven. The only driver that is not is the DOS/BIOS serial drivers-- but _NO_ONE_ uses that driver, choosing to use their own custom drivers (this has been common practice since about 1983). >No. Actually, MS-DOS is worse than CP/M. CP/M never got caught into the trap >of becoming specific to one piece of hardware. Wasn't CP/M specific to Z80 (and the like) CPU's? I don't know which is worse, Z80 or MS-DOS... No-one ever said that MS-DOS is anything close to GOOD... In fact, it is common knoledge that MS-DOS isn't worth the rust it is stored on, but... The original dis-agreement was if MS-DOS is 8 or 16 bits-- and you know my opinions on that! >> Take this from someone who has programmed for MS DOS and used CP/M. > >Take this from someone who has programmed both MS-DOS and CP/M, who did >a Forth-based multitasker that ran fine under CP/M in 1983, and who has >used and programmed under more different operating systems than you can >spell. Then you ought know better! Both you and I know that the 8088 CPU's have 16 bit registers, and in the case of the 8086/80186/80286 they have 16 bit data paths. MS-DOS utilizes those registers (all 16 bits) to do it's calulations and what-not. It doesn't matter if it emulates CP/M's bugs. The fact that it uses 16 bit registers and numbers is well known/documented, and should be proof enough to it's "Number of bits". C'mon Peter, I've heard more intelligent things come from you before! >Peter da Silva. `-_-' ><peter@sugar.hackercorp.com>. -- David Kessner - david@kessner.denver.co.us | do { 1135 Fairfax, Denver CO 80220 (303) 377-1801 (p.m.) | . . . If you cant flame MS-DOS, who can you flame? | } while( jones);
david@kessner.denver.co.us (David Kessner) (05/01/91)
Sorry, Peter, for posting twice... I replied to a previous post of yours before this one (intended for me) came through... In article <1991Apr30.113402.2522@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: >> Now, I will be the _LAST_ person to extole the virtues of MS-DOS, but lets >> get our facts straight, will we? > >OK, you go read the message I just wrote to Peter Dinda. You been eating up >the propoganda just fine too... I did. Wasn't impressed. >> MS-DOS is a _16_ bit operating system. While it may be similar to CPM I >> doubt that it is a "staight copy" since CPM was strictly a 8 bit OS, and >> MS-DOS clearly has support for the _16_BIT_REGISTERS_ that the CPU has. > >Oh right! The 16-bit registers! I'd suggest you look at the 1802, a 4/8 bit >microprocessor that comes with 16 16-bit registers. Then _YOU_ define your view of a 16 bit OS. (I missed the first few messages in this thread, so I probably didn't read it if you posted it.) >For that matter, what do you think HL is? I guess I do better on ink-blots... Considering I have no idea what you are talking about here, I havn't the foggiest idea what HL is. >As for being a copy of CP/M... that was not only intentional it was stated >as a virtue of the machine by IBM back in 1981. All us CP/M hackers were >puking, but the business community ate it up by god. I know that it was initally based on CP/M... But it is not CP/M. It's easy to prove. Look at the calls to DOS/BIOS-- they are specific to the 80x86's registers/segments. There is an obvious difference that would make MS-DOS and CP/M in the same family-- but not twins. There is enough differnce to not equate the two (like how you don't equate Ultrix with UNIX). >> That is _my_ definition of a 16 bit operating system-- the number of bits >> in the registers that it actually _uses_. > >Fine. Then I've *written* a 16-bit operating system. So I'm qualified to >speak on such issues, and MS-DOS isn't one. Facts, man-- just the facts. _WHY_ isnt it a 16 bit OS? You know what I think it is 16 bits... You agree with the facts I provide (ie, 16 bit registers)... But you don't come to the same conclusion. Why? >Peter da Silva. `-_-' ><peter@sugar.hackercorp.com>. -- David Kessner - david@kessner.denver.co.us | do { 1135 Fairfax, Denver CO 80220 (303) 377-1801 (p.m.) | . . . If you cant flame MS-DOS, who can you flame? | } while( jones);
peter@sugar.hackercorp.com (Peter da Silva) (05/01/91)
In article <1991May1.064455.3058@kessner.denver.co.us> david@kessner.denver.co.us (David Kessner) writes: > In article <1991Apr30.112820.2451@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: > >In article <1991Apr28.162045.15585@daffy.cs.wisc.edu> dinda@cat55.cs.wisc.edu (Peter Dinda) writes: > >> WRONG. > >I love it how these college freshmen are so bloody sure of themselves. > What makes _YOU_ so sure? Experience, kid. > >> MS DOS is a 16 bit REAL MODE operating system. You may be getting > >> confused since something like OS/2 1.x is a 16 bit PROTECTED MODE OS, while > >> OS/2 2.x is a 32 bit PROTECTED MODE OS. > >I'm not confused, bucko. You are. Look at what you wrote: full of intel > >marketing terms for privileged mode, user mode, and so on. > I would not call it marketing hype. More like a difference in religion and > it's terms. [stuff about motorola vs. intel] Motorola calls it Supervisor mode, mate. Which is closer to the normal terms for the thing. > In _every_ respect, the 8088/8086 is a _16_ bit CPU. It's a bag on the side of the 8080. Everything from the instruction set to its registers (and the direct mapping from its registers to the 8080's) indicates this. > In this section, > all addresses are calulated to 16 bits, then at the last moment it is added > to the segment prefix, yeilding a 20 bit result (ok, there is one >16 bit > thing in it). Just like an 8080 with external banking. > It is also a common mis-conception that the PC's intterupts are somewhat > lacking. There you go, quibbling about hardware again. I'm talking about MS-DOS. You know, the software? It doesn't take advantage of any of that stuff. It is STILL not possible to reliably use the serial port under DOS. You STILL have to write your own device drivers. Bleagh. > drivers are intterupt driven ... The only driver that is not is the DOS/BIOS > serial drivers-- -- and the keyboard and the parallel port and the screen (remember all the snow problems on the screen because the DOS drivers weren't synchronised with the vertical blank?) -- > but _NO_ONE_ uses that driver, choosing to use their own custom > drivers (this has been common practice since about 1983). That's the point. Thank you for making it for me. And people write their own custom handlers for the keyboard interrupt and so on as well. > >No. Actually, MS-DOS is worse than CP/M. CP/M never got caught into the trap > >of becoming specific to one piece of hardware. > Wasn't CP/M specific to Z80 (and the like) CPU's? I don't know which is > worse, Z80 or MS-DOS... CP/M ran on the Z80, the 8080, and the 8085. There were versions of CP/M for the 8086 and 68000 as well. It ran on machines from homebrew S100 bus boxes with TV-typewriters for terminals to 30-or-more user multi-CPU timeshared office systems. It was basically *the* business system for its day, which is why Seattle Computer and later IBM deliberately copied it for their box. > The original dis-agreement was if MS-DOS is 8 or 16 bits-- and you know my > opinions on that! Sorry, mate. 8-bitness is in the blood. The 8088 was a bag on the side of the 8080, and MS-DOS was a straight copy of CP/M, and there's no way to get away from that. > Then you ought know better! Both you and I know that the 8088 CPU's have ... etc, etc, etc. The Cosmac 1802 has 16 16-bit registers, with a RISC-like addressing mode, hardware support for threads, and so on. But it's still a 4/8 bit CPU. For that matter the Z80 has 16-bit registers (HL, IX, IY). Look at the programming model. Not the manufacturers specs. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
peter@sugar.hackercorp.com (Peter da Silva) (05/01/91)
In article <1991May1.070516.3257@kessner.denver.co.us> david@kessner.denver.co.us (David Kessner) writes: > Then _YOU_ define your view of a 16 bit OS. (I missed the first few > messages in this thread, so I probably didn't read it if you posted it.) A 16-bit O/S is designed for the environment provided by 16-bit micros and minis. It takes advantage of the extra address space available to provide scheduling, memory management, device management, and so on. In a 16-bit O/S 90% of programs don't have to deal with the hardware directly for anything: the operating system provides the services it needs. An 8-bit O/S is designed mainly to provide the basic tools needed to load programs and manage files in the minimal space possible. Things like scheduling are irrelevent: there's no way you could run more than one functional program at a time in the 64K anyway. A 32-bit O/S provides even more hardware transparency than a 16-bit one. Demand Paged virtual memory hide the limits of RAM, networking hides the limits of the disk. The sophisticated memory management hardware on 32-bit processors allows all this to work. > I guess I do better on ink-blots... Considering I have no idea what you are > talking about here, I havn't the foggiest idea what HL is. It's the 16-bit memory access register in the 8080 family. > I know that it was initally based on CP/M... But it is not CP/M. It's > easy to prove. Look at the calls to DOS/BIOS-- they are specific to the > 80x86's registers/segments. There is an obvious difference that would make > MS-DOS and CP/M in the same family-- but not twins. There is enough differnce > to not equate the two (like how you don't equate Ultrix with UNIX). But I *do* equate Ultrix with UNIX. In fact, anything that provides the basic 35 system calls from V7 days is UNIX. > Facts, man-- just the facts. _WHY_ isnt it a 16 bit OS? See above. > You know what I think it is 16 bits... You agree with the facts I provide > (ie, 16 bit registers)... But you don't come to the same conclusion. Why? Because I don't agree with your definition. I look at the capabilities and programming model. Where the software was born, not where it lives now. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
daveh@cbmvax.commodore.com (Dave Haynie) (05/02/91)
In article <1991May1.064455.3058@kessner.denver.co.us> david@kessner.denver.co.us (David Kessner) writes: >In article <1991Apr30.112820.2451@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: >>In article <1991Apr28.162045.15585@daffy.cs.wisc.edu> dinda@cat55.cs.wisc.edu (Peter Dinda) writes: >>I love it how these college freshmen are so bloody sure of themselves. >What makes _YOU_ so sure? Scars acquired over years of working "in the business" are a reasonable assurance. >>As far as the programming model (the only one that counts) is concerned, >>the 8088 is an 8-bit processor with 4 bank-select registers built in. >In _every_ respect, the 8088/8086 is a _16_ bit CPU. No, the 8088 is, of course, an 8 bit CPU from the hardware viewpoint. Every chip can be viewed from the hardware prespective (what pins are on the actual chip), the chip architecture point of view (ALU size, etc.) or the software point of view (eg, programmer's model). >I'm sure that in the late 1970's this seemed to be the reasonable thing to >do, however hindsight shows it in a different light. It was obviously not reasonable to anyone but Intel. They felt it was reasonable because it made the 8086/8 assembly code very similar to 8080/5 assembly code. >I really must say, however, that the addressing of the CPU has no effect >on the number of bits that the OS "is". Only because it's impossible to represent the "size" of any OS as a single number. At the very least, you need separate numbers for the addressing and operation size of an OS. That makes MS-DOS a 20/16 bit OS, the Amiga OS a 32/32 bit OS, Mac OS (at least System 6 and below) a 24/32 bit OS, etc. according to this particular model. But even that's an artificial measure for the most part. >It is also a common mis-conception that the PC's intterupts are somewhat >lacking. Well, the only thing they lack is a limit of 15 intterupt sources >on the ISA bus. No, actually, it is well documented FACT that the PC's interrupts are brain damaged. The whole point is that they are positive edge sensitive interrupts, and therefore can't be shared. The whole industry has pretty much decided that level sensitive, active low, shareable interrupts are a much better idea, long before the PC showed up. >>No. Actually, MS-DOS is worse than CP/M. CP/M never got caught into the trap >>of becoming specific to one piece of hardware. >Wasn't CP/M specific to Z80 (and the like) CPU's? I don't know which is >worse, Z80 or MS-DOS... CP/M was specific to any Z-80 computer it had been ported to. MS-DOS is specific to any 8088 computer, as long as that computer is an exact clone of the IBM PC. See the difference? CP/M was processor dependent, but not system dependent. MS-DOS, for all intents and purposes, is system dependent, as the owners of Tandy 1200s or Mindsets could well attest to. >>Peter da Silva. `-_-' >David Kessner - david@kessner.denver.co.us | do { -- Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy "That's me in the corner, that's me in the spotlight" -R.E.M.
kls30@duts.ccc.amdahl.com (Kent L Shephard) (05/02/91)
In article <1991Apr30.113840.2593@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: >In article <2brN02no07bc01@JUTS.ccc.amdahl.com> kls30@DUTS.ccc.amdahl.com (PUT YOUR NAME HERE) writes: >> As long as it is written for 64K or greater it is a 16bit OS. > >As another poster has noted, MS-DOS really isn't an O/S at all. But if you >include "64K or greater" that makes TRS-DOS, Apple-DOS, CP/M, and so on >16-bitters. (hell, the Apple ROMS did include a 16-bit p-machine) > >> Multitasking has nothing to do with whether an OS is 8,16, or 32bits. If >> you exclude the multitasking constraint MS-DOS is a 16 bit OS. > >If you exclude the passenger seats a motorcycle is a car, right? > You confuse features and function. A 16bit OS DOES NOT have to have multitasking to be 16bit. >By your logic, an 8-bit O/S could only address 256 bytes, right? By my definition - not logic - an 8bit OS must address at LEAST 256 bytes, more is good but 256 bytes is minimum. For a 16 bit 64k is minimum. It must also support the relavent data type. MS-DOS does both, ie. 640k memory and 16bit data types. >-- >Peter da Silva. `-_-' ><peter@sugar.hackercorp.com>. -- /* -The opinions expressed are my own, not my employers. */ /* For I can only express my own opinions. */ /* */ /* Kent L. Shephard : email - kls30@DUTS.ccc.amdahl.com */
david@kessner.denver.co.us (David Kessner) (05/02/91)
In article <1991May1.115856.13525@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: >It's a bag on the side of the 8080. Everything from the instruction set to >its registers (and the direct mapping from its registers to the 8080's) >indicates this. >Just like an 8080 with external banking. >Sorry, mate. 8-bitness is in the blood. The 8088 was a bag on the side of >the 8080, and MS-DOS was a straight copy of CP/M, and there's no way to >get away from that. Same song, second verse... Ho-hum... You have effectively babbled, saying 'this isnt true, neither is that, this is the way it is' but still have not sais anything worthwhile. C'mon, an Amish is less passive that you are. Back up what you are saying! I contend that MS-DOS/CPM and 8088/8080 are different enough to be considered in their own light. Never mind this "It's based on this/that" BS! Tell us what features of MS-DOS make it an 8 bit OS. >-- and the keyboard and the parallel port and the screen (remember all the >snow problems on the screen because the DOS drivers weren't synchronised with >the vertical blank?) -- So what? This has _NOTHING_ do do with the topic of "How many bits is MS-DOS?" (But it does show how bad MS-DOS is...) The keyboard is not intterupt driven? Then someone should tell the guys at Phenix Technologies! In their book on the BIOS, the keyboard ISR is located at INT 09h (the Keyboard Device service routine is at INT 16h). Tis true that the printer driver is not normally intterupt driven, but all print spoolers are-- including the 'print' command that comes standard with MS-DOS. The only reason there was snow on the early displays was because the card was not designed well-- they were mostly CGA displays and some 'almost compatables' made by AT&T. This is not a problem in current machines. The only time I have seen snow on a VGA screen was when I was doing color cycling on an 800x600x256 color screen without syncing it to the refreash-- but this mode is way beyond the drivers anyway, so custom drivers are required anyway. >Peter da Silva. `-_-' ><peter@sugar.hackercorp.com>. -- David Kessner - david@kessner.denver.co.us | do { 1135 Fairfax, Denver CO 80220 (303) 377-1801 (p.m.) | . . . If you cant flame MS-DOS, who can you flame? | } while( jones);
dinda@cat53.cs.wisc.edu (Peter Dinda) (05/02/91)
In article <1991Apr30.112820.2451@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: >In article <1991Apr28.162045.15585@daffy.cs.wisc.edu> dinda@cat55.cs.wisc.edu (Peter Dinda) writes: >> WRONG. > >I love it how these college freshmen are so bloody sure of themselves. > >Especially when they haven't been paying attention. As a young gentleman who is a hop, skip, and jump away from both a BSEE and BSCS, who has programmed privately for DOS and DOS/Windows and commercially (for IBM) for multithreaded OS/2, I take offense at your personal insult. Being a gentleman, I will not return it in kind. > >> MS DOS is a 16 bit REAL MODE operating system. You may be getting >> confused since something like OS/2 1.x is a 16 bit PROTECTED MODE OS, while >> OS/2 2.x is a 32 bit PROTECTED MODE OS. > >I'm not confused, bucko. You are. Look at what you wrote: full of intel >marketing terms for privileged mode, user mode, and so on. Umm, Intel, built the processors that OS/2 and DOS run on. I think they have the right to name what the modes are! Unlike something like a PDP-11 or VAX-11, 286 and 386 machines provide four levels of protection - not just a user and priveleged mode. > >> The simplest processor that >> can run MS DOS (the Intel 8088) is a 16 bit processor with an 8 bit data >> bus. > >As far as the programming model (the only one that counts) is concerned, >the 8088 is an 8-bit processor with 4 bank-select registers built in. There Sorry, the 8088 has a 16 bit ALU - most machines are characterized on the basis of two things - the ALU and the Data Bus Widths. The 8088 has an 8 bit Data Bus, but all internal processing is done 16 bits at a time. The register pairs can be used either as full 16 bit registers, or split in half to act as twice as many 8 bit registers. ES, DS, CS, and SS are used to point to current segments and a segment plus offset scheme is used - this is kind of like the Base plus offset addressing found in an IBM 370 - but I forget, that's also an 8 bit system in your POV. >were companies doing operating systems for bank-selected 8-bit micros that >would have blown your socks of: Cromix from Cromemco, a UNIX-like O/S on >multiple bank-switched Z80s. OS/9 from Microware, still available for the >Radio Shack color computer, and still a 16-bit O/S for all it's running >on a 6809. > >> MS DOS, or for that matter, QDOS, is not a direct copy of CP/M - even >> the command interpreters accept different commands. > >Oh, the shell defines the O/S? Look at the system calls in MS-DOS 1.x >some time. Bug-for-bug compatible with CP/M. Sorry, note by use of the word "even" - the system calls for CP/M were never implemented as software interupts, now were they? And CP/M didn't provide for Device Drivers did it? You didn't have to patch DOS 1.x to add new devices! > >> Finally, MS DOS has now >> been rewritten 4 times - pretty much elliminating any resemblence to CP/M, >> even in the file system, etc. > >Oh? It's not an extent-based file system, with 8+3 filenames, CR/LF as the >line terminator, and so on? It's not still purely single-tasking? They now >provide real interrupt-driven device drivers? > >From where I sit, the 2.0 system calls are nothing more than a frill. > >No. Actually, MS-DOS is worse than CP/M. CP/M never got caught into the trap >of becoming specific to one piece of hardware. Ah, yes. CP/M ran on something other than 8080 derivatives - good urban legend. DOS stays around because its what users demand and buy. If it were up to IBM and Microsoft, Intel based PCs would be using OS/2 right now. And with all your credentials you still have time to insult other readers of comp.sys.amiga.advocacy. My My, you must be good.
david@kessner.denver.co.us (David Kessner) (05/02/91)
In article <1991May1.120729.13618@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: >A 16-bit O/S is designed for the environment provided by 16-bit micros and >minis. It takes advantage of the extra address space available to provide >scheduling, memory management, device management, and so on. In a 16-bit >O/S 90% of programs don't have to deal with the hardware directly for >anything: the operating system provides the services it needs. > >An 8-bit O/S is designed mainly to provide the basic tools needed to load >programs and manage files in the minimal space possible.Things like scheduling >are irrelevent: there's no way you could run more than one functional program >at a time in the 64K anyway. By your definition, I could write a 16 bit OS for the 6502. While it only has a 64K address space, I could make it _MULTITASK_ (love that context switch time), resource tracking, device management, etc. In fact, the only thing that would be difficult is running large programs (or lots of small ones), virtual memory, and memory protection. Now, if I could do that with a 6502 (and it's THREE 8 bit registers and 256 byte pages) imagin how much easier it would be with a different CPU with more registers (16 bit at that), and 64K 'pages'. Nothing you mentioned is dependant on the magic 8 or 16 bit numbers. >A 32-bit O/S provides even more hardware transparency than a 16-bit one.Demand >Paged virtual memory hide the limits of RAM,networking hides the limits of the >disk. The sophisticated memory management hardware on 32-bit processors allows >all this to work. The things that you mention are more dependant on MMU's rather than anything else-- like the 'number of bits'. An MMU is requires to give you memory protection and virtual memory. Networking is certainly not dependant on the 'number of bits'. >But I *do* equate Ultrix with UNIX. In fact, anything that provides the basic >35 system calls from V7 days is UNIX. Ultrix (on the PDP-11) was in many respects a 16 bit operating system. It only did a very strange varient of VM, overlays (which were required even though it had virtual memory) were limited to 8K. Programs were limited to 64K in size. While it is somewhat UNIX like-- it is sufficently different from what most folks think of UNIX (like System Vr4) that it _MUST_ be thought of on it's own accord. Just because it has the "basic 35 system calls from V7 days" may mean it is very much like UNIX, but that it is not identical to other UNIX's. Likewise, MS-DOS is very similar to CP/M-- but it is different enough to be considered on it's own endowments. >> Facts, man-- just the facts. _WHY_ isnt it a 16 bit OS? > >See above. Thank you. >Peter da Silva. `-_-' ><peter@sugar.hackercorp.com>. -- David Kessner - david@kessner.denver.co.us | do { 1135 Fairfax, Denver CO 80220 (303) 377-1801 (p.m.) | . . . If you cant flame MS-DOS, who can you flame? | } while( jones);
jbickers@templar.actrix.gen.nz (John Bickers) (05/02/91)
Quoted from <1991May1.064455.3058@kessner.denver.co.us> by david@kessner.denver.co.us (David Kessner): > the instruction set to it's registers indicate this. MS-DOS fully > utilizes all of the 8088 features, so I will classify it as a 16 bit OS. When one calls an MS-DOS "interrupt" (haw, reminds me of the C= 64), isn't the interrupt number a byte? That's a fundamental part of the OS that is only 8 bits. > David Kessner - david@kessner.denver.co.us | do { -- *** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** *** "Endless variations, make it all seem new" - Devo. ***
peter@sugar.hackercorp.com (Peter da Silva) (05/02/91)
In article <1991May2.010922.6096@kessner.denver.co.us> david@kessner.denver.co.us (David Kessner) writes: > I contend that MS-DOS/CPM and 8088/8080 are different enough to be considered > in their own light. Never mind this "It's based on this/that" BS! Tell us > what features of MS-DOS make it an 8 bit OS. Tell me what features make it a 16-bit one. MS-DOS 1.X was a straight copy of CP/M-80, so how about starting there and tell me why a straight copy isn't the same sort of software. If you can't do that, tell me which of the handful of features added in 2.X make the difference. > The keyboard is not intterupt driven? Then someone should tell the guys > at Phenix Technologies! In their book on the BIOS, the keyboard ISR is > located at INT 09h (the Keyboard Device service routine is at INT 16h). Yes, but it's not known to MS-DOS. Have you decided to include the ROM BIOS in your definition of MS-DOS? The HP-150 at work I'm using as a smart terminal has a completely different BIOS: does that mean it doesn't run MS-DOS? Why don't you include the hardware as well? Or the application? > Tis true that the printer driver is not normally intterupt driven, but all > print spoolers are-- including the 'print' command that comes standard with > MS-DOS. Right. The application has to take over because the O/S doesn't take advantage of it. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
peter@sugar.hackercorp.com (Peter da Silva) (05/02/91)
In article <1991May2.012127.28779@daffy.cs.wisc.edu> dinda@cat53.cs.wisc.edu (Peter Dinda) writes: > As a young gentleman who is a hop, skip, and jump away from both > a BSEE and BSCS, who has programmed privately for DOS and DOS/Windows and > commercially (for IBM) for multithreaded OS/2, I take offense at your > personal insult. Being a gentleman, I will not return it in kind. That's OK, I'll take it as read. I think you've proved my point. You've so little experience with operating systems other than UNIX or DOS and derivitives that you don't understand what I'm getting at. > Umm, Intel, built the processors that OS/2 and DOS run on. I think they > have the right to name what the modes are! Sure they do, and they have every right to call their bank-select registers "segment" registers, even though they're crippled by comparison with real segments. And I have every right to point out that using them that way indicates a lack of experience. > Unlike something like a > PDP-11 or VAX-11, 286 and 386 machines provide four levels of protection - > not just a user and priveleged mode. Yes, and the Honeywell/GE machines Multics ran on provided what... 6 levels? > Sorry, the 8088 has a 16 bit ALU - most machines are characterized on > the basis of two things - the ALU and the Data Bus Widths. The 8088 has > an 8 bit Data Bus, but all internal processing is done 16 bits at a time. > The register pairs can be used either as full 16 bit registers, or split > in half to act as twice as many 8 bit registers. Uh, huh. And the 6809 (clearly an 8-bit machine) has a 16-bit ALU and an 8-bit data bus, 16-bit registers and PC. That makes it every bit as 16-bit as the 80x86 (x<2). The 1802 has an 8-bit ALU, 8-bit data bus, and 16 16-bit registers. But all three of these chips have the same limitations in their programming model: you can't point to more than 16 bits of address at a time. > Sorry, note by use of the word "even" - the system calls for CP/M were never > implemented as software interupts, now were they? Hey, UNIX system calls have been implemented as everything from call-gates to interrupts and illegal iunstruction traps. That doesn't mean that System V on a 68000 and System V on an 80386 are different operating systems. > And CP/M didn't provide > for Device Drivers did it? You didn't have to patch DOS 1.x to add new > devices! You have to re-link the kernel to add new devices in UNIX. So I guess by your logic it's an 8-bit O/S. After all, it's just the same as relinking CP/M (not patching, unless your vendor ripped you off and didn't give you a copy of BIOS.ASM). > Ah, yes. CP/M ran on something other than 8080 derivatives - good > urban legend. You can buy a 68000-based CP/M box today: it's called the Atari ST. > DOS stays around because its what users demand and buy. If > it were up to IBM and Microsoft, Intel based PCs would be using OS/2 right > now. Microsoft has abandoned OS/2, didn't you notice? (OS/2: bigger than UNIX and does half as much. Would *you* buy half an O/S?) > And with all your credentials you still have time to insult other readers > of comp.sys.amiga.advocacy. My My, you must be good. There, I know you couldn't resist trading insults after all. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
peter@sugar.hackercorp.com (Peter da Silva) (05/02/91)
In article <1991May2.013735.6365@kessner.denver.co.us> david@kessner.denver.co.us (David Kessner) writes: > By your definition, I could write a 16 bit OS for the 6502. Yes, you could. In fact Apple was doing that very thing on the Apple ///, when they decided to dump it. Using banking a 6502 can address just as much memory as an 8088, in 16K (12K on the ][) chunks instead of 64K ones. > Nothing you mentioned is dependant on the magic 8 or 16 bit numbers. What's magic. I'm talking about memory limitations. The IBM-PC originally shipped with the same 64K CP/M ran under. > The things that you mention are more dependant on MMU's rather than anything > else-- like the 'number of bits'. It's, like all other distinctions, a tag. There are commonalities among 8-bit CPUs, 16-bit ones, and 32-bit ones. > >But I *do* equate Ultrix with UNIX. In fact, anything that provides the basic > >35 system calls from V7 days is UNIX. > Ultrix (on the PDP-11) was in many respects a 16 bit operating system. Ultrix ran on the VAX. Were you thinking of Version 7 UNIX? Swapping UNIX systems are indeed 16-bit. Not surprising... the PDP-11 is a 16-bit machine. But Ultrix is DEC's name for their VAX UNIX. They never shipped a UNIX for the PDP-11. Why don't you check your facts and try again? > While it is somewhat UNIX like-- it is sufficently different from what most > folks think of UNIX (like System Vr4) that it _MUST_ be thought of on it's > own accord. MUST be. I see. because some marketing bozo at AT&T had a bright idea one day earlier versions of the O/S, even from AT&T, are different. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
david@kessner.denver.co.us (David Kessner) (05/03/91)
Peter S. Writes: >Tell me what features make it a 16-bit one. MS-DOS 1.X was a straight copy of >CP/M-80, so how about starting there and tell me why a straight copy isn't >the same sort of software. If you can't do that, tell me which of the handful >of features added in 2.X make the difference. As Dave Haynie said in his response (quoted later on), the OS is difficult to quantify in nice neat numbers like 8 or 16 'bits', however... IMHO, the 'bits' of an OS is the largest number it can put in a CPU register. This is directly related to the speed of handling some OS functions like calculating track/sector/etc offsets into a file system, generating CRC's for error detection, etc. In this light, MS-DOS is a 16 bit OS. Plain and simple. Now, you might want to throw other 'required features' into this definition, but things like Multitasking, shared libraries, etc should not be a factor in this-- since a 6502 could easily handle shared libraries... >Yes, but it's not known to MS-DOS. Have you decided to include the ROM BIOS >in your definition of MS-DOS? The HP-150 at work I'm using as a smart terminal >has a completely different BIOS: does that mean it doesn't run MS-DOS? Yes, I include the BIOS in the general scheme of MS-DOS. Why? For several reasons: The operating system (and/or device drivers) should deal with any hardware differences between machines-- and that is the role of the BIOS. The BIOS is highly standardized. In fact, they are (almost) interchangeable between machines-- as long as the machines have the same CPU and chipset there is a big chance that the 'other' BIOS will work. The biggest difference is POST code and setup menus. The BIOS plays just a large of a role in the MS-DOS world as MS-DOS itself does. When you do application programming, you try to call BIOS functions rather than MS-DOS functions (their faster, usually), etc. The BIOS is used by MS-DOS and MS-DOS only-- and the software that runs under it. UNIX/XENIX use the BIOS for loading the kernal and then switch it out ASAP. (According to Phenix, OS/2 uses a BIOS extention called ABIOS but my reference is old, 1989. At any rate OS/2 isnt the topic here.) I think of the BIOS as part of MS-DOS that comes with the machine. Like motherboard-ROM-Based-MS-DOS-drivers. >Why don't you include the hardware as well? Or the application? I don't (usually) include the hardware because it is only partially related to the OS. For instance, MS-DOS on a 386 is _not_ a 32 bit OS although it does have 32 bit applications. Especally in the Intel arena, the destinction between 16 and 32 bit hardware is very clear-- the same can be said for software. Autocad 10 is clearly 16 bit (it runs on a 286), while Autocad-386 is clearly 32 bits (and the 2-5x speed improvement is clear). I know you asked that sarcastically, but the answer was worth stating. >Right. The application has to take over because the O/S doesn't take advantage >of it. And this makes it a 8 bit OS? >Peter da Silva. `-_-' ><peter@sugar.hackercorp.com>. In article <21135@cbmvax.commodore.com> daveh@cbmvax.commodore.com (Dave Haynie) writes: >>In _every_ respect, the 8088/8086 is a _16_ bit CPU. > >No, the 8088 is, of course, an 8 bit CPU from the hardware viewpoint. Every >chip can be viewed from the hardware prespective (what pins are on the actual >chip), the chip architecture point of view (ALU size, etc.) or the software >point of view (eg, programmer's model). Ok, ok. Point Taken! :) I goofed in combining the 8088 into that statement and not considering the external hardware point of view. I say 'external hardware' because it's just that-- to the rest of the computer hardware, the 8088 is a 8-bit CPU. Internally the ALU and registers are 16 bit. From the software point of view (which is the view MS-DOS has) the 8088 and 8086 are identical (with a few very small differences) and are 16 bits... >>I'm sure that in the late 1970's this seemed to be the reasonable thing to >>do, however hindsight shows it in a different light. > >It was obviously not reasonable to anyone but Intel. They felt it was >reasonable because it made the 8086/8 assembly code very similar to 8080/5 >assembly code. Yes, but every computer/chip maker has had those bad design choices. C= has the 1541 disk interface (no offence), IBM has the PCjr, etc. Intel has those 64K segments. Luckly, on the 386 Intel has made those segments 4gigabytes in size so this is no-longer an issue to those of us that run UNIX or 32-bit MS-DOS applications... I like how you said 'very similar' and not 'identical'. The 8088 should be evaluated by it's own merits and not those of it's predicesors. While knoledge of the 8080/5 may provide insight into the workings of the 8088 it cannot be considered the last word. After all, if you want to evaluate a human you don't look at the monkey-- you look at a human! (Although it can be difficult to tell the two apart at times.) In the same, MS-DOS should be evaluated by looking at MS-DOS-- not CP/M. >>I really must say, however, that the addressing of the CPU has no effect >>on the number of bits that the OS "is". > >Only because it's impossible to represent the "size" of any OS as a single >number. At the very least, you need separate numbers for the addressing and >operation size of an OS. That makes MS-DOS a 20/16 bit OS, the Amiga OS a >32/32 bit OS, Mac OS (at least System 6 and below) a 24/32 bit OS, etc. >according to this particular model. But even that's an artificial measure >for the most part. Exactly-- only I didnt include the numbers for the addressing size of the OS. It is difficult to judge this number in the MS-DOS arena, however, since of EMS/XMS (for that matter, are these 'part' of the OS?). If we consider the BIOS part of MS-DOS, and there are EMS drivers in the BIOS, then does the addressing size of the OS go up to 24 bits? It's just a thought, however, and I'll accept the 20/16 figures for MS-DOS... They are only artifical numbers because these numbers do not greatly effect the features of the OS. After all, an 8-bit CPU can easily have all the features of UNIX-- with two constraints, it has something like an MMU and the kernal is not 'too' big for the memory space of the CPU. What the numbers do indicate is the amount of overhead the OS has-- and is _loosely_ related to speed. An 8 bit CPU can deal with 32 bit numbers just fine-- it just takes several instructions to do what a 32 bit CPU could do in one or two. This is the real 'bit measurement', IMHO. If MS-DOS were a 8 bit OS, when it added two 16 bit numbers it would add the lower 8 bits, then the upper 8 (accounting for a carry). This can be extended to reflect the real world-- on a 386, when MS-DOS and MS-DOS software adds two 32 bit numbers, it adds the lower 16 bits, then the upper 16 bits even thought the CPU is perfectly capable of adding all 32 bits in one shot. >>It is also a common mis-conception that the PC's intterupts are somewhat >>lacking. Well, the only thing they lack is a limit of 15 intterupt sources >>on the ISA bus. > >No, actually, it is well documented FACT that the PC's interrupts are brain >damaged. The whole point is that they are positive edge sensitive interrupts, >and therefore can't be shared. The whole industry has pretty much decided that >level sensitive, active low, shareable interrupts are a much better idea, long >before the PC showed up. This is more of a function of the hardware than MS-DOS. For instance, the 386 provides 256 hard-vectored interrupts (very much like the 68000 series), but the ISA bus (to the best of my knoledge) does not allow you to access them. If the hardware did allow you to use them, MS-DOS will let you use it (although setting up these intterupts is different, and the BIOS should reflect this change). EISA is just such a beast, and even offers level-sensitive intterupts _AS_WELL_AS_ the normal ISA intterupts (Damn compatability). I only mention the 386 because I know it more than the 286 or 8088 when it comes to intterupts... I would imagin that the 286 and 8088 offer something similar-- perhapse with less ability. It's the ISA bus and the Periferal Intterupt Controller that is the weak link. MS-DOS does not allow the sharing of intterupts-- even if the hardware supported it. It is because of common programming practace than of anything else. (My only experience with sharing intterupts is from the C-64, so with that in mind...) When the software shares intterupts, the new intterupt handler wedges itself into the 'intterupt chain'. When the handler is called, it checks to see if its device caused the intterupt, if not it jumps to the next handler in the chain. Since for so long the hardware has not supported sharing intterupts, neither does the software. It does not jump to the next handler in the chain-- although it remembers the previous handler and restores it when the new handler is removed. MS-DOS and ISA/EISA aside-- I question the benifits of shared intterupts when the CPU supports 256 intterupts, and more importantly, 256 intterupt vectors. Using non-chared intterupts and more of those 256 intterupts the intterupt latency can be reduced (since the CPU is not jumping from handler to handler trying to find the right one). >CP/M was specific to any Z-80 computer it had been ported to. MS-DOS is >specific to any 8088 computer, as long as that computer is an exact clone of >the IBM PC. See the difference? CP/M was processor dependent, but not >system dependent. MS-DOS, for all intents and purposes, is system dependent, >as the owners of Tandy 1200s or Mindsets could well attest to. Yes, and no. CP/M is more widely ported, true, and that's because of it's early history in a time where there was not a lot of hardware standards-- much like the history of UNIX. MS-DOS and the IBM PC were introduced at the climax of all of that and, for better or worse, became a standard that everyone else copied. This standard really became evident in the latter half of the 80's where there were really only two _major_ Hardware and OS standards in the busness PC world. At this point there was not much reason to make MS-DOS available on several CPU's. In addition, IBM's proprietary selfishness made any early cross-platform 'hooks' non-existant. Now that several million (3 million?) PC clones are sold each year, the point is moot, however. How does that go, "A sucker is born every..." >Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" > {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy > "That's me in the corner, that's me in the spotlight" -R.E.M. -- David Kessner - david@kessner.denver.co.us | do { 1135 Fairfax, Denver CO 80220 (303) 377-1801 (p.m.) | . . . If you cant flame MS-DOS, who can you flame? | } while( jones);
david@kessner.denver.co.us (David Kessner) (05/03/91)
In article <1991May2.105802.26053@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: >> Nothing you mentioned is dependant on the magic 8 or 16 bit numbers. > >What's magic. I'm talking about memory limitations. The IBM-PC originally >shipped with the same 64K CP/M ran under. > >> The things that you mention are more dependant on MMU's rather than anything >> else-- like the 'number of bits'. > >It's, like all other distinctions, a tag. There are commonalities among 8-bit >CPUs, 16-bit ones, and 32-bit ones. So, using your definitions for 8, 16, and 32 bit OS's (not quoted here), why should we use 'bits' as the unit of measurement-- since it is more than a little misleading. Perhapse another term should be 'generation', 'level', etc. For instance, a Level 1 OS would be nothing more than a program loader where a level 42 would do everything UNIX does now, with support for multi-CPU's, 64-bit address space, etc... This would be _MUCH_ better since your definitions have absolutely nothing to do with the number of bits in anything. >>>But I do equate Ultrix with UNIX. In fact, anything that provides the basic >>>35 system calls from V7 days is UNIX. > >>Ultrix (on the PDP-11) was in many respects a 16 bit operating system. > >Ultrix ran on the VAX. Were you thinking of Version 7 UNIX? Swapping UNIX >systems are indeed 16-bit. Not surprising... the PDP-11 is a 16-bit machine. > >But Ultrix is DEC's name for their VAX UNIX. They never shipped a UNIX for >the PDP-11. Why don't you check your facts and try again? Why don't _YOU_ check your facts. I have programmed a PDP-11/23 and a MicroPDP-11/something, both running _Ultrix_. And I mean Ultrix. It says Ultrix when it boots, on the manuals, on the order forms, and many other places. C'mon, give me a break! >Peter da Silva. `-_-' ><peter@sugar.hackercorp.com>. -- David Kessner - david@kessner.denver.co.us | do { 1135 Fairfax, Denver CO 80220 (303) 377-1801 (p.m.) | . . . If you cant flame MS-DOS, who can you flame? | } while( jones);
peterk@cbmger.UUCP (Peter Kittel GERMANY) (05/03/91)
In article <1991May2.104907.25975@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: >In article <1991May2.012127.28779@daffy.cs.wisc.edu> dinda@cat53.cs.wisc.edu (Peter Dinda) writes: > >> Sorry, the 8088 has a 16 bit ALU - most machines are characterized on >> the basis of two things - the ALU and the Data Bus Widths. The 8088 has >> an 8 bit Data Bus, but all internal processing is done 16 bits at a time. >> The register pairs can be used either as full 16 bit registers, or split >> in half to act as twice as many 8 bit registers. > >Uh, huh. And the 6809 (clearly an 8-bit machine) has a 16-bit ALU and an >8-bit data bus, 16-bit registers and PC. That makes it every bit as 16-bit >as the 80x86 (x<2). The 1802 has an 8-bit ALU, 8-bit data bus, and 16 16-bit >registers. But all three of these chips have the same limitations in their >programming model: you can't point to more than 16 bits of address at a time. Considering the ALU size can really be misleading. Someone told me that the Z80 only has a 4-bit ALU, though this processor provides some 16-bit commands (it's fast enough to break the 16-bit values into 4-bit nibbles and process them fast enough). Now what would you then call the Z80 and the CP/M running on it? 4-bit? (Ok, I know this only from hearsay, please correct me if I'm wrong.) -- Best regards, Dr. Peter Kittel // E-Mail to \\ Only my personal opinions... Commodore Frankfurt, Germany \X/ {uunet|pyramid|rutgers}!cbmvax!cbmger!peterk
peter@sugar.hackercorp.com (Peter da Silva) (05/03/91)
In article <43Eq02wy07X=01@JUTS.ccc.amdahl.com> kls30@DUTS.ccc.amdahl.com (Kent L. Shephard) writes: > You confuse features and function. A 16bit OS DOES NOT have to have > multitasking to be 16bit. 16-bit is a label. Applied to a CPU it has one meaning. Applied to an O/S there really isn't any meaning to it: CP/M runs on 8-bit and 32-bit CPUs. OS/9 does too. But CP/M is an 8-bit O/S, and OS/9 is a 16-bit O/S. > It must also support the relavent data type. MS-DOS does both, ie. > 640k memory and 16bit data types. Operating systems don't address memory. Operating systems don't support data types. CPUs and compilers do. Operating systems provide services to application programs. I'm categorising the operating systems by the services generally provided by other operating systems written for a class of CPUs. It makes as much sense as intel's calling the 8088 a 16-bit chip. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
daveh@cbmvax.commodore.com (Dave Haynie) (05/03/91)
In article <1991May3.041705.9907@kessner.denver.co.us> david@kessner.denver.co.us (David Kessner) writes: >Peter S. Writes: >>Tell me what features make it a 16-bit one. MS-DOS 1.X was a straight copy of >>CP/M-80, so how about starting there and tell me why a straight copy isn't >>the same sort of software. If you can't do that, tell me which of the handful >>of features added in 2.X make the difference. >As Dave Haynie said in his response (quoted later on), the OS is difficult >to quantify in nice neat numbers like 8 or 16 'bits', however... I think what Peter was considering, rather than actually "machine size" of the OS, is a more generational thing. Computers have gone though many distinct generations, but especially considering small computers, you can break up the various systems that came out over the years into groups based on OS technology. If you do that, you find that MS-DOS adds nothing to what was available in the preeminent OS on 8 bit system, CP/M. And, in fact, it's a step backwards in many respects, because for all practical purposes it's one abstraction level closer to the hardware than CP/M was. >IMHO, the 'bits' of an OS is the largest number it can put in a CPU register. The programmer's model, which is what you're calling out here, can set an upper limit to the speed at which things will happen in an OS, but I feel pinning any number of bits on an OS is wrong. It is true that MS-DOS running on 32 bit systems is still only executing 16 bit operations, so you would call that a 16 bit OS. How about an OS like the original Mac OS, or OS/K, which work with 68000s, but being base register addressed, have 32K limits to code or data chunks. Are these 8, 16, or 32 bit operating systems? All three numbers apply, depending on where you look. These processors have a 32 bit programming model, but the OS has addressing limits reminisent of a bank-switched 8 bit OS, while the actual ALU and data bus on the CPU hardware is 16 bits wide. >I like how you said 'very similar' and not 'identical'. The 8088 should >be evaluated by it's own merits and not those of it's predicesors. While >knoledge of the 8080/5 may provide insight into the workings of the 8088 >it cannot be considered the last word. Problem is, if you consider its history, the design makes some sense. Intel wanted an easy successor to its older part, and made an evolutionary step, not a revolutionary one. They didn't know where IBM would take the thing. If you take the 8088 on its own merits, especially in light of its use as the heart of a personal computer, you get the feeling they were both designed by monkeys. >MS-DOS does not allow the sharing of intterupts-- even if the hardware >supported it. It is because of common programming practace than of anything >else. (My only experience with sharing intterupts is from the C-64, so with >that in mind...) All 6502 systems had shared, active low, level sensitive interrupts. Z-80 based CP/M systems, the logical predecessor of MS-DOS systems if there was any, also had shared, active low, level sensitive interrupts. In many systems, this was done simply because you had a limited number of interrupts (guess what, if you allow expansion, you always do), more interrupt sources than inputs. Far as I know, the IBM PC is unique in the microcomputer world in getting this wrong. >MS-DOS and ISA/EISA aside-- I question the benifits of shared intterupts when >the CPU supports 256 intterupts, and more importantly, 256 intterupt vectors. You still want shared interrupts here. That's because each interrupt line determines priority. If you want to allow priority on your expansion bus, you're far better off having any number of shared interrupts available on each slot than slot-dedicated interrupts (Apple's contribution to NuBus) or, worse of all, non-sharable interrupts bused to each slot. Adding a vectoring capability means that vectored devices don't have to go through an interrupt server chain. It's really just an arbitration mechanism, the server chain, as on the Amiga, is software arbitration of the shared interrupt. Properly implemented vectored interrupts, such as the Zorro III bus' "Quick" interrupts, simply make the arbitration happen in hardware. You really don't want to lose the advantage of interrupt prioritization, even if you have vectors to make the arbitration process fast. >David Kessner - david@kessner.denver.co.us | do { -- Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy "That's me in the corner, that's me in the spotlight" -R.E.M.
kdarling@hobbes.catt.ncsu.edu (Kevin Darling) (05/04/91)
In <21216@cbmvax.commodore.com> daveh@cbmvax.commodore.com (Dave Haynie) writes: > [...] > How about an OS like the original Mac OS, or OS/K, which work with 68000s, > but being base register addressed, have 32K limits to code or data chunks. Small correction: OS9/68K (OSK) _itself_ has no limits; it works with 32-bit addresses, and any size chunk. The base 68000 cpu offset-limit handling is something the PIC/reentrant applications take care of themselves, via jump tables or using a temporary register for far offsets. And the "limit" there is 64K, not 32K... since the available 68000 register addressing offsets are +/-32K, y'see. OSK compilers automatically offset data references by $8000. Options deal with the more remote data/code. > Are these 8, 16, or 32 bit operating systems? All three numbers apply, > depending on where you look. These processors have a 32 bit programming > model, but the OS has addressing limits reminisent of a bank-switched 8 bit > OS, while the actual ALU and data bus on the CPU hardware is 16 bits wide. Hey, blame _Motorola_ for the 64K offset limits on a 68000 <g>. "Pure" (reentrant) code for the Amiga OS has the same data offset limitations. I must say that too many Amiga programmers shy away from the reentrant and position-independent modes of the 680x0, btw. Treating a 68K cpu like a giant 6502 makes me want to throw up :-). The fact that those addressing modes are _faster_ than the long addressing modes often used instead, is taking a long time to sink in. Yet they're what the cpu was designed for! To me, the Ami relocating loader is more Intel-like, than Motorola-like. Full agreement with the rest of your message, tho. Keep up the good work. This the first time I've ever found even a _tiny_ reason to contradict ya! deep regards - kevin <kdarling@catt.ncsu.edu>
farren@well.sf.ca.us (Mike Farren) (05/04/91)
daveh@cbmvax.commodore.com (Dave Haynie) writes: >It was obviously not reasonable to anyone but Intel. They felt it was >reasonable because it made the 8086/8 assembly code very similar to 8080/5 >assembly code. Not really. That's much more a matter of choice of mnemonics, rather than architectural similarity. The 8086 differed significantly from the 8080/8085, with only some basic architectural decisions (few registers, somewhat skewed addressing modes) making it "easy" to port assembly code between the two. The 8086, ***at the time it was introduced***, was a big step up. Until that time, the only 16-bit processors you could get were the National Semiconductor IMP-16 and the Texas Instruments TI9900, both of which were weird, weird, weird, both in the hardware and the software. The 8086, in comparison, was a delight. Of course, Motorola did the 68000 a year or two later, but for quite a while, you chose an 8086 or nothing if you wanted a reasonable 16-bit processor. -- Mike Farren farren@well.sf.ca.us
ping@ping.actrix.gen.nz (Peter Ingham) (05/04/91)
Quoted from <...unknown> by jbickers@templar.actrix.gen.nz (John Bickers): > Quoted from <1991May1.064455.3058@kessner.denver.co.us> by david@kessner.denver.co.us (David Kessner): > > > the instruction set to it's registers indicate this. MS-DOS fully > > utilizes all of the 8088 features, so I will classify it as a 16 bit OS. > > When one calls an MS-DOS "interrupt" (haw, reminds me of the C= 64), > isn't the interrupt number a byte? > > That's a fundamental part of the OS that is only 8 bits. > Not quite, 808x software & hardware interrupts use 8-bit identifiers to allow the O/S to know from whence the interrupt originated. This is a Hardware design restraint rather than a feature (or lack of it) in any particular 808x OS. -- Cheers Peter S. Ingham ping@ping.actrix.gen.nz Lower Hutt, New Zealand
<DXB132@psuvm.psu.edu> (05/04/91)
In article <1991May3.220043.28760@ncsu.edu>, kdarling@hobbes.catt.ncsu.edu (Kevin Darling) says: >Hey, blame _Motorola_ for the 64K offset limits on a 68000 <g>. "Pure" >(reentrant) code for the Amiga OS has the same data offset limitations. It doesn't help, but the '020 and higher offer full 32-bit offsets... -- Dan Babcock
ping@ping.actrix.gen.nz (Peter Ingham) (05/04/91)
Quoted from <...unknown> by david@kessner.denver.co.us (David Kessner): > >Sorry, mate. 8-bitness is in the blood. The 8088 was a bag on the side of > >the 8080, and MS-DOS was a straight copy of CP/M, and there's no way to > >get away from that. > > Same song, second verse... Ho-hum... The 8088/8086 was designed to be an upgrade path from 8-bit 8080 to 16-bit. (I mention both, as they were release at the same time. The 8086 has 16-bit external data bus, 8088 and 8-bit. Very similar to the 68000 (16 bit ext) and the 68008 (8-bit external) in concept. They (8088/8086) retained many of the features of 8080 (at the assembly level) so that much existing 8080 asm code could be ported without significant effort. These were commercial decisions taken by Intel in order to provide backwards compatibility. Intel have continued to make similar decisions since. Motorola, by way of contrast, chose to develop a _new_, non-compatible path with 68000 when replacing the 6800 & 6809. <Enable flame retardent> Commercially you could argue that Intel's decision was correct, many followed their direction and they have sold MPU's at a rate _FAR_ exceeding _any_ other manufacturer. Architecturally, the 68000 series is far cleaner that 80xx6. This is the price you pay for maintaining backwards compatibility. Without getting into a RISC/CISC argument here, the same thing applies. if you ignore backwards compatibility, you can get a much cleaner architecture, but you loose out (short-term) on application availability. > You have effectively babbled, saying 'this isnt true, neither is that, this > is the way it is' but still have not sais anything worthwhile. C'mon, an > Amish is less passive that you are. Back up what you are saying! > Agreed > I contend that MS-DOS/CPM and 8088/8080 are different enough to be considered > in their own light. Never mind this "It's based on this/that" BS! Tell us > what features of MS-DOS make it an 8 bit OS. Was MS-DOS a _copy_ of CP/M? NO. Was it designed to provide close to identical facilities? Yes Does (did) it add significant new functionality over & above CP/M? No (Also please Do not confuse CP/M with other O/S's such as MPM. It does not add any clarity to this discussion) Similar Functionality Spec, different implementation. While the arguments presented have made semi-interesting reading, I fail to see the point here. What is an 8-bit O/S? - surely one that runs on an 8-bit CPU. I have never seen MSDOS running on any 8-bit CPU. What is an 8-bit CPU? - surely one that uses 8-bits as the predominant data-register size. (ie: a CPU that uses 16-bit registers 95% of the time but can combine them to 32bits for some operations is a 16-bit CPU) In a previous posting, Peter da Silva has been arguing that the _facilites_ provided by an operating system define whether it is 8, 16 or 32 bit. This is patently false. It is however correct to state that MS-DOS provides the *facilities* commonly associated with several O/S's written for 8-bit systems. Is MS-DOS an Operating System?? Some would argue that it is in fact an overgrown file handler, and little more. There were some rather competent _Operating Systems_ around for 8-bit systems (eg: Flex, OS/9). There are also some very competent operating systems around for 80xx6. These include systems that provide nearly all of the *functions* described by Peter - Proper Interrrupt driven, Multi-tasking, Multi-processing, Virtual Memory (in all it's implementations), Clean API's, inbuilt distributed processing etc etc etc etc. I think we all agree that MS-DOS is not one of these. Is MS-DOS 8-bit? WHO CARES. Does it provide the features I want? NO Is there an O/S that does? YES THEN GO & BUY/USE IT. > If you cant flame MS-DOS, who can you flame? Well there's still every Mainframe IBM ever made .... -- Cheers Peter S. Ingham ping@ping.actrix.gen.nz Lower Hutt, New Zealand
jbickers@templar.actrix.gen.nz (John Bickers) (05/04/91)
Quoted from <160.tnews@ping.actrix.gen.nz> by ping@ping.actrix.gen.nz (Peter Ingham): > Quoted from <...unknown> by jbickers@templar.actrix.gen.nz (John Bickers): > > When one calls an MS-DOS "interrupt" (haw, reminds me of the C= 64), > > isn't the interrupt number a byte? > This is a Hardware design restraint rather than a feature (or lack of it) > in any particular 808x OS. The OS is supposed to be tied to the hardware... the smaller the CPU, the more likely this is to be. This is exactly why so many people think of MS-DOS as an 8-bit (or less) OS. > Peter S. Ingham ping@ping.actrix.gen.nz -- *** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** *** "Endless variations, make it all seem new" - Devo. ***
ping@ping.actrix.gen.nz (Peter Ingham) (05/04/91)
Quoted from <...unknown> by daveh@cbmvax.commodore.com (Dave Haynie): > Scars acquired over years of working "in the business" are a reasonable > assurance. Providing the scars have induced knowledge and insight, rather than being the result of repeated incompetence!!!! > > >>As far as the programming model (the only one that counts) is concerned, > >>the 8088 is an 8-bit processor with 4 bank-select registers built in. > > >In _every_ respect, the 8088/8086 is a _16_ bit CPU. > > No, the 8088 is, of course, an 8 bit CPU from the hardware viewpoint. Every 8088 is only 8-bit from the EXTERNAL hardware veiwpoint. As is the 68008. > >I'm sure that in the late 1970's this seemed to be the reasonable thing to > >do, however hindsight shows it in a different light. > > It was obviously not reasonable to anyone but Intel. They felt it was > reasonable because it made the 8086/8 assembly code very similar to 8080/5 > assembly code. > From a commercial perspective I'd say they were absolutely right. > CP/M was specific to any Z-80 computer it had been ported to. MS-DOS is > specific to any 8088 computer, as long as that computer is an exact clone of > the IBM PC. See the difference? CP/M was processor dependent, but not Not quite right Dave. In the early days, MS-dos was made available on several non-clones. MS-dos was implemented to operate on top of a System-dependant BIOS. The intention was that USER programs would NOT use BIOS calls, nor access the hardware directly. I know of at least two MS-Dos implementations (both more than 6 years since release) where the "BIOS" is in fact a multi-tasking, interrupt-driven O/S, more powerfull in it's own right than MS-DOS (which it views as a task). PC-DOS, on the other hand, _IS_ clone specific. PC-DOS (as released by IBM) contained IBM additions. IBM also encouraged (through detailed documentation) the direct calling of BIOS routines, and direct access to hardware. Due to the commercial realities of 3rd-Party developers going after every last ounce of performance etc etc, they have bypassed the O/S in many cases. This was not helped by the severe lack of features and future-direction compatibility considerations in the O/S. So what happens? Everyone goes their own way, the O/S slowly becomes almost irrelevant and you end up with a marketplace based around a Hardware Interface (the "Clone") rather than a software model of a virtual hardware environment. Some user software (eg: Multiplan 3.0) has been released as both MS-DOS *AND* PC-DOS compatible. (ie: avoids System-specifics). > system dependent. MS-DOS, for all intents and purposes, is system dependent, > as the owners of Tandy 1200s or Mindsets could well attest to. As above, don't confuse MS-DOS, with PC-DOS/ PC-Clone requirements. Imagine what the Amiga environment would be like in 5 years time if Commodore had a generally incompetent O/S, had/did not provide for future expansion, etc etc. We would be just like the PC marketplace is today: Fragmented with many incompatible, 3rd-party, proprietary add-ons Both Microsoft & IBM admitted this with the OS/2 strategy. Here they tried to get the world to follow them into a better non-hardware specific environment. But it has a cost, memory and performance. It seems the world is not prepared to pay that price ... Remember, today IBM is the largest Clone builder around. They are now trapped the same as everyone else. They tried to change direction and the world ignored them ... Wait 'till Commodore are forced to change the underlying hardware definition of the Amiga range (ie: the chipset). Then we'll see how many developers have been listening!!! -- Cheers Peter S. Ingham ping@ping.actrix.gen.nz Lower Hutt, New Zealand
kdarling@hobbes.catt.ncsu.edu (Kevin Darling) (05/05/91)
DXB132@psuvm.psu.edu writes: >In article <1991May3.220043.28760@ncsu.edu>, kdarling@hobbes.catt.ncsu.edu >(Kevin Darling) says: >> >>Hey, blame _Motorola_ for the 64K offset limits on a 68000 <g>. "Pure" >>(reentrant) code for the Amiga OS has the same data offset limitations. > >It doesn't help, but the '020 and higher offer full 32-bit offsets... Yah, but still wish they'd started off that way. Ah well. The only other slight disappointment I ever had was with the 68008... I think it should've been able to use non-aligned data/code. Many years back I homebrewed a 68008 coprocessor for my old CoCo I. It had its own 8K static RAM, but also full access to the coco's ram and i/o space during internal 6809 cycles (the AVMA multiprocessor line on the '09 was perfect for this). Sure could clear the screen fast! <g> But the word-alignment thingie kept me from having more, and easy, fun. them were the hacking days, eh? - kev <kdarling@catt.ncsu.edu>
peter@sugar.hackercorp.com (Peter da Silva) (05/05/91)
In article <1991May3.041705.9907@kessner.denver.co.us> david@kessner.denver.co.us (David Kessner) writes: > IMHO, the 'bits' of an OS is the largest number it can put in a CPU register. I have never, in my experience, seen an O/S with registers. That's hardware. But then, if you wish: > In this light, MS-DOS is a 16 bit OS. Plain and simple. Same is true for CP/M. HL on the 8080 is 16 bits wide. IX and IY on the Z80 are too. Or how about MCP, the O/S I worked on in my last job... the 1802 has *16* 16-bit registers! That's 12 (or is that 13) more than the 8088. > Yes, I include the BIOS in the general scheme of MS-DOS. Microsoft doesn't. > Why? For several reasons: > The operating system (and/or device drivers) should deal with any > hardware differences between machines-- and that is the role of the > BIOS. That doesn't handle the differences between the IBM-PC, HP150, Victor 9000, TI-PRO, etc... or more recently the Data General 1... > The BIOS is highly standardized. In fact, they are (almost) > interchangeable between machines-- as long as the machines have the ...exact same bugs and features as the IBM-PC/XT or /AT (including crummy UARTS that don't support synchronous I/O)... > The BIOS plays just a large of a role in the MS-DOS world as MS-DOS > itself does. When you do application programming, you try to call > BIOS functions rather than MS-DOS functions (their faster, usually), > etc. I'm not discussing bugs and other implementation shortcoming in MS-DOS here. Just the software architecture. > And this makes it a 8 bit OS? Yes. The fact that it doesn't provide a hardware-independent application program interface for these resources. All an O/S is, at the bottom level, is a resource manager. So that's what I look at: what resources it manages and how complete the interface. > From the software point of view (which is the view MS-DOS has) the > 8088 and 8086 are identical (with a few very small differences) and are 16 > bits... No, they're a hybrid between 8-bit and real 16-bit CPUs. > I like how you said 'very similar' and not 'identical'. The 8088 should > be evaluated by it's own merits and not those of it's predicesors. Yes, and on those merits it really sucks. Motorolas 16/32 and 8/16 bit CPUs of the same era (68000, 6809) both blow it out of the water. > In the same, MS-DOS should be evaluated by looking at MS-DOS-- not CP/M. Why? CP/M was one of its competitors. > This is more of a function of the hardware than MS-DOS. Well look at the fate of computers that did a better job. If MS-DOS had been a real 16-bit O/S instead of a port of an 8-bit one the HP150, Victor 9000, TI PRO, and so on would have been successes. > (Damn Compatibility) Compatibility is only a problem if what you're compatible with causes problems. > Yes, and no. CP/M is more widely ported, true, and that's because of it's > early history in a time where there was not a lot of hardware standards-- > much like the history of UNIX. There were not a lot of hardware standards when the PC came out, either. > If you cant flame MS-DOS, who can you flame? Damn good question. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
peter@sugar.hackercorp.com (Peter da Silva) (05/05/91)
In article <1991May3.043704.10066@kessner.denver.co.us> david@kessner.denver.co.us (David Kessner) writes: > So, using your definitions for 8, 16, and 32 bit OS's (not quoted here), why > should we use 'bits' as the unit of measurement-- Don't ask me. I didn't start it. > Perhapse another term should be 'generation', 'level', etc. I myself prefer dividing things between: "monitor" ROM resident, usually loads programs from tape. Provides the services of simple I/O, execution control. "program loader" loaded from disk (usually), provides a file system, program loading, execution control, simple I/O. "operating system" adds real device drivers and device independence, memory and CPU time management. "protected O/S" adds resource tracking and protection. "multiuser O/S" adds privileged programs of some sort, permissions, etc. "VM O/S" adds virtual memory to one of the above. DOS doesn't even qualify as an O/S to me. Neither does Mac OS, or any PC system software prior to the Amiga. > Why don't _YOU_ check your facts. I have programmed a PDP-11/23 and a > MicroPDP-11/something, both running _Ultrix_. And I mean Ultrix. It says > Ultrix when it boots, on the manuals, on the order forms, and many other > places. C'mon, give me a break! Yes, I've been told that DEC sold V7 under that name. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
mykes@amiga0.SF-Bay.ORG (Mike Schwartz) (05/05/91)
In article <24582@well.sf.ca.us> farren@well.sf.ca.us (Mike Farren) writes: >daveh@cbmvax.commodore.com (Dave Haynie) writes: > >>It was obviously not reasonable to anyone but Intel. They felt it was >>reasonable because it made the 8086/8 assembly code very similar to 8080/5 >>assembly code. > >Not really. That's much more a matter of choice of mnemonics, rather than >architectural similarity. The 8086 differed significantly from the 8080/8085, >with only some basic architectural decisions (few registers, somewhat skewed >addressing modes) making it "easy" to port assembly code between the two. > >The 8086, ***at the time it was introduced***, was a big step up. Until that >time, the only 16-bit processors you could get were the National Semiconductor >IMP-16 and the Texas Instruments TI9900, both of which were weird, weird, >weird, both in the hardware and the software. The 8086, in comparison, was >a delight. Of course, Motorola did the 68000 a year or two later, but for >quite a while, you chose an 8086 or nothing if you wanted a reasonable >16-bit processor. The 6809 was a 16-bit processor (internal) and was as nice a chip as you can even find today. The only difference between it and the 8088 was that the 8088 has a method of bank selecting memory on-chip while the 6809 required extra hardware (i.e. segment registers). >-- >Mike Farren farren@well.sf.ca.us -- **************************************************** * I want games that look like Shadow of the Beast * * but play like Leisure Suit Larry. * ****************************************************
peter@sugar.hackercorp.com (Peter da Silva) (05/05/91)
In article <1991May3.220043.28760@ncsu.edu> kdarling@hobbes.catt.ncsu.edu (Kevin Darling) writes: > I must say that too many Amiga programmers shy away from the reentrant and > position-independent modes of the 680x0, btw. Another plus for high level code. Recompile with Manx. > Treating a 68K cpu like a > giant 6502 makes me want to throw up :-). You mean like a giant PDP-11. > To me, the Ami relocating loader is more Intel-like, than Motorola-like. Gah. Intel's the one with segments on the brain. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
peter@sugar.hackercorp.com (Peter da Silva) (05/05/91)
In article <24582@well.sf.ca.us> farren@well.sf.ca.us (Mike Farren) writes: > The 8086, ***at the time it was introduced***, was a big step up. How about the time the PC came out? > Of course, Motorola did the 68000 a year or two later, but for > quite a while, you chose an 8086 or nothing if you wanted a reasonable > 16-bit processor. When the PC was done there were a number of choices: 68000, 8086, Z8000, etc... I think the F-11 (PDP-11 on a chip) was out. Hold. 1981 edition of the Osborne 16-bit micro handbook. Includes some real oddballs, like the 2900 bit-slicers. I'd hesitate to call some of these 16-bitters (the 2900s are 1-bitters) but it includes the DG Nova as well as the 8086, 68000, and Z8000. And the TMS9900. The first 16-bit CPU it lists is the PACE/INS8900. 4 GP registers. Interesting, hardware stack with an overflow interrupt. Only 10 words deep, though. Only 16-bit external addressing, like the 6809. Overall I'd rate the 6809 as a better "16 bit" CPU. General Instruments CP1600... looks pretty much like a baby PDP-11. 8 general purpose registers, with R7 as the PC. Only one bit of addressing mode, so the upper registers postincrement and predecrement on indirect reads and writes. Cute. Not a bad design. Still only 16 bits of memory addressing, but at least as good as the 6809. TMS9900 Weird. Single chip Nova. Another stripped down minicomputer like the TMS9900 and the F-11. 4 GP registers. Pretty normal. 8086. First with >16 bit address space, albeit via bank selecting. Really weird selection of registers... every bit as psycho as I recall. Z8000. 68000. And then the bit-slice stuff. NO mention of the 6809 in either the 8- or 16- bit handbooks, but it's at least as 16-bit as most of the micros in this book from a programmer's standpoint. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
jerry@polygen.uucp (Jerry Shekhel) (05/06/91)
peter@sugar.hackercorp.com (Peter da Silva) writes: > >Microsoft has abandoned OS/2, didn't you notice? > >(OS/2: bigger than UNIX and does half as much. Would *you* buy half an O/S?) > All right. This "half-an-OS" garbage is beginning to irritate me. Microsoft is a business; they dropped it because it wasn't selling. That doesn't mean it wasn't a superior OS. In this industry, people don't always buy the better product, and you should know that, Mr. Experience. Your statement that OS/2 is bigger than UNIX is complete bull, as is your statement about OS/2 functionality. You have obviously never seen it or been exposed to the richness of its API. >Peter da Silva. `-_-' ><peter@sugar.hackercorp.com>. -- +-------------------+----------------------+---------------------------------+ | JERRY J. SHEKHEL | POLYGEN CORPORATION | When I was young, I had to walk | | Drummers do it... | Waltham, MA USA | to school and back every day -- | | ... In rhythm! | (617) 890-2175 | 20 miles, uphill both ways. | +-------------------+----------------------+---------------------------------+ | ...! [ princeton mit-eddie bu sunne ] !polygen!jerry | | jerry@polygen.com | +----------------------------------------------------------------------------+
daveh@cbmvax.commodore.com (Dave Haynie) (05/07/91)
In article <1991May3.220043.28760@ncsu.edu> kdarling@hobbes.catt.ncsu.edu (Kevin Darling) writes: >In <21216@cbmvax.commodore.com> daveh@cbmvax.commodore.com (Dave Haynie) writes: >I must say that too many Amiga programmers shy away from the reentrant and >position-independent modes of the 680x0, btw. There's nothing wrong with either, when used for the right reasons. And everything wrong with both, when used for the wrong reasons. >Treating a 68K cpu like a giant 6502 makes me want to throw up :-). Me too. I would rather see it treated like the 32 bit CPU that it is, maybe like a VAX. >The fact that those addressing modes are _faster_ than the long addressing >modes often used instead, Assuming you have small chunks of code. Going through wacky jump tables because you don't have a way to deal with proper linear addresses in large programs seems to me to be, well, rather Intel-like. >Yet they're what the cpu was designed for! No, they're one option, among many. A simple tradeoff between instruction time and code size. And of course, now we have real 32 bit buses and ALUs in these things, not that 68000 hybrid nonsense. And in any case, once you need the code size, they get in the way just as surely as 8088 segments. Pure code is good for a 3K "C:" tool that I want on the resident list, and base register addressing doesn't get in the way. For a 1MB CAD or DTP program, it will get in the way, and I have no need to make the thing resident. -- Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy "That's me in the corner, that's me in the spotlight" -R.E.M.
david@kessner.denver.co.us (David Kessner) (05/07/91)
In article <1991May5.022646.19235@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: >In article <1991May3.041705.9907@kessner.denver.co.us> david@kessner.denver.co.us (David Kessner) writes: >>IMHO, the 'bits' of an OS is the largest number it can put in a CPU register. > >I have never, in my experience, seen an O/S with registers. That's hardware. You know exactly what I mean! The OS obviously has to store it's numbers in registers... >> In this light, MS-DOS is a 16 bit OS. Plain and simple. > >Same is true for CP/M. HL on the 8080 is 16 bits wide. IX and IY on the Z80 >are too. Or how about MCP, the O/S I worked on in my last job... the 1802 >has *16* 16-bit registers! That's 12 (or is that 13) more than the 8088. So be it. But _you_ are the only one that wishes to bother talking about CP/M, etc, etc. >> Yes, I include the BIOS in the general scheme of MS-DOS. > >Microsoft doesn't. Well Microsoft still things of a 286 based machine as the ideal multi-media machine! >> Why? For several reasons: >> >> The operating system (and/or device drivers) should deal with any >> hardware differences between machines-- and that is the role of the >> BIOS. > >That doesn't handle the differences between the IBM-PC, HP150, Victor 9000, >TI-PRO, etc... or more recently the Data General 1... The BIOS was limited by a bad inital design. Early on, a lot of programmers learned that the BIOS didn't do many things very well-- namely video/graphics, serial I/O, and a few other things. Then there were many programmers that insisted on going around the OS and access the hardware directly. The BIOS cannot mask the hardware differences when the BIOS is not used. The machines you mentioned have serious compatability problems at the hardware level-- usually in the video circutry. This is a case of a bad design influencing bad programmers yeilding a mess. Otherwise, the BIOS offers a very good hardware independance-- noteably with hard drives, keyboard controllers, simple video, etc. Other things are so standardized that it doesnt make much of a difference. >> The BIOS is highly standardized. In fact, they are (almost) >> interchangeable between machines-- as long as the machines have the > >...exact same bugs and features as the IBM-PC/XT or /AT (including crummy >UARTS that don't support synchronous I/O)... Well, yes. The BIOS is basically the same as it was way back when, with only minor improvements. The UARTs are really not so crummy, but they are strictly async. (In the ten years I have worked with computers, from home computers to mainframes, I have never needed a sync port for a PC). >> The BIOS plays just a large of a role in the MS-DOS world as MS-DOS >> itself does. When you do application programming, you try to call >> BIOS functions rather than MS-DOS functions (their faster, usually), >> etc. > >I'm not discussing bugs and other implementation shortcoming in MS-DOS here. >Just the software architecture. You wanted to know why I thought of the BIOS as part of MS-DOS... And I told you... >> And this makes it a 8 bit OS? > >Yes. The fact that it doesn't provide a hardware-independent application >program interface for these resources. All an O/S is, at the bottom level, >is a resource manager. So that's what I look at: what resources it manages >and how complete the interface. I'll say it again: Your requirements for a 8/16/32 bit OS have nothing to do with 8/16/32 bit numbers. Either change you requirements, or change your terminology (ie, from 8-bit-OS to ??????)-- because what you are saying now does not make sense. >> In the same, MS-DOS should be evaluated by looking at MS-DOS-- not CP/M. > >Why? CP/M was one of its competitors. Great. So I'll look at a FORD and pay for a CHEVY... >> This is more of a function of the hardware than MS-DOS. > >Well look at the fate of computers that did a better job. If MS-DOS had been >a real 16-bit O/S instead of a port of an 8-bit one the HP150, Victor 9000, >TI PRO, and so on would have been successes. No. If MS-DOS/BIOS had been designed properly, and the programmers did not go around the OS and access the hardware directly, then those machines would have been successes. Also, the machines you mentioned were all made when there was still some degree of BIOS incompatability (due in part to IBM's laywers). These problems have been ironed out in todays machines... I don't know about the Data General machine, so I don't include it in the above statement. >> If you cant flame MS-DOS, who can you flame? > >Damn good question. Current suggestions have been OS/2, Windows, and just about anything from Microsoft/IBM... >Peter da Silva. `-_-' ><peter@sugar.hackercorp.com>. -- David Kessner - david@kessner.denver.co.us | do { 1135 Fairfax, Denver CO 80220 (303) 377-1801 (p.m.) | . . . If you cant flame MS-DOS, who can you flame? | } while( jones);
david@kessner.denver.co.us (David Kessner) (05/07/91)
In article <1991May5.024025.19463@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: >Don't ask me. I didn't start it. Well who the hell did? Twasn't me (I didnt even join the discussion for a week or so after it started)... >> Perhapse another term should be 'generation', 'level', etc. > >I myself prefer dividing things between: > > "monitor" ROM resident, usually loads programs from tape. Provides > the services of simple I/O, execution control. > > "program loader" loaded from disk (usually), provides a file system, > program loading, execution control, simple I/O. > > "operating system" adds real device drivers and device independence, > memory and CPU time management. > > "protected O/S" adds resource tracking and protection. > > "multiuser O/S" adds privileged programs of some sort, permissions, > etc. > > "VM O/S" adds virtual memory to one of the above. > >DOS doesn't even qualify as an O/S to me. Neither does Mac OS, or any PC >system software prior to the Amiga. MS-DOS largely fits into the relm of "program loader". It does have some indications/hints of being an "operating system" (device drivers, third party of course, some device independance, etc) but largely fails in that respect. While not perfect, you table is _MUCH_ better than 8/16/32 bit... >> Why don't _YOU_ check your facts. I have programmed a PDP-11/23 and a >> MicroPDP-11/something, both running _Ultrix_. And I mean Ultrix. It says >> Ultrix when it boots, on the manuals, on the order forms, and many other >> places. C'mon, give me a break! > >Yes, I've been told that DEC sold V7 under that name. Ultrix -- UNIX with bugs. >Peter da Silva. `-_-' ><peter@sugar.hackercorp.com>. -- David Kessner - david@kessner.denver.co.us | do { 1135 Fairfax, Denver CO 80220 (303) 377-1801 (p.m.) | . . . If you cant flame MS-DOS, who can you flame? | } while( jones);
david@kessner.denver.co.us (David Kessner) (05/07/91)
In article <2945.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: >Quoted from <1991May1.064455.3058@kessner.denver.co.us> by david@kessner.denver.co.us (David Kessner): > >> the instruction set to it's registers indicate this. MS-DOS fully >> utilizes all of the 8088 features, so I will classify it as a 16 bit OS. > > When one calls an MS-DOS "interrupt" (haw, reminds me of the C= 64), > isn't the interrupt number a byte? > > That's a fundamental part of the OS that is only 8 bits. Huh? The 68000, 68030 (not sure of the 040), 386, etc all offer 256 different intterupts (READ: 8 bits). The C-64 (and the 6502/6510) had _THREE_, and that's if you include the RESET line! In any OS, there will be several areas that are only 8 bits, simply because it does not make sense to use more. For instance, keeping a count of the number of disk drives, serial ports, or printer ports would be pointless to use anything more than 8 bits-- when was the last time you has 255 serial ports on your 286/68000 based machine? The intterupts in MS-DOS are referenced with 8 bit numbers, because the 8088/8086 used 8 bit numbers-- the OS utilized the hardware. This has NEVER been a limitation. Even on a fully stocked machine, there are large amounts of these intterupts that are not being used simply because you can only put so much on a machine! Keep in mind that these intterupt numbers are only loosely the same as the 16 intterupt lines available on the ISA slot. The CPU allows for 256 intterupts. MS-DOS allows for 256 intterupts. The ISA bus only allows 16 of them through hardware (there are dozens of software intterupts, however). EISA, to the best of my knoledge, fixes this. In short: So? This is supposed to be a problem? >*** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** -- David Kessner - david@kessner.denver.co.us | do { 1135 Fairfax, Denver CO 80220 (303) 377-1801 (p.m.) | . . . If you cant flame MS-DOS, who can you flame? | } while( jones);
es1@cunixb.cc.columbia.edu (Ethan Solomita) (05/07/91)
In article <1075@stewart.UUCP> jerry@stewart.UUCP (Jerry Shekhel) writes: > >All right. This "half-an-OS" garbage is beginning to irritate me. Microsoft >is a business; they dropped it because it wasn't selling. That doesn't mean >it wasn't a superior OS. In this industry, people don't always buy the better >product, and you should know that, Mr. Experience. > Yes, the problem with OS/2 was that it wasn't selling. You say it's a superior OS? Superior to what? MS-DOS? Of course it was! Superior to Unix? NO. OS/2 basically gave you nothing beyond what Unix gives you, and so people simply decided to go the Unix route rather than a proprietary IBM route. What would you do? Unix HAS succeeded. OS/2? -- Ethan "Brain! Brain! What is Brain?"
kls30@duts.ccc.amdahl.com (Kent L Shephard) (05/07/91)
In article <2945.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: >Quoted from <1991May1.064455.3058@kessner.denver.co.us> by david@kessner.denver.co.us (David Kessner): > >> the instruction set to it's registers indicate this. MS-DOS fully >> utilizes all of the 8088 features, so I will classify it as a 16 bit OS. > > When one calls an MS-DOS "interrupt" (haw, reminds me of the C= 64), > isn't the interrupt number a byte? > > That's a fundamental part of the OS that is only 8 bits. WRONG. The Intel 80x86 limits you to 256 vectors for interrupts. That does not mean that the OS is eight bits. The hardware only supports that many vectored interrupts. So since the hardware only supports a vector of 1 byte, you'll say that the 80x86 machines are only 8 bit because that is how long the interrupt vector is. How many cpus have vector tables as long as the number of bits in their data types. I seriously doubt if you can name me a 32bit machine that uses all 32 bits to identify vectors in the vector table. > >> David Kessner - david@kessner.denver.co.us | do { >-- >*** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** >*** "Endless variations, make it all seem new" - Devo. *** -- /* -The opinions expressed are my own, not my employers. */ /* For I can only express my own opinions. */ /* */ /* Kent L. Shephard : email - kls30@DUTS.ccc.amdahl.com */
david@kessner.denver.co.us (David Kessner) (05/08/91)
In article <1991May7.145417.23345@cunixf.cc.columbia.edu> es1@cunixb.cc.columbia.edu (Ethan Solomita) writes: > Yes, the problem with OS/2 was that it wasn't selling. >You say it's a superior OS? Superior to what? MS-DOS? Of course >it was! Superior to Unix? NO. > OS/2 basically gave you nothing beyond what Unix gives >you, and so people simply decided to go the Unix route rather >than a proprietary IBM route. > What would you do? Unix HAS succeeded. OS/2? > > -- Ethan You forget the most important thing about UNIX-- It Is Not Done By IBM Or Mocrosoft! I have banished Microsoft products from my system, and only use MS-DOS to boot a term program (into a UNIX system) and to run Flight Simulator. Other than that, I want nothing to do with Bill Gates and Microsoft-- and I believe that others feel the same way. Which brings us to the ACE group. You know, Microsoft, MIPS, DEC, SCO, and Compaq(?). The group that wants to port OS/2 to the MIPS CPU (and somehow run it on top of UNIX). The group that wants to make OSF/1 and Ultrix merge, with SCO somehow fitting into the works. God, what a nightmare! Just think about it: DEC Workstation _clones_ running a mangled UNIX with OS/2! I'm glad that SCO (partally owned by Microsoft) has refused to port System Vr4. It means Microsoft cannot screw it up for the rest of us! -- David Kessner - david@kessner.denver.co.us | do { 1135 Fairfax, Denver CO 80220 (303) 377-1801 (p.m.) | . . . If you cant flame MS-DOS, who can you flame? | } while( jones);
david@kessner.denver.co.us (David Kessner) (05/08/91)
At last! Words of Windom! I just _had_ to reply to this one... In article <165.tnews@ping.actrix.gen.nz> ping@ping.actrix.gen.nz (Peter Ingham) writes: >These were commercial decisions taken by Intel in order to >provide backwards compatibility. Intel have continued to make similar >decisions since. Motorola, by way of contrast, chose to develop a _new_, >non-compatible path with 68000 when replacing the 6800 & 6809. Tis true, but which is the better choice? From the hardware/software aspect of it, clearly Motorola made the better chioce-- but Intel (and others like AMD, who make 286's, 386's etc) have probably made more money. ><Enable flame retardent> Yea. You and me, Buddy! >Architecturally, the 68000 series is far cleaner that 80xx6. This is >the price you pay for maintaining backwards compatibility. > >Without getting into a RISC/CISC argument here, the same thing applies. >if you ignore backwards compatibility, you can get a much cleaner >architecture, but you loose out (short-term) on application availability. More importantly, you loose out in (short-term) programming utilities, compilers, debuggers, etc. But oh well. Motorola clearly made the better design chioce early on, they were thinking about the future. Intel was thinking in the past, compatability. >Was MS-DOS a _copy_ of CP/M? NO. Thank you. >Was it designed to provide close to identical facilities? Yes >Does (did) it add significant new functionality over & above CP/M? No >Similar Functionality Spec, different implementation. Exactly! >While the arguments presented have made semi-interesting reading, I fail >to see the point here. > >What is an 8-bit O/S? - surely one that runs on an 8-bit CPU. I have >never seen MSDOS running on any 8-bit CPU. > >What is an 8-bit CPU? - surely one that uses 8-bits as the predominant >data-register size. (ie: a CPU that uses 16-bit registers 95% of the >time but can combine them to 32bits for some operations is a 16-bit CPU) Exactly. Perhapse Peter da Silva will figure that out sometime... >In a previous posting, Peter da Silva has been arguing that the >_facilites_ provided by an operating system define whether it is 8, 16 or >32 bit. This is patently false. It is however correct to state that >MS-DOS provides the *facilities* commonly associated with several O/S's >written for 8-bit systems. Clearly, he is talking about something else that does not have anything to do with the number of bits. >Is MS-DOS an Operating System?? Some would argue that it is in fact an >overgrown file handler, and little more. Ah, yes. But it is a 16 bit file handler/program loader! :) >There are also some very competent operating systems around for 80xx6. >. . . . . . . . >I think we all agree that MS-DOS is not one of these. <Big Grin> > Peter S. Ingham ping@ping.actrix.gen.nz -- David Kessner - david@kessner.denver.co.us | do { 1135 Fairfax, Denver CO 80220 (303) 377-1801 (p.m.) | . . . If you cant flame MS-DOS, who can you flame? | } while( jones);
jbickers@templar.actrix.gen.nz (John Bickers) (05/08/91)
Quoted from <1075@stewart.UUCP> by jerry@polygen.uucp (Jerry Shekhel): > peter@sugar.hackercorp.com (Peter da Silva) writes: > >Microsoft has abandoned OS/2, didn't you notice? > All right. This "half-an-OS" garbage is beginning to irritate me. Microsoft > is a business; they dropped it because it wasn't selling. That doesn't mean I thought IBM _took_ it from Microsoft because they thought Microsoft was botching it. The IBM version coming out now is apparently way ahead of the old one (I say apparently, because that's just what the local OS/2 enthusiasts say - I wouldn't touch it myself, unless I was paid to - nothing that runs on an Intel CPU can be worthwhile). > Your statement that OS/2 is bigger than UNIX is complete bull, as is your > statement about OS/2 functionality. You have obviously never seen it or Does OS/2 multitask as nicely as Unix, have all those crontab and uucp facilities, the user/group/world file protection stuff, etc? > been exposed to the richness of its API. Things like run-time libraries, etc? :) > | JERRY J. SHEKHEL | POLYGEN CORPORATION | When I was young, I had to walk | -- *** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** *** "Endless variations, make it all seem new" - Devo. ***
jbickers@templar.actrix.gen.nz (John Bickers) (05/08/91)
Quoted from <1991May7.090333.1449@kessner.denver.co.us> by david@kessner.denver.co.us (David Kessner): > In article <2945.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: > > When one calls an MS-DOS "interrupt" (haw, reminds me of the C= 64), > > That's a fundamental part of the OS that is only 8 bits. > The 68000, 68030 (not sure of the 040), 386, etc all offer 256 different > intterupts (READ: 8 bits). The C-64 (and the 6502/6510) had _THREE_, and So? I meant the way you call the OS. In the C= 64 it involved either ROM jumping or using fixed tables of vectors into the ROMs. In the PClone, it appears to involve using fixed tables of vectors into the ROMs. I could be wrong here. Is there some other decent way to call an MS-DOS function besides using that vector table? All I ever see is the int86() etc functions in Microsoft C. > In any OS, there will be several areas that are only 8 bits, simply > because it does not make sense to use more. For instance, keeping a No doubt. But in MS-DOS this is a _fundamental_ part of the thing. > In short: So? This is supposed to be a problem? No (not any more than any other MS-DOS feature, anyhow. Sharing interrupts strikes me as being reminiscent of the C= 64 as well, and also seems like a pain in the a). This is supposed to be an example of why MS-DOS is a puny OS, therefore 8-bit (hm, doesn't the '-' in 8-bit mean "or less"? :). > David Kessner - david@kessner.denver.co.us | do { -- *** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** *** "Endless variations, make it all seem new" - Devo. ***
stevew@en.ecn.purdue.edu (Steven L Wootton) (05/08/91)
In article <3330.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: > > Does OS/2 multitask as nicely as Unix, have all those crontab and > uucp facilities, the user/group/world file protection stuff, etc? crontab and uucp are just programs; you can add them to almost any system. crontab is tough to add to MS-DOS, but there are timed execution programs out there. UUCP is slightly easier (uupc is pretty good). If these things can be added to DOS, they can surely be added to OS/2. Why expect them to be built in? WRT file protection, wouldn't user/group/world make more sense on a multiuser machine? At last count, OS/2 is a single-user, multitasking OS. Besides, I'd rather have an ACL (ala DomainOS) than the simplistic UNIX protection scheme. Much more useful. Steve Wootton stevew@ecn.purdue.edu stevew@pur-ee.uucp stevew%ecn.purdue.edu@purccvm.bitnet
ckp@grebyn.com (Checkpoint Technologies) (05/08/91)
In article <3335.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: >Quoted from <1991May7.090333.1449@kessner.denver.co.us> by david@kessner.denver.co.us (David Kessner): >> In article <2945.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: > >> > When one calls an MS-DOS "interrupt" (haw, reminds me of the C= 64), > >> > That's a fundamental part of the OS that is only 8 bits. > >> The 68000, 68030 (not sure of the 040), 386, etc all offer 256 different >> intterupts (READ: 8 bits). The C-64 (and the 6502/6510) had _THREE_, and > > So? I meant the way you call the OS. In the C= 64 it involved either > ROM jumping or using fixed tables of vectors into the ROMs. In the > PClone, it appears to involve using fixed tables of vectors into the > ROMs. To define a few terms... An "interrupt" comes from an outside device, on the x86 by asserting the INT line and on the 68K by asserting a combination of the three IPL lines. Motorola defines "interrupts" as part of a general category called "exceptions". These include real interruptions as well as exceptions caused by program activity, like divide by zero, illegal instructions, and TRAP instructions. Intel calls all these things interrupts, and in fact have an instruction INT which simulates the effect of an external interrupt source. All this was to show how the quoted arguments are really speaking of different things. Both the 68K and the x86 allow for 256 externally identified interrupt sources, using an 8 bit "vector" to differentiate. The Intel INT instruction can simulate any one of them. The vectors generated by 68K instructions are limited to a set of vectors specifically meant for those purposes: the TRAP vectors (16 of them), the TRAPV vector, the ILLEGAL vector, the A-line and F-line vectors, and a few others I don't recall right now. The 68K defines the vector meanings far better than Intel does - especially since the x86 doesn't have a supervisor mode and any program can generate any INT it wants. (This has lead to conflicts between program-use vectors and hardware-use vectors in the past, when a new hardware device begins using a vector that software had been using. This problem can't occur on the 68K since the set of program-generatable vectors is so well defined.) > > I could be wrong here. Is there some other decent way to call an > MS-DOS function besides using that vector table? All I ever see is > the int86() etc functions in Microsoft C. The Amiga Exec uses straight JSRs rather than TRAPs. MS-DOS could have done this, and considering the absense of separate user and kernel modes it would have made good sense. But the INT call is shorter; it uses a jump table automatically, the vector table, so long as 256 routiunes is enough. But frankly, it never is, and MS-DOS ran out of them. They also put a request code in AL I believe, somewhat negating the benefit of the vector table. -- Richard Krehbiel, private citizen ckp@grebyn.com (Who needs a fancy .signature?)
daveh@cbmvax.commodore.com (Dave Haynie) (05/09/91)
In article <1991May7.194753.3339@kessner.denver.co.us> david@kessner.denver.co.us (David Kessner) writes: >Which brings us to the ACE group. You know, Microsoft, MIPS, DEC, SCO, >and Compaq(?). The group that wants to port OS/2 to the MIPS CPU (and >somehow run it on top of UNIX). The group that wants to make OSF/1 and >Ultrix merge, with SCO somehow fitting into the works. God, what a >nightmare! Just think about it: DEC Workstation _clones_ running >a mangled UNIX with OS/2! Actually, from all I've read on the ACE group, they're not trying to mix OS/2 and UNIX together, per se. They plan on two individual operating systems, UNIX and a new MIPS-based OS/2, that can run on all machines. Binary compatibility between all UNIX ports and all OS/2 ports. The only compatibility between UNIX and OS/2 is at the source level, and there only if you stick to standards, like maybe POSIX or X-Open or whatever function libraries. The most, or even only, interesting thing about this setup, is that it has all of the elements in it that made PC Clones successful. It has a big HW company (DEC) and big SW company (Microsoft) behind it. The HW can theoretically be cloned by anyone. The SW, HW, and Chips each come from separate companies, so no company can really control the way any factor moves alone. All this means is that it could be successful. I personally like the MIPS architecture, and would find such a setup less worrysome to get into than perhaps the current RISC alternative, SPARC, in which the OS comes from a company that's also the largest vendor of systems in that market. >David Kessner - david@kessner.denver.co.us | do { -- Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy "That's me in the corner, that's me in the spotlight" -R.E.M.
mykes@amiga0.SF-Bay.ORG (Mike Schwartz) (05/09/91)
In article <2945.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: >Quoted from <1991May1.064455.3058@kessner.denver.co.us> by david@kessner.denver.co.us (David Kessner): > >> the instruction set to it's registers indicate this. MS-DOS fully >> utilizes all of the 8088 features, so I will classify it as a 16 bit OS. > > When one calls an MS-DOS "interrupt" (haw, reminds me of the C= 64), > isn't the interrupt number a byte? > > That's a fundamental part of the OS that is only 8 bits. > >> David Kessner - david@kessner.denver.co.us | do { >-- >*** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** >*** "Endless variations, make it all seem new" - Devo. *** By this definition, the Atari ST OS (CPM/68K) is a 4-bit OS? It uses 68000 traps, which are 4 bits. -- **************************************************** * I want games that look like Shadow of the Beast * * but play like Leisure Suit Larry. * ****************************************************
david@kessner.denver.co.us (David Kessner) (05/09/91)
In article <3335.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: >> > When one calls an MS-DOS "interrupt" (haw, reminds me of the C= 64), >> > That's a fundamental part of the OS that is only 8 bits. >> The 68000, 68030 (not sure of the 040), 386, etc all offer 256 different >> intterupts (READ: 8 bits). The C-64 (and the 6502/6510) had _THREE_, and > > So? I meant the way you call the OS. In the C= 64 it involved either > ROM jumping or using fixed tables of vectors into the ROMs. In the > PClone, it appears to involve using fixed tables of vectors into the > ROMs. > > I could be wrong here. Is there some other decent way to call an > MS-DOS function besides using that vector table? All I ever see is > the int86() etc functions in Microsoft C. Hmmm. The vector table that you refer to is not 'fixed'. It is a relatively simple matter to make a 'third-party' replacement for these functions-- Unlike the C-64, where you had to copy the ROM at F000-FFFF into RAM, wedge in the new routine, switch out the RAM, then hope to God that no-one is going to use that area of RAM. Anyway, your right. That intterupt table is used to call OS functions. Actually, those 256 intterupts are usually thought of as hardware intterupts, but it is a relatively simple matter to cause a SOFTWARE intterupt-- and that is just what we do. In reality, I don't think that this is any better or worse than using a traditional jump table. It is, however, better than the Atari ST's version where it makes OS calls by causing a CPU exceptions (like using a non-existant opcodes). Normally, the OS calls are done in assembly, where it is very simple to load the registers and do an 'int ??' instruction. Emulating this in C is clumsy at best. In the past two years I've written about 1500-2000 pages of code on the PC. In that, I've called OS functions about 50 times-- and used the int86() function about four times. I've found that any set of routines that uses a lot of 'int' calls can benifit greatly from a rewrite in assembly-- and I question any programmer that doesn't do this. >> In short: So? This is supposed to be a problem? > > No (not any more than any other MS-DOS feature, anyhow. Sharing > interrupts strikes me as being reminiscent of the C= 64 as well, > and also seems like a pain in the a). This is supposed to be an > example of why MS-DOS is a puny OS, therefore 8-bit (hm, doesn't > the '-' in 8-bit mean "or less"? :). I understand Dave Haynie's explanation for shared intterupts in todays 32 bit CPU's-- but I too think it is a little old-fashoned. You have 256 intterupts, use them! You cannot possibly have over 256 hardware intterups, perhapse 30-50 max, so there is no danger of using them all up... Hell, I memory serves me, it has about 50 unused intterupts-- and it's using them for OS calls at that! David Kessner - david@kessner.denver.co.us | do { 1135 Fairfax, Denver CO 80220 (303) 377-1801 (p.m.) | . . . If you cant flame MS-DOS, who can you flame? | } while( jones); -- David Kessner - david@kessner.denver.co.us | do { 1135 Fairfax, Denver CO 80220 (303) 377-1801 (p.m.) | . . . If you cant flame MS-DOS, who can you flame? | } while( jones);
jbickers@templar.actrix.gen.nz (John Bickers) (05/09/91)
Quoted from <69VT02ZW07LF01@JUTS.ccc.amdahl.com> by kls30@duts.ccc.amdahl.com (Kent L Shephard): > In article <2945.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: > > When one calls an MS-DOS "interrupt" (haw, reminds me of the C= 64), > > isn't the interrupt number a byte? > > > > That's a fundamental part of the OS that is only 8 bits. > > WRONG. The Intel 80x86 limits you to 256 vectors for interrupts. That Which part is "WRONG"? That this is a fundamental part of the OS, or that it's only 8 bits? > does not mean that the OS is eight bits. The hardware only supports that > many vectored interrupts. So since the hardware only supports a vector Who cares how many damned interrupts the hardware supports? As someone pointed out, 680x0 chips provide similar sorts of numbers too. My point is that the "OS", MS-DOS, the thing we are talking about, uses these "interrupts" as the interface to applications run on it. That limits things to 8 bits worth of hooks into the OS. More than enough for a tinny little thing like MS-DOS, running on 640K application RAM PClones, but nevertheless, only 8 bits. I believe (and my Usenet feed is at home, so I don't have manuals and things on hand, sorry) that MS-DOS does things like have 1 vector for a particular range of functions, and when you call one of that range, you have to stuff another byte-sized value into a register and then invoke the interrupt for that range. > of 1 byte, you'll say that the 80x86 machines are only 8 bit because that > is how long the interrupt vector is. Well, if Unix implementations on these widgets used the same crankpot OS interface that MS-DOS uses, I'd certainly be willing to claim that they are 8-bit implementations of Unix. > /* Kent L. Shephard : email - kls30@DUTS.ccc.amdahl.com */ -- *** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** *** "Endless variations, make it all seem new" - Devo. ***
jbickers@templar.actrix.gen.nz (John Bickers) (05/09/91)
Quoted from <1991May8.124648.17903@en.ecn.purdue.edu> by stevew@en.ecn.purdue.edu (Steven L Wootton): > In article <3330.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: > > > > Does OS/2 multitask as nicely as Unix, have all those crontab and > > uucp facilities, the user/group/world file protection stuff, etc? > out there. UUCP is slightly easier (uupc is pretty good). If these things > can be added to DOS, they can surely be added to OS/2. Why expect them to > be built in? Having things as standard tools just seems more convenient to me than having them as extras. Sort of helps define the scope of the OS, I guess. Things a marketeer can rely on their customers having, a programmer can rely on being present, and so on. > WRT file protection, wouldn't user/group/world make more sense on a > multiuser machine? At last count, OS/2 is a single-user, multitasking OS. Well, there it is. I think the original article compared OS/2 to Unix in some way, so I was wondering if OS/2 was a multiuser OS or not. Order of magnitude's difference between OSes that have to cater for multiple users as opposed to those that do not. > Steve Wootton -- *** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** *** "Endless variations, make it all seem new" - Devo. ***
jbickers@templar.actrix.gen.nz (John Bickers) (05/09/91)
Quoted from <mykes.2364@amiga0.SF-Bay.ORG> by mykes@amiga0.SF-Bay.ORG (Mike Schwartz): > > When one calls an MS-DOS "interrupt" (haw, reminds me of the C= 64), > > isn't the interrupt number a byte? > By this definition, the Atari ST OS (CPM/68K) is a 4-bit OS? It uses 68000 > traps, which are 4 bits. Does it really? Wow! Is this the TOS thing people talk about (CPM? Local Atari folks talk about things called TOS and GEM)? Gak. Gak. Gak. Gak. I know the Amiga uses some of those trap vectors for various GURUs, but not as the OS interface. Gee, I never thought the ST was so primitive. > **************************************************** Awed... -- *** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** *** "Endless variations, make it all seem new" - Devo. ***
jbickers@templar.actrix.gen.nz (John Bickers) (05/09/91)
Quoted from <1991May9.045705.797@kessner.denver.co.us> by david@kessner.denver.co.us (David Kessner): > In article <3335.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: > > ROM jumping or using fixed tables of vectors into the ROMs. In the > > PClone, it appears to involve using fixed tables of vectors into the > Hmmm. The vector table that you refer to is not 'fixed'. It is a relatively Same place in memory, isn't it? Yet another case of minor obfuscation... > simple matter to make a 'third-party' replacement for these functions-- Sure. As far as MS-DOS goes, I think some of the hacks and kludges fitted onto it are rather slick. Like Btrieve, the Novell database "library" thing. Shows the lengths people will go to when the market is a decent size. > In reality, I don't think that this is any better or worse than using a > traditional jump table. It is, however, better than the Atari ST's > version where it makes OS calls by causing a CPU exceptions (like using So it's true. Well well well. How depressing for ST programmers. > clumsy at best. In the past two years I've written about 1500-2000 > pages of code on the PC. In that, I've called OS functions about 50 Bit over a year and a half for me. I've called OS functions lots of times, and used int86() and co. quite often. Mostly to diddle with the time and system info, come to think of it, so I don't do complicated things with it. > from a rewrite in assembly-- and I question any programmer that doesn't > do this. Fine. In my view, they don't pay me enough to think about Intel assembler to MS-DOS. It's a judgement thing, I guess. I don't have that level of OS stuff in any hot spots. I'd also be mildly surprised if Microsoft doesn't inline the int86()-type functions, like SAS does Amiga library functions, though I've never checked. > > No (not any more than any other MS-DOS feature, anyhow. Sharing > > interrupts strikes me as being reminiscent of the C= 64 as well, > I understand Dave Haynie's explanation for shared intterupts in todays > 32 bit CPU's-- but I too think it is a little old-fashoned. You have Uh, I don't have a problem with sharing interrupts per se - the thing is _how_ you share the interrupts. Consider chaining into an MS-DOS interrupt with adding an interrupt handler to the system on the Amiga. The latter is about as slick a procedure as I could wish for. The former is reminiscient of the C= 64. > up... Hell, I memory serves me, it has about 50 unused intterupts-- and > it's using them for OS calls at that! I don't believe there's any standard way to arbitrate who gets what interrupts, is there? I have a (very useful) list on MS-DOS interrupts, that indicates various products have standard interrupts they chain into, rather than trying to locate a "next free interrupt" and using that. Having some sort of handle on allocation and deallocation of interrupts would make it a marginally more respectable system, IMHO. Named interrupts, like the Ami's named ports, or something. > David Kessner - david@kessner.denver.co.us | do { -- *** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** *** "Endless variations, make it all seem new" - Devo. ***
peter@sugar.hackercorp.com (Peter da Silva) (05/10/91)
In article <1991May8.124648.17903@en.ecn.purdue.edu> stevew@en.ecn.purdue.edu (Steven L Wootton) writes: > WRT file protection, wouldn't user/group/world make more sense on a > multiuser machine? At last count, OS/2 is a single-user, multitasking OS. A network is a multiuser environment. Single user PCs and networks mix like Serbs and Croats (let's be topical here). ACLs are nice, but the lack of ACLs in UNIX is hardly a reason to justify the complete lack of protection in OS/2. PS: comp.os.os2.advocacy. It's time. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
jcav@quads.uchicago.edu (john cavallino) (05/10/91)
In article <3474.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: >> By this definition, the Atari ST OS (CPM/68K) is a 4-bit OS? It uses 68000 >> traps, which are 4 bits. > > Does it really? Wow! Is this the TOS thing people talk about (CPM? > Local Atari folks talk about things called TOS and GEM)? > > Gak. Gak. Gak. Gak. > > I know the Amiga uses some of those trap vectors for various GURUs, > but not as the OS interface. > > Gee, I never thought the ST was so primitive. As I understand it, the TRAPn instructions were specifically intended by Motorola to be used to invoke the operating system. After all, there are sixteen of them, they are documented instructions, and they have individual entries in the vector table. What's REALLY wierd is the Macintosh operating system, which uses the MC680x0 A-line unimplemented instructions as the OS interface, with the routine index and various flags encoded into the instruction word. -- John Cavallino | EMail: jcav@midway.uchicago.edu University of Chicago Hospitals | USMail: 5841 S. Maryland Ave, Box 145 Office of Facilities Management | Chicago, IL 60637 B0 f++ w c+ g+ k s(+) e+ h- pv (qv) | Telephone: 312-702-6900
allbery@NCoast.ORG (Brandon S. Allbery KB8JRR/AA) (05/10/91)
As quoted from <3335.tnews@templar.actrix.gen.nz> by jbickers@templar.actrix.gen.nz (John Bickers): +--------------- | Quoted from <1991May7.090333.1449@kessner.denver.co.us> by david@kessner.denver.co.us (David Kessner): | > In article <2945.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: | > > When one calls an MS-DOS "interrupt" (haw, reminds me of the C= 64), | > > That's a fundamental part of the OS that is only 8 bits. | | > The 68000, 68030 (not sure of the 040), 386, etc all offer 256 different | > intterupts (READ: 8 bits). The C-64 (and the 6502/6510) had _THREE_, and | | So? I meant the way you call the OS. In the C= 64 it involved either | ROM jumping or using fixed tables of vectors into the ROMs. In the | PClone, it appears to involve using fixed tables of vectors into the | ROMs. +--------------- ??? ONE interrupt is used for system calls --- INT 21H (that, by the way, is the assembly language mnemonic to signal that interrupt). This is no different from 680x0 Unixes that use "trap #0" to make a system call in assembler. BIOS has a few interrupts it uses, specifically so that BIOS replacements can be dropped into place. Theoretically, you're not supposed to call the BIOS directly, but we all know what MS-Doesn't is like.... +--------------- | I could be wrong here. Is there some other decent way to call an | MS-DOS function besides using that vector table? All I ever see is | the int86() etc functions in Microsoft C. +--------------- This is less because MS-DOS doesn't have a rational syscall mechanism than because MS-DOS doesn't have rational syscalls.... +--------------- | No (not any more than any other MS-DOS feature, anyhow. Sharing | interrupts strikes me as being reminiscent of the C= 64 as well, | and also seems like a pain in the a). This is supposed to be an | example of why MS-DOS is a puny OS, therefore 8-bit (hm, doesn't | the '-' in 8-bit mean "or less"? :). +--------------- No, it's normal to use one (or a *small* number of) entry point to the OS. Even the Mac does it, although in a twisted fashion (they hook the 1010 and 1011 unimplemented opcode traps, then have the trap handler decipher the "instruction" to determine what routine to call). The task of keeping track of interrupts gets harder as the number of possible interrupts increases, even if they're software-only interrupts. (And I daresay indexing into a private jump table based on the contents of d0 is faster than fetching a word via a pointer from the interrupt context, masking out the highest nybble, and indexing the jump table from that....) ++Brandon -- Me: Brandon S. Allbery Ham: KB8JRR/AA 10m,6m,2m,220,440,1.2 Internet: allbery@NCoast.ORG (restricted HF at present) Delphi: ALLBERY AMPR: kb8jrr.AmPR.ORG [44.70.4.88] uunet!usenet.ins.cwru.edu!ncoast!allbery KB8JRR @ WA8BXN.OH
allbery@NCoast.ORG (Brandon S. Allbery KB8JRR/AA) (05/10/91)
As quoted from <3133.tnews@templar.actrix.gen.nz> by jbickers@templar.actrix.gen.nz (John Bickers): +--------------- | Quoted from <160.tnews@ping.actrix.gen.nz> by ping@ping.actrix.gen.nz (Peter Ingham): | > Quoted from <...unknown> by jbickers@templar.actrix.gen.nz (John Bickers): | > > When one calls an MS-DOS "interrupt" (haw, reminds me of the C= 64), | > > isn't the interrupt number a byte? | | > This is a Hardware design restraint rather than a feature (or lack of it) | > in any particular 808x OS. | | The OS is supposed to be tied to the hardware... the smaller the | CPU, the more likely this is to be. This is exactly why so many | people think of MS-DOS as an 8-bit (or less) OS. +--------------- ??? Look up the "trap" instruction in a 680x0 assembler manual and say that again. If you're thinking of the 1010 and 1011 traps, they're a rather expensive way to get an extra 8192 "interrupts".... MS-DOS is considered an 8-bit OS because the 8088 processor looks a lot like an 8-bit processor, granted --- but interrupts have a lot less to do with it than those stupid segment registers. ++Brandon -- Me: Brandon S. Allbery Ham: KB8JRR/AA 10m,6m,2m,220,440,1.2 Internet: allbery@NCoast.ORG (restricted HF at present) Delphi: ALLBERY AMPR: kb8jrr.AmPR.ORG [44.70.4.88] uunet!usenet.ins.cwru.edu!ncoast!allbery KB8JRR @ WA8BXN.OH
stevep@wrq.com (Steve Poole) (05/10/91)
In article <1991May2.104907.25975@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: > >Microsoft has abandoned OS/2, didn't you notice? > That's not true by a long shot. What's all this cruft doing in c.s.a.a, anyhow? My 'k' key is about broken. -- -------------------------------------------------------------------------- -- INTEL 80x86: Just say NOP -- Internet: stevep@wrq.com -- AOL: Spoole -- --------------------------------------------------------------------------
allbery@NCoast.ORG (Brandon S. Allbery KB8JRR/AA) (05/10/91)
As quoted from <1991May7.063757.804@kessner.denver.co.us> by david@kessner.denver.co.us (David Kessner): +--------------- | In article <1991May5.022646.19235@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: | >In article <1991May3.041705.9907@kessner.denver.co.us> david@kessner.denver.co.us (David Kessner) writes: | >>IMHO, the 'bits' of an OS is the largest number it can put in a CPU register. | >> In this light, MS-DOS is a 16 bit OS. Plain and simple. | > | >Same is true for CP/M. HL on the 8080 is 16 bits wide. IX and IY on the Z80 | >are too. Or how about MCP, the O/S I worked on in my last job... the 1802 | >has *16* 16-bit registers! That's 12 (or is that 13) more than the 8088. | | So be it. But _you_ are the only one that wishes to bother talking about | CP/M, etc, etc. +--------------- Strictly speaking, it's the number of bits in the general registers/ accumulator. HL was not a general register. Actually, even more strictly speaking, it's proper to use a hybrid designator for the processors with more than one register size, thus the 8080, Z80, and 1802 (and 6809) are 8/16-bit registers. Of course, by this rule, so is the 80x86 (AH/AL)... and the 680x0 (XXX.B instructions). The largest general register disambiguates, thus AX makes the 80x86 16-bit and d0-d7 make the 680x0 32-bit. Except for the 68000 only addressing 24 bits of memory... "Bits" in this context is as meaningless as MIPS. Why fight over it? +--------------- | >> The operating system (and/or device drivers) should deal with any | >> hardware differences between machines-- and that is the role of the | >> BIOS. | > | >That doesn't handle the differences between the IBM-PC, HP150, Victor 9000, | >TI-PRO, etc... or more recently the Data General 1... | | The BIOS was limited by a bad inital design. Early on, a lot of programmers | learned that the BIOS didn't do many things very well-- namely video/graphics, | serial I/O, and a few other things. Then there were many programmers that | insisted on going around the OS and access the hardware directly. The BIOS | cannot mask the hardware differences when the BIOS is not used. +--------------- Exactly. Take a look at the BIOS serial driver some time, and have a good laugh. The other problem is that when BIOS or DOS did manage to do what you wanted, it was dog slow doing it. +--------------- | You wanted to know why I thought of the BIOS as part of MS-DOS... And I | told you... +--------------- That's not why the BIOS is part of MS-DOS, it's why MS-DOS is such a miserable excuse for an OS. BIOS was intended as a platform on which MS-DOS or CP/M-86 could be implemented in a hardware-independent fashion by providing the most basic interface to the hardware; CP/M-86 never caught on, and MS-DOS performed so miserably, that programmers resorted to calling BIOS directly or even diddling the hardware itself. It's notable that, when programs *did* do things through MS-DOS, Concurrent CP/M's DOS compatibility mechanism could multitask them quite well... and just about all standard CP/M-86 programs could be multitasked as well, because fewer CP/M-86 programmers had to resort to BIOS or hardware to get things done. ++Brandon -- Me: Brandon S. Allbery Ham: KB8JRR/AA 10m,6m,2m,220,440,1.2 Internet: allbery@NCoast.ORG (restricted HF at present) Delphi: ALLBERY AMPR: kb8jrr.AmPR.ORG [44.70.4.88] uunet!usenet.ins.cwru.edu!ncoast!allbery KB8JRR @ WA8BXN.OH
allbery@NCoast.ORG (Brandon S. Allbery KB8JRR/AA) (05/10/91)
As quoted from <1991May7.064810.905@kessner.denver.co.us> by david@kessner.denver.co.us (David Kessner): +--------------- | In article <1991May5.024025.19463@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: | > "monitor" ROM resident, usually loads programs from tape. Provides | > the services of simple I/O, execution control. +--------------- BIOS. +--------------- | > "program loader" loaded from disk (usually), provides a file system, | > program loading, execution control, simple I/O. +--------------- What MS-DOS actually achieves. +--------------- | > "operating system" adds real device drivers and device independence, | > memory and CPU time management. +--------------- What MS-DOS aspired to be, but was too inefficient and underfeatured to achieve. What CP/M-86 achieved. +--------------- | > "protected O/S" adds resource tracking and protection. +--------------- What CCP/M-86 aspired to be, and partially succeeded at. +--------------- | >DOS doesn't even qualify as an O/S to me. Neither does Mac OS, or any PC | >system software prior to the Amiga. +--------------- Peter, I fail to understand this. Where does MacOS fall short? Or are you confusing the "OS" level with the "protected OS" or "multiuser OS" level? If it has to be pre-emptively multitasking before it can really be called an OS, you neglected to indicate this in your definitions --- and serious OS designers would disagree with you. In reality, "multitasking OS" is a step between "protected OS" and "multiuser OS", where things are protected just enough to deal with inter-process contention but not with inter-user contention. Then there's "multiprocessor OS", which extends protection to the level of concurrent processes. Except that you can have multitasking without protection (any multitasker on an 8088/80286), multiuser without user access protection (MP/M) or even true resource protection (MP/M-80!). And special-purpose applications can have a system with multitasking and advanced services but no program loading, thus missing the "OS" level while incorporating features beyond it. Another example of meaningless artificial divisions.... ++Brandon -- Me: Brandon S. Allbery Ham: KB8JRR/AA 10m,6m,2m,220,440,1.2 Internet: allbery@NCoast.ORG (restricted HF at present) Delphi: ALLBERY AMPR: kb8jrr.AmPR.ORG [44.70.4.88] uunet!usenet.ins.cwru.edu!ncoast!allbery KB8JRR @ WA8BXN.OH
allbery@NCoast.ORG (Brandon S. Allbery KB8JRR/AA) (05/10/91)
As quoted from <165.tnews@ping.actrix.gen.nz> by ping@ping.actrix.gen.nz (Peter Ingham): +--------------- | Commercially you could argue that Intel's decision was correct, many | followed their direction and they have sold MPU's at a rate _FAR_ | exceeding _any_ other manufacturer. +--------------- Had this been true, CP/M-86 would have dominated the Intel market long since --- CP/M-86 came with a program that would convert any CP/M-80 assembler program to CP/M-86 by tweaking assembler mnemonics. What made Intel a winner was the IBM PC --- no more, no less. Which raises a ghastly "what-if": IBM originally wanted to use the 68000 for the PC, but Motorola wasn't shipping.... ++Brandon -- Me: Brandon S. Allbery Ham: KB8JRR/AA 10m,6m,2m,220,440,1.2 Internet: allbery@NCoast.ORG (restricted HF at present) Delphi: ALLBERY AMPR: kb8jrr.AmPR.ORG [44.70.4.88] uunet!usenet.ins.cwru.edu!ncoast!allbery KB8JRR @ WA8BXN.OH
kdarling@hobbes.catt.ncsu.edu (Kevin Darling) (05/10/91)
jcav@quads.uchicago.edu (john cavallino) writes: > As I understand it, the TRAPn instructions were specifically intended by > Motorola to be used to invoke the operating system. Exactly. Even from the original 68K docs: "Some instructions are used specifically to generate traps. The TRAP instruction always forces an exception, and is useful for implementing system calls from user programs." By using Traps as the OS interface, you also don't need to keep OS jump tables around within user space. This can often make it much easier to implement MMU-based OS's, protection, etc. So yep, the ST actually used that feature of the 68K, at least, just as the Motorola gurus had intended. best regards - kevin <kdarling@catt.ncsu.edu>
jbickers@templar.actrix.gen.nz (John Bickers) (05/10/91)
Quoted from <1991May9.191412.15264@midway.uchicago.edu> by jcav@quads.uchicago.edu (john cavallino): > As I understand it, the TRAPn instructions were specifically intended by > Motorola to be used to invoke the operating system. After all, there are Perhaps they were thinking of dishwasher OSes, or something. Trying to compete with Intel for the dishwasher OS market... :) > entries in the vector table. What's REALLY wierd is the Macintosh [Still Pascal?] > operating system, which uses the MC680x0 A-line unimplemented instructions > as the OS interface, with the routine index and various flags encoded into > the instruction word. Well, the ST thing has desensitized me, otherwise I'd fall over backwards laughing at this one. I guess this is well hidden by Mac C compilers etc. > John Cavallino | EMail: jcav@midway.uchicago.edu -- *** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** *** "Endless variations, make it all seem new" - Devo. ***
torrie@cs.stanford.edu (Evan Torrie) (05/11/91)
jbickers@templar.actrix.gen.nz (John Bickers) writes: >Quoted from <1991May9.191412.15264@midway.uchicago.edu> by jcav@quads.uchicago.edu (john cavallino): >> As I understand it, the TRAPn instructions were specifically intended by >> Motorola to be used to invoke the operating system. After all, there are > Perhaps they were thinking of dishwasher OSes, or something. Trying > to compete with Intel for the dishwasher OS market... :) If I recall correctly, isn't this how Unix handles system entry calls? My recollection of PDP-11 V7 Unix was that all system calls were invoked via a trap instruction, with a word afterwords encoding which call was desired. >> operating system, which uses the MC680x0 A-line unimplemented instructions >> as the OS interface, with the routine index and various flags encoded into >> the instruction word. > Well, the ST thing has desensitized me, otherwise I'd fall over > backwards laughing at this one. I guess this is well hidden by Mac > C compilers etc. Like I say, isn't this how Unix does it? -- ------------------------------------------------------------------------------ Evan Torrie. Stanford University, Class of 199? torrie@cs.stanford.edu Murphy's Law of Intelism: Just when you thought Intel had done everything possible to pervert the course of computer architecture, they bring out the 860
dac@prolix.pub.uu.oz.au (Andrew Clayton) (05/11/91)
In article <1991May9.174637.3153@sugar.hackercorp.com>, Peter da Silva writes: > here). ACLs are nice, but the lack of ACLs in UNIX is hardly a reason to > justify the complete lack of protection in OS/2. > > PS: comp.os.os2.advocacy. It's time. ~~~~~~~~~ You're a sick man, Peter. :-) Dac --
jbickers@templar.actrix.gen.nz (John Bickers) (05/11/91)
Quoted from <1991May10.183627.29486@neon.Stanford.EDU> by torrie@cs.stanford.edu (Evan Torrie): > jbickers@templar.actrix.gen.nz (John Bickers) writes: > If I recall correctly, isn't this how Unix handles system entry calls? Ok, couple of serious points/questions here... . What is the performance of this kind of system call like for a given CPU? I imagine that on a 680x0 more processing will be done as a lead-in to the function call (like the DOSBase functions), but is the TRAP faster than a JSR (not according to my assembler manual, but I may be misreading it)? . Surely for Unix this would vary from implementation to implementation. Does it? Is this what the NeXT and A/UX use? Does AT&T Unix VR4 on the Amiga also do this? > My recollection of PDP-11 V7 Unix was that all system calls were invoked > via a trap instruction, with a word afterwords encoding which call was Perhaps that was the best way to do it on a PDP-11. What are some of the same folks doing now with Plan-9 on modern hardware? What other considerations are there? I looked up the assembler for the PDP-11, and it appears a TRAP is a bit slower than a JSR. Is there something to do with the state of the machine that is useful to OS functions when a TRAP is used instead of a JSR (for a PDP-11, or for a 680x0?)? > > Well, the ST thing has desensitized me, otherwise I'd fall over > > backwards laughing at this one. I guess this is well hidden by Mac > > C compilers etc. > > Like I say, isn't this how Unix does it? If it is, it is also well hidden by the system (as it should be) compilers. MS-DOS's aren't. In any case, I'm surprised. Is the Amiga OS the only rational one in this bunch, eh? > Evan Torrie. Stanford University, Class of 199? torrie@cs.stanford.edu -- *** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** *** "Endless variations, make it all seem new" - Devo. ***
jbickers@templar.actrix.gen.nz (John Bickers) (05/11/91)
Quoted from <1991May10.000135.7550@NCoast.ORG> by allbery@NCoast.ORG (Brandon S. Allbery KB8JRR/AA): > As quoted from <3335.tnews@templar.actrix.gen.nz> by jbickers@templar.actrix.gen.nz (John Bickers): > | PClone, it appears to involve using fixed tables of vectors into the > | ROMs. > ??? ONE interrupt is used for system calls --- INT 21H (that, by the way, is Then I must be including things akin to our external libraries. I'm fairly sure that I've used a different number to do things with the display. 0x10...? > be dropped into place. Theoretically, you're not supposed to call the BIOS > directly, but we all know what MS-Doesn't is like.... Must be it. Now that I know so many microcomputer OSes do this sort of thing, I'm certainly interested in _why_ they do it. > Me: Brandon S. Allbery Ham: KB8JRR/AA 10m,6m,2m,220,440,1.2 -- *** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** *** "Endless variations, make it all seem new" - Devo. ***
david@kessner.denver.co.us (David Kessner) (05/12/91)
In article <1991May10.003301.7881@NCoast.ORG> allbery@ncoast.ORG (Brandon S. Allbery KB8JRR/AA) writes: >Exactly. Take a look at the BIOS serial driver some time, and have a good >laugh. The other problem is that when BIOS or DOS did manage to do what you >wanted, it was dog slow doing it. I have. In fact, my serial routine C library was posted on comp.os.msdos.programmer. I wrote them simply because the BIOS was bad at that sort of thing. >That's not why the BIOS is part of MS-DOS, it's why MS-DOS is such a miserable >excuse for an OS. It's not the only reason MS-DOS is bad-- but just another in the long list. It just goes to show you that the very first design must be great otherwise everything else fails... In this case MS-DOS. But MS-DOS has other problems. >Me: Brandon S. Allbery Ham: KB8JRR/AA 10m,6m,2m,220,440,1.2 >Internet: allbery@NCoast.ORG (restricted HF at present) -- David Kessner - david@kessner.denver.co.us | do { 1135 Fairfax, Denver CO 80220 (303) 377-1801 (p.m.) | . . . If you cant flame MS-DOS, who can you flame? | } while( jones);
allbery@NCoast.ORG (Brandon S. Allbery KF8NH) (05/13/91)
As quoted from <3636.tnews@templar.actrix.gen.nz> by jbickers@templar.actrix.gen.nz (John Bickers): +--------------- | Quoted from <1991May10.000135.7550@NCoast.ORG> by allbery@NCoast.ORG (Brandon S. Allbery KB8JRR/AA): | > As quoted from <3335.tnews@templar.actrix.gen.nz> by jbickers@templar.actrix.gen.nz (John Bickers): | > | PClone, it appears to involve using fixed tables of vectors into the | > | ROMs. | > | > ??? ONE interrupt is used for system calls --- INT 21H (that, by the way, is | | Then I must be including things akin to our external libraries. I'm | fairly sure that I've used a different number to do things with the | display. 0x10...? +--------------- That's the BIOS viden interrupt. As I said, you're "not supposed to do that". +--------------- | > be dropped into place. Theoretically, you're not supposed to call the BIOS | > directly, but we all know what MS-Doesn't is like.... | | Must be it. Now that I know so many microcomputer OSes do this sort | of thing, I'm certainly interested in _why_ they do it. +--------------- Do *which* sort of thing? One interrupt for the OS entry point? That's probably because it potentially has even more possible values than you have interrupts. Should MS-Doesn't ever break the 256-syscall barrier (this is, you understand, purely theoretical :-) , they can expand the system calls to use AX instead of AL (set AH=0 and you have the original set), thus 65536 system calls. That's probably the limit for DOS, though, until and unless they drop 8088 "real" mode. (Of course, AH is already used by some calls and programmers expect AH to be unused in others, so the All-Holy Compatibility with DOS 1.25 programs would be broken by this, so it'll never happen. :-) A better example: a 680x0 Unix I used which used one of the "trap" calls and placed the system call number in d0. Now, how many possible system calls is that? 4,294,967,296! The Unix Thought Police will get them for kernel bloat before they get anywhere near that many syscalls. :-) *How* many interrupts did you say you had, in comparison (even using the Mac-noid 1010/1011 trap)? ++Brandon -- Me: Brandon S. Allbery Ham: KF8NH on 10m,6m,2m,220,440,1.2 Internet: allbery@NCoast.ORG (restricted HF at present) Delphi: ALLBERY AMPR: kf8nh.AmPR.ORG [44.70.4.88] uunet!usenet.ins.cwru.edu!ncoast!allbery KF8NH @ WA8BXN.OH
allbery@NCoast.ORG (Brandon S. Allbery KF8NH) (05/13/91)
As quoted from <3626.tnews@templar.actrix.gen.nz> by jbickers@templar.actrix.gen.nz (John Bickers): +--------------- | Quoted from <1991May10.183627.29486@neon.Stanford.EDU> by torrie@cs.stanford.edu (Evan Torrie): | > jbickers@templar.actrix.gen.nz (John Bickers) writes: | > My recollection of PDP-11 V7 Unix was that all system calls were invoked | > via a trap instruction, with a word afterwords encoding which call was | | What other considerations are there? I looked up the assembler for | the PDP-11, and it appears a TRAP is a bit slower than a JSR. Is | there something to do with the state of the machine that is useful | to OS functions when a TRAP is used instead of a JSR (for a PDP-11, | or for a 680x0?)? +--------------- TRAP is slower, but JSR doesn't switch the processor to supervisor state. Yes, Unix runs the kernel in supervisor and user programs in user mode. Why do you think Unix programs core dump instead of guru-ing? +--------------- | > > Well, the ST thing has desensitized me, otherwise I'd fall over | > > backwards laughing at this one. I guess this is well hidden by Mac | > > C compilers etc. | > | > Like I say, isn't this how Unix does it? | | If it is, it is also well hidden by the system (as it should be) | compilers. MS-DOS's aren't. +--------------- Actually, 680x0 Unix usually puts the system call in d0. +--------------- | In any case, I'm surprised. Is the Amiga OS the only rational one | in this bunch, eh? +--------------- I don't consider running all programs in supervisor mode "rational". Does/did the Atari ST do this? The Mac does, and it shows. If you're going to multitask, one task shouldn't have the capability of crashing the whole system. That's the sort of thing 8088 unixes pull (because Intel left them no choice). I expect better of 680x0's.... ++Brandon -- Me: Brandon S. Allbery Ham: KF8NH on 10m,6m,2m,220,440,1.2 Internet: allbery@NCoast.ORG (restricted HF at present) Delphi: ALLBERY AMPR: kf8nh.AmPR.ORG [44.70.4.88] uunet!usenet.ins.cwru.edu!ncoast!allbery KF8NH @ WA8BXN.OH
tim@proton.amd.com (Tim Olson) (05/13/91)
In article <3626.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: | Quoted from <1991May10.183627.29486@neon.Stanford.EDU> by torrie@cs.stanford.edu (Evan Torrie): | > My recollection of PDP-11 V7 Unix was that all system calls were invoked | > via a trap instruction, with a word afterwords encoding which call was | | Perhaps that was the best way to do it on a PDP-11. What are some of | the same folks doing now with Plan-9 on modern hardware? The same thing. | What other considerations are there? I looked up the assembler for | the PDP-11, and it appears a TRAP is a bit slower than a JSR. Is | there something to do with the state of the machine that is useful | to OS functions when a TRAP is used instead of a JSR (for a PDP-11, | or for a 680x0?)? UNIX processes operate in two modes: user and kernel. When operating in user mode, the processes are prevented from performing certain CPU instructions which could crash the system. To switch to kernel mode, the CPU state must change from user to supervisor (to allow execution of priveledged instructions). a "JSR" instruction will not do this. Instead, some type of TRAP instruction is usually executed to affect this change. | In any case, I'm surprised. Is the Amiga OS the only rational one | in this bunch, eh? Are you sure that system calls to Amiga OS *don't* use some sort of TRAP instruction (usually hidden in a library routine). I seem to remember discussions of user-code trying to access the SR and failing on the 68010, which protects that register in user-mode. If so, then the code must be running in user-mode, and it must somehow switch to supervisor-mode at some point... -- -- Tim Olson Advanced Micro Devices (tim@amd.com)
torrie@cs.stanford.edu (Evan Torrie) (05/13/91)
allbery@NCoast.ORG (Brandon S. Allbery KF8NH) writes: >+--------------- >| In any case, I'm surprised. Is the Amiga OS the only rational one >| in this bunch, eh? >+--------------- >I don't consider running all programs in supervisor mode "rational". Does/did >the Atari ST do this? The Mac does, and it shows. Yes, although it's now changing in System 7.0 with VM. Now, processes run in user mode under VM. -- ------------------------------------------------------------------------------ Evan Torrie. Stanford University, Class of 199? torrie@cs.stanford.edu "And remember, whatever you do, DON'T MENTION THE WAR!"
peter@sugar.hackercorp.com (Peter da Silva) (05/13/91)
In article <1991May10.005049.8355@NCoast.ORG> allbery@ncoast.ORG (Brandon S. Allbery KB8JRR/AA) writes: > Peter, I fail to understand this. Where does MacOS fall short? Hi! The MacOS fails in not having a scheduler, to manage CPU time in an efficient and equitable manner. CPU time is another resource to be managed, and if the system software doesn't do so (which it doesn't on the Mac: each application is solely responsible for its use of CPU time and scheduling the next task to run) then it's not managing all the major system resources: disk space memory stream I/O devices CPU More recently, screen real estate is becoming an O/S resource... but not all systems have manageable screen hardware. They all have CPUs. The Mac system software has acceptable disk management, acceptbale memory management, acceptable stream device management, and phenomenal screen management. The system software, however, does not manage CPU time worth a damn. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
jbickers@templar.actrix.gen.nz (John Bickers) (05/13/91)
Quoted from <1991May12.180515.20191@NCoast.ORG> by allbery@NCoast.ORG (Brandon S. Allbery KF8NH): > Do *which* sort of thing? One interrupt for the OS entry point? _Any_ interrupts for an OS entry point. The library approach in the Amiga seems faster and more powerful to me. More natural. :) > That's probably because it potentially has even more possible values than you > have interrupts. Should MS-Doesn't ever break the 256-syscall barrier (this Yes, there's no doubt that the entry point can fan out ad infinitum once you're through it (like the ah could be set to something currently reserved, and some other register could be loaded with 16 bits of info, so it'd branch off ah, then branch off bx, or whatever. And so on...). The thing is, why do it like this, when you could jump straight (or almost straight, counting the little detour to give people an opportunity to intercept OS calls) into the OS? As for not using the other interrupts (0x10 for video, etc)... ha. :) > ++Brandon -- *** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** *** "Endless variations, make it all seem new" - Devo. ***
jbickers@templar.actrix.gen.nz (John Bickers) (05/13/91)
Quoted from <1991May12.181436.20304@NCoast.ORG> by allbery@NCoast.ORG (Brandon S. Allbery KF8NH): > TRAP is slower, but JSR doesn't switch the processor to supervisor state. > Yes, Unix runs the kernel in supervisor and user programs in user mode. Why > do you think Unix programs core dump instead of guru-ing? I thought part of that had to do with using MMUs. Except for the fact that Amiga programs can blat into sensitive places (the Blitter, etc), why not control reads/writes with the MMU, and use the TRAPs for trapping what they're supposed to trap like GOMF does already? > | If it is, it is also well hidden by the system (as it should be) > | compilers. MS-DOS's aren't. > +--------------- > > Actually, 680x0 Unix usually puts the system call in d0. Nevertheless, hidden. I haven't noticed an intfoo() function in a Unix compiler yet. > | In any case, I'm surprised. Is the Amiga OS the only rational one > | in this bunch, eh? > I don't consider running all programs in supervisor mode "rational". Does/did > the Atari ST do this? The Mac does, and it shows. Does the Amiga? I'm as sure as I ever am about anything that it doesn't. > ++Brandon -- *** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** *** "Endless variations, make it all seem new" - Devo. ***
jbickers@templar.actrix.gen.nz (John Bickers) (05/13/91)
Quoted from <1991May12.204607.22101@dvorak.amd.com> by tim@proton.amd.com (Tim Olson): > In article <3626.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: > | In any case, I'm surprised. Is the Amiga OS the only rational one > | in this bunch, eh? > > Are you sure that system calls to Amiga OS *don't* use some sort of > TRAP instruction (usually hidden in a library routine). I seem to Some must do so. This is somewhat different from being the interface to the OS, though. > -- Tim Olson -- *** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** *** "Endless variations, make it all seem new" - Devo. ***
jerry@polygen.uucp (Jerry Shekhel) (05/13/91)
jbickers@templar.actrix.gen.nz (John Bickers) writes: > > > I thought IBM _took_ it from Microsoft because they thought Microsoft > was botching it. The IBM version coming out now is apparently way > ahead of the old one > Well, IBM and Microsoft did have some opposing views. Nevertheless, the IBM version about to be released was still mostly developed at MS. > > nothing that runs on an Intel CPU can be worthwhile). > I guess you think that SYSVR4 is not worthwhile? > > Does OS/2 multitask as nicely as Unix, have all those crontab and > uucp facilities, the user/group/world file protection stuff, etc? > It multitasks *BETTER* than UNIX. It has lightweight processes (threads), the concept of the foreground process, etc. It's a single-user OS, so there is no standard file protection stuff, but the HPFS supports extended file attributes which may be used by network systems to implement protection. Also, the file system in OS/2 is replaceable. > > Things like run-time libraries, etc? :) > It has dynamic-link libraries, more IPC mechanisms than UNIX ever dreamed of, a standard graphics library (GPI) that puts most others to shame, etc. >*** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** -- +-------------------+----------------------+---------------------------------+ | JERRY J. SHEKHEL | POLYGEN CORPORATION | When I was young, I had to walk | | Drummers do it... | Waltham, MA USA | to school and back every day -- | | ... In rhythm! | (617) 890-2175 | 20 miles, uphill both ways. | +-------------------+----------------------+---------------------------------+ | ...! [ princeton mit-eddie bu sunne ] !polygen!jerry | | jerry@polygen.com | +----------------------------------------------------------------------------+
peter@sugar.hackercorp.com (Peter da Silva) (05/14/91)
In article <1991May12.181436.20304@NCoast.ORG> allbery@ncoast.ORG (Brandon S. Allbery KF8NH) writes: > If you're going to multitask, one task shouldn't have the capability of > crashing the whole system. That's the sort of thing 8088 unixes pull (because > Intel left them no choice). I expect better of 680x0's.... 68000 doesn't have an MMU, Brandon. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
peter@sugar.hackercorp.com (Peter da Silva) (05/14/91)
In article <3691.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: > Nevertheless, hidden. I haven't noticed an intfoo() function in > a Unix compiler yet. System V/386. The call is sysi86(). -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
allbery@NCoast.ORG (Brandon S. Allbery KF8NH) (05/14/91)
As quoted from <3686.tnews@templar.actrix.gen.nz> by jbickers@templar.actrix.gen.nz (John Bickers): +--------------- | Quoted from <1991May12.180515.20191@NCoast.ORG> by allbery@NCoast.ORG (Brandon S. Allbery KF8NH): | > Do *which* sort of thing? One interrupt for the OS entry point? | | _Any_ interrupts for an OS entry point. The library approach in the | Amiga seems faster and more powerful to me. More natural. :) +--------------- Gack. One typo in a header file and every program in existence breaks. And if you're going to switch from user to supervisor mode you end up doing a trap anyway (although I understand that the Amiga has the same no-protection braindamage as every other baby system; I give up, I'll just get a Unix box). ++Brandon -- Me: Brandon S. Allbery Ham: KF8NH on 10m,6m,2m,220,440,1.2 Internet: allbery@NCoast.ORG (restricted HF at present) Delphi: ALLBERY AMPR: kf8nh.AmPR.ORG [44.70.4.88] uunet!usenet.ins.cwru.edu!ncoast!allbery KF8NH @ WA8BXN.OH
allbery@NCoast.ORG (Brandon S. Allbery KF8NH) (05/14/91)
As quoted from <1991May12.210110.23707@neon.Stanford.EDU> by torrie@cs.stanford.edu (Evan Torrie): +--------------- | allbery@NCoast.ORG (Brandon S. Allbery KF8NH) writes: | >+--------------- | >| In any case, I'm surprised. Is the Amiga OS the only rational one | >| in this bunch, eh? | >+--------------- | | >I don't consider running all programs in supervisor mode "rational". Does/did | >the Atari ST do this? The Mac does, and it shows. | | Yes, although it's now changing in System 7.0 with VM. Now, processes | run in user mode under VM. +--------------- ...mainly because they have to, to get VM. Which won't prevent one program from smashing another unless they also add memory protection, which I rather suspect Apple didn't. ++Brandon -- Me: Brandon S. Allbery Ham: KF8NH on 10m,6m,2m,220,440,1.2 Internet: allbery@NCoast.ORG (restricted HF at present) Delphi: ALLBERY AMPR: kf8nh.AmPR.ORG [44.70.4.88] uunet!usenet.ins.cwru.edu!ncoast!allbery KF8NH @ WA8BXN.OH
allbery@NCoast.ORG (Brandon S. Allbery KF8NH) (05/14/91)
As quoted from <3691.tnews@templar.actrix.gen.nz> by jbickers@templar.actrix.gen.nz (John Bickers): +--------------- | Quoted from <1991May12.181436.20304@NCoast.ORG> by allbery@NCoast.ORG (Brandon S. Allbery KF8NH): | > TRAP is slower, but JSR doesn't switch the processor to supervisor state. | > Yes, Unix runs the kernel in supervisor and user programs in user mode. Why | > do you think Unix programs core dump instead of guru-ing? | | I thought part of that had to do with using MMUs. Except for the fact | that Amiga programs can blat into sensitive places (the Blitter, | etc), why not control reads/writes with the MMU, and use the TRAPs | for trapping what they're supposed to trap like GOMF does already? +--------------- They're both needed. If programs run in supervisor mode, they can defeat the MMU; if they run in user mode without MMU memory protection, they can still hode things up good for the system or other programs. +--------------- | > Actually, 680x0 Unix usually puts the system call in d0. | | Nevertheless, hidden. I haven't noticed an intfoo() function in | a Unix compiler yet. +--------------- Later MS-DOS C compilers come with real libraries, so int() isn't necessary for system calls. BIOS calls are another matter, but they're a prime symptom of brain-damage anyway. +--------------- | Does the Amiga? I'm as sure as I ever am about anything that it | doesn't. +--------------- So user processes run in user mode. But the system has to run in supervisor mode to manipulate the MMU... oh, that's right, the Amiga doesn't use the MMU. (Yes, I know about compatibility and the 68000.) So does the Amiga ever use supervisor mode? And if it does, how does it get there without a trap? And using a non-interrupt entry point runs the risk of somebody accidentally typo'ing a #define and making every program in existence break as a result. That's why people moved from JSR's to interrupts in the first place (I recall LDOS trumpeting their svc interface as an alternative to CALLs to invoke OS functions, waaaaay back when). ++Brandon -- Me: Brandon S. Allbery Ham: KF8NH on 10m,6m,2m,220,440,1.2 Internet: allbery@NCoast.ORG (restricted HF at present) Delphi: ALLBERY AMPR: kf8nh.AmPR.ORG [44.70.4.88] uunet!usenet.ins.cwru.edu!ncoast!allbery KF8NH @ WA8BXN.OH
allbery@NCoast.ORG (Brandon S. Allbery KF8NH) (05/14/91)
As quoted from <1991May13.003426.259@sugar.hackercorp.com> by peter@sugar.hackercorp.com (Peter da Silva): +--------------- | In article <1991May10.005049.8355@NCoast.ORG> allbery@ncoast.ORG (Brandon S. Allbery KB8JRR/AA) writes: | > Peter, I fail to understand this. Where does MacOS fall short? | | The MacOS fails in not having a scheduler, to manage CPU time in an efficient +--------------- So in other words, a "real OS" by your definition must have multitasking. OS types would disagree, as I said in the message you're responding to. ++Brandon -- Me: Brandon S. Allbery Ham: KF8NH on 10m,6m,2m,220,440,1.2 Internet: allbery@NCoast.ORG (restricted HF at present) Delphi: ALLBERY AMPR: kf8nh.AmPR.ORG [44.70.4.88] uunet!usenet.ins.cwru.edu!ncoast!allbery KF8NH @ WA8BXN.OH
peter@sugar.hackercorp.com (Peter da Silva) (05/14/91)
In article <1991May13.222839.8349@NCoast.ORG> allbery@ncoast.ORG (Brandon S. Allbery KF8NH) writes: > (although I understand that the Amiga has the same no-protection > braindamage as every other baby system; I give up, I'll just get a Unix box). OK, Brandon. How would *you* build a consumer-priced machine in 1985 with memory protection. If you can, you'll be the first. The Amiga is basically the best machine that could have been built at that time for under $2000. Classifying hard design choices as "brain damage" is narrow minded and elitist. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
peter@sugar.hackercorp.com (Peter da Silva) (05/14/91)
In article <1991May13.224027.9132@NCoast.ORG> allbery@ncoast.ORG (Brandon S. Allbery KF8NH) writes: > And using a non-interrupt entry point runs the risk of somebody accidentally > typo'ing a #define and making every program in existence break as a result. No more than you can with interrupts. What's the difference between: TRAP 2, 15 and: JSR -128(A6) You're jumping through a table in either case. You can get the magic numbers wrong in either case. And the results will be equally bad in either case. > That's why people moved from JSR's to interrupts in the first place (I recall > LDOS trumpeting their svc interface as an alternative to CALLs to invoke OS > functions, waaaaay back when). I remember LDOS. For the trash-80. No, people went to interrupts purely for the sake of memory protection. "typoing header files" is a pure red herring. > > ++Brandon > -- > Me: Brandon S. Allbery Ham: KF8NH on 10m,6m,2m,220,440,1.2 > Internet: allbery@NCoast.ORG (restricted HF at present) > Delphi: ALLBERY AMPR: kf8nh.AmPR.ORG [44.70.4.88] > uunet!usenet.ins.cwru.edu!ncoast!allbery KF8NH @ WA8BXN.OH -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
peter@sugar.hackercorp.com (Peter da Silva) (05/14/91)
In article <1991May13.224238.9296@NCoast.ORG> allbery@ncoast.ORG (Brandon S. Allbery KF8NH) writes: > So in other words, a "real OS" by your definition must have multitasking. No "quotes". No "real this". An operating system must manage all the resources of the machine. If it doesn't, it doesn't qualify as an operating system. The CPU is the most important resource of all. If the system software doesn't manage CPU time (which the Mac software doesn't, even under Multifinder) it is no more an operating system than MS-DOS. > OS types would disagree, as I said in the message you're responding to. No, OS types would agree. I would recommend Comer's "Xinu" book... the introduction contains one of the best definitions of an O/S I've ever seen. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
jbickers@templar.actrix.gen.nz (John Bickers) (05/15/91)
Quoted from <1991May13.170515.10233@sugar.hackercorp.com> by peter@sugar.hackercorp.com (Peter da Silva): > In article <3691.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: > > Nevertheless, hidden. I haven't noticed an intfoo() function in > > a Unix compiler yet. > > System V/386. The call is sysi86(). And on an Intel CPU! We all know the thing about dead bunnies and straws, eh? Is this one reason why? > Peter da Silva. `-_-' -- *** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** *** "Endless variations, make it all seem new" - Devo. ***
elg@elgamy.RAIDERNET.COM (Eric Lee Green) (05/15/91)
From article <1991May13.224027.9132@NCoast.ORG>, by allbery@NCoast.ORG (Brandon S. Allbery KF8NH): > And using a non-interrupt entry point runs the risk of somebody accidentally > typo'ing a #define and making every program in existence break as a result. This is the second time I've seen this, and I don't understand it. First of all, the Amiga doesn't have any "system call" entry points. It has shared libraries, some of which are located on disk (e.g. the IEEE math simulation libraries for machines without a math chip) and some of which happen to be built-in to the ROM. The compilers generate calls to these libraries by using base pointer and offset (i.e., a jump table starts at the library base pointer). How could typo'ing a #define break every program in existence? When all those programs already have the correct offsets into the library jump table compiled into them? Oh, you mean if one of the OS people accidently insert a function into the jump table in the wrong place? But that'd be caught early in the test-debug cycle, long before the library was released to the general public. And nobody types in #defines for these offsets... they're automagically generated from the Commodore-supplied library description files, or linked in via a Commodore-supplied stub code library (amiga.lib). Not that it matters, anyhow. Even if you were using direct offsets (like some of the assembly language folks like to do), typo'ing would just mean that your program would crash (i.e., would call the wrong function). It wouldn't make any other program break. They already have those offsets compiled into them. So tell me, what exactly do you mean by "typo'ing a define and making every program in existence break"? Because I just don't see how it could happen, on the Amiga. -- Eric Lee Green (318) 984-1820 P.O. Box 92191 Lafayette, LA 70509 elg@elgamy.RAIDERNET.COM uunet!mjbtn!raider!elgamy!elg
jbickers@templar.actrix.gen.nz (John Bickers) (05/15/91)
Quoted from <1991May13.224027.9132@NCoast.ORG> by allbery@NCoast.ORG (Brandon S. Allbery KF8NH): > for system calls. BIOS calls are another matter, but they're a prime symptom What does BIOS stand for? > So user processes run in user mode. But the system has to run in supervisor > mode to manipulate the MMU... oh, that's right, the Amiga doesn't use the MMU. The "Amiga" does use the MMU (for things like Enforcer, etc). How does an Enforcer-like tool work under Unix? Or how do Unix source code debuggers work, for example? > And using a non-interrupt entry point runs the risk of somebody accidentally > typo'ing a #define and making every program in existence break as a result. Eh? Would you like to elaborate on this? Sounds like an incredibly stupid mistake to make, but you make it sound like it has happened in the past. Pre C= 64 days, maybe? > ++Brandon -- *** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** *** "Endless variations, make it all seem new" - Devo. ***
david@kessner.denver.co.us (David Kessner) (05/15/91)
>> System V/386. The call is sysi86(). > > And on an Intel CPU! We all know the thing about dead bunnies and > straws, eh? Is this one reason why? > >> Peter da Silva. `-_-' >*** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** This, of course, has _NOTHING_ to do with the int86() function call. In reality, this function does "machine-specific" functions-- according to my System V 386 UNIX manual. This function is never used by any program that expects any portability amung platforms. What it is used for is determining several system configs (the amount of REAL RAM, FPU type, swap space), setting the system name (this can be done in other, better, ways), getting the hardware time of day, and several other 'system information' type things. It is plain that this function is not for calling UNIX system functions. In fact, the only thing remarkable about this function is the number '86' in the name-- for there is nothing that is inherent to the 80x86 CPU, and, while I don't have the manuals in front of me, I'd bet that Amiga UNIX has a very similar function-- sysm68k() perhapse. -- David Kessner - david@kessner.denver.co.us | 1135 Fairfax, Denver CO 80220 (303) 377-1801 (p.m.) | Reunite PANGEA! Why can't everyone have three or four line .sig's? |
kris@tpki.toppoint.de (Kristian Koehntopp) (05/15/91)
tim@proton.amd.com (Tim Olson) writes: > I seem to >remember discussions of user-code trying to access the SR and failing >on the 68010, which protects that register in user-mode. If so, then >the code must be running in user-mode, and it must somehow switch to >supervisor-mode at some point... No. AmigaOS is running in User Mode. You could probably fix this by hiding the switch to supervisor-mode in the library code. Kristian Kristian Koehntopp, Harmsstrasse 98, 2300 Kiel, +49 431 676689 (lisp 'kristian) NIL
jbickers@templar.actrix.gen.nz (John Bickers) (05/16/91)
Quoted from <1089@stewart.UUCP> by jerry@polygen.uucp (Jerry Shekhel): > > nothing that runs on an Intel CPU can be worthwhile). > I guess you think that SYSVR4 is not worthwhile? Not if it runs on an Intel CPU. In which case, as you imply, something designed specifically for the Intel could be better. > | JERRY J. SHEKHEL | POLYGEN CORPORATION | When I was young, I had to walk | -- *** John Bickers, TAP, NZAmigaUG. jbickers@templar.actrix.gen.nz *** *** "Endless variations, make it all seem new" - Devo. ***
mykes@amiga0.SF-Bay.ORG (Mike Schwartz) (05/17/91)
In article <1991May12.180515.20191@NCoast.ORG> allbery@NCoast.ORG (Brandon S. Allbery KF8NH) writes: >As quoted from <3636.tnews@templar.actrix.gen.nz> by jbickers@templar.actrix.gen.nz (John Bickers): >+--------------- >| Quoted from <1991May10.000135.7550@NCoast.ORG> by allbery@NCoast.ORG (Brandon S. Allbery KB8JRR/AA): >| > As quoted from <3335.tnews@templar.actrix.gen.nz> by jbickers@templar.actrix.gen.nz (John Bickers): >| > | PClone, it appears to involve using fixed tables of vectors into the >| > | ROMs. >| > >| > ??? ONE interrupt is used for system calls --- INT 21H (that, by the way, is >| >| Then I must be including things akin to our external libraries. I'm >| fairly sure that I've used a different number to do things with the >| display. 0x10...? >+--------------- > >That's the BIOS viden interrupt. As I said, you're "not supposed to do that". > >+--------------- >| > be dropped into place. Theoretically, you're not supposed to call the BIOS >| > directly, but we all know what MS-Doesn't is like.... >| >| Must be it. Now that I know so many microcomputer OSes do this sort >| of thing, I'm certainly interested in _why_ they do it. >+--------------- > >Do *which* sort of thing? One interrupt for the OS entry point? > >That's probably because it potentially has even more possible values than you >have interrupts. Should MS-Doesn't ever break the 256-syscall barrier (this >is, you understand, purely theoretical :-) , they can expand the system calls >to use AX instead of AL (set AH=0 and you have the original set), thus 65536 >system calls. That's probably the limit for DOS, though, until and unless >they drop 8088 "real" mode. (Of course, AH is already used by some calls and >programmers expect AH to be unused in others, so the All-Holy Compatibility >with DOS 1.25 programs would be broken by this, so it'll never happen. :-) > >A better example: a 680x0 Unix I used which used one of the "trap" calls and >placed the system call number in d0. Now, how many possible system calls is >that? 4,294,967,296! The Unix Thought Police will get them for kernel bloat >before they get anywhere near that many syscalls. :-) *How* many interrupts >did you say you had, in comparison (even using the Mac-noid 1010/1011 trap)? > >++Brandon >-- >Me: Brandon S. Allbery Ham: KF8NH on 10m,6m,2m,220,440,1.2 >Internet: allbery@NCoast.ORG (restricted HF at present) >Delphi: ALLBERY AMPR: kf8nh.AmPR.ORG [44.70.4.88] >uunet!usenet.ins.cwru.edu!ncoast!allbery KF8NH @ WA8BXN.OH In my own homebrew portable 68000 video game OS, I implement libraries similar to the Amiga's. I load the jump tables into very LOW memory, which allows me to use jmp (addr).w (absolute short), which is quite efficient, to access my libraries. -- **************************************************** * I want games that look like Shadow of the Beast * * but play like Leisure Suit Larry. * ****************************************************
peter@sugar.hackercorp.com (Peter da Silva) (05/18/91)
In article <3760.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: > Quoted from <1089@stewart.UUCP> by jerry@polygen.uucp (Jerry Shekhel): > > I guess you think that SYSVR4 is not worthwhile? > Not if it runs on an Intel CPU. Who cares who makes the CPU? If you're programming in a real language and a real operating system the CPU is just another resource. What color it's painted is no more important than the company that manufactures the case. One big reason I got an Amiga is that it was the first personal computer that didn't force me into writing assembly. Now, people still do that, but that's their problem. They'll be first against the wall when the revolution comes. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
mykes@amiga0.SF-Bay.ORG (Mike Schwartz) (05/24/91)
In article <1991May18.105916.28180@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: >In article <3760.tnews@templar.actrix.gen.nz> jbickers@templar.actrix.gen.nz (John Bickers) writes: >> Quoted from <1089@stewart.UUCP> by jerry@polygen.uucp (Jerry Shekhel): >> > I guess you think that SYSVR4 is not worthwhile? > >> Not if it runs on an Intel CPU. > >Who cares who makes the CPU? If you're programming in a real language and a >real operating system the CPU is just another resource. What color it's painted >is no more important than the company that manufactures the case. > >One big reason I got an Amiga is that it was the first personal computer that >didn't force me into writing assembly. Now, people still do that, but that's >their problem. They'll be first against the wall when the revolution comes. >-- >Peter da Silva. `-_-' ><peter@sugar.hackercorp.com>. Assembler language programmers have been porting to other CPUs for years by writing translators that work on the source level. Ends up being as little work as porting a 'C' program (even between different compilers on the SAME machine). And it doesn't matter if you call BlitBitMap(), because you won't find it on any other platform... Nice try Peter :) -- **************************************************** * I want games that look like Shadow of the Beast * * but play like Leisure Suit Larry. * ****************************************************
melling@cs.psu.edu (Michael D Mellinger) (05/25/91)
In article <mykes.2824@amiga0.SF-Bay.ORG> mykes@amiga0.SF-Bay.ORG (Mike Schwartz) writes:
Assembler language programmers have been porting to other CPUs for years by writing
translators that work on the source level. Ends up being as little work as porting
a 'C' program (even between different compilers on the SAME machine). And it doesn't
matter if you call BlitBitMap(), because you won't find it on any other platform...
Hmmm. How about a few examples to support your statement that
translating assembler is about as much work as porting C? Me thinks
that you are incorrect.
-Mike
peter@sugar.hackercorp.com (Peter da Silva) (05/25/91)
In article <mykes.2824@amiga0.SF-Bay.ORG> mykes@amiga0.SF-Bay.ORG (Mike Schwartz) writes: > Assembler language programmers have been porting to other CPUs for > years by writing translators that work on the source level. Ends > up being as little work as porting a 'C' program (even between > different compilers on the SAME machine). I don't know. I generally port C programs by typing "cc". Of course I write to be portable in the first place. You can write non-portable code in any language... but why? > And it doesn't matter if > you call BlitBitMap(), because you won't find it on any other platform... I don't call BlitBitMap(). I call "DisplayImage" and hide the machine dependencies in there. Working the other way, I don't call "stat" I call "is_executable", and then the Amiga version of is_executable can call "Examine". And I'm not the only one. There's a huge library of good, portable code out there on the net so it must be possible. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
mykes@amiga0.SF-Bay.ORG (Mike Schwartz) (05/27/91)
In article <ia5Hrv9d@cs.psu.edu> melling@cs.psu.edu (Michael D Mellinger) writes: > >In article <mykes.2824@amiga0.SF-Bay.ORG> mykes@amiga0.SF-Bay.ORG (Mike Schwartz) writes: > > Assembler language programmers have been porting to other CPUs for years by writing > translators that work on the source level. Ends up being as little work as porting > a 'C' program (even between different compilers on the SAME machine). And it doesn't > matter if you call BlitBitMap(), because you won't find it on any other platform... > >Hmmm. How about a few examples to support your statement that >translating assembler is about as much work as porting C? Me thinks >that you are incorrect. > >-Mike Going back about 10 years... Most of the AtariSoft games for the PC were "compiled" from 6502 source code (C64, Apple II, Atari 800) into 8086 on the source code level. Rather than listing thousands of games that used similar techniques, I will just list a few from the last couple of years... These below were games originally written for the Apple IIGS and ported to other systems using source code translation: Zany Golf, Immortal, Ski or Die, and Budokan. I did Budokan, and did the translation from IBM assembly source to 68000 assembly by hand. While doing it, I saw that it was trivial to write an ARexx program to do 99% of the work. I would think that SED or AWK would be just as easy to do such a translator in. As far as porting 'C' goes, I am over 8 weeks porting a 'C' program from the Amiga to CDTV - using the same 'C' compiler even. And if you consider porting from Amiga, Windows, or Mac to XWindows, your 'C' code is going to be full of GUI specific code in the original version that will need a massive rewrite. I've been looking at the instruction sets for various risc processors, and writing a 68000 assembler to risc "compiler" is trivial. And 68000 assembly is so nice to write in, it is an excellent alternative to writing in 'C'. -- **************************************************** * I want games that look like Shadow of the Beast * * but play like Leisure Suit Larry. * ****************************************************
mykes@amiga0.SF-Bay.ORG (Mike Schwartz) (05/27/91)
In article <1991May25.121511.24184@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: >In article <mykes.2824@amiga0.SF-Bay.ORG> mykes@amiga0.SF-Bay.ORG (Mike Schwartz) writes: >> Assembler language programmers have been porting to other CPUs for >> years by writing translators that work on the source level. Ends >> up being as little work as porting a 'C' program (even between >> different compilers on the SAME machine). > >I don't know. I generally port C programs by typing "cc". Of course I >write to be portable in the first place. You can write non-portable code >in any language... but why? > >> And it doesn't matter if >> you call BlitBitMap(), because you won't find it on any other platform... > >I don't call BlitBitMap(). I call "DisplayImage" and hide the machine >dependencies in there. Working the other way, I don't call "stat" I >call "is_executable", and then the Amiga version of is_executable can >call "Examine". > >And I'm not the only one. There's a huge library of good, portable code >out there on the net so it must be possible. >-- >Peter da Silva. `-_-' ><peter@sugar.hackercorp.com>. Aren't you the same Peter da Silva who posted an article to comp.sys.amiga.programmer griping about how difficult it is to port between Manx and Lattice/SAS? :) Anyhow, even in your DisplayImage routine, you will call BlitBitMap() or whatever, and it will still need to be rewritten. -- **************************************************** * I want games that look like Shadow of the Beast * * but play like Leisure Suit Larry. * ****************************************************
peter@sugar.hackercorp.com (Peter da Silva) (05/27/91)
In article <mykes.2906@amiga0.SF-Bay.ORG> mykes@amiga0.SF-Bay.ORG (Mike Schwartz) writes: > Aren't you the same Peter da Silva who posted an article to > comp.sys.amiga.programmer griping about how difficult it is to port > between Manx and Lattice/SAS? :) No, I'm the same Peter da Silva griping about people writing non-portable programs, so I have to do their work for them. In fact in the very message you're responding to (though you have "cleverly" refrained from quoting it) I point out that it's not the least bit difficult to write non-portable code in any language. The opposite... that it's even possible to write portable code in some languages... is not true. Ignoring people's points is not only rude, it's stupid. > Anyhow, even in your DisplayImage routine, you will call BlitBitMap() or > whatever, and it will still need to be rewritten. Yes. One O/S interface routine gets rewritten. The rest of the code just gets recompiled. It's a whole lot easier than rewriting all the code that uses BitBltBitMapLeftCornerPocketCueBall(). -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
mykes@amiga0.SF-Bay.ORG (Mike Schwartz) (05/28/91)
In article <1991May27.130057.27121@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes: >In article <mykes.2906@amiga0.SF-Bay.ORG> mykes@amiga0.SF-Bay.ORG (Mike Schwartz) writes: >> Aren't you the same Peter da Silva who posted an article to >> comp.sys.amiga.programmer griping about how difficult it is to port >> between Manx and Lattice/SAS? :) > >No, I'm the same Peter da Silva griping about people writing non-portable >programs, so I have to do their work for them. In fact in the very message >you're responding to (though you have "cleverly" refrained from quoting it) >I point out that it's not the least bit difficult to write non-portable code >in any language. The opposite... that it's even possible to write portable >code in some languages... is not true. > Sorry, but I use Matt Dillon's DNews, which doesn't allow me to quote from one article while responding to another. Please trust that I had no intention of being clever :) Your article in csa.programmer shows clearly the problems of porting between two compilers - especially if it's not your code and if it wasn't crafted for portability. >Ignoring people's points is not only rude, it's stupid. > I have to work with other people's 'C' code far too often, as well. Unfortunately, everyone in the world isn't as "brilliant" as you or I when it comes to trying to write portable code. All the problems that you gripe about with the 'C' compilers being incompatible with eachother and the ANSII standard as well as how the language doesn't do a thing to promote portable programming practices (consider the use of the FAR, NEAR, HUGE, etc. keywords for PC compilers...). I think you are totally wrong to think that I ignored any of your points because you are feeding my "case" quite well. Do you think it's easy to port between 32-bit int compilers and 16-bit int compilers? I *know* that you're not supposed to use "int" declarations, but the stack frames are different as well. If you reply, please consider not only the "beautifully" crafted portable code that you currently write, but the code of someone else who you need to port. >> Anyhow, even in your DisplayImage routine, you will call BlitBitMap() or >> whatever, and it will still need to be rewritten. > >Yes. One O/S interface routine gets rewritten. The rest of the code just gets >recompiled. It's a whole lot easier than rewriting all the code that uses >BitBltBitMapLeftCornerPocketCueBall(). Your practice of writing "DisplayImage" the way you do is good for portability, but hurts your programs' performance, speed wise. I personally don't criticize you for choosing "portabilty" over speed, nor would I criticize someone for choosing speed over portability. >-- >Peter da Silva. `-_-' ><peter@sugar.hackercorp.com>. -- **************************************************** * I want games that look like Shadow of the Beast * * but play like Leisure Suit Larry. * ****************************************************
melling@cs.psu.edu (Michael D Mellinger) (05/29/91)
In article <mykes.2950@amiga0.SF-Bay.ORG> mykes@amiga0.SF-Bay.ORG (Mike Schwartz) writes:
I have to work with other people's 'C' code far too often, as well. Unfortunately,
everyone in the world isn't as "brilliant" as you or I when it comes to trying to
write portable code. All the problems that you gripe about with the 'C' compilers
being incompatible with eachother and the ANSII standard as well as how the language
doesn't do a thing to promote portable programming practices (consider the use of
the FAR, NEAR, HUGE, etc. keywords for PC compilers...). I think you are totally wrong
to think that I ignored any of your points because you are feeding my "case" quite well.
Do you really think assembler is more portable? I won't argue that C
is the greatest language but it can be a lot more portable than
assembler. Just ftp to prep.ai.mit.edu and grab some GNU software and
see how many machines the software runs on(some of it is more portable
than others). If GNU Smalltalk or Bison were written in assembler,
how easy would it be to port them to a dozen different machines?
BTW, I just compile with the large memory model when I program on the
PC, and avoid the entire segmented problem of CPU's < 80386 machines.
Windows 32, and OS/2 2.0 will hopefully bring an end to this
brain-damaged segmented world.
Also, many software developers uses a "common core" (probably wrong
terminology) in developing their Mac and DOS software. I think it's
Aldus that claims that half of their code on the Mac and PC versions
of PageMaker is the same.
Do you think it's easy to port between 32-bit int compilers and 16-bit int compilers?
I *know* that you're not supposed to use "int" declarations, but the stack frames are
different as well. If you reply, please consider not only the "beautifully" crafted portable
code that you currently write, but the code of someone else who you need to port.
It's probably a real pain to port b/w 16 and 32 bit compilers(GNU
Emacs is a prime example of how impossible it can be). Fortunately,
even the toy computers are going to be true 32 bit soon. Hopefully,
the need to write machine dependent code will diminish as computers
become faster. Perhaps even a better language will supersede C as the
language of choice. I imagine Smalltalk on an HP Snake is faster than
assembler on a A500.
Your practice of writing "DisplayImage" the way you do is good for portability, but
hurts your programs' performance, speed wise. I personally don't criticize you for
choosing "portabilty" over speed, nor would I criticize someone for choosing speed
over portability.
How much does it hurt performance? Is the performance difference
perceivable? What happens when all the other computer companies move
on to the next generation of microprocessors that are 50+ mips(over
the next two years! -- that's over 50 times faster than 8MHz 68K)?
It's going to be hard to port CISC assembler programs to the new RISC
chips. On some computers, 98% of the software(excluding the OS) won't
take more than a weeks worth of work to get ported to a new CPU.
Software is the reason that the Mac and PC are popular. If your
computer doesn't have as much software, it's certainly not going to
help if half of it has to be rewritten.
-Mike
peter@sugar.hackercorp.com (Peter da Silva) (05/30/91)
In article <mykes.2950@amiga0.SF-Bay.ORG> mykes@amiga0.SF-Bay.ORG (Mike Schwartz) writes: > Sorry, but I use Matt Dillon's DNews, which doesn't allow me to quote from one > article while responding to another. I'm talking about the article you were responding to. > Please trust that I had no intention of > being clever :) Your article in csa.programmer shows clearly the problems of > porting between two compilers - especially if it's not your code and if it wasn't > crafted for portability. Eliding the word "especially", I'd agree. If the code wasn't written for portability you lose. If it was, C gives you a chance at writing code that will run after simply recompiling. Assembly doesn't. That's enough for me. > ...the language doesn't do a thing to promote portable programming practices Sure it does. It provides all the tools you need to hide implementation details in modules and opaque data structures, to separate system dependent modules from the portable code of the program. > (consider the use of the FAR, NEAR, HUGE, etc. keywords for PC compilers...). I write code on the 80286 every day at work, and I haven't used any of these keywords yet. Microsoft was completely wrong in implementing them in their compiler, and you can't lay the blame for that on the design of C. They are neither necessary nor desirable. > Do you think it's easy to port between 32-bit int compilers and 16-bit int > compilers? Yes. I do it all the time. I port code from 32-bit UNIX compilers to 16 bit UNIX compilers and Manx in both 16- and 32- bit mode. I have lots of UNIX utilities running on my machine... it's *easier* to do that than to port from Lattice to Manx in many cases, because UNIX programmers live in an environment where portability is encouraged. Too many Amiga programmers are ex-C=64 people. > Your practice of writing "DisplayImage" the way you do is good for > portability, but hurts your programs' performance, speed wise. Why? If the call overhead becomes a problem I can always inline it, either by converting it to a macro or by using one of the inlining preprocessors that are floating around. > I personally don't criticize you for choosing "portabilty" over speed, Take out those quotes. Portability is a real consideration, even within a single line of computers. > nor would I criticize someone for choosing speed over portability. I would, if they were expending energy on useless micro optimisation. You might need that extra millisecond in Blazemonger, but writing editors and the like in assembly is just asking for trouble. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.
peter@sugar.hackercorp.com (Peter da Silva) (05/30/91)
In article <og9Hk52h@cs.psu.edu> melling@cs.psu.edu (Michael D Mellinger) writes: > Just ftp to prep.ai.mit.edu and grab some GNU software and > see how many machines the software runs on(some of it is more portable > than others). If GNU Smalltalk or Bison were written in assembler, > how easy would it be to port them to a dozen different machines? And keep in mind that most of the GNU software out there is extremely bad code from the point of view of portability. RMS has a great deal of disdain for 16 bit machines, and none of this code was written with any idea of ever porting it to anything less than a VAX. This is true of both RMS code, and the code of the other people in the FSF... the attitude has proven contagious. So when Mike here is pointing to the GNU code as "portable", keep in mind that what he's pointing to is not any sort of ideal. It's just typical C code. -- Peter da Silva. `-_-' <peter@sugar.hackercorp.com>.