home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wunderki.zip / SYSTEM.PAS < prev    next >
Pascal/Delphi Source File  |  1993-08-16  |  11KB  |  233 lines

  1. {//////////////////////////////////////////////////////}
  2. {/                                                    /}
  3. {/ Run-time Library für Borland Pascal 7.0 unter OS/2 /}
  4. {/ System-Unit.                                       /}
  5. {/                                                    /}
  6. {/ 1993 Matthias Withopf / c't                        /}
  7. {/ Originalversion (c) 1988,92 Borland International  /}
  8. {/                                                    /}
  9. {//////////////////////////////////////////////////////}
  10.  
  11. Unit System;
  12.  
  13. {$C MOVEABLE PRELOAD PERMANENT}
  14.  
  15. Interface
  16.  
  17. Const
  18.   CmdLine        : PChar   = Nil;  { Zeiger auf Kommandozeile.              }
  19.   HeapList       : Word    = 0;    { Selektor der Heapliste.                }
  20.   HeapLimit      : Word    = 1024; { Grenze für 'Small Blocks'.             }
  21.   HeapBlock      : Word    = 8192; { Größe eines globalen Heap-Blocks.      }
  22.   HeapAllocFlags : Word    = 0;    { Heap-Allozierungsflags, SEG_NONSHARED. }
  23.   HeapError      : Pointer = Nil;  { Zeiger auf HeapError-Funktion.         }
  24.   ExitProc       : Pointer = Nil;  { Zeiger auf Exit-Prozedur.              }
  25.   ExitCode       : Integer = 0;    { Exit-Code des Programms.               }
  26.   ErrorAddr      : Pointer = Nil;  { Adresse des Runtime-Errors.            }
  27.   EnvironmentSeg : Word    = 0;    { Selektor des Environment-Blocks.       }
  28.   InOutRes       : Integer = 0;    { Fehlercode der I/O-Operationen.        }
  29.   RandSeed       : Longint = 0;    { Startwert für Zufallsgenerator.        }
  30.   SelectorInc    : Word    = 0;    { Selektor-Inkrement-Wert.               }
  31.   Test8086       : Byte    = 0;    { Prozessortyp.                          }
  32.   FileMode       : Word    = $0040;{ Dateimodus, OPEN_SHARE_DENYNONE.       }
  33.  
  34. Var
  35.   Input          : Text;           { Standard-Eingabe.                      }
  36.   Output         : Text;           { Standard-Ausgabe.                      }
  37.   SaveInt00      : Pointer;        { Alter Vektor für INT $00.              }
  38.   SaveInt0C      : Pointer;        { Alter Vektor für INT $0C.              }
  39.   SaveInt0D      : Pointer;        { Alter Vektor für INT $0D.              }
  40.  
  41. Implementation
  42.  
  43.   Procedure InitTurbo;   External {WAPP};
  44.   Procedure HaltError;   External {WEND};
  45.   Procedure HaltTurbo;   External {WEND};
  46.   Procedure BlockMove;   External {VARH};
  47.   Procedure LongMul;     External {LONG};
  48.   Procedure LongDiv;     External {LONG};
  49.   Procedure LongShr;     External {LONG};
  50.   Procedure LongShl;     External {LONG};
  51.   Procedure LongMulOvf;  External {LOVF};
  52.   Procedure Overflow;    External {ERRC};
  53.   Procedure SLoad;       External {STRH};
  54.   Procedure SStore;      External {STRH};
  55.   Procedure RangeError;  External {ERRC};
  56.   Procedure SCopy;       External {STRH};
  57.   Procedure SConcat;     External {STRH};
  58.   Procedure SPos;        External {STRH};
  59.   Procedure SCompare;    External {STRH};
  60.   Procedure SChar;       External {STRH};
  61.   Procedure SPacked;     External {STRH};
  62.   Procedure SInsert;     External {STRH};
  63.   Procedure SDelete;     External {STRH};
  64.   Procedure ZLoad;       External {SETH};
  65.   Procedure ZStore;      External {SETH};
  66.   Procedure ZBitMask;    External {SETH};
  67.   Procedure FTrunc;      External {F87H};
  68.   Procedure FRound;      External {F87H};
  69.   Procedure FInt;        External {F87H};
  70.   Procedure FSqrt;       External {F87H};
  71.   Procedure FSin;        External {F87H};
  72.   Procedure FCos;        External {F87H};
  73.   Procedure FArcTan;     External {F87H};
  74.   Procedure FLn;         External {F87H};
  75.   Procedure FExp;        External {F87H};
  76.   Procedure NewPtr;      External {WMEM};
  77.   Procedure DisposePtr;  External {WMEM};
  78.   Procedure MarkPtr;     External {WMEM};
  79.   Procedure ReleasePtr;  External {WMEM};
  80.   Procedure GetFreMem;   External {WMEM};
  81.   Procedure GetFreMax;   External {WMEM};
  82.   Procedure ZWordLoad;   External {SETH};
  83.   Procedure ZAddComp;    External {SETH};
  84.   Procedure ZAddRange;   External {SETH};
  85.   Procedure ZUnion;      External {SETH};
  86.   Procedure ZDifference; External {SETH};
  87.   Procedure ZIntersect;  External {SETH};
  88.   Procedure ZEqual;      External {SETH};
  89.   Procedure ZRelation;   External {SETH};
  90.   Procedure GetParCnt;   External {WPAR};
  91.   Procedure GetIORes;    External {ERRC};
  92.   Procedure InOutCheck;  External {ERRC};
  93.   Procedure RangeCheck;  External {ERRC};
  94.   Procedure StackCheck;  External {ERRC};
  95.   Procedure WriteFloat;  External {TF87};
  96.   Procedure WriteStr;    External {TSTR};
  97.   Procedure WriteInt;    External {TINT};
  98.   Procedure WriteBool;   External {TBOL};
  99.   Procedure WriteChar;   External {TCHR};
  100.   Procedure WriteLine;   External {TCTL};
  101.   Procedure WriteEnd;    External {TCTL};
  102.   Procedure WriteFile;   External {FCTL};
  103.   Procedure ReadFloat;   External {TF87};
  104.   Procedure ReadStr;     External {TSTR};
  105.   Procedure ReadInt;     External {TINT};
  106.   Procedure ReadChar;    External {TCHR};
  107.   Procedure ReadLine;    External {TCTL};
  108.   Procedure ReadEnd;     External {TCTL};
  109.   Procedure ReadFile;    External {FCTL};
  110.   Procedure InitRand;    External {RAND};
  111.   Procedure AssignText;  External {TCTL};
  112.   Procedure ResetText;   External {TCTL};
  113.   Procedure RewriteText; External {TCTL};
  114.   Procedure CloseText;   External {TCTL};
  115.   Procedure AssignFile;  External {FCTL};
  116.   Procedure ResetFile;   External {FCTL};
  117.   Procedure RewriteFile; External {FCTL};
  118.   Procedure CloseFile;   External {FCTL};
  119.   Procedure EraseFile;   External {FDIR};
  120.   Procedure RenameFile;  External {FDIR};
  121.   Procedure GetSEoln;    External {TFUN};
  122.   Procedure GetSEof;     External {TFUN};
  123.   Procedure GetTEoln;    External {TFUN};
  124.   Procedure GetTEof;     External {TFUN};
  125.   Procedure ReadBlock;   External {FCTL};
  126.   Procedure WriteBlock;  External {FCTL};
  127.   Procedure SeekFile;    External {FCTL};
  128.   Procedure GetFPos;     External {FFUN};
  129.   Procedure GetFSize;    External {FFUN};
  130.   Procedure GetFEof;     External {FFUN};
  131.   Procedure FFrac;       External {F87H};
  132.   Procedure UpperCase;   External {CHAR};
  133.   Procedure TruncFile;   External {FCTL};
  134.   Procedure FillMem;     External {MEMH};
  135.   Procedure RandInt;     External {RAND};
  136.   Procedure RandFloat;   External {RAND};
  137.   Procedure GetParStr;   External {WPAR};
  138.   Procedure MoveMem;     External {MEMH};
  139.   Procedure StrInt;      External {SINT};
  140.   Procedure ValInt;      External {SINT};
  141.   Procedure StrFloat;    External {SF87};
  142.   Procedure ValFloat;    External {SF87};
  143.   Procedure DirGet;      External {DIRH};
  144.   Procedure DirSet;      External {DIRH};
  145.   Procedure DirCreate;   External {DIRH};
  146.   Procedure DirRemove;   External {DIRH};
  147.   Procedure AppendText;  External {TCTL};
  148.   Procedure FlushText;   External {TCTL};
  149.   Procedure BufferText;  External {TCTL};
  150.   Procedure FRealExt;    External {F87H};
  151.   Procedure FExtReal;    External {F87H};
  152.   Procedure RAdd;        External {F48H};
  153.   Procedure RSub;        External {F48H};
  154.   Procedure RMul;        External {F48H};
  155.   Procedure RDiv;        External {F48H};
  156.   Procedure RCmp;        External {F48H};
  157.   Procedure RFloat;      External {F48H};
  158.   Procedure RTrunc;      External {F48H};
  159.   Procedure RRound;      External {F48H};
  160.   Procedure RSqr;        External {F48H};
  161.   Procedure WriteReal;   External {TF48};
  162.   Procedure ReadReal;    External {TF48};
  163.   Procedure StrReal;     External {SF48};
  164.   Procedure ValReal;     External {SF48};
  165.   Procedure RInt;        External {F48F};
  166.   Procedure RFrac;       External {F48F};
  167.   Procedure RSqrt;       External {F48F};
  168.   Procedure RSin;        External {F48F};
  169.   Procedure RCos;        External {F48F};
  170.   Procedure RLn;         External {F48F};
  171.   Procedure RExp;        External {F48F};
  172.   Procedure RArcTan;     External {F48F};
  173.   Procedure RandReal;    External {RAND};
  174.   Procedure InitEM86;    External {EI86};
  175.   Procedure InitEM87;    External {EI87};
  176.   Procedure Construct;   External {OBJH};
  177.   Procedure Destruct;    External {OBJH};
  178.   Procedure CopyObject;  External {OBJH};
  179.   Procedure MethodCheck; External {OBJH};
  180.   Procedure FindMethod;  External {DMTH};
  181.   Procedure CallMethod;  External {DMTH};
  182.   Procedure ReadPChar;   External {TPCH};
  183.   Procedure WritePChar;  External {TPCH};
  184.   Procedure AssignTextC; External {TCTL};
  185.   Procedure AssignFileC; External {FCTL};
  186.   Procedure RenameFileC; External {FDIR};
  187.   Procedure StrIntC;     External {CINT};
  188.   Procedure ValIntC;     External {CINT};
  189.   Procedure StrFloatC;   External {CF87};
  190.   Procedure ValFloatC;   External {CF87};
  191.   Procedure StrRealC;    External {CF48};
  192.   Procedure ValRealC;    External {CF48};
  193.   Procedure LibEntry;    External {WLIB};
  194.   Procedure LibExit;     External {WLIB};
  195.   Procedure LibExitProc; Export; External {WLIB};
  196.  
  197.   Procedure DosExit; Far;         External 'DOSCALLS' Index $0005;
  198.   Procedure DosGetDateTime; Far;  External 'DOSCALLS' Index $0021;
  199.   Procedure DosAllocSeg; Far;     External 'DOSCALLS' Index $0022;
  200.   Procedure DosFreeSeg; Far;      External 'DOSCALLS' Index $0027;
  201.   Procedure DosGetHugeShift; Far; External 'DOSCALLS' Index $0029;
  202.   Procedure DosChDir; Far;        External 'DOSCALLS' Index $0039;
  203.   Procedure DosChgFilePtr; Far;   External 'DOSCALLS' Index $003A;
  204.   Procedure DosClose; Far;        External 'DOSCALLS' Index $003B;
  205.   Procedure DosDelete; Far;       External 'DOSCALLS' Index $003C;
  206.   Procedure DosMkDir; Far;        External 'DOSCALLS' Index $0042;
  207.   Procedure DosMove; Far;         External 'DOSCALLS' Index $0043;
  208.   Procedure DosNewSize; Far;      External 'DOSCALLS' Index $0044;
  209.   Procedure DosOpen; Far;         External 'DOSCALLS' Index $0046;
  210.   Procedure DosQCurDir;  Far;     External 'DOSCALLS' Index $0047;
  211.   Procedure DosQCurDisk; Far;     External 'DOSCALLS' Index $0048;
  212.   Procedure DosQHandType; Far;    External 'DOSCALLS' Index $004D;
  213.   Procedure DosRmDir; Far;        External 'DOSCALLS' Index $0050;
  214.   Procedure DosSelectDisk; Far;   External 'DOSCALLS' Index $0051;
  215.   Procedure DosSetVec; Far;       External 'DOSCALLS' Index $0059;
  216.   Procedure DosGetEnv; Far;       External 'DOSCALLS' Index $005B;
  217.   Procedure DosMemAvail; Far;     External 'DOSCALLS' Index $007F;
  218.   Procedure DosRead; Far;         External 'DOSCALLS' Index $0089;
  219.   Procedure DosWrite; Far;        External 'DOSCALLS' Index $008A;
  220.   Procedure __FPMath; far;        External 'WIN87EM'  Index $0001;
  221.  
  222. {$L WAPP.OBW} {$L WLIB.OBW} {$L WEND.OBW} {$L WMEM.OBW} {$L ERRC.OBW} 
  223. {$L OBJH.OBW} {$L DF87.OBW} {$L TCTL.OBW} {$L TGPC.OBW} {$L TCHR.OBW} 
  224. {$L TSTR.OBW} {$L TPCH.OBW} {$L TBOL.OBW} {$L TINT.OBW} {$L TF48.OBW} 
  225. {$L TF87.OBW} {$L TFUN.OBW} {$L FCTL.OBW} {$L FDIR.OBW} {$L CINT.OBW}
  226. {$L CF48.OBW} {$L CF87.OBW} {$L WPAR.OBW} {$L DIRH.OBW} {$L WI87.OBW} 
  227. {$L WE87.OBW} {$L WF87.OBJ} {$L VARH.OBJ} {$L LONG.OBJ} {$L LOVF.OBJ} 
  228. {$L STRH.OBJ} {$L SETH.OBJ} {$L FP48.OBJ} {$L F48H.OBJ} {$L F48F.OBJ} 
  229. {$L RAND.OBJ} {$L DINT.OBJ} {$L DF48.OBJ} {$L SINT.OBJ} {$L SF48.OBJ} 
  230. {$L SF87.OBJ} {$L FFUN.OBJ} {$L MEMH.OBJ} {$L CHAR.OBJ} {$L DMTH.OBJ} 
  231.  
  232. End.
  233.