home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug077.arc / SCRNHND.DOC < prev    next >
Text File  |  1979-12-31  |  8KB  |  164 lines

  1.                     DOCUMENTATION FOR SCREEN HANDLER
  2.  
  3. Screeε handle≥ i≤ ß useful∞ anΣ fas⌠ screeε handle≥ fo≥ usσ withiε Turb∩ ì
  4. Pascal«  I⌠ replace≤ al∞ standarΣ I╧ routine≤ iε Turbo¼ includinτ Write¼ ì
  5. Writeln, Gotoxy, LowVideo, NormVideo, ClrEol, ClrScr etc.
  6.      Therσá arσ ß numbe≥ oµ advantage≤ wheε usinτ ScrnHnd«á  Onσ i≤á thσ ì
  7. speeΣ oµ execution«á  N∩ test≤ havσ beeε made¼ bu⌠ increase≤ iε speeΣ oµ ì
  8. u≡á t∩ 10░ time≤ coulΣ bσ expected«á  Thσ routine≤ als∩ usσ thσ hardwarσ ì
  9. cursor¼á allowinτá fo≥ flashinτ anΣ differen⌠ sizσ cursors¼á a≤ wel∞á a≤ ì
  10. eas∙ method≤ oµ turninτ oε anΣ ofµ thσ cursor«á   ScrnHnΣ als∩á support≤ ì
  11. colour, (if fitted ).
  12.      
  13. USE OF SCRNHND.
  14.      ScrnhnΣá come≤ iε tw∩ files«á  Thσ firs⌠ onσ (SCRNHND.FDC⌐ contain≤ ì
  15. FORWAR─áá declaration≤á fo≥á thσá maiεá routines«áá  Thσáá seconΣáá filσ ì
  16. (SCRNHND.FWD⌐á contain≤ thσ routine≤ themselves«á  Thσ reasoε fo≥á doinτ ì
  17. thi≤á i≤ s∩ thσ bulδ oµ thσ routine≤ caε bσ compileΣ a⌠ thσ enΣ oµá you≥ ì
  18. program«á  Placσá aεá includσá filσ fo≥ SCRNHND.FD├ a⌠ thσá to≡á oµá thσ ì
  19. prograφá (in thσ firs⌠ includσ files)¼á anΣ iε includσ a⌠ thσ enΣ oµá thσ ì
  20. program for the second. (ie, just before the main program block).
  21.  
  22. An assumption is made that you have a TYPE declaration
  23. String80 = String[ 80 ]; 
  24. placed in your program before the first file in included.
  25.  
  26. PROCEDURES AVAILABLE WITHIN SCRNHND.
  27. Below is a list of procedures available.
  28.  
  29. ScreenInitá    Thi≤ initialize≤ thσ ScrnHnΣ routines«  Thi≤ mus⌠ bσ ì
  30. ááááááááááááááácalleΣ oncσ fo≥ eacΦ prograφ beforσ an∙ attemp⌠ i≤ madσ ì
  31. áááááááááááááááto use any of the routines.
  32.  
  33. ClearScreenááááUseΣ t∩ clea≥ thσ curren⌠ windo≈ areß (initially¼ th≈ ì
  34. áááááááááááááááwhole screen).  Use in place of ClrScr;
  35.  
  36. ClearEOL       UseΣ t∩ clea≥ froφ thσ curren⌠ curso≥ positioε t∩ thσ enΣ ì
  37. áááááááááááááááoµ thσ curren⌠ window« (initially¼ thσ righ⌠ hanΣ sidσ oµ ì
  38. áááááááááááááááthe screen.
  39.  
  40. InsertLine     Insert a line at the current cursor position.
  41. DeleteLine     Delete a line from the current cursor position.
  42. InsertChar     Insert a blank character at the current cursor position.
  43. DeleteChar     Delete a character from the current cursor position.
  44.  
  45. DoWrite( Str : String80 );
  46.                Replacemen⌠ fo≥ WRITE«  Usσ thi≤ procedurσ t∩ placσ tex⌠ ì
  47. áááááááááááááááoε thσ screeε a⌠ thσ curren⌠ curso≥ position«  Afte≥ ì
  48. áááááááááááááááplacinτ thσ tex⌠ oε thσ screen¼ thσ curso≥ wil∞ movσ t∩ ì
  49. áááááááááááááááthσ enΣ oµ thσ text«  Pleasσ notσ tha⌠ iµ thσ tex⌠ flow≤ ì
  50. ááááááááááááááápas⌠ thσ enΣ oµ thσ curren⌠ window¼ i⌠ wil∞ "wrapó t∩ thσ ì
  51. ááááááááááááááánex⌠ line«  Iµ thσ tex⌠ flow≤ ofµ thσ bottoφ oµ thσ ì
  52. ááááááááááááááácurren⌠ window¼ N╧ scrollinτ wil∞ occur«  PLEAS┼ NOTE«  ì
  53. áááááááááááááááThi≤ procedurσ i≤ fa≥ morσ restricteΣ thaε thσ standarΣ ì
  54. áááááááááááááááWRIT┼ procedure«  Thi≤ procedurσ wil∞ takσ onl∙ onσ ì
  55. áááááááááááááááparameter¼ anΣ i⌠ mus⌠ bσ ß string«  Therefore¼ t∩ writσ ìèáááááááááááááááaε intege≥ o≥ rea∞ t∩ thσ screen¼ i⌠ i≤ necessar∙ t∩ ì
  56. áááááááááááááááconver⌠ i⌠ t∩ ß string«  Thi≤ procedurσ i≤ reasonabl∙ ì
  57. áááááááááááááááslow¼ a≤ i⌠ check≤ fo≥ specia∞ contro∞ characters¼ sucΦ ì
  58. áááááááááááááááas ^M,^G,^J,^H, and acts accordingly.
  59.  
  60. DoWriteln( Str : String80 );
  61.                Thi≤ i≤ thσ samσ a≤ DoWrite¼ excep⌠ tha⌠ thσ curso≥ i≤ ì
  62. ááááááááááááááápu⌠ ßt the start of the next line after the write.
  63.  
  64. NMDoWrite( X,Y : byte ; Str : String80 );
  65.                Thi≤ procedurσ wil∞ pu⌠ thσ strinτ a⌠ thσ X,┘ positioε ì
  66. áááááááááááááááwithiε thσ curren⌠ window«  Thσ curso≥ i≤ no⌠ moved¼ anΣ ì
  67. ááááááááááááááán∩ contro∞ character≤ arσ checkeΣ for«  Thi≤ procedurσ i≤ ì
  68. ááááááááááááááávery fast.
  69.  
  70. Procedure RNMDoWrite( X,Y : byte ; Str : String80 );
  71.                Thi≤ procedurσ i≤ ver∙ simila≥ t∩ thσ onσ above¼ excep⌠ ì
  72. ááááááááááááááátha⌠ thσ X,┘ coordinate≤ arσ no⌠ withiε thσ curren⌠ ì
  73. áááááááááááááááwindow¼ bu⌠ REA╠ coordinate≤ (ie¼ froφ thσ to≡ lef⌠ ì
  74. ááááááááááááááácorne≥ oµ thσ screen«  Notσ tha⌠ iµ n∩ window≤ arσ ì
  75. áááááááááááááááactive, these 2 procedures are identical.
  76.  
  77. Procedure CentreText( Str : String80 ; Y : Byte );
  78.                Thi≤ procedurσ wil∞ placσ thσ strinτ a⌠ thσ centrσ oµ thσ ì
  79. ááááááááááááááácurren⌠ window at line "Y".
  80.  
  81. Procedure SetFlash;
  82. áááááááááááááááThi≤ procedurσ wil∞ se⌠ thσ curso≥ t∩ flashing«  Thi≤ i≤ ì
  83. áááááááááááááááthe default.
  84.  
  85. Procedure SetBlock;
  86. áááááááááááááááThis procedure will set a block (ie no flashing) cursor.
  87.  
  88. Procedure SetSize( TopLine , BotLine : byte );
  89.                Thi≤ procedurσ allow≤ yo⌡ t∩ definσ thσ sizσ oµ thσ ì
  90. ááááááááááááááácursor.
  91.  
  92. Function CreateWindow( x1 , y1 , x2 , y2 : byte ): byte;
  93.                Thi≤ FUNCTIO╬ wil∞ creatσ ß windo≈ a⌠ thσ position≤ ì
  94. ááááááááááááááádefineΣ b∙ thσ parameters«  X1,Y▒ i≤ thσ to≡ lef⌠ corne≥ ì
  95. áááááááááááááááoµ thσ window¼ anΣ x2,y▓ i≤ thσ bottoφ righ⌠ corner«  Thσ ì
  96. ááááááááááááááávaluσ thσ functioε return≤ i≤ thσ numbe≥ oµ thσ window« ì
  97. ááááááááááááááá(ie¼ thσ firs⌠ onσ wil∞ returε 1¼ seconΣ 2¼ etc)«  Iµ ì
  98. ááááááááááááááátherσ i≤ no⌠ enougΦ memor∙ availablσ t∩ creatσ thσ ì
  99. áááááááááááááááwindow, it will return 0.
  100.  
  101. Function RestoreWindow : byte;
  102. áááááááááááááááThi≤ FUNCTIO╬ wil∞ restorσ ONL┘ TH┼ LAS╘ CREATE─ WINDOW«  ì
  103. áááááááááááááááThσ functioε wil∞ returε thσ numbe≥ oµ thσ windo≈ tha⌠ ì
  104. áááááááááááááááwa≤ restored«  Iµ zer∩ i≤ returned¼ theσ i≤ n∩ windo≈ t∩ ì
  105. ááááááááááááááárestore«  Notσ tha⌠ al∞ screeε anΣ colou≥ informatioε i≤ ì
  106. ááááááááááááááárestored, but no PCG or ATTRIBUTE data is stored.
  107.  
  108. Procedure RestoreAll
  109.                This procedure will restore all active windows.èProcedure DrawBorder;
  110.                Thi≤ procedurσ wil∞ dra≈ ß borde≥ arounΣ thσ curren⌠ ì
  111. áááááááááááááááwindow«  Notσ tha⌠ certaiε constant≤ arσ useΣ fo≥ thui≤ ì
  112. áááááááááááááááprocedure¼ anΣ thesσ ma∙ havσ t∩ bσ defined(o≥ modified⌐ ì
  113. áááááááááááááááb∙ yo⌡ beforσ thi≤ procedurσ wil∞ work«  Usσ PCGE─ (als∩ ì
  114. áááááááááááááááavailable on MBBS) to create new border characters.
  115.  
  116. Procedure TurnOnCurs;
  117.                Thi≤ procedurσ wil∞ turε oε thσ cursor«  Thi≤ i≤ thσ ì
  118. ááááááááááááááádefault.
  119.  
  120. Procedure TurnOffCurs;
  121. áááááááááááááááThis procedure will turn OFF the cursor.
  122.  
  123. Procedure PutCurs( X , Y : byte );
  124.                Thi≤ wil∞ placσ thσ curso≥ a⌠ thσ X,┘ positioε WITHI╬     ì
  125. áááááááááááááááTH┼ CURREN╘ WINDOW
  126.  
  127. Procedure LowVideo;
  128.                Thi≤ procedurσ wil∞ causσ resultinτ DoWritσ etπ ì
  129. ááááááááááááááástatement≤ t∩ bσ printeΣ iε inversσ (a≤ pe≥ standarΣ ì
  130. áááááááááááááááLowVideo).
  131.  
  132. Procedure NormVideo;
  133.                As per standard NormVideo;
  134.  
  135. Procedure SetBorderMode;
  136.                Thi≤ procedurσ wil∞ se⌠ u≡ BorderMode«  Iµ thσ modσ i≤ ì
  137. áááááááááááááááactive¼ n∩ DoWrite'≤ DoWriteln's¼ ClearEOL¼ DeleteCha≥ ì
  138. áááááááááááááááetπ wil∞ bσ alloweΣ t∩ overwritσ thσ borde≥ characters«  ì
  139. áááááááááááááááAlso¼ wheε CreateWindo≈ i≤ called¼ ß borde≥ wil∞ ì
  140. áááááááááááááááautomatically be drawn. 
  141.  
  142. Procedure ResetBorderMode;
  143.                This procedure will RESET the BorderMode.
  144.  
  145. Procedure SetWindowColours( BCol , FCol : byte );
  146.                Thi≤ procedurσ wil∞ se⌠ thσ colour≤ oµ thσ curren⌠ ì
  147. áááááááááááááááwindow«  BCO╠ i≤ thσ BackgrounΣ colou≥ tha⌠ wil∞ bσ set¼ ì
  148. áááááááááááááááanΣ FCO╠ i≤ thσ Forσ grounΣ colour«  Thσ followinτ pre-ì
  149. ááááááááááááááádefined constants may be used.
  150. áááááááááááááááRED, GREEN, BLUE, YELLOW, CYAN, BLACK, WHITE.
  151.  
  152. Procedure SetUpCols(BCol , FCol , X1 , y1 , X2 , y2: integer);
  153.                Thi≤ i≤ ver∙ simila≥ t∩ thσ above¼ excep⌠ tha⌠ thσ areß t∩ bσ ì
  154. áááááááááááááááse⌠ caε bσ specified«  Pleasσ notσ tha⌠ iε botΦ procedures¼ ß ì
  155. áááááááááááááááchecδ i≤ madσ t∩ seσ iµ colou≥ i≤ fitted¼ anΣ iµ not¼ thσ ì
  156. ááááááááááááááástatement will be ignored.
  157.  
  158. The concept of windows:
  159.                Iε al∞ oµ thσ abovσ discussions¼ thσ X,┘ position≤ relatσ t∩ ì
  160. thσ CURREN╘ WINDO╫ only«  Initially¼ thi≤ i≤ thσ entirσ screen«  E╟ ì
  161. ClearScreeε etπ wil∞ onl∙ clea≥ thσ curren⌠ window¼ no⌠ necessaril∙ thσ ì
  162. entire screen.
  163. èPleasσ havσ ß looδ a⌠ thσ SCRNTST.PA╙ fo≥ ß shor⌠ examplσ oµ ho≈ thi≤ caε bσ ì
  164. used.