Jump to content
IGNORED

New GUI for the Atari 8-bit


flashjazzcat

Recommended Posts

Hello FJC.

 

Here,

far from anywhere,

I can say that you are Powerful, Mighty, Creative and Aimed.

Your every step is fiesta for any of us.

 

I like your new avatar.

You looks like Robert Redford in "3 days of Kondor"

It's my very favorite movie.

 

Best Wishes.

  • Like 1
Link to comment
Share on other sites

Haven't been laughing so hard lately until I read the last few messages here... sounds like the invention of the century is just around the corner, com'on guys get a grip with the reality!!. I haven't been saying "it can't be done", I was just questioning the usability and the purpose (other than self satisfaction of course) of developing a GUI mutitasking OS! for a half century old microprocessor running at a measly 1.7 Mhz and already spending 5 years in doing so with no actual timetable for availability, that's not saying FJC is under any obligation to provide one, to the contrary he can take as much time as he wants without feeling any obligation to anybody. At the end, when it's all said and done what he is going to get is a few Ahhs!!, Ohhs!!!, Wows!!! and such, and then all those amazed users will shelf the product and go on with their lives playing their favorite 8 bit game(s). I know the difficulties and the time and effort spent on such a large scale project as well as the next guy, and that is exactly why I am questioning this project, why reinvent the wooden wheel just because you can do it (even if it takes 10 years), isn't the time better spent on projects like FDISK, uFlash, APT etc. which are some fine tools used and appreciated by many in the community. FJC doesn't need to prove himself, he has already done so with his other offerings, so why make this a big deal... For people who really want to do GUI there are all those modern systems who don't struggle to move handful of bytes through narrow data buses with a power handicapped CPU ... hope you get my drift ;)

Edited by atari8warez
Link to comment
Share on other sites

Haven't been laughing so hard lately until I read the last few messages here... sounds like the invention of the century is just around the corner, com'on guys get a grip with the reality!!. I haven't been saying "it can't be done", I was just questioning the usability and the purpose (other than self satisfaction of course) of developing a GUI mutitasking OS! for a half century old microprocessor running at a measly 1.7 Mhz and already spending 5 years in doing so with no actual timetable for availability, that's not saying FJC is under any obligation to provide one, to the contrary he can take as much time as he wants without feeling any obligation to anybody. At the end, when it's all said and done what he is going to get is a few Ahhs!!, Ohhs!!!, Wows!!! and such, and then all those amazed users will shelf the product and go on with their lives playing their favorite 8 bit game(s). I know the difficulties and the time and effort spent on such a large scale project as well as the next guy, and that is exactly why I am questioning this project, why reinvent the wooden wheel just because you can do it (even if it takes 10 years), isn't the time better spent on projects like FDISK, uFlash, APT etc. which are some fine tools used and appreciated by many in the community. FJC doesn't need to prove himself, he has already done so with his other offerings, so why make this a big deal... For people who really want to do GUI there are all those modern systems who don't struggle to move handful of bytes through narrow data buses with a power handicapped CPU ... hope you get my drift ;)

The answer to your questions is given in your own text. It is also why *anything* exists. - self satisfaction. Things are invented/created out if desire, typically for ones own purpose. Occasionally that purpose meets the needs of others. Can you say iPhone?

 

It's the same reason you created your SIO dongle. Why when there were others out there already? Because it is slightly different and works how you want it to.

 

There will be oohs and ahhs, but he may just make a pound or two. Either way it's positive for him in the accomplishment, and positive for the community in that we get a cool toy. Notice "toy"

Since that's all these computers are used for anymore with the exception of a very few.

 

Please stop pooping in the parade route. You've just about convinced me I shouldn't have bought your SIO dongle.

 

As my mom always said, "if you don't have anything good to say, don't say anything at all". The negative comments are doing nothing other tan damaging your reputation.

  • Like 4
Link to comment
Share on other sites

Thanks for the vote of confidence, folks. I won't address the negative remarks (which I took steps to avoid seeing at all) since I don't want to perpetuate a debate about the project's worthiness or otherwise. That's not what this thread's really about, although lately it was steered that way and in light of that I certainly appreciate the rebuttals.

 

Sure we have feature creep here but I hope people who've shown their support won't feel negative towards a product that explores the notion of an 8-bit GUI in its fullest sense, rather than just providing a visual confirmation that we can do overlapping windows, etc. We know we can do that, but the scope of what's being done has to remain engaging and challenging enough to sustain my interest. Writing an operating system isn't something I had in mind three and a half years ago when I started writing code for this thing, but that's what it's become and it's an incredible learning experience in terms both of the Atari hardware and of OS architecture in general. Prodatron's input was one of the best things to happen to this project, and anyone who cares to read the story of SymbOS will note that it has been in development - with significant gaps - since November 2000, with porting to other Z80 platforms beginning in 2005. That seems fairly typical to me of how these big projects pan out, and anyone who would seek to assert that I have been writing nothing but GUI code since the date of the first post in this thread needs their head looked at. Most people here know how many other projects I've been involved in during that time, and those projects were also subject to feature creep (in the sense that I was asked to add more and more functionality), so I really don't know what the beef is regarding the time frame. If it's possible, going forward, to use this thread as a platform for discussing and reacting to the technical and aesthetic aspects of the system being constructed, I would really appreciate it. Thanks in advance. :)

  • Like 1
Link to comment
Share on other sites

I like your new avatar.

You looks like Robert Redford in "3 days of Kondor"

Thanks, but it's actually the late, great Rik Mayall - a British comedian and actor who died recently. One of my heroes, and as it happens very adept with the two-fingered salute, which seems rather appropriate. ;)

  • Like 2
Link to comment
Share on other sites

Thanks, but it's actually the late, great Rik Mayall - a British comedian and actor who died recently. One of my heroes, and as it happens very adept with the two-fingered salute, which seems rather appropriate. ;)

We Americans use the one finger salute! Is it true that the two finger salute comes from the time of British archers using the two finger draw of a bow as a slur?

 

ravard

  • Like 1
Link to comment
Share on other sites

Thanks, but it's actually the late, great Rik Mayall - a British comedian and actor who died recently. One of my heroes, and as it happens very adept with the two-fingered salute, which seems rather appropriate. ;)

 

I assumed it was you Jon - after pulling an all-nighter!

 

In regards certain mindless remarks from an unfortunate example of my countrymen about the worth of the project; three words - "please shut up!".

 

I have avidly followed the evolution of the project in this thread over the past three years, and I have found the story of its development to be vastly entertaining and informing - I look forward to every new update! I have written software for both the retail and the enterprise market and I truly envy Jon the luxury of being able to develop his product at his own pace and to his own goals and respect him for doing so.

  • Like 2
Link to comment
Share on other sites

It's the same reason you created your SIO dongle.

 

Not quite the same reason, I did it because people do actually use it. I know I do.... it actually enhances the "Atari 8 bit" experience and saves people investing into 50 year old floppy drives, same goes for all other fine PIA based flash memory peripherals made by various other people..

 

I wouldn't have spent (and still spending) time and effort just to prove something can be done, but that's a personal decision one has to make.

I already know a GUI can be done on an 8 bit Atari, the question is whether it will serve any practical purpose... a 300 bps modem could also be used to surf (well, crawl) the internet but who in their right mind would do it in this age.

 

I don't understand why people object to my opinion, I don't object to anybody who might be criticizing my ideas or offerings, everybody has the right to voice theirs. I see a huge ego problem here, Interestingly people who are not open to criticism are also the first ones who criticize others.

 

In any account, if you'd like to return the "dongle" i'd be happy to give you a full refund, but don't try to use this thread as an excuse, just be honest and say why you don't like it, there may be a way to improve it, and you're mom is right, you should listen to her ;)

Edited by atari8warez
Link to comment
Share on other sites

 

I assumed it was you Jon - after pulling an all-nighter!

 

In regards certain mindless remarks from an unfortunate example of my countrymen about the worth of the project; three words - "please shut up!".

 

I have avidly followed the evolution of the project in this thread over the past three years, and I have found the story of its development to be vastly entertaining and informing - I look forward to every new update! I have written software for both the retail and the enterprise market and I truly envy Jon the luxury of being able to develop his product at his own pace and to his own goals and respect him for doing so.

 

I hardly care about your nationalistic comments, but I would like to remind you that Canadian constitution doesn't give you the right to silence a person just because you don't like what he's saying. So maybe you should "shut-up" instead (Oh sorry I forgot to add the "please", this is so not Canadian... lol)

Edited by atari8warez
Link to comment
Share on other sites

 

...

 

I don't understand why people object to my opinion, I don't object to anybody who might be criticizing my ideas or offerings, everybody has the right to voice theirs. I see a huge ego problem here, Interestingly people who are not open to criticism are also the first ones who criticize others.

 

...

 

Yep, I think most ppl would agree that that is the crux of the matter. You *never* let anything go. Jeez it gets soooo tiring to read these rebuttals. *sigh*

  • Like 3
Link to comment
Share on other sites

 

Yep, I think most ppl would agree that that is the crux of the matter. You *never* let anything go. Jeez it gets soooo tiring to read these rebuttals. *sigh*

 

I think you've got that wrong. As usual FJC promoted this new round of "duels" with his comment he made many days after the last post on this thread:

 

"it's not your fault if your innocent observations are misconstrued as feed-lines for gauche witticists"

 

I've already told him and everybody who follows this topic that I will leave him alone if he stops his snarly comments, but he simply can't.

Link to comment
Share on other sites

Well, Aspeqt was actually written by Fatih Aygun... nevertheless the attempt at fair-handedness is commendable (although I object to the implication that I'm a willing participant in the "bickering", since not only am I not responding to the posts, I'm no longer even reading them now). I just hope if someone's gonna have a total meltdown, he does it some place else. :)

 

Is it true that the two finger salute comes from the time of British archers using the two finger draw of a bow as a slur?

Just had a look on Wikipedia and the etymology seems a bit vague.

 

In any case, this is a good one: smiley-finger004.gif

Edited by flashjazzcat
  • Like 3
Link to comment
Share on other sites

.

 

In any account, if you'd like to return the "dongle" i'd be happy to give you a full refund, but don't try to use this thread as an excuse, just be honest and say why you don't like it, there may be a way to improve it, and you're mom is right, you should listen to her ;)

I never said or indicated I wanted to return it. It's useful. I said I was starting to question the source I got the "dongle" from since there are other options. I won't respond further in this thread.

 

Fwiw, I think the GUI will be useful for those that want it to be. Usefulness will be defined by the end user for their particular purpose which may be completely different than the creators or anyone else's.

 

I do listen to my mom. I've not bashed your product at all, or you for that matter. I simply have printed out how myself and others are seeing the useless negative banter.

 

Just turn the other cheek.

 

Regards

Link to comment
Share on other sites

I said I was starting to question the source I got the "dongle" from since there are other options.

 

There are other options for sure, that is if you want a PCB board with no enclosure, a closed source propriatary software, and an endless upgrade fee for new versions, or you could choose a serial SIO2PC and use it with AspeQt. At the present time I know of no other supplier who sells a USB based, dual-function "dongle" in an SIO plug which works with open source software. You could also choose to buy one of the cheap USB-to-Serial converters from far-east suppliers, but watch out for fake/counterfeit FTDI chips many of them tend to use. Buying from me gave you the guarantee that all the chips used in the device are genuine. I made the mistake of buying a batch of fake FTDI chips in the past, but none of these chips found their way into my products, and none will ever do. Each one of these devices I sell is individually tested and stress tested and burnt-in overnight (RWTEST is run on each device for at least 8 continues hours).

 

That is why you are paying more than the "comparable" products when you buy one from me, but the choice is yours, as I reiterated many times, your purchase decision should solely be made by the merits of the product, and the support you get from the supplier, not based on what the supplier thinks about other people's work.

Edited by atari8warez
Link to comment
Share on other sites

one solution is:

 

Click on "My Settings"

Click on "'Ignore' Preferences" (at the left)

Enter user's name under "Add a new user to my list"

Check all boxes

Click "Save Changes"

 

Hey Presto - no more irritation!

 

attachicon.gifBlocking Users.png

 

FJC tried that many times, magically it never works ;) , however there is a much simpler solution, just don't read the post(s) and you will never be irritated again...

Edited by atari8warez
Link to comment
Share on other sites

one solution is:

 

Click on "My Settings"

Click on "'Ignore' Preferences" (at the left)

Enter user's name under "Add a new user to my list"

Check all boxes

Click "Save Changes"

 

Hey Presto - no more irritation!

 

Blocking Users.png

Did that a while ago but this doesn't stop the offending posts from being quoted by others and propagating a huge off-top discussion. The next logical step would be to request moderator intervention, I guess. Anyway: the request I made a few posts ago obviously fell on deaf ears. In UK vernacular we call this pissing on your chips. ;)

Link to comment
Share on other sites

The approach I'm taking with the stack is to divide it into four frames (of 64 bytes each), and alternately replace the stacks of sleeping tasks with those of ready tasks if the ready task's stack isn't already in the hardware stack. This should minimize stack copying, since ready tasks always tend to have their stacks in-place, while non-ready tasks have their stacks cached out until they become ready again. In those cases where none of the stack frames belong to a sleeping task, the lowest priority ready task's stack will be cached out. With the UI process, file process, desktop and one application running, there'll be no need for any stack copying at all (until one launches a second application).

This is becoming exciting now! As most tasks are usually in sleep or idle mode, this should work quite well and fast!

One question: What does the desktop process do? In SymbOS the desktop and the UI process is the same (like file manager + system manager are grouped in the same process). I don't know what the desktop process is doing in the A8gui, but maybe it makes sense to group it with the UI process as well?

How is the zero page handled in the multitasking environment?

Link to comment
Share on other sites

This is becoming exciting now! As most tasks are usually in sleep or idle mode, this should work quite well and fast!

I hope so. One must be careful, however, that the administrative overhead of optimising and managing segmented stack usage does not involve as much CPU work as simply copying the whole stack every context switch (especially if stacks are typically quite shallow). But in theory the scheme is quite compelling, providing the overheads are light.

 

One question: What does the desktop process do? In SymbOS the desktop and the UI process is the same (like file manager + system manager are grouped in the same process). I don't know what the desktop process is doing in the A8gui, but maybe it makes sense to group it with the UI process as well?

Well, I hadn't realized that the UI and desktop were part of the same process in SymbOS. In the A8 GUI, the desktop manager (file browser, if you like) is simply an application like any other, special only in the fact that it manages the desktop (which is a special window). What would be the advantages of merging the desktop with the UI process? An advantage I can see in keeping them separate is that the "shell" could be easily replaced (for example, with a Start-menu type design).

 

How is the zero page handled in the multitasking environment?

I studied Lunix (LNG) and GeckOS kernels closely these past few months (especially Lunix), and took some ideas from both. I think 16-20 general purpose page zero locations are more than adequate for an application, and these are swapped out with every context switch (unless the process specifies that it has no need of page zero space). Of course, there are lots more page zero locations, and these are used exclusively by the (rather huge) UI process, which benefits greatly in terms of speed and code size by having the lion's share of PZ to itself.

 

We must chat more about file system drivers and such at some time if possible. I have a developer keen to get his feet wet writing drivers for the A8 GUI, and I need to design an API which will enable core file system calls to be abstracted through any one of a number of drivers (FAT, Atari DOS, etc). Of course Lunix uses a monolithic kernel, where file system drivers are (in theory) implemented as kernel extensions. This is a nice extensible approach, and I wonder about mixing and matching some concepts (although IPC is plainly the optimal way to handle the UI).

Edited by flashjazzcat
Link to comment
Share on other sites

I think 16-20 general purpose page zero locations are more than adequate for an application, and these are swapped out with every context switch (unless the process specifies that it has no need of page zero space). Of course, there are lots more page zero locations, and these are used exclusively by the (rather huge) UI process, which benefits greatly in terms of speed and code size by having the lion's share of PZ to itself.

 

How about having a pool of, say, 16-32 page zero locations. A process gets assigned exactly as many locations as it requests after loading and during relocation. Only swap out zp locations if the pool runs dry.

  • Like 1
Link to comment
Share on other sites

 

How about having a pool of, say, 16-32 page zero locations. A process gets assigned exactly as many locations as it requests after loading and during relocation. Only swap out zp locations if the pool runs dry.

That would work pretty well if the relocating loader was able to resolve symbolic page zero references on a per-task basis. Otherwise applications would have to explicitly request a chunk of locations at run-time, and then we have a mess of indirect referencing or self-modifying code.

Link to comment
Share on other sites

Well, I hadn't realized that the UI and desktop were part of the same process in SymbOS. In the A8 GUI, the desktop manager (file browser, if you like) is simply an application like any other, special only in the fact that it manages the desktop (which is a special window). What would be the advantages of merging the desktop with the UI process? An advantage I can see in keeping them separate is that the "shell" could be easily replaced (for example, with a Start-menu type design).

Yes, you are right! I already guessed that the A8GUI desktop process would be something like this. In SymbOS it doesn't have any file browser features itself, it just reacts on clicked icons, startmenu and taskbar entries and does some more things like managing the taskbar display etc., everything else is pure UI stuff. SymbOS 3.0 will get an optional module ("active desktop") with some more advanced desktop functionalities (like widgets, enhanced start menu etc.). This will be an own process as well :)

 

We must chat more about file system drivers and such at some time if possible. I have a developer keen to get his feet wet writing drivers for the A8 GUI, and I need to design an API which will enable core file system calls to be abstracted through any one of a number of drivers (FAT, Atari DOS, etc). Of course Lunix uses a monolithic kernel, where file system drivers are (in theory) implemented as kernel extensions. This is a nice extensible approach, and I wonder about mixing and matching some concepts (although IPC is plainly the optimal way to handle the UI).

The SymbOS file manager consists of three layers:

- low level mass storage access: this is for initializing a device and reading/writing sectors

- mid level file system access: this is for handling a special file system (currently FAT12+16+32 and CP/M+Amsdos)

- high level: provides all features for the applications

 

So you are speaking about what I call in SymbOS the mid level.

Here we have the following functionalities:

- allocate and deallocate clusters (always as a chain)

- get part of the cluster number chain starting from a special cluster number

- search for a file inside a directory and load infos

- create new file (or directory) inside a directory

- modify file (or directory) properties

- remove file (or directory) from a directory (after its cluster have already been deallocated)

- initialize new created directory

- get free number of clusters of the device/partition

So this is mostly abstracting the cluster and directory handling and works for FAT as well as for Amsdos and CP/M, which have completely different directory structures and methodes of cluster allocation. The high level routines use the mid level routines for this file system specific stuff. Both the high and the mid level routines use the low level ones for loading/writing sector data.

The file system layer in SymbOS is designed like an internal driver structure, where each driver could be replaced by another one for another file system. Unfortunately there is currently no possibility for additional/alternative drivers because of memory and banking limitations.

 

 

How about having a pool of, say, 16-32 page zero locations. A process gets assigned exactly as many locations as it requests after loading and during relocation. Only swap out zp locations if the pool runs dry.

I wonder how this should work: On startup of a process all its zeropage references have to be relocated, if you provide such a dynamic usage of it. If the process is swapped out and in again, you have to relocate these references again, as now it could be another part of the zeropage. Does that make sense?

 

CU,

Prodatron

  • Like 3
Link to comment
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...