DIAGNOST.MOD 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. IMPLEMENTATION MODULE Diagnostics;
  2. (*
  3. * REPERTOIRE
  4. * Release 1.6
  5. * By Charles Bradford and Cole Brecheen
  6. * (c) Copyright 1985-1992 PMI
  7. * Green Bay, Wisconsin
  8. * All rights reserved
  9. * (414) 468-6040
  10. *
  11. * $Header: D:/logfiles/mods/diagnost.mov 1.6 10 Mar 1991 15:26:18 coleb $
  12. *
  13. *)
  14. IMPORT FAPI; (*Diag*)
  15. IMPORT ErrorManager;
  16. IMPORT HandleIO;
  17. IMPORT GenLists;
  18. IMPORT LowLevel;
  19. IMPORT M2Strings;
  20. IMPORT StrConv;
  21. IMPORT StrEdit;
  22. IMPORT StringIO;
  23. IMPORT SYSTEM;
  24. VAR
  25. Initialized : BOOLEAN;
  26. PROCEDURE Init();
  27. BEGIN
  28. IF Initialized THEN
  29. RETURN;
  30. ELSE
  31. Initialized := TRUE;
  32. END;
  33. ErrorManager.Init();
  34. HandleIO.Init();
  35. GenLists.Init();
  36. LowLevel.Init();
  37. M2Strings.Init();
  38. StrConv.Init();
  39. StrEdit.Init();
  40. StringIO.Init();
  41. END Init;
  42. PROCEDURE diagA(str1 : ARRAY OF CHAR; TheAddr : SYSTEM.ADDRESS );
  43. VAR
  44. LocalStr: ARRAY [0..79] OF CHAR;
  45. dummy : ARRAY [0..5] OF CHAR;
  46. BEGIN
  47. M2Strings.Assign( str1, LocalStr );
  48. StrEdit.Append( LocalStr, ': ' );
  49. StrConv.CardinalToStr(LowLevel.seg(TheAddr), 0, dummy);
  50. StrEdit.Append( LocalStr, dummy );
  51. StrEdit.Append( LocalStr, ':' );
  52. StrConv.CardinalToStr(LowLevel.ofs(TheAddr), 0, dummy);
  53. StrEdit.Append( LocalStr, dummy );
  54. ErrorManager.WARN( LocalStr );
  55. END diagA;
  56. PROCEDURE diagB( str1: ARRAY OF CHAR; TheSet: BITSET );
  57. VAR
  58. cnt: CARDINAL;
  59. LocalStr: ARRAY [0..255] OF CHAR;
  60. BEGIN
  61. M2Strings.Assign( str1, LocalStr );
  62. StrEdit.Append( LocalStr, ' ' );
  63. FOR cnt := 0 TO 15 DO
  64. IF cnt IN TheSet THEN
  65. StrEdit.Append( LocalStr, '1' );
  66. ELSE
  67. StrEdit.Append( LocalStr, '0' );
  68. END;
  69. END;
  70. ErrorManager.WARN( LocalStr );
  71. END diagB;
  72. PROCEDURE diagS(str1, str2 : ARRAY OF CHAR);
  73. VAR
  74. LocalStr: ARRAY [0..255] OF CHAR;
  75. dummy, lngth: CARDINAL;
  76. tmpadr: SYSTEM.ADDRESS;
  77. BEGIN
  78. M2Strings.Assign( str1, LocalStr );
  79. StrEdit.Append( LocalStr, ' "' );
  80. StrEdit.Append( LocalStr, str2 );
  81. StrEdit.Append( LocalStr, '"' );
  82. ErrorManager.WARN( LocalStr );
  83. (*
  84. tmpadr := SYSTEM.ADR(LocalStr);
  85. lngth := M2Strings.Length(LocalStr);
  86. dummy := FAPI.DOSWRITE( 1, tmpadr, lngth, SYSTEM.ADR(dummy) );
  87. *)
  88. END diagS;
  89. PROCEDURE diagC(str1 : ARRAY OF CHAR; TheCard : CARDINAL);
  90. VAR
  91. LocalStr: ARRAY [0..79] OF CHAR;
  92. dummy : ARRAY [0..5] OF CHAR;
  93. BEGIN
  94. M2Strings.Assign( str1, LocalStr );
  95. StrEdit.Append( LocalStr, ': ' );
  96. StrConv.CardinalToStr(TheCard, 0, dummy);
  97. StrEdit.Append( LocalStr, dummy );
  98. ErrorManager.WARN( LocalStr );
  99. END diagC;
  100. PROCEDURE diagI(str1 : ARRAY OF CHAR; TheInt :
  101. INTEGER);
  102. VAR
  103. LocalStr: ARRAY [0..79] OF CHAR;
  104. dummy : ARRAY [0..5] OF CHAR;
  105. BEGIN
  106. M2Strings.Assign( str1, LocalStr );
  107. StrEdit.Append( LocalStr, ': ' );
  108. StrConv.IntegerToStr(TheInt, 0, dummy);
  109. StrEdit.Append( LocalStr, dummy );
  110. ErrorManager.WARN( LocalStr );
  111. END diagI;
  112. PROCEDURE diagL(str1 : ARRAY OF CHAR; TheLong : LONGINT);
  113. VAR
  114. LocalStr: ARRAY [0..79] OF CHAR;
  115. KeyHit: CARDINAL;
  116. dummy : ARRAY [0..15] OF CHAR;
  117. BEGIN
  118. M2Strings.Assign( str1, LocalStr );
  119. StrEdit.Append( LocalStr, ': ' );
  120. StrConv.LongIntegerToStr(TheLong, 0, dummy);
  121. StrEdit.Append( LocalStr, dummy );
  122. ErrorManager.WARN( LocalStr );
  123. END diagL;
  124. PROCEDURE diagBlock( str1 : ARRAY OF CHAR; TheAddr : SYSTEM.ADDRESS;
  125. TheSize: CARDINAL );
  126. VAR
  127. fhandle: CARDINAL;
  128. tmpstr: ARRAY [0..15] OF CHAR;
  129. BEGIN
  130. HandleIO.OpenForAppending( 'tmp.txt', fhandle );
  131. StrConv.CardinalToStr( TheSize, 0, tmpstr );
  132. StringIO.WriteEol( fhandle, '' );
  133. StringIO.WriteStr( fhandle, str1 );
  134. StringIO.WriteStr( fhandle, '; ' );
  135. StringIO.WriteStr( fhandle, tmpstr );
  136. StringIO.WriteEol( fhandle, ' bytes:' );
  137. IF 0 # HandleIO.BlockWrite( fhandle, TheAddr, TheSize ) THEN END;
  138. IF 0 # HandleIO.CloseHandle( fhandle ) THEN END;
  139. END diagBlock;
  140. PROCEDURE CheckList( TheList: GenLists.GenList );
  141. VAR
  142. DataSize, TotalElems, TotalSize: LONGINT;
  143. TotalSubs: CARDINAL;
  144. BEGIN
  145. (*
  146. DataSize := Storage.MemoryInUse;
  147. TotalSize := Storage.MaxMemoryUsed;
  148. *)
  149. DataSize := GenLists.ListSize( TheList, TotalElems,
  150. TotalSubs, TotalSize );
  151. END CheckList;
  152. BEGIN
  153. Initialized := FALSE;
  154. Init();
  155. END Diagnostics.