system.def 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. (* Copyright (C) 1987 Jensen & Partners International *)
  2. DEFINITION MODULE SYSTEM;
  3. TYPE
  4. PROCESS = ADDRESS;
  5. Registers = RECORD
  6. CASE : BOOLEAN OF
  7. | TRUE : AX,BX,CX,DX,BP,SI,DI,DS,ES : CARDINAL;
  8. Flags : BITSET;
  9. | FALSE : AL,AH,BL,BH,CL,CH,DL,DH : SHORTCARD;
  10. END;
  11. END;
  12. CONST
  13. CarryFlag = 0;
  14. ZeroFlag = 6;
  15. VAR
  16. HeapBase : CARDINAL; (* Base segment of heap *)
  17. PROCEDURE NEWPROCESS(P: PROC; A: ADDRESS; S: CARDINAL; VAR P1: ADDRESS);
  18. PROCEDURE TRANSFER(VAR P1,P2: ADDRESS);
  19. PROCEDURE IOTRANSFER (VAR P1,P2: ADDRESS; I: CARDINAL);
  20. PROCEDURE InterruptRegisters(P: ADDRESS) : ADDRESS;
  21. PROCEDURE CurrentProcess() : ADDRESS;
  22. PROCEDURE CurrentPriority() : CARDINAL;
  23. PROCEDURE NewPriority(PR: CARDINAL);
  24. PROCEDURE Listen(Mask: BITSET);
  25. PROCEDURE DI(); (* Disable Interupts *)
  26. PROCEDURE EI(); (* Enable Interupts *)
  27. PROCEDURE Ofs(A: ARRAY OF WORD) : CARDINAL;
  28. PROCEDURE Seg(A: ARRAY OF WORD) : CARDINAL;
  29. PROCEDURE Out(P: CARDINAL; V: SHORTCARD);
  30. PROCEDURE In(P: CARDINAL) : SHORTCARD;
  31. PROCEDURE GetFlags() : CARDINAL;
  32. PROCEDURE SetFlags(F: CARDINAL);
  33. CONST
  34. ADDRESS ::= ADDRESS;
  35. ADR ::= ADR;
  36. SIZE ::= SIZE;
  37. TSIZE ::= SIZE;
  38. WORD ::= WORD;
  39. BYTE ::= BYTE;
  40. SHORTADDR ::= SHORTADDR;
  41. LONGWORD ::= LONGWORD;
  42. END SYSTEM.
  43.