Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
294 user(s) are online (121 user(s) are browsing Forums)

Members: 0
Guests: 294

more...

Support us!

Headlines

 
  Register To Post  

« 1 ... 10 11 12 (13) 14 15 16 ... 22 »
Re: Porting to AmigaOS4 thread
Just can't stay away
Just can't stay away


See User information
@Raziel

No problem. As said, will post my code/source I used in/with CodesetsConvertStr().

Go to top
Anonymous
Re: Porting to AmigaOS4 thread
@jabirulo

Thank you

Go to top
Re: Porting to AmigaOS4 thread
Just can't stay away
Just can't stay away


See User information
@Raziel

Ok, here is code "converted", dunnot if it will crash/GR or make your system burn

#if defined(__amigaos4__) && defined(USE_SYSDIALOGS) 

#include "backends/dialogs/amigaos/amigaos-dialogs.h" 

#include "common/config-manager.h" 
#include "common/encoding.h" 


#include <proto/codesets.h> 
//#include <libraries/codesets.h> 

#include <proto/asl.h> 
#include <proto/dos.h> 
#include <proto/exec.h> 

#include <cstring>
#include <cstdlib>


struct Library *CodesetsBase = NULL;
struct CodesetsIFace *ICodesets = NULL;



char *AmigaOSDialogManager::utf8ToLocal(char *in) { 

    if (!
in) { 
        return 
strdup(""); 
    } 

    
CodesetsBase = IExec->OpenLibrary("codesets.library", 6); 
    if (
CodesetsBase) { 

ICodesets = (CodesetsIFace *)IExec->GetInterface(CodesetsBase, "main", 1L, NULL);

struct codeset *srcmib = ICodesets->CodesetsFind("ISO-8859-1", CSA_FallbackToDefault,FALSE, TAG_DONE);

        
//LONG dstmib = CSA_DestCodeset(NULL, 0); 
        
struct codeset *dstmib = ICodesets->CodesetsFind("UTF-8", CSA_FallbackToDefault,FALSE, TAG_DONE);

        
//if (dstmib != CS_MIBENUM_INVALID) { 
        
if(dstmib != NULL) {
            
//LONG dstlen = FSGetByteSize((APTR)in, -1, CS_MIBENUM_UTF_8, dstmib); 
            
ULONG dstlen = ICodesets->CodesetsStrLen(in, TAG_END);

            
char *out = (char *)malloc(dstlen + 1); 
            if (
out) { 
                if( (
out=ICodesets->CodesetsConvertStr(CSA_SourceCodeset, srcmib,
                                                       
CSA_DestCodeset, dstmib,
                                                       
CSA_Source,      in,
                                                       
//CSA_DestLenPtr,  &dstlen,
                                                      
TAG_DONE)) != NULL) {
                
//if (ConvertTagList((APTR)in, -1, (APTR)out, -1, CS_MIBENUM_UTF_8, dstmib, NULL) != -1) { 
IExec->DropInterface( (struct Interface *)ICodesets );
ICodesets = NULL;
        
IExec->CloseLibrary(CodesetsBase);
CodesetsBase = NULL;
                    return 
out; 
                }
                
free(out); 
            } 
        } 
IExec->DropInterface( (struct Interface *)ICodesets );
ICodesets = NULL;
        
IExec->CloseLibrary(CodesetsBase);
CodesetsBase = NULL;
    } 

    return 
strdup(in); 
}

Go to top
Anonymous
Re: Porting to AmigaOS4 thread
@jabirulo

Thank you very much

I now get only one more warning

C++      backends/dialogs/amigaos/amigaos-dialogs.o
backends
/dialogs/amigaos/amigaos-dialogs.cpp: In member function 'virtual Common::DialogManager::DialogResult AmigaOSDialogManager::showFileBrowser(const Common::U32String&, Common::FSNode&, bool)':
backends/dialogs/amigaos/amigaos-dialogs.cpp:111:56: warning: cast from type 'const value_type*' {aka 'const char*'} to type 'char*' casts away qualifiers [-Wcast-qual]
   
char *newTitle = utf8ToLocal((char *)utf8Title.c_str());
                                                        ^


- i get a working exe with an asl requester opening
- closing the requester works too, but

after closing the requester once i can not open another instances

Can you spot the mistake?

struct Library *AslBase = IExec->OpenLibrary(AslName, 50);
struct AslIFace *IAsl;

Common::DialogManager::DialogResult AmigaOSDialogManager::showFileBrowser(const Common::U32String &title, Common::FSNode &choice, bool isDirBrowser) {

    
char pathBuffer[MAXPATHLEN];
    
Common::String utf8Title = title.encode();    
    
DialogResult result = kDialogCancel;

    if (
AslBase) {

        
IAsl = (struct AslIFace*)IExec->GetInterface(AslBase, "main", 1, NULL);

        
struct FileRequester *fr = NULL;

        if (
ConfMan.hasKey("browser_lastpath")) {
            
strncpy(pathBuffer, ConfMan.get("browser_lastpath").c_str(), sizeof(pathBuffer)-1);
        }

        
fr = (struct FileRequester *)IAsl->AllocAslRequestTags(ASL_FileRequest, TAG_DONE);

        if (!
fr)
            return 
result;

        
char *newTitle = utf8ToLocal((char *)utf8Title.c_str());

        if (
IAsl->AslRequestTags(fr, ASLFR_TitleText, newTitle, ASLFR_RejectIcons, TRUE, ASLFR_InitialDrawer, pathBuffer, ASLFR_DrawersOnly, (isDirBrowser ? TRUE : FALSE), TAG_DONE)) {

            if (
strlen(fr->fr_Drawer) < sizeof(pathBuffer)) {
                
strncpy(pathBuffer, fr->fr_Drawer, sizeof(pathBuffer));
                if (!
isDirBrowser) {
                    
IDOS->AddPart(pathBuffer, fr->fr_File, sizeof(pathBuffer));
                }
                
choice = Common::FSNode(pathBuffer);
                
ConfMan.set("browser_lastpath", pathBuffer);
                
result = kDialogOk;
            }
            
free(newTitle);
            
IAsl->FreeAslRequest((APTR)fr);
        }
        
IExec->DropInterface((struct Interface*)IAsl);
        
IAsl = NULL;
        
IExec->CloseLibrary(AslBase); 
        
AslBase = NULL;
    }

    return 
result;
}

Go to top
Re: Porting to AmigaOS4 thread
Just can't stay away
Just can't stay away


See User information
@Raziel

Quote:

struct Library *AslBase = IExec->OpenLibrary(AslName, 50);


Don't open the library here.

Quote:

struct Library *AslBase;


Is enough. AslBase shall be initialized to nullptr because it's a global variable.

Then open the library inside the showFileBrowser(), instead of:

Quote:

AslBase = IExec->OpenLibrary(AslName, 50);
if (AslBase) ...


Cosmetic: probably those NULLs should be converted to nullptr (not sure, check ScummVM coding guidelines). nullptr is what modern C++ prefers.

Quote:

backends/dialogs/amigaos/amigaos-dialogs.cpp:111:56: warning: cast from type 'const value_type*' {aka 'const char*'} to type 'char*' casts away qualifiers [-Wcast-qual]
char *newTitle = utf8ToLocal((char *)utf8Title.c_str());


Try to remove (char*) casting, it's bad. If utf8ToLocal doesn't modify "newTitle" cast unnecessary and in that case utf8ToLocal() should take "const char*" input parameter instead of "char*".




Go to top
Anonymous
Re: Porting to AmigaOS4 thread
@Capehill

Thanks for the pointers, ASL window is now usable more than once.

Some more oddities:

1)
I have no files displayed in the ASL requester window.
Is that expected, since i'm only supposed to choose the directory?
It would be better if the directory entries could be displayed, otherwise the user doesn't know if it's an empty directory in the first place.

2)
I get a crash now when choosing a directory and clicking ok in the asl requester. The asl requestrer goes away, but then it bombs
Crash log for task "scummvm"
Generated by GrimReaper 53.19
Crash occured in module kernel at address 0x02003658
Type of crash
: unknown exception
Alert number
: 0x81000009

Register dump
:
GPR (General Purpose Registers):
   
0: 0201F758 425620F0 17191417 02003670 531E5970 0200B030 02A8824C 61BD1210 
   8
: 628CF360 00000001 00000000 0201DF6C 28842244 425E62C8 425E0000 4DAA9340 
  16
: 7E92E998 00000000 5048B9D0 50D1F470 44DFC60A 44DFC4C0 61B8C088 411F6E3C 
  24
: 00000001 425E0000 00000001 00000000 02A8B092 531E5970 531E5970 02973054 


FPR (Floating Point Registers, NaN = Not a Number):
   
0:             1628              nan              nan     -4.4678e+307 
   4
:    -5.31401e+303    -6.90452e+282              981              128 
   8
:              529             1628               52       4.5036e+15 
  12
:       4.5036e+15      2.14748e+09                0                0 
  16
:                0                0                0                0 
  20
:                0                0                0                0 
  24
:                0                0                0                0 
  28
:                0                0                0                0 

FPSCR 
(Floating Point Status and Control Register): 0x82004000


SPRs 
(Special Purpose Registers):
           
Machine State (msr) : 0x0200B030
                Condition 
(cr) : 0x4D310374
      Instruction Pointer 
(ip) : 0x02003658
       Xtended Exception 
(xer) : 0x411D3018
                   Count 
(ctr) : 0x6FF494D0
                     Link 
(lr) : 0x7FAD9920
            DSI Status 
(dsisr) : 0x411D2DD0
            Data Address 
(dar) : 0x021AD048



680x0 emulated registers
:
DATA: 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
ADDR
: 6FFB8700 971D2500 00000000 00000000 00000000 00000000 00000000 42560F20 
FPU0
:                0                0                0                0 
FPU4
:                0                0                0                0 



Symbol info
:
Instruction pointer 0x02003658 belongs to module "kernel" (HUNK/Kickstart)

Stack trace:
    
native kernel module kernel+0x00003658
    native kernel module kernel
+0x0001f760
    native kernel module newlib
.library.kmod+0x00011714
    native kernel module newlib
.library.kmod+0x00005e2c
    
[backends/dialogs/amigaos/amigaos-dialogs.cpp:127] scummvm:_ZN20AmigaOSDialogManager15showFileBrowserERKN6Common9U32StringERNS0_6FSNodeEb()+0x1f8 (section 1 @ 0x3286C4)
    [
gui/browser.cpp:92] scummvm:_ZN3GUI13BrowserDialog8runModalEv()+0x100 (section 1 @ 0x2BBE80)
    [
gui/launcher.cpp:371] scummvm:_ZN3GUI14LauncherDialog7addGameEv()+0x128 (section 1 @ 0x254350)
    [
gui/launcher.cpp:656] scummvm:_ZN3GUI14LauncherDialog13handleCommandEPNS_13CommandSenderEmm()+0x414 (section 1 @ 0x256A64)
    [
gui/widget.cpp:55] scummvm:_ZN3GUI12ButtonWidget13handleMouseUpEiiii()+0xa4 (section 1 @ 0x2A4EB0)
    [
gui/widget.cpp:511] scummvm:_ZN3GUI20DropdownButtonWidget13handleMouseUpEiiii()+0x4c (section 1 @ 0x2A510C)
    [
gui/dialog.cpp:228] scummvm:_ZN3GUI6Dialog13handleMouseUpEiiii()+0x130 (section 1 @ 0x24CC54)
    [
gui/gui-manager.cpp:395] scummvm:_ZN3GUI10GuiManager7runLoopEv()+0x1a4 (section 1 @ 0x2505B8)
    [
gui/dialog.cpp:77] scummvm:_ZN3GUI6Dialog8runModalEv()+0x44 (section 1 @ 0x24C864)
    [
base/main.cpp:106] scummvm:_ZL14launcherDialogv()+0xe4 (section 1 @ 0x67850)
    [
base/main.cpp:537] scummvm:scummvm_main()+0x2700 (section 1 @ 0x69FAC)
    [
backends/platform/sdl/amigaos/amigaos-main.cpp:79] scummvm:main()+0x12c (section 1 @ 0x66AA0)
    
native kernel module newlib.library.kmod+0x000020a4
    native kernel module newlib
.library.kmod+0x00002d0c
    native kernel module newlib
.library.kmod+0x00002ee8
    scummvm
:_start()+0x170 (section 1 @ 0x1AB8)
    
native kernel module dos.library.kmod+0x000255c8
    native kernel module kernel
+0x000420ac
    native kernel module kernel
+0x000420f4

PPC disassembly
:
 
02003650: 60633670   ori               r3,r3,13936
 02003654
: 44000022   .word             0x44000022
*02003658: 4e800020   blr               
 0200365c
: 7c641b78   mr                r4,r3
 02003660
: 3c600200   lis               r3,512

System information
:

CPU 
 Model
: P.A. Semi PWRficient PA6T-1682M VB1 
 CPU speed
: 1800 MHz 
 FSB speed
: 900 MHz 
 Extensions
: altivec 

Machine 
 Machine name
: AmigaOne X1000 
 Memory
: 2097152 KB 
 Extensions
: bus.pci bus.pcie 

Expansion buses 
 PCI
/AGP 
  00
:1D.0 Vendor 0x1959 Device 0xA004 
   Range 0
: 007F03F8 - 007F0400 (IO) 
  
00:1D.1 Vendor 0x1959 Device 0xA004 
   Range 0
: 007F02F8 - 007F0300 (IO) 
  
00:1A.0 Vendor 0x1959 Device 0xA007 
  00
:00.0 Vendor 0x1959 Device 0xA001 
  00
:01.0 Vendor 0x1959 Device 0xA009 
  00
:14.3 Vendor 0x1959 Device 0xA005 
  00
:1C.0 Vendor 0x1959 Device 0xA003 
   Range 0
: 007F0200 - 007F0240 (IO) 
  
00:1C.1 Vendor 0x1959 Device 0xA003 
   Range 0
: 007F0240 - 007F0280 (IO) 
  
00:1C.2 Vendor 0x1959 Device 0xA003 
   Range 0
: 007F0280 - 007F02C0 (IO) 
  
00:11.3 Vendor 0x1959 Device 0xA002 
  00
:11.2 Vendor 0x1959 Device 0xA002 
  00
:11.1 Vendor 0x1959 Device 0xA002 
  00
:11.0 Vendor 0x1959 Device 0xA002 
  00
:10.2 Vendor 0x1959 Device 0xA002 
  00
:10.0 Vendor 0x1959 Device 0xA002 
  00
:03.0 Vendor 0x1959 Device 0xA00C 
  00
:04.0 Vendor 0x1959 Device 0xA00A 
  00
:05.0 Vendor 0x1959 Device 0xA00A 
  00
:08.0 Vendor 0x1959 Device 0xA000 
  00
:09.0 Vendor 0x1959 Device 0xA000 
  00
:15.0 Vendor 0x1959 Device 0xA006 
  00
:1B.0 Vendor 0x1959 Device 0xA00B 
  00
:1E.0 Vendor 0x1959 Device 0xA008 
   Range 0
: 007F0400 - 007F0500 (IO) 
   
Range 1: 007F0500 - 007F0600 (IO) 
  
0A:12.0 Vendor 0x1002 Device 0x4380 
   Range 0
: 00001030 - 00001038 (IO) 
   
Range 1: 00001050 - 00001054 (IO) 
   
Range 2: 00001048 - 00001050 (IO) 
   
Range 3: 00001058 - 0000105C (IO) 
   
Range 4: 00001020 - 00001030 (IO) 
  
0A:13.0 Vendor 0x1002 Device 0x4387 
   Range 0
: A0306000 - A0307000 (MEM) 
  
0A:13.1 Vendor 0x1002 Device 0x4388 
   Range 0
: A0307000 - A0308000 (MEM) 
  
0A:13.2 Vendor 0x1002 Device 0x4389 
   Range 0
: A0308000 - A0309000 (MEM) 
  
0A:13.3 Vendor 0x1002 Device 0x438A 
   Range 0
: A0305000 - A0306000 (MEM) 
  
0A:13.4 Vendor 0x1002 Device 0x438B 
   Range 0
: A0304000 - A0305000 (MEM) 
  
0A:13.5 Vendor 0x1002 Device 0x4386 
   Range 0
: A0309800 - A0309900 (MEM) 
  
0A:14.0 Vendor 0x1002 Device 0x4385 
   Range 0
: 00001000 - 00001010 (IO) 
   
Range 1: A0309400 - A0309800 (MEM) 
  
0A:14.1 Vendor 0x1002 Device 0x438C 
   Range 0
: 00001040 - 00001048 (IO) 
   
Range 1: 00001058 - 0000105C (IO) 
   
Range 2: 00001038 - 00001040 (IO) 
   
Range 3: 00001050 - 00001054 (IO) 
   
Range 4: 00001010 - 00001020 (IO) 
  
0A:14.2 Vendor 0x1002 Device 0x4383 
   Range 0
: A0300000 - A0304000 (MEM) 
  
0A:14.3 Vendor 0x1002 Device 0x438D 
   Range 0
: 00000000 - 00100000 (MEM) 
  
0A:14.4 Vendor 0x1002 Device 0x4384 
  06
:00.0 Vendor 0x10EC Device 0x8168 
   Range 0
: 00003000 - 00003100 (IO) 
   
Range 2: A0104000 - A0105000 (MEM) 
   
Range 4: A0100000 - A0104000 (PREF.MEM) 
  
02:00.0 Vendor 0x1002 Device 0x679A 
   Range 0
: 90000000 - A0000000 (PREF.MEM) 
   
Range 2: A0000000 - A0040000 (MEM) 
   
Range 4: 00002000 - 00002100 (IO) 
  
02:00.1 Vendor 0x1002 Device 0xAAA0 
   Range 0
: A0060000 - A0064000 (MEM) 

Libraries 
 0x628c6418
: ISO-8859-15.charset V52.1 
 0x628c6318
: english-british_ISO-8859-15.language V52.1 
 0x02a8b092
: exec.library V53.89 
 0x6140a8e8
: camdmidi.usbfd V53.5 
 0x6feab508
: cgxvideo.library V42.1 
 0x5058db68
: PCI_SoundCardHornet.driver V52.2 
 0x5058d6e8
: PCI_sblive.pci V52.1 
 0x5058d7a8
: PCI_Soundcard.driver V52.2 
 0x5058d3e8
: PCI_GamePortHornet.driver V52.2 
 0x5058d268
: PCI_GamePort.driver V53.1 
 0x5058d628
: Generic_usb.driver V53.3 
 0x5058d0e8
: Generic_Mouse.driver V52.1 
 0x50c4b9d8
: AmigaInput.library V53.3 
 0x4b5c54a8
: minigl.library V2.24 
 0x50302bd0
: Warp3D.library V53.27 
 0x50618358
: W3D_Permedia2.library V53.4 
 0x506181d8
: W3D_Napalm.library V53.1 
 0x50618958
: W3D_Avenger.library V53.1 
 0x6124f448
: W3D_SI.library V1.14 
 0x4f53b0d8
: W3D_Picasso96.library V53.12 
 0x4f547f30
: palette.gadget V53.6 
 0x4f53b040
: TextEditor.mcc V15.54 
 0x4f547e90
: TheButton.mcc V26.20 
 0x4f547df0
: TheBar.mcc V26.20 
 0x5bc3fe90
: Busy.mcc V21.23 
 0x5bc3fd50
: String.mui V21.45 
 0x5bc3fcb0
: Popasl.mui V21.27 
 0x5bc3fb70
: Pendisplay.mui V21.23 
 0x5bc3fa30
: Poppen.mui V21.22 
 0x5bc3f850
: Gauge.mui V21.22 
 0x5bc3f7b0
: Listtree.mcc V21.33 
 0x4f5c6498
: muigfx.library V21.23 
 0x4f4e368c
: muimaster.library V21.200 
 0x502dde74
: amigaguide.datatype V53.6 
 0x4f4f10d4
: amigaguide.library V53.8 
 0x504b133c
: codesets.library V6.21 
 0x543c5728
: update.library V53.18 
 0x542aef50
: expat.library V53.6 
 0x5bc3f2b0
: fuelgauge.gadget V53.8 
 0x54314a38
: pthreads.library V53.11 
 0x6157b7d8
: timesync.library V53.7 
 0x5bc3f210
: jpeg.datatype V53.7 
 0x5bf6b168
: X1kTemp.docky V53.10 
 0x5c087b88
: DateTime.docky V52.11 
 0x61973580
: datebrowser.gadget V53.7 
 0x5bf73990
: texteditor.gadget V53.24 
 0x5c331158
: KeymapSwitcher.docky V52.3 
 0x619e4f28
: NetDock.docky V51.6 
 0x61c24858
: GFXDock.docky V50.4 
 0x6198b548
: RAMDock.docky V50.4 
 0x6198bac8
: CPUDock.docky V50.5 
 0x619e3eb8
: SMARTDock.docky V53.2 
 0x619e3db8
: Separator.docky V53.2 
 0x619e3cb8
: smartsubdock.docky V50.8 
 0x619e3b38
: Spacer.docky V53.2 
 0x5d2b6738
: smartbutton.docky V50.8 
 0x61fa4eb0
: getcolor.gadget V53.10 
 0x61afd210
: gradientslider.gadget V53.6 
 0x61afd354
: colorwheel.gadget V53.7 
 0x61fa7c38
: radiobutton.gadget V53.9 
 0x5d23b490
: shared.image V2.1 
 0x61fa7b78
: speedbar.gadget V53.12 
 0x61a4c024
: clipview.library V1.10 
 0x628cce80
: slider.gadget V53.15 
 0x61e4f760
: requester.class V53.18 
 0x628ccd40
: getfont.gadget V53.9 
 0x628ccca0
: getfile.gadget V53.12 
 0x628ccac0
: integer.gadget V53.12 
 0x61fa7638
: clicktab.gadget V53.44 
 0x5d3aadf8
: chooser.gadget V53.21 
 0x628cca20
: penmap.image V53.5 
 0x61fabed0
: anim.gadget V53.1 
 0x628cc980
: checkbox.gadget V53.9 
 0x61fabc48
: progressbar.gadget V53.12 
 0x628cc7a0
: arexx.class V53.5 
 0x628cc2a0
: bitmap.image V53.9 
 0x628cc5c0
: space.gadget V53.6 
 0x5d3aa568
: hdaudio.audio V6.23 
 0x6fef11c8
: listbrowser.gadget V53.62 
 0x6fef79e0
: string.gadget V53.20 
 0x628cc160
: scroller.gadget V53.14 
 0x5dc691a8
: filesave.audio V6.5 
 0x600d6d34
: device.audio V6.2 
 0x62b26aa4
: usergroup.library V4.30 
 0x600fea60
: bsdsocket.library V4.307 
 0x603e42d0
: ilbm.datatype V53.3 
 0x60e149f8
: wav.datatype V54.4 
 0x60e14ae8
: sound.datatype V54.6 
 0x60e14934
: mpega.library V2.4 
 0x60e16420
: mathieeedoubbas.library V52.1 
 0x61216efc
: textclip.library V53.1 
 0x61218588
: usbhidgate.library V53.2 
 0x62904a5c
: xadmaster.library V13.2 
 0x61877984
: xpkmaster.library V5.2 
 0x618779fc
: hid.usbfd V53.12 
 0x613e2324
: camd.library V53.6 
 0x615820c0
: button.gadget V53.21 
 0x61582160
: glyph.image V53.3 
 0x61871e50
: window.class V54.7 
 0x6179fbb8
: popupmenu.class V53.2 
 0x610e6578
: popupmenu.library V53.11 
 0x628c7f50
: label.image V53.13 
 0x628c7eb0
: drawlist.image V53.3 
 0x6feab5f8
: layout.gadget V54.2 
 0x6179fac0
: bevel.image V53.6 
 0x628c7d70
: png.datatype V53.10 
 0x62b16264
: picture.datatype V53.7 
 0x618713f4
: asl.library V53.49 
 0x62b5e9d8
: timezone.library V53.8 
 0x628de408
: application.library V53.12 
 0x628dd17c
: ft2.library V53.2 
 0x62b22250
: Picasso96API.library V54.9 
 0x6fef808c
: workbench.library V53.53 
 0x628e35c0
: gadtools.library V53.7 
 0x628c80cc
: commodities.library V53.7 
 0x62b52140
: datatypes.library V54.6 
 0x62dded74
: png.iconmodule V53.1 
 0x628d60cc
: icon.library V53.16 
 0x6fdc2920
: z.library V53.9 
 0x6ff8e118
: version.library V53.15 
 0x62b29490
: iffparse.library V53.1 
 0x6ffb9ccc
: locale.library V54.2 
 0x6ff3d7ac
: diskfont.library V53.9 
 0x6fd53e68
: petunia.library V53.6 
 0x6fd53da8
: diskcache.library V3.31 
 0x6fe97220
: dos.library V53.158 
 0x6fdc20a4
: usbprivate.library V53.12 
 0x6fef4f3c
: massstorage.usbfd V53.83 
 0x6feabe4c
: hub.usbfd V53.10 
 0x6fef4ea8
: bootkeyboard.usbfd V52.3 
 0x6fef4e28
: bootmouse.usbfd V53.3 
 0x6fef4d28
: mounter.library V53.19 
 0x6feab7fc
: usbresource.library V53.12 
 0x6ff8f5b8
: hunk.library V53.4 
 0x6feab6f4
: elf.library V53.27 
 0x6ff494d0
: intuition.library V54.26 
 0x6ff622c0
: keymap.library V53.9 
 0x6ff3e5a0
: cybergraphics.library V43.0 
 0x6ff8e9a0
: RadeonHD.chip V3.6 
 0x6ffb8420
: graphics.library V54.156 
 0x6fffe4f0
: layers.library V54.12 
 0x6ff34150
: rtg.library V54.89 
 0x6ff8e824
: PCIGraphics.card V53.15 
 0x6ff8f0e4
: nonvolatile.library V53.5 
 0x6ffab258
: newlib.library V53.30 
 0x6ff8d1ac
: utility.library V54.1 
 0x6ffa8398
: expansion.library V53.1 
 0x6126191e
: rexxsyslib.library V53.4 (Legacy) 

Devices 
 0x5d206744
: netprinter.device V1.15 (Legacy) 
 
0x6198b454: printer.device V53.1 
 0x6196f3b4
: serial.device V54.1 
 0x5d23ba34
: clipboard.device V53.3 
 0x6024acf4
: ahi.device V6.6 
 0x600d6468
: rtl8169.device V53.4 
 0x615654a4
: diskimage.device V53.4 
 0x6ff8dd10
: usbsys.device V53.12 
 0x6ff8fb90
: ehci.usbhcd V53.24 
 0x6ff8faf0
: ohci.usbhcd V53.21 
 0x6ff3c664
: cfide.device V53.0 
 0x6fef45b4
: sb600sata.device V53.20 
 0x6ff8d448
: console.device V53.99 
 0x6ff3c3f0
: ramdrive.device V52.6 
 0x6ff6250c
: input.device V53.5 
 0x6ff3d3b4
: keyboard.device V53.11 
 0x6ff3c050
: timer.device V53.2 

Tasks 
 AmiDock 
(Waiting) 
  
Stack: 0x61c86004 - 0x61c95ffc, pointer @ 0x61c95910 (Cookie OK) 
  
Signals: SigRec 0x00000100, SigWait 0x00180000 
  State
: Process (Waiting) 
 
rhd_gc (Waiting) 
  
Stack: 0x6fea2000 - 0x6feaa000, pointer @ 0x6fea9f40 (Cookie OK) 
  
Signals: SigRec 0x80000001, SigWait 0x00000000 
  State
: Task (Waiting) 
 
ahi.device Unit Process (Waiting) 
  
Stack: 0x620b8004 - 0x620c7ffc, pointer @ 0x620c7f20 (Cookie OK) 
  
Signals: SigRec 0xf000c000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
MiniGL watch-dog (Waiting) 
  
Stack: 0x44cd7004 - 0x44ce6ffc, pointer @ 0x44ce6ec0 (Cookie OK) 
  
Signals: SigRec 0xc0001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
camdmidi.usbfd (Waiting) 
  
Stack: 0x6137d004 - 0x6138cffc, pointer @ 0x6138cf60 (Cookie OK) 
  
Signals: SigRec 0x60001000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
ClickToFront (Waiting) 
  
Stack: 0x61bd9004 - 0x61be8ffc, pointer @ 0x61be89f0 (Cookie OK) 
  
Signals: SigRec 0xc000d000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
input.device (Waiting) 
  
Stack: 0x6fe82000 - 0x6fe92000, pointer @ 0x6fe91f00 (Cookie OK) 
  
Signals: SigRec 0x80000000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
sound.datatype process (Waiting) 
  
Stack: 0x41d48004 - 0x41d67ffc, pointer @ 0x41d67e40 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x40002000 
  State
: Process (Waiting) 
 
sound.datatype process (Waiting) 
  
Stack: 0x46846004 - 0x46865ffc, pointer @ 0x46865e40 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x40002000 
  State
: Process (Waiting) 
 
SFS DosList handler (Waiting) 
  
Stack: 0x6307e004 - 0x63081ffc, pointer @ 0x63081f20 (Cookie OK) 
  
Signals: SigRec 0x80000000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
USB stack (Waiting) 
  
Stack: 0x6fe9a000 - 0x6fe9e000, pointer @ 0x6fe9df20 (Cookie OK) 
  
Signals: SigRec 0xf8007000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
OHCI Controller Task Unit 0 (Waiting) 
  
Stack: 0x6fdb9000 - 0x6fdc1000, pointer @ 0x6fdc0f10 (Cookie OK) 
  
Signals: SigRec 0xbc009000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
OHCI Controller Task Unit 1 (Waiting) 
  
Stack: 0x6fd91000 - 0x6fd99000, pointer @ 0x6fd98f10 (Cookie OK) 
  
Signals: SigRec 0xbc009000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
OHCI Controller Task Unit 2 (Waiting) 
  
Stack: 0x6fd75000 - 0x6fd7d000, pointer @ 0x6fd7cf10 (Cookie OK) 
  
Signals: SigRec 0xbc009000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
OHCI Controller Task Unit 4 (Waiting) 
  
Stack: 0x6fd31000 - 0x6fd39000, pointer @ 0x6fd38f10 (Cookie OK) 
  
Signals: SigRec 0xbc009000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
OHCI Controller Task Unit 3 (Waiting) 
  
Stack: 0x6fd49000 - 0x6fd51000, pointer @ 0x6fd50f10 (Cookie OK) 
  
Signals: SigRec 0xbc009000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
EHCI Controller Task Unit 0 (Waiting) 
  
Stack: 0x6fd05000 - 0x6fd0d000, pointer @ 0x6fd0cf10 (Cookie OK) 
  
Signals: SigRec 0xbe009000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
page_sweep (Waiting) 
  
Stack: 0x6fde8004 - 0x6fdefffc, pointer @ 0x6fdefe90 (Cookie OK) 
  
Signals: SigRec 0x80000000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
sb600sata.device - chip 0 port 0 (Waiting) 
  
Stack: 0x6fe48000 - 0x6fe50000, pointer @ 0x6fe4ff20 (Cookie OK) 
  
Signals: SigRec 0xc0000000, SigWait 0x20000000 
  State
: Task (Waiting) 
 
cfide.device task (Waiting) 
  
Stack: 0x6fdf0000 - 0x6fdf8000, pointer @ 0x6fdf7f40 (Cookie OK) 
  
Signals: SigRec 0xc0000000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
sb600sata.device - chip 0 port 1 (Waiting) 
  
Stack: 0x6fe18000 - 0x6fe20000, pointer @ 0x6fe1ff20 (Cookie OK) 
  
Signals: SigRec 0xc0000000, SigWait 0x20008000 
  State
: Task (Waiting) 
 
hid.usbfd (Waiting) 
  
Stack: 0x61365004 - 0x6136cffc, pointer @ 0x6136ce90 (Cookie OK) 
  
Signals: SigRec 0xe0000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
HID Mouse (Waiting) 
  
Stack: 0x611e5004 - 0x611f4ffc, pointer @ 0x611f4f20 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
reaper.task (Waiting) 
  
Stack: 0x62c7f004 - 0x62c86ffc, pointer @ 0x62c86e50 (Cookie OK) 
  
Signals: SigRec 0x00007000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
SSD0/SmartFilesystem 1.293  (Waiting) 
  
Stack: 0x6fb1c004 - 0x6fb1fffc, pointer @ 0x6fb1feb0 (Cookie OK) 
  
Signals: SigRec 0xe0000100, SigWait 0x10000000 
  State
: Process (Waiting) 
 
ICD0/CDFileSystem 53.4  (Waiting) 
  
Stack: 0x60f7f004 - 0x60f8effc, pointer @ 0x60f8ef30 (Cookie OK) 
  
Signals: SigRec 0x00000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
ICD1/CDFileSystem 53.4  (Waiting) 
  
Stack: 0x6100b004 - 0x6101affc, pointer @ 0x6101af30 (Cookie OK) 
  
Signals: SigRec 0x00000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
CD0/CDFileSystem 53.4  (Waiting) 
  
Stack: 0x63062004 - 0x63065ffc, pointer @ 0x63065f30 (Cookie OK) 
  
Signals: SigRec 0x00000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
SSD4/SmartFilesystem 1.293  (Waiting) 
  
Stack: 0x62e6a004 - 0x62e6dffc, pointer @ 0x62e6deb0 (Cookie OK) 
  
Signals: SigRec 0xe0000100, SigWait 0x10000000 
  State
: Process (Waiting) 
 
SSD2/SmartFilesystem 1.293  (Waiting) 
  
Stack: 0x62efc004 - 0x62effffc, pointer @ 0x62effeb0 (Cookie OK) 
  
Signals: SigRec 0xe0000100, SigWait 0x10000000 
  State
: Process (Waiting) 
 
SSD3/SmartFilesystem 1.293  (Waiting) 
  
Stack: 0x62ebf004 - 0x62ec2ffc, pointer @ 0x62ec2eb0 (Cookie OK) 
  
Signals: SigRec 0xe0000100, SigWait 0x10000000 
  State
: Process (Waiting) 
 
SSD5/SmartFilesystem 1.293  (Waiting) 
  
Stack: 0x62e1d004 - 0x62e20ffc, pointer @ 0x62e20eb0 (Cookie OK) 
  
Signals: SigRec 0xe0000100, SigWait 0x10000000 
  State
: Process (Waiting) 
 
SSD1/SmartFilesystem 1.293  (Waiting) 
  
Stack: 0x62f51004 - 0x62f54ffc, pointer @ 0x62f54eb0 (Cookie OK) 
  
Signals: SigRec 0xe0000100, SigWait 0x10000000 
  State
: Process (Waiting) 
 
hid.usbfd (Waiting) 
  
Stack: 0x61359004 - 0x61360ffc, pointer @ 0x61360e90 (Cookie OK) 
  
Signals: SigRec 0xe0000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
HID Keyboard (Waiting) 
  
Stack: 0x61311004 - 0x61320ffc, pointer @ 0x61320f10 (Cookie OK) 
  
Signals: SigRec 0x90001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
RAM/ram-handler 53.172  (Waiting) 
  
Stack: 0x62b91004 - 0x62b94ffc, pointer @ 0x62b94d40 (Cookie OK) 
  
Signals: SigRec 0x80000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
SBU/SmartFilesystem 1.293  (Waiting) 
  
Stack: 0x62dd8004 - 0x62ddbffc, pointer @ 0x62ddbeb0 (Cookie OK) 
  
Signals: SigRec 0xe0000100, SigWait 0x10000000 
  State
: Process (Waiting) 
 
MainIPC0/CrossDOSFileSystem 53.11  (Waiting) 
  
Stack: 0x60d6a004 - 0x60d79ffc, pointer @ 0x60d79eb0 (Cookie OK) 
  
Signals: SigRec 0x40000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
MainIPH0/CrossDOSFileSystem 53.11  (Waiting) 
  
Stack: 0x61098004 - 0x610a7ffc, pointer @ 0x610a7eb0 (Cookie OK) 
  
Signals: SigRec 0x40000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
HID Consumer (Waiting) 
  
Stack: 0x611d1004 - 0x611e0ffc, pointer @ 0x611e0f20 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
HID Consumer (Waiting) 
  
Stack: 0x612b5004 - 0x612c4ffc, pointer @ 0x612c4f20 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
HID Keyboard (Waiting) 
  
Stack: 0x614ac004 - 0x614bbffc, pointer @ 0x614bbf10 (Cookie OK) 
  
Signals: SigRec 0x90001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
hid.usbfd (Waiting) 
  
Stack: 0x6134d004 - 0x61354ffc, pointer @ 0x61354e90 (Cookie OK) 
  
Signals: SigRec 0xe0000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
HID Keyboard (Waiting) 
  
Stack: 0x6126d004 - 0x6127cffc, pointer @ 0x6127cf10 (Cookie OK) 
  
Signals: SigRec 0x90001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
HID Keyboard (Waiting) 
  
Stack: 0x61299004 - 0x612a8ffc, pointer @ 0x612a8f10 (Cookie OK) 
  
Signals: SigRec 0x90001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
HID Keyboard (Waiting) 
  
Stack: 0x612e1004 - 0x612f0ffc, pointer @ 0x612f0f10 (Cookie OK) 
  
Signals: SigRec 0x90001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
hid.usbfd (Waiting) 
  
Stack: 0x61341004 - 0x61348ffc, pointer @ 0x61348e90 (Cookie OK) 
  
Signals: SigRec 0xe0000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
pager (Waiting) 
  
Stack: 0x62c5b004 - 0x62c7affc, pointer @ 0x62c7aef0 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
IDF1/FastFileSystem 53.2  (Waiting) 
  
Stack: 0x60ddb004 - 0x60deaffc, pointer @ 0x60deaed0 (Cookie OK) 
  
Signals: SigRec 0xa8000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
IDF0/FastFileSystem 53.2  (Waiting) 
  
Stack: 0x60e1b004 - 0x60e2affc, pointer @ 0x60e2aed0 (Cookie OK) 
  
Signals: SigRec 0xa8000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
WinFrame 1 Process (Waiting) 
  
Stack: 0x5030a004 - 0x50349ffc, pointer @ 0x50349eb0 (Cookie OK) 
  
Signals: SigRec 0xff800000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
SDL thread SDLAudioP1 (0x418de5d8) (Waiting) 
  
Stack: 0x43210004 - 0x43403ffc, pointer @ 0x43403eb0 (Cookie OK) 
  
Signals: SigRec 0x40000000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
rtl8169.device.0 (Waiting) 
  
Stack: 0x5bb20004 - 0x5bb2fffc, pointer @ 0x5bb2ff00 (Cookie OK) 
  
Signals: SigRec 0x78008000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
IPC0/CrossDOSFileSystem 53.11  (Waiting) 
  
Stack: 0x60d86004 - 0x60d95ffc, pointer @ 0x60d95ee0 (Cookie OK) 
  
Signals: SigRec 0x00010100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
IPH0/CrossDOSFileSystem 53.11  (Waiting) 
  
Stack: 0x610f2004 - 0x61101ffc, pointer @ 0x61101ee0 (Cookie OK) 
  
Signals: SigRec 0x00010100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
ICBM0/CBM1541FileSystem 2.3  (Waiting) 
  
Stack: 0x61172004 - 0x61181ffc, pointer @ 0x61181f20 (Cookie OK) 
  
Signals: SigRec 0xb0000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
ICBM1/CBM1541FileSystem 2.3  (Waiting) 
  
Stack: 0x61517004 - 0x61526ffc, pointer @ 0x61526f20 (Cookie OK) 
  
Signals: SigRec 0xb0000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
CON/con-handler 53.78  (Waiting) 
  
Stack: 0x5037e004 - 0x5038dffc, pointer @ 0x5038de20 (Cookie OK) 
  
Signals: SigRec 0xb0000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
dos_filedir_notify (Waiting) 
  
Stack: 0x6fb5d004 - 0x6fb60ffc, pointer @ 0x6fb60ad0 (Cookie OK) 
  
Signals: SigRec 0x40001000, SigWait 0x80000000 
  State
: Process (Waiting) 
 
ENV/env-handler 54.5  (Waiting) 
  
Stack: 0x62c53004 - 0x62c56ffc, pointer @ 0x62c56ef0 (Cookie OK) 
  
Signals: SigRec 0x80000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
URL/launch-handler 53.38  (Waiting) 
  
Stack: 0x60e58004 - 0x60ed2ffc, pointer @ 0x60ecefb0 (Cookie OK) 
  
Signals: SigRec 0x80000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
RANDOM/Random-Handler 52.1  (Waiting) 
  
Stack: 0x60efb004 - 0x60f0affc, pointer @ 0x60f0aef0 (Cookie OK) 
  
Signals: SigRec 0x00000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
CON/con-handler 53.78  (Waiting) 
  
Stack: 0x5088d004 - 0x5089cffc, pointer @ 0x5089ce20 (Cookie OK) 
  
Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
CON/con-handler 53.78  (Waiting) 
  
Stack: 0x61c6a004 - 0x61c79ffc, pointer @ 0x61c79e20 (Cookie OK) 
  
Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
CON/con-handler 53.78  (Waiting) 
  
Stack: 0x61d01004 - 0x61d10ffc, pointer @ 0x61d10e20 (Cookie OK) 
  
Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
CON/con-handler 53.78  (Waiting) 
  
Stack: 0x61d7f004 - 0x61d8effc, pointer @ 0x61d8ee20 (Cookie OK) 
  
Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
CON/con-handler 53.78  (Waiting) 
  
Stack: 0x61e0c004 - 0x61e1bffc, pointer @ 0x61e1be20 (Cookie OK) 
  
Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
CON/con-handler 53.78  (Waiting) 
  
Stack: 0x61e86004 - 0x61e95ffc, pointer @ 0x61e95e20 (Cookie OK) 
  
Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
CON/con-handler 53.78  (Waiting) 
  
Stack: 0x61f4f004 - 0x61f5effc, pointer @ 0x61f5ee20 (Cookie OK) 
  
Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
CON/con-handler 53.78  (Waiting) 
  
Stack: 0x62b3f004 - 0x62b4effc, pointer @ 0x62b4ee20 (Cookie OK) 
  
Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
AUDIO/AHI-Handler 6.2  (Waiting) 
  
Stack: 0x61047004 - 0x61057004, pointer @ 0x61056ed0 (Cookie OK) 
  
Signals: SigRec 0x00000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
Camd Wait Proc (Waiting) 
  
Stack: 0x613aa004 - 0x613c2ffc, pointer @ 0x613c2f10 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
APPDIR/appdir-handler-in-dos 53.158  (Waiting) 
  
Stack: 0x62bff004 - 0x62c06ffc, pointer @ 0x62c06dc0 (Cookie OK) 
  
Signals: SigRec 0x80000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
CON/con-handler 53.78  (Waiting) 
  
Stack: 0x62cbb004 - 0x62cc2ffc, pointer @ 0x62cc2e20 (Cookie OK) 
  
Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
RAW/con-handler 53.78  (Waiting) 
  
Stack: 0x62ccf004 - 0x62cd6ffc, pointer @ 0x62cd6e20 (Cookie OK) 
  
Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
CON/con-handler 53.78  (Waiting) 
  
Stack: 0x62d03004 - 0x62d0affc, pointer @ 0x62d0ae20 (Cookie OK) 
  
Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
dos_nbmd_process (Waiting) 
  
Stack: 0x6fb6d004 - 0x6fb70ffc, pointer @ 0x6fb70f30 (Cookie OK) 
  
Signals: SigRec 0x00001100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
dos_lock_handler (Waiting) 
  
Stack: 0x6fb75004 - 0x6fb78ffc, pointer @ 0x6fb78f00 (Cookie OK) 
  
Signals: SigRec 0x00001100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
RexxMaster (Waiting) 
  
Stack: 0x60cc6004 - 0x60cd6004, pointer @ 0x60cd5f70 (Cookie OK) 
  
Signals: SigRec 0xc0000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
diskimage.device unit 6 (Waiting) 
  
Stack: 0x60d4a004 - 0x60d5dffc, pointer @ 0x60d5dc50 (Cookie OK) 
  
Signals: SigRec 0xc0000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
diskimage.device unit 1 (Waiting) 
  
Stack: 0x60db3004 - 0x60dc6ffc, pointer @ 0x60dc6c50 (Cookie OK) 
  
Signals: SigRec 0xc0000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
diskimage.device unit 0 (Waiting) 
  
Stack: 0x60df7004 - 0x60e0affc, pointer @ 0x60e0ac50 (Cookie OK) 
  
Signals: SigRec 0xc0000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
diskimage.device unit 4 (Waiting) 
  
Stack: 0x60f50004 - 0x60f63ffc, pointer @ 0x60f63c50 (Cookie OK) 
  
Signals: SigRec 0xc0000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
diskimage.device unit 5 (Waiting) 
  
Stack: 0x60fdc004 - 0x60fefffc, pointer @ 0x60fefc50 (Cookie OK) 
  
Signals: SigRec 0xc0000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
diskimage.device unit 7 (Waiting) 
  
Stack: 0x61078004 - 0x6108bffc, pointer @ 0x6108bc50 (Cookie OK) 
  
Signals: SigRec 0xc0000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
diskimage.device unit 2 (Waiting) 
  
Stack: 0x6111f004 - 0x61132ffc, pointer @ 0x61132c50 (Cookie OK) 
  
Signals: SigRec 0xc0000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
diskimage.device unit 3 (Waiting) 
  
Stack: 0x6118e004 - 0x611a1ffc, pointer @ 0x611a1c50 (Cookie OK) 
  
Signals: SigRec 0xc0000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
TEXTCLIP/textclip-handler 53.1  (Waiting) 
  
Stack: 0x60edf004 - 0x60eeeffc, pointer @ 0x60eeeeb0 (Cookie OK) 
  
Signals: SigRec 0x80000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
compose.task (Waiting) 
  
Stack: 0x6024e000 - 0x60256000, pointer @ 0x60255e00 (Cookie OK) 
  
Signals: SigRec 0x00000010, SigWait 0x00000000 
  State
: Task (Waiting) 
 
Workbench (Waiting) 
  
Stack: 0x600eb004 - 0x600faffc, pointer @ 0x600faea0 (Cookie OK) 
  
Signals: SigRec 0x80000000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
ramlib (Waiting) 
  
Stack: 0x62ba1004 - 0x62bb9ffc, pointer @ 0x62bb9f20 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
Workbench DosList Notify (Waiting) 
  
Stack: 0x5d2e4004 - 0x5d2f3ffc, pointer @ 0x5d2f3f40 (Cookie OK) 
  
Signals: SigRec 0x00003000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
TextEditor.mcc clipboard server (Waiting) 
  
Stack: 0x50644004 - 0x50647ffc, pointer @ 0x50647ea0 (Cookie OK) 
  
Signals: SigRec 0x80000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
MUI imagespace screen notify (Waiting) 
  
Stack: 0x4f3c8004 - 0x4f3d7ffc, pointer @ 0x4f3d7d20 (Cookie OK) 
  
Signals: SigRec 0xc0001000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
texteditor.gadget Clipboard Server (Waiting) 
  
Stack: 0x5bdc7004 - 0x5bddfffc, pointer @ 0x5bddff00 (Cookie OK) 
  
Signals: SigRec 0x80000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
ContextMenus Command Dispatcher (Waiting) 
  
Stack: 0x61b20004 - 0x61b2fffc, pointer @ 0x61b2ff30 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
string.gadget server (Waiting) 
  
Stack: 0x5d2c8004 - 0x5d2d7ffc, pointer @ 0x5d2d7db0 (Cookie OK) 
  
Signals: SigRec 0x40000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
Workbench Clipboard Server (Waiting) 
  
Stack: 0x5d3c8004 - 0x5d3d7ffc, pointer @ 0x5d3d7f00 (Cookie OK) 
  
Signals: SigRec 0x80000000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
SDL thread SDLTimer (0x418de908) (Ready) 
  
Stack: 0x43018004 - 0x4320bffc, pointer @ 0x4320bea0 (Cookie OK) 
  
Signals: SigRec 0x80009000, SigWait 0x80000000 
  State
: Process (Ready) 
 
NotificationServer (Waiting) 
  
Stack: 0x61ea2004 - 0x61ec1ffc, pointer @ 0x61ec1b10 (Cookie OK) 
  
Signals: SigRec 0xbf801000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
TCP/IP Control (Waiting) 
  
Stack: 0x5bb7d004 - 0x5bb8cffc, pointer @ 0x5bb8cdc0 (Cookie OK) 
  
Signals: SigRec 0xf8009080, SigWait 0x00000000 
  State
: Process (Waiting) 
 
hub.usbfd (Waiting) 
  
Stack: 0x6fcad004 - 0x6fcb4ffc, pointer @ 0x6fcb4f10 (Cookie OK) 
  
Signals: SigRec 0x30000000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
hub.usbfd (Waiting) 
  
Stack: 0x6fca1004 - 0x6fca8ffc, pointer @ 0x6fca8f10 (Cookie OK) 
  
Signals: SigRec 0x30000000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
hub.usbfd (Waiting) 
  
Stack: 0x6fc89004 - 0x6fc90ffc, pointer @ 0x6fc90f10 (Cookie OK) 
  
Signals: SigRec 0x30000000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
Background CLI [wait] (Waiting) 
  
Stack: 0x4163c004 - 0x4164bffc, pointer @ 0x4164bf00 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
Background CLI [wait] (Waiting) 
  
Stack: 0x50c3a004 - 0x50c49ffc, pointer @ 0x50c49f00 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
Background CLI [wait] (Waiting) 
  
Stack: 0x4f406004 - 0x4f415ffc, pointer @ 0x4f415f00 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
ELF Collector (Waiting) 
  
Stack: 0x6306a004 - 0x63079ffc, pointer @ 0x63079e70 (Cookie OK) 
  
Signals: SigRec 0x00000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
hub.usbfd (Waiting) 
  
Stack: 0x6fc95004 - 0x6fc9cffc, pointer @ 0x6fc9cf10 (Cookie OK) 
  
Signals: SigRec 0x30000000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
hub.usbfd (Waiting) 
  
Stack: 0x6fc7d004 - 0x6fc84ffc, pointer @ 0x6fc84f10 (Cookie OK) 
  
Signals: SigRec 0x30000000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
hub.usbfd (Waiting) 
  
Stack: 0x6fcb9004 - 0x6fcc0ffc, pointer @ 0x6fcc0f10 (Cookie OK) 
  
Signals: SigRec 0x30000000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
Background CLI [smbfs.os4_2.2 '//Synology-DS120j/NAS'] (Waiting) 
  
Stack: 0x4f9f4004 - 0x4fa03ffc, pointer @ 0x4fa035a0 (Cookie OK) 
  
Signals: SigRec 0x8000f080, SigWait 0x00000000 
  State
: Process (Waiting) 
 
AmigaInput Dispatcher (Waiting) 
  
Stack: 0x43c00000 - 0x43c04000, pointer @ 0x43c03f30 (Cookie OK) 
  
Signals: SigRec 0x80000000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
ARexx (Waiting) 
  
Stack: 0x4f958004 - 0x4f968004, pointer @ 0x4f967d70 (Cookie OK) 
  
Signals: SigRec 0x00000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
ARexx (Waiting) 
  
Stack: 0x502ac004 - 0x502bc004, pointer @ 0x502bbd70 (Cookie OK) 
  
Signals: SigRec 0x00000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
TCP/IP Superserver (Waiting) 
  
Stack: 0x5bb99004 - 0x5bba8ffc, pointer @ 0x5bba89f0 (Cookie OK) 
  
Signals: SigRec 0xd0000080, SigWait 0x00000000 
  State
: Process (Waiting) 
 
TCP/IP Configuration (Waiting) 
  
Stack: 0x5bbb5004 - 0x5bbc4ffc, pointer @ 0x5bbc4e10 (Cookie OK) 
  
Signals: SigRec 0xf8003000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
ARexx (Waiting) 
  
Stack: 0x503f6004 - 0x50406004, pointer @ 0x50405d70 (Cookie OK) 
  
Signals: SigRec 0x00000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
MultiEdit (Waiting) 
  
Stack: 0x59913004 - 0x5992bffc, pointer @ 0x5992bc90 (Cookie OK) 
  
Signals: SigRec 0xf8001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
Mounter GUI (Waiting) 
  
Stack: 0x6158e004 - 0x615a1ffc, pointer @ 0x615a1e10 (Cookie OK) 
  
Signals: SigRec 0x80007000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
DiskImageGUI (Waiting) 
  
Stack: 0x61b58004 - 0x61b67ffc, pointer @ 0x61b67dc0 (Cookie OK) 
  
Signals: SigRec 0xd7009000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
application.library messageserver (Waiting) 
  
Stack: 0x618bd000 - 0x618bdfa0, pointer @ 0x618bdf10 (Cookie OK) 
  
Signals: SigRec 0xc0000000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
Background CLI [SYS:System/AmiUpdate/AmiUpdate] (Waiting) 
  
Stack: 0x4f7ed004 - 0x4f86cffc, pointer @ 0x4f86c350 (Cookie OK) 
  
Signals: SigRec 0xec001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
Background CLI [RX] (Waiting) 
  
Stack: 0x50470004 - 0x5047fffc, pointer @ 0x5047fe20 (Cookie OK) 
  
Signals: SigRec 0x00000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
Background CLI [RX] (Waiting) 
  
Stack: 0x4fa08004 - 0x4fa17ffc, pointer @ 0x4fa17e20 (Cookie OK) 
  
Signals: SigRec 0x00000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
Background CLI [RX] (Waiting) 
  
Stack: 0x53235004 - 0x53244ffc, pointer @ 0x53244e20 (Cookie OK) 
  
Signals: SigRec 0x00000100, SigWait 0x00000000 
  State
: Process (Waiting) 
 
clipview.library server (Waiting) 
  
Stack: 0x61a2c004 - 0x61a4bffc, pointer @ 0x61a4be00 (Cookie OK) 
  
Signals: SigRec 0xd8003000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
KeymapSwitcher.docky (Waiting) 
  
Stack: 0x5bde4004 - 0x5bdf3ffc, pointer @ 0x5bdf3ef0 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
ContextMenus (Waiting) 
  
Stack: 0x61e28004 - 0x61e37ffc, pointer @ 0x61e37c80 (Cookie OK) 
  
Signals: SigRec 0xe0001000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
AsyncWB (Waiting) 
  
Stack: 0x61ef3004 - 0x61f02ffc, pointer @ 0x61f02eb0 (Cookie OK) 
  
Signals: SigRec 0xc0001000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
smartbutton.docky (Waiting) 
  
Stack: 0x619b4004 - 0x619c3ffc, pointer @ 0x619c3ec0 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
MouseBlanker (Waiting) 
  
Stack: 0x61b44004 - 0x61b53ffc, pointer @ 0x61b53a00 (Cookie OK) 
  
Signals: SigRec 0xc000d000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
UsbSound (Waiting) 
  
Stack: 0x61d2d004 - 0x61d3cffc, pointer @ 0x61d3cc40 (Cookie OK) 
  
Signals: SigRec 0xc0001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
datatypes.library (Waiting) 
  
Stack: 0x61822004 - 0x61831ffc, pointer @ 0x61831e30 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
RAWBInfo (Waiting) 
  
Stack: 0x61d52004 - 0x61d61ffc, pointer @ 0x61d61ec0 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
DefIcons (Waiting) 
  
Stack: 0x61dae004 - 0x61dbdffc, pointer @ 0x61dbddc0 (Cookie OK) 
  
Signals: SigRec 0x80009000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
Background CLI [Tools:Audio/Tools/CamdTools/MidiThru/MidiThru] (Waiting) 
  
Stack: 0x5c3d9004 - 0x5c3e8ffc, pointer @ 0x5c3e8b50 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
« IPrefs » (Waiting) 
  
Stack: 0x610d4004 - 0x610e3ffc, pointer @ 0x610e3980 (Cookie OK) 
  
Signals: SigRec 0x0000f000, SigWait 0x20000100 
  State
: Process (Waiting) 
 
TCP/IP Log (Waiting) 
  
Stack: 0x5bbe1004 - 0x5bbf0ffc, pointer @ 0x5bbf0f00 (Cookie OK) 
  
Signals: SigRec 0x80003000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
Background CLI [Tools:System/CAPSLock/CAPSLock] (Waiting) 
  
Stack: 0x60c6a004 - 0x60c79ffc, pointer @ 0x60c79b90 (Cookie OK) 
  
Signals: SigRec 0x70001000, SigWait 0x00000100 
  State
: Process (Waiting) 
 
ConClip (Waiting) 
  
Stack: 0x60d1e004 - 0x60d2dffc, pointer @ 0x60d2deb0 (Cookie OK) 
  
Signals: SigRec 0x80000000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
USB stack Process (Waiting) 
  
Stack: 0x615ca004 - 0x615d9ffc, pointer @ 0x615d9ee0 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
MassStorage Notifier (Waiting) 
  
Stack: 0x6fdc5000 - 0x6fdccd00, pointer @ 0x6fdccc70 (Cookie OK) 
  
Signals: SigRec 0x80001000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
DST watcher (Waiting) 
  
Stack: 0x61846004 - 0x61855ffc, pointer @ 0x61855f10 (Cookie OK) 
  
Signals: SigRec 0xc0000000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
hub.usbfd (Waiting) 
  
Stack: 0x6fb8d004 - 0x6fb94ffc, pointer @ 0x6fb94f10 (Cookie OK) 
  
Signals: SigRec 0x30000000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
hub.usbfd (Waiting) 
  
Stack: 0x6fba1004 - 0x6fba8ffc, pointer @ 0x6fba8f10 (Cookie OK) 
  
Signals: SigRec 0x30000000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
Shell Process [scummvm] (Crashed) 
  
Stack: 0x42370004 - 0x42563ffc, pointer @ 0x425620f0 (Cookie OK) 
  
Signals: SigRec 0x00000020, SigWait 0x08000000 
  State
: Process (Crashed) 
 
ramlib.support (Waiting) 
  
Stack: 0x62bbe004 - 0x62bd6ffc, pointer @ 0x62bd6f00 (Cookie OK) 
  
Signals: SigRec 0x80005000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
Mounter Task (Waiting) 
  
Stack: 0x6fdd5000 - 0x6fde3a60, pointer @ 0x6fde3970 (Cookie OK) 
  
Signals: SigRec 0xb0001000, SigWait 0x00000000 
  State
: Task (Waiting) 
 
Mounter Companion Process (Waiting) 
  
Stack: 0x615b6004 - 0x615c5ffc, pointer @ 0x615c5f40 (Cookie OK) 
  
Signals: SigRec 0x80003000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
dos_signal_server (Waiting) 
  
Stack: 0x6fb65004 - 0x6fb68ffc, pointer @ 0x6fb68f10 (Cookie OK) 
  
Signals: SigRec 0x0000f000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
Background CLI [System:Prefs/Presets/CANDI/data/Dandelion] (Ready) 
  
Stack: 0x542ea004 - 0x542f9ffc, pointer @ 0x542f9a40 (Cookie OK) 
  
Signals: SigRec 0x00000010, SigWait 0x14000100 
  State
: Process (Ready) 
 
CANDI (Waiting) 
  
Stack: 0x61f6b004 - 0x61f7affc, pointer @ 0x61f7a800 (Cookie OK) 
  
Signals: SigRec 0x70005000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
dos_appdir_server (Waiting) 
  
Stack: 0x6fb41004 - 0x6fb48ffc, pointer @ 0x6fb48d40 (Cookie OK) 
  
Signals: SigRec 0x80005000, SigWait 0x00000000 
  State
: Process (Waiting) 
 
CPUDock_idleTask (Ready) 
  
Stack: 0x5bf80000 - 0x5bf84000, pointer @ 0x5bf83f00 (Cookie OK) 
  
Signals: SigRec 0x80000000, SigWait 0x40000000 
  State
: Task (Ready) 
 
idle.task (Ready) 
  
Stack: 0x6ff61000 - 0x6ff62000, pointer @ 0x6ff61fd0 (Cookie OK) 
  
Signals: SigRec 0x00000000, SigWait 0x00000000 
  State
: Task (Ready)


3) wrt to char*
How owuld i get rid of it?
Simply removing the char * within the function doesn't work.

Go to top
Re: Porting to AmigaOS4 thread
Just can't stay away
Just can't stay away


See User information
@Raziel

1) I suppose ASLFR_DrawersOnly tag sets mode. Check autodocs to be sure, I don't have one at hand.

2) Which line? I guess options are strlen, strncpy or free. Placing bets on free() because utf-code looks suspicious: first there is malloc to allocate memory (free() would free malloc'd memory) but then out-variable is reassigned and thus is potentially not allocated via malloc() anymore:

Quote:

char *out = (char *)malloc(dstlen + 1);
if (out) {
if( (out=ICodesets->CodesetsConvertStr(CSA_SourceCodeset, srcmib,


IF CodesetsConvertStr allocates memory using IExec functions then free() most likely crash. You need to check Codesets autodoc regarding what is the meaning of CodesetsConvertStr return value.

3) What happened when you remove the (char*) cast and change utfToLocal function signature to use const char* (both .h/.cpp)?

Go to top
Anonymous
Re: Porting to AmigaOS4 thread
@Capehill

Sorry for being a noob.

These are both .cpp/.h

#ifndef BACKEND_AMIGAOS_DIALOGS_H
#define BACKEND_AMIGAOS_DIALOGS_H

#if defined(__amigaos4__) && defined(USE_SYSDIALOGS) 

#include "common/fs.h"
#include "common/dialogs.h"

class AmigaOSDialogManager : public Common::DialogManager {
public:
    
virtual DialogResult showFileBrowser(const Common::U32String &title, Common::FSNode &choice, bool isDirBrowser);

private:
    const 
char *utf8ToLocal(const char *in);
};

#endif

#endif // BACKEND_AMIGAOS_DIALOGS_H


#define FORBIDDEN_SYMBOL_EXCEPTION_FILE
#define FORBIDDEN_SYMBOL_EXCEPTION_unistd_h
#define FORBIDDEN_SYMBOL_EXCEPTION_time_h
#define FORBIDDEN_SYMBOL_EXCEPTION_strdup

#include "common/scummsys.h"

#if defined(__amigaos4__) && defined(USE_SYSDIALOGS)

#include "backends/dialogs/amigaos/amigaos-dialogs.h"

#include "common/config-manager.h"
#include "common/encoding.h"

#include <proto/asl.h>
#include <proto/codesets.h>
#include <proto/dos.h>
#include <proto/exec.h>

#include <cstring>
#include <cstdlib>

struct CodesetsIFace *ICodesets = nullptr;
struct Library *CodesetsBase = nullptr;

const 
char *AmigaOSDialogManager::utf8ToLocal(const char *in) {

    if (!
in) {
        return 
strdup("");
    }

    
CodesetsBase = IExec->OpenLibrary("codesets.library", 6);

    if (
CodesetsBase) {

        
ICodesets = (CodesetsIFace *)IExec->GetInterface(CodesetsBase, "main", 1L, nullptr);

        
struct codeset *srcmib = ICodesets->CodesetsFind("ISO-8859-1", CSA_FallbackToDefault, FALSE, TAG_DONE);
        
struct codeset *dstmib = ICodesets->CodesetsFind("UTF-8", CSA_FallbackToDefault, FALSE, TAG_DONE);

        if (
dstmib != nullptr) {
            
ULONG dstlen = ICodesets->CodesetsStrLen(in, TAG_END);

            
char *out = (char *)malloc(dstlen + 1);
            if (
out) {
                if ((
out=ICodesets->CodesetsConvertStr(CSA_SourceCodeset, srcmib, CSA_DestCodeset, dstmib, CSA_Source, in, TAG_DONE)) != nullptr) {
                    return 
out;
                }
            }
            
free(out);
        }
        
IExec->DropInterface((struct Interface *)ICodesets);
        
ICodesets = nullptr;
        
IExec->CloseLibrary(CodesetsBase);
        
CodesetsBase = nullptr;
    }

    return 
strdup(in);
}

struct AslIFace *IAsl;
struct Library *AslBase;

Common::DialogManager::DialogResult AmigaOSDialogManager::showFileBrowser(const Common::U32String &title, Common::FSNode &choice, bool isDirBrowser) {

    
char pathBuffer[MAXPATHLEN];

    
Common::String utf8Title = title.encode();    

    
DialogResult result = kDialogCancel;

    
AslBase = IExec->OpenLibrary(AslName, 50);
    if (
AslBase) {

        
IAsl = (struct AslIFace*)IExec->GetInterface(AslBase, "main", 1, nullptr);

        
struct FileRequester *fr = nullptr;

        if (
ConfMan.hasKey("browser_lastpath")) {
            
strncpy(pathBuffer, ConfMan.get("browser_lastpath").c_str(), sizeof(pathBuffer)-1);
        }

        
fr = (struct FileRequester *)IAsl->AllocAslRequestTags(ASL_FileRequest, TAG_DONE);

        if (!
fr)
            return 
result;

        const 
char *newTitle = utf8ToLocal((const char *)utf8Title.c_str());

        if (
IAsl->AslRequestTags(fr, ASLFR_TitleText, newTitle, ASLFR_RejectIcons, TRUE, ASLFR_InitialDrawer, pathBuffer, ASLFR_DrawersOnly, (isDirBrowser ? TRUE : FALSE), TAG_DONE)) {

            if (
strlen(fr->fr_Drawer) < sizeof(pathBuffer)) {
                
strncpy(pathBuffer, fr->fr_Drawer, sizeof(pathBuffer));
                if (!
isDirBrowser) {
                    
IDOS->AddPart(pathBuffer, fr->fr_File, sizeof(pathBuffer));
                }
                
choice = Common::FSNode(pathBuffer);
                
ConfMan.set("browser_lastpath", pathBuffer);
                
result = kDialogOk;
            }
            
free(newTitle);
            
IAsl->FreeAslRequest((APTR)fr);
        }
        
IExec->DropInterface((struct Interface*)IAsl);
        
IAsl = nullptr;
        
IExec->CloseLibrary(AslBase); 
        
AslBase = nullptr;
    }

    return 
result;
}

#endif

I get this now on compiling
C++      backends/dialogs/amigaos/amigaos-dialogs.o
backends
/dialogs/amigaos/amigaos-dialogs.cpp: In member function 'virtual Common::DialogManager::DialogResult AmigaOSDialogManager::showFileBrowser(const Common::U32String&, Common::FSNode&, bool)':
backends/dialogs/amigaos/amigaos-dialogs.cpp:123:9: error: invalid conversion from 'const void*' to 'void*' [-fpermissive]
    
free(newTitle);
         ^~~~~~~~
In file included from /SDK/newlib/include/stdio.h:29,
                 
from ./common/scummsys.h:118,
                 
from backends/dialogs/amigaos/amigaos-dialogs.cpp:28:
/
SDK/newlib/include/stdlib.h:86:20: note:   initializing argument 1 of 'void free(void*)'
 
_VOID _EXFUN(free,(_PTR));
                    ^~~~
gmake: *** [backends/dialogs/amigaos/amigaos-dialogs.o] Error 1

Go to top
Re: Porting to AmigaOS4 thread
Just can't stay away
Just can't stay away


See User information
@Raziel

Alas I don't know if crash/GR will be solved I updated utf8ToLocal() function/method:


...
        
//if (dstmib != CS_MIBENUM_INVALID) { 
        
if(dstmib != NULL) {
            
//LONG dstlen = FSGetByteSize((APTR)in, -1, CS_MIBENUM_UTF_8, dstmib); 
            
ULONG dstlen = 0;//ICodesets->CodesetsStrLen(in, TAG_END);
            
STRPTR dst_str = ICodesets->CodesetsConvertStr(CSA_SourceCodeset, srcmib,
                                                       
CSA_DestCodeset,   dstmib,
                                                       
CSA_Source,     in,
                                                       
CSA_DestLenPtr, &dstlen,
                                                      
TAG_DONE);
            if( (
dst_str!= NULL) {
                
char *out = (char *)malloc(dstlen + 1); 
                if(
out) {
                    
strcpy(out, dst_str, dstlen);
                    
ICodesets->CodesetsFreeA(dst_str, NULL);
IExec->DropInterface( (struct Interface *)ICodesets );
ICodesets = NULL;
        
IExec->CloseLibrary(CodesetsBase);
CodesetsBase = NULL;
                    return 
out; 
                }
                
free(out); 
            } 
        } 
...

NOTE: if you get an error with "STRPTR" definition doesn't exists, just change it to "char *"

Does the crash/GR happen too if you click on ASL's CANCEL button?

NOTE2: I suspect "out" will be freed when exit/destroying the Common class.

Go to top
Anonymous
Re: Porting to AmigaOS4 thread
@jabirulo

With your changes i now get htis
C++      backends/dialogs/amigaos/amigaos-dialogs.o
backends
/dialogs/amigaos/amigaos-dialogs.cpp: In member function 'char* AmigaOSDialogManager::utf8ToLocal(char*)':
backends/dialogs/amigaos/amigaos-dialogs.cpp:69:33: error: too many arguments to function 'char* strcpy(char*, const char*)'
      
strcpy(out, dst_str, dstlen);
                                 ^
In file included from /SDK/newlib/include/stdio.h:29,
                 
from ./common/scummsys.h:118,
                 
from backends/dialogs/amigaos/amigaos-dialogs.cpp:28:
/
SDK/newlib/include/string.h:31:8: note: declared here
 char  
*_EXFUN(strcpy,(char *, const char *));
        ^~~~~~
backends/dialogs/amigaos/amigaos-dialogs.cpp: In member function 'virtual Common::DialogManager::DialogResult AmigaOSDialogManager::showFileBrowser(const Common::U32String&, Common::FSNode&, bool)':
backends/dialogs/amigaos/amigaos-dialogs.cpp:111:56: warning: cast from type 'const value_type*' {aka 'const char*'} to type 'char*' casts away qualifiers [-Wcast-qual]
   
char *newTitle = utf8ToLocal((char *)utf8Title.c_str());
                                                        ^
gmake: *** [backends/dialogs/amigaos/amigaos-dialogs.o] Error 1


I did not check what happens when i cancel, but i guess it's the same as with when i simply close the asl window, right?
Then nothing happened, no crash

Go to top
Re: Porting to AmigaOS4 thread
Just can't stay away
Just can't stay away


See User information
@Raziel

Oops sorry, it should be (no check for length):

strcpy(out, dst_str);

EDIT: or try a safer "strncpy(out, dst_str, dstlen);"


If you don't get a crash when CANCEL/QUIT ASl requester, maybe is the path+fiel string that has something wrong, that can mean that my changes has some bug on it.

Is there a way I can get your sources/changes to recompile and see what happens. Do you use crosscompiler/cygnix/amigaos4/...


Edited by jabirulo on 2020/11/22 19:46:18
Go to top
Anonymous
Re: Porting to AmigaOS4 thread
@jabirulo

That did it, no ore crashes, games being added

Thanks a lot, sir

Now, if you can help me getting rid of this warning
C++      backends/dialogs/amigaos/amigaos-dialogs.o
backends
/dialogs/amigaos/amigaos-dialogs.cpp: In member function 'virtual Common::DialogManager::DialogResult AmigaOSDialogManager::showFileBrowser(const Common::U32String&, Common::FSNode&, bool)':
backends/dialogs/amigaos/amigaos-dialogs.cpp:111:56: warning: cast from type 'const value_type*' {aka 'const char*'} to type 'char*' casts away qualifiers [-Wcast-qual]
   
char *newTitle = utf8ToLocal((char *)utf8Title.c_str());
                                                        ^



Nevermind the below...simply removing "ASLFR_DrawersOnly, " from the ASLWindow works
...
and show me how to get the files (and not only the directories) to display in the asl requester, that would be grand
(The sdl implementation of the file browser does show the files too and i want to stick as close to the original behaviour as possible)

Go to top
Re: Porting to AmigaOS4 thread
Just can't stay away
Just can't stay away


See User information
@Raziel

Do you need the file or just only the (full)path?

This part of code (already in your sources) adds the filename to the (full)path, only when isDirBrowser is FALSE(-1):
Common::DialogManager::DialogResult AmigaOSDialogManager::showFileBrowser(const Common::U32String &title, Common::FSNode &choice, bool isDirBrowser) {

...
                if (!
isDirBrowser) {
                    
IDOS->AddPart(pathBuffer, fr->fr_File, sizeof(pathBuffer));
                }
...

Go to top
Anonymous
Re: Porting to AmigaOS4 thread
@jabirulo

Nope, i edited my post above in the meantime.

It's just the display of all files in the current dir.
You don't need anything else, the path of the current dir is sufficient, it's just a nice touch to be able to actually see the files in the directory to be able to make out missing ones in case there is an error.

Go to top
Re: Porting to AmigaOS4 thread
Just can't stay away
Just can't stay away


See User information
@Raziel

Ok if it's only a cosmetic feature, as you posted "remove ASLFR_DrawersOnly".

Go to top
Re: Porting to AmigaOS4 thread
Just can't stay away
Just can't stay away


See User information
@Raziel

Regarding const, I meant something like:

Quote:

- Header:

class AmigaOSDialogManager : public Common::DialogManager {
...
private:
char *utf8ToLocal(const char *in);
};

- Implementation:

char *AmigaOSDialogManager::utf8ToLocal(const char *in) {
...
}


Common::DialogManager::DialogResult AmigaOSDialogManager::showFileBrowser(const Common::U32String &title, Common::FSNode &choice, bool isDirBrowser) {

...
char *newTitle = utf8ToLocal(utf8Title.c_str());

...
}


In short, pass const char* as input (it's supposed to be read-only data). Return value should be just char* if this data is going to be free()'d.


Go to top
Anonymous
Re: Porting to AmigaOS4 thread
@Capehill

Thank you very much. With the above i don't get anymore warnings.

The longer i look at the code the less i know.

There was a warning about a cast from const to char and with your solution it works, the warning is gone, but isn't that exactly what we are doing now?

casting a const char to a char???

char *AmigaOSDialogManager::utf8ToLocal(const char *in) {

I don't understand...

Go to top
Re: Porting to AmigaOS4 thread
Just can't stay away
Just can't stay away


See User information
utf8ToLocal()

expects as input/argument a CONST CHAR* "utf8ToLocal(const char *in)"

and it returns a CHAR* "char *AmigaOSDialogManager::utf8ToLocal()"

"char *newTitle = utf8ToLocal(utf8Title.c_str());"
Input is/seems a const char* "utf8Title.c_str()"
Result is char* "char *newTitle".

Those kind of warning aren't much of important, just only "expects" data to be "read-only" (const) so you don't change on your function/code and broke something.

AOS4.1/SAM460ex/PPC460EX-1155MHZ/2048MB/RadeonRX550/HDD/DVDRW
Go to top
Anonymous
Re: Porting to AmigaOS4 thread
@jabirulo

I see...so much to learn, so much to understand

Thank you

Go to top
Anonymous
Re: Porting to AmigaOS4 thread
@Capehill

I was rummaging through ScummVM's code and stumbled over these two instances regarding OpenGL.

#if !defined(AMIGAOS) && !defined(__MORPHOS__)
    
if (renderToFrameBuffer) {
        
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
        
_frameBuffer = createFramebuffer(_engineRequestedWidth, _engineRequestedHeight);
        
_frameBuffer->attach();
    }
#endif
}


#if !defined(AMIGAOS) && !defined(__MORPHOS__)
OpenGL::FrameBuffer *OpenGLSdlGraphics3dManager::createFramebuffer(uint width, uint height) {
#if !defined(USE_GLES2)
    
if (_antialiasing && OpenGLContext.framebufferObjectMultisampleSupported) {
        return new 
OpenGL::MultiSampleFrameBuffer(width, height, _antialiasing);
    } else
#endif
    
{
        return new 
OpenGL::FrameBuffer(width, height);
    }
}
#endif // AMIGAOS


1) Does #if !defined mean that the platforms are excluded or included?
2) Shouldn't it be #if !defined(__amigaos4__)?
I though (AMIGAOS) was the old platform define for the classic 68k line?
3) What would happen if i change that to #if !defined(__amigaos4__)
Are those (excluded?) GL commands supported?
Could i get rid of this (exclusion?) completely?

Thank you very much

Go to top

  Register To Post
« 1 ... 10 11 12 (13) 14 15 16 ... 22 »

 




Currently Active Users Viewing This Thread: 2 ( 0 members and 2 Anonymous Users )




Powered by XOOPS 2.0 © 2001-2024 The XOOPS Project