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.

Topics - Dave Yeo

Pages: [1] 2 3 4
General Discussion / Article on the MS OS/2 2.0 preview at OS2Museum
« on: March 06, 2024, 05:11:35 am »
Michal got hold of the preview edition of MS OS/2 2.0 plus SDK and wrote an interesting article,

Hardware / OpenWatcom Discussion
« on: February 01, 2024, 08:11:36 am »
....One version of Watcom being incompatible with the next and unfortunately picking the "official" version does not help because it is the one that is buggy.

Where are you getting an official version of OW? Last was 1.9 and there are betas on netlabs that seem as compatible with that as any.
There is Jiri's fork, I doubt that he tests OS/2.

General Discussion / Reg article on CUA
« on: January 25, 2024, 03:35:26 am »
Somewhat interesting article on the CUA at the Reg,

Programming / Duplicate symbol error
« on: October 01, 2023, 01:07:51 am »
So I tried to compile the latest smplayer, it went pretty well, a couple of minor fixes, until it got to screensaver.cpp where it tried to take the *nix path of disabling power savings.
Investigation showed that winscreensaver.cpp had the code to disable Doodles screensaver, so fixed screensaver.cpp/h by changing all the #ifdef Q_OS_WIN to #if defined (Q_OS_WIN) || defined (Q_OS_OS2), made sure that winscreensaver.cpp was compiled on OS/2 and screensaver.cpp compiled fine. Linking died with,
Code: [Select]
weakld: K:\work\smplayer\build\screensaver.obj - error: Duplicate symbol '__ZN11ScreenSaverD2Ev' ('__ZN11ScreenSaverD2Ev').
weakld: K:\work\smplayer\build\screensaver.obj - error: Symbol previosly defined in this module.
weakld: info: fFlags new 0x0001  fFlags old 0x0001 (PUBLIC).
emxomfld: weak prelinker failed. (rc=-1)
make.exe: *** [Makefile:794: smplayer.exe] Error 1

K:\work\smplayer\build>c++filt __ZN11ScreenSaverD2Ev

I don't understand where the duplicate symbol is coming from. The code,
Code: [Select]
#include "screensaver.h"

#if defined (Q_OS_WIN) || defined (Q_OS_OS2)
#include "winscreensaver.h"
#include "powersaving.h"
#ifdef Q_OS_MACX
#include "powersaving_mac.h"

ScreenSaver::ScreenSaver(QObject * parent) : QObject(parent) {
#if defined (Q_OS_WIN) || defined (Q_OS_OS2)
win_screensaver = new WinScreenSaver();
power_saving = new PowerSaving(this);

ScreenSaver::~ScreenSaver() {
#if defined (Q_OS_WIN) || defined (Q_OS_OS2)
delete win_screensaver;

void ScreenSaver::enable() {
#if defined (Q_OS_WIN) || defined (Q_OS_OS2)

void ScreenSaver::disable() {
#if defined (Q_OS_WIN) || defined (Q_OS_OS2)

#include "moc_screensaver.cpp"

Code: [Select]

#include <QObject>

class PowerSaving;
class WinScreenSaver;

class ScreenSaver : public QObject

        ScreenSaver(QObject * parent = 0);

public slots:
        void enable();
        void disable();

#if defined (Q_OS_WIN) || defined (Q_OS_OS2)
        WinScreenSaver * win_screensaver;
        PowerSaving * power_saving;


Winscreensaver.cpp is at change the .cpp to h for the header.

Programming / dart.h
« on: September 26, 2023, 09:53:43 pm »
Seems this has been discussed before. Where to find dart.h as I'm building MPlayer and its configure script tests for it.

Programming / Building a Dooble RPM
« on: April 19, 2023, 03:36:52 am »
Hi, so I've revisited building an RPM, which I haven't had luck with, this time with Dooble.
Downloaded the latest Dooble source RPM, dooble-2022.10.15-1.oc00.src.rpm and used unrpm to expand it. Followed the directions at to set up my environment, basically downloaded required packages and created %HOME%\.rpmmacros containing "%_topdir h:/rpmbuild" without the quotes. H: is my ramdisk. Ran rpmbuild as the page recommends, results
Code: [Select]
H:\rpmbuild>rpmbuild -ba dooble.spec
error: line 13: Unknown tag: %scm_source github
dooble-os2 2022.10.15-os2
Code: [Select]
H:\dooble_rpm>rpmbuild -ba dooble.spec
error: line 13: Unknown tag: %scm_source github
dooble-os2 2022.10.15-os2

The RPM page clearly says that %scm_source is a valid tag,

This macro is intended as a replacement for the standard Source: tag. The format is as follows:

%scm_source SCM URL REV

where SCM is the type of the source code management system (currently supported ones are svn, git and github), URL is the full URL of the source code repository for the given program and REV is the revision to use.

Any ideas where I have gone wrong? I expected a dooble rpm pretty much identical to the Bitwise release, then I could adjust it as needed. I've run into the same issue with trying to build other packages hosted on Github.

Web applications / Dooble releases, Qt5 builds
« on: February 20, 2023, 02:17:05 am »
Hi here's the latest release of Dooble compiled for Qt5. See the release notes under Help for what's new.

Hardware / Displayport?
« on: August 05, 2022, 07:34:37 am »
So this computer I'm using has a Sandybridge/Ivybridge graphics controller with a VGA and a Displayport ports, monitor has VGA and DVI ports and supports 1920x1200 as its native resolution.
For quite a while I was simply using the VGA connection, everything worked fine but slightly blurry.
Then I came across a Displayport to DVI passive connector so I tried that.
While the graphics were sharper, especially text mode, I came across these limitations. The screensaver would put the monitor to sleep but it would not wake up, forcing a reboot to awaken it. Same with SNAP and Panorama. Nothing I tried helped here, worked fine under Linux, which reported a HDMI connection. The other thing was I tried using Xfree86 using the VESA (VBE) driver, it simply did not find a graphics card at all, which was weird. Works fine with the VGA connector and an older Panorama/SNAP, newer ones seem to have done something to support UEFI where switching back to the WPS fails, a bit of drawing and then a full hang.
Just wondering about others experience with Displayport and OS/2. Perhaps a monitor that supports Displayport would be better, it seems that Displayport falls back to a DVI compatible protocol when used with a passive converter.

Programming / getting a single keypress?
« on: May 16, 2022, 06:00:21 am »
Trying to fix the terminal control in mpg123 so things like pause work.
Example program which works on other systems but not on OS/2, at that sometimes hangs the system.
Ideas to get this to work?
Code: [Select]

#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <sys/select.h>
#include <unistd.h>
#include <termios.h>

int term_fd = -1;

int get_key(int do_delay, char *val)
fd_set r;
struct timeval t;
t.tv_usec=(do_delay) ? 1000 : 0;
int n = select(term_fd+1,&r,NULL,NULL,&t);
if(n > 0 && FD_ISSET(term_fd,&r) && read(term_fd,val,1) == 1)
return 1;
return 0;

int main(int argc, char **argv)
if(argc >= 2)
term_fd = open("/dev/tty", O_RDONLY);
term_fd = STDIN_FILENO;
if(term_fd < 0)
perror("failure opening terminal input");
return 1;
fprintf(stderr, "terminal fd: %d\n", term_fd);

struct termios old_tio;
int termsetup = 0;
if(!tcgetattr(term_fd, &old_tio))
fprintf(stderr, "proper terminal setup\n");
struct termios tio = old_tio;
tio.c_lflag &= ~(ICANON|ECHO);
tio.c_cc[VMIN] = 1;
tio.c_cc[VTIME] = 0;
termsetup = 1;

char val = 0;
while(val != 'q')
if(get_key(1, &val))
fprintf(stderr, "got key: %c\n", val);

if(term_fd > 0)
return 0;

Programming / i686 vs Pentium 4
« on: March 06, 2022, 07:56:47 am »
I know this has been discussed before, but I think we should revisit as Bitwise has decided to force us to the Netburst (Pentium 4) architecture and it is easier to make an argument here rather then at Github which no longer works well on out old browsers. ideally would be to make arguments here and then reference this thread on Github.
The main difference between the various i386 architectures is how things are optimized and whether simd (MMX, SSE, SSE2) intrinsic's are used. 

Programming / Building SDL2 (and later linking against it)
« on: February 06, 2022, 06:55:08 am »
OK, I almost have SDL2 building. Using this configure command,
Code: [Select]
sh ../SDL2-os2/configure 'LDFLAGS=-Zomf -Zhigh-mem -Zmap -Zbin-files' LIBS=-lcx 'CPPFLAGS=-idirafter=k:/usr/include/os2tk45'
Configure outputs,
Code: [Select]
SDL2 Configure Summary:
Building Shared Libraries
Building Static Libraries
Enabled modules : atomic audio video render events joystick haptic hidapi sensor power filesystem threads timers file loadso cpuinfo assembly
Assembly Math   : mmx 3dnow sse
Audio drivers   : OS/2
Video drivers   : OS/2
Input drivers   :
Enable virtual joystick APIs : YES
Using libsamplerate : NO
Using libudev       : NO
Using dbus          : NO
Using ime           : NO
Using ibus          : NO
Using fcitx         : NO

So it looks like it is pulling hidapi for joystick use. Possibly the OS/2 joystick support needs disabling.
Unluckily the build dies here,
Code: [Select]
libtool: compile:  gcc.exe -g -O3 -idirafter=k:/usr/include/os2tk45 -DUSING_GENERATED_CONFIG_H -Iinclude -IK:/work/SDL2-os2/include -idirafter K:/work/SDL2-os2/src/video/khronos -mmmx -m3dnow -msse -Wall -fno-strict-aliasing -DOS2EMX_PLAIN_CHAR -Wdeclaration-after-statement -Werror=declaration-after-statement -D_REENTRANT -I/@unixroot/usr/include/libusb-1.0 -MMD -MT build/SDL_os2dive.lo -c K:/work/SDL2-os2/src/video/os2/SDL_os2dive.c  -DDLL_EXPORT -DPIC -o build/.lib/SDL_os2dive.o
K:/work/SDL2-os2/src/video/os2/SDL_os2dive.c:27:10: fatal error: mmioos2.h: No such file or directory
   27 | #include <mmioos2.h>
      |          ^~~~~~~~~~~
compilation terminated.
make: *** [build/SDL_os2dive.lo] Error 1

The CPPFLAGS=-idirafter=k:/usr/include/os2tk45 should put the toolkit last in the include path, yet mmioos2.h isn't found.

Internet / Simple Browser revisited.
« on: December 29, 2021, 04:30:20 am »
Starting a new thread about the latest simple browser as the last one got long and wandering.
I just realized that if you install qt5-qtwebengine-examples 5.15.2-1 (netlabs-rel) along with its dependencies (I'd suggest the corresponding debuginfo files as well), we get,
This is a newer one then the one that escaped and at least supports copy and paste for passwords and such. Still a simple browser with no bookmarks, url completion and so on but it displays a lot of sites that our other browsers puke on.
You will have to mark as much to load high as possible. I started with (in @unixroot\usr\lib)
Code: [Select]
highmem -c qt5*dll
Then discovered trying to play a youtube video consistently crashed with a sigtrap from code protecting allocating too much memory or such, so I did,
Code: [Select]
highmem -c av*dll
to mark all the FFmpeg DLL's to load high, this includes the ones used by Mozilla, probably a good idea on its own. There's likely a few more I haven't got around to as they're small.
The browser is still unstable, and it is slow, too slow on this 3.1Ghz I5 to play Youtube videos. Still for looking at the occasional page, it seems to work.
I'd also advise setting the VIRTUALADDRESSLIMIT as high as possible, 3072 here. The first simplebrowser came with a script that set a couple of environment variables, "KAI_AUTOMODE=DART" which is likely already set in ArcaOS and "QTWEBENGINE_CHROMIUM_FLAGS=--single-process" which could be set in the program object. I've tried with and without the "--single-process" and didn't notice much difference in my limited testing.
As said, it is crashy and has crashed silently a few times as well as locking up the computer. Also depressing when sites still complain that it is old and unsupported, while rendering the page fine.

Programming / AVX enabled Firefox
« on: February 19, 2021, 11:19:53 pm »
Finally got around to trying to build Firefox with -march=sandybridge. While the build works fine with -march=i686 or pentium-m, it dies with -march=sandybridge, doesn't seem to like the GCC basic_string<char>. Error log attached if anyone has any ideas.

Internet / Password Managers
« on: February 17, 2021, 05:01:52 am »
So I've been using the free edition of LastPass for a while. It works fairly well as a browser extension on both SM and FF with the old extension still supported. It also works well on my Android phone.
They're changing the terms next month so the free edition is only usable on mobile or desktop and I can't afford to pay for it.
So wondering what password managers people are using.

Storage / USB 3 Hard drives
« on: December 24, 2020, 05:50:26 am »
Hi, there's been various discussions about USB 3 hard drives here and on the testers list so I thought I'd start a new dedicated thread.
I've acquired a Seagate Slim Drive USB 3 2TB drive for backup purposes which worked well with USB 2, peaking at about 19 MB/s.
Now I acquired this, which showed up within 3 days in my mail. Unluckily the needed cables from a different supplier haven't shown up yet. So I lucked out and picked up a 6 foot USB C to USB A cable at London Drugs for $7 bucks, it's rated at 5Gb/s, USB 3 speed.
Testing by transferring an ArcaOS ISO using File Commander, I see speeds of 90-98 MB/s, under Linux, Using MC and an EXT4 partition, the speeds are about 100-110 MB/s for really big files with the odd really high peak. Seems pretty decent, at that testing with the Mozilla source tree (about 5GB's of mostly small files) it is still about 30 MB/s, speeding up for large files and slowing down for small files. It's actually faster then my SSD on a SATA 2 port and may be the fastest drive in my system.
Problems, I have a 1 TB JFS partition for backing up to. Given a power failure or system crash, chkdsk runs for hours before quitting  with
Code: [Select]
JFS0101: CHKDSK  Insufficient dynamic storage available for required workspace

I guess I'll repartition as even though after ejecting and remounting the drive seems fine, who knows.
The other problem is all attempts to benchmark with diskio or sysbench locks the system hard, requiring the big red button to reboot and that hours long chkdsk.
Copying files, using rsync and such seem to work fine.
I must say I'm impressed so far with the hard drive speed, unlike other reports. Not sure if due to the USB C controller or what.
Edit, USBTree reports,
Code: [Select]
USB driver version = 12.8
----- USB device tree ---------------------------------------------------------
DS 07f0=4ff8

Controller 0: USBXHCD$
Root Hub 0 (4 ports) 1B21:2142
  Port 1: Device 0BC2:AC2D (MSD)-(SCSI)-(BO)(MSD)-(SCSI) SS Seagate RSS LLC

Pages: [1] 2 3 4