I started this a few years ago to keep track of things I did using OS/2. Everything kind of fell to the wayside and I got bored. I think most blogs are like people yelling in the middle of nowhere with no one to listen and this one is no different. I have become un-bored for awhile and decided to play with Bogger again to keep track of nothing important.
Showing posts with label OS/2. Show all posts
Showing posts with label OS/2. Show all posts
23 January 2010
Regina
Neat, they used my rexxutil source for the current Regina 3.5 release.
13 June 2009
pmvnc and 4os2
Finally got Dmitry Steklenev's changes inserted into pmvnc and uploaded to hobbes today. The source is at svn.assembla.com.
I also put the 4os2 source into my svn site to make to easier to grab. It is version 3.05A and includes all changes up to 31 May 2009 change number 34617. All the changes entered can be viewed here. The svn source can be viewed or pulled from: http://svn.assembla.com/svn/os2utils/4os2/.
I also put the 4os2 source into my svn site to make to easier to grab. It is version 3.05A and includes all changes up to 31 May 2009 change number 34617. All the changes entered can be viewed here. The svn source can be viewed or pulled from: http://svn.assembla.com/svn/os2utils/4os2/.
15 April 2009
pmvnc
I had a little spare time and, lucky me; I get an email about patches to PMVNC. Eugene ported this years ago and all I did was add a couple fixes – I hate the POS. But Dmitry sent the patches, so I’ll pull it up and see what is what. Hell, maybe I should put the fixes in that GG has been pissing about for a year…
> 1. After an upgrade to the SMP computer I have many problems with the image of the remote desktop. As I understand, this is thread related problem. Two PMVNC thread try to access to the hpsBitmap simultaneously. I have serialized access via mutex in rect32.c, rect4.c and rect8.c modules. Now all works well.
I never saw this on my SMP systems but sounds good.
> 2. During testing, if I have used "Tiny Color" and "Gray Scale" modes, I have received SYS3175 crash in PMMERGE.DLL. I have replaced in rect4.c:
pbmiBitmap = malloc(16 + sizeof(RGB2) * 16) ;
to
pbmiBitmap = malloc(16 + sizeof(RGB2) * 256) ;
And now this works well also.
Never did this either… again sounds good.
> 3. Missed comma after ID_PMVNC in IDD_ABOUT resource template.
Hmmm…. Ok. I guess I should fix and try to use wrc rather than rc just to find if it works.
> 1. After an upgrade to the SMP computer I have many problems with the image of the remote desktop. As I understand, this is thread related problem. Two PMVNC thread try to access to the hpsBitmap simultaneously. I have serialized access via mutex in rect32.c, rect4.c and rect8.c modules. Now all works well.
I never saw this on my SMP systems but sounds good.
> 2. During testing, if I have used "Tiny Color" and "Gray Scale" modes, I have received SYS3175 crash in PMMERGE.DLL. I have replaced in rect4.c:
pbmiBitmap = malloc(16 + sizeof(RGB2) * 16) ;
to
pbmiBitmap = malloc(16 + sizeof(RGB2) * 256) ;
And now this works well also.
Never did this either… again sounds good.
> 3. Missed comma after ID_PMVNC in IDD_ABOUT resource template.
Hmmm…. Ok. I guess I should fix and try to use wrc rather than rc just to find if it works.
07 March 2009
OS/2 Zip 3.0 and Unzip 6.0f
I got a version of zip 3.0 and unzip 6.0f compiled with Open Watcom 1.8 for OS/2. Supports bzip compression and files > 2 gig.
http://www.mgreene.org/pub/ziptest.zip
A readable page of compiled in options is located here: http://www.mgreene.org/wikka/ZipInfo
http://www.mgreene.org/pub/ziptest.zip
A readable page of compiled in options is located here: http://www.mgreene.org/wikka/ZipInfo
07 September 2008
24 August 2008
More output...
I finally hooked up output from the detected serial port using a DosHelp routine, but it might short lived if I can't use it after relocation.
Guess the best part is that the IODelay matches what I see with a debug kernel on the same machine.
LDRINFO: Loader initialized and running ...
Serial out: COM1 Address 3F8 BPB 0X8800:0XB
FileTable 0X8800:0X124A Bootflags: 0X1481
LDR: 0X1000 microFSD: 0X8800 miniFSD: 0X7C endldr: 0X5000
COM: 0X3F8 0X0 0X0 0X0 LPT: 0X378 0X0 0X0
OS2LDR size: 19326 GenuineIntel Type: 0X6 Model: 0X8
IODelay: 244 T0: 0 T1: -2 T2: -263 A20 gate enabled INT15-C1 not supported
bus:dev:func 0:0:0 0:1:0 0:1E:0 0:1F:0 0:1F:1 0:1F:2 0:1F:3 0:1F:5
bus:dev:func 1:0:0* 1:0:1 bus:dev:func 2:3:0*
PCI BIOS 2.16 Number Bus: 3 Status: C00 :: EISA not found
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000003fff06c0 (usable)
BIOS-e820: 000000003fff06c0 - 000000003fff66c0 (ACPI data)
BIOS-e820: 000000003fff66c0 - 000000003fffe700 (ACPI NVS)
BIOS-e820: 000000003fffe700 - 0000000040000000 (reserved)
BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved)
LDRINFO: End message
Guess the best part is that the IODelay matches what I see with a debug kernel on the same machine.
LDRINFO: Loader initialized and running ...
Serial out: COM1 Address 3F8 BPB 0X8800:0XB
FileTable 0X8800:0X124A Bootflags: 0X1481
LDR: 0X1000 microFSD: 0X8800 miniFSD: 0X7C endldr: 0X5000
COM: 0X3F8 0X0 0X0 0X0 LPT: 0X378 0X0 0X0
OS2LDR size: 19326 GenuineIntel Type: 0X6 Model: 0X8
IODelay: 244 T0: 0 T1: -2 T2: -263 A20 gate enabled INT15-C1 not supported
bus:dev:func 0:0:0 0:1:0 0:1E:0 0:1F:0 0:1F:1 0:1F:2 0:1F:3 0:1F:5
bus:dev:func 1:0:0* 1:0:1 bus:dev:func 2:3:0*
PCI BIOS 2.16 Number Bus: 3 Status: C00 :: EISA not found
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000003fff06c0 (usable)
BIOS-e820: 000000003fff06c0 - 000000003fff66c0 (ACPI data)
BIOS-e820: 000000003fff66c0 - 000000003fffe700 (ACPI NVS)
BIOS-e820: 000000003fffe700 - 0000000040000000 (reserved)
BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved)
LDRINFO: End message
17 August 2008
DosHlp Routines
In brief, which is all I can do, the os2ldr contains some hardware dependent routines call DosHlp routines. Thanks to Pasha for pointing out that the ddk contains doshlp.inc which lists most of these (base\inc).
The os2ldr contains a table of offsets that is passed to the kernel. The following is a structure I put together from this information and what I saw from a disassembled os2ldr (SMP v104a). The unknowns are not listed in the doshlp.inc.
typedef struct _DOSHLPFUNCTIONS {
uint16_t TableVersion;
uint32_t DosHlpInit;
uint32_t DosHlpReboot;
uint32_t DosHlpNMI;
uint32_t DosHlpSizeMem;
uint32_t DosHlpConfig;
uint32_t DosHlpBaseDDList;
uint32_t DosHlpGetDriveParms;
uint32_t DosHlpInitSystemDump;
uint32_t DosHlpSystemDump;
uint32_t DosHlpReadSectors;
uint32_t DosHlpSerInit;
uint32_t DosHlpSetBaudRate;
uint32_t DosHlpSerIn;
uint32_t DosHlpSerOut;
uint32_t DosHlpToneOn;
uint32_t DosHlpToneOff;
uint32_t DosHlpGetMask;
uint32_t DosHlpSetMask;
uint32_t DosHlpSetRealMask;
uint32_t DosHlpSetProtMask;
uint32_t DosHlpSetDosEnv;
uint32_t DosHlpCallInt10;
uint32_t DosHlpProtGetMessage;
uint32_t DosHlpRealGetMessage;
uint32_t DosHlpRegisterTmrDD;
uint32_t DosHlpTmr16QueryTime;
uint32_t DosHlpEnableWatchdogNMI;
uint32_t DosHlpDisableWatchdogNMI;
uint32_t DosHlpInstallIRET;
uint32_t DosHlpDiscard;
uint32_t DosHlpInitInterrupts;
uint32_t DosHlpSetIRQMask;
uint32_t DosHlpSendEOI;
uint32_t DosHlpTmr32QueryTime;
uint32_t DosHlpTmrSetRollover;
uint32_t DosHlpInitNPX;
uint32_t DosHlpClrBusyNPX;
uint32_t DosHlpAckIntNPX;
uint32_t DosHlpWaitNPX;
uint32_t DosHlpValidNPXSwitch;
uint32_t DosHlpVNPXReset;
uint32_t DosHlpVNPXClrBusy;
uint32_t DosHlpWhyNMI;
uint32_t DosHlpAckNMI;
uint32_t DosHlpResetWatchdogNMI;
uint32_t DosHlpDisableCache;
uint32_t DosHlpFindParity;
uint32_t DosHlpEnableCache;
uint32_t DosHlpGetErrorLogPtr;
uint32_t DosHlpWriteErrorLog;
uint32_t DosHlpReadErrorLog;
uint32_t DosHlpResetParity;
uint32_t Unknown1;
uint32_t Unknown2;
uint32_t Unknown3;
uint32_t Unknown4;
uint32_t Unknown5;
uint32_t Unknown6;
uint32_t Unknown7;
uint32_t Unknown8;
uint32_t Unknown9;
uint32_t Unknown10;
uint32_t Unknown11;
} DOSHLPFUNCTIONS, *PDOSHLPFUNCTIONS;
The os2ldr contains a table of offsets that is passed to the kernel. The following is a structure I put together from this information and what I saw from a disassembled os2ldr (SMP v104a). The unknowns are not listed in the doshlp.inc.
typedef struct _DOSHLPFUNCTIONS {
uint16_t TableVersion;
uint32_t DosHlpInit;
uint32_t DosHlpReboot;
uint32_t DosHlpNMI;
uint32_t DosHlpSizeMem;
uint32_t DosHlpConfig;
uint32_t DosHlpBaseDDList;
uint32_t DosHlpGetDriveParms;
uint32_t DosHlpInitSystemDump;
uint32_t DosHlpSystemDump;
uint32_t DosHlpReadSectors;
uint32_t DosHlpSerInit;
uint32_t DosHlpSetBaudRate;
uint32_t DosHlpSerIn;
uint32_t DosHlpSerOut;
uint32_t DosHlpToneOn;
uint32_t DosHlpToneOff;
uint32_t DosHlpGetMask;
uint32_t DosHlpSetMask;
uint32_t DosHlpSetRealMask;
uint32_t DosHlpSetProtMask;
uint32_t DosHlpSetDosEnv;
uint32_t DosHlpCallInt10;
uint32_t DosHlpProtGetMessage;
uint32_t DosHlpRealGetMessage;
uint32_t DosHlpRegisterTmrDD;
uint32_t DosHlpTmr16QueryTime;
uint32_t DosHlpEnableWatchdogNMI;
uint32_t DosHlpDisableWatchdogNMI;
uint32_t DosHlpInstallIRET;
uint32_t DosHlpDiscard;
uint32_t DosHlpInitInterrupts;
uint32_t DosHlpSetIRQMask;
uint32_t DosHlpSendEOI;
uint32_t DosHlpTmr32QueryTime;
uint32_t DosHlpTmrSetRollover;
uint32_t DosHlpInitNPX;
uint32_t DosHlpClrBusyNPX;
uint32_t DosHlpAckIntNPX;
uint32_t DosHlpWaitNPX;
uint32_t DosHlpValidNPXSwitch;
uint32_t DosHlpVNPXReset;
uint32_t DosHlpVNPXClrBusy;
uint32_t DosHlpWhyNMI;
uint32_t DosHlpAckNMI;
uint32_t DosHlpResetWatchdogNMI;
uint32_t DosHlpDisableCache;
uint32_t DosHlpFindParity;
uint32_t DosHlpEnableCache;
uint32_t DosHlpGetErrorLogPtr;
uint32_t DosHlpWriteErrorLog;
uint32_t DosHlpReadErrorLog;
uint32_t DosHlpResetParity;
uint32_t Unknown1;
uint32_t Unknown2;
uint32_t Unknown3;
uint32_t Unknown4;
uint32_t Unknown5;
uint32_t Unknown6;
uint32_t Unknown7;
uint32_t Unknown8;
uint32_t Unknown9;
uint32_t Unknown10;
uint32_t Unknown11;
} DOSHLPFUNCTIONS, *PDOSHLPFUNCTIONS;
15 July 2008
osFree...
I have joined the osFree Project at Sourceforge and will keep a mirror of my loader project there.
In the process of hooking in the freeLdr micro-FSD calls, I found a real pain in the ass with BootableJFS. Each call to open clears the screen and displays their copyright message. This messes up any messages anyone else wants to display...
The fix? Well in the newest BootableJFS (as of 2008) Pasha has a turn off. At the JFS uFSD segment and offset 0x1944 a check is made for the byte value 0x0F. If this is set to anything else the message is not displayed.
In the process of hooking in the freeLdr micro-FSD calls, I found a real pain in the ass with BootableJFS. Each call to open clears the screen and displays their copyright message. This messes up any messages anyone else wants to display...
The fix? Well in the newest BootableJFS (as of 2008) Pasha has a turn off. At the JFS uFSD segment and offset 0x1944 a check is made for the byte value 0x0F. If this is set to anything else the message is not displayed.
07 June 2008
More stuff
Steven's page listing OS/2 Diagnostic Tools and Tips.
22 March 2008
Easy gcc build environment
Open Office for eCS-OS/2 2.4 Beta1 is available (news post) and I installed it on my old SMP PIII box. Seems to work well! I guess the big milestone was just getting it going in the previous version.
Also, Pasha has his updated os2ldr on hobbes (here). No chance to try it yet, but I wish it was open source. Guess that is up to ecomstation.ru.
I am in the process of rebuilding my sandbox system and I reached the point where I setup the gcc environment. The easiest way to do this, especially since I rarely use gcc, is to use Paul Smedley's build environment, currently buildenv_20071022.zip and a size of 234,635,207 bytes.
I know Paul has it on his U: drive and that the setup could be changed to use another drive, but I don't want to invest the time. So, I created a U: drive during the system setup.
First thing to do was to unzip the file. A quick dir /s gave me the unarchived space required:
686,439,038 bytes in 26,738 files and 8,057 dirs
So, plan ahead because the zip file contains gcc, qt, perl, and all kinds of other libraries and executables.
First thing was to cd into extras\lib and run makeomflibs, as instructed on Paul's site. I got this at the end but I believe it is expected:
warning: one or more operations failed, check the above output. :-).
Also, if you look in gcc335.cmd there are a bunch of e:\python25 statements, but python is not in the zip archive. I just grabbed Paul's Python v2.5.1 for OS/2 & eComStation. I just did:
unzip python-2.5.1-os2-20071223.zip
and changed the references in gcc335.cmd from e: to u:.
With that done I gave it an easy test, compiling nasm-2.02. I first ran sh ./configure
and after it finished make. The problem I ran into is that Paul's gcc335.cmd defines tmp to u:\tmp which did not exist:
'set tmp=u:/tmp'
'SET TEMP=%TMP%'
'SET TMPDIR=%TMP%'
I thought it was a good idea to keep the tmp drive on u: for my gcc stuff so a quick md \tmp and I was off to run make again. The result was an complete nasm.exe build so I was happy.
Things to note: Paul has a newer version of perl on his site and I think qt has been updated, but I have yet to download them. There may even be an updated gcc package on netlabs by now.
Anyway, that's it - short and sweet. Thanks to both Knut and Paul.
Other stuff:
100,000 customers tell Microsoft to save XP
Also, Pasha has his updated os2ldr on hobbes (here). No chance to try it yet, but I wish it was open source. Guess that is up to ecomstation.ru.
I am in the process of rebuilding my sandbox system and I reached the point where I setup the gcc environment. The easiest way to do this, especially since I rarely use gcc, is to use Paul Smedley's build environment, currently buildenv_20071022.zip and a size of 234,635,207 bytes.
I know Paul has it on his U: drive and that the setup could be changed to use another drive, but I don't want to invest the time. So, I created a U: drive during the system setup.
First thing to do was to unzip the file. A quick dir /s gave me the unarchived space required:
686,439,038 bytes in 26,738 files and 8,057 dirs
So, plan ahead because the zip file contains gcc, qt, perl, and all kinds of other libraries and executables.
First thing was to cd into extras\lib and run makeomflibs, as instructed on Paul's site. I got this at the end but I believe it is expected:
warning: one or more operations failed, check the above output. :-).
Also, if you look in gcc335.cmd there are a bunch of e:\python25 statements, but python is not in the zip archive. I just grabbed Paul's Python v2.5.1 for OS/2 & eComStation. I just did:
unzip python-2.5.1-os2-20071223.zip
and changed the references in gcc335.cmd from e: to u:.
With that done I gave it an easy test, compiling nasm-2.02. I first ran sh ./configure
and after it finished make. The problem I ran into is that Paul's gcc335.cmd defines tmp to u:\tmp which did not exist:
'set tmp=u:/tmp'
'SET TEMP=%TMP%'
'SET TMPDIR=%TMP%'
I thought it was a good idea to keep the tmp drive on u: for my gcc stuff so a quick md \tmp and I was off to run make again. The result was an complete nasm.exe build so I was happy.
Things to note: Paul has a newer version of perl on his site and I think qt has been updated, but I have yet to download them. There may even be an updated gcc package on netlabs by now.
Anyway, that's it - short and sweet. Thanks to both Knut and Paul.
Other stuff:
100,000 customers tell Microsoft to save XP
10 March 2008
Subversion hosting - free
I decided to try the free hosting provided by assembla. The first project I committed is rexxutil located here:
WIKI: http://www.assembla.com/wiki/show/rexxutil
TRAC: http://trac2.assembla.com/rexxutil
SVN: http://svn2.assembla.com/svn/rexxutil
Some misc blogs with recent OS/2-eCS content:
WIKI: http://www.assembla.com/wiki/show/rexxutil
TRAC: http://trac2.assembla.com/rexxutil
SVN: http://svn2.assembla.com/svn/rexxutil
Some misc blogs with recent OS/2-eCS content:
08 March 2008
More stuff...
I uploaded a fixed and working version of rexxutil.dll to hobbes.
Here's a free svn hosting site with trac, it looks like they give you 500 megs free:
http://www.assembla.com
Here's a free svn hosting site with trac, it looks like they give you 500 megs free:
http://www.assembla.com
16 February 2008
Big gap...
On top of being busy with work, home remodeling, and classes I finally got my pages moved to new hosting. The previous hosting service, Namesecure, might be a poster child for piss-poor support if they add anything that could pass for support. It took over a week to get a reply from them. Good riddance!
I did play on occasion with the rexxutil.dll and managed to screw-up sysstemsort which I need to fix. I also worked some on uniaud32 build system.
Gregg Young sent me his FTE source with changes which I want to look at soon. I do have a version I patched in UClip for fun.
First on the agenda is to finish my eCS RC4 install on the ZPro. I finally got tired of the ridiculous large file size crap that pops up on some installs. I firmly believe it is caused by the toolkit install.
During the install, again I was plagued by an ACPI version that would not work, but getting the debug info to Pasha fixed the problem. Version 3.07 should contain the fix. I still can't get APIC but that is no big deal.
On the whole this is interesting, Sun buying Innotek. Wonder if they will have to box up Bird and send hime to Sun?
Should IBM's SOM/DSOM Be Open Sourced? This seems to be a better option than IBM releasing OS/2 code which will never happen. It must have hit a nerve, it caught the fakesteve's eye The Secret Diary of Steve Jobs.
Article chain:
I did play on occasion with the rexxutil.dll and managed to screw-up sysstemsort which I need to fix. I also worked some on uniaud32 build system.
Gregg Young sent me his FTE source with changes which I want to look at soon. I do have a version I patched in UClip for fun.
First on the agenda is to finish my eCS RC4 install on the ZPro. I finally got tired of the ridiculous large file size crap that pops up on some installs. I firmly believe it is caused by the toolkit install.
During the install, again I was plagued by an ACPI version that would not work, but getting the debug info to Pasha fixed the problem. Version 3.07 should contain the fix. I still can't get APIC but that is no big deal.
On the whole this is interesting, Sun buying Innotek. Wonder if they will have to box up Bird
Should IBM's SOM/DSOM Be Open Sourced? This seems to be a better option than IBM releasing OS/2 code which will never happen. It must have hit a nerve, it caught the fakesteve's eye The Secret Diary of Steve Jobs.
Article chain:
07 December 2007
Should IBM's OS/2 Be Open-Sourced?
The Open Source Petition letter to IBM
A good article Esther Schindler at CIO: Should IBM's OS/2 Be Open-Sourced?
Comment by me:
Sadly, I agree
I would like nothing more than to think that this time the petition might work or, at the very least, IBM would step up and publicly say no. My money is on no reply at all. Why revisit something that represents a period when IBM was slowly falling apart and being displaced my Microsoft? Why step up and say no in front of the open source crowd, showing their true colors?
I did sign the petition, again. It is just a shame that the source that took so much time and effort to produce will just cease to exist. What a waste.
A good article Esther Schindler at CIO: Should IBM's OS/2 Be Open-Sourced?
Comment by me:
Sadly, I agree
I would like nothing more than to think that this time the petition might work or, at the very least, IBM would step up and publicly say no. My money is on no reply at all. Why revisit something that represents a period when IBM was slowly falling apart and being displaced my Microsoft? Why step up and say no in front of the open source crowd, showing their true colors?
I did sign the petition, again. It is just a shame that the source that took so much time and effort to produce will just cease to exist. What a waste.
28 November 2007
First looks...
A real good first look at Virtual Box on eCS-OS/2, Openoffice WPS integration, and SFTP plugin for NetDrive/2 by Andreas Ludwig (link).
11 November 2007
More stuff...
So, in the last month I had to fix a problem I introduced in the uniaud16 build system. One neat thing in the uniaud project, Pasha came up with a way to forward the uni16 debug messages to uni32 so a common log for both is available.
Have spent most of my time configuring my network. The HPMediaVault is great! I have been able to add some apps and turn on EAs for use with Paul's samba client. Also, the cheap linksys version 8 router has DD-WRT firmware available which works great.
Have spent most of my time configuring my network. The HPMediaVault is great! I have been able to add some apps and turn on EAs for use with Paul's samba client. Also, the cheap linksys version 8 router has DD-WRT firmware available which works great.
15 August 2007
12 August 2007
Just crap..
Another couple old OS/2 articles:
http://www.computerworld.com/blogs/node/583
http://www.theinquirer.net/?article=14175
http://www.computerworld.com/blogs/node/583
http://www.theinquirer.net/?article=14175
08 August 2007
OW RC2
Open Watcom v1.7, RC2 is now available July 10, 2007 ftp://ftp.openwatcom.org/devel/
18 July 2007
Better late than never...
Knut released gcc 3.3.5 csd3 12 June 2007 ftp://ftp.netlabs.org/pub/libc/
Open Watcom v1.7, RC1 is now available July 10, 2007 ftp://ftp.openwatcom.org/devel/
Also, made some progress on a Hello World device driver
Open Watcom v1.7, RC1 is now available July 10, 2007 ftp://ftp.openwatcom.org/devel/
Also, made some progress on a Hello World device driver
Subscribe to:
Posts (Atom)