Jump to content
flashjazzcat

New GUI for the Atari 8-bit

Recommended Posts

1 hour ago, ivop said:

Perhaps you can implement a priority system. Rectangle redraws of the currently open application get priority over background applications that are visible that want to redraw a rectangle. I believe Windows 95 had such system, that's why it felt way more snappy then X11 or MacOS at the time. It had other issues though ;)

Thanks - that's a pretty cool idea. With menu windows given an 'always render' priority, this could work out nicely and look good. The rectangle slice function should not cause any noticeable performance penalty even if called before opening and after closing menus.

  • Like 6

Share this post


Link to post
Share on other sites

@flashjazzcat is the software to a point that there could be some outside app development?  Simple things to start fleshing out what is on the screen.  Even if it's pretty crude.  Might be frustratingly fun to dig in.

  • Like 1

Share this post


Link to post
Share on other sites
10 minutes ago, bradc said:

@flashjazzcat is the software to a point that there could be some outside app development?  Simple things to start fleshing out what is on the screen.  Even if it's pretty crude.  Might be frustratingly fun to dig in.

Based on what I see when running the demo it appears that the basic API for handling the mouse and windows is already present, so I suspect that file handling would need to implemented before someone else could really do much beyond what is seen in the demo.

Share this post


Link to post
Share on other sites
2 hours ago, bradc said:

@flashjazzcat is the software to a point that there could be some outside app development?  Simple things to start fleshing out what is on the screen.  Even if it's pretty crude.  Might be frustratingly fun to dig in.

Unfortunately not, since the entire API is semi-complete, subject to change, and not yet documented. The last time I worked on the GOS, I was procrastinating about what is basically yet another rewrite in order to move to the final driver model, and that rewrite is pending and essentially the next job on the list. All the 'apps' in the demo are packed into a ROM volume and since the positioning of window controls and such has to be done by trial and error, it is not much fun.

 

I want to get people on board with it as soon as I can, and basically if I don't find time to advance things in the next year or so, I'll just open source it and let someone else do something with it, since it will be apparent by then that I just have too many projects running at the same time.

  • Like 7

Share this post


Link to post
Share on other sites

Ok, so I've just started to dig back into a bit of programming.  Really, mainly, just messing around with the display lists, etc.  I was digging into Gr8 and the question popped into my head, @flashjazzcat how in the heck are you doing the bit fiddling to draw what you are drawing in the GUI?  How do you deal with the bit consistency when a component crosses a byte?  Amazing, but seriously, how?

 

I'm asking because I wanted to make an attempt to do a >40 column pseudo-text mode (Gr8) terminal using the tiny font (https://www.fontsc.com/font/tiny) mainly as an effort in self flagellation.

Edited by bradc
  • Like 1

Share this post


Link to post
Share on other sites
1 minute ago, bradc said:

How do you deal with the bit consistency when a component crosses a byte?  Amazing, but seriously, how?

I'll have to leaf through the code to provide a comprehensive answer (it's been a while), but key to the efficiency is a set of shift tables which quickly give you the data shifted into position in both the left and right bytes.

 

  • Like 1

Share this post


Link to post
Share on other sites
5 hours ago, flashjazzcat said:

I'll have to leaf through the code to provide a comprehensive answer (it's been a while), but key to the efficiency is a set of shift tables which quickly give you the data shifted into position in both the left and right bytes.

 

I think I have a solution that I’ve skimmed from the cc65 tgi implementation.  It took me a bit to figure out what the assembly code was doing but I pretty sure I got it.

 

pseudo code:

bitpos_mask[] = 0b00000000, 0b00000001, ...
 

a = xor(pixel, 0b11111111)

a = and(a, bitpos_mask[bitpos])

pixel = xor(a, pixel)

 

... or something like that

Share this post


Link to post
Share on other sites

Ah, the XOR-AND-XOR idiom.  I used to use this as one of the white board questions when interviewing fw engineer candidates.

Instructions are formatted as: Opcode Destination, Source

 

XOR A, B

AND A, #$0F

XOR A, B

 

What does it do?

 

I would actually start with the triple XOR, and then erase the middle XOR and replace it with the AND to construct the above question.

 

Triple XOR question:

 

XOR A, B

XOR B, A

XOR A, B

 

What does it do, and why might you want to do it this way?

 

After those two questions, I would move on to the double skip and triple skip questions.

 

SKIP A

 SKIP B

X:

 

Skip instruction skips the following one instruction if the condition is true.  What conditions of A & B would cause the instruction at X to execute?

 

Likewise for the triple skip:

SKIP A

 SKIP B

  SKIP C

X:

 

If I had time, I might ask what the following series of instructions did.  Only one candidate ever got this one right before our hour was up.

 

DEC A, REG

OR A, REG

INC A

AND REG, A

 

Ah, good times....

 

Share this post


Link to post
Share on other sites

XOR A, B

AND A, #$0F

XOR A, B

 

In this example you keep the bottom nybble in A and replace the top nybble in A with the one from B.

This technique is useful because it reduces memory access cycles. I saw it in atextbook about 3o years ago.😮

Share this post


Link to post
Share on other sites

I just started playing with this today. it seems that the top bar (keeper/file/... etc.) responds to a mouse click and will cause the menu to cascade, but no other part of the interface responds to clicks. not the sub menus, not the icons on the desktop. Any idea as to what might cause that?

Share this post


Link to post
Share on other sites
13 minutes ago, flemingt said:

Any idea as to what might cause that?

Yep: nothing being coded up for it. :)

 

Start the 'Profiler' and 'Jotter' from the system menu. The Profiler has a fully functional tabbed interface with buttons, scroll bars, lists, etc.

Share this post


Link to post
Share on other sites
10 hours ago, TheNameOfTheGame said:

Dang!  Every time this topic gets bumped I think "could this be it?  Is it happening?" :rolling:

Real Soon Now.

 

Share this post


Link to post
Share on other sites

There is no such thing as time

just beads of now, like dew on a spiderweb

shining in the morning sun

 

 

 

GET TO WORK JON THIS HAS GONE ON LONG ENOUGH

 

 

:)

  • Haha 1

Share this post


Link to post
Share on other sites
On 2/26/2021 at 4:44 PM, flashjazzcat said:

Yep: nothing being coded up for it. :)

 

Start the 'Profiler' and 'Jotter' from the system menu. The Profiler has a fully functional tabbed interface with buttons, scroll bars, lists, etc.

That would do it. Thanks!

  • Like 1

Share this post


Link to post
Share on other sites

Ok, Jon, that's it. We're sending ninjas. When you least expect it. The good news is, they'll probably whack those Rottweilers on the way in.  The bad news is, well, they are ninjas. Mean ones, with pointy bits.

Edited by danwinslow
  • Like 1

Share this post


Link to post
Share on other sites

Most welcome they will be too. We noticed one of the neighbours across the road out in the street earlier this evening: she was bawling at the shit heads about the noise. I went out and joined in. One of them was saying 'I can't take the dogs out... I've got a bad leg'. 'That's a you problem, not a me problem,' I hollered. The other woman rang the police after one of them threatened to set a dog on her. The owner of the place eventually came back and started with a door-to-door soft-soaping exercise. Back-story about his ex dumping the dogs on him, but no actual solutions to the problem offered. 'i can't stop the dogs from barking,' he said (attempting to deal with Deborah instead of me). 'Not my problem,' I said calmly. To which he said 'Hey... No need to get aggressive'. Eventually I told him: 'Look: sort the problem out, and if you don't, I'll sort it out'. He didn't seem to like that.

 

A moron. Tight vest, skinhead and flip-flops. Fucking social housing. I have a shit load of work to do and it's almost impossible to relax and focus on anything at all. Tomorrow I'll be phoning the council, but this is all bad energy. My mother's in hospital as well.

 

We would like to move, preferably into Deborah's parents' house, but it's gonna be tough getting a mortgage. Her dad died a year ago and her mother's in a home with dementia, but what with the coof, etc, the sale of the house (which requires power of attorney) is still months away. Half of the proceeds go to the home, and the rest to the three siblings. That would leave us about 100K short to buy it back. :)

 

Anyway: there you have it. Hopefully things will be peaceful enough that I can do my work and keep writing software. All I want in life is peace in which to work.

Edited by flashjazzcat
  • Like 2
  • Thanks 1
  • Sad 2

Share this post


Link to post
Share on other sites

Hmm, well, I'll have them 'speak' to your neighbor too. Anybody in flip flops, I'll say, and their little dog too. Then they will look at me in silence, and it'll feel awkward, and I'll pause a moment and then loudly say "FRIP FROPS", and they will nod excitedly amongst themselves. Then they'll trot off somewhere...burger king first most likely, then kill everyone in flip flops for a forty block radius. 

 

All that aside, sorry you're going through this kind of irritation, and I hope it passes quickly. Be well.

  • Like 1

Share this post


Link to post
Share on other sites

I have moved a couple of times in my lifetime due to "arsehole" neighbors who never seem to have the self-awareness to understand they are disturbing others.  After much reflection,  I think it is some genetic fault in them haha. I would surely not disturb others intentionally and would remediate matters if I was.

 

The ones with the crazy dogs seem to think their little pooches can't possibly be bothering anyone since they don't seem to have the sensory facilities to process it.  I love dogs and have one now, but I also totally recognize some dogs have mental illness and will never be compatible with human communities.  I've seen some that bark non-stop 24/7.  Thankfully not around my living space but geez.  It is sad, but it is a just reality that some dogs can't be in a neighborhood. No one wants to hear that opinion or talk about it, but it is a sad fact.  Dogs can be mentally ill just as much as humans, especially if they are mistreated or have tortuous living conditions.

 

And then some dogs are just born bad and it is in their nature...sound familiar?

 

My advice, if the situation can't be resolved, move and move on. Life is too short.

 

 

Edited by TheNameOfTheGame
  • Like 1

Share this post


Link to post
Share on other sites

Yes: I found it hilariously ironic that this dick-head said 'I wouldn't ask anyone else here to get rid of their dogs' (not that anyone suggested this). 'Why would I?' I said. 'I never hear anyone else's dog'. It's pretty much the same with kids. I politely asked the son of the neighbour on the other side to stop bouncing his football up my front path and off the front door some years ago, and the fact I did so not only triggered the parents, but seems to have passed into neighborhood folklore as evidence of what an intolerant son of a bitch I must be.

 

I rather like Judge Judy's take on this kind of 'my kid/dog would never...' business. Namely: 'Don't visit your own stupidity on others'.

Edited by flashjazzcat
  • Like 1
  • Haha 2

Share this post


Link to post
Share on other sites

I understand perfectly FJC.  I too am an intolerant SOB because I trimmed my neighbor's tree in order to keep it from touching the roof of my house.

 

  • Like 3
  • Haha 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...