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 - Dave Yeo

Pages: [1] 2 3 ... 238
1
Programming / Re: getting a single keypress?
« on: Today at 07:21:31 pm »
Hi Rich, the test program was written by Thomas the maintainer, based on the mpg123 code. It does run on the same thread so the DosSleep()  is required and the file itself is term_posix.c with HAVE_TERMIOS a requirement and Thomas did add the comment,
Code: [Select]
#ifdef __OS2__
// Hoping for properly working termios in some future (?!), but until then,
// we need keyboard access bypassing that.

It does seem to work well.

2
Programming / Re: getting a single keypress?
« on: Today at 05:32:15 pm »
It didn't seem to work while a program was running.

3
Programming / Re: getting a single keypress?
« on: Today at 03:45:54 am »
Yea, I'm not a C coder either. This is the code we ended up with, modded to also show the hex value,
Code: [Select]
#define INCL_KBD
#define INCL_DOSPROCESS
#include <os2.h>
#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)
{
KBDKEYINFO key;
key.chChar = 0;
key.chScan = 0;
// optionally: sleep for a tiny bit
        DosSleep(5);
if(!KbdCharIn(&key,IO_NOWAIT,0) && key.chChar)
{
*val = key.chChar;
return 1;
}
return 0;
}


int main(int argc, char **argv)
{
if(argc >= 2)
term_fd = open("CON:", O_RDONLY);
else
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;
tcsetattr(term_fd,TCSANOW,&tio);
termsetup = 1;
}

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

if(termsetup)
tcsetattr(term_fd,TCSAFLUSH,&old_tio);
if(term_fd > 0)
close(term_fd);
return 0;
}
Only problem is that it gets a scan code first, which is ignored. Executable attached.
[/code]

4
Games / Re: DOS VDM - USB and Game port Gamepad support
« on: Today at 12:57:02 am »

I'm actually running tests on a tower, with an AMD hexcore processor and 3 Gb of usable memory installed (actually 8 GB in the system, but ArcaOS is not seeing the rest). Occasionally after installing the gamepad package previous to 2022-05-17 and with the current one, I've gotten a black screen trap, attempting to start a game with one of the xevents packages active.

I've attached a photo of the trap screen, if it is of any help - I have not determined a particular reason why it happens at the moment as I've only seen it four times and Best!


Hi Mark, that is a weird trap as it is a breakpoint, probably code that should never be reached and perhaps worth opening an issue with Arca Noae, especially if you could get a system dump of it. Unluckily if it is only occasionally trapping, it'll be hard to get a good dump as rally you should lower your memory, 3GB dump is big.

5
Games / Re: DOS VDM - USB and Game port Gamepad support
« on: May 20, 2022, 02:00:51 am »
You could try disabling the shadow buffer in the screen object as a test. Graphics will be slow until you re-enable it.

7
Hi LuigiThirty, welcome.
Does the machine actually support ACPI? You could turn on logging in \mptn\etc\acpid.cfg (might have to copy the sample) and/or run AcpiStat to see if it says anything interesting.
Might need the old OS2APIC.PSD.
Really you should consider opening an issue at Arca Noae.

8
Programming / Re: Desktop Apps from JavaScript - Electron?
« on: May 18, 2022, 11:59:05 pm »
As far as I'm aware, Electron uses Blink & V8, which are the Chromium/Chrome rendering engine and JavaScript VM.

So it would basically require porting Chromium to OS/2 :(.

Dooble is Chromium based, so Blink or Webkit and V8 are available. What we would need is a framework. Looking quickly I don't see what Electron uses but I'd guess GTK.
Actually it seems to be its own framework. I see on Linux it does use GTK but a quick search doesn't show a QT version.
The equivalent under QT seems to be nodegui, https://github.com/nodegui/nodegui seems to use Mesa on Linux so 3D graphics probably needed or more porting.

9
Applications / Re: Test build of dooble with qt5
« on: May 18, 2022, 04:22:25 pm »
Hi,

I defined  https://duckduckgo.com/  as my home page
After system reboot and starting Dooble, its look loading the page but nothing is displaied (blank page)
I load an other web page and then back to duckduckgo home page and this time, it display the page as it should !
Tried several times (closed/started dooble) and same issue each time !

What could be the culprit ?
Thx

It's a bug that everyone seems to experience. There's an issue already open.

10
Setup & Installation / Re: UEFI Boot Manager for 5.1
« on: May 17, 2022, 02:21:32 am »
Yes, it is the plan. Can always use other boot managers such as rEFIND.

11
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_sec=0;
t.tv_usec=(do_delay) ? 1000 : 0;
FD_ZERO(&r);
FD_SET(term_fd,&r);
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);
else
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;
tcsetattr(term_fd,TCSANOW,&tio);
termsetup = 1;
}

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

if(termsetup)
tcsetattr(term_fd,TCSAFLUSH,&old_tio);
if(term_fd > 0)
close(term_fd);
return 0;
}


12
The readme is out of date as well as the libc DLL's that come with the additions.
You want to remove any in \os2\dll and only use the ones in \usr\lib.
Also note that the latest is libcn0.dll and the other libc06*.dll's are forwarders and need to be at the same level.
Dave,

Thanks for the additional information. I was not aware of the connection between libcn0.dll and libc06*.dll. Since the Guest Additions for OS2 do not include libcn0.dll, then we shouldn't be using the libc06*.dll files from the Guest Additions CDROM image.

Bennie

Libcn is a fork of libc as Knut who officially maintains libc has no time for it but requested that if anyone took over maintainence of libc to change the name of it. The forwarder DLLs are so that older programs benefit from libc updates and bug fixes. Example is the recent (last year?) DST break, when it was fixed, all programs using any libc6* version benefited and once again understood daylight savings time, important for mailers.

13
Internet / Re: simble browser does not handle URL by domain name
« on: May 15, 2022, 09:47:56 pm »
Loaded fine here as https://www.liberto.it/
Dooble is pretty simple and doesn't seem to try alternative domain names unlike Mozilla which will make a few attempts http vs https, www. or not and .com added

14
The readme is out of date as well as the libc DLL's that come with the additions.
You want to remove any in \os2\dll and only use the ones in \usr\lib.
Also note that the latest is libcn0.dll and the other libc06*.dll's are forwarders and need to be at the same level.

15
Applications / Re: Test build of dooble with qt5
« on: May 14, 2022, 01:49:59 am »
It's weird, just had to log in for this page, double checked the settings , closed Dooble and restarted, loaded this page from history and I was logged in.
One of the ideas of Dooble is privacy, which does include blocking most cookies. Perhaps in this case their is a time out or it is simply a bug. Other sites do work to keep me logged in. Different cookie policies I guess.
Once Martin feels up to it, we might be able to get him to change the OS2World cookie defaults.
See the spell checker still doesn't work either.

Pages: [1] 2 3 ... 238