lib.def 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. (* Copyright (C) 1987 Jensen & Partners International *)
  2. DEFINITION MODULE Lib;
  3. IMPORT AsmLib;
  4. PROCEDURE MathError ( R: LONGREAL; S: ARRAY OF CHAR);
  5. PROCEDURE MathError2(R1,R2: LONGREAL; S: ARRAY OF CHAR);
  6. TYPE
  7. CompareProc = PROCEDURE(CARDINAL, CARDINAL) : BOOLEAN;
  8. SwapProc = PROCEDURE(CARDINAL, CARDINAL);
  9. PROCEDURE QSort(N: CARDINAL; Less: CompareProc; Swap: SwapProc);
  10. PROCEDURE HSort(N: CARDINAL; Less: CompareProc; Swap: SwapProc);
  11. PROCEDURE RANDOM(Range: CARDINAL) : CARDINAL;
  12. PROCEDURE RAND() : REAL;
  13. PROCEDURE RANDOMIZE;
  14. PROCEDURE Execute (Name : ARRAY OF CHAR ; (* full name of program *)
  15. CommandLine : ARRAY OF CHAR ; (* command line for program *)
  16. StoreAddr : ADDRESS ; (* storage to execute in *)
  17. StoreLen : CARDINAL (* length in paragraphs *)
  18. ) : CARDINAL ; (* DOS reply (0=OK) *)
  19. (*
  20. PROCEDURE Sound(FreqHz: CARDINAL);
  21. PROCEDURE NoSound;
  22. PROCEDURE Delay(Time: CARDINAL);
  23. TYPE
  24. CommandType = POINTER TO ARRAY[0..126] OF CHAR;
  25. VAR
  26. PSP : CARDINAL;
  27. CommandLine : CommandType;
  28. PROCEDURE Environment(N: CARDINAL) : CommmandType;
  29. PROCEDURE Dos(VAR R: SYSTEM.Registers); (* INT 21H Function Call *)
  30. PROCEDURE Intr(VAR R: SYSTEM.Registers; I: CARDINAL);
  31. PROCEDURE ParamCount() : CARDINAL;
  32. PROCEDURE ParamStr(VAR S: ARRAY OF CHAR ; N: CARDINAL );
  33. PROCEDURE HashString(S: ARRAY OF CHAR; Range: CARDINAL) : CARDINAL;
  34. PROCEDURE Move(Source,Dest: ADDRESS; Count: CARDINAL);
  35. PROCEDURE Fill(Dest: ADDRESS; Count: CARDINAL; Value: BYTE);
  36. PROCEDURE WordFill(Dest: ADDRESS; WordCount: CARDINAL; Value: WORD);
  37. PROCEDURE WordMove(Source,Dest: ADDRESS; WordCount: CARDINAL);
  38. PROCEDURE AddAddr(A: ADDRESS; increment: CARDINAL) : ADDRESS;
  39. PROCEDURE SubAddr(A: ADDRESS; decrement: CARDINAL) : ADDRESS;
  40. PROCEDURE IncAddr(VAR A: ADDRESS; increment: CARDINAL);
  41. PROCEDURE DecAddr(VAR A: ADDRESS; decrement: CARDINAL);
  42. PROCEDURE UserBreak;
  43. PROCEDURE FatalError(S : ARRAY OF CHAR);
  44. PROCEDURE Terminate(P : PROC; VAR C: PROC);
  45. PROCEDURE SetReturnCode(code: SHORTCARD);
  46. PROCEDURE EnableBreakCheck;
  47. PROCEDURE DisableBreakCheck;
  48. TYPE
  49. LongLabel = ARRAY[0..3] OF CARDINAL ;
  50. (*$C 00*) (* save no registers *)
  51. PROCEDURE SetJmp (VAR Lbl: LongLabel) : CARDINAL;
  52. (*$C FF*) (* no return *)
  53. PROCEDURE LongJmp(VAR Lbl: LongLabel; result: CARDINAL);
  54. (*$C F0*) (* restore default register save mask *)
  55. PROCEDURE ScanR (Dest: ADDRESS; Count: CARDINAL; Value: BYTE) : CARDINAL;
  56. PROCEDURE ScanL (Dest: ADDRESS; Count: CARDINAL; Value: BYTE) : CARDINAL;
  57. PROCEDURE ScanNeR(Dest: ADDRESS; Count: CARDINAL; Value: BYTE) : CARDINAL;
  58. PROCEDURE ScanNeL(Dest: ADDRESS; Count: CARDINAL; Value: BYTE) : CARDINAL;
  59. PROCEDURE Compare(Source,Dest: ADDRESS; Len: CARDINAL) : CARDINAL;
  60. *)
  61. CONST
  62. Sound = AsmLib.Sound;
  63. NoSound = AsmLib.NoSound;
  64. Delay = AsmLib.Delay;
  65. Environment = AsmLib.Environment;
  66. Dos = AsmLib.Dos;
  67. Intr = AsmLib.Intr;
  68. ParamStr = AsmLib.ParamStr;
  69. ParamCount = AsmLib.ParamCount;
  70. PSP ::= AsmLib.PSP;
  71. CommandLine ::= AsmLib.CommandLine;
  72. HashString = AsmLib.HashString;
  73. Move = AsmLib.Move;
  74. Fill = AsmLib.Fill;
  75. WordFill = AsmLib.WordFill;
  76. WordMove = AsmLib.WordMove;
  77. AddAddr = AsmLib.AddAddr;
  78. SubAddr = AsmLib.SubAddr;
  79. IncAddr = AsmLib.IncAddr;
  80. DecAddr = AsmLib.DecAddr;
  81. UserBreak = AsmLib.UserBreak;
  82. FatalError = AsmLib.FatalError;
  83. Terminate = AsmLib.Terminate;
  84. SetReturnCode = AsmLib.SetReturnCode;
  85. EnableBreakCheck = AsmLib.EnableBreakCheck;
  86. DisableBreakCheck = AsmLib.DisableBreakCheck;
  87. SetJmp = AsmLib.SetJmp;
  88. LongJmp = AsmLib.LongJmp;
  89. ScanR = AsmLib.ScanR;
  90. ScanL = AsmLib.ScanL;
  91. ScanNeR = AsmLib.ScanNeR;
  92. ScanNeL = AsmLib.ScanNeL;
  93. Compare = AsmLib.Compare;
  94. TYPE
  95. CommandType = AsmLib.CommandType;
  96. LongLabel = AsmLib.LongLabel;
  97. END Lib.
  98.