freemint / tos.hyp

The tos.hyp tries to document all functions from TOS. It also has information about MagiC, N.AES, MyAES, Geneva, XaAES, oAESis and some emulators.
https://freemint.github.io/tos.hyp
GNU General Public License v2.0
13 stars 11 forks source link

Geneva example maybe wrong #119

Open th-otto opened 1 year ago

th-otto commented 1 year ago

I think the example a

https://github.com/freemint/tos.hyp/blob/040c7bac5f8149060ff6cd9a725f50575adb3572/gem/aes/wind_/wind_get_set_geneva.ui#L462

is wrong, and the call should be x_wind_create(MOVER, X_MENU

You cannot OR in X_MENU to the normal window flags, because they conflict. @pulsar122 can you maybe check this?

xdelatour commented 1 year ago

You're right, you can't use wind_create with extended attributes. Binding is: int x_wind_create( int kind, int xkind, int wx, int wy, int ww, int wh ); with #define X_MENU 0x0001.

I have a working setup for Hatari + Geneva here.

[EDIT] Confirmed. Works with x_wind_create

rsrc_gaddr(0, MYMENU, &menu_addr);
handle = x_wind_create( MOVER,X_MENU, 20, 20, 200, 200 ); 
wind_set_ptr(handle, X_WF_MENU,menu_addr); 
xdelatour commented 1 year ago

Btw @th-otto, are there Geneva bindings for gcc? (I wrote x_wind_create by hand for testing)

th-otto commented 1 year ago

No, i don' think so, they are still missing. I guess there aren't many programs that make use of geneva specific calls. All the corresponding definitions (X_MENU etc) are missing, too.

xdelatour commented 1 year ago

~[EDIT] X_MENU is missing too, but X_WF_xxx subfunctions are in gem.h~. About missing définitions, it's one more thing to add to the todo list.

I wonder if I can move the two conflicting bits of the high-word of xkind and use intin[1] instead of intin[5] in XaAES so x_wind_create will be compatible with both Geneva and XaAES. This will allow access to others extended attributes such as UPARROW1 and LFARROW1

th-otto commented 1 year ago

Hm, i don't understand. Where are you referencing intin[5]? Anyway, you simply cannot change the way parameters are passed to AES.

xdelatour commented 1 year ago

XaAES is able to use intin[5] as high-word of window attributes but there is no binding yet

X_MENU (Geneva) et XMENU (XaAES) are the same thing. Unfortunately menu events are not the same

xdelatour commented 1 year ago

Patch: geneva-20230422.patch.txt

Fixes:

th-otto commented 1 year ago

Thanks, applied now.

th-otto commented 1 year ago

BTW, while looking up the programmer documentation, i noticed that the file that i have (gnvamain.rtf) seems to have the same corruptions that you already fixed in the patch above. There seem to be lots of truncated words, bit-flips etc. Is there maybe some better version floating around?

xdelatour commented 1 year ago

All files are corrupted (rtf, html, ascii). I don't have a tool to convert the other available files (stw and papyrus). Nevertheless, I tried to fix some errors: gnva.zip

th-otto commented 1 year ago

Don't know what *.stw is, but i could not even extract the lzh archive. The papyrus doc seems to have the same corruptions as the other files.

There is a pdf version of the manual also on dev-docs, but it seems to be from some older version (1.02) and therefor not quite complete. Also it is just an image scan, no text available there :(

xdelatour commented 1 year ago

I don't have any other docs.

About *.stw, I thought it was Star-Writer but it's Atari Works. File cannot be opened. Looks corrupted too. With an hex-editor, some text is readable but the second half doesn't make sense.

mikrosk commented 1 year ago

Quickly tried files from https://taflee.tripod.com/gnvamain.html, they look fine? Or is that the older version Thorsten was talking about?

th-otto commented 1 year ago

They also seem to be corrupted. If you look at https://taflee.tripod.com/gnvb.html#26.6, you can't click most of the links, and eg. x_appl_sleep() (26.6.4) isn't rendered at all.