[4051] | 1 | <?php
|
---|
| 2 |
|
---|
[6657] | 3 | $sMainDir = "../";
|
---|
[4051] | 4 |
|
---|
[6657] | 5 | require $sMainDir."stilovi.php3";
|
---|
[4051] | 6 | require "Odin32DBHelpers.php3";
|
---|
| 7 |
|
---|
| 8 | $sTitle = "The Odin32 PE Loaders";
|
---|
| 9 |
|
---|
[6657] | 10 | require $sMainDir."01-PreTitle.php3";
|
---|
[4051] | 11 | echo $sTitle;
|
---|
[6657] | 12 | require $sMainDir."02-PostTitle.php3";
|
---|
[4051] | 13 |
|
---|
[6657] | 14 | require $sMainDir."03-MainTableBeg.php3";
|
---|
| 15 | require $sMainDir."04-ColumnOne.php3";
|
---|
[4051] | 16 |
|
---|
[6657] | 17 | require $sMainDir."05-ColumnTwoHeader.php3";
|
---|
[4051] | 18 | echo $sTitle;
|
---|
[6657] | 19 | require $sMainDir."06-ColumnTwoHeader2.php3";
|
---|
[4051] | 20 |
|
---|
| 21 |
|
---|
| 22 | /*
|
---|
| 23 | * The article
|
---|
| 24 | */
|
---|
| 25 |
|
---|
| 26 | echo "
|
---|
| 27 | The story of the program being executed.
|
---|
| 28 | ";
|
---|
| 29 |
|
---|
| 30 | TekstBeg();
|
---|
| 31 | echo "
|
---|
| 32 |
|
---|
| 33 | It all started when I typed the name of the program on an OS/2 commandline.
|
---|
| 34 | This program was a not a native OS/2 program, as you might has thougth, but
|
---|
| 35 | a Win32 program called SOL.EXE, or Solitaire. The first thing that happend
|
---|
| 36 | was that the Shell, which in my case is 4OS/2, asks the Kernel what type of
|
---|
| 37 | application this is. Some Programs are Presentation Manager programs, other
|
---|
| 38 | are VIO (Virtual I/O) programs, while others again are pure full screen
|
---|
| 39 | programs. So, 4OS/2 needs to know what kindred the program belongs to in
|
---|
| 40 | order to start it in it's corrected environment.
|
---|
| 41 | <p>
|
---|
| 42 | DosQueryAppType is the name of the API telling which type a program has.
|
---|
| 43 | This 32-bit call thunks to the 16-bit DosQAppType which does. DosQAppType
|
---|
| 44 | checks if the specified programname has a path. If is has a (absolute) path
|
---|
| 45 | nothing extra is done to find the file. But, if it hasn't the PATH is
|
---|
| 46 | searched. If not found the .EXE extention is eventually (if not present)
|
---|
| 47 | added to the filename and the PATH is researched. Then the Kernel is
|
---|
| 48 | called, DOSIQAPPTYPE. DOSIQAPPTYPE does a farcall to w_QAppType which in
|
---|
| 49 | turn thunks to the 32-bit loader function LDRQAppType. (Note that the
|
---|
| 50 | LDR-prefix is in capital letters. This could be understood as this is an
|
---|
| 51 | officially exported function from the Loader subsystem.
|
---|
| 52 | <p>
|
---|
| 53 |
|
---|
| 54 |
|
---|
| 55 |
|
---|
| 56 | ";
|
---|
| 57 | TekstEnd();
|
---|
| 58 |
|
---|
| 59 |
|
---|
| 60 |
|
---|
| 61 |
|
---|
| 62 |
|
---|
| 63 | /*
|
---|
| 64 | * Standard stuff.
|
---|
| 65 | */
|
---|
| 66 |
|
---|
[6657] | 67 | require $sMainDir."07-ColumnTwoFooter.php3";
|
---|
| 68 | require $sMainDir."08-News.php3";
|
---|
| 69 | require $sMainDir."09-ContentsTitle.php3";
|
---|
[4051] | 70 |
|
---|
| 71 | Odin32DBWriteContents();
|
---|
| 72 |
|
---|
[6657] | 73 | require $sMainDir."10-EndOfContent.php3";
|
---|
| 74 | require $sMainDir."11-NetlabsContact.php3";
|
---|
[4051] | 75 |
|
---|
| 76 | $Kada=date ("j M Y", filemtime(__file__));
|
---|
[6657] | 77 | require $sMainDir."12-OdinBanner.php3";
|
---|
[4051] | 78 |
|
---|
[6657] | 79 | require $sMainDir."13-Closing.php3";
|
---|
[4051] | 80 |
|
---|
| 81 |
|
---|
| 82 |
|
---|
| 83 |
|
---|
| 84 | ?>
|
---|