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

Pages: 1 [2] 3 4 ... 55
16

The storage driver provides 48 bit LBA addressing. And the GPT filter driver uses this interface. That way you can access a +2TB disc with ArcaOS.


As I understand it, the GPT filter driver will split a 6 TB drive into 3 units of 2 TB each, allowing you to access a 6 TB drive as, for example, E:, F: and G:. This is different from a single drive letter with 6 TB, which is currently only possible on a network drive.
Ok, that pretty much explains it. The drive letter "logically" extends the 32 bit LBA address, providing additional upper bits for the 48 or 64 bits sent to the device to address a sector. At least, that is a good trick but it uses up valuable drive letters.

17
Under UTILS. An APP is something standalone, serving a main purpose. A util is something that supports the user in interfacing with his computer.
But of course, that will always be arguable.

18
1) you are mixing up two points: there is a filter mechanism to suppress GPT disks (instead of erroneously accessing them) and then, there is 48/64 bit LBA support

2) 48/64 bit LBA support: what that can also mean is that the newer 48/64 LBA commands of the command set are supported, simply because newer drives don't support older 32-bit LBA commands anymore. Still, in reality, only the lower 32-bit will be set, the upper bits would be zero. At least I had to do some such with USBMSD.ADD (that supported only some very old SCSI commands with 21-bit LBA support, I updated to newer commands with 32-bit LBA support, supported by the current generation of USB MSD devices). But David will know for sure.

19
ADDs allow 32-bit LBA addressing. With a 512 byte Sector size, that makes up for 2 TB as Neil correctly stated. And for an ADD, the LBA is an absolute value starting from first sector of the disc (as far as I can remember). Which limits the whole disk to 2TB or am I overlooking something ?
Therefore: a 32-bit IFS can address more space (even if it addresses bytewise) then an ADD. An ADD effectively addresses 32+9= 41 bits. The 32-bit IFS can address up to 63 bits (highest bit is reserved for sign bit to support negative file offsets).
That might also explain why network drives could be bigger than 2TB: you do not need an ADD to access data on a network drive. Instead, the IFS will in some form interact with the remote system to access a byte or more. If the remote system supports bigger drives, then that can work.

Example: the Virtualbox "shared folders" support only needs an IFS (for the OS/2 guest). That IFS directly interacts with the drive support of the host OS (Windows, via some access layer, I don't know the technical details).

20
Applications / Re: theseus 4.001 trap in usbmon
« on: May 25, 2021, 02:31:36 pm »
This discussion is going into the wrong direction.

The real question is: how can Theseus bring down the whole system just by double clicking on one of the processes in the process view ? That should not happen.

We know the trap occurs in Ring 0, in a helper function invoked by Theseus. It happens for some people and it would also happen for me (as much as I can tell from the code around the trapping location) but for some reason the trapping code path is not executed on my system when I double click on USBMON (or any other process).

It would at least be helpful to know what needs to be done to circumvent that trap. A trap in Ring 0 is really a bad thing to happen.

21
Applications / Re: theseus 4.001 trap in usbmon
« on: May 25, 2021, 12:45:55 am »
What do you mean by "it is in OS2.INI" ? I cannot find any mentioning of USBMON.EXE in OS2.INI.

What IS really remarkable is if I remove "USBPRT Auto Monitor" (which is USBMON.EXE) from the Startup Folder, that object is recreated on the next system restart ! Therefore, it seems that USBMON.EXE is and has to be started from the Startup Folder. On my system, it is then started as a detached process (it shows up in the leftmost column in the process view in Theseus).

Dave, what happens, if you then doubleclick on the MTE entry (leftmost number on the line you have pasted) ? Will it display the content correctly or will that also crash Theseus/the system ?

Dave, maybe the object is in the XWorkplace Startup Folder instead of the legacy WPS startup folder ? For me, it is in the legacy WPS startup folder.

22
Applications / Re: theseus 4.001 trap in usbmon
« on: May 24, 2021, 08:58:16 pm »
The strange thing is: on my system, with the given value of a certain variable "SELGDTLAddr" I would experience that very same trap. But obviously, that code path is not executed when I doubleclick on USBMON. How is USBMON started on your system ? I have a load icon in the "System Start" folder but I also selected "Auto Monitor" in the USB port object (you only ever need USBMON if you have installed a USB port on one of your printers in which case you can select "Auto Monitor" from the port settings).

23
Applications / Re: theseus 4.001 trap in usbmon
« on: May 24, 2021, 08:47:05 pm »
For everyone where this trap occurs: what happens if you select System->General System->Modules and then have a look at USBMON.EXE in the module list ? Is there anything that looks strange or suspicious ?

24
Applications / Re: theseus 4.001 trap in usbmon
« on: May 24, 2021, 08:07:46 pm »
The Theseus program, when I click twice on the USBMON it generates a TRAP.
If someone is not produced any TRAP, let them tell me and I will tell them what I want.

I leave you this patch, it runs in a DOS session, starting it with Qbasic, at the beginning of the system boot.
 It's not finished, it's experimental, but it seems to work. In some computers it produces an overflow error and it is not possible to execute it.
The name for the file is pk-r05.bas
Code: [Select]
CLS
DATA long a
PRINT "ejecutando pk-r00..."
REM swap 2048 2048
FOR a = 1 TO 100000
REM no quitar la linea print o se generara el error wifi on off
 PRINT a
REM  POKE &HFFEBCBDD, 0
REM  POKE &HFFEBCBDD, 0


REM overflow POKE &HFFEBC821, 160
POKE &HFFEBC974, 53
POKE &HFFEBCA6D, 53
POKE &HFFEBCFB9, 53
POKE &HFFEBD594, 53
POKE &HFFEBD6E0, 53
POKE &HFFEBD6F4, 53
   POKE &HFFEBDD3C, 53
   POKE &HFFEC4C2C, 53

 REM MMHELP
 POKE &HFBB1A323, 20
REM A4A4 ARREGLA BARRA NEGRA EN TRUE SPECTRA
 POKE &HFBB1A4A4, 20
 POKE &HFBB1A639, 20
 POKE &HFBB1A6E2, 20

 POKE &HFBB1A7F7, 20
 POKE &HFBB1B887, 20
 POKE &HFBB1F7E5, 20
 POKE &HFBB218B0, 20

 REM ASWITCH
 POKE &H11898, 20
 POKE &H118F2, 20
 POKE &H11951, 20

REM FREEMEMR
POKE &H1F321B66, 20
POKE &H1F321C24, 20
POKE &H1F321C51, 20
POKE &H1F321DA8, 20
POKE &H1F321E9C, 20
POKE &H1F321EC0, 20
REM POKE &H1F321F31, 20
POKE &H1F321FC9, 20
POKE &H1F322090, 20
POKE &H1F32245A, 20
POKE &H1F3224EF, 20
POKE &H1F3225A3, 20
POKE &H1F3225AB, 20
POKE &H1F3226A7, 20
POKE &H1F322766, 20
POKE &H1F322904, 20
POKE &H1F322A24, 20
POKE &H1F322AAC, 20
POKE &H1F322B60, 20
POKE &H1F322B82, 20
POKE &H1F322BDE, 20
POKE &H1F322CC0, 20
POKE &H1F322DBE, 20
POKE &H1F322DE9, 20
POKE &H1F322DFC, 20
POKE &H1F322E0D, 20
POKE &H1F322E41, 20
POKE &H1F322E7A, 20
POKE &H1F322EAD, 20
POKE &H1F322ECC, 20
POKE &H1F322EE9, 20
POKE &H1F322F5B, 20
POKE &H1F322FC3, 20
POKE &H1F32303F, 20
POKE &H1F3230B4, 20
POKE &H1F323108, 20
POKE &H1F323173, 20
POKE &H1F3231C8, 20
POKE &H1F3231D9, 20
POKE &H1F323253, 20
POKE &H1F323261, 20
POKE &H1F3232E5, 20
POKE &H1F323449, 20
POKE &H1F3234B6, 20

REM GRE2VMAN PMSHELL
POKE &H1F371B66, 160
POKE &H1F371C24, 160
POKE &H1F371C51, 160
POKE &H1F371E9C, 160
POKE &H1F371EC0, 160
POKE &H1F371F31, 160
POKE &H1F372090, 160
REM POKE &H1F37245A, 160
REM POKE &H1F3724EF, 160
REM POKE &H1F3725A3, 160
REM POKE &H1F3725AB, 160

REM PNCLOCK PMSHELL
POKE &HFE3B7F04, 160

REM VDM PMSHELL
POKE &HFE3B626A, 160
POKE &HFE3B63B0, 160

REM CAD-POP PMSHELL
POKE &HFE3BC26C, 160

rem xwpdaemon pmshell
poke &HFE3B726A, 160

REM NDCTL PMSHELL
POKE &HFE3B9465, 160

rem harderr pmshell
rem POKE &HFE3B5B09, 160
rem POKE &HFE3B626A, 160


REM ERRORS CRASH
POKE &H1E101AE6, 211
REM 1AE1 1AEC EXPERIMENTALLLL  UN SIGNO 2D -
POKE &H1CB41AEC, 211
POKE &H1CB41C82, 211
POKE &H1682DA77, 211
POKE &H1E101AE6, 211

REM IMPORTANTES MEMORIA AGOTADA
poke &H1CB41AE1, 160
POKE &H1CCA1AE1, 160

rem errores de los trp
POKE &H001AF5F3, 20
POKE &H001AD083, 20
POKE &H001AB173, 20

REM POKE &H0013C4DF, 20
rem POKE &H0013C4FF, 20 falla con las descargas se cierra
rem POKE &H0013C5E4, 20 ciclo infinito no mejora



    REM midi 92b8
    REM POKE &HB96792B8, 211
   REM mouse 51b8
   REM POKE &HFCC051B8, 211

REM   POKE &HFFEC8082, 160
REM   POKE &HFFEC830F, 160
REM   POKE &HFFEC8333, 160
REM   POKE &HFFEC843D, 160
REM    POKE &HFFEC8464, 160
REM   POKE &HFFEC84BA, 160
REM   POKE &HFFEC8532, 160
REM   POKE &HFFEC8543, 160
REM   POKE &HFFEC86C2, 160
REM   POKE &HFFEC876B, 160
REM   POKE &HFFEC877C, 160
REM   POKE &HFFEC884B, 160
REM   POKE &HFFEC886E, 160
REM   POKE &HFFEC88CA, 160
REM   POKE &HFFEC8AD6, 160
REM   POKE &HFFEC8C8A, 160
REM   POKE &HFFEC8C90, 160
REM   POKE &HFFEC8F1E, 160
REM   POKE &HFFEC8F73, 160
REM   POKE &HFFEC8FA3, 160
REM   POKE &HFFEC8FEB, 160
REM   POKE &HFFEC9092, 160
REM   POKE &HFFEC90F0, 160
REM   POKE &HFFEC91CF, 160
REM   POKE &HFFEC9242, 160
REM   POKE &HFFEC92A0, 160
REM   POKE &HFFEC92EC, 160
REM   POKE &HFFEC9450, 160
REM   POKE &HFFEC9562, 160
REM   POKE &HFFEC958E, 160



NEXT a
END





Uuuh I do understand the code of your basic script. But I have no clue how this fixes the kernel trap.
How can do stuff from DOS VDM process ?

I made a memory dump and based on what I have seen in PMDF. If could be wrong...
Theseus used to have its own driver for debugging purposes. That driver was later integrated in the kernel by IBM.
When you double click on USBMON something triggers an error in the kernel and that is why the system blows up with a TRAP.
But my analyses could be wrong.

Roderick

The trap happens in a 32-bit kernel function called "THEPtdaFile_get". I am sure that "THE" stands for Theseus, so it is exactly as you suspected: a Theseus helper function implemented in the kernel fails. Guessing from the name, the function tries to query the PTDA address (per task data area) from the load path or some such. It traps because the ESI register contains a nonsense value. It should contain a proper flat address (either private or shared) but in both trap cases, it doesn't.

25
Applications / Re: theseus 4.001 trap in usbmon
« on: May 24, 2021, 07:47:47 pm »
I also do not understand, why on Martin's system USBMON is started as a child process of pmshell.exe.
On my system it is started without a parent, that is, as a detached process.

I am running eCS 2.2b as a VirtualBox guest, with a W4 14.201 kernel, I have my own USB driver stack installed but I don't see how the USB stack would make a difference.

It works for me. No trap when double clicking USBMON.


26
Programming / Re: JSon to Rexx (stem)
« on: May 22, 2021, 11:17:06 am »
If I catch it in time, I can ctrl-C to stop it. Otherwise only the power switch.

There are C language JSON interpreters, but it was so nice to have the REXX one.

The website at https://jsonformatter.curiousconcept.com/ says the file is valid JSON, and it shows that the file is really not that complex. There are just 11 items, one of which is an array.
I take it, the recursion never stops and eventually blows the stack. And then there seems to be a bug in the REXX interpreter to hang the whole system.

27
Programming / Re: JSon to Rexx (stem)
« on: May 22, 2021, 11:14:53 am »
Maybe the easiest thing would be to wrap the C code with the REXX Interface. That will give you a good performance and still allow you to use it from REXX. But of course, you'll either need the C Source or a DLL to link to (with a published interface).

28
Programming / Re: JSon to Rexx (stem)
« on: May 21, 2021, 12:39:11 pm »
What does "it never completes" actually mean? Does it even prevent you from doing a Ctrl-C?
The script contains a recursive function. In case of programming error, it could loop forever and also use up all of the stack. But of course, you should still be able to do a Ctrl-C.

29
Hi Lars,

Quote
But the patches only work for very old versions of USBMSD.ADD and with some likelyness, this error has been fixed with newer versions of USBMSD.ADD.

This was back in the day when Olympus had propriety USB drivers, they fixed the problem by allowing access to cameras as if they were USB drivers/keys.
That update is only required if someone is using very early model Olympus cameras from around 20 years ago.

In saying that, thanks for the info, I have moved that file to the usb/old directory on 'my' os2site.com and updated the descriptions. Hopefully that will be pushed out to the public www.os2site.com when I have replication sorted.

Was that the problem with the incorrect signature of USBU instead of USBS in the status block?
I have a USB filter driver (it's rather the driver from EXIGEN to show the filter concept) that fixes that on the fly. Without any need to change USBMSD.ADD. That filter driver is in my USB repo. I never released it but I could.

30
I agree with what Ivan says: outdated drivers should go into an "archived" subpart. If a driver is updated, there usually are very good reasons why that happens. An old driver archive is only valuable if there is either additional info or source code in it (which almost never happens).
Right now, I can see in Hobbes an old patch for USBMSD.ADD from Yuri Dario to make USBMSD.ADD work with an olympus digital camera (USBMSD_patch_2002-08-09.zip). But the patches only work for very old versions of USBMSD.ADD and with some likelyness, this error has been fixed with newer versions of USBMSD.ADD.
What's more, this patch set has been uploaded to OS2SITE with a different name (usbmsd13b.zip), just adding to the confusion.
A new user would likely try to desperately downgrade his version of USBMSD.ADD so the patch can be applied, and along with it, break everything else.

It's a perfect way to drive away new users.

Pages: 1 [2] 3 4 ... 55