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 ... 8
Programming / Re: Manipulating a PM window from another program
« on: March 27, 2020, 05:26:01 pm »
Code: [Select]
hw = WinWindowFromID(VIOhandle, FID_SYSMENU);

Where is the failure?

SC_CLOSE appears on a submenu of FID_SYSMENU. Therefore, the correct call is

Code: [Select]
hw = WinWindowFromID(VIOhandle, FID_SYSMENU);

Programming / Re: Manipulating a PM window from another program
« on: February 18, 2020, 06:02:19 pm »
The correct way to do this:

* delete menuid SC_CLOSE from the System menu (FID_SYSMENU); this will also remove the Close button from the MinMax button (FID_MINMAX)

* delete menuids SC_MAXIMIZE and SC_RESTORE from both the System menu and the MinMax button
* delete menuids SC_MAXIMIZE and SC_RESTORE from the MinMax button, and SC_MAXIMIZE from the System menu

* do NOT remove the Minimize button. It is the user's right to clear his screen if desired - even if it may have negative consequences in some *few* situations.

Edit: leave "Restore" on the System menu for use when the window is minimized

Hardware / Re: Thinkpad X60s + X6 UltraBase
« on: January 31, 2020, 07:54:53 pm »
Also, be aware that once a drive has been ejected, it must be physically detached and reattached before it can be mounted again.
On my system it is not necessary physically detach and reattach drive to mount it again. 'USB widget Refresh' on XCenter usually do the job.
Rescan in FM/2 does the same thing.

If you have Lars' version of 'USBMSD.ADD' installed, a physical removal and reinsertion is not needed to remount a drive after it has been ejected. However, on Hakuchi's freshly-installed AOS system with the IBM driver, it definitely is.

Hardware / Re: Thinkpad X60s + X6 UltraBase
« on: January 30, 2020, 05:40:42 pm »
It doesn't work correctly when trying to access it via XCentre widget or by kliketi-klik in file manager (or what ever that is called in OS/2). It does show up when it is inserted when booting but it cannot be accessed. It shows up "Empty" in the XCentre as I explained earlier. I just did test your suggested remove/reinsert and it seems to not work at all. It's not seen anywhere. This is when one uses USB ports on the laptop itself.

When inserted into two ports on Ultrabase, it is recognised, but cannot be accessed. Shows up as "Empty" on XCentre. One can "Check disk" however and all seems to be ok. But there is a twist to this!

When I open up Text Editor and browser through there it is seen right and those files can be touched like a girls in the red-light district ... So something is fishy.

Open an OS/2 commandline session (an "OS/2 window") and enter "dir X:" (where x: is the letter assigned to this drive). If the WPS (the GUI) has been telling you that the drive is empty, then you should get a message saying "The disk or diskette can not be accessed". To fix this, run 'chkdsk' from the commandline (yes, I see you ran it from the GUI, but do it anyway):  "chkdsk X: /f"  When done, try doing a "dir" - it should now be able to list the contents.

Be aware that on OS/2, you must eject a USB drive before physically disconnecting it. Failure to do so may cause the drive to be marked as "dirty" and inaccessible until chkdsk is run. The easiest way is to use the "USB widget" on XCenter (from a commandline, you can also use "eject X:"). Also, be aware that once a drive has been ejected, it must be physically detached and reattached before it can be mounted again. As I'm sure you know from Win, FAT16 is horribly unreliable - particularly on flash drives - so the problem you've encountered is not all that unusual.

FWIW... I wrote all of the install-from-USB stuff in AOS as well as XCenter's USB widget ("RemMedia", by name), so I have a fair amount of experience dealing with this stuff...

I cannot believe that there is no solution for sending Ctrl-C to cmd.exe.

Of course there is.

As I understand it, you want the user of your PM-based editor to be able to press Ctrl-C or Ctrl-Break in your app to send a signal exception to cmd.exe. Your problem here is that these two keystrokes have no special meaning in PM and won't generate an exception. They're just keystrokes that show up in your message queue.

When you get one, call DosSendSignalException(pid, exception). 'PID' is the process you DosExec()'d. Exception is XCPT_SIGNAL_INTR or XCPT_SIGNAL_BREAK. I leave it to you to test whether this works.

Applications / XWP v1.0.13 GA
« on: January 15, 2020, 02:29:40 am »
XWorkplace v1.0.13 GA is now available.

New Features
  • XShutdown now provides a live Reboot List taken from your AirBoot/BootManager's menu. It is always up to date and requires no configuration (IBM BM support requires LVM). XShutdown's page in the Desktop's notebook has also been updated.
  • The Pulse widget now offers two types of graph: the standard line graph, and a new color-coded moving bar graph that shows average load across all cores. Other improvements include a faster line graph and fixed-position display text that shows when a core is offline.
  • An ACPI-based CPU Temperature widget has been added to XCenter, courtesy of David Azarewicz.
  • Initial Spanish language support has been provided by Alfredo Fernández Díaz.
Updates and Bugfixes
  • NLS - Lite versions will use the "LANG" environment variable to determine which NLS version to load; the behavior of XWP-Full is unchanged. Language settings for all versions can be overridden by putting this in config.sys: "SET XWP_LANG=xxx" - where xxx is a 3-digit country code that XWP supports (e.g. 039)
  • XCenter - 'Create new widget' has been added to all XCenter menus
  • Install/Remove - after uninstalling XWP, the "System" object will be recreated in System Setup the next time the Desktop restarts
  • See XWP Help's "Version history" topic for additional update details.
This version is available in both Full and Lite versions for German, English, Spanish, Italian, Japanese, and Dutch.


This only applies to PM apps. None of the DLLs listed in SYS_DLLS are loaded into VIO apps.

(3) Not all textmode programs do write into stdout, but there is text output shown nevertheless. This output gets shown in the hidden cmd.exe VIO window and not in my editor window. Can someone explain what this means and perhaps how to get this text in stdout nevertheless?

A VIO window is not a virtual TTY device. It's an emulation of a full-screen text mode session. In these sessions, the screen is accessed via the Vio API functions which can write anywhere on the screen independent of stdout/stderr. When an application like cmd.exe wishes to write stdout/stderr to the screen, it probably uses an internal version of VioWrtTTY().

To capture Vio API output, you would need access to the actual screen buffer used by full-screen apps or the virtual screen buffer used by VIO windows. Unfortunately, these buffers belong to other processes, so your app has no way to get at them.

Applications / Re: XWP and folder file size listing
« on: November 19, 2019, 03:34:53 am »
If all you're interested in is a larger command line window, add this to the "Parameters" field of whatever object you use to start 'cmd.exe':
/k mode 104,43

For the command line window that XWP adds to folder menus, I use this to increase the size and change the current directory:
/k mode 104,43 & cd %*

Another way to open a command line in the desired directory is to drop a file or folder on this object.

Applications / Re: XWP and folder file size listing
« on: November 16, 2019, 10:44:31 pm »
I was about to explain the cause but Gregg beat me to it, so I'll just add this: almost certainly, the culprit here is Doodle Screen Saver which you've been playing with lately. Did you have it installed previously?

FYI... my fix for this was to reset the FPU control word to what VAC expects every time a folder is about to be refreshed. This works most of the time but not always. I don't know why.

Networking / Re: openvpn configuration?
« on: October 03, 2019, 04:42:37 pm »
I have no idea how difficult it might be to create a tun driver for OS/2 - from what I've read, almost all VPN services prefer tun to tap - which is awkward as our port only supports tap!

I wouldn't worry about 'tap' vs 'tun'. Win uses 'tap', so it's going to be supported by commercial providers if they want any customers. Writing a new device driver for 'tun' is a tall order and best avoided if possible.

I'm sure I can tweak the code around loading ifconfig.exe - I'll try and remember to zip up the source tonight.

I suspect that this warning is the cause for the misconfiguration:
> WARNING: 'dev-type' is used inconsistently, local='dev-type tap', remote='dev-type tun'

My _guess_ is that there's some code or flag in the Win version that tells the server to use 'tap' during the initial connection setup - code that's being bypassed because Win32 isn't #defined.

If you'd care to share a diff of your changes, I'd be happy to pull the source and start looking.

Networking / Re: openvpn configuration?
« on: October 02, 2019, 09:50:34 pm »
I'm trying to use Paul's build to connect to a commercial VPN provider but I'm not having any luck (the problems aren't specific to his build - all 3 versions act the same ).

At first I thought it would be easy because the provider (TigerVPN) offers customized '.ovpn' files for each of its servers. After changing "dev tun" to "dev tap", I tried to connect and got this:
Code: [Select]
Wed Oct  2 12:37:36 2019 C:/MPTN/BIN/ifconfig.exe lan1 netmask mtu 1500 up
sem reset rc=300
Error: Interface is not point-to-point.
Wed Oct  2 12:37:36 2019 OS/2 ifconfig failed: external program did not exit normally

Note that it's supplying both local and remote IPs, rather than just the local address. My guess is that it's trying to configure lan1 as though it were a "tun" device rather than a "tap". Setting "dev-type tap" didn't help. Also, our 'ifconfig' complains if you include "up" when setting the address and netmask, so that's another minor problem.

Next, I tried to do a workaround by having it run a script using the "up" and "ifconfig-noexec" options rather than letting it run 'ifconfig' directly. No such luck, doing so produces this:
Code: [Select]
Wed Oct  2 12:48:30 2019 Assertion failed at misc.c:222

I got the same results regardless of whether I used 'cmd.exe' or 'sh.exe' (and the appropriate type of script). Having it run the same dummy script at an earlier point in the process worked just fine, so the issue isn't OpenVPN's ability to run a script or the script itself.

Finally, I considering writing a wrapper for 'ifconfig' that would fix the command line, but then I discovered that the path to 'ifconfig.exe' appears to be hard-coded as "x:/MPTN/BIN". This makes the wrapper idea impractical because it would affect normal use of 'ifconfig' during startup. (IMHO, the .exe should be found via a PATH search.)

Does anyone have any suggestions on how to get this working?

Setup & Installation / Re: eCenter button image
« on: October 02, 2019, 03:26:11 am »
Thanks. I've extracted it, to possibly use the usual, known eCenter button image for xCenter. The extracted eCenter bitmap appears to be either damaged or weirdly wrapped, but so far I've only stripped bytes before the bitmap's header and haven't looked at the back end yet. After a quick fix it's good enough already, albeit not pixel-perfect.

Don't bother with that. Go to where you'll find 'ecslogo.bmp'  and 'ecsminilogo.bmp'. I believe you need the mini version.

Setup & Installation / Re: eCenter button image
« on: September 28, 2019, 03:17:02 am »
The eCenter/XCenter button image is a bitmap resource (number 128 ) attached to 'xwpres.dll'.

Hardware / Re: CUPS EPSON ET-4700 printer problems
« on: September 23, 2019, 07:41:53 am »
The driver you're looking for is here:

This file contains 2 other zips: my port of Epson's open-source CUPS-driver, and an OS/2 Postscript driver based on PSPRINT that I pre-configured to support 511 models of Epson Inkjet printer.

Both require MANUAL installation. Please follow the enclosed directions *exactly*.

Pages: [1] 2 3 ... 8