
  { This type declaration is used to describe a window on the system console.  Each window descriptor contains
  { a window id and a pointer to the next window descriptor.  All of the windows are linked together.  Two of
  { the descriptor's entries are used to contain the physical console row numbers at which the window starts
  { and ends.  The console can be preceived as an array of rows, the first row at the top of the console is
  { referred to as ROW 1 and the last row is referred to as ROW 30.  The starting_console_row_number contains
  { the row number at which the window starts and the ending_console_row_number contains the row number at
  { which the window ends.

  { Each window can have, at most, 30 lines associated with that window.  These lines are also numbered 1 to
  { 30.  The present_window_line_number contains the number that corresponds to the most recent window line
  { to receive data.  The next PUT will place the data in the present window line number plus one.  Table
  { windows do not use this field.

  { Table windows are used differently then the other window kinds.  They also contain 30 lines in the
  { descriptor but they usually have a 'file' of data associated with the table.  A procedure takes 30 lines
  { at a time from the file and places them in the window descriptor.  This allows for the UP, DOWN, FWD, BKW
  { function keys to be used to 'view' the whole file.  The user does not realize that the window only has 30
  { lines.  The table_starting_line_in_window contains the line of the file that will appear at the first
  { console row of the window.  The table_last_line_used_in_window contains the line of the file that was the
  { last window line to have received data.  The table_next_available_line is the next line of the file to be
  { used.

  TYPE
    dpt$window = RECORD
      next_window_p: ALIGNED [0 MOD 4096] ^dpt$window,
      window_id: dpt$window_id,
      starting_console_row_number: dpt$number_of_console_rows,
      ending_console_row_number: dpt$number_of_console_rows,
      true_class: dpt$window_class,
      class: dpt$window_class,
      kind: dpt$window_kind,
      table_starting_line_in_window: integer,
      table_last_line_used_in_window: integer,
      table_next_available_line: integer,
      present_window_line_number: dpt$number_of_window_lines,
      title: dpt$console_line,
      input_line: dpt$console_line,
      lines: ARRAY [1 .. dpc$number_of_window_lines] OF dpt$console_line,
    RECEND;

*copyc dpt$console_line
*copyc dpt$number_of_console_rows
*copyc dpt$number_of_window_lines
*copyc dpt$window_class
*copyc dpt$window_id
*copyc dpt$window_kind
