PASDOS.DEF 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. (* Release 3.10 *)
  2. (*-------------------------------------------------------------------------*
  3. * *
  4. * PASDOS.DEF - Modula-2 interface to PASDOS.ITF *
  5. * *
  6. * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
  7. * All Rights Reserved *
  8. * *
  9. *--------------------------------------------------------------------------*)
  10. (*# project("#set tspas='on'") *)
  11. (*# call(o_a_size=>off, o_a_copy=>off) *)
  12. (*%F _fdata *)
  13. (*# call(seg_name => null) *)
  14. (*# data(seg_name => null) *)
  15. (*%E *)
  16. (*# module(implementation=>off) *)
  17. DEFINITION MODULE PasDos;
  18. IMPORT PasLib, CoreFile, CoreMath;
  19. VAR
  20. AssignBuffer : PROCEDURE(VAR PasLib.filetype, BOOLEAN);
  21. read : PROCEDURE (INTEGER, CoreFile.StreamPtr, INTEGER): INTEGER;
  22. write : PROCEDURE(INTEGER, CoreFile.StreamPtr, INTEGER): INTEGER;
  23. RunTimeError: PROCEDURE(LONGINT, CARDINAL, SHORTCARD, ARRAY OF CHAR);
  24. TYPE
  25. Registers = RECORD
  26. CASE : BOOLEAN OF
  27. | FALSE: AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags: CARDINAL;
  28. | TRUE: AL,AH,BL,BH,CL,CH,DL,DH: SHORTCARD;
  29. END;
  30. END;
  31. ProcType = PROCEDURE;
  32. CONST
  33. ZeroFlag = 040H;
  34. PROCEDURE ParamCount(): CARDINAL;
  35. PROCEDURE SysErrno(): CARDINAL;
  36. PROCEDURE EnvCount(): LONGINT;
  37. (*# save *)
  38. (*# call(seg_name=>null) *)
  39. PROCEDURE Exec(Psize: BYTE; Path: ARRAY OF CHAR; Csize: BYTE; Command: ARRAY OF CHAR);
  40. (*# restore *)
  41. PROCEDURE DosExitCode(): CARDINAL;
  42. PROCEDURE SetExitCode(code: CARDINAL);
  43. PROCEDURE GetDate(VAR Year, Month, Day, DayOfWeek: CARDINAL);
  44. PROCEDURE SetDate(Year, Month, Day : CARDINAL);
  45. PROCEDURE GetTime(VAR Hour, Minute, Second, Hund: CARDINAL);
  46. PROCEDURE SetTime(Hour, Minute, Second, Hund: CARDINAL);
  47. PROCEDURE Intr(IntNo: SHORTCARD; VAR Regs: Registers);
  48. PROCEDURE MsDos(VAR Regs: Registers);
  49. PROCEDURE GetInProgramFlag(): SHORTCARD;
  50. PROCEDURE SetInProgramFlag(f: SHORTCARD);
  51. PROCEDURE Terminate(P : ProcType; VAR C: ProcType);
  52. TYPE
  53. CommandStr = ARRAY [0..127] OF CHAR;
  54. (*# save *)
  55. (*# data(near_ptr => off) *)
  56. CommandType = POINTER TO CommandStr;
  57. (*# restore *)
  58. TYPE
  59. PackedBcd = ARRAY[0..9] OF SHORTCARD;
  60. (*# save *)
  61. (*# call(reg_param => (ax,bx,cx,dx), reg_saved => (ds,si,di,st1,st2)) *)
  62. PROCEDURE LongToBcd(A: REAL) : PackedBcd;
  63. PROCEDURE BcdToLong(A: PackedBcd) : REAL;
  64. (*# restore *)
  65. (*# save *)
  66. (*# call(near_call=>off) *)
  67. TYPE
  68. HardHandler = PROCEDURE(CARDINAL, CARDINAL, FarADDRESS);
  69. (*# restore *)
  70. PROCEDURE harderr(handler: HardHandler);
  71. PROCEDURE hardresume(code: CARDINAL);
  72. PROCEDURE hardretn(code: CARDINAL);
  73. PROCEDURE ProtectedMode(): BOOLEAN;
  74. TYPE
  75. CpuKind = (cpu_Unknown,cpu_V20,cpu_V30,cpu_8088,cpu_8086,
  76. cpu_80188,cpu_80186,
  77. cpu_80286,cpu_80386);
  78. FpuKind = (fpu_none,fpu_8087,fpu_80287,fpu_80387);
  79. CpuRec = RECORD
  80. cpu : CpuKind;
  81. fpu : FpuKind;
  82. END;
  83. PROCEDURE CpuId (VAR r : CpuRec );
  84. PROCEDURE EnableBreakCheck;
  85. PROCEDURE DisableBreakCheck;
  86. PROCEDURE Delay(ms: CARDINAL);
  87. VAR
  88. LastChar : CHAR ;
  89. LastScan : SHORTCARD ;
  90. PROCEDURE KeyPressed(): BOOLEAN ;
  91. PROCEDURE RdKey(): CHAR ;
  92. PROCEDURE RdChar(): CHAR ;
  93. TYPE
  94. KBF = ( RShift, LShift, Ctrl, Alt, Scroll, Num, Cap, Ins );
  95. KBFlagSet = SET OF KBF ;
  96. PROCEDURE KBFlags(): KBFlagSet ;
  97. (*
  98. TYPE
  99. Exception = RECORD
  100. etype: CARDINAL;
  101. Name: address;
  102. arg1, arg2, retval: REAL;
  103. END;
  104. VAR
  105. matherr: PROCEDURE (VAR E: Exception): CARDINAL;
  106. *)
  107. CONST
  108. matherr ::= CoreMath.matherr;
  109. Exception ::= CoreMath.Exception;
  110. ReadOnly = 01H;
  111. Hidden = 02H;
  112. SysFile = 04H;
  113. VolumeID = 08H;
  114. Directory = 10H;
  115. Archive = 20H;
  116. AnyFile = 3FH;
  117. TYPE
  118. SearchRec = RECORD
  119. Fill: ARRAY [1..21] OF SHORTCARD;
  120. Attr: SHORTCARD;
  121. Time: LONGINT;
  122. Size: LONGINT;
  123. Name: ARRAY [0..12] OF CHAR;
  124. END;
  125. PROCEDURE FindFirst(size: BYTE; Path: ARRAY OF CHAR; Attr: CARDINAL; VAR S: SearchRec);
  126. PROCEDURE FindNext(VAR S: SearchRec);
  127. PROCEDURE ChDir(size: BYTE; s: ARRAY OF CHAR);
  128. PROCEDURE GetDir(d: SHORTCARD; size: BYTE; VAR s: ARRAY OF CHAR);
  129. PROCEDURE MkDir(size: BYTE; s: ARRAY OF CHAR);
  130. PROCEDURE RmDir(size: BYTE; s: ARRAY OF CHAR);
  131. END PasDos.
  132.