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 / CPM / EDUCATIN / K-CHING.LBR / STATUSLN.DZF / STATUSLN.DEF
Text File  |  2000-06-30  |  4KB  |  108 lines

  1. DEFINITION MODULE StatusLn;
  2. FROM Terminal IMPORT WriteString, GotoXY, ReadChar, WriteChar;
  3. FROM Strings IMPORT Append, Length, Copy, Insert, Delete;
  4.  
  5.  
  6. PROCEDURE CursorRecall(Mem: BOOLEAN);
  7.     (* If Mem is TRUE current cursor position is remembered
  8.     If Mem is FALSE  the cursor is returned to previously membered position!*)
  9.  
  10. PROCEDURE PreserveStatusLine(Mem: BOOLEAN);
  11.     (* I've got no idea what this function does. It's just mentioned
  12.     briefly in the Kaypro manual. In case I ever want to use it...
  13.     TRUE turns preservation on, FALSE turns it off. WOW! *)
  14.  
  15. PROCEDURE GotoStatusX(x: CARDINAL);
  16.     (* Gets around m2's inability [ie BUG] to write to the status line
  17.     and have the editor behave as well by writing a Kaypro excape sequence
  18.     Notice that the statusline scrolls after every LF, so a WriteLn following
  19.     this routine will note give lasting results. Also, the cursor MUST be
  20.     dragged out of the statusline back to its proper position in the text
  21.     before continuing normal text output *)
  22.  
  23. PROCEDURE Blank(x: CARDINAL);
  24.     (* Blanks the screen and homes cursor if x=0
  25.     If x>99 prints x DIV 100 LINEFEEDS
  26.     then prints 1-99 [x MOD 100] blanks at current position
  27.     *)
  28.  
  29. PROCEDURE ErrorMessage(s: ARRAY OF CHAR);
  30.     (* Writes an errormessage to the programmer.
  31.     Program Execution can be halted at this point by pressing ^C
  32.     *)
  33.  
  34. PROCEDURE InputED(VAR StringToEdit: ARRAY OF CHAR; Prompt: ARRAY OF CHAR;
  35.                   MaxLength   : CARDINAL) ;
  36.     (* This little gem enables you to input with editing, starting from
  37.     scratch [''] or from an assigned default StringToEdit.
  38.     Prompt is usually = '>' or '?'.
  39.  
  40.         <CR> with the cursor in col zero returns the original StringToEdit,
  41.         ignoring any changes that have been made during the procedure.
  42.  
  43.         <CR> anywhere else truncates the string at the character before the
  44.         cursor and returns that value.
  45.  
  46.         <ESC> returns the entire string as displayed, regardless of cursor
  47.         position.
  48.  
  49.         <DEL> Deletes the Char to the left of the cursor and closes the gap
  50.  
  51.         <TAB> (^I) Inserts a space at the current cursor position.
  52.  
  53.         <LEFTARROW> (^H or ^S) performs nondestructive backspace.
  54.  
  55.         <RIGHTARROW> (^L or ^D) performs nondestructive aheadspace upto
  56.         MaxLength.
  57.  
  58.         ^C halts the program.
  59.  
  60.         All printable characters are accepted into the displayed string,
  61.         overwriting the character under the cursor and advancing one position.
  62.  
  63.     If the Default StringToEdit is longer than MaxLength, it is truncated.
  64.     MaxLength MUST be <80.
  65.     Trailing blanks are stripped from result.
  66.  
  67.     *)
  68.  
  69. PROCEDURE HitAny;
  70.     (*
  71.     Calls a temporary halt in execution with the prompt
  72.     "Press ANY key to continue" on the statusline.
  73.     ^C will abort the program.
  74.     Cursor is returned to screenposition it occupied prior to HitAny
  75.     *)
  76.  
  77. PROCEDURE UserWantsTo(Question: ARRAY OF CHAR): BOOLEAN;
  78.     (*
  79.     Cleverly worded PROCEDURE name forms an English phrase with clear meaning
  80.     if Question is worded to complete the option being queried:
  81.     e.g.
  82.         IF UserWantsTo('Continue') THEN . . . ELSE HALT;
  83.     displays
  84.         Continue? (Y/n)
  85.     on the statusline. N,n,<ESC>= FALSE. ^C aborts. Y,y,<SP>,<CR> = TRUE.
  86.     Nothing else is accepted.
  87.     Cursor is remembered and replaced.
  88.     NB: This function supplies its own questionmark!!
  89.     *)
  90.  
  91. PROCEDURE Copyright
  92.     (ProgramName,Version,Date: ARRAY OF CHAR; PrivateDomain: BOOLEAN);
  93.     (*
  94.     Generates an opening screen with a boxed copyright notice, address,
  95.     and version number. If PrivateDomain is FALSE, program is ceded to
  96.     the Public Domain.
  97.     ProgramName may be upto 80CHARs long and is displayed centered in a
  98.     prominant position. To ensure fit, Date should be 4-10 chars eg '1987'
  99.     *)
  100.  
  101. PROCEDURE Notice(s: ARRAY OF CHAR);
  102.     (*Blanks the Statusline then writes the message s to the statusline.
  103.     Returns Cursor to precall position on exit.
  104.     *)
  105.  
  106.  
  107. END StatusLn.
  108.