flashjazzcat Posted May 11, 2012 Author Share Posted May 11, 2012 GEOS screamed at its time and I really wondered, why no comparable GUI has been released on the small A8. In the 80s and the early 90s (and may be still today), GEOS has been the semi-standard OS on the C64, it was very popular as I can say in germany. There was a large number of professional programs available for GEOS only, so the GUI has been pushed by many companies as they pushed Windows in the 90s. I never used it myself, althru I have a C64 somewhere and I have several emulators able to run GEOS. But it had/has its very large and loyal user-base. GEOS remains the benchmark, IMO. It's absolute quality through and through, and has great application support. We're going places GEOS never went with the A8 GUI, but at the same time we have big boots to fill. Diamond is the closest realization of the same thing on the A8, and that's some way behind GEOS, largely because of the lack of applications. But GEOS, Diamond and the new GUI all belong to the same family: they are full resident frameworks for which one can code applications. GEOS is in fact an operating system, since it has its own DOS, while Diamond and the "new one" sit on top of DOS. SpartaDOS X is also an operating system because one can write applications entirely reliant on the resident libraries it provides, and the hardware is entirely abstracted. That's not to say you can't achieve similar visual effects using other methods and in other languages. If there are other A8 GUIs for which one can write entirely hardware abstracted applications entirely in assembler, I apologize if I've missed them out. There are also other possibilities in Mads: create_window(window_title_flag, #88, #70, #144, #60) create_button(client_handle, #16, #20, #48, button1_text) Is that pretty? And where your libraries are something like create_window .proc (.byte object_flags .byte cx .byte cy .byte width, .byte height) .var ... rts .endp create_button .proc(.byte parent, .byte cx, .byte cy, .byte width, .word ax) .var ... rts .endp The generated code is the same. No overhead. Looks very nice indeed. This will work great for applications (in RAM), although not the library code in ROM itself (as I understand the parameters are stored at the head of the procedure code, unless one is using the software stack). And there is more: You can change the program directly via parameter without an extra location by defining the destination of the parameter as location in the executing code (eg.in "MYLABEL AND #00" destination is the 00 as MYLABEL+1) Maybe you can use it. Anyway: Mads is very cool! Great stuff - thanks for those tips. Keep 'em coming, since I'm aware there's a lot about MADS about which non-Polish speakers are simply unaware. Quote Link to comment Share on other sites More sharing options...
1NG Posted May 11, 2012 Share Posted May 11, 2012 (edited) Looks very nice indeed. This will work great for applications (in RAM), although not the library code in ROM itself (as I understand the parameters are stored at the head of the procedure code, unless one is using the software stack). Great stuff - thanks for those tips. Keep 'em coming, since I'm aware there's a lot about MADS about which non-Polish speakers are simply unaware. I just tested it and it works were you want! look here: org $90 cx .ds 1 cy .ds 1 client_handle .ds 1 org $2400 create_button client_handle, #16, #20, #48, button1_text create_button client_handle, #32, #20, #48, button2_text button1_text dta d'Hallo' .db 0 button2_text dta d'Hallo' .db 0 create_button .proc(.byte parent .byte cx .byte cy .byte width .word lab0+1).var clc and cx adc cy sta width lab0 ora $0000 rts width dta $00 parent dta $00 .endp wich gets to the code mads 1.9.2 build 21 (21 Jan 11) Source: C:\c\wudsnprojects161\gedplus2\proc.asm 1 2 org $90 3 = 0090 cx .ds 1 4 = 0091 cy .ds 1 5 = 0092 client_handle .ds 1 6 org $2400 7 8 create_button client_handle, #16, #20, #48, button1_text 8 MVA CLIENT_HANDLE CREATE_BUTTON.PARENT\ MVA #16 CX\ MVA #20 CY\ MVA #48 CREATE_BUTTON.WIDTH\ MWA BUTTON1_TEXT CREATE_BUTTON.LAB0+1\ JSR CREATE_BUTTON 8 FFFF> 2400-245A> A5 92 + MVA CLIENT_HANDLE CREATE_BUTTON.PARENT 8 2405 A9 10 85 90 MVA #16 CX 8 2409 A9 14 85 91 MVA #20 CY 8 240D A9 30 8D 59 24 MVA #48 CREATE_BUTTON.WIDTH 8 2412 AD 42 24 8D 57 24 + MWA BUTTON1_TEXT CREATE_BUTTON.LAB0+1 8 241E 20 4E 24 JSR CREATE_BUTTON 9 create_button client_handle, #32, #20, #48, button2_text 9 MVA CLIENT_HANDLE CREATE_BUTTON.PARENT\ MVA #32 CX\ MVA #20 CY\ MVA #48 CREATE_BUTTON.WIDTH\ MWA BUTTON2_TEXT CREATE_BUTTON.LAB0+1\ JSR CREATE_BUTTON 9 2421 A5 92 8D 5A 24 MVA CLIENT_HANDLE CREATE_BUTTON.PARENT 9 2426 A9 20 85 90 MVA #32 CX 9 242A A9 14 85 91 MVA #20 CY 9 242E A9 30 8D 59 24 MVA #48 CREATE_BUTTON.WIDTH 9 2433 AD 48 24 8D 57 24 + MWA BUTTON2_TEXT CREATE_BUTTON.LAB0+1 9 243F 20 4E 24 JSR CREATE_BUTTON 10 11 12 13 14 2442 28 61 6C 6C 6F button1_text dta d'Hallo' 15 2447 00 .db 0 16 2448 28 61 6C 6C 6F button2_text dta d'Hallo' 17 244D 00 .db 0 18 19 20 244E create_button .proc(.byte parent .byte cx .byte cy .byte width .word lab0+1).var 21 244E 18 clc 22 244F 25 90 and cx 23 2451 65 91 adc cy 24 2453 8D 59 24 sta width 25 2456 05 00 lab0 ora $0000 26 2458 60 rts 27 28 2459 00 width dta $00 29 245A 00 parent dta $00 30 31 .endp That is the same MVA #xx yy as in your code. If yy is in ram it works too. Look the cx above. You don´t need a software stack for that. I like that very much! proc.asm Edited May 11, 2012 by 1NG 1 Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted May 12, 2012 Author Share Posted May 12, 2012 I just tested it and it works were you want! Excellent! +10 for that. The fact that the variables don't have to be inline is essential for ROM-based code. Of course, in applications both methods will work. Looks very smart indeed. I like that very much! Me too - thank you! Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted May 12, 2012 Author Share Posted May 12, 2012 Short of time at the moment, but object tree deletion is working now (as usual, one simple, stupid bug wasted over an hour). Just need to get the code size down sufficiently to get memlo up a bit so that demo will work with DOS 2.5: 6 Quote Link to comment Share on other sites More sharing options...
w1k Posted May 12, 2012 Share Posted May 12, 2012 wow, awesome Quote Link to comment Share on other sites More sharing options...
+Stephen Posted May 13, 2012 Share Posted May 13, 2012 Simply stunning Quote Link to comment Share on other sites More sharing options...
atarixle Posted May 13, 2012 Share Posted May 13, 2012 (edited) (as usual, one simple, stupid bug wasted over an hour) Oh, yeah, I absolutely know what you mean! :D What I was counting bytes in my head, when I wrote my indexed-search-tool before it nearly worked the first time. Edited May 13, 2012 by atarixle Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted May 15, 2012 Author Share Posted May 15, 2012 CM8833-II swivel stand arrived today... the shape of things to come: :D 1 Quote Link to comment Share on other sites More sharing options...
atarixle Posted May 15, 2012 Share Posted May 15, 2012 looks too professional Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted May 15, 2012 Author Share Posted May 15, 2012 Thinking of using RMT for sounds in this system. Playback code looks pretty economical, although I worry about interference with the Pokey timer interrupts used for the mouse driver. Biggest obstacle is the fact that - despite being a jazz guitarist - I'm no multi-track music editor. Therefore contributions for simple system sounds (bells, burps, buzzers, etc) are welcome. Quote Link to comment Share on other sites More sharing options...
andym00 Posted May 15, 2012 Share Posted May 15, 2012 Personally, I think that'd be overkill, and maybe short sighted given how I imagine this whole OS might go I'd say implement OS level access to the sound registers and let each app do what it wants, with the OS determining what goes to the actual hardware, so initially say the app in focus has access to the sound hardware.. But cache each apps current state when not in focus to allow you to restore it at a later date.. The OS can then easily override the Apps sounds, on a channel by channel basis, for any immediate bleeps and bloops required for alerting the user to impending doom and/or fuckwittery Any real hardware is only going to be a jsr (or so) away and it's not like there's a mountain of registers for each voice, and I'd say also allow an app to request exclusive access to a voice so fancy arsed can still work without breaking everything.. Or have each voice used by an app prioritised and then only update those that are assigned physical voices.. That way you can have multiple apps (if you ever multi-tasked) each accessing audio sensibly.. Just my small fraction of an ever declining currency Quote Link to comment Share on other sites More sharing options...
thgill Posted May 15, 2012 Share Posted May 15, 2012 I am sure this have been mentioned, but it already looks better than GEM on the ST. Quote Link to comment Share on other sites More sharing options...
andym00 Posted May 15, 2012 Share Posted May 15, 2012 Lol, just dawned on me I misread the question Quote Link to comment Share on other sites More sharing options...
+DarkLord Posted May 15, 2012 Share Posted May 15, 2012 I am sure this have been mentioned, but it already looks better than GEM on the ST. I tend to agree, with the earlier versions of GEM/TOS anyway. Flashcatjazz has done a great job. I need to google the desktops from other 8bit OS's, that's where the real comparison lies, IMHO... EDIT: Hahahaha, just had to point this out - why is it that searching on "8 bit operating system pictures" brings up so many hits on "Windows 8"?.... Quote Link to comment Share on other sites More sharing options...
spookt Posted May 15, 2012 Share Posted May 15, 2012 Dear Jon Much as I admire the swivelyness of your monitor, I am very sure it is tomorrow already. ... ... ... ... ... ... ... ... :D 1 Quote Link to comment Share on other sites More sharing options...
+MrFish Posted May 15, 2012 Share Posted May 15, 2012 Much as I admire the swivelyness of your monitor, I am very sure it is tomorrow already. In case you hadn't noticed, Jon isn't very good with deadlines -- setting them or meeting them. 1 Quote Link to comment Share on other sites More sharing options...
spookt Posted May 15, 2012 Share Posted May 15, 2012 Much as I admire the swivelyness of your monitor, I am very sure it is tomorrow already. In case you hadn't noticed, Jon isn't very good with deadlines -- setting them or meeting them. Right! There's nothing else for it. I'm going to have to drive up there and stand over him. Quote Link to comment Share on other sites More sharing options...
+MrFish Posted May 15, 2012 Share Posted May 15, 2012 Much as I admire the swivelyness of your monitor, I am very sure it is tomorrow already. In case you hadn't noticed, Jon isn't very good with deadlines -- setting them or meeting them. Right! There's nothing else for it. I'm going to have to drive up there and stand over him. Hold a gun to one of his 1084's, that'll do it. Quote Link to comment Share on other sites More sharing options...
spookt Posted May 15, 2012 Share Posted May 15, 2012 Hold a gun to one of his 1084's, that'll do it. Heh, or a sun lamp! 1 Quote Link to comment Share on other sites More sharing options...
+MrFish Posted May 15, 2012 Share Posted May 15, 2012 Hold a gun to one of his 1084's, that'll do it. Heh, or a sun lamp! Hehe... Nah, then he'll just think it's time to retrobright again. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted May 16, 2012 Author Share Posted May 16, 2012 Lol, just dawned on me I misread the question What question? I am sure this have been mentioned, but it already looks better than GEM on the ST. I tend to agree, with the earlier versions of GEM/TOS anyway. Flashcatjazz has done a great job. I need to google the desktops from other 8bit OS's, that's where the real comparison lies, IMHO... Well, we might not get much mileage out of comparing like-for-like performance with that of 16-bit operating systems, but I see nothing wrong with aesthetic comparisons to any other system. TOS 2.06, the last version for my Atari STe. NeoDesk... Ours... Our menus... And finally TeraDesk on a Falcon (!). Each have their pros and cons. The bigger machines can afford to space things out a little, since they have the benefit of double the A8's screen resolution. I didn't bother posting a shot of GEM in low res. From my reading of the TOS sources, GEM appears to work ostensibly on an 80x25 character grid, hence the window furniture tends to occupy one or more of these cells. This kind of makes sense when you're using a mono-spaced UI font. The A8 GUI still aligns some things (such as windows) to byte boundaries, but in point of fact this is merely convenience since pixel-precise positioning (owing to the way masking and clipping are handled) is no more expensive on pixel boundaries than it is on byte boundaries. The only reason windows snap to byte boundaries is that I haven't bothered making the scroll-bars non-byte aligned, and it may prove unnecessary to do so (after all, it saves a few cycles not shifting things via the LUT). Much as I admire the swivelyness of your monitor, I am very sure it is tomorrow already. In case you hadn't noticed, Jon isn't very good with deadlines -- setting them or meeting them. Right! There's nothing else for it. I'm going to have to drive up there and stand over him. Hold a gun to one of his 1084's, that'll do it. Certainly I'm one of Planet Earth's worst time-keepers. However, I'm eccentric so that's my excuse, lol. Most wives will testify that "tomorrow" when asserted by the husband actually means some time in the next decade (tiling bathroom, etc). However, the demo will be out long before I get the bathroom done. 1 Quote Link to comment Share on other sites More sharing options...
spookt Posted May 16, 2012 Share Posted May 16, 2012 Certainly I'm one of Planet Earth's worst time-keepers. However, I'm eccentric so that's my excuse, lol. Most wives will testify that "tomorrow" when asserted by the husband actually means some time in the next decade (tiling bathroom, etc). However, the demo will be out long before I get the bathroom done. Ah well, at least you have your priorities straight 1 Quote Link to comment Share on other sites More sharing options...
+DarkLord Posted May 16, 2012 Share Posted May 16, 2012 Each have their pros and cons. The bigger machines can afford to space things out a little, since they have the benefit of double the A8's screen resolution. I didn't bother posting a shot of GEM in low res. That's okay, I will. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted May 16, 2012 Author Share Posted May 16, 2012 Wow - they are some big-ass icons. Seriously that's a nice little enhancement: I've been following its progress in the ST section. Quote Link to comment Share on other sites More sharing options...
w1k Posted May 16, 2012 Share Posted May 16, 2012 blue-green colors is not good - strong contrast.. i preffer smallest icons. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.