asmlib.def 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. (* Copyright (C) 1987 Jensen & Partners International *)
  2. DEFINITION MODULE AsmLib;
  3. IMPORT SYSTEM;
  4. PROCEDURE HashString(S: ARRAY OF CHAR; Range: CARDINAL) : CARDINAL;
  5. PROCEDURE Move(Source,Dest: ADDRESS; Count: CARDINAL);
  6. PROCEDURE Fill(Dest: ADDRESS; Count: CARDINAL; Value: BYTE);
  7. PROCEDURE WordFill(Dest: ADDRESS; WordCount: CARDINAL; Value: WORD);
  8. PROCEDURE WordMove(Source,Dest: ADDRESS; WordCount: CARDINAL);
  9. PROCEDURE AddAddr(A: ADDRESS; increment: CARDINAL) : ADDRESS;
  10. PROCEDURE SubAddr(A: ADDRESS; decrement: CARDINAL) : ADDRESS;
  11. PROCEDURE IncAddr(VAR A: ADDRESS; increment: CARDINAL);
  12. PROCEDURE DecAddr(VAR A: ADDRESS; decrement: CARDINAL);
  13. PROCEDURE UserBreak;
  14. PROCEDURE FatalError(S: ARRAY OF CHAR);
  15. PROCEDURE Terminate(P: PROC; VAR C: PROC);
  16. PROCEDURE SetReturnCode(code: SHORTCARD);
  17. PROCEDURE EnableBreakCheck;
  18. PROCEDURE DisableBreakCheck;
  19. TYPE
  20. LongLabel = ARRAY[0..3] OF CARDINAL ;
  21. (*$C 00*) (* save no registers *)
  22. PROCEDURE SetJmp (VAR Lbl: LongLabel) : CARDINAL;
  23. (*$C FF*) (* no return *)
  24. PROCEDURE LongJmp(VAR Lbl: LongLabel; result: CARDINAL);
  25. (*$C F0*) (* restore default register save mask *)
  26. PROCEDURE ScanR (Dest: ADDRESS; Count: CARDINAL; Value: BYTE) : CARDINAL;
  27. PROCEDURE ScanL (Dest: ADDRESS; Count: CARDINAL; Value: BYTE) : CARDINAL;
  28. PROCEDURE ScanNeR(Dest: ADDRESS; Count: CARDINAL; Value: BYTE) : CARDINAL;
  29. PROCEDURE ScanNeL(Dest: ADDRESS; Count: CARDINAL; Value: BYTE) : CARDINAL;
  30. PROCEDURE Compare(Source,Dest: ADDRESS; Len: CARDINAL) : CARDINAL;
  31. TYPE
  32. CommandType = POINTER TO ARRAY[0..126] OF CHAR;
  33. VAR
  34. PSP : CARDINAL;
  35. CommandLine : CommandType;
  36. PROCEDURE Environment(N: CARDINAL) : CommandType;
  37. PROCEDURE Dos(VAR R: SYSTEM.Registers); (* INT 21H Function Call *)
  38. PROCEDURE Intr(VAR R: SYSTEM.Registers; I: CARDINAL);
  39. PROCEDURE ParamStr(VAR S: ARRAY OF CHAR; N: CARDINAL);
  40. PROCEDURE ParamCount() : CARDINAL;
  41. PROCEDURE Delay(Time: CARDINAL);
  42. PROCEDURE Sound(FreqHz: CARDINAL);
  43. PROCEDURE NoSound;
  44. PROCEDURE Speaker(TotalTime,OnTime,OffTime: CARDINAL);
  45. (* Support Procedures for window handling *)
  46. PROCEDURE BufferToScreen ( X,Y : CARDINAL; (* Destination co-ordinates *)
  47. Source : ADDRESS; (* Address of source buffer *)
  48. Len : CARDINAL); (* Length to write *)
  49. PROCEDURE ScreenToBuffer ( X,Y : CARDINAL; (* Source co-ordinates *)
  50. Dest : ADDRESS; (* Address of source buffer *)
  51. Len : CARDINAL); (* Length to read *)
  52. PROCEDURE BufferWrite ( Buff : ADDRESS; (* Destination *)
  53. Str : ADDRESS; (* Source *)
  54. Len : CARDINAL;
  55. Attr : CARDINAL); (* Attribute *)
  56. PROCEDURE SetVideoPage(page: CARDINAL);
  57. PROCEDURE PalXlat ( To : ADDRESS ; (* Destination *)
  58. From : ADDRESS ; (* Source *)
  59. Len : CARDINAL ;
  60. Pallete : ADDRESS ) ; (* Attribute *)
  61. PROCEDURE ActivePage () : SHORTCARD ;
  62. PROCEDURE InitScreenType( IsSnow : BOOLEAN ) ;
  63. (* String procedures *)
  64. PROCEDURE Caps(VAR S: ARRAY OF CHAR);
  65. PROCEDURE CompareStr(S1,S2: ARRAY OF CHAR) : INTEGER;
  66. PROCEDURE Length(S : ARRAY OF CHAR) : CARDINAL;
  67. PROCEDURE Concat(VAR R: ARRAY OF CHAR; S1,S2: ARRAY OF CHAR);
  68. PROCEDURE Append(VAR R: ARRAY OF CHAR; S: ARRAY OF CHAR);
  69. PROCEDURE Copy (VAR R: ARRAY OF CHAR; S: ARRAY OF CHAR);
  70. PROCEDURE Slice (VAR R: ARRAY OF CHAR; S: ARRAY OF CHAR; P,L: CARDINAL);
  71. PROCEDURE Pos(S,P: ARRAY OF CHAR) : CARDINAL;
  72. PROCEDURE DosExec(name: ARRAY OF CHAR; paramblock: ADDRESS) : CARDINAL;
  73. PROCEDURE Disable8087ContextSave;
  74. PROCEDURE SetInProgramFlag( on:BOOLEAN );
  75. PROCEDURE GetInProgramFlag():BOOLEAN;
  76. END AsmLib.
  77.