326

(86 odpowiedzi, napisanych Fabryka - 8bit)

pajero napisał/a:

Łe, pogieło mnie ;)
Czy finalnie żródła kodu udostępnisz?

No. ;)

327

(106 odpowiedzi, napisanych Fabryka - 8bit)

Pin napisał/a:

Wow :) - When final version?

Heh... six months for the first beta, I'd say. There's still a lot to do. :)

328

(106 odpowiedzi, napisanych Fabryka - 8bit)

Cosi napisał/a:

Very impressive. At first glance it looks much better than Commodore's GEOS.
Have you thought about turning your GUI into a standalone OS?

Thanks! Yes - I have considered that. I figure we need to make the UI work first, and release a version which works with DOS (SDX, MyDOS, etc). Beyond that, we can start to think about loftier goals, such as multi-tasking, and an integral FMS.

wieczor napisał/a:

What types of mouses are supported ? ST, Amiga, Geos?..

At the moment, ST (and compatible) mice only, although Amiga mouse compatibility is simple to add. We'll also support joystick, touch-tablet, etc, etc, in finished version. Keyboard control will also be possible.

329

(106 odpowiedzi, napisanych Fabryka - 8bit)

First demo:

http://www.atari8.co.uk/downloads/gui_10_06_11.zip

Guidelines and notes:


•Run this with BASIC off and no carts present (SDX users use "X GUI.XEX"). You can boot the file with an XEX loader (for example, in an emulator), since it doesn't yet require DOS.
•You need a mouse on port 2.
•Use File->New to open more windows on the desktop. They're all called "C:>*.*" at the moment.
•Use Tools->Hide Mouse to toggle mouse pointer hiding when doing redraws. When the option is ticked, the mouse pointer will disappear and flicker, etc. Personally I can hardly tell the difference performance wise.
•Single-click registering is very slow: this is just a tweaking issue I was too tired to rectify this evening. To bring a back window to the front or use the maximize button (which doesn't toggle yet), you'll need to hold the left button down for a good second.
•You shoudn't need to single-click a back window before dragging its scroll handle or size box, etc, but you do at the moment. This is because I haven't finished the buffered event pipe yet.
•You can't close windows down yet.
•The desktop icons aren't "live" yet (i.e. they don't do anything).
•Don't be surprised if you manage to make a window wrap around and create screen garbage. The boundary checks are rough at the moment.
•The border flash is part of some debug code.
•Please no complaints about full desktop redraws. I'm well aware of what needs to be done. There are no back buffers or any "smart" redraws at the moment. That comes later.
•There are several really terrific bugs just waiting to be discovered.

There's a very odd bug which I need to track down which creates all kinds of problems when new code gets inserted or old code removed. I figure there's some rogue write going on in RAM which does or doesn't upset something important depending on the size of the code. Gonna be fun tracking that one down.

I've probably forgotten to mention some other salient points. Hopefully I'll get some feedback over the weekend.

I optimized the VBL and slashed a load of cycles out of it this evening: it now uses the font renderer bit-shift lookup table to divide MOUSE_X by 8. I also created a lookup table for the dynamic DLI to save doing computations on MOUSE_Y in relation to the display list. This has probably saved several thousand cycles per second.

Lots of changes in the pipeline, so hopefully this will be the first of many regular updates.

330

(0 odpowiedzi, napisanych Fabryka - 8bit)

The saga of the cursed version 3.21 of The Last Word continues...

Please download version 3.21b to correct sluggish screen redraw just discovered in version 3.21a:

http://www.atari8.co.uk/downloads/LW321B.zip

331

(0 odpowiedzi, napisanych Fabryka - 8bit)

I always wanted to put an Easter Egg in The Last Word, but it wasn't until last night that I discovered I'd put one in by accident. :)

When deleting files on the disk menu - either individually or as tagged groups - answering "No" to the "Delete file? (Y/N)" prompt did not cancel file deletion. I discovered this to my cost when accidentally hitting CTRL+D in the disk menu. Pressing Escape still worked, however.

I've prepared a critical fix in the form of release 3.21a. While I was about it, I fixed a bug in the display routine, and implemented support for custom RAM banking tables (useful if you want to specify exactly which extended banks are used). You can read about the changes in LW321A.TXT on the distribution ATRs.

Download and info:

http://www.atari8.co.uk/lastword/

332

(106 odpowiedzi, napisanych Fabryka - 8bit)

Memory manager? If your interested in this, there's quite a long discussion about it on the AtariAge forums. All the memory - in the first instance - must be allocated out of 16KB extended banks. I'm using a separate heap bank for the object tree and the attendant data (such as the text strings in menus, attached to menu item objects in the object tree bank). What we'll eventually end up with is a virtual addressing system, so that that data can be allocated out of a 64KB pool. Or, possibly, we'll sub-divide the memory into a number of smaller pools. Since applications in the banked region need to freely access data in the extended banks, there's a lot of complex work to be done.

Anyway: the heap structure and a number of interesting variations are discussed in great detail over at AA. :)

333

(11 odpowiedzi, napisanych Fabryka - 8bit)

Slight update to the Polish font pack:

http://www.atari8.co.uk/lastword/

334

(106 odpowiedzi, napisanych Fabryka - 8bit)

Lack of cache memory or masking until I get the banked memory manager working. Stuff behind front window won't redraw in  final version.

But seriously, even with a full screen redraw, compare this to Diamond GOS. :)

335

(106 odpowiedzi, napisanych Fabryka - 8bit)

Full desktop redraw with icons and labels:

http://youtu.be/EvtD0ye15Yg

336

(11 odpowiedzi, napisanych Fabryka - 8bit)

Polish font pack for The Last Word (thanks to MrFish):

http://www.atari8.co.uk/lastword/

337

(106 odpowiedzi, napisanych Fabryka - 8bit)

I have done, but the error message is confusing. It merely says "READY". :)

338

(106 odpowiedzi, napisanych Fabryka - 8bit)

Has the vodka worn off? :)

339

(106 odpowiedzi, napisanych Fabryka - 8bit)

Demo by the weekend, with overlapping windows: just need to code up the scrollbar scaling:

http://www.youtube.com/watch?v=Enh5MQaK4sc

340

(106 odpowiedzi, napisanych Fabryka - 8bit)

Indeed so... everything takes longer than expected, and I took a break from the GUI last week. However, I now return to the project refreshed and recharged, so expect something soon. However, it's more important to do everything right than to do everything fast. :)

341

(106 odpowiedzi, napisanych Fabryka - 8bit)

Progress is slow, but the scrollbars are working:

http://www.youtube.com/watch?v=2H1xJUF3jes

A downloadable demo with a movable, sizeable window (or two) will be available in the next few days. After that, I'll take a short break to do other things, then come back and optimize what I've written, do some more planning, and then start the dialogue handler and the virtual window coordinate system.

342

(2 odpowiedzi, napisanych Software, Gry - 8bit)

The software you're using (version 4.0) is effectively an alpha version (assuming it's the one using the hardware 80 column mode - it's not easy to discern from the video). It was never finished, and is doubtless full of bugs. Completing the VBXE version is one of the dozen or so jobs competing for my time right now. However, now that version 3.21 is finalized, perhaps it would be a good opportunity to code up a VBXE version. :)

343

(106 odpowiedzi, napisanych Fabryka - 8bit)

Have a look over at the Atari Age forum to see how the project is progressing. I considered it more important to make significant progress on the core code than release frequent demos. I am currently working on a resource manager (having done a complete re-write of the menu manager) and when this is closer to completion I will release another demo for people to play with. It will demonstrate a movable/sizeable window with a complete set of controls, as well as the menu system and some static icons on the desktop.

344

(106 odpowiedzi, napisanych Fabryka - 8bit)

Pin napisał/a:

Pamiętaj, że mamy - powiedzmy że 1.77Mhz i podejście do tematu grafiki bitowej od strony jeszcze dodatkowego sterownika finalnie na ekranie wyglądać może jak oglądanie filmu, gdzie na każdą sekundę przypada 2 klatki :D - To tak, jak byś chciał napisać cieniowanie Gourauda w Basicu. Wcale nie mówię, że się nie da. Da się - pytanie tylko jaki otrzymamy efekt finalny.

Nie neguję oczywiście chęci, lub tego co można ciekawego zrobić, bo różne niemożliwe cuda miałem okazję na Atari widywać - wszelako; chętnie pobawię się produktem finalnym ;)-

Where's the question? Have you actually looked at this? :)

http://www.youtube.com/watch?v=mpx0gUpwyQo

OK - it's a menu. But there's a lot of processing going on there. I'm not saying that the finished product is going to run as fast as Windows. It would be insanity to expect such things. But it ought to be fast enough. I have not yet produced any slide shows... ;)

345

(106 odpowiedzi, napisanych Fabryka - 8bit)

Pin napisał/a:

wieczor :) - nic nie mówię, lecz wydaje mi się, iż dostosowanie GUI ze zwykłego Atari do pracy pod VBXE oznacza jego napisanie od zera :)

What - rewriting the whole GUI from scratch? I have around 2,500 lines of code, and only 500 lines of code (those in the GFX.S module) are concerned with drawing to the screen. And of those 500 lines of code, there are about 20-30 direct writes to the screen RAM. Moreover, GFX.S hasn't grown in size for weeks (while GUILIB.S grows exponentially). There is much more to a GUI than drawing lines and blitting. The bulk of the system is all about object manipulation.

wieczor napisał/a:

A skadze znowu. To tylko kwestia zalozen przy tworzeniu i o to wlasnie chodzi - zanim zacznie sie tworzyc. GUI to nie stawianie pikseli na ekranie, czy rysowanie okien a do tego sprowadza się kwestia sterownika.

Jesli zaczniesz robic GUI koncentrujac sie na rysowaniu, to nie osiagniesz sukcesu bo to jest samo dno hierarchii kodu, zaplaczesz sie w szczegolach technicznych. Dlatego takie rzeczy robi sie dwuwarstwowo - tworzy sie biblioteke operacji ekranowych a nastepnie logike ktora z nich korzysta. Zmiana urzadzenia - to zmiana biblioteki. Przeciez GUI ma robic znacznie wiecej nic narysowac okienko.

Exactly so. Most of the GUI operations are reducible to:

- Clear an area of the screen
- Move an area of the screen to a back-buffer
- Move buffered background data back to the screen
- XOR an area of the screen
- Draw a horizontal/vertical line
- Blit a bitmap to the screen (an icon or alpha character)

This is all pretty straightforward and re-usable code (e.g. the code to draw boxes and drop-shadow boxes simply calls the draw horizontal/vertical line routine a few times). To implement VBXE support, one would change the clipping limits, re-write PARTS of GFX.S, replace certain code with blitter operations, etc. Not a trivial task, but probably only a month's work.

As for drivers, why on earth would I concern myself with a device independent screen driver when I'm writing a GUI for an Atari 8-bit? 99.9% of these machines have a fixed 1bpp 320x192 display. Why overload screen draw operations with multiple levels of indirection, varying screen dimensions, etc, just to have a system which runs sluggishly but which is easier to convert for VBXE use?

The fact is, it would be better to regard GFX.S as the "driver", and to think in terms of "draw line", "render bitmap", and "clear screen area" as the lowest-level operations. There are half a dozen such operations at the moment, and this code is all we need to re-write to implement support for VBXE modes.

Programujac liniowo albo nie zrobi sie tego w ogole albo zajmie to lata, a i tak sledzenie bledow bedzie koszmarem. Wszystko jest kwestia kompromisu

Well said. Of course the "proper" way would be to render everything at the pixel level and simply implement a driver which provides the low-level interaction with the screen. But this is an Atari 8-bit with a 6502 processor. I said at the start that the GUI would have to employ "techniques normally seen in games and demos". How many demos draw to the screen using the CIO? :D

346

(106 odpowiedzi, napisanych Fabryka - 8bit)

@wieczor: most of the screen handling for the UI (clearing window areas, drawing frames, etc) bypasses pixel-level operations and works directly with the screen RAM. As I've said elsewhere, it's simply essential for the sake of speed. Drawing primitives (circles, diagonal lines, flood fills, etc) will be a completely separate concern. Indeed, depending on how much room the UI consumes (at the moment, it's about 6KB of code), the drawing library could be loaded solely by those apps which require it (e.g. a drawing program), otherwise it's just taking up space 90% of the time.

Naturally, with successive optimisations, "draw dialogue" and "draw window" will share the same base code. I'm starting to write all the dialogue controls now, and this means designing structures for the header file, writing all the methods, expanding the dispatcher. It will take months of steady progress. :)

347

(106 odpowiedzi, napisanych Fabryka - 8bit)

VBXE modes would obviously solve a lot of problems (such as representing a 72dpi document on the screen), but the objective is to get something working on standard hardware first. Of course it's fairly easy to add VBXE support later: amend masking and screen RAM write routines, and adjust the size of the root (SCREEN) object in memory. But naturally when you introduce device independence, you introduce an overhead. "JSR write_byte" is many cycles slower than "STA (SCR),Y". Let's get the basics out of the way first. In any case, with VBXE's blitter, it would be difficult NOT to write a fast and responsive GUI. Or one could just use an ST. :)

Pin's meaning is especially hard to translate, ;) but SDX plus GUI is a match made in heaven. The system will use the full features of the Sparta FS, and will have a clock-widget in the top-right corner of the screen. You'll double-click on it to set the system time. Drag and drop files(s) from one folder to another. The usual basic GUI stuff.

Cartridge or files? Who knows. I'll make the best practical decision after taking everything into account. All my software has always been free. If it's on a cart, you'll have to buy yourself a flashable cart and flash the GUI onto it. It's it's on disk, there is zero financial outlay. :)

Cascading menus are now finished, and I've started the window/dialogue render routines, and the rest of the event handler. It will take several weeks to code up all the controls (scroll bars, text boxes, list boxes, buttons, etc, etc).

348

(106 odpowiedzi, napisanych Fabryka - 8bit)

Hopefully it will work with MyIDE/SIDE - much depends on whether the core library is placed on a cartridge.

349

(106 odpowiedzi, napisanych Fabryka - 8bit)

The new GUI will be able to launch "legacy" applications and return to the desktop. It's a pretty essential feature. I should have listed that in the specifications. :)

350

(106 odpowiedzi, napisanych Fabryka - 8bit)

Polish doesn't come across very well in Google Translation, but TRS desktop is very impressive. So is Boss-X. The new GUI is not in any way in competition with these two products. It will, however, offer a complete API for programmers. The idea is that the application has a unified GUI "look and feel", and interacts with the user only via calls to the API. It has a full object heirarchy (like Contiki), widgets, fonts in various sizes, scrollable windows, etc, etc. All applications will have the same skeletal framework. The GUI is in machine code and is totally language independent. It can sit on a cartridge or go under the OS.

I wanted to write GUI applications for the Atari but I couldn't find anything which provided an API for programs. Diamond came close to what I wanted, but lacks several important components. Therefore I'm writing it myself. :)