Re: Hardware pointers and cursors.
Posted: Wed Jun 26, 2019 11:10 am
That makes it pretty pointless to talk about pointers with you, doesn't it?Dave wrote:I've never used the PE for longer than it takes to disable it.
RIP Sir Clive Sinclair 1940 - 2021
https://theqlforum.com/
That makes it pretty pointless to talk about pointers with you, doesn't it?Dave wrote:I've never used the PE for longer than it takes to disable it.
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.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"?
So it's hard to do. Got it.Nasta wrote:Trapping what calls? Only the PE implements them as a (rather involved) extension to the regular con/scr drivers.
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.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.
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.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.
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 thosemk79 wrote:That makes it pretty pointless to talk about pointers with you, doesn't it?Dave wrote:I've never used the PE for longer than it takes to disable it.
I wish people would stop grumbling about wishing the QL was something other than it is. Sure it hasDave 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.
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.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!
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.tofro wrote:....you seem to be assuming that PE / WMan is a bad thing....[SNIP....Yes, software is complicated.
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: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.
Mac OS X is free. It will install on most newer PCs with little difficulty.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.
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:Hardware sprites? Blitter engine? DMA transfers?
Let 'em roll!
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: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.
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.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 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.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.
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 wayDerek_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.