Hardware pointers and cursors.

Anything QL Software or Programming Related.
User avatar
mk79
QL Wafer Drive
Posts: 1349
Joined: Sun Feb 02, 2014 10:54 am
Location: Esslingen/Germany
Contact:

Re: Hardware pointers and cursors.

Post by mk79 »

Dave wrote:I've never used the PE for longer than it takes to disable it.
That makes it pretty pointless to talk about pointers with you, doesn't it?


User avatar
Dave
SandySuperQDave
Posts: 2765
Joined: Sat Jan 22, 2011 6:52 am
Location: Austin, TX
Contact:

Re: Hardware pointers and cursors.

Post by Dave »

Derek_Stewart wrote:Hi,

SMSQ/E can change the cursor to a 10x6 sprite, with the CURSPRLOAD command, does this change anything?

Would the system see the used defined sprite cursor as something different?

Quite an important question, lets say, that the P.E. is disabled and there is a new flashy game with software sprites, can this be handled OK.

What is "FB"?
The PE manufactures pointers out of software. It also manufactures icons, windows, etc. manually - ie. it does it the hard way. Sadly, without scalable, proportional and antialiased fonts, the PE is never going to look even remotely modern. But it actually looks worse than that. This is 80% imposed on it my the structure and methods used in QDOS, and 20% due to the lack of programming hours to modernise it. Nothing can ever be done about either. It is truly an anachronism.

The thing is, sometimes you want to write a game or little app and not be bothered with diving into the PE. With what I am most simply proposing, pointers and their management would become, quite literally, trivial. Design a 4-color pointer, decide what the 4 colors are, decide if you want it to be animated, tell the system which pointer to use with POKE_W base+$27,N and where to put it with POKE_W base+$28,x: POKE_W base+$29,y.

Done.

Note that although the cursor/pointer is only 2-color + mask, those 2 colors can be any two from a 5/6/5 16 bit color palette. Cursor/pointer bitmaps are 64x64.

FB was the second released version of QDOS after AH, IIRC.
Nasta wrote:Trapping what calls? Only the PE implements them as a (rather involved) extension to the regular con/scr drivers.
So it's hard to do. Got it. :D
Nasta wrote:Re pointer color - depends on what the display mode is and of course what the program is. The default pointers for the general PE UI are all mode 4. But then, there is QTOP...
Of course, USING a pointer is far more than just displaying it. And regarding PE - it's what we have. It's actually not nearly as convoluted as window systems on many other more popular computers - none of the ones that are truly capable are simple (and that's an understatement). The PE never got a really proper integrated tool chain. Basic is also a problem because the PE uses data structures that are not easy to manage in basic, and it's also event driven which is again a problem in basic.
At some point, there has to be a call to "draw pointer N at X,Y" *goes off and does a bunch of performance-sucking computing*.... If you know the intent is to draw pointer N at X,Y, even if the pointer is "flattened" in terms of bit depth to 2BPP, it is still an option to find that point, alter it to just do three word writes, then return. Now, I'm not saying that's easy.... I'm just saying it is not impossible. Yes, it would change the character of the pointer. It would also free up thousands of cycles (or at least high hundreds) every pointer draw.

I asked the question to find out what was involved. I now have a notion what's involved.
mk79 wrote:Even more than that, the PE can alpha-blend the mouse cursor unto the background. I know because I've written that feature. And as mentioned even the text cursor can be a sprite, meaning it can alpha blend with the text below it.
That's genuinely cool. I'm not aware of a more modern system that does that. I never noticed, because I've only tried to use PE in my entire life for maybe 20-30 hours. I've come by my dislike of it honestly - which is that if you sit down at a computer by yourself and try to understand it, it is one of the most obtuse systems ever devised by man to torture another man. This is made worse if you've used more modern systems, and learned the One Appointed True Way of doing WIMPs, after all the alternative ideas were filtered out.

My question isn't JUST about the PE, though. Although the PE answer is loud and clear (nobody will do the work, so it will never happen) a small set of simple BASIC extensions can give mastery of a much simpler system for pointers, and for paging out blocks of 'window' - which, I understand that isn't event driven and doesn't manage 90% of the things a windows system might have to do. I get that PE is relatively complex, and is useful. I learn by demonstration and iteration, and sitting in a room by myself with a manual is never going to be a good combination.

That's a me failing, not a PE failing.
mk79 wrote:
Dave wrote:I've never used the PE for longer than it takes to disable it.
That makes it pretty pointless to talk about pointers with you, doesn't it?
No, it makes me a poor person to talk to about the Pointer Environment™. I'm an excellent person to talk to about pointers, scaled anti-aliased fonts, etc. Add in that every non-QL pointer I have used since the release of the Archimedes has had a hardware pointer... And I have about 72,800 hours of experience with those :P


User avatar
pjw
QL Wafer Drive
Posts: 1286
Joined: Fri Jul 11, 2014 8:44 am
Location: Norway
Contact:

Re: Hardware pointers and cursors.

Post by pjw »

Dave wrote:.. I've come by my dislike of [PE] honestly - which is that if you sit down at a computer by yourself and
try to understand it, it is one of the most obtuse systems ever devised by man to torture another man.
This is made worse if you've used more modern systems, and learned the One Appointed True Way of
doing WIMPs, after all the alternative ideas were filtered out.
I wish people would stop grumbling about wishing the QL was something other than it is. Sure it has
many faults - both hardware- and firmware-wise. Perhaps thats why we never stopped fiddling around
trying to improve it these past thirty odd years!

Regarding PE: I agree that it is hard to get to grips with. I bet that if you were to delve into the
innards of Windows, or any other modern WIMP, youd find horrors beyond belief. PE is the full
horror of the WIMP. Theres virtually nothing hidden beneath it.

One half of PE (if you exclude the Hotkey system) is Wman. Thats the bit most of us struggle with. Yet,
in a way you could say that Wman is optional. You could create your own Wman, amenable to
manipulation with tools as sophisticated as you like; drop-in objects, scalable, anti-aliased fonts, etc.
Its not PE that creates the limitations. There already is an alternative to Wman. It uses vectorised fonts
an' all. Its part of what is known as ProWess. I dont know if it is much easier to use - perhaps it is if you
are conversant with C.

The thing I like about the PE system is, that considering that it is a not bad, complete implementation
of a WIMP for the 8/16-bit era, it is remarkably simple, logical and compact! Im not saying its simple or
easy to understand or use, but for what it is: It is!

Of course there are criticisms, and lots of things could be improved. Most such improvement requires
knowledge and ability that only a very few possess, and those people will (sadly for us) be gainfully
employed elsewhere. The "easiest" things to improve, which some of us might be capable of doing over
time, are the tools needed to simplify the use of PE.

EasyPointer by Albin Hessler is a good start. It has been much improved by Marcel. Im not familiar with
EasyPeasy, by George Gwilt, but I believe that is another such tool. Still, I foresee that more "intuitive"
and interactive tools could be made if anyone with a reasonable skillset had the time and inclination.

In the meantime, dont bother too much about learning PE. All you need are one or more of those tools
to make the menus, buttons, sprites etc. The rest will come over time by a process of osmosis.


Per
dont be happy. worry
- ?
User avatar
tofro
Font of All Knowledge
Posts: 2685
Joined: Sun Feb 13, 2011 10:53 pm
Location: SW Germany

Re: Hardware pointers and cursors.

Post by tofro »

Dave,

somehow, you seem to be assuming that PE / WMan is a bad thing and anything else (in the Windows world) is a piece of cake. Having spent half of a lifetime to create software and GUIs for Windows, OS/2, Unix/XWindows, Amiga and Atari ST, I can tell you: QDOS/PE/WMan is definitively only half of the software horror that you found (and still find, once you dig through the thick layers of "system software and tooling" that was, supported by GHz CPUs and vast amount of hardware thrown at these things during the last 30 years) in these other systems.

Yes, software is complicated.

Tobias


ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
Derek_Stewart
Font of All Knowledge
Posts: 3932
Joined: Mon Dec 20, 2010 11:40 am
Location: Sunny Runcorn, Cheshire, UK

Re: Hardware pointers and cursors.

Post by Derek_Stewart »

Hi Per,

I totally agree with your sentiments, I can not agree on disabling the PE or EE.

Most computer users are using a system that has Windows, Mac OSX L,all use a Windowing system which can not be diabled, so why on a QL.

The PE only needs an extra 256K of ram to run. Not Megabytes of memory to achive the same thing.
Oh yes I forgot to mention the most or all the PE is also free ublike the 2 main systems mentioned above.

There is far more information and application software availble now, to produce PE programmes.

Any new system, I also put the EE on with Qpac2. Whether it is a fast system or QL with memory expansion.


Regards,

Derek
User avatar
Dave
SandySuperQDave
Posts: 2765
Joined: Sat Jan 22, 2011 6:52 am
Location: Austin, TX
Contact:

Re: Hardware pointers and cursors.

Post by Dave »

pjw wrote:I agree that it is hard to get to grips with. I bet that if you were to delve into the
innards of Windows, or any other modern WIMP, youd find horrors beyond belief. [SNIP]

The thing I like about the PE system is, that considering that it is a not bad, complete implementation
of a WIMP for the 8/16-bit era, it is remarkably simple, logical and compact! Im not saying its simple or
easy to understand or use, but for what it is: It is!
Indeed. In the early days of evolution of these WIMP systems, a lot of things were tried and found not to work, and they died out and did not go forward into future generations of machines. The QL window systems are such a backwater. And there's nothing wrong with that.

The root of my question is: if there were hardware support for funtionality that is currently implemented laboriously in software - that makes the implementation unconscionably difficult to work with - is there any will or desire to shift that load from software to hardware?

My opinions about trying to use some obtuse program are really irrelevant to that.
tofro wrote:....you seem to be assuming that PE / WMan is a bad thing....[SNIP....Yes, software is complicated.
I think the PE is a tool to do a job. I may think it's an outdated tool and we can do better, but our shared reality is that we're not producing new software that can use a new system. If new features are to be enabled, they must either be enabled by modifying the common element that cohesively brings them together. In the category of PE-aware/enabled programs, it is simply not realistic to edit the programs. However, the PE itself could undergo changes and all programs would benefit.

I also understand that that isn't a particularly realistic option either.

The idea is compelling, though.

You (plural) seem to think that because the PE defeated me, I want to change the PE to my liking. I do not. I want to make it better under the hood. If there's no willingness to do that, then it lowers the utility of the graphics chip family I have been looking at. The sprite, cursor/pointer and blitter capabilities are so easy to use even an entry level BASIC programmer could achieve PE-beating visuals with very minimal effort though I accept that is just presentation and PE has a lot more going on under the hood. If people WANT that, it's something to examine for the future.
Derek_Stewart wrote:Most computer users are using a system that has Windows, Mac OS X, all use a Windowing system which can not be disabled, so why on a QL.
This is patently untrue. I have two servers behind me, one running Windows headless and it does not even start the window manager, the other OS X and also does not even start the window manager. I deeply prefer the OS X machine. Both take low positions next to the small number of Linux machines that are all headless.
Derek_Stewart wrote:The PE only needs an extra 256K of ram to run. Not Megabytes of memory to achive the same thing.
Oh yes I forgot to mention the most or all the PE is also free unlike the 2 main systems mentioned above.
Mac OS X is free. It will install on most newer PCs with little difficulty.


What really frustrates me is that I ask a fairly straightforward question about hardware and how it interacts with software, and in doing so explain that I don't have much experience with the software because it is awkward (and conversely, it is awkward because I don't have much experience using it), and y'all just completely lose the plot and only focus on my discomfort with a bit of software.

Let me explain this in a way that might spark some empathy.

I have been using a QL for 35 years. I have used JM, JS, then Minerva. I never exposed myself to the PE, or to SMSQ/E. Then I bought a Q68 and plugged it in, all excited and happy. When we got it working (thank you Derek for your patience over the dead SD card issue) I booted it up for the first time and.... The machine spent a good time doing things. Unaccountable things. Opening loads of windows I didn't understand, programs I didn't know, things appearing and disappearing (to where?) and then I arrived at a desktop. That was impenetrable. And slow. And clunky. All I wanted to do in that moment was to get to an F1/F2 prompt, and pick a mode or three, see what my display options were and how readable they'd be.

It took me three hours to do that.

That's three hours on the QL, and doesn't include the 5+ hours I spent googling looking for manuals for all the unidentifiable things that were going on in the machine. In the end it all got very overwhelming and annoying, and it pissed me off. I imagine it's the same reaction as if someone came and used your personal machine on your login, and imposed their view of how you should have used your machine. Now the important thing here is, if I had come across all of this various software organically over several years, and worked my way up to that install, I would probably have done it exactly the same way. It wasn't the individual items that were the problem. It was that there were so many of them. Imagine being handed a (pick one you never ever used) Atari TT or Amiga A4000 with all the latest developed software installed and preconfigured for you. That would be a bit of an overwhelming way to get into something, wouldn't it? You might feel a bit intimidated or frustrated or resentful. Especially if there was no documentation. None. Not even a "Hey, welcome. This is what's running, here's how to access/configure/disable it..." Now, pile that into a container that is this PE system, which you also never used before that point - with weird symbols that don't for the main part mean anything just from their appearance. What does a fucking lightning bolt do? What does that even mean? Why does nothing happen if I click on it? Is it a turbo button? What? WHAT?!

You cannot believe how frustrated I was to have this 40MHz Super QL and be utterly lost.

I emailed Derek, in the height of my frustration. Now, Derek was wonderful, and I won't say a bad word about him. He gave me what I wanted - a way to just get to a blinking cursor and no other items. But, in a classic miscommunication for the ages, he didn't give me what I needed. I asked for the wrong thing. I never felt comfortable asking for eternal tech support - except from Nasta - and I did not want to pester Derek with questions that just show me up as a caveman of QL-dom. So I just carried on in my abject discomfort and ignorance.

So, while working on Issue 8 I come across a family, an entire family, of 68K friendly bitmap graphic video processors with flexible outputs, that will mesh well with the QL hardware, and for certain Aurora modes also with the OS with no work. Mode 4 and 8 would need a little "implementing" but..... A simple 128Kx16 ROM can do that translation. Put the word plus a mode 4/8 bit on the address pins and get a translated word out the other side. Done. And it has these extra features that I can use, that you can use. That could be infused into PE/WMAN to help them perform a little better. The main thing being that this system runs a private frame buffer, so when video memory isn't being accessed by the QL it causes no video contention and slowdown. So for the 99.9% of the time the system isn't actively updating the screen, the resolution and bit depth do not hog CPU cycles. So in some modes the system will be consistently 30 or 50% faster. And it can work alongside the existing internal screen RAM. With some modest extensions, imagine being able to do:

OPEN #4,scr0_512x256a0x0
OPEN #5,scr1_768x512a0x0

In my enthusiasm, I come here and ask, and the topic of conversation quickly shifts to "oooh, Dave doesn't understand the pointer environment, let's tell him how he's wrong!"

Honestly, if someone doesn't get along with the PE, but they come here and say, "I have this idea that might improve the PE" you might give them credit for their open-mindedness in trying to offer up something that might be useful and trying to start a discussion on it. Even if you think it won't enhance the PE. The discussion might reveal what else is possible. Other ideas. Other ways to use the features that might be available. I came here to learn.

PS: I would love to use the PE, and to really dive into it, and dive into the options it opens up for me. But I have no way to do that. Just bringing it up fills me with anxiety, as if an old friend had a mental breakdown. It's not the QL I know and love, but I could definitely grow with it. Just.... Over years, not as a one day personality change. This is a 35 year relationship. It's a lot to ask of a person to completely change how they interact with their machine. Without explanation, or time to adapt.

So can we talk about QL window systems and how new features likely or not might be integrated if available in economical hardware?

Please?


User avatar
tofro
Font of All Knowledge
Posts: 2685
Joined: Sun Feb 13, 2011 10:53 pm
Location: SW Germany

Re: Hardware pointers and cursors.

Post by tofro »

Dave,

Hardware sprites? Blitter engine? DMA transfers?

Let 'em roll!

The PE as such, though, won't benefit much from it. It's not been written with such luxury in mind. It also doesn't really need this - for exactly that reason. It also won't solve the discomfort you seem to have with it, as that doesn't seem to be based on lack of speed.

But games might be able to greatly benefit. Graphics programs would love it and swift screen management is always a nice thing. 68k-based technology is reaching a limit when being asked to shove about 1024x512++ sized high-color screens.

Tobias


ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
Derek_Stewart
Font of All Knowledge
Posts: 3932
Joined: Mon Dec 20, 2010 11:40 am
Location: Sunny Runcorn, Cheshire, UK

Re: Hardware pointers and cursors.

Post by Derek_Stewart »

Hi Dave,

Thank you for the compliments, but it is not required, it is enough to get everyone using upto date hardware and software.

My main error in the supplied software on the Q68 SD Card, I assumed that everyone knows the same as me and usually they know more... how wrong was I!

The advantage of the QL is that the PE can be not used if required. But in SMSQ/E the PTR_GEN, WMAN and HOTKEY systems are builtin and part of the operating system. But most old software does run.

But I did not think that the Extended Envoironment builtin into SMSQ/E should really of been modular, so that it could be removed if not required. Leaving a fast QL system.

But the last time I suggested this, I got shot down in flames... personally I would prefer a more modular QL operating system like Linux, if I do not want X Windows I just remove it and use the Command Line.

I once posed this question in an Amiga Forum, can you run the Amiga with the just the command line console. The answer was yes, but why when there is GUI.

So lets keep the QL in the command line and forget about all this rubbish GUI systems.


Regards,

Derek
User avatar
Dave
SandySuperQDave
Posts: 2765
Joined: Sat Jan 22, 2011 6:52 am
Location: Austin, TX
Contact:

Re: Hardware pointers and cursors.

Post by Dave »

tofro wrote:Hardware sprites? Blitter engine? DMA transfers?

Let 'em roll!
It's a surprisingly simple system to implement and interface - it's just making the OS know about it. For games that were written for it, that isn't even necessary and I would provide full example code.
tofro wrote:The PE as such, though, won't benefit much from it. It's not been written with such luxury in mind. It also doesn't really need this - for exactly that reason. It also won't solve the discomfort you seem to have with it, as that doesn't seem to be based on lack of speed.
Well, no, and even if it would I wouldn't expect it to benefit overnight, or completely, anyway. Hardware pointers, hardware cursors... it just is one little bit less for the OS to do. The idea that a cursor that sits across the border between two words requires read/modify/write to 20 words of memory while buffering those 20 words for when the cursor blinks off again? For a pointer that might be 64x64, that's 128 words. 256x7 or 8 clocks just for the reads/writes, ballpark. Moving a pointer across the screen through 150 steps might involve 256 * 8 * 150 * 2 = 614400 cycles of drawing, which is about half a second of useful CPU time at 7.5 MHz, I think.
tofro wrote:But games might be able to greatly benefit. Graphics programs would love it and swift screen management is always a nice thing. 68k-based technology is reaching a limit when being asked to shove about 1024x512++ sized high-color screens.
One desirable thing about this chipset is you can define almost any resolution and bit depth. You can also have a physical resolution and a larger virtual resolution, so you can copy items into the non-display part of the display and back very, very quickly. It has a 2MB framebuffer, so there's room to do quite a lot with it.


User avatar
Dave
SandySuperQDave
Posts: 2765
Joined: Sat Jan 22, 2011 6:52 am
Location: Austin, TX
Contact:

Re: Hardware pointers and cursors.

Post by Dave »

Derek_Stewart wrote:The advantage of the QL is that the PE can be not used if required. But in SMSQ/E the PTR_GEN, WMAN and HOTKEY systems are builtin and part of the operating system. But most old software does run.

But I did not think that the Extended Envoironment builtin into SMSQ/E should really of been modular, so that it could be removed if not required. Leaving a fast QL system.

But the last time I suggested this, I got shot down in flames... personally I would prefer a more modular QL operating system like Linux, if I do not want X Windows I just remove it and use the Command Line.
One of the best OS I have seen for this was RiscOS, and it would be good to emulate what they did. The OS was broken down into relocatable modules. These RMs were in the ROm, but later versions could be soft loaded if they were called. So you could have multiple versions of the module available. Each would be linked in, and the programs would just use the version they were designed to work with, if they could not use the latest version.

It would be quite nice if SMSQ/E were modular in this way - and it almost is. Currently, it's just a bunch of linked modules already.
Derek_Stewart wrote:I once posed this question in an Amiga Forum, can you run the Amiga with the just the command line console. The answer was yes, but why when there is GUI.

So lets keep the QL in the command line and forget about all this rubbish GUI systems.
The Amiga was first released with a WIMP. It was never a prompt/shell type experience. The entire OS was built up around the idea of there being a WIMP. QDOS was the last buggywhip in a quickly evolving motor vehicle world. We strapped wheels on it, but they were not round, not on the corners, and not all pointing the same way ;)

Funny thing. After my little vent/self therapy session above someone else said, I quote, "I never got used to the PE. Even the mouse buttons work the wrong way around :)" See, that's a little thing it would have been helpful to know. ;) It's also a little thing that, given the passage of time, it might have been smart to "fix"... In the "I know it's not broken, but seriously, this is going to be a huge impediment for late adopters and early returners." I mean, even an option to switch the mouse buttons? Maybe there is? It would be hard to find if you didn't know the buttons were reversed and that was a thing?

Because to someone late to the game a lot of the things it does are not just counter-intuitive, they're "inconceivable!"


Post Reply