Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Pre-emptive multitasking in Windows

193 views
Skip to first unread message

Tim Robinson

unread,
Feb 20, 2001, 8:08:12 PM2/20/01
to
Here's an interesting point...

I was reading the c.o.m-w.p.win32 FAQ yesterday, and it got me thinking
about Windows 1.0 and co-operative multitasking invoked through GetMessage.
It occurred to me: why didn't Microsoft write Windows such that it could
pre-emptively multitask through the timer interrupt?

I can't think of any reason why they couldn't have switched tasks on every
timer tick, instead of relying on applications to switch cooperatively.
Pre-emptive multitasking was fully introduced with Win32, although Windows
3.0 could do so with DOS boxes in 386 Enhanced mode. I don't see the
correlation between protection and/or 32-bit code and pre-emptive
multitasking.

Any ideas?


Beth

unread,
Feb 20, 2001, 8:04:34 PM2/20/01
to

None that I can think of; I reckon Bill just didn't understand the idea very
well and kept away from it to hide his ignorance...or maybe it was just all
part of M$'s method of releasing a new technology in small chunks so that
they could get a few products out of one new idea and get more money that
way...or they just couldn't be bothered (I put my money on this last one
;)...

Beth :)


Groman

unread,
Feb 20, 2001, 8:30:32 PM2/20/01
to


> Tim Robinson wrote:
> > Here's an interesting point...
> >
> > I was reading the c.o.m-w.p.win32 FAQ yesterday, and it got me thinking
> > about Windows 1.0 and co-operative multitasking invoked through
> GetMessage.
> > It occurred to me: why didn't Microsoft write Windows such that it could
> > pre-emptively multitask through the timer interrupt?
> >
> > I can't think of any reason why they couldn't have switched tasks on
every
> > timer tick, instead of relying on applications to switch cooperatively.
> > Pre-emptive multitasking was fully introduced with Win32, although
Windows
> > 3.0 could do so with DOS boxes in 386 Enhanced mode. I don't see the
> > correlation between protection and/or 32-bit code and pre-emptive
> > multitasking.
> >
> > Any ideas?

too much overhead on older slower processors...
IIRC, MacOS did it up until MacOS X


Scott Wood

unread,
Feb 20, 2001, 10:48:30 PM2/20/01
to
Tim Robinson <timothy....@ic.ac.invalid> wrote:
>I was reading the c.o.m-w.p.win32 FAQ yesterday, and it got me thinking
>about Windows 1.0 and co-operative multitasking invoked through GetMessage.
>It occurred to me: why didn't Microsoft write Windows such that it could
>pre-emptively multitask through the timer interrupt?

Because Bill wanted Windows to be like the Macintosh, which also had
cooperative multitasking. :-) Though, I do seem to recall hearing that it
was originally a goal that it be similar on the inside as well as the
outside, to make porting mac apps to windows easier.

Seriously, though, preemptive multitasking means you have to worry a lot
more about synchronization. Given the great difficulty Microsoft had in
making Windows stable *before* adding preemption, I think leaving it out may
have been a wise decision. :-P

>I can't think of any reason why they couldn't have switched tasks on every
>timer tick, instead of relying on applications to switch cooperatively.
>Pre-emptive multitasking was fully introduced with Win32, although Windows
>3.0 could do so with DOS boxes in 386 Enhanced mode.

Presumably this is because DOS programs never (AFAIK) touch Windows data
structures except while calling functions that are redirected to Windows (at
which point preemption can be disabled), so synchronization isn't an issue.
Many Unix-like systems, including Linux, are similarly non-preemptive in
their kernels; only user tasks can be preempted.

>I don't see the correlation between protection and/or 32-bit code and
>pre-emptive multitasking.

There isn't any *inherent* correlation; it was probably just a feature that
was thrown in that Microsoft didn't want to support (or had issues with) in
non-enhanced mode.

-Scott

Aaron Gray

unread,
Feb 20, 2001, 11:51:24 PM2/20/01
to
Dear Tim Robinson,
Well if you are not carefull, and task switch when in GDI or a window update
function, window gets bit missing, and all hell breaks out on the screen.
You can only switch tasks at certain times, when not in 'critical' tasks.
Preemptive multitasking can avoid this by giving certain processes enough
time, and not permanently interrupting them. The gap between task switching
and a preemptive is quite large sceduling tasks preemptivly is much more
complex.

As for Windows, it takes time to develop complex systems, remember they
started in 'standard mode' !

Yours Sincerely,
Aaron Gray


Tim Robinson <timothy....@ic.ac.invalid> wrote in message
news:96v4kt$blm$1...@newsg1.svr.pol.co.uk...

Tim Robinson

unread,
Feb 21, 2001, 7:21:36 AM2/21/01
to
"Groman" <gro...@f2s.com> wrote in message
news:96v5ul$eia$1...@slb5.atl.mindspring.net...

> too much overhead on older slower processors...
> IIRC, MacOS did it up until MacOS X

I guess if you're running this on an 8086 then the overhead of
synchronisation becomes quite significant. Plus I suppose it makes
inter-process communication easier, along with the single address space --
your program is free to do whatever it wants in its own time slice, then
talk to the rest of the system as and when it needs to.


Michael D. Ober

unread,
Feb 21, 2001, 9:24:40 AM2/21/01
to
The CPU overhead and memory requirements didn't allow this capability to
work on the 8088 processor. Remember that Windows 1.0 to 3.0 would run on
the 8088. The 8088 has a 20 bit address space, can't address more than 64Kb
at a time, and has no paging support.
--
Mike Ober.

"Tim Robinson" <timothy....@ic.ac.invalid> wrote in message
news:96v4kt$blm$1...@newsg1.svr.pol.co.uk...

Groman

unread,
Feb 21, 2001, 9:52:15 AM2/21/01
to

> > too much overhead on older slower processors...
> > IIRC, MacOS did it up until MacOS X
>
> I guess if you're running this on an 8086 then the overhead of
> synchronisation becomes quite significant. Plus I suppose it makes
> inter-process communication easier, along with the single address space --
> your program is free to do whatever it wants in its own time slice, then
> talk to the rest of the system as and when it needs to.

Yep. Cooperative is just easier on a older machines.

Tim Robinson

unread,
Feb 21, 2001, 1:14:10 PM2/21/01
to
"Michael D. Ober" <mdo.@.wakeassoc.com.nospam> wrote in message
news:IcQk6.768$9t1....@news.uswest.net...

> The CPU overhead and memory requirements didn't allow this capability to
> work on the 8088 processor. Remember that Windows 1.0 to 3.0 would run on
> the 8088. The 8088 has a 20 bit address space, can't address more than
64Kb
> at a time, and has no paging support.

...but there's no theoretical reason why they couldn't have redirected the
timer IRQ and switched tasks there. The general consensus in this thread is
that the overhead of pre-emptive multi-tasking, and all it entails, was too
much for the processors at the time.

Igor Shmukler

unread,
Feb 21, 2001, 2:04:29 PM2/21/01
to
There is a reason. Reason is 286 processor.
How do you know in 286 world which instruction did cpu execute prior to
interrupt ( not the last one, one before it). It's not that simple. So they
had to take shortcuts. Plus with cooperative mt kernel itself is much
simpler ( not better, but simpler).
MS actually does hire good people and they did make XENIX, which was a
pretty cool OS. Problem with Windows is: it was and still is targeted at
idiots, thus model is "We know better what you need." That's probably why
more advanced users take it so offensively.

"Tim Robinson" <timothy....@ic.ac.invalid> wrote in message

news:9710ol$9oh$1...@newsg4.svr.pol.co.uk...

Scott Wood

unread,
Feb 21, 2001, 2:42:18 PM2/21/01
to
Igor Shmukler <shmu...@mail.ru> wrote:
>There is a reason. Reason is 286 processor.
>How do you know in 286 world which instruction did cpu execute prior to
>interrupt ( not the last one, one before it).

Why would you need to know this? All you need to know is what instruction
to execute when you return to the task; if you don't have that information,
then interrupts in general aren't going to work.

>MS actually does hire good people and they did make XENIX, which was a
>pretty cool OS.

Compared to DOS, perhaps.

-Scott

Tim Robinson

unread,
Feb 21, 2001, 6:16:46 PM2/21/01
to
"Igor Shmukler" <shmu...@mail.ru> wrote in message
news:1jUk6.2194$v77.2...@newsread2.prod.itd.earthlink.net...

> There is a reason. Reason is 286 processor.
> How do you know in 286 world which instruction did cpu execute prior to
> interrupt ( not the last one, one before it). It's not that simple. So
they
> had to take shortcuts. Plus with cooperative mt kernel itself is much
> simpler ( not better, but simpler).

The processor pushes flags and CS:IP onto the stack. Or am I missing
something?

> MS actually does hire good people and they did make XENIX, which was a
> pretty cool OS. Problem with Windows is: it was and still is targeted at
> idiots, thus model is "We know better what you need." That's probably why
> more advanced users take it so offensively.

That's right: the point to keep in mind is that Windows <= 9x is/was
intended for your average bloke in the Office, running Word for Windows and
Solitaire. We "advanced users" are expected to run something else. Currently
I have no problem with Windows NT (actually, 2000). I'd like to take this
opportunity to plug BeOS 5, however, which I now consider to be better than
Windows 2000.


Igor Shmukler

unread,
Feb 21, 2001, 6:44:23 PM2/21/01
to
> > There is a reason. Reason is 286 processor.
> > How do you know in 286 world which instruction did cpu execute prior to
> > interrupt ( not the last one, one before it). It's not that simple. So
> they
> > had to take shortcuts. Plus with cooperative mt kernel itself is much
> > simpler ( not better, but simpler).
>
> The processor pushes flags and CS:IP onto the stack. Or am I missing
> something?

Upon interrupt processor pushes program counter into the stack. call it PC,
IP or whatever.
Page faults are not like that, because instruction is already loaded into
processor. I don't know how 286 can figure what was instruction 1 step back.
That's what I was referring to.

Marv

unread,
Feb 22, 2001, 5:58:14 AM2/22/01
to
Tim Robinson wrote....

>Currently I have no problem with Windows NT (actually, 2000). I'd like
>to take this opportunity to plug BeOS 5, however, which I now consider
>to be better than Windows 2000.

I'd like to take this opportunity to criticise the BeOS GUI.

1) I don't like it. :)

2) All the dialog boxes have their buttons around the wrong way.
I like okay to be on the left, Cancel to be on the right.

3) I don't like the window title bar. The buttons don't feel
responsive, maybe because the image doesn't change much
or maybe when you are in another window you have to click
once in the window to activate it and another to click the
close button, IIRC. I can actually feel that I am pressing
harder on the mouse buttons when I use BeOS.

4) I still don't like the window title bar. I don't like the
zoom button or whatever it is called. I don't like the way
that it does a shrink to fit operation on most the windows.
I'd prefer a zoom button that toggles between two user
defined positions and sizes.

5) I'm not finished with the window title bar. The small
window bar would have been useful for overlaying
multiple windows on top of one another with each of
their window title bars visble. It would then give the
appearance of a tab-strip. However it takes too much
time and effort to align the windows to do this.

An easy way would have been to not allow the window
title bars to go off the edge of the screen. This would
have allowed you to slam the title bars to the top of the
screen where they would easily be aligned.

Also if you prevented the BeOS title bars going off the
edge of the screen, you could move the windows to the
bottom of the screen and simulate the Windows taskbar.
If the windows had the two size-position zoom toggle that
I mentioned earlier, you could click on the zoom button
to make the window appear in the centre of the screen
and another click for it to appear as just the window title
at the bottom.

6) Whenever I use BeOS, I tend to avoid windows overlap,
I think it is because I am used to layering windows down
the leading diagonal in other OSs, from top-left to
bottom-right, as if I had chosen the cascade windows option.
This is mainly so that I can grab the windows title bar or
press one of the title bar buttons. With the placement and
size of the title bar on BeOS, the whole title bar is usually
obscurred. I can't get used to it, and yes, I know you can
shift the title bar along the top of the window.

7) Double-clicking the title bar iconifies the window into the
Deskbar. It requires a click on the corresponding application
button in the Deskbar and another click on one of the menu
options that pops up to reopen a window. You could avoid
the need for iconifying applications and the Deskbar if the
windows behaved as I described in 5).

8)I think the lack of using hardware acceleration on my TNT2
makes the interface feel slightly sluggish. I assume that it
is using the VESA thingy mode. Maybe there is a driver that
works with my card, but I honestly haven't spent the time
looking.

At least the BeOS file dialog box isn't as bad as that in
Windows. I don't think you could intentionally create anything
worse than that, well, except for the design of Windows XP's
Media Player :)

Of course the 'User interface hall of shame' is always a good
laugh at;

http://www.iarchitect.com/mshame.htm

Overall I'd say that the BeOS interface isn't right for me. It
might be okay for others, but not me.

Marv


Marv

unread,
Feb 22, 2001, 4:47:57 AM2/22/01
to

Igor Shmukler wrote in message ...

>> The processor pushes flags and CS:IP onto the stack. Or am I missing
>> something?
>
>Upon interrupt processor pushes program counter into the stack. call it PC,
>IP or whatever.
>Page faults are not like that, because instruction is already loaded into
>processor. I don't know how 286 can figure what was instruction 1 step back.
>That's what I was referring to.

Exactly what has paging got to do with multitasking ?
I don't even think we were talking about protection mechanisms.
The only form of memory protection that the 286 had was protected mode
16-bit segmentation.

I believe the original OS/2 was designed to multitask on 286 processors, did
it not ?

Then you've got Mixix multitasking on the 8088/86.

Marv


Frank Ostrowski

unread,
Feb 22, 2001, 6:29:15 AM2/22/01
to

There IS a reason why Windows did not do preemptive multitasking. For
preemptive multitasking towork, you have to interruptthe processor
anytime (or atleast after a short time). But the REAL-mode (8086/8088)
had no protection whatever. And a far call to any function had to be
marked (by saving an odd bp value). If being able to interrupt any
time here would be no way to handle theneed for other, faster, calling
conventions, since for segment movng, quite commn for a 512 KByte-RAM
computer, software had to change all addresses on the stack. And since
the segment registers contained physical addresses they had to be
tracked as well - that's what the GlobalLock, GlobalFix and GlobalWire
functions were made for. evenwith the non-preemptive multitasking it
was a mere miracle that real mode even managed to multitask anything -
and at 4.77 MHz it was an even bigger miracle if anybody used it
(preemptive multitasking would have slowed down everything)

The standard mode (80286) did help, since the need to manipulate the
segment values on the stack - and the importance of functions like
GlobalLock - vanished and there was some protection in the processor
(like the ability to block instructions like cli, sti, popf, iret)
Even the main version of Windows requiering at least a 80286 (Win 3.1
- Win 3.0 had the real mode in it, although not usefull). The Xenix
80286 versions and Win 3.1 had a prolem, since the 80286 had no paging
mechanics. So it could only put segments to/from disk. Since these
were variable in size (1 byte to 65536 bytes) the virtual memory
management was quite complicated. Windows kept the cooperative
multitasking to be able to use 1st) older "real-mode" programs (many,
not all) and 2nd) to support MS-DOS, a single task "OS" and it's many
drivers. (Xenix had limited driver support and no software
compatibility to MS-DOS (or Win).)

The 80386 finally brought a paging unit and the next Windows version
supported preemptive multitasking - yes - Windows NT 3.1. The consumer
version of Windows continued to requiere a 80286 only - many programs
did require a 80386, or using it as a faster 80286 with paging. In
1995 microsoft was finally able to say goodbye to standard mode
(80286) and brought preemptive multitasking to consumer Windows 95 -
most systems allready had 80386/80486, 4 MB and a "big" 100+MB HD.
Even the MS-DOS drivers were vanishing - but you see an occasional
compatibility mode warning on Win98SE, or some systems not working
with WinME.

Hope to clarify a little bit,
Frank

Tim Robinson

unread,
Feb 22, 2001, 9:27:41 AM2/22/01
to
"Marv" <washin...@freeuk.com> wrote in message
news:Gg6l6.2285$vI.2...@nnrp3.clara.net...

>
> Igor Shmukler wrote in message ...
> >> The processor pushes flags and CS:IP onto the stack. Or am I missing
> >> something?
> >
> >Upon interrupt processor pushes program counter into the stack. call it
PC,
> >IP or whatever.
> >Page faults are not like that, because instruction is already loaded into
> >processor. I don't know how 286 can figure what was instruction 1 step
back.
> >That's what I was referring to.

Bloody news server (news.freeserve.net -- please hack -- no, don't) missed
this message. These comments are addressed to Ivor.

Anyway, in real mode, an interrupt will push the current CS:IP (I think INT
1 pushes the next CS:IP). Otherwise, how would the processor know where to
return to after a timer interrupt, or when you pressed a key, or even from a
BIOS or DOS software interrupt?


Tim Robinson

unread,
Feb 22, 2001, 9:25:26 AM2/22/01
to
"Marv" <washin...@freeuk.com> wrote in message
news:Hg6l6.2286$vI.2...@nnrp3.clara.net...

> 2) All the dialog boxes have their buttons around the wrong way.
> I like okay to be on the left, Cancel to be on the right.

A matter of opinion... if you've used neither Windows nor BeOS, there's no
difference.

> 3) I don't like the window title bar. The buttons don't feel
> responsive, maybe because the image doesn't change much
> or maybe when you are in another window you have to click
> once in the window to activate it and another to click the
> close button, IIRC. I can actually feel that I am pressing
> harder on the mouse buttons when I use BeOS.

This is probably because, by default, the first click only activates the
window. At first I thought a lot of applications had hung because clicking
on them had no effect other than bringing them to the front (like Windows NT
would). You get used to it.

> 4) I still don't like the window title bar. I don't like the
> zoom button or whatever it is called. I don't like the way
> that it does a shrink to fit operation on most the windows.
> I'd prefer a zoom button that toggles between two user
> defined positions and sizes.

It's handy for folder views, image viewers, etc. -- on Windows, for example,
I keep adjusting the size of Explorer windows so that just enough
information fits. What's the point of having a window maximised if (a) it
covers up all other windows and (b) there's huge white spaces around the
edges?

> 5) I'm not finished with the window title bar. The small
> window bar would have been useful for overlaying
> multiple windows on top of one another with each of
> their window title bars visble. It would then give the
> appearance of a tab-strip. However it takes too much
> time and effort to align the windows to do this.

Yes -- to me, this is one obvious feature that it's missing. When I first
started looking at GUI ideas, I looked at BeOS and its yellow title bars
(before I'd actually used the GUI itself) and had the same idea as you. I'm
going to put that into my GUI. Kind of like Delphi's Object Inspector as
well.

> Also if you prevented the BeOS title bars going off the
> edge of the screen, you could move the windows to the
> bottom of the screen and simulate the Windows taskbar.
> If the windows had the two size-position zoom toggle that
> I mentioned earlier, you could click on the zoom button
> to make the window appear in the centre of the screen
> and another click for it to appear as just the window title
> at the bottom.

...so if you maxmimised all your windows, you'd get just one visible, but
with a strip of tabs at the top of the screen. Exactly.

> 6) Whenever I use BeOS, I tend to avoid windows overlap,
> I think it is because I am used to layering windows down
> the leading diagonal in other OSs, from top-left to
> bottom-right, as if I had chosen the cascade windows option.
> This is mainly so that I can grab the windows title bar or
> press one of the title bar buttons. With the placement and
> size of the title bar on BeOS, the whole title bar is usually
> obscurred. I can't get used to it, and yes, I know you can
> shift the title bar along the top of the window.

Can you? I usually drag the window by its border under these circumstances.

> 8)I think the lack of using hardware acceleration on my TNT2
> makes the interface feel slightly sluggish. I assume that it
> is using the VESA thingy mode. Maybe there is a driver that
> works with my card, but I honestly haven't spent the time
> looking.

No problems here with my TNT2, although mine is the latest version (~ August
2000);

> At least the BeOS file dialog box isn't as bad as that in
> Windows. I don't think you could intentionally create anything
> worse than that, well, except for the design of Windows XP's
> Media Player :)

It needs a filter (*.txt) option! How many times have I had to browse
through loads of crap just to find one file... What's the Windows XP Media
Player like? If it's anything like Media Player 7, I'm sticking with BeOS...
Mplayer7 must assume that everybody owns a fixed, high-speed Internet
connection: the Readme describes the many steps you must take (involving
random Options dialogs) to stop it dialling up randomly. I put up with it
for about a week, because its playlist is a lot better than Winamp's, but
now I've banned everyone from using it because it would cause the proxy on
my machine to dial up constantly.


Richard Norman

unread,
Feb 22, 2001, 10:03:47 AM2/22/01
to
I am sorry to say that there is a lot of misinformation about
what pre-emptive multitasking requires. People dealing with
embedded systems have long used specialized pre-emptive
multitasking systems on rather limited CPU's, including the
8 bit 8080 and Z80 and the 16 bit 8088/8086, 80186, etc.
The Motorola CPU's had similar abilities with a wide variety
of true multitasking OS's.

It is entirely possible to do multitasking on an 8 or 16 bit system
that does not have built-in CPU support for task-switching, memory
paging and virtual memory, protected mode, etc. Two serious
problems are performance limitations on small systems and
the lack of protection so that one task could easily clobber another.

You can write a very effective pre-emptive multitasking application
that can overcome these limitations, but not if you allow a second
independent process that doesn't obey your rules to run
simultaneously. That is the real reason early Windows couldn't
allow true multitasking. But don't confuse performance issues
with the ability to do true pre-emptive multitasking!

"Frank Ostrowski" <fr-...@web.de> wrote in message
news:9cr99tsi2ij5kttkm...@4ax.com...

Tim Robinson

unread,
Feb 22, 2001, 1:10:02 PM2/22/01
to
"Marv" <washin...@freeuk.com> wrote in message
news:Hg6l6.2286$vI.2...@nnrp3.clara.net...
> Of course the 'User interface hall of shame' is always a good
> laugh at;
>
> http://www.iarchitect.com/mshame.htm

Good site! I saw a site like this a while ago (it could've been the same
one). I've kept it on my Favourites and I'll keep coming back to it when I
do my GUI.


Frank Ostrowski

unread,
Feb 22, 2001, 1:12:09 PM2/22/01
to
On Thu, 22 Feb 2001 15:03:47 GMT, "Richard Norman"
<rsno...@mediaone.net> wrote:

>I am sorry to say that there is a lot of misinformation about
>what pre-emptive multitasking requires. People dealing with
>embedded systems have long used specialized pre-emptive
>multitasking systems on rather limited CPU's, including the
>8 bit 8080 and Z80 and the 16 bit 8088/8086, 80186, etc.
>The Motorola CPU's had similar abilities with a wide variety
>of true multitasking OS's.
>
>It is entirely possible to do multitasking on an 8 or 16 bit system
>that does not have built-in CPU support for task-switching, memory
>paging and virtual memory, protected mode, etc. Two serious
>problems are performance limitations on small systems and
>the lack of protection so that one task could easily clobber another.
>
>You can write a very effective pre-emptive multitasking application
>that can overcome these limitations, but not if you allow a second
>independent process that doesn't obey your rules to run
>simultaneously. That is the real reason early Windows couldn't
>allow true multitasking. But don't confuse performance issues
>with the ability to do true pre-emptive multitasking!
>

The main problem wih multitasking on MS-DOS is MS-DOS. It was simply
not possible to create a reentrant MS-DOS without much support from
the processor. The performance is, of course a major problem. I was
just stating, that the performance of preemptive multitasking of any
uncontrolled software is very miserable. Uncotrolled software for a
real multitasking 888 windows is MS-DOS and it's programs and the
drivers. A custom multitasking OS (like QNX for the 80286) could
prevent the execution of non QNX programs. Probably a Windows without
the ability to run any MS-DOS program woiuld not sell at all. (Xenix
286 did have quite a smaller market compared to Windows 3.0, although
multitasking was better).

So the main reason is $ - as allways. It simply was not possible for a
mainstream OS to do pre-emptive multitasking before the 80386.

Frank

Beth

unread,
Feb 22, 2001, 1:06:00 PM2/22/01
to
Marv wrote:
> Tim Robinson wrote....
> >Currently I have no problem with Windows NT (actually, 2000). I'd like
> >to take this opportunity to plug BeOS 5, however, which I now consider
> >to be better than Windows 2000.
>
> I'd like to take this opportunity to criticise the BeOS GUI.
>
> 1) I don't like it. :)

Personal taste...fair enough :)

> 2) All the dialog boxes have their buttons around the wrong way.
> I like okay to be on the left, Cancel to be on the right.

Actually, most people are right-handed in this world and there is an
argument (by psychologists and "art" people ;) that the most important
option should be on the right to account for this...it is commonly cited by
psychologists that contents of importance should actually be placed on the
right...

Now, this is not that simple, because there is a contradiction here...in
that lots of languages use left-to-right reading and, thus, Cancel on the
left and OK on the right is completely unintuitive...as you say, it feels
the "wrong way around"...

But, only a touch of lateral thinking gets you the best idea...put all your
buttons on the right side of the dialogue box vertically...it is also worth
noting that humans can scan vertical lists like this far easier...if there
are other options as well as OK and Cancel then these two buttons should be
held in a distinct group away from the actual controls of the dialogue
box...and, again, due to the instincts of reading order, they should be at
the bottom right when other control buttons exist (which would be at the
top, ensuring that the controls are separated) to convey a "P.T.O." feel to
these buttons...if these are the only control buttons then they should be
placed at the top right, as this is the "place of most attraction" to place
important controls...a bit like a full stop (or "period" as you Americans
like to say...me, I have enough problems with that being once a month,
without insisting on it at the end of every sentence...lol ;)...

Of course, the horizontal version is usually better for cramming loads of
controls together (where my above suggestion would probably leave some space
under the OK/Cancel controls)...but do I need to say that if you're trying
to cram that many things onto one dialogue box then you're making a mistake
somewhere? Programmers sometimes find this hard to appreciate but _space_
can be a fantastically good thing to use in an interface and cramming a
million options into 32x32 pixels is just plain silly and unhelpful...space
has a functionality too...if you find you need to cram a million buttons
onto a window somewhere then it's time to go back to the design drawing
board...

> 3) I don't like the window title bar. The buttons don't feel
> responsive, maybe because the image doesn't change much
> or maybe when you are in another window you have to click
> once in the window to activate it and another to click the
> close button, IIRC. I can actually feel that I am pressing
> harder on the mouse buttons when I use BeOS.

To be honest, all input controls _should_ implement some sort of "focus"
indication...like the internet explorer buttons, which highlight in a
certain way to let you know that you can select it (it's not disabled but
this should also be reinforced with a "disabled" bitmap without
exception)...

Unfortunately, this interface concept is late arriving and so we get the
inconsistency that internet explorer has "focus" buttons _and_ it uses the
"non-focusing" GUI elements...basically, M$ and other OS developers (take
special note group!!! ;) should have updated the GUI to use "focus" buttons
_everywhere_ and not just, pervesely, only to bother to update the menu bar
to use this and forget about the rest of the interface (!?!?!?!)...

At a minimum, an indication in the status bar or an indication in the mouse
cursor (something like the hand but with the "arrow plus hour glass"
appearance, I'd suggest...i.e. informative but not so greatly differing as
to panic the user that their cursor has changed into something completely ;)
should happen...quite frankly, _anything_ but depending on user recognition
because this presupposes they know what to look for...and that there is
something in the visual appearance to trigger this (imagine links on a
webpage that didn't look any different to the normal text and that didn't
trigger the mouse cursor to change, etc., etc...the only way to find links
would be to systematically run the mouse cursor over the text clicking...do
I need to say this is a bad design? lol ;)...

[ On this note, is it just me that finds the fact that M$ _still_ haven't
sorted out the the mouse cursor problem when it changes images...it jumps
around for a split second like a headless chicken...I thought this was bad
enough in Win 3.x days but to still having a problem that is, let's be
honest, pathetically easy to get fixed is just embarassing and
laughable...and I don't buy that it's kept as a "misfeature" for
compatibility...it has no functional use and is just crap
programming...plain and simple :) ]

As for the "double" click (one click activate, another click "use" ;) then,
you're right, this is appalling because, again, consistency is broken...and
in this regard, _ALL_ OSes make the same mistake of inconsistency...the
bottom line is: "if you can't immediately select it then it should display a
"disabled" bitmap" - or grey text (any style is acceptable as long as it's
consistent) - for some odd reason, this is normally applied in a dialogue
box but NOT between windows...

Yes, the window title bar goes grey or some such but why not the contents
too? Again, you are presupposing the user to know where to look for
something _and_ you're making the user scan around the desktop
unnecessarily...I would challenge that a window that is not in focus and
doesn't accept immediate input (i.e. you want to implement the two clicks
style...which is arguably a bad idea in itself, as Marv points out) then it
should be consistent and show the controls as "disabled" in the _entire_
window...

The rule of thumb here is simply that anything that appears on the screen
(and is not suitably displayed as "disabled") _WILL_ (and they're correct
right to think this, aren't they? ;) be considered by the user to be fair
game to click on...either don't show it if it can't be immediately used or,
preferably if the element is not the sort to appropriate for blinking in and
out of existence, displayed in a "disabled" state...

Consistency, consistency, my kingdom for some consistency ;)

> 4) I still don't like the window title bar. I don't like the
> zoom button or whatever it is called. I don't like the way
> that it does a shrink to fit operation on most the windows.
> I'd prefer a zoom button that toggles between two user
> defined positions and sizes.
>
> 5) I'm not finished with the window title bar. The small
> window bar would have been useful for overlaying
> multiple windows on top of one another with each of
> their window title bars visble. It would then give the
> appearance of a tab-strip. However it takes too much
> time and effort to align the windows to do this.
>
> An easy way would have been to not allow the window
> title bars to go off the edge of the screen. This would
> have allowed you to slam the title bars to the top of the
> screen where they would easily be aligned.
>
> Also if you prevented the BeOS title bars going off the
> edge of the screen, you could move the windows to the
> bottom of the screen and simulate the Windows taskbar.
> If the windows had the two size-position zoom toggle that
> I mentioned earlier, you could click on the zoom button
> to make the window appear in the centre of the screen
> and another click for it to appear as just the window title
> at the bottom.

Basically, any important controls shouldn't ever be allowed to go off the
edge of the screen...there's no valid reason to allow this and when it
happens, you lose the ability to control something...it's, basically,
pathetically bad design...

Although slightly different, I had a similar dumbo interface problem with
Windows...I align a number of icons on the left which are "Beth's PC"
(renamed "my computer" ;), the "crap bucket" (the recycle bin...not renamed
this time - it cannot be renamed for some weird reason - just my little pet
name for it...hehehe ;) and shortcuts to each drive (like other more
intelligent OSes do it...personally, I have no problem understanding the
notion of separate drives and don't need it abstracted away into some folder
somewhere...and, basically, as almost every user can physically see a CD ROM
and a floppy and, though hidden, _needs_ to know what a hard drive is, so
that they can appreciate the need to save files and what "disk full" means,
then I'd argue that this is a completely unnecessary abstraction...

It's akin to abstracting your own legs off..."a user shouldn't need to know
about their own legs, as this would demand a knowledge of the concept of
walking...instead, they should be presented with "my brain" and within the
bizarrely laid out hierarchy (where the desktop owns the hard drive which
owns the desktop?!? it's not only the GNU poeple that appreciate recursive
jokes, it seems...lol ;) will be their legs...this means that the user need
not know anything about legs"...yeah, right...so, how are they going to
walk? There's "friendly" abstraction and then there's being plain
silly...lol ;)...

Anyway, back to my desktop problem....I also have a row of shortcuts to
useful folders and then another row of shortcuts to useful applications...I
don't plaster my desktop with icons but just enough to make things
easier...too many and it gets impractical...plus, it would get in the way of
my desktop bitmaps...I'd rather see something nice like that than a horde of
horrible icons ;)

So, I place them on the right of the screen (this is handy and separates
everything out into nice groups, yes? :) and was re-ordering them and one or
two of the icons were quite close to the right edge of the screen because I
wasn't too fussy in placing them...well, that's what "line up icons" and
fiddling with the settings to make them line up nicely was all for, wasn't
it?

Anyway, so I choose "line up icons" and guess what Windows decides to do
with them?

Yup, that's right, it lines them up off-screen (well, I guess that's what
happened...they just vanished off the desktop...lol ;)...and, yes, there is
no real practical way to get them back... except to do something like
"auto-arrange", let it stick my icons in some awful order all crammed up on
the left side of the screen and spend a while adjusting them around...or,
using my novel lateral approach (which most "normal" users wouldn't think
up), I could retain the order of my other icons by opening up the "desktop"
folder and cutting out the shortcuts, moving them to another directory and
then back again...where _only_ those icons appear in default positions and
just adjust these...this is a bit convoluted but not half as bad as
completely re-arranging a whole screenful of icons...

First, Windows shouldn't be so dumb as to align icons off-screen (when could
this ever be useful?)...Secondly, there should be a more practical way to
get them back from off-screen...both methods I just suggested here are
"fudges"...I depend on the fact that some other function co-incidentally
re-orders the icons involved...that's not a real solution...that's just a
happy co-incidence...if these other functions weren't there or worked
differently then my icon would have stayed off-screen FOREVER(!!) because
there is no direct function to cater for this situation...now is that dumb
or is that dumb? lol ;)

> 6) Whenever I use BeOS, I tend to avoid windows overlap,
> I think it is because I am used to layering windows down
> the leading diagonal in other OSs, from top-left to
> bottom-right, as if I had chosen the cascade windows option.
> This is mainly so that I can grab the windows title bar or
> press one of the title bar buttons. With the placement and
> size of the title bar on BeOS, the whole title bar is usually
> obscurred. I can't get used to it, and yes, I know you can
> shift the title bar along the top of the window.

But shifting it from an inappropriate default every single time _is_ bad
interface design...so, you're right, that's crap...

> 7) Double-clicking the title bar iconifies the window into the
> Deskbar. It requires a click on the corresponding application
> button in the Deskbar and another click on one of the menu
> options that pops up to reopen a window. You could avoid
> the need for iconifying applications and the Deskbar if the
> windows behaved as I described in 5).

That sounds dumb...

But GUIs are all guilty of this zooming thing...basically, 99% of the time
when an application loads, the first thing a user does is maximise the
window and then, if you don't have stupid interfaces that make it difficult,
switch between them...

The problem boils down to the fact that windows do have lots of practical
uses but, in the majority of cases, having a load of windows is just
distracting and maximising the window is the best practical thing to do...

So, basically, we need to keep the windowing because there are very good
uses for it but we need to support the ability to, effectively, nullify the
whole windowing stuff and make an application the only thing of concern...

But then we have a problem because these notions are mutually exclusive,
though both handy to have...this gets exemplified in the
minimise/maximise/restore strategy of the GUI...it's just all a bit fiddly
and messy, basically, whatever method is employed and I don't see much that
can be done about it with current GUI designs...I guess it's something you
just have to accept...

> 8)I think the lack of using hardware acceleration on my TNT2
> makes the interface feel slightly sluggish. I assume that it
> is using the VESA thingy mode. Maybe there is a driver that
> works with my card, but I honestly haven't spent the time
> looking.

Reasons like this are exactly why I do NOT consider interface code to be not
suitable for optimisation just because it's not in some critical inner loop
somewhere (although, I could easily argue it's inside the application's
message loop, couldn't I? and the "90%" argument still applies (probably
more so))...

Basically, the "90% of the time your application uses is in 10% of the code"
_should_ be meant as a phrase to help you _PRIORITISE_ where to do your
optimisation...knowingly leaving _any_ code out of some sort of optimisation
is just plain indefencable laziness...and leads to applications that
inexplicably take minutes to load, amongst other things...

I'd love to know what planet most of these interface designers live
on...don't they also do like everyone else and, basically, resent and, where
possible, _avoid_ loading applications because they take so god-damn long to
load in?

Most users have NO IDEA how much resources their applications are taking up
and I think most feel more cheated by slowness and clunkiness than because
the application they bought is not bloated...less is most certainly more in
interface design...and, yes, the length of time something takes to load _IS_
an interface concern...if it gets back to the user in any way then it's a
concern...

Users just don't think things like: "oh...well, that's a programming issue
and not an interface issue so I'll gladly wait an eternity for this to
load...but, of course, if this was an interface issue then all bets are off
and I'd scream the house down"...

They just can't tell the difference, so when you design and implement your
programs and interfaces, basically remember that _everything_ is fair
game...the _WHOLE_ package is under scrutiny from start to end, _without_
exception...if your program is fantastic in most regards but is just plain
dull and unacceptable on some crucial operations then the user _WILL_ just
junk it and go with the competition...

The "hall of shame" Marv mentions relates to a FTP program that has a
terrible file selection dialogue box, which basically invalidates the
_ENTIRE_ application because files are it's currency...the rest of the
application could be miraculous but you'd never know this, because you'd
give up on it the second that file selection box appears...really, as
programmers it's easy to get bogged down in the technical details but you
must remember that _all_ aspects have importance or you could spend years
perfecting some fantastic algorithm but it'll never be done any justice with
a crap interface slapped on top of it...if you're not good at interfaces,
then get someone who is...don't ever think that the user won't care if the
functionality is good, that's nice theory...akin to "people should not care
about appearances" but they DO care...sorry, but that's hard fact...

You can look at the statistics and academic arguments of this, if you want
to...but, basically, you yourself know that this is what you'd do with a
very crappy interface, wouldn't you? Especially in a group like this, where
I bet a fair few of our number are developing an OS simply because the
current ones (Windoze at the top of the list, of course ;) have so many of
these bad designs in them...

[ I find it funny that I'm constantly accused of "utopian" thoughts when I
appear to be one of the few who actually knows that _any_ fancy theory must
have some grounds in reality or it's useless...and I get arguments back
like: "Professor blah-blah-blah suggests in his thesis on the potential
designs for an "infinite computer" that you should always use such and such
a paging algorithm, even when you can think up a better method from
practical experimentation"...yeah, right, do you also make love to your
textbooks? Oh, wait, if we're talking Playboy, then you probably
do...hehehehe ;) ]

> At least the BeOS file dialog box isn't as bad as that in
> Windows. I don't think you could intentionally create anything
> worse than that, well, except for the design of Windows XP's
> Media Player :)

Media Player??!?!?! Don't get me started...

Can someone explain to me the rationale of a playlist that cannot be
reordered (and as it's just effectively a listbox, why have they not
implemented this?!?)?!?!?

Surely, the idea of a playlist is to define an order for your media that
differs from how it's stored on CD or in a directory...but, oh no, with
Media Player, the idea is just to make things hard to comprehend and
impractical...once you load in a file it's stuck at that point in the
playlist forever more and you're only options to reorder something at the
top of the list are to delete everything and re-load them in a new order (or
create a new playlist with duplicate entries...nice to see M$ completely
abandon their "data-centric" view there...which they practically insist upon
for applications made by other programmers)...

So, you decide to do this, and delete the entries..._BUT_, uh oh, are
entries in any way related to the file system? Nope; So, you've got to spend
ages rumaging around the temporary internet files or arbitrary folders
looking for the content...which, for the users' benefit, they've decided to
remove any connection between the entry in the playlist and the rest of the
system's "reality"...

> Overall I'd say that the BeOS interface isn't right for me. It
> might be okay for others, but not me.

Fair enough...

But, basically, I have not seen _one_ decent effort put into interface
design except for what Apple tried with the Mac (yes, it's outdated now and
did have/still has interface problems but the _effort_ and careful thought
put into it, quite frankly should make everyone else feel suitably
ashamed...the attitude and effort cannot be faulted...that is the amount of
considered effort that should be put into every OS and to an extent, every
application)...

Beth :)


Igor Shmukler

unread,
Feb 22, 2001, 1:39:42 PM2/22/01
to

"Marv" <washin...@freeuk.com> wrote in message
news:Gg6l6.2285$vI.2...@nnrp3.clara.net...

>
> Igor Shmukler wrote in message ...
> >> The processor pushes flags and CS:IP onto the stack. Or am I missing
> >> something?
> >
> >Upon interrupt processor pushes program counter into the stack. call it
PC,
> >IP or whatever.
> >Page faults are not like that, because instruction is already loaded into
> >processor. I don't know how 286 can figure what was instruction 1 step
back.
> >That's what I was referring to.
>
> Exactly what has paging got to do with multitasking ?
> I don't even think we were talking about protection mechanisms.
> The only form of memory protection that the 286 had was protected mode
> 16-bit segmentation.
Like I said, normally once you go into trouble make kernel take care of
everything thus get cpu time every clock interrupt, you want to run as many
apps as possible. Which is impossible without paging

>
> I believe the original OS/2 was designed to multitask on 286 processors,
did
> it not ?
Not sure, but where is OS/2 now?

>
> Then you've got Mixix multitasking on the 8088/86.
Yes, and if you read 1st edition of Andy's book you will see. 8086 MINIX ( I
understand mixix was a type. Happens to me all the time) was for educational
purposes. Because AT&T prohibited studying UNIX source in schools.

>
>
>
> Marv
>
Me.
>
>


Beth

unread,
Feb 22, 2001, 1:55:03 PM2/22/01
to
Frank Ostrowski wrote:
> So the main reason is $ - as allways. It simply was not possible for a
> mainstream OS to do pre-emptive multitasking before the 80386.

I know what you mean but let's re-phrase that: it _was_ possible in strict
physical implementation terms (i.e. you could do multitasking on a
Z80/6502/etc...for Pete's sake, I've seen it and done something limited like
that myself ;)...

_BUT_ it was NOT possible to do pre-emptive multitasking _AND_ support
MS_DOS (plus, programs which behaved as if they were the only process
because in "real" DOS that was true...plus, we'd need complete driver
re-writes ;) _AND_ support the early Windows methods (which were basically
designed without forethought to possible future pre-emption, when you get
down to it :)...

That is, MS-DOS and early Windows were designed without concern for the
possible future addition of pre-emption...and patching over the differences
was just impossible / impractical / not worth it...they both behaved in
methods unacceptable for a pre-emptive OS and commonly depended on being
single tasked because they assumed certain things to happen in a certain
order or just considered all of memory to be at their discretion, etc.,
etc.)...

Basically, you needed the protection mechanisms NOT to do pre-emption...you
needed it to be able to have an OS that does pre-emptive multitaksing
(WIN32), co-operative multi-tasking (early Windoze) and single tasking
(MS-DOS) all together without all hell breaking loose (which, on occasion,
does happen where their designers forgot about such and such, and the good
old blue screen adorns your monitor...hehehe ;)...that is, to allow MS-DOS
stuff and early Windows to run in a corner without adversely affecting other
parts of the system...they were supporting three different tasking models in
one OS (and still do...hence why the OS is so ludicrously bloated because
they won't let go of anything...they retain each and every bad design
decision from day one until the end of civilisation...I wouldn't be
surprised if in the future, someone will look at the Windoze 3000 source
code and find an API with the comment "/* function necessary for
compatibility with Babbage's difference engine - DO NOT REMOVE!!! */"...lol
;)...

And, also, let us remember that DOS was just an FS and a few memory
management facilities...early Windows did not cater for file operations in
its API, depending on the DOS stuff (which was mixing the tasking
models...seeing as they were this sadistic on themselves, it's hardly
surprising they needed the hardware guys to come along and save their
bacon...they were so clueless (and still are) they drive themselves to
destruction design-wise)...

In other words, M$ were trying to get OSes that somewhat worked, first and
foremost (and, yes, they couldn't even do that right, could they? ;), and
good OS theory has, apparently, never been much of a concern for them...even
NT "fudges" the odd thing and that was their attempt at "let's have a go at
writing a real OS, rather than an app. with a bootsector that just pretends
with some pretty graphics to distract attention from the fact it isn't
actually working"...lol ;)

Beth :)


Marv

unread,
Feb 22, 2001, 3:23:25 PM2/22/01
to
Tim Robinson wrote....

>Marv wrote...


>This is probably because, by default, the first click only activates the
>window. At first I thought a lot of applications had hung because clicking
>on them had no effect other than bringing them to the front (like Windows NT
>would). You get used to it.

IIRC clicking on buttons on icons within the window is one click from
another window, but only clicking on the close or zoom gadget from
another window is two clicks.


>> 6) Whenever I use BeOS, I tend to avoid windows overlap,
>> I think it is because I am used to layering windows down
>> the leading diagonal in other OSs, from top-left to
>> bottom-right, as if I had chosen the cascade windows option.
>> This is mainly so that I can grab the windows title bar or
>> press one of the title bar buttons. With the placement and
>> size of the title bar on BeOS, the whole title bar is usually
>> obscurred. I can't get used to it, and yes, I know you can
>> shift the title bar along the top of the window.
>
>Can you? I usually drag the window by its border under these circumstances.

Well holding down the shift key and dragging the title bar you can
slide it to the right on BeOS, if that is what you mean.

I think I was a bit off when I said I usually have windows overlapping
down the leading diagonal. When I'm writing in a word processor
or text editor on windows, I usually have the window taking up the
centre two thirds of the screen horizontally and have a file folder
on the left hand side sticking out from underneath the window, saving
me from using the dreaded open file dialog.

I do like that right mouse button cascading menu to browse the filesystem
on BeOS.

But for some reason on BeOS I do tend to make the windows overlap
as little as possible, it could be that I don't like moving the windows
because of the lack of hardware acceleration of my windows, there is
visble tearing when I drag them about, so maybe that has got something
to do with it. Perhaps just an 'outline of the window' option could be added
for those without hardware acceleration. It isn't in R4.5, maybe things
are different in R5.


>It needs a filter (*.txt) option! How many times have I had to browse
>through loads of crap just to find one file... What's the Windows XP Media
>Player like? If it's anything like Media Player 7, I'm sticking with BeOS...
>Mplayer7 must assume that everybody owns a fixed, high-speed Internet
>connection: the Readme describes the many steps you must take (involving
>random Options dialogs) to stop it dialling up randomly. I put up with it
>for about a week, because its playlist is a lot better than Winamp's, but
>now I've banned everyone from using it because it would cause the proxy on
>my machine to dial up constantly.

I only have MP6.4, so I've never encountered this playlist.

Windows XP Media Player seems to be copying Apple's QT player with
its physical hand-held device look and feel, irregular shaped windows,
no system gadgets that I can see.

If you want to take a look at the screenshots of Windows XP go to;

http://www.winsupersite.com/showcase/windowsxp_luna.asp

Marv


Tim Robinson

unread,
Feb 22, 2001, 5:05:37 PM2/22/01
to
"Igor Shmukler" <shmu...@mail.ru> wrote in message
news:O1dl6.145$oX3....@newsread1.prod.itd.earthlink.net...

> Like I said, normally once you go into trouble make kernel take care of
> everything thus get cpu time every clock interrupt, you want to run as
many
> apps as possible. Which is impossible without paging

No it isn't. Paging relates to memory organisation, multitasking (in this
sense) relates to ownership of the processor by one task. There are/have
been many systems that don't support paging, but do allow multitasking,
pre-emptive or otherwise. An example that springs to mind is the Psion
Series 3, back in 1991: they used an NEC V30 processor (an 8088 clone, I
think) and got it to do amazing things which the original IBM PC didn't.


Igor Shmukler

unread,
Feb 22, 2001, 6:36:29 PM2/22/01
to
Well put.

"Frank Ostrowski" <fr-...@web.de> wrote in message

news:hpka9tggkmfhv4esj...@4ax.com...

Marv

unread,
Feb 22, 2001, 6:19:16 PM2/22/01
to
Here we go on another tangent, just like the fork() thread. I wonder if the
Windows newsgroup will be as happy with us as the Minix group was :)

Beth wrote in message ...
>Marv wrote...


>>
>> 2) All the dialog boxes have their buttons around the wrong way.
>> I like okay to be on the left, Cancel to be on the right.
>
>Actually, most people are right-handed in this world and there is an
>argument (by psychologists and "art" people ;) that the most important
>option should be on the right to account for this...it is commonly cited by
>psychologists that contents of importance should actually be placed on the
>right...

I am left handed at writing and using a fork. I am right handed when
using mice, joysticks and scissors.


>if these are the only control buttons then they should be
>placed at the top right, as this is the "place of most attraction" to place
>important controls...

Top right the "place of most attraction" ?

I thought that people scanned screens down the top-left to bottom-right
diagonal.


>Of course, the horizontal version is usually better for cramming loads of
>controls together

I thought vertical buttons was for cramming loads of controls together,
as is the case with menus an option buttons and horizontal buttons
were for fewer, more spaced apart buttons.


>But GUIs are all guilty of this zooming thing...basically, 99% of the time
>when an application loads, the first thing a user does is maximise the
>window and then, if you don't have stupid interfaces that make it difficult,
>switch between them...

I was going to post a bit on Amiga screens, then diverge onto Amiga
libraries and how they could be considered as components. I was also
going to comment on the lack of memory protection in the Amiga makes
calling these components just a call to a jump table whereas if it were
implemented with memory protection today, it would probably be
implemented with a much more expensive kernel call to cross protection
domains like LRPC or as I think Greg called it last year, thread tunnelling
(I think they're much the same thing, whatever it is that Pebble and Spring
do).

But I'll save all of that for another post in AOD sometime.


>Media Player??!?!?! Don't get me started...
>
>Can someone explain to me the rationale of a playlist that cannot be
>reordered (and as it's just effectively a listbox, why have they not
>implemented this?!?)?!?!?

I must be the only one with obsolete technology, I have MP6.4.


Marv


Marv

unread,
Feb 22, 2001, 6:47:05 PM2/22/01
to

Tim Robinson wrote in message <9742hd$kq0$1...@news6.svr.pol.co.uk>...

Shock !

You mean some computers did preemptive multitasking without
memory protection all them years ago.

I don't believe it !

:))

Marv


Alexei A. Frounze

unread,
Feb 22, 2001, 7:32:54 PM2/22/01
to
"Marv" <washin...@freeuk.com> wrote in message
news:gxhl6.3606$sB4.5...@nnrp4.clara.net...

Why not? What's wrong with the preemptive multitasking? The idea is same,
implementation is different. The simplest form is possible on outdated CPUs
as well.

--
Alexei A. Frounze
alexfru [AT] chat [DOT] ru
http://alexfru.chat.ru
http://members.xoom.com/alexfru/
http://welcome.to/pmode/

Tim Robinson

unread,
Feb 22, 2001, 7:38:22 PM2/22/01
to
"Marv" <washin...@freeuk.com> wrote in message
news:Szel6.3209$sB4.4...@nnrp4.clara.net...

> >This is probably because, by default, the first click only activates the
> >window. At first I thought a lot of applications had hung because
clicking
> >on them had no effect other than bringing them to the front (like Windows
NT
> >would). You get used to it.
>
> IIRC clicking on buttons on icons within the window is one click from
> another window, but only clicking on the close or zoom gadget from
> another window is two clicks.

On R5, it's two clicks by default. Individual windows can override this if
they want (such as the Winamp clone I've got installed), so why isn't it
configurable?

> I only have MP6.4, so I've never encountered this playlist.
>
> Windows XP Media Player seems to be copying Apple's QT player with
> its physical hand-held device look and feel, irregular shaped windows,
> no system gadgets that I can see.
>
> If you want to take a look at the screenshots of Windows XP go to;
>
> http://www.winsupersite.com/showcase/windowsxp_luna.asp

I don't see what the current obsession with weirdly-shaped windows is.
What's wrong with a rectangle?
WinXP look impressive, but my first impression was that is is the
Fisher-Price of operating systems; all bright colours, bold fonts and
pictures. I hope I can change it back to Default Grey. And why would I want
quick access to a directory of Pictures? (that's enough from you, Beth ;) )

On a completely unrelated note, is there anyone who still calls directories
"directories" apart from me, or has everyone converted to folders now?


Kevin Diggins

unread,
Feb 22, 2001, 8:28:12 PM2/22/01
to
Tim Robinson wrote:

> On a completely unrelated note, is there anyone who still calls directories
> "directories" apart from me, or has everyone converted to folders now?

EXPERIMENT:
Tangible proof that "directories" are still more useful than "folders"

Type DIR at a DOS PROMPT, press ENTER
Type FOL at a DOS PROMPT, press ENTER

I rest my case :-)

Scott Wood

unread,
Feb 22, 2001, 9:42:32 PM2/22/01
to
Tim Robinson <timothy....@ic.ac.invalid> wrote:
>On a completely unrelated note, is there anyone who still calls directories
>"directories" apart from me, or has everyone converted to folders now?

You mean they're not drawers anymore? :-)

Personally, though, I'd rather just call them subnamespaces.

-Scott

Scott Wood

unread,
Feb 22, 2001, 9:43:40 PM2/22/01
to
Kevin Diggins <kdig...@qwest.net> wrote:
>EXPERIMENT:
>Tangible proof that "directories" are still more useful than "folders"
>
>Type DIR at a DOS PROMPT, press ENTER
>Type FOL at a DOS PROMPT, press ENTER

So by this logic, would directories in Unix be "lists"?

-Scott

Groman

unread,
Feb 22, 2001, 9:50:21 PM2/22/01
to
> >EXPERIMENT:
> >Tangible proof that "directories" are still more useful than "folders"
> >
> >Type DIR at a DOS PROMPT, press ENTER
> >Type FOL at a DOS PROMPT, press ENTER
>
> So by this logic, would directories in Unix be "lists"?

Well, you keep on typing "lis" at the Unix command prompt, maybe you'll get
somewhere... >[


By that logic Unix directory should have been called "lsd"... >[

Kovacs Viktor Peter

unread,
Feb 23, 2001, 5:48:58 AM2/23/01
to
> > >> Like I said, normally once you go into trouble make kernel take care of
> > >> everything thus get cpu time every clock interrupt, you want to run as
> > >> many apps as possible. Which is impossible without paging
> > >No it isn't. Paging relates to memory organisation, multitasking (in this
> > >sense) relates to ownership of the processor by one task. There are/have
> > >been many systems that don't support paging, but do allow multitasking,
> > >pre-emptive or otherwise. An example that springs to mind is the Psion
> > >Series 3, back in 1991: they used an NEC V30 processor (an 8088 clone, I
> > >think) and got it to do amazing things which the original IBM PC didn't.
> > You mean some computers did preemptive multitasking without
> > memory protection all them years ago.
> > I don't believe it !
> Why not? What's wrong with the preemptive multitasking? The idea is same,
> implementation is different. The simplest form is possible on outdated CPUs
> as well.

Have anyone seen minix? (the original 8086 version) It was able to
multitask preemptively and run a full unix system with a message
based microkernel... without any memory protection...

The simpliest form of mutitasking on the 8086 is the timer interrupt:
-save the registers on entry
-load the ss:sp of the other process
-restore the registers
-iret

This will give you preemptive multitasking. And since you can make
the kernel uninterruptable (with a microkernel), you are ready...

A few additions:
-the system can have a a total of 10 address spaces swapped in
(64k each, including kernel)
-you can swap to disk and to ems (good old, hw card based)
-you can implement multithread support
-the only general rule is that the application programs should
never load a segment register, never modify the interrupt flag,
a system area and the interrupt table

Viktor


ps: You can add protection with external circuity:
-you can generate an interrupt on privileged instruction fetch
-you can allow memory access to certain areas from predefined
address (code) ranges only
-this is the way that texas uses in some of its systems...
(mostly ZX80 and M68k)

Marv

unread,
Feb 23, 2001, 5:36:49 AM2/23/01
to

Alexei A. Frounze wrote...
>Marv wrote...

>>
>> Shock !
>>
>> You mean some computers did preemptive multitasking without
>> memory protection all them years ago.
>>
>> I don't believe it !
>
>Why not? What's wrong with the preemptive multitasking? The idea is same,
>implementation is different. The simplest form is possible on outdated CPUs
>as well.

I was joking Alexei. honest. ;)

Marv


Tim Robinson

unread,
Feb 23, 2001, 6:39:26 AM2/23/01
to
"Marv" <washin...@freeuk.com> wrote in message
news:gxhl6.3606$sB4.5...@nnrp4.clara.net...

> >No it isn't. Paging relates to memory organisation, multitasking (in this
> >sense) relates to ownership of the processor by one task. There are/have
> >been many systems that don't support paging, but do allow multitasking,
> >pre-emptive or otherwise. An example that springs to mind is the Psion
> >Series 3, back in 1991: they used an NEC V30 processor (an 8088 clone, I
> >think) and got it to do amazing things which the original IBM PC didn't.
>
> Shock !
>
> You mean some computers did preemptive multitasking without
> memory protection all them years ago.
>
> I don't believe it !

Alright, I'm being slightly selective here. The Psion did have some memory
protection (I remember them bragging about the ability to do multitasking
and protection on an 8088-class machine), but it's hardly the 80386-style
paging that people are suggesting is required. A multiprocessing OS *should*
have multitasking (pre-emptive or otherwise) and memory protection. Paging
makes it easier for the OS to implement the latter, but the two are not
necessarily interlinked.


Tim Robinson

unread,
Feb 23, 2001, 6:41:09 AM2/23/01
to
"Marv" <washin...@freeuk.com> wrote in message
news:Rthl6.3592$sB4.5...@nnrp4.clara.net...

> >Media Player??!?!?! Don't get me started...
> >
> >Can someone explain to me the rationale of a playlist that cannot be
> >reordered (and as it's just effectively a listbox, why have they not
> >implemented this?!?)?!?!?
>
> I must be the only one with obsolete technology, I have MP6.4.

I'm sticking with the one that came with Windows 2000. I'd rather downgrade
(upgrade?) to the Windows 3.1 version to be honest, or possibly the one that
came with Multimedia Windows 3.0 (the original set of sound card and CD-ROM
components for Windows 3.0).


Tim Robinson

unread,
Feb 23, 2001, 6:42:30 AM2/23/01
to
"Kevin Diggins" <kdig...@qwest.net> wrote in message
news:3A95BCAC...@qwest.net...

Thanks: folders are the windows on your screen that allow you to look at the
contents of directories.
Directory: f:\drived\projects\mobius\src\kernel
Folder: "Exploring kernel"


Greg Law

unread,
Feb 23, 2001, 9:27:40 AM2/23/01
to
Marv wrote:
...

> implemented with memory protection today, it would probably be
> implemented with a much more expensive kernel call to cross protection
> domains like LRPC or as I think Greg called it last year, thread tunnelling
> (I think they're much the same thing, whatever it is that Pebble and Spring
> do).

Yes that was me.

It's also called "thread migration" (which I dislike coz people often
assume it means migrating threads across proecssors), and "passive
object model", which I think is a little misleading too.

It is pretty much exactly what Spring and Pebble do (Spring calls it
"doors" (ish), and Pebble doesn't seem to give it a name).

On a more technical note: some systems (e.g. SawMill) will let
components be collocated into one address space. You have a choice in
these systems, but (as I understand it), you don't with Amiga. Lack of
any support for memory protection is a bad thing in desktop OSs today
IMHO. Do these Amiga "components" not resemble C++ objects more than
fully-fledged OS-level components?

Greg

Beth

unread,
Feb 23, 2001, 6:53:37 AM2/23/01
to
Alexei A. Frounze wrote:
> Marv wrote:
> > Tim Robinson wrote:

It was sarcasm, Alexei...we have the old "cannot convey tone of voice in a
post" problem again...I get this form the fact that no-one seriously writes
"Shock!!" or "I don't believe it!" like Marv did, if they really were
shocked...it's just not a natural reaction...

[ I hope I'm right and it was sarcasm (but it really, really comes across
that way...so I'm confident I got it right ;) or I'm about to look _very_
dumb...lol ;) ]

Beth :)


Beth

unread,
Feb 23, 2001, 7:39:20 AM2/23/01
to

People, people...grow up...

Tangible proof that it matters not a bean what it's called; It's just a
string of binary residing in an arbitrary place on my hard drive...

Anyway, Macs call it a "folder"...so did GEM...so did...blah-blah-blah...

I'd just love to live in this happy smiley "DOSland" you all seem to live
in...it apparently can do no wrong...it's the command-line utopia...there's
never any good reason to use graphics or a mouse...

Yes, the reason for a lot of this is to accomodate the "idiots" (your
terminology, not mine...I know quite a few people who are not idiots by any
stretch of the imagination but just don't know some arbitrary "voodoo"
syntax...what's wrong with that? They spent their youth doing other
things...doesn't make them at all inferior, surely?) but you guys take it
all way too personally...signing a cheque is to stop fraud...but no-one
would suggest that everyone is a fraudster who uses a chequebook...that's
just being silly...

Now, if they stop you doing it any other way than the "idiots" way, you have
a valid right to complain...but, so far (though, I don't make any claims for
the future on this front ;), you can still "go DOS" if that's what you
prefer...

Admit it, you're all just annoyed that after spending all that time learning
those "voodoo" tricks, they've gone and pulled the carpet from under
you...well, maybe you shouldn't have got so attached to something that was,
basically, just some arbitrary convention...and I'd recommend that if you
get forced into using GUIs and such then don't get attached to these
either...they're just as arbitrary and prone to fashion...

In the long run, it's the fundamentals you should get obsessed with...the
"first principles"...if you select carefully, they CANNOT take away your
precious foundations...just put them in the right soil to begin with ;)

Beth :)


Beth

unread,
Feb 23, 2001, 7:22:19 AM2/23/01
to
[ I promise to be somewhat "concise", Tim...but, as you guessed, I cannot be
totally silent on this matter ;) ]

Tim Robinson wrote:


> Marv wrote:
> > >This is probably because, by default, the first click only activates
the
> > >window. At first I thought a lot of applications had hung because
> > > clicking on them had no effect other than bringing them to the front
> > > (like Windows NT would). You get used to it.
> >
> > IIRC clicking on buttons on icons within the window is one click from
> > another window, but only clicking on the close or zoom gadget from
> > another window is two clicks.
>
> On R5, it's two clicks by default. Individual windows can override this if
> they want (such as the Winamp clone I've got installed), so why isn't it
> configurable?

Good point.

> > I only have MP6.4, so I've never encountered this playlist.
> >
> > Windows XP Media Player seems to be copying Apple's QT player with
> > its physical hand-held device look and feel, irregular shaped windows,
> > no system gadgets that I can see.
> >
> > If you want to take a look at the screenshots of Windows XP go to;
> >
> > http://www.winsupersite.com/showcase/windowsxp_luna.asp
>
> I don't see what the current obsession with weirdly-shaped windows is.
> What's wrong with a rectangle?

The idea behind this (for good or for ill), is to make things look more like
the real-world equivalents and it's current fashion in hi-fi design to have
ergonomic curved edges...this will no doubt change but that's part of the
reason (I notice the playstation 2 makes use of hard edges and lots of TVs
and speakers are heading back to the "as square as square can be" box look
;)...another reason is that is just, basically, showing off...both the
programmers' skills and so the user can show off how pretty their desktop
looks to friends with bland gray desktops...you're a man, you know the
deal...this is your territory and not mine ;)

Anyway, this is a personal taste issue again...I could reverse the question
and, on purley aesthetic grounds, ask "what's wrong with curved edges?",
couldn't I?

Strange...but I doubt you complain about "curved edges" and such when it
comes to women, do you? Typical double-standards...hehehehe...lfmao ;)

> WinXP look impressive, but my first impression was that is is the
> Fisher-Price of operating systems; all bright colours, bold fonts and
> pictures. I hope I can change it back to Default Grey. And why would I
want
> quick access to a directory of Pictures? (that's enough from you, Beth
;) )

I have no idea why _you_ would want to access a directory of
pictures...that's your perogative...but other people want to access a
directory of pictures so that they can easily see file types at a glance
without scanning file extensions (which, btw, is defaulted to be hidden so
it's necessary unless you change the defaults ;)...it can also convey a
thumbnail of image files that means you don't need to open up Paintbrush or
whatever, just to browse through some images...like, for instance, when I
was looking through my "temporary internet files" for a .gif that I'd
browsed past a few days previously...if I had to open/close CorelDraw for
each picture, this would have taken days to do but, instead, I could use the
"generating preview..." facility and just press the arrow keys over any
icons that have the GIF file type icon...no need to open and close
applications all the time or drag them about...no need to analyse the file
extensions to see if they're gif files...I can do this all in minutes with
just the cursor keys, rather than hours upon hours, doing the command-line
way (not to say command-lines are crap...not at all...if I wanted to copy
just the GIFs to another directory then this is one command with a wildcard,
next to a load of fiddling with explorer..."horses for courses"/"the right
tool for the job", etc., etc., etc. ;)

For certain things, I'd actually agree with you but, generally, it has it's
uses so dismissing it out of hand is not a valid thing to do...

Anyway, do this:

Right-click on the folder, choose "view" then choose "details"...there you
are...it looks like DOS now...happy hunting for those files ;)

> On a completely unrelated note, is there anyone who still calls
directories
> "directories" apart from me, or has everyone converted to folders now?

I call them both "directories" and "folders" somewhat
interchangably...although, when I use "folder" it's because this is the more
generic term used over a number of OSes...which, I'd guess, is the reason M$
have switched over too...

Beth :)


Beth

unread,
Feb 23, 2001, 8:16:06 AM2/23/01
to
Marv wrote:
> Here we go on another tangent, just like the fork() thread. I wonder if
the
> Windows newsgroup will be as happy with us as the Minix group was :)

This is about good interfaces...I think it applies to the Windoze guys too,
yes?

> Beth wrote in message ...
> >Marv wrote...
> >>
> >> 2) All the dialog boxes have their buttons around the wrong way.
> >> I like okay to be on the left, Cancel to be on the right.
> >
> >Actually, most people are right-handed in this world and there is an
> >argument (by psychologists and "art" people ;) that the most important
> >option should be on the right to account for this...it is commonly cited
by
> >psychologists that contents of importance should actually be placed on
the
> >right...
>
> I am left handed at writing and using a fork. I am right handed when
> using mice, joysticks and scissors.

So you are really left-handed but have learnt right-handedness thanks to an
unsympathetic world? That's a bit of a bummer...lol ;)

Anyway, as the majority of people are right-handed then this is the
"majority" way of doing things...you know it's the old Churchill thing
(paraphrased): "Democracy is crap but it's the best we got so far"...you're
the minority and the way things currently work means you have to suffer to
the whims of the majority...sorry...I wish there was a way to fix this but
no-one's come up with it yet...

> >if these are the only control buttons then they should be
> >placed at the top right, as this is the "place of most attraction" to
place
> >important controls...
>
> Top right the "place of most attraction" ?
>
> I thought that people scanned screens down the top-left to bottom-right
> diagonal.

Yes, that's so-called "reading order"...so, immediately, that means it only
applies to people who's languages read left-to-right, top-to-bottom...the
Japanese wouldn't naturally do that...

You have something similar with DIBs, don't you? They use the "mathematical"
co-ordinate system, whereas monitors/TVs are biased towards English reading
order (well, it was a Scot who came up with it and it was mostly developed
in Britain/America until it got accepted internationally...if history was
different then monitors would scan right-to-left or even vertically first
then horizontally (which would have made DOOM clones easier to write and
quicker to render...hehehe ;)) in their raster scans...so, if rendered as
they are stored, then DIBs would be "upside-down"...

In the real world, gravity shows us what "down" is...the sunrise shows us
where "east" is...and the fact we have a "direction of facing" gives us
"left" and "right" (if we had 360 degree vision and bodies that somewhat
"pointed" in no specific direction...then we'd talk about "clockwise" and
"anti-clockwise" ("counter-clockwise" as the Americans put it) instead and
"left" and "right" would be the weird notion ;)...

Inside the more logical arenas of language and computers, these distinctions
hold little to no weight...is the address 7C00h to the left or right of
8000h (I know have visions of someone opening up a memory chip to have a
look...lol ;)? Does it matter? Usually not at all but the problem is, an
interface is where these two worlds meet and then you get problems from
their inconsistency (which is not helped by the fact that humans are
generally inconsistent, anyway, without additional problems being thrown
into the bargain ;)...

> >Of course, the horizontal version is usually better for cramming loads of
> >controls together
>
> I thought vertical buttons was for cramming loads of controls together,
> as is the case with menus an option buttons and horizontal buttons
> were for fewer, more spaced apart buttons.

Well, either way can be used for cramming...my comment was in reference to
the other comments I'd made that a vertical scheme would likely need some
space...it's more to do with the usual layout of dialogue boxes than some
deep rooted truth of the universe...the way it's normally laid out then
horizontal is the more cramming...

It depends on the fact that text is horizontally-orientated in lots of
languages...for a Japanese system, then the vertical would likely be the
more "cramming" method (if they had a similar style of layout, which would
probably not be the case...I'd have to analyse that separately...the rules
of that particular game are very different, so we can't employ some generic
"vertical is good" rule to that...my comments regarding design were
English-biased...I wouldn't hold them or expect others to hold them where
the language rules are different)...

Note that there is an adopted convention to write Japanese horizontally
these days because everything is so horizontally-orientated elsewhere in the
world...

The vertical is easier for humans to scan...no real reason for this...it's
just the way nature happened...for instance, if you want to catch a fly in
your hand then a good way is to keep your movements slow and
vertically-orientated because, for flies, horizontal motion is favoured
instead...

[ Oh...I'm do not condone any nastiness to flies here...just that was a
weird fact I picked up from somewhere and it is true because I've tried it
out (not to catch the fly but to see when it reacted to me moving my hand
near it...if you went horizontally, it flies away straight away...if you
move more vertically, you can get a lot closer because it just can't
appreciate vertical motion as well as horizontal...humans, as usual, are
pretty generic in this regard but there is a bias to the opposite...vertical
scanning is easier ;) ]

> >But GUIs are all guilty of this zooming thing...basically, 99% of the
time
> >when an application loads, the first thing a user does is maximise the
> >window and then, if you don't have stupid interfaces that make it
difficult,
> >switch between them...
>
> I was going to post a bit on Amiga screens, then diverge onto Amiga
> libraries and how they could be considered as components. I was also
> going to comment on the lack of memory protection in the Amiga makes
> calling these components just a call to a jump table whereas if it were
> implemented with memory protection today, it would probably be
> implemented with a much more expensive kernel call to cross protection
> domains like LRPC or as I think Greg called it last year, thread
tunnelling
> (I think they're much the same thing, whatever it is that Pebble and
Spring
> do).
>
> But I'll save all of that for another post in AOD sometime.

Okie dokie...I'll read it over there...but it seems a shame that the Windoze
guys can't get to hear it...although, they have the "address"...lol ;)

> >Media Player??!?!?! Don't get me started...
> >
> >Can someone explain to me the rationale of a playlist that cannot be
> >reordered (and as it's just effectively a listbox, why have they not
> >implemented this?!?)?!?!?
>
> I must be the only one with obsolete technology, I have MP6.4.

Yeah...I only got MP7 because I went to this site about movies and it
insisted on MP7 to have a look at the movies trailers...and once you install
it, it has this annoying auto-update thingy...I think it's a bit of a step
backwards from previous Media Players but then, it's a new philosophy
they're adopting with it so these (I hope) are just "teething troubles"
while they work out what should go where and stuff...

Beth :)


Alexei A. Frounze

unread,
Feb 23, 2001, 1:18:03 PM2/23/01
to
"Kovacs Viktor Peter" <v...@winnie.obuda.kando.hu> wrote in message
news:Pine.LNX.3.96.101022...@winnie.obuda.kando.hu...

Right, and I have a book on 8086 Minix. I know it's really true. :)

Good Luck

Alexei A. Frounze

unread,
Feb 23, 2001, 1:21:54 PM2/23/01
to
"Beth" <BethS...@hotmail.com> wrote in message
news:lQwl6.16290$MN.3...@news2-win.server.ntlworld.com...

> It was sarcasm, Alexei...we have the old "cannot convey tone of voice in a
> post" problem again...I get this form the fact that no-one seriously
writes
> "Shock!!" or "I don't believe it!" like Marv did, if they really were
> shocked...it's just not a natural reaction...
>
> [ I hope I'm right and it was sarcasm (but it really, really comes across
> that way...so I'm confident I got it right ;) or I'm about to look _very_
> dumb...lol ;) ]

I just didn't pay much attention to the form at that moment. :)

Marv

unread,
Feb 23, 2001, 2:05:35 PM2/23/01
to

Greg Law wrote...

>
>On a more technical note: some systems (e.g. SawMill) will let
>components be collocated into one address space. You have a choice in
>these systems, but (as I understand it), you don't with Amiga.

No protection whatsoever, just one physical address space.


>Lack of any support for memory protection is a bad thing in desktop OSs
>today IMHO.

But if you say that, then you don't get to wear a luminous pink badge that
says, "I am a heretic and proud of it!".

I wonder if Beth looks anything like the TV presenter Ann Robinson. :)


>Do these Amiga "components" not resemble C++ objects more than
>fully-fledged OS-level components?

Well the Amiga called them shared libraries, but they are not really like
how I imagine shared libraries work on other machines, certainly it isn't
like the normal link process. I don't know how Windows DLLs work, so
I can't comment on them.

I think I need to do a little bit more reading of my old books and have
time to gather my thoughts before I try and explain where I'm coming from.
I don't think the Windows programmers would be interested and I wouldn't
want it to become like the amiga.advocacy newsgroups :))

Marv


Beth

unread,
Feb 23, 2001, 2:59:18 PM2/23/01
to
Marv wrote:
> I wonder if Beth looks anything like the TV presenter Ann Robinson. :)

You are the weakest link. Goodbye.

Beth :)


Tim Robinson

unread,
Feb 23, 2001, 3:43:04 PM2/23/01
to
"Beth" <BethS...@hotmail.com> wrote in message
news:mQwl6.16291$MN.3...@news2-win.server.ntlworld.com...

> > And why would I want
> > quick access to a directory of Pictures? (that's enough from you, Beth
;) )

> [ I promise to be somewhat "concise", Tim...but, as you guessed, I cannot


be
> totally silent on this matter ;) ]

Haha... Sorry, I was talking on a much lower level: the tone of this
sentence was supposed to be "surly and Northern". How can I put this
tactfully enough for a Usenet post... previously you showed appreciation for
a typically British sense of humour. Just after I wrote that sentence it
occurred to me that these pictures could be of a certain kind...

Anyway, on with the reply.

> > I don't see what the current obsession with weirdly-shaped windows is.
> > What's wrong with a rectangle?
>

> Anyway, this is a personal taste issue again...I could reverse the
question
> and, on purley aesthetic grounds, ask "what's wrong with curved edges?",
> couldn't I?

Hmmm... If we're literally talking about curved vs. straight edges, then
curved edges win out for me. One of the best looking interfaces I've used
was on the old Psion 3's: they used dialogs with very curved borders
together with square buttons. Unfortunately the hardware was such that they
didn't have transparency around the edges where they were curved, but the
effect was enough. I'd like to try and replicate that.

If you're talking about computer software emulating real-world devices, then
that's different. The appearance of a computer application looks (such as a
word processor, for instance) is a lot less restricted than that of a
real-world interface (such as a bit of paper and a pen). So designers should
not feel that they ought to emulate real-world interfaces just because
people are familiar with them. See http://www.iarchitect.com/readplease.htm
in the "Interface Hall of Shame", recommended by Marv.

> Strange...but I doubt you complain about "curved edges" and such when it
> comes to women, do you? Typical double-standards...hehehehe...lfmao ;)

<g> See what I mean? LOL!

> I have no idea why _you_ would want to access a directory of
> pictures...that's your perogative...but other people want to access a

<snip>


> just the GIFs to another directory then this is one command with a
wildcard,
> next to a load of fiddling with explorer..."horses for courses"/"the right
> tool for the job", etc., etc., etc. ;)
>
> For certain things, I'd actually agree with you but, generally, it has
it's
> uses so dismissing it out of hand is not a valid thing to do...

OK, so I was just being cynical. I, a developer, has different priorities to
your average user. It occurred to me last night that a set of folders
containing pictures, combined with a digital camera, constitutes a virtual
photo album.

> Anyway, do this:
>
> Right-click on the folder, choose "view" then choose "details"...there you
> are...it looks like DOS now...happy hunting for those files ;)

<g> Nice...
Personally, I like the "list" mode, with full file extensions, hidden files,
DLLs, and DLLs with their own icons displayed (so it makes it easier when
I'm trying to nick somebody else's icon for a project). But then I'd
probably be just as happy scanning through raw NTFS FILE structures...*

[* this is an exaggeration]


Tim Robinson

unread,
Feb 23, 2001, 3:54:02 PM2/23/01
to
"Beth" <BethS...@hotmail.com> wrote in message
news:qQwl6.16293$MN.3...@news2-win.server.ntlworld.com...

> Marv wrote:
> > Here we go on another tangent, just like the fork() thread. I wonder if
> the
> > Windows newsgroup will be as happy with us as the Minix group was :)
>
> This is about good interfaces...I think it applies to the Windoze guys
too,
> yes?

You'd have thought so: originally I was just going to post to
c.o.m-w.p.win32 (I mentioned the use of GlobalAlloc vs. malloc there a few
weeks ago), but, so far, the only contributors to this thread have been the
a.o.d regulars.

> Anyway, as the majority of people are right-handed then this is the
> "majority" way of doing things...you know it's the old Churchill thing
> (paraphrased): "Democracy is crap but it's the best we got so
far"...you're
> the minority and the way things currently work means you have to suffer to
> the whims of the majority...sorry...I wish there was a way to fix this but
> no-one's come up with it yet...

What if we took the "swap mouse buttons" concept further, and actually
extended it to swapping the interface over? A lot of left-handed people I
know don't bother swapping mouse buttons, and if I use the mouse in my left
hand, it feels just as natural. Maybe swapping the interface round (like on
Arabic systems) would be too "politically correct".

> Inside the more logical arenas of language and computers, these
distinctions
> hold little to no weight...is the address 7C00h to the left or right of
> 8000h (I know have visions of someone opening up a memory chip to have a
> look...lol ;)? Does it matter? Usually not at all but the problem is, an
> interface is where these two worlds meet and then you get problems from
> their inconsistency (which is not helped by the fact that humans are
> generally inconsistent, anyway, without additional problems being thrown
> into the bargain ;)...

FWIW, I imagine memory as a giant pile of addresses, usually either pages or
dwords, with 0 on the floor and the top of the address space at the top of
the pile. I guess it's just down to what's familiar to you.

> The vertical is easier for humans to scan...no real reason for this...it's
> just the way nature happened...for instance, if you want to catch a fly in
> your hand then a good way is to keep your movements slow and
> vertically-orientated because, for flies, horizontal motion is favoured
> instead...

Which direction is it easiest for moving your eyes? I remember that you have
more muscles at the [sides/top] than the [top/sides], I just can't remember
this. A quick survey (of 1) indicates that horizontal movement is easier,
hence it's easier to look at stuff horizontally. But then I'm not Japanese.

> > But I'll save all of that for another post in AOD sometime.
>
> Okie dokie...I'll read it over there...but it seems a shame that the
Windoze
> guys can't get to hear it...although, they have the "address"...lol ;)

They probably wouldn't understand. No offence intended to them, and there
are some clever people in the Windows groups, but a.o.d seems far more
knowledgeable than they are. Whe I first subscribed there it was mildly
entertaining fixing newbies' problems, but now I'm getting bored of
questions asking "how do I send key presses to another program?" and the
lack of any intellectual discussion. I guess different newsgroups have
different purposes...

> Yeah...I only got MP7 because I went to this site about movies and it
> insisted on MP7 to have a look at the movies trailers...and once you
install
> it, it has this annoying auto-update thingy...I think it's a bit of a step
> backwards from previous Media Players but then, it's a new philosophy
> they're adopting with it so these (I hope) are just "teething troubles"
> while they work out what should go where and stuff...

If this were Media Player 1 then the teething troubles would be acceptable.
Alright, maybe it's some new media access software they happened to call
Media Player 7. For that matter, what happened to Media Players 2-5,
assuming that Media Player 1 is the good ol' Media Player from the
Accessories group in Program Manager?


Tim Robinson

unread,
Feb 23, 2001, 6:01:11 PM2/23/01
to
"Beth" <BethS...@hotmail.com> wrote in message
news:Zwzl6.17868$5n4.3...@news6-win.server.ntlworld.com...

> Marv wrote:
> > I wonder if Beth looks anything like the TV presenter Ann Robinson. :)
>
> You are the weakest link. Goodbye.

This has to be put into my Exception dialog box!

mount, statistically you are the weakest link. When executing at 40001034,
you caused a page fault. Goodbye.


Beth

unread,
Feb 23, 2001, 7:40:00 PM2/23/01
to
Tim Robinson wrote:

> Beth wrote:
> > Marv wrote:
> > > I wonder if Beth looks anything like the TV presenter Ann Robinson.
:)
> >
> > You are the weakest link. Goodbye.
>
> This has to be put into my Exception dialog box!
>
> mount, statistically you are the weakest link. When executing at 40001034,
> you caused a page fault. Goodbye.

Satistically, Tim is the weakest link, answering all his questions
incorrectly...whereas, Marv is the strongest link and banked the most
money...but how will the voting go?

[ btw, let's end this little pointless thread, yes? The "fifth rule of
comedy" is to know when to put a joke to bed ;)

(and, yes, there are no actual "rules of comedy", that is a joke in itself,
just to clarify that for the people who don't appreciate my silly sense of
humour ;) ]

Beth :)


Beth

unread,
Feb 23, 2001, 7:34:43 PM2/23/01
to
Tim Robinson wrote:
> Beth wrote:
> > This is about good interfaces...I think it applies to the Windoze guys
> > too, yes?
>
> You'd have thought so: originally I was just going to post to
> c.o.m-w.p.win32 (I mentioned the use of GlobalAlloc vs. malloc there a few
> weeks ago), but, so far, the only contributors to this thread have been
the
> a.o.d regulars.

Yeah; I noticed that but then as the thread has moved to "talk about Beth"
elsewhere, they probably either have better things to do than join that
thread and feel left out of this...

> > Anyway, as the majority of people are right-handed then this is the

[snip]


> > the whims of the majority...sorry...I wish there was a way to fix this
but
> > no-one's come up with it yet...
>
> What if we took the "swap mouse buttons" concept further, and actually
> extended it to swapping the interface over? A lot of left-handed people I
> know don't bother swapping mouse buttons, and if I use the mouse in my
left
> hand, it feels just as natural. Maybe swapping the interface round (like
on
> Arabic systems) would be too "politically correct".

No; I don't know...I think it's a bit awful that the Japanese have had to
write horizontally (although, they don't appear to consider reading-order
are sacredly as other cultures)...actually, I was chatting with a friend who
knows about history and I mentioned reading order to them and they mentioned
that the ancient Greeks used a bi-directional method...like, read
left-to-right then go down a line and read right-to-left, go down a line,
read left-to-right...so, that it flowed like a river down the page...that
sounds cool and quite logical to me...though, I hasten to add, I don't want
to change English...just it's such an interesting idea, yeah?

> > Inside the more logical arenas of language and computers, these

[snip]


> > generally inconsistent, anyway, without additional problems being thrown
> > into the bargain ;)...
>
> FWIW, I imagine memory as a giant pile of addresses, usually either pages
or
> dwords, with 0 on the floor and the top of the address space at the top of
> the pile. I guess it's just down to what's familiar to you.

Well, there's an inconsistency for you already...most diagrams have the
lower address higher up the page, so that 0 would be on the ceiling by those
diagrams...but, as I say, it's all logical...we just use some sort of visual
idea like this so that we can think about it, yeah? Maybe we should ask
Mr.Hendrix about his opinions on this...he's got everything else in his
theory...there must be something about why humans have evolved to think
mostly visually and "sonically" (hmm.."audioally" sounds so wrong...what is
the right word here?)...bet it has something to do with energy moderation,
yeah? (this is a "cross-NG" comment, sorry if it confuses anyone else but
Tim knows what I mean, hopefully ;)...

> > The vertical is easier for humans to scan...no real reason for
this...it's

[snip]


> > instead...
>
> Which direction is it easiest for moving your eyes? I remember that you
have
> more muscles at the [sides/top] than the [top/sides], I just can't
remember
> this. A quick survey (of 1) indicates that horizontal movement is easier,
> hence it's easier to look at stuff horizontally. But then I'm not
Japanese.

Yeah...something like that...I actually think it's easier to move the eyes
horizontally but vision "reacts" more to the vertical (something like
that...I didn't come up with stuff...I just read it and there was a good
reason for the whole affair but it escapes me..and the fly thing is
definitely right, I had a go with an unsuspecting fly once or twice
;)...possibly, this is the root of why one direction is biased, as a
compensation...again, this is more suited to be addressed to Mr.Hendrix and
"his" NG (well, he doesn't half spam that NG, does he? If they think I'm bad
in here, they really live a sheltered life NG-wise...he has his own wild
theories like me but I don't take ever take over a NG to "force" them down
people's throats, do I? I mention them and welcome feedback...by the way,
Tim, what's your opinion of my bizarre "clustering" / sexual reproduction
idea? Is no-one commenting on it because of the NG's slow turn around - it
takes days for the moderator to react, doesn't it? - or because I'm being so
"newbie" in there that they are sympathetically ignoring me for being so
majorly stupid ;)...

> > > But I'll save all of that for another post in AOD sometime.
> >
> > Okie dokie...I'll read it over there...but it seems a shame that the
> > Windoze guys can't get to hear it...although, they have the
"address"...lol ;)
>
> They probably wouldn't understand. No offence intended to them, and there
> are some clever people in the Windows groups, but a.o.d seems far more
> knowledgeable than they are. Whe I first subscribed there it was mildly
> entertaining fixing newbies' problems, but now I'm getting bored of
> questions asking "how do I send key presses to another program?" and the
> lack of any intellectual discussion. I guess different newsgroups have
> different purposes...

Knowledge is a funny thing...yeah, they'll not know anything on these
topics, maybe, but then if the conversation turns to, I don't know, using
Word then they can run rings around you, knowing all those shortcut keys
like the back of their hand...

One man's irrelevence is another man's life's work...we, basically, all have
knowledge but, for some, there specialised subject is BIOS internals,
someone else was what was on the BBC last Saturday (because that's what they
did)...objectively, they both took in roughly the same amount of information
into their senses and roughly did the same amount of processing on this
input...the knowledge is, therefore, roughly the same...the difference comes
when you need to apply the knowledge...knowing BIOS internals has scope for
future use, watching TV on the Saturday would, at best, facilitate a
conversation down the pub about that "monkey documentary" or whatever ;)

> > Yeah...I only got MP7 because I went to this site about movies and it

[snip]


> > they're adopting with it so these (I hope) are just "teething troubles"
> > while they work out what should go where and stuff...
>
> If this were Media Player 1 then the teething troubles would be
acceptable.
> Alright, maybe it's some new media access software they happened to call
> Media Player 7. For that matter, what happened to Media Players 2-5,
> assuming that Media Player 1 is the good ol' Media Player from the
> Accessories group in Program Manager?

Yeah...it basically _is_ Media Player 1, to an extent, because they've
changed the whole philosophy to make it like some sort of internet-enabled
hi-fi rather than the "tape recorder with pictures" of the previous
incarnations...that's what I meant with "teething troubles" because,
basically, it is a new product and new philosophy...it's just that they
decided to make it part of the "Media Player" range, because it's a media
player, after all...lol ;)

Beth :)


Beth

unread,
Feb 23, 2001, 7:07:14 PM2/23/01
to
Tim Robinson wrote:
> Beth wrote:
> > > And why would I want
> > > quick access to a directory of Pictures? (that's enough from you, Beth
> ;) )
>
> > [ I promise to be somewhat "concise", Tim...but, as you guessed, I
cannot
> > be totally silent on this matter ;) ]
>
> Haha... Sorry, I was talking on a much lower level: the tone of this
> sentence was supposed to be "surly and Northern". How can I put this
> tactfully enough for a Usenet post... previously you showed appreciation
for
> a typically British sense of humour. Just after I wrote that sentence it
> occurred to me that these pictures could be of a certain kind...

Oh...I get what you mean now...sorry, that was quite funny...lol ;)

[snip]


> If you're talking about computer software emulating real-world devices,
then
> that's different. The appearance of a computer application looks (such as
a
> word processor, for instance) is a lot less restricted than that of a
> real-world interface (such as a bit of paper and a pen). So designers
should
> not feel that they ought to emulate real-world interfaces just because
> people are familiar with them. See
http://www.iarchitect.com/readplease.htm
> in the "Interface Hall of Shame", recommended by Marv.

I have seen the "Hall of Shame"...some of my comments in the long post about
interfaces were inspired by stuff in that "Hall"...please note that I put
"(for good or for ill)" in my post...i.e. that's what these interface
designers are trying for...I didn't say or mean to imply that I agree with
this idea...it has some merit but you can take metaphors too far...after
all, if it's totally identical to the real-world device then you lose a lot
of the extra stuff a computer can bring and, in some cases, you would have
to question why put it onto a computer anyway? If it's exactly like the
"real thing", then why not just go buy and use the "real thing"...

[snip]


> > I have no idea why _you_ would want to access a directory of
> > pictures...that's your perogative...but other people want to access a

[snip]


> > For certain things, I'd actually agree with you but, generally, it has

> > its uses so dismissing it out of hand is not a valid thing to do...


>
> OK, so I was just being cynical. I, a developer, has different priorities
to
> your average user. It occurred to me last night that a set of folders
> containing pictures, combined with a digital camera, constitutes a virtual
> photo album.

Fair enough...like I say, sometimes that cynical point of view has merits,
sometimes not...but I now see that the comments were partially flippant and
shouldn't be analysed too deeply :)

> > Anyway, do this:
> >
> > Right-click on the folder, choose "view" then choose "details"...there
you
> > are...it looks like DOS now...happy hunting for those files ;)
>
> <g> Nice...
> Personally, I like the "list" mode, with full file extensions, hidden
files,
> DLLs, and DLLs with their own icons displayed (so it makes it easier when
> I'm trying to nick somebody else's icon for a project). But then I'd
> probably be just as happy scanning through raw NTFS FILE structures...*
>
> [* this is an exaggeration]

lol...yeah...I have full file extensions and no hidden/system file hiding as
default...I don't think, as a developer, you could really last that long
without changing these two defaults...you've got to be able to fiddle with
file extensions (and be able to read them, some file types have the same
icon but are actually a different file extension) and see all your files...

But, I confess, I'm actually ok with the big icons and the webpage
style...if I need "details", I switch to it but I use the big icons
too...well, I've used Macs, STs and Amigas before and not just DOS...both
are second nature...if the GUI would just be too awkward, then I open a DOS
prompt and use that...but both have their uses at times, no? And, anyway, if
I'm creating graphics or audio for something I'm doing then, quite frankly,
more power to the GUI...programming, though, is best served completely at
the keyboard :)

Beth :)


notten

unread,
Feb 24, 2001, 9:24:38 AM2/24/01
to
Microsoft didn't implement true multitasking in windows until windows 95
because before that windows was just a shell. They didn't think they needed
to have true multitasking. Soon they discovered that they did. Remember
though
that win32 is just pmode dos with a gui and a set of dlls. Only NT is it's
own
operating system, and even that uses an emulated dos box. Either way, you
mentioned windows 1.0 and I remembered I have a copy of it. Heh, and DOS
3. Even if MS didn't make the original windows (the shell) true multitasking
there
were some DOS "enhancers" or "caps" that would make dos multitask.

notten

"Tim Robinson" <timothy....@ic.ac.invalid> wrote in message
news:96v4kt$blm$1...@newsg1.svr.pol.co.uk...
> Here's an interesting point...
>
> I was reading the c.o.m-w.p.win32 FAQ yesterday, and it got me thinking
> about Windows 1.0 and co-operative multitasking invoked through
GetMessage.
> It occurred to me: why didn't Microsoft write Windows such that it could
> pre-emptively multitask through the timer interrupt?
>
> I can't think of any reason why they couldn't have switched tasks on every
> timer tick, instead of relying on applications to switch cooperatively.
> Pre-emptive multitasking was fully introduced with Win32, although Windows
> 3.0 could do so with DOS boxes in 386 Enhanced mode. I don't see the
> correlation between protection and/or 32-bit code and pre-emptive
> multitasking.
>
> Any ideas?
>
>


SkunkyCat

unread,
Feb 25, 2001, 9:04:20 AM2/25/01
to
"notten" <not...@crosswinds.net> wrote in message

> Microsoft didn't implement true multitasking in windows until windows 95
> because before that windows was just a shell. They didn't think they
needed
> to have true multitasking. Soon they discovered that they did. Remember
> though
> that win32 is just pmode dos with a gui and a set of dlls.

Win32 also uses the flat memory model allowing 4Gb address space;
protected mode dos only allows the 1Mb and is still segmented. Also,
dos protected mode just supports ring3 unlike Win32 where you have
Supervisor ring 0 and User ring 3. Also, each dos program runs in its
own VM, unlike Win32 where all processes run in the same VM.
Rod

Scott Moore

unread,
May 10, 2001, 4:55:51 PM5/10/01
to
There was none. They were lazy fucks. There were a lot of kludges in Windows
just to cover the fact it could not preempt. The windows callback handler is the
main one, X Windows didn't have it because they didn't need it.

BTW there are a lot of leftover operating systems and programs that are
cooperative because the authors were afraid of multitasking, and once
you go cooperative, it is diffucult or impossible to switch to preemptive.
There tend to be assumptions everywhere about not needing to do mutual
access exclusions that break horribly when you try to switch.

Paul Hsieh

unread,
May 10, 2001, 5:29:38 PM5/10/01
to
In article <3AFB0057...@cisco.com>, sam...@cisco.com says...

> There was none. They were lazy fucks.

Now, now ... they weren't lazy ... they were *incompetent*. Remember
that Bill Gates did *demonstrate* some kind of smoke and mirrors
multitasking in Windows before it ever had such capability. So if it was
something that they were capable of, I'm sure they would have done it.

I think the right answer was that they didn't know who to copy it from --
UNIX was too big and complicated to copy, MacOS didn't have it, Amiga was
too exotic (was the multitasking handled by the graphics chip?!?! -- ;) )
etc. They didn't have a proper system to clone from so they didn't do
it.

Then IBM offered to teach the Microsoft guys how to do it with OS/2, and
Bill Gates pulled the swindle of the century by using their cooperation
as basically a test environment for how to do pre-emption correctly.
Somewhere along the way they also picked up a lot of VMS engineers to
work on Windows NT, so somewhere in there they picked up the expertise on
how to do this.

> [...] There were a lot of kludges in Windows just to cover the fact it
> could not preempt.

Well, my understanding is that this was just ripped off from Mac OS.
(Remember that Microsoft did work with Apple in the early days.)

> [...] The windows callback handler is the


> main one, X Windows didn't have it because they didn't need it.
>
> BTW there are a lot of leftover operating systems and programs that are
> cooperative because the authors were afraid of multitasking, and once
> you go cooperative, it is diffucult or impossible to switch to preemptive.

It depends on how you do it. The callback nonsense is totally the wrong
way to do it of course. The way that many RTOS's such as VxWorks works
however, pre-emption is actually just a logical extension of the API
(which otherwise contains a proper subset which can be implemented as
purely cooperative.)

--
Paul Hsieh
http://www.pobox.com/~qed/os.html

Kenneth Brody

unread,
May 10, 2001, 5:50:00 PM5/10/01
to
Paul Hsieh wrote:
>
> In article <3AFB0057...@cisco.com>, sam...@cisco.com says...
> > There was none. They were lazy fucks.
>
> Now, now ... they weren't lazy ... they were *incompetent*. Remember
> that Bill Gates did *demonstrate* some kind of smoke and mirrors
> multitasking in Windows before it ever had such capability. So if it was
> something that they were capable of, I'm sure they would have done it.
[...]

Well, don't forget that non-preemptive multitasking also means not having
to worry about reentrancy problems.

At least they did correct one problem (well, not a problem, but a strange
"paradigm") that was in the 1.0 alpha/beta versions. You know how you
have a main loop with GetMessage()/DispatchMessage() to handle messages?
Well, in the early test versions, the WinMain() function actually had to
_return_, and only then did your event handler magically get called by
Windows. (Yes, there really isn't much difference functionally, but it
just felt too weird to return from main before you wanted your program
to exit.)

--

+---------+----------------------------------+-----------------------------+
| Kenneth | kenb...@bestweb.net | "The opinions expressed |
| J. | | herein are not necessarily |
| Brody | http://www.bestweb.net/~kenbrody | those of fP Technologies." |
+---------+----------------------------------+-----------------------------+
GCS (ver 3.12) d- s+++: a C++$(+++) ULAVHSC^++++$ P+>+++ L+(++) E-(---)
W++ N+ o+ K(---) w@ M@ V- PS++(+) PE@ Y+ PGP-(+) t+ R@ tv+() b+
DI+(++++) D---() G e* h---- r+++ y?

Tim Robinson

unread,
May 10, 2001, 5:49:55 PM5/10/01
to
"Kenneth Brody" <kenb...@bestweb.net> wrote in message
news:3AFB0BD4...@bestweb.net...

> At least they did correct one problem (well, not a problem, but a strange
> "paradigm") that was in the 1.0 alpha/beta versions. You know how you
> have a main loop with GetMessage()/DispatchMessage() to handle messages?
> Well, in the early test versions, the WinMain() function actually had to
> _return_, and only then did your event handler magically get called by
> Windows. (Yes, there really isn't much difference functionally, but it
> just felt too weird to return from main before you wanted your program
> to exit.)

Really? So a Windows 1.0 program might look like:

int WinMain(...)
{
RegisterClass
CreateWindow
return 0;
}


Kenneth Brody

unread,
May 10, 2001, 6:47:20 PM5/10/01
to

Not the 1.0 release version, but the pre-release alpha/beta copies.

Actually, looking at the 28-June-1984 "update", I see that I was mistaken.

There is no WinMain.

The *.def file defines an INITPROC definition, which is the name of a function
that initializes global variables, etc., and includes:

RegisterClass(...)
CreateWindow(...)
return TRUE

The structure to RegisterClass() included pointers to the different
message handlers, rather than a single handler with a switch/case.
And the sample passes the routines as an LPSTR containing the export
name, rather than a pointer to the function itself:

pTemplateClass->hClsModule = hModule;
pTemplateClass->clsWndCreate = (LPSTR)"TemplateCreate";
pTemplateClass->clsWndDestroy = (LPSTR)"TemplateDestroy";
pTemplateClass->clsWndIcon = (LPSTR)"TemplateIcon";
pTemplateClass->clsWndPaint = (LPSTR)"TemplatePaint";
pTemplateClass->clsWndSize = (LPSTR)"TemplateSize";
pTemplateClass->clsWndScroll = (LPSTR)"TemplateScroll";
pTemplateClass->clsWndInput = (LPSTR)"TemplateInput";
pTemplateClass->clsWndFocus = (LPSTR)"TemplateFocus";
pTemplateClass->clsWndData = (LPSTR)"TemplateData";


By the 1-May-1985 update, they had switched to the current WinMain with
a GetMessage/TranslateMessage/DispatchMessage loop.

Scott Moore

unread,
May 10, 2001, 7:46:43 PM5/10/01
to
On more than one occasion in my long programming carreer, a new project
was started where the chief genuis programmer decided that they would go
with a polling driven system, perhaps letting the hardware guys stick a few
interrupt routines (as long as they wrote them). I, being the ever present
malcontent, would point out that the system would break down more and more
as time went on unless we went true multitasking NOW.
As time went on, and the project became more and more of an unworkable
mess, and the genuis programmer left for that new job, someone would
remember that good ole' Moore had something to say on the matter, and
certainly had earned a chance to do something about it, on account of being
basically right and all.

"Say, Sammy. Can you fix this ? We need it in one, maybe two months
with minimum code changes....."

Paul Hsieh wrote:

> In article <3AFB0057...@cisco.com>, sam...@cisco.com says...
> > There was none. They were lazy fucks.
>
> Now, now ... they weren't lazy ... they were *incompetent*. Remember
> that Bill Gates did *demonstrate* some kind of smoke and mirrors
> multitasking in Windows before it ever had such capability. So if it was
> something that they were capable of, I'm sure they would have done it.
>

Topview (IBM) was supposed to be multitasking, although I don't
recall the details. DOS was very throughly alergic to multitasking right down
to the BIOS, and Windows ran as an add on to that for quite a long time.

Maxim S. Shatskih

unread,
May 10, 2001, 7:03:44 PM5/10/01
to
> > It occurred to me: why didn't Microsoft write Windows such that it could
> > pre-emptively multitask through the timer interrupt?

The answer is obvious:
- to avoid guarding _all_ Windows API calls by mutexes, to avoid sprinkling
mutexes in USER and GDI.

Once I wrote the pthreads-like "cooperative threads" for Win16. We had the
idea to make it preemptive using the timer interrupt, but failed - this
would require having a mutex held across any Windows API call.

Funny, but the muzdie Windows (95/98/Me) went exactly this way - they hold a
mutex across nearly any Win32 API call - there are 2 such mutexes -
_Krn32Lock and _Win16Lock.
These fscking OSes do hold a _global mutex in the user mode_ while sending
CreateFile to the kernel, which prevents anybody from writing a user-mode
filesystem.

The only thing for which MS can be blamed is _not terminating this puny OS
breed in, say 98 or even 97 when the average desktop memory size became OK
for NT_. Let's hope WinMe will be the last.

After all - this is nearly how the Linux kernel works :-) They also had 1
large spinlock for the whole kernel. :-)))

Max


Maxim S. Shatskih

unread,
May 10, 2001, 7:06:25 PM5/10/01
to
> There was none. They were lazy fucks. There were a lot of kludges in
Windows
> just to cover the fact it could not preempt. The windows callback handler
is the
> main one, X Windows didn't have it because they didn't need it.

Really? The toolkits built on top of X use exactly these callbacks (in the
form of OO C++ virtual method calls sometimes).
It is _impossible_ to write a windowing GUI without them.

And let's stop on X11 - this is really a _much worse designed_ thing than
MS's GDI.
The latter is one of the greatest MS's designs. GDI is just plain good.

> BTW there are a lot of leftover operating systems and programs that are
> cooperative because the authors were afraid of multitasking,

Of _locking_, not of multitasking.

> There tend to be assumptions everywhere about not needing to do mutual
> access exclusions

This is very true.

Max


Maxim S. Shatskih

unread,
May 10, 2001, 7:14:31 PM5/10/01
to
> Then IBM offered to teach the Microsoft guys how to do it with OS/2, and

Sheer nonsense. OS/2 was designed by MS (for instance, HPFS was designed and
implemented by some MS employee _alone_). IBM was no more than a customer.

In late 80ies, MS acquired the NT team (who started work in ~89) and also
had Windows/386.
NT was first supposed to be _OS/2 NT_ (the next 32bit OS/2 with SMP
support+security and portable), not _Windows NT_.
In 1990 Gates decided that he needs IBM no more and dropped OS/2 in favour
of NT and Windows 3.0. At this moment, NT was switched to be Windows NT and
the work of porting the Windows GDI to 32bit flat preemptive environment
started to provide the basis of Win32 API.

NT's GDI shares no code base with the Win16 GDI. It is rewritten from
scratch. For instance, the device driver interface is 100% new.
Not so with USER - NT's USER was carefully ported from Win3.x USER.

This demonstrates the fact of good GDI design and ugly USER design - the
second design could not withstand rewriting from scratch, which the first
one could.

> It depends on how you do it. The callback nonsense is totally the wrong
> way to do it of course.

If you mean MakeProcInstance - then yes, it is idiocy.
If you mean the WNDPROC - then it is _impossible_ to implement the windowing
GUI without a kind of it - though possibly lots of routines instead of one.

Max


Scott Moore

unread,
May 11, 2001, 12:11:34 AM5/11/01
to

"Maxim S. Shatskih" wrote:

> If you mean MakeProcInstance - then yes, it is idiocy.
> If you mean the WNDPROC - then it is _impossible_ to implement the windowing
> GUI without a kind of it - though possibly lots of routines instead of one.
>
> Max

X Windows, the Mac, these use an event loop in the main procedure. My theory on
that is it made sense only in respect to cooperative multitasking. If your main procedure
was embarked on doing various odd jobs, say waiting on a file read, the windows
procedure was a way for the OS to get it to move its ass without having to abort its
pending operation. X Windows doesn't need it, because multitasking allows you to
invoke threads if you know you are going to block. More curiously, the Mac does
not use it either (even though earlier in this thread the claim was made that Windows
copied the Mac). The reason why is simple. You can make non-blocking versions
of the support calls, and if you block and screw your window, well, fuck a duck.
Interstingly, the ability of Windows to directly call a blocking procedure has not made
a damm bit of difference in everyday use. Programs still lose control of their "face",
even in preemptive Win32.

--
"I'd like to see cpp abolished" - Bjarne Stroustrup


Scott Moore

unread,
May 11, 2001, 12:19:00 AM5/11/01
to
"Maxim S. Shatskih" wrote:

> > There was none. They were lazy fucks. There were a lot of kludges in
> Windows
> > just to cover the fact it could not preempt. The windows callback handler
> is the
> > main one, X Windows didn't have it because they didn't need it.
>
> Really? The toolkits built on top of X use exactly these callbacks (in the
> form of OO C++ virtual method calls sometimes).
> It is _impossible_ to write a windowing GUI without them.
>

Again, no. Just because object tool kits use that method does not make
it NESSARY. There are plenty of examples of X programs that don't
use callbacks.

>
> And let's stop on X11 - this is really a _much worse designed_ thing than
> MS's GDI.
> The latter is one of the greatest MS's designs. GDI is just plain good.
>

Weeeelllll, I never liked the callback model, so I don't use it under Windows !
Thats right, I don't participate. I write lots of windowing programs under
Windows 32 bit that don't ever see a callback. No, I don't expect that you
believe me.

>
> > BTW there are a lot of leftover operating systems and programs that are
> > cooperative because the authors were afraid of multitasking,
>
> Of _locking_, not of multitasking.

Thats a true statement. I am in to monitors largely because of bad burns
from locking hell. Also monitors can be implemented under windows,
because windows provides the primitives monitors need.

>
>
> > There tend to be assumptions everywhere about not needing to do mutual
> > access exclusions
>
> This is very true.
>
> Max

--

Tim Robinson

unread,
May 11, 2001, 6:16:33 AM5/11/01
to
"Scott Moore" <sam...@cisco.com> wrote in message
news:3AFB6834...@cisco.com...

> Weeeelllll, I never liked the callback model, so I don't use it under
Windows !
> Thats right, I don't participate. I write lots of windowing programs under
> Windows 32 bit that don't ever see a callback. No, I don't expect that you
> believe me.

What, so you don't even use a WindowProc?


Rick C. Hodgin

unread,
May 11, 2001, 9:38:17 AM5/11/01
to
Anyone who thinks pre-emptive multi-tasking is not needed in modern
operating systems is a fool. It is the *ONLY* way to get a truly
liquid system where everything works correctly and smoothly and where
the user interface is truly responsive to input.

As many people have pointed out, failing to incorporate a pre-emptive
model mandates kludges at various stages in development.

Cooperative multi-tasking systems are a poor design (for general use,
for specialized use they may be the best design, but for a GP
operating system it is an absolute must).

- Rick C. Hodgin

Maxim S. Shatskih

unread,
May 11, 2001, 12:52:39 PM5/11/01
to
Threads in UNIX are much later thing than X, in fact, I will not be
surprised if NT's threads (real kernel-supported ones) predate UNIX threads
(which are usually funny user-mode fake threads) :-)
At least OS/2 threads (late 80ies) predate the UNIX ones for sure.

> copied the Mac). The reason why is simple. You can make non-blocking
versions
> of the support calls, and if you block and screw your window, well, fuck a
duck.

NT has all of these nonblocking calls. But IIRC they are not implemented in
puny Windows.

>Programs still lose control of their "face", even in preemptive Win32.

This is due to app's problems, not Win32 ones. It is possible to write such
an app in X too.

Max


Maxim S. Shatskih

unread,
May 11, 2001, 12:53:51 PM5/11/01
to
> > Of _locking_, not of multitasking.
>
> Thats a true statement. I am in to monitors largely because of bad burns
> from locking hell. Also monitors can be implemented under windows,
> because windows provides the primitives monitors need.

What is monitors? Kind of mutexes?

Max


Maxim S. Shatskih

unread,
May 11, 2001, 12:55:59 PM5/11/01
to
> > Thats right, I don't participate. I write lots of windowing programs
under
> > Windows 32 bit that don't ever see a callback. No, I don't expect that
you
> > believe me.
>
> What, so you don't even use a WindowProc?

This is possible, at least theoretically.

Write your own DispatchMessage and never call the system-supplied one.
BTW - USER's message queue is a Good Thing, its uses go far beyound the
scope of the GUI events - for instance, COM's LRPC uses as a general purpose
IPC.

In fact - USER's message queue IS an IPC, you can consider each thread to
has its intrinsic message queue.

Max


Scott Moore

unread,
May 11, 2001, 3:48:41 PM5/11/01
to
The technique is simple enough to describe here. I port applications between
X windows, Windows and the Mac (I call it UniWinMac programming). X
and Mac use the model where main runs an event loop, getting messages and
working on them right then and there. The system leaves it up to you to decide
if you need to start a thread to handle something complex, ie., so that the
mainline code can stay responsive to the user interface.

This model is not very far from Windows, so I converted Windows to meet
it (instead of the other way round). Windows has a message loop in the
main, but since they bypass it for the windows proc, they avocate you send
all messages received there to the proc.

So instead, I have a short peice of code, in assembly, in the winproc, that sends
all its messages BACK to the main queue. Then in the main message loop, I
can handle messages just as X or Mac does. There was a slight trick to this.
There are some messages that windows gets very upset if it does not see
back at default handling after it sends them to the winproc. Fortunately,
these messages are the ones that the OS basically needs itself, and only sends
you to give you a chance to see them. Pretty much everything I have actually
needed to see in messages, repaint, timers, etc, etc. the OS does not care
when you do them or if you answer back with them.

My theory is it works because with preemptive multitasking and individual
process message queues, the rigid relationship between when messages are
sent to the application and when they are processed (and perhaps aknowleged)
is no longer as important as it was in the 16 bit days. I don't know, and I am
not going to find out. I am alergic to segments, and never touched the stuff.

Tim Robinson wrote:

--

Scott Moore

unread,
May 11, 2001, 3:50:22 PM5/11/01
to

"Maxim S. Shatskih" wrote:

Monitors are a way of structuring mutually excluded sections so that
locking problems are eliminated by design. See the literature for more.

Jeremy

unread,
May 11, 2001, 6:48:42 PM5/11/01
to
Scott Moore wrote:
> Weeeelllll, I never liked the callback model, so I don't use it under Windows !
> Thats right, I don't participate. I write lots of windowing programs under
> Windows 32 bit that don't ever see a callback.
So how do you display anything on screen? Don't you feel tempted to
create a window or two now and then.

Jeremy

unread,
May 11, 2001, 6:52:39 PM5/11/01
to
Which windows are you talking about? 2.0 <G>?

Maxim S. Shatskih

unread,
May 11, 2001, 7:38:33 PM5/11/01
to

You misunderstood, Scott mentioned the Windows programming style which does
not use WNDPROC and handles all messages just in the message loop.

Max


Kovacs Viktor Peter

unread,
May 11, 2001, 8:22:35 PM5/11/01
to
[On Thu, 10 May 2001, Paul Hsieh wrote:]

> In article <3AFB0057...@cisco.com>, sam...@cisco.com says...
> > There was none. They were lazy fucks.
> Now, now ... they weren't lazy ... they were *incompetent*. Remember
> that Bill Gates did *demonstrate* some kind of smoke and mirrors
> multitasking in Windows before it ever had such capability. So if it was
> something that they were capable of, I'm sure they would have done it.

Just put a doevents() call into every thight loop... this worked fine
with visual basic 1.0 on windows 2.0... :-)

[...]


> > [...] The windows callback handler is the
> > main one, X Windows didn't have it because they didn't need it.
> > BTW there are a lot of leftover operating systems and programs that are
> > cooperative because the authors were afraid of multitasking, and once
> > you go cooperative, it is diffucult or impossible to switch to preemptive.
> It depends on how you do it. The callback nonsense is totally the wrong
> way to do it of course. The way that many RTOS's such as VxWorks works
> however, pre-emption is actually just a logical extension of the API
> (which otherwise contains a proper subset which can be implemented as
> purely cooperative.)

This message handling method is used by borland too, but it can
be turned into preemptive simply, but ms has some huge memory
management problems in win3.1. Windows was never designed to
allow address spaces larger than 64Kb... (the win9.x gdi still
has some 16 bit limits in it, also it has a shared gdi object pool)

Viktor


Kovacs Viktor Peter

unread,
May 11, 2001, 8:50:09 PM5/11/01
to
[On Fri, 11 May 2001, Maxim S. Shatskih wrote:]

> > > Thats right, I don't participate. I write lots of windowing programs
> > > under
> > > Windows 32 bit that don't ever see a callback. No, I don't expect that
> > > you believe me.
> > What, so you don't even use a WindowProc?
> This is possible, at least theoretically.
> Write your own DispatchMessage and never call the system-supplied one.
> BTW - USER's message queue is a Good Thing, its uses go far beyound the
> scope of the GUI events - for instance, COM's LRPC uses as a general purpose
> IPC.

Yes, I am using this method for thread synchonization... The message
carries a pointer to the message data. This is why m$ added message
only windows (no gui part) and made the message queue a per thread
resource.

> In fact - USER's message queue IS an IPC, you can consider each thread to
> has its intrinsic message queue.

This is used by com, mfc and the ip stack too. (this is why m$ had to
switch the base number of the unused message numbers from wm_user to
wm_app)

Viktor


Maxim S. Shatskih

unread,
May 12, 2001, 10:31:02 AM5/12/01
to
> allow address spaces larger than 64Kb... (the win9.x gdi still
> has some 16 bit limits in it, also it has a shared gdi object pool)

Yes, Win9x is notorios in having this old-fashioned "system resources" limit
going from the dark ages of Win16.
No such limit in NT where GDI and USER objects are allocated from usual
kernel paged pool.

Max


Maxim S. Shatskih

unread,
May 12, 2001, 10:34:34 AM5/12/01
to
> > In fact - USER's message queue IS an IPC, you can consider each thread
to
> > has its intrinsic message queue.
>
> This is used by com, mfc and the ip stack too. (this is why m$ had to
> switch the base number of the unused message numbers from wm_user to
> wm_app)

Kernel's IP stack does not use the USER message queue.
However, the user-mode WinSock library (where send() and connect() are
implemented) is capable of sending USER messages as a completion indication.
This is an extremely silly way which IMHO is intended for bad "Win16-only"
programmers who have vague notion of how such things must be implemented
correctly.

Max


Jerry Coffin

unread,
May 12, 2001, 8:04:09 PM5/12/01
to
In article <MPG.1564a81b2...@news.pacbell.net>,
DONT.q...@ME.pobox.com says...

> In article <3AFB0057...@cisco.com>, sam...@cisco.com says...
> > There was none. They were lazy fucks.
>
> Now, now ... they weren't lazy ... they were *incompetent*. Remember
> that Bill Gates did *demonstrate* some kind of smoke and mirrors
> multitasking in Windows before it ever had such capability. So if it was
> something that they were capable of, I'm sure they would have done it.

What a bunch of BS! It was neither laziness nor incompetence -- they
published a fair number of white papers at the time stating exactly
why they decided to do what they did. The simple reality was simple:
it was for performance, particularly to save memory. Keep in mind
that Windows 1.0 ran in real mode, so they had only 640K for DOS,
Windows and all the applications to run in. As it was, DOS and
Windows took up about 450K minimum, leaving less than 200K for all
the applications. Preemptive multitasking is a fine thing, but it's
not good for much if implementing it means using up all the memory so
you don't have any room left for processes to run in at all.

> I think the right answer was that they didn't know who to copy it from --
> UNIX was too big and complicated to copy, MacOS didn't have it, Amiga was
> too exotic (was the multitasking handled by the graphics chip?!?! -- ;) )
> etc. They didn't have a proper system to clone from so they didn't do
> it.

Still more BS. Since you've apparently forgotten (or perhaps never
knew) early versions of XENIX ran quite nicely in less memory than MS
targeted for Windows 1.0. XENIX was a port of UNIX, but MS did the
porting so they clearly had the source code and people who'd worked
with it. IOW, they had source code to copy as well as expertise so
they wouldn't have had to copy anyway.



> Then IBM offered to teach the Microsoft guys how to do it with OS/2, and
> Bill Gates pulled the swindle of the century by using their cooperation
> as basically a test environment for how to do pre-emption correctly.

Still more nonsense. As was (and still is by a few of us) well known
at the time, IBM's contribution was almost entirely in the
Presentation Manager (the windowing portion) while MS did nearly all
the work on the base operating system, which is (of course) where the
preemptive multitasking takes place.

There is, however, a big difference to keep in mind here: Windows was
seen as a windowing add-on for an existing OS. It added the bare
minimum of OS features such as multitasking necessary for it to do
its job. OS/2 was designed as a new OS to replace DOS, so it it had
all the capabilities DOS was missing.

Keep in mind as well that at that time, nobody had invented the
architecture necessary for preemptive multitasking to accomplish much
for windowed applications. Under OS/2, if a particular application
fails to retrieve its message(s) from the (one global) message queue,
that blocks all other windowed applications from doing much. The
preemptive multitasking allows the other windowed applications to
receive CPU time, but the blocked message queue prevents most from
doing anything useful with it -- most will be blocked waiting for
messages.

IOW, for most practical purposes, the multitasking of windowed
applications was cooperative anyway. Also keep in mind that this is
the area that really WAS designed largely by IBM, but they had little
to contribute to the architecture; even though it was running on an
OS that did preemptive multitasking, they couldn't figure out a way
to make any real use of that so Windowed applications weren't
essentially cooperative in any case.

It was only later that MS devised the system used in Win32: you have
a single global message queue, but each application also has its own
individual message queue. The _system_, rather than any application,
is responsible for moving messages from the global message queue to
the application message queues. TTBOMK, this design was 100%
original with MS -- it cured a problem a LOT of people had wrestled
with for years, and MS was the absolute first to come up with a
satisfactory solution.

> > [...] There were a lot of kludges in Windows just to cover the fact it
> > could not preempt.
>
> Well, my understanding is that this was just ripped off from Mac OS.
> (Remember that Microsoft did work with Apple in the early days.)

If you actually compare the MacOS and Windows, you'll quickly find
that there's very _little_ real similarity. Both are clearly based
on the Xerox work, but to a large extent they're different "takes" on
it, and the similarity to Xerox's work in each case is greater than
to each other (I.e. the Xerox work is more or less in the middle,
with Apple and MS going opposite directions from it).

--
Later,
Jerry.

The Universe is a figment of its own imagination.

Alt

unread,
May 12, 2001, 4:42:07 PM5/12/01
to
>

Yea I have.Look, Winodws 1.0 (I used during few weeks it without any licence).
But the way I could buy here CD with ALL versions of WInodws untile late OSR/2.
(If you want I even can do it for you. :)

It was aimed for XT and even IMB PC machines.
There was only one timer, and of cource, no any memory protection.
Why there was no pre-emptive multitusking.
Becuase it was not requaired.
You might switch between the tasks.
Even Makintosh hasn't it.
And one more reasone agains pre-emptive multitusking.

Almost all applications was aimed for single task OS,
and it tended to get all processor.
Run few of such application at the XT machine ones,
and each of them will works such deadly slow.

Finally, some programs lowed to count timer clicks....
You know what I mean...

I think that Winodws 2.0 was the best version of Winodws.


> Tim Robinson wrote:
>
> > Here's an interesting point...
> >
> > I was reading the c.o.m-w.p.win32 FAQ yesterday, and it got me thinking
> > about Windows 1.0 and co-operative multitasking invoked through GetMessage.


> > It occurred to me: why didn't Microsoft write Windows such that it could
> > pre-emptively multitask through the timer interrupt?
> >

> > I can't think of any reason why they couldn't have switched tasks on every
> > timer tick, instead of relying on applications to switch cooperatively.
> > Pre-emptive multitasking was fully introduced with Win32, although Windows
> > 3.0 could do so with DOS boxes in 386 Enhanced mode. I don't see the
> > correlation between protection and/or 32-bit code and pre-emptive
> > multitasking.
> >
> > Any ideas?

Yea.
I have.

Kovacs Viktor Peter

unread,
May 12, 2001, 10:41:56 PM5/12/01
to
[On Sat, 12 May 2001, Maxim S. Shatskih wrote:]

Yes, it was designed to provide nonblocking socket services for
single threaded win3.x programs. But it demonstrates a good way
to implement callback functions in simlpe way.

Viktor


Jeremy

unread,
May 16, 2001, 12:47:27 PM5/16/01
to
Ah. Well, that's hardly an elegant method. Plus, windows do have to have
*some* window function, even if it forwards everything down to the
default one.

>
> Max

Tim Robinson

unread,
May 16, 2001, 1:40:32 PM5/16/01
to
In message <3B02AF1F...@privacy.nu>, Jeremy wrote:
> Ah. Well, that's hardly an elegant method. Plus, windows do have to have
> *some* window function, even if it forwards everything down to the
> default one.

The point is, if you're going to program for a specific platform, you can at
least make an effort to use the common idioms on that platform. Currently, I'm
learning BeOS programming -- I'm not about to use a C compiler, make a function
called WinMain and write all the message loop code myself.

Jeremy

unread,
May 16, 2001, 3:56:04 PM5/16/01
to
Tim Robinson wrote:
>
> In message <3B02AF1F...@privacy.nu>, Jeremy wrote:
> > Ah. Well, that's hardly an elegant method. Plus, windows do have to have
> > *some* window function, even if it forwards everything down to the
> > default one.
>
> The point is, if you're going to program for a specific platform, you can at
> least make an effort to use the common idioms on that platform. Currently, I'm
> learning BeOS programming
Just out of curiosity: why?

> -- I'm not about to use a C compiler, make a function
> called WinMain and write all the message loop code myself.

I didn't get that <g>. Which compiler are you gonna use?

Tim Robinson

unread,
May 16, 2001, 3:54:05 PM5/16/01
to
"Jeremy" <jeremyk.r...@privacy.nu> wrote in message
news:3B02DB54...@privacy.nu...

> > The point is, if you're going to program for a specific platform, you
can at
> > least make an effort to use the common idioms on that platform.
Currently, I'm
> > learning BeOS programming
> Just out of curiosity: why?

I installed the free BeOS distribution, so I thought I'd try programming for
it. It's quite a nice system.

> > -- I'm not about to use a C compiler, make a function
> > called WinMain and write all the message loop code myself.
> I didn't get that <g>. Which compiler are you gonna use?

gcc. Most of the BeOS APIs use C++, and the programming model is
significantly different to Windows. See
http://www-classic.be.com/documentation/be_book/ for more.


Jim M

unread,
May 16, 2001, 4:24:26 PM5/16/01
to
On Wed, 16 May 2001 20:54:05 +0100, "Tim Robinson"
<timothy....@ic.ac.invalid> wrote:

>gcc. Most of the BeOS APIs use C++, and the programming model is
>significantly different to Windows. See
>http://www-classic.be.com/documentation/be_book/ for more.

The EPOC32 hand-held OS is C++ based too, which threw me at first as
didn't expect it.

Also, no static data in DLL's :-)

Sim City was ported which shocked me some-more...

Jimbo
--
@ Derbyshire

Tim Robinson

unread,
May 16, 2001, 4:31:37 PM5/16/01
to
"Jim M" <}Jimbo{@brit-cit.demon.co.uk> wrote in message
news:99o5gtss9516r8mfa...@4ax.com...

> The EPOC32 hand-held OS is C++ based too, which threw me at first as
> didn't expect it.

Really? EPOC16 was C, IIRC.

> Also, no static data in DLL's :-)

None at all? Or no static data exports?


Jeremy

unread,
May 16, 2001, 5:22:37 PM5/16/01
to
Tim Robinson wrote:
>
> "Jeremy" <jeremyk.r...@privacy.nu> wrote in message
> news:3B02DB54...@privacy.nu...
> > > The point is, if you're going to program for a specific platform, you
> can at
> > > least make an effort to use the common idioms on that platform.
> Currently, I'm
> > > learning BeOS programming
> > Just out of curiosity: why?
>
> I installed the free BeOS distribution, so I thought I'd try programming for
> it. It's quite a nice system.
What do you like about it?

> > > -- I'm not about to use a C compiler, make a function
> > > called WinMain and write all the message loop code myself.
> > I didn't get that <g>. Which compiler are you gonna use?
>
> gcc. Most of the BeOS APIs use C++,

Oh, you meant C vs C++, that's a different story.

> and the programming model is
> significantly different to Windows. See
> http://www-classic.be.com/documentation/be_book/ for more.

Yes. I'd looked at it in the past. I don't think they're doing well
commercially though and didn't want to invest the time--that's why I was
curious why you do it.

Tim Robinson

unread,
May 16, 2001, 5:27:29 PM5/16/01
to
"Jeremy" <jeremyk.r...@privacy.nu> wrote in message
news:3B02EF9D...@privacy.nu...

> > I installed the free BeOS distribution, so I thought I'd try programming
for
> > it. It's quite a nice system.
> What do you like about it?

It was written pretty much from the ground up, without being based on
anything (it's not a Unix clone); it's got a great user interface with
provision for a command prompt when you need it; it's semi-compatible with
Linux programs (it uses ELF, it has a Unix-like directory layout, and it
comes with a lot of GNU tools). It's a free 50MB download (the only
restrictions on the download are a total of 500MB BFS file system and a lack
of commercial software bundled with it). When you install it, it puts itself
in a large file on your Windows drive and you boot off a floppy (although it
is possible to install it to a spare partition). It recognizes most hardware
instantly (although it's slightly hard to come by drivers for hardware it
doesn't already support).

> > and the programming model is
> > significantly different to Windows. See
> > http://www-classic.be.com/documentation/be_book/ for more.
> Yes. I'd looked at it in the past. I don't think they're doing well
> commercially though and didn't want to invest the time--that's why I was
> curious why you do it.

Because the only investment I've made on the Personal Edition (the download)
is 500MB of disk space and a few minutes downloading the OS, the development
kit and various free programs. According to the readme, you're supposed to
say "I didn't know my computer could do that!" after installing BeOS. I was
sceptical of this, but pretty soon I was thinking that -- this is an
impressive OS.


Jim M

unread,
May 16, 2001, 5:37:28 PM5/16/01
to
On Wed, 16 May 2001 21:31:37 +0100, "Tim Robinson"
<timothy....@ic.ac.invalid> wrote:

>"Jim M" <}Jimbo{@brit-cit.demon.co.uk> wrote in message
>news:99o5gtss9516r8mfa...@4ax.com...
>> The EPOC32 hand-held OS is C++ based too, which threw me at first as
>> didn't expect it.
>
>Really? EPOC16 was C, IIRC.

Yep, correct.

>> Also, no static data in DLL's :-)
>
>None at all? Or no static data exports?

None at all (I think). Not got the sdk installed anymore, but I think
that's one constraint. Static data in exe is OK, but it means you
can't have a global in a dll.

Jimbo
--
@ Derbyshire

Chewy509

unread,
May 16, 2001, 6:55:12 PM5/16/01
to

> According to the readme, you're supposed to
> say "I didn't know my computer could do that!" after installing BeOS. I
was
> sceptical of this, but pretty soon I was thinking that -- this is an
> impressive OS.
>
I've tried it, and was impressed. All the hardware I have is supported,
(lucky me), and things ran beautifully. However, the one reason why I won't
use, it lack of commercial support. Sad though, it's a worthy OS...

Chewy509...


0 new messages