Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Rich Walsh

Pages: [1] 2 3 ... 28
1
Programming / Re: native mainframe mini-clone
« on: October 15, 2025, 08:11:42 am »
the kernel and device drivers are all 16-bit code, and the flag that signals "16-bit code" on an x86 signals "64-bit code" when long-mode is enabled.  You can have 16/32 code or 32/64 code but not 16/32/64.

I think you might have been misinterpreted, and you are in fact correct, but could you please answer the below?

https://bttr-software.de/forum/board_entry.php?id=22728

That’s what I thought, but it is incorrect. Long mode can deal with all three code segment sizes at the same time, as indicated by the very first table in the system programming volume of AMD’s architecture manual (“Operating Modes”).


The author of that posting missed an important point: to have code run in AMD64 compatibilty mode, the host OS must be 64-bit. Given that OS/2 is 32-bit, the CPU can only run in one of the legacy modes (i.e. 16 or 32-bit).




2
Applications / Re: General Software Testing
« on: October 10, 2025, 05:23:02 pm »
Now get warnings like,
Code: [Select]
gcc    -c -o Mandel.o Mandel.c
Mandel.c: In function 'MandelWndProc':
Mandel.c:170:20: warning: passing argument 1 of '_beginthread' from incompatible pointer type [-Wincompatible-pointer-types]
  170 |      _beginthread (SaveThread, 0, 4096, &pfdFileDialog.szFullFile);
      |                    ^~~~~~~~~~
      |                    |
      |                    void (__attribute__((system)) *)(char *) {aka void (*)(char *)}

Not sure of the fix.

_beginthread (&SaveThread, 0, 4096, &pfdFileDialog.szFullFile);

It wants the address of SaveThread() (whence the '&'), not just a reference to it. Other/earlier compilers would do the conversion without mentioning it - gcc has gotten fussier over the years.

Edit: all wrong :(  It's complaining that the signature of SaveThread() doesn't match what it expects: a function that takes a character ptr and doesn't return a value. Take a look at SaveThread() and see if it returns a value or takes e.g., a ptr to void rather than a char ptr, then modify or cast accordingly.


3
Applications / Re: Dynamic Icons Issue
« on: October 06, 2025, 05:51:02 pm »
But it still does not render the .png files as thumbnails to be shown on the desktop.

This is a bug in MMFolder when it is set to "Single column" or "Multiple column". Only the icons that are visible when the window opens get thumbnails. If you scroll new objects into view, their icons are not replaced by thumbnails. Switch to "As placed" and everything should display correctly.

Bugs in CWMM can be reported through AN's Mantis Bug Tracker. The bug will usually be handled by CWMM's maintainer, Gregg Young.

4
Applications / Re: Dynamic Icons Issue
« on: October 05, 2025, 11:52:28 am »
Why is this "problem" attributed to Dynamic Icons? D.I. converts an object's OS/2 icon to a variable-sized PNG image which it then displays. It has nothing to do with thumbnail creation. Nor for that matter do generic folders ('WPFolder') - they don't create them either. For automatic creation of thumbnails, you need a "Lighttable folder" ('MMFolder').

If you have the latest version of 'oo', you can use it to convert a normal folder to a lighttable:

    oo /B C:\sys\icons\WhiteLightBlue MMFolder

5
Programming / Re: native mainframe mini-clone
« on: September 13, 2025, 01:15:54 am »
can I have a normal executable (.exe), running at the OS/2 fullscreen prompt, that has the privilege required to disable interrupts and switch from PM32 to LM64?

Can a Ring 3 executable execute a Ring 0 priveleged instruction that could blow up the entire system? Hell no!

Quote
If so, what do I need to do to get such privilege on OS/2?

You would need a device driver which operates at Ring 0.  In the UEFI version of ArcaOS, the bootloader stub which remains after the OS is running will switch to long-mode to read the machine's NVRAM variables, then will switch back. While doing so, all of OS/2 must stop because it is 100% *incompatible* with long-mode. Why? Because the kernel and device drivers are all 16-bit code, and the flag that signals "16-bit code" on an x86 signals "64-bit code" when long-mode is enabled.  You can have 16/32 code or 32/64 code but not 16/32/64.

6
Utilities / Re: Executables are not assigned the proper WPS class
« on: August 07, 2025, 11:18:20 pm »
As an alternative to deleting EAs and setting file types, you can use the attached copy of 'oo' which supports a "Become" (/b) option. For example:
Code: [Select]
oo /b DANIS506.ADD WPProgramFile

If you plan to execute this in a loop to change multiple files, bracket your loop with "oo /+" and "oo /-" to lock the RWS08 class in memory so it doesn't have to be reloaded on each call. Example:
Code: [Select]
oo /+
for %1 in (*.ADD) do oo /b %1 WPProgramFile
oo /-

7
Utilities / Re: Executables are not assigned the proper WPS class
« on: August 07, 2025, 05:18:54 pm »
Under the WPS, for many but not all executables (that is: .EXE and .DLL files, possibly others like .ADD, .DMD etc ?), these are not assigned the proper WPS class (X)WPProgramFile. Instead, they are assigned class (X)WPDataFile.

<short answer>
This may be the result of a long-time bug in XWP that I fixed in 1.0.17.  The quick fix is to delete these files' .CLASSINFO EA then restart the Desktop.

<long answer>
WPS classes can specify which file extensions they're associated with - but WPProgramFile does not specify anything. This lets some internal WPS logic decide what class these files should be. XWPProgramFile broke this by specifying "*.COM,*.EXE", causing some binaries to be mis-classified. Manipulating the file in the WPS - for example, by opening its notebook - locked the error in place by forcing a .CLASSINFO EA to be written for that file.

AFAICT, the internal logic for binaries applies to .EXE .COM .and .DLL only. Other binaries are taken to be WPDataFiles unless they have a .TYPE EA of "Executable" (most likely put there by the linker).

So... for any binary with the wrong class (easily identified by its icon), delete its .CLASSINFO EA. For binaries that would otherwise be identified as WPDataFile, add an "Executable" .TYPE EA. For best results, keep the WPS folder containing these files closed, and work from the commandline or a GUI app to make changes, then restart the WPS.

8
I just uninstalled dynamic ico 2.5.6 and trashcan works again !
Could it be possible something into it doesn't work as supposed?

Given that no one else has reported this problem, nor your original problems with D.I. 2.56, nor other WPS issues we've worked on in the past, I have to assume there is something seriously non-standard about your system that is causing these issues.

It could be alternate versions of PMWP, PMMERGE, the various SOM dlls (possibly from installing VACPP), or some add-on you've been using for years. It's up to you to determine what _you_ did to _your_ system to trigger (not "cause") this bug. Without that info, there's almost nothing I can do to fix it because neither I nor seemingly anyone else can duplicate it.

Quote
What is the purpose of WPPngCache class which doesn't exist under 2.5.2.2 ?

WPPngCache is the first new SOM/WPS code in at least 10 years that actually _does_ something beside put pages in a notebook.

The first time any class or object is asked to display its unique icon, it creates a cache object to manufacture and cache multiple sizes of its icon. Some of these cache objects are private to the object that created them (e.g. PM exe's) while others are shared among all objects that use the same icon (e.g. VIO exe's). The result is a 90+% reduction in memory usage over v2.52 (plus the ability to use different sized icons in Icon and Tree views).

9
The Trash can icon no more changes from empty to full ! Any idea to restore this object icons ?

The easiest way is to replace it.

From a commandline, run this to delete the existing one:

oo /d "<XWP_TRASHCAN>" f

Then, run this to recreate it. This is all on one line:

oo /n XWPTrashCan TrashCan "<WP_DESKTOP>" DEFAULTVIEW=DETAILS;ALWAYSSORT=YES;DEFAULTSORT=9;DETAILSCLASS=XWPTrashObject;SORTCLASS=XWPTrashObject;OBJECTID="<XWP_TRASHCAN>";

10
Article Discussions / Re: Games with older SDL and FSLIB
« on: July 17, 2025, 03:22:31 am »
Ok, if I knew more German, the comment might have clued me in :)

I too am working on a project where all the comments are in German, so I added this to my Favorites:

   https://translate.google.com/?sl=de&tl=en&op=translate

11
Article Discussions / Re: Games with older SDL and FSLIB
« on: July 16, 2025, 07:03:19 pm »
Hi Martin, ran into problems with getopt()
Code: [Select]
In file included from main.cpp:32:
W:/usr/include/getopt.h:166:12: note: declared here
  166 | extern int getopt ();

Unluckily I'm not knowledgeable enough to get past this.

But you are (or will be)...

In cases like this it's a good idea to look at the header to see if there are any notes or #defines that might explain the problem. In this case, there are two different prototypes: one taking 3 args that you want, and one taking no args which is what you're getting. It depends on whether __GNU_LIBRARY__ is #defined (which it should be, AFAIK).

However... looking at the header reminded me of the _real_ problem. 'getopt()' used to be a standalone library with its own header. Nowadays it's part of the standard C library and is declared in 'unistd.h'. So, I think the solution here is to delete any '#include <getopt.h>' so the compiler finds the correct prototype.

12
Setup & Installation / Virtual Serial Port?
« on: July 12, 2025, 06:58:15 pm »
I'm doing some maintenance on a program that won't start up unless it finds a 'COM1:' - but my late-model machine doesn't have any serial ports.

Is there a driver that will create a COM1$ device without the backing hardware? (It doesn't really matter what this virtual port does - it just has to be present.)

13
It appears to me that an empty environment is passed to the program started when a file is dropped on a WPS program object.

I'm afraid you've found The Bug in DTProgram. I know what the issue is, I'm just not sure how to resolve it. The quick fix is to remove any entries you made on the 'Environment' tab of the program object's notebook.

When you drop a datafile on a program object, the pgm object does *not* open the file. Instead, the datafiles's wpDroppedOnObject() method is called, advising that it was just dropped on the pgm object. The datafile then queries the pgm object for its PROGDETAILS structure which contains the particulars for that program. Using this info, the datafile runs the program itself. And here lies the problem...

PROGDETAILS includes contains an optional 'pszEnvironment' field that can be used to supplement or replace the default environment When DTProgram sees the field contains something, it merges whatever it finds with the existing environment. Unfortunately, WPProgram assumes that the field contains the entire environment, leaving whatever it starts with nothing but your few entries.

The obvious solution is to always merge your entries with the generic environment, but that entails a lot of overhead to resolve a problem that seldom occurs. I'll see what I can do.

14
Applications / Re: [Arca Noae] Dynamic Icons version 2.5.6
« on: May 29, 2025, 04:55:50 am »
eco runtime was installed since my ArcaOs 5.0.x and available through 
I always upgraded ArcaOS up to 5.0.8 before upgrading to 5.1.x
https://www.arcanoae.com/eco-software-runtime-packages-updated-to-20241129/
was upgraded since.

In that case, you should probably install the package Martin found since AOS's distribution of the ecoSoft runtime has *never* included wpfldrex.dll. If the date on your dll is older than Oct 13, 2017 it needs upgrading.

Regardless, when I run into icons that are being "difficult' I just start pushing buttons :) On the icon page, I'll press the 'Reset icon' button which seems to have no effect, then 'Default' which messes things up, then finally 'Undo' which half the time restores the correct icon. If that doesn't work, I'd assign the icon to another object, delete the folder's .ICON EA, restart the WPS, then assign the folder a new copy of the icon using the other object.

15
Applications / Re: [Arca Noae] Dynamic Icons version 2.5.6
« on: May 26, 2025, 04:58:27 pm »
It seems that eCo Runtime, the optional "WPS package", is the one that replace the Folder class.
- https://5nets.ru/wp-content/downloads/eCoRT/eCoRT-WPS-20171113.wpi
[...]

I disabled "Use custom icons" and I can not reproduce Remy's issue.

Thanks for the link. It was never part of AOS (I checked several versions) and ecomstation.ru doesn't seem to be distributing it anymore. It _seems_ more stable than the 2009(?) version which was pretty bad IIRC. If Remy has the older version, I'd suggest he upgrade to this one - using it, I can't reproduce the problem either.

Pages: [1] 2 3 ... 28