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 - Flashback

Pages: [1]
Programming / Re: Dive: Why does not this work
« on: April 21, 2024, 12:15:55 am »
Yes, I do use the Dive functions, but WM_VRNDISABLED AND WM_VRNENABLED are not much use for me, since Classicube gives me the rectangles it wants to paint to, anyway. Moreover, SDL2 works without using the window messages, so it seems optional.
Really? Does it correctly handle the situation when the application window is partly obscured by another desktop window?

Programming / Re: Dive: Why does not this work
« on: April 19, 2024, 08:03:56 pm »
Take a look here. It seems that DIVE doesn't support blitting from 32bit source buffers. No matter what colour depth the screen is using. You may also want to check the return values of DiveSetupBlitter and DiveBlitImage.

Programming / Re: Dive: Why does not this work
« on: April 18, 2024, 06:28:12 pm »
I seem to remember, that DIVE doesn't like 'BGR4'. Try to set up your source buffer as 'BGR3'. Also I don't see, where 'fccColorFormat' is initialized.

Programming / Re: DosDevIOCtl disabling keyboard in VIO mode
« on: March 09, 2024, 03:31:29 pm »
The resident name table entry (i.e. module name) is still incorrect. Please refer to:

Also, the file extension (i.e. '.exe') should be removed.

Programming / Re: DosDevIOCtl disabling keyboard in VIO mode
« on: March 08, 2024, 10:27:28 am »
... is able to produce OS/2 executables (cd \devel\pdos\pdpclib then pdmake -f makefile.sos then pdptest abc def) that appear to work. However, the executable is still crashing ArcaOS ...
That somehow contradicts itself. If it was working, it would not crash AcraOS. BTW, The fact that any version of OS/2 can be crashed by invalid EXE headers is known for many years (Someone remembers this 'Smallest Hello World Program' contest?) and it is very unlikely that this is going change.

BTW, there are more 'fishy' things than Rich already pointed out. The DOS stub is complete bogus (Load image size, memory requirement, initial SS:SP, CS:IP). Better remove it completely instead of using invalid values.

In the LX header:
  • 'Auto DS object' is not set.
  • The 'Module flags' don't define an API type (PM, Windowcompat, NotWindowCompat)
  • Assuming that the entry table is empty, the 'Entry table offset' should point to the same address as 'Fixup page table offset'
  • The 'Resident names table offset' is invalid. Thus the kernel cannot determine the internal module name of the image
  • The 'Import module entry count' is set to two even though the 'Import module table' only contains one entry (DOSCALLS)
  • The 'Import procedure names table offset' points beyond the end of the file
Also strange:
  • OS/2 executables normally use a base address of 0x10000. That's the lowest possible virtual address.
  • 'Object 3' is usually the stack. It's pages are not present in the executable. Instead they are flagged as 'ZERO FILLED'.
  • Given 'Object 3' ist the stack, 'Starting ESP' should point a few bytes before the end (i.e. virtual size - some_space) of this object.

Code: [Select]
Turbo Dump  Version 4.1 Copyright (c) 1988, 1994 Borland International
                Display of File F:\XX\PDPTEST.EXE

Old Executable Header

DOS File Size                                       71ADh  ( 29101. )
Load Image Size                                   FFFFFFC0h  (4294967232. )
Relocation Table entry count                        0000h  (     0. )
Relocation Table address                            0040h  (    64. )
Size of header record      (in paragraphs)          0004h  (     4. )
Minimum Memory Requirement (in paragraphs)          0000h  (     0. )
Maximum Memory Requirement (in paragraphs)          0000h  (     0. )
File load checksum                                  0000h  (     0. )
Overlay Number                                      0000h  (     0. )

Initial Stack Segment  (SS:SP)   0000:0000
Program Entry Point    (CS:IP)   0000:0000

Linear Executable (LX) File

Header base: 00000040

Byte Order                                        Little endian
Word Order                                        Little endian
Format level                                      00000000
CPU type                                          80386
Operating system                                  OS/2
Module version                                    00000000
Module flags                                      00000010
         Instance init                 : No
         Internal fixups removed       : Yes
         External fixups removed       : No
         API                           : Unknown
         Errors in module              : No
         Module type                   : EXE
         Instance termination          : No
Page count                                        0000000Eh
Starting EIP object number                        00000001h
Starting EIP                                      00000000h
Starting ESP object number                        00000004h
Starting ESP                                      00008000h
Page size                                         00001000h
Page offset shift                                 00000000h
Fixup size                                        00000960h
Page checksum                                     00000000h
Loader section size                               00000000h
Loader section checksum                           00000000h
Object table offset                               00006795h
Object count                                      00000003h
Object page map table offset                      000067DDh
Object iterate data map offset                    00000040h
Resource table offset                             00000040h
Resource count                                    00000000h
Resident names table offset                       00000040h
Entry table offset                                00000040h
Module directives offset                          00000040h
Module directives count                           00000000h
Fixup page table offset                           0000684Dh
Fixup record table offset                         00006889h
Import module table offset                        000071A4h
Import module entry count                         00000002h
Import procedure names table offset               000071ADh
Per-page checksum table offset                    00000040h
Data pages offset                                 000000F0h
Preload page count                                00000000h
Non-resident names table offset                   00000000h
Non-resident names table length                   00000000h
Non-resident names table checksum                 00000000h
Auto DS object                                    00000000h
Debug info offset                                 00000040h
Debug info length                                 00000000h
Instance preload pages                            00000000h
Instance demand pages                             00000000h
Heap size                                         00000000h

Object Table                          3 Entries (00000003) File Base:06795h

Object 1
  Virtual size  : 00005FCDh  Relocation Base Address: 00400000h
  Page map index: 00000001h  Page map entries       : 00000006h
  Object flags  : 00002005h ( READABLE EXECUTABLE BIG )
    Page: 01  Offset: 000000F0  Size: 1000  Flags 0000 (PHYSICAL)
    Page: 02  Offset: 000010F0  Size: 1000  Flags 0000 (PHYSICAL)
    Page: 03  Offset: 000020F0  Size: 1000  Flags 0000 (PHYSICAL)
    Page: 04  Offset: 000030F0  Size: 1000  Flags 0000 (PHYSICAL)
    Page: 05  Offset: 000040F0  Size: 1000  Flags 0000 (PHYSICAL)
    Page: 06  Offset: 000050F0  Size: 0FCD  Flags 0000 (PHYSICAL)

Object 2
  Virtual size  : 000006D8h  Relocation Base Address: 00406000h
  Page map index: 00000007h  Page map entries       : 00000001h
  Object flags  : 00002003h ( READABLE WRITEABLE BIG )
    Page: 07  Offset: 000060BD  Size: 06D8  Flags 0000 (PHYSICAL)

Object 3
  Virtual size  : 000067B0h  Relocation Base Address: 00407000h
  Page map index: 00000008h  Page map entries       : 00000007h
  Object flags  : 00002003h ( READABLE WRITEABLE BIG )
    Page: 08  Offset: 00006795  Size: 1000  Flags 0000 (PHYSICAL)
    Page: 09  Offset: 00007795  Size: 1000  Flags 0000 (PHYSICAL)
    Page: 0A  Offset: 00008795  Size: 1000  Flags 0000 (PHYSICAL)
    Page: 0B  Offset: 00009795  Size: 1000  Flags 0000 (PHYSICAL)
    Page: 0C  Offset: 0000A795  Size: 1000  Flags 0000 (PHYSICAL)
    Page: 0D  Offset: 0000B795  Size: 1000  Flags 0000 (PHYSICAL)
    Page: 0E  Offset: 0000C795  Size: 07B0  Flags 0000 (PHYSICAL)

    No Resident names table present

    No Non-resident names table present

Entry Table                           1 Entries (00000001) File Base:040h

Unknown entry bundle type!!!

ERROR: Unable to create procedure names table

Fixup Table                           1 Entries (00000001) File Base:06889h

Object 1
01284  01:000A0       offset32
01295  01:000B3       offset32
0129C  01:000B5       offset32
012AF  01:00274       offset32
012B4  01:000B7       offset32
012C0  01:000CF       offset32
012DB  01:000E3       offset32
012FB  01:000ED       offset32
01316  01:00101       offset32
01338  01:0010B       offset32
01358  01:0011F       offset32
01365  01:00132       offset32
0138D  01:0013D       offset32
013CD  01:0014D       offset32
01404  01:0014D       offset32
01437  01:0014F       offset32
0143E  01:00154       offset32
01447  01:00160       offset32
01464  01:0014F       offset32
0146B  01:00154       offset32
01474  01:0017F       offset32
0148B  03:00000       offset32
014A3  03:00000       offset32
014CE  01:00194       offset32
014E8  01:0019E       offset32
0150E  01:001C0       offset32
01538  01:001E0       offset32
0157E  01:001FF       offset32
01587  01:00202       offset32
01591  01:00220       offset32
0159D  01:00254       offset32
015AC  02:00000       offset32
015B8  02:00004       offset32
015C4  02:00008       offset32
0164A  03:01DA4       offset32
01652  03:01DB4       offset32
01657  02:0000C       offset32
0165F  03:01D94       offset32
0166E  03:01C24       offset32
0167D  03:01D94       offset32
0168A  02:0000C       offset32
01694  03:01C24       offset32
0169D  03:01C24       offset32
016A6  02:0000C       offset32
016BB  03:01D84       offset32
016C0  03:01D94       offset32
016CA  02:0000C       offset32
016D7  03:01C24       offset32
016E4  03:01D94       offset32
016F2  03:01D94       offset32
01717  03:01C24       offset32
01730  03:01D94       offset32
01741  03:01DB4       offset32
01746  03:01C24       offset32
01759  03:01D94       offset32
01766  03:01C24       offset32
0177C  03:01D84       offset32
01783  03:01800       offset32
0179A  03:01C24       offset32
017A8  03:01C24       offset32
017B8  03:01D94       offset32
017DD  03:01C24       offset32
017EB  03:01C24       offset32
01819  03:01C24       offset32
0183B  02:0003C       offset32
01881  03:01DC4       offset32
018C8  03:01DC4       offset32
0191E  03:01DC4       offset32
0193E  03:01800       offset32
0195B  03:01D84       offset32
01963  03:01D94       offset32
019A9  01:0096D       offset32
019AF  03:01DB4       offset32
019C1  03:01DC4       offset32
019CB  03:01DC4       offset32
019E7  03:01C24       offset32
019F5  03:01C24       offset32
01A08  01:00971       offset32
01A0E  03:01DB4       offset32
01A22  01:00975       offset32
01A28  03:01DB4       offset32
01A3A  03:01DC4       offset32
01A48  01:00979       offset32
01A4E  03:01DB4       offset32
01A62  01:0097D       offset32
01A68  03:01DB4       offset32
01A7A  03:01DC4       offset32
01A8B  01:00981       offset32
01A91  03:01DB4       offset32
01AA5  01:00985       offset32
01AAB  03:01DB4       offset32
01ABD  03:01DC4       offset32
01ACE  01:00988       offset32
01AD4  03:01DB4       offset32
01AE6  03:01DC4       offset32
01AF7  01:0098B       offset32
01AFD  03:01DB4       offset32
01B0F  03:01DC4       offset32
01B20  01:0098E       offset32
01B26  03:01DB4       offset32
01B38  03:01DC4       offset32
01B49  01:00991       offset32
01B4F  03:01DB4       offset32
01B61  03:01DC4       offset32
01B72  01:00994       offset32
01B78  03:01DB4       offset32
01B8A  03:01DC4       offset32
01B9B  01:00997       offset32
01BA1  03:01DB4       offset32
01BB3  03:01DC4       offset32
01BC4  01:00999       offset32
01BCA  03:01DB4       offset32
01BDC  03:01DC4       offset32
01BED  01:0099B       offset32
01BF3  03:01DB4       offset32
01C05  03:01DC4       offset32
01C14  03:01D94       offset32
01C2F  03:01DC4       offset32
01CD2  03:01DA4       offset32
01CF5  03:01C24       offset32
01CFB  03:01DA4       offset32
01D00  DOSCALLS.273   self-relative32
01D1A  03:01D94       offset32
01DA1  DOSCALLS.257   self-relative32
01DE7  02:0000C       offset32
01E00  03:01800       offset32
01E16  01:00D6A       offset32
01E47  DOSCALLS.281   self-relative32
01E9E  02:00010       offset32
01EA9  03:01BF4       offset32
01EB4  02:00010       offset32
01EBC  03:01BF5       offset32
01EC1  03:01BF4       offset32
01EC6  02:00010       offset32
01ED0  02:00010       offset32
01F29  DOSCALLS.284   self-relative32
01F6C  02:00010       offset32
01F77  03:01BF4       offset32
01F8E  02:00010       offset32
01F99  03:01BF4       offset32
01FA3  02:00010       offset32
01FAE  03:01BF4       offset32
01FB8  02:00010       offset32
01FC3  03:01BF4       offset32
01FFA  02:00010       offset32
02004  03:01BF4       offset32
02400  DOSCALLS.282   self-relative32
0296E  01:01898       offset32
02B18  01:0189F       offset32
02CD8  01:01CDC       offset32
02CDC  01:0264A       offset32
02CE0  01:02698       offset32
02CE4  01:02698       offset32
02CE8  01:02656       offset32
02CEC  01:02698       offset32
02CF0  01:02698       offset32
02CF4  01:02698       offset32
02CF8  01:02698       offset32
02CFC  01:02698       offset32
02D00  01:02698       offset32
02D04  01:02662       offset32
02D08  01:0268A       offset32
02D0C  01:02698       offset32
02D10  01:01D20       offset32
02D14  01:02698       offset32
02D18  01:02698       offset32
02D1C  01:026A2       offset32
02D47  02:006C4       offset32
02DC5  01:01C5E       offset32
02EEB  02:006CC       offset32
0327E  01:01898       offset32
03770  DOSCALLS.259   self-relative32
037A7  DOSCALLS.271   self-relative32
03C11  DOSCALLS.256   self-relative32
03D9C  01:02D46       offset32
03DAB  01:02D5D       offset32
03DB9  01:02D74       offset32
03EC8  03:01C14       offset32
03EE2  DOSCALLS.284   self-relative32
03EED  DOSCALLS.257   self-relative32
03F18  02:0001C       offset32
03F1E  02:00020       offset32
03F25  02:00014       offset32
03F2C  02:00018       offset32
03F39  01:02DC7       offset32
03F3E  DOSCALLS.273   self-relative32
03F5D  03:01C14       offset32
03F7F  DOSCALLS.284   self-relative32
03FAC  DOSCALLS.284   self-relative32
03FF1  02:0000C       offset32
04008  03:01C24       offset32
04012  03:01D94       offset32
04033  02:0000C       offset32
0404A  03:01800       offset32
0405B  03:01D94       offset32
040BE  02:0002B       offset32
040C5  02:00024       offset32
040CF  02:00024       offset32
040E7  01:00979       offset32
040EC  01:00D6A       offset32
04234  02:006C4       offset32
0437F  02:006C4       offset32
043B1  02:006C4       offset32
0448A  01:03168       offset32
04542  01:03168       offset32
0456B  01:03168       offset32
04771  02:006C4       offset32
047BA  02:006C4       offset32
04863  02:006CC       offset32
04C09  02:006C4       offset32
04C29  02:006C4       offset32
04D11  02:006C4       offset32
04D5B  02:006C4       offset32
04FD6  01:03F78       offset32
0511A  01:03F6B       offset32
05151  01:03F78       offset32
0529C  01:03F6D       offset32
05401  01:03F78       offset32
05478  01:03F6B       offset32
05549  01:03F78       offset32
055C4  01:03F6F       offset32
05605  01:03F80       offset32
05612  01:03F78       offset32
05642  01:03F78       offset32
0566D  01:03F88       offset32
0567A  01:03F78       offset32
056C9  01:03F78       offset32
056E5  01:03F80       offset32
056F1  01:03F78       offset32
05791  01:03F78       offset32
05BBC  02:00034       offset32
05BC2  02:00034       offset32
05C00  02:00034       offset32
05C35  02:00034       offset32
05C4D  02:00034       offset32
05CAF  01:04C75       offset32
05CB9  01:04C8C       offset32
05D5D  DOSCALLS.299   self-relative32
05E3E  DOSCALLS.304   self-relative32
Object 2
00003  02:00038       offset32
0000D  02:00038       offset32
0002D  02:00038       offset32
00077  02:006C4       offset32
000C0  01:05060       offset32
0013C  01:05060       offset32
00158  01:05060       offset32
0019E  01:05058       offset32
001AE  01:05060       offset32
00202  01:05058       offset32
00254  02:006C4       offset32
002B4  02:006CC       offset32
00343  02:006C4       offset32
004EA  03:01DE0       offset32
0050A  03:01DE0       offset32
00522  DOSCALLS.227   self-relative32
0055F  DOSCALLS.283   self-relative32
005DA  02:00050       offset32
005E2  03:01F38       offset32
005F5  02:0003C       offset32
0061C  02:0003C       offset32
00630  03:01800       offset32
00657  DOSCALLS.382   self-relative32
0066F  02:0003C       offset32
00685  03:01E68       offset32
006C0  03:01E6C       offset32
006D0  02:00054       offset32
006DC  03:01F38       offset32
006F1  02:00050       offset32
006F6  02:00050       offset32
006FE  03:01F38       offset32
0070C  02:0003C       offset32
00717  02:0003C       offset32
00737  03:01E68       offset32
0074C  03:01F38       offset32
00760  03:01E68       offset32
00769  02:00058       offset32
00795  03:01E68       offset32
007C7  03:01E68       offset32
007FF  01:055CC       offset32
00812  DOSCALLS.312   self-relative32
0081E  01:055CD       offset32
00831  03:01E68       offset32
0085B  DOSCALLS.382   self-relative32
008D3  03:01F78       offset32
00A15  03:03788       offset32
00B4C  03:04F98       offset32
00C57  02:0003C       offset32
00C69  02:0003C       offset32
00C77  03:01F38       offset32
00C7D  02:00050       offset32
00CB7  03:01800       offset32
00CC0  02:0003C       offset32
00D3E  02:00044       offset32
00D4C  02:00040       offset32
00D56  02:00044       offset32
00D5F  02:00040       offset32
00D73  02:00044       offset32
00D79  01:05D26       offset32
00D91  01:05D2A       offset32
00DB3  01:05D30       offset32
00DC8  02:0005C       offset32
00DDC  02:00060       offset32
00DF1  02:00060       offset32
00E08  02:00060       offset32
00E0C  01:05DFC       offset32
00E35  02:006C4       offset32
00E4D  02:006C4       offset32
00E65  02:006C4       offset32
00E7D  02:006C4       offset32
00E95  02:006C4       offset32
00EAD  02:006C4       offset32
00EC5  02:006C4       offset32
00EDD  02:006C4       offset32
00EF9  02:006C4       offset32
00F15  02:006C4       offset32
00F31  02:006C4       offset32
00F4C  02:006C8       offset32
00F60  02:006CC       offset32
00FC9  DOSCALLS.234   self-relative32
01000  03:01C34       offset32
00004  03:01CA0       offset32
00008  03:01D0C       offset32
00058  01:00274       offset32
00060  01:05DFC       offset32
00064  01:05DFC       offset32
00068  01:05DFC       offset32
0006C  01:05DFC       offset32
00070  01:05DFC       offset32
00074  01:05DFC       offset32
00078  01:05DFC       offset32
006C4  02:00082       offset32
006C8  02:002A2       offset32
006CC  02:004C2       offset32
Object 3
ERROR: Attempt to free import module namew when not allocated

What also appears strange is the large number of 'offset32' fixups. Maybe I'm wrong, but IMHO these could/should be resolved by the linker so that they won't end up in the executable image at all.

Networking / Re: Updated Samba Client
« on: January 27, 2024, 11:38:02 pm »
What has changed in the plugin is the code at where if the WPS is testing A.+,;=[].B,  we return immediately rather than calling smbwrp_getattr()
While this certainly is a performance benefit, I think this approach just 'cures' a symptom but does not address it's root cause. Obviously, smbwrp_getattr() has a memory leak. Just checking for a specific name doesn't prevent the same problem resurfacing in other situations.

Networking / Re: Updated Samba Client
« on: January 25, 2024, 08:01:04 pm »
must be a code error somewhere...

AFAIR, it's the WPS checking for long file name support. If that file operation produces a specific error, a FAT-like file system is assumed. The WPS will then shorten file names and store the originals in EAs.

Programming / Re: Duplicate symbol error
« on: October 01, 2023, 12:31:03 pm »
Code: [Select]
+       win32:os2 {
                HEADERS += winscreensaver.h
                SOURCES += winscreensaver.cpp
Is that the correct way to add OS/2 support?

No. That means 'win32' AND 'os2', which doesn't make sense. What you want is 'win32' OR 'os2', which is expressed as:

Code: [Select]
win32|os2 {

Also: Why is "moc_screensaver.cpp" included in "screensaver.cpp"?  This is very odd. This file is generated and will be added to the Makefile automatically. Of course only, if qmake is run against a correct *.pro.

Programming / Re: Compiling a PM sample with GCC (2023)
« on: June 06, 2023, 06:38:20 pm »
My only question remains, why it does not work on 16M Colors?
Because support for 32bits per pixel is not fully implemented in DIVE. You may want to try the attached patch...

Programming / Re: Qt6 Application Testing
« on: May 28, 2023, 11:33:16 pm »
Here I leave a file with a patch that is not worth anything, and that does nothing.
For all others, execute if they can in 3 different sessions of "two" the same File name QW5.bas. Then start dooble.
There are always people believing in voodoo or some other strange religion. As pointed out in the other thread, there is no way that a program running in a VDM can modify global properties of the OS/2 system. The only thing it can affect is the timing by invalidating memory pages used by the other processes. Also it can access physical memory between 640K an 1M when defined as MEM_EXCLUDE_REGIONS in DOS memory settings. Everything else is simply impossible. The effects you attribute to the program are either coincidence or something that would happen just by starting a VDM running an arbitrary program in it.

Programming / Re: Compiling a PM sample with GCC (2023)
« on: May 28, 2023, 10:14:01 pm »
Not having tried to compile this:
  • 'drvdata' is declared as an array. So the initialisation should be something like {{44, 0, "DISPLAY", ""}} or {{44, 0, "DISPLAY", {0}}}  I fail to see, why they use 'L' suffixes in the original source though.
  • 'RC' is indeed not used. In line 1076 a value gets assigned, but nobody bothers to do something with it.
  • 'SC_MOVE' and 'SC_CLOSE' have values of 0x800X. They are propagated to (signed)integers by the compiler. Thus they indeed exceed that range of variable 'id' in the switch statement, which is (signed) short.
Modern compilers like the gcc rarely produce bogus warnings. In almost any case these warnings have a reason. And -Wall should be considered as your friend, not your enemy. Old code like this will often trigger warnings when using recent tools.

Pages: [1]