home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / MBUG / MBUG077.ARC / SCRNHND.FDC < prev    next >
Text File  |  1979-12-31  |  3KB  |  108 lines

  1. const
  2.   Red     = 1;
  3.   Green   = 2;
  4.   Blue    = 4;
  5.   Yellow  = 3;
  6.   Cyan    = 6;
  7.   Black   = 0;
  8.   White   = 7;
  9.   Mag     = 5;
  10.   BackG   = Black;
  11.   COLPORT = $08;
  12.   ColSt   = $F800;
  13.   ColEnd  = $FFFF;
  14.  
  15.   SelectPort = $C;
  16.   DataPort   = $D;
  17.   SCNMinMemReqd = 1024;  {1k}
  18. Type
  19.   SCNNextWindowPtr = ^SCNNextWindowRec;
  20.   SCNNextWindowRec = Record
  21.     NextWindow : SCNNextWindowPtr;
  22.     XStart,
  23.     YStart,
  24.     XEnd,
  25.     YEnd,
  26.     XCursPos,
  27.     YCursPos : Byte;
  28.     Data     : ^Char;
  29.    End;
  30. Var SCNInverse,
  31.     SCNBorderMode,
  32.     SCNRangeCheck,
  33.     SCNColour,
  34.     SCNFlashing : Boolean;
  35.     SCNXPos , SCNYPos ,
  36.     SCNXStart , SCNXEnd , SCNYStart , SCNYEnd : byte;
  37.  
  38.     SCNStartLine,
  39.     SCNEndLine : byte;
  40.     ScnScreen : Array[ 1..25 , 1..80 ] of Char Absolute $F000;
  41.     SCNColRam : Array[ 1..25 , 1..80 ] of char absolute ColSt;
  42.     SCNFirstWindow : SCNNextWindowPtr;
  43.  
  44. Procedure SetWindowColours( BCol , FCol : byte );Forward;
  45. Procedure SetUpCols(BCol , FCol , X1 , y1 , X2 , y2: integer);Forward;
  46.  
  47. Function SCNReadPort( PortNo : byte ) : byte;Forward;
  48. Procedure SCNSetPort( PortNo , Value : Byte );Forward;
  49. Procedure SCNInitSizes;Forward;
  50. Procedure TurnOnCurs;Forward;
  51. Procedure TurnOffCurs;Forward;
  52. Function ActXStart : byte;Forward;
  53. Function ActXEnd : byte;Forward;
  54. Function ActYStart : byte;Forward;
  55. Function ActYEnd : byte;Forward;
  56.  
  57. Function RXPos : byte ;
  58. Begin
  59.   RXPos := Pred( SCNXPos + SCNXStart );
  60. End;
  61. Function RYPos : Byte;
  62. Begin
  63.   RYPos := Pred( SCNYPos + SCNYStart );
  64. End;
  65.  
  66. Procedure PutCurs( X , Y : byte );Forward;
  67. Procedure ScreenInit;Forward;
  68.  
  69. Procedure LowVideo;
  70. Begin
  71.   SCNInverse := True;
  72. End;
  73. Procedure NormVideo;
  74. Begin
  75.   SCNInverse := False;
  76. End;
  77. Procedure SetBorderMode;
  78. Begin
  79.   SCNBorderMode := True;
  80. End;
  81. Procedure ResetBorderMode;
  82. Begin
  83.   SCNBorderMode := False;
  84. End;
  85.  
  86. Procedure ClearScreen;Forward;
  87. Procedure ClearEOL;Forward;
  88. Procedure InsertLine;Forward;
  89. Procedure DeleteLine;Forward;
  90. Procedure InsertChar;Forward;
  91. Procedure DeleteChar;Forward;
  92. Procedure DoWrite( Str : String80 );Forward;
  93. Procedure DoWriteln( Str : String80 );Forward;
  94. Procedure NMDoWrite( X,Y : byte ; Str : String80 );Forward;
  95. Procedure RNMDoWrite( X,Y : byte ; Str : String80 );Forward;
  96. Procedure CentreText( Str : String80 ; Y : Byte );Forward;
  97. Procedure SetFlash;Forward;
  98. Procedure SetBlock;Forward;
  99. Procedure SetSize( TopLine , BotLine : byte );Forward;
  100. Function CreateWindow( x1 , y1 , x2 , y2 : byte ): byte;Forward;
  101. Function RestoreWindow : byte;Forward;
  102.  
  103. Procedure RestoreAll;
  104. Begin
  105.   While RestoreWindow <> 0 do;
  106. End;
  107.  
  108. Procedure DrawBorder;Forward;