Home » CEEFAX disks » telesoftware15.adl » 06-05-89/SINE_PRN

06-05-89/SINE_PRN

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » CEEFAX disks » telesoftware15.adl
Filename: 06-05-89/SINE_PRN
Read OK:
File size: 283E bytes
Load address: 0000
Exec address: FFFFFFFF
File contents
Pro Pascal Compiler - Version iid 3.1

Compilation of: SINEDEMO.PAS

Options:    LNE

    1   PROGRAM sinedemo;
    2   
    3   { This program draws a sine wave, using PASPC graphics.
    4   
    5     Date: 8 June 1988
    6     Copyright (c) 1988 Prospero Software }
    7   
    8   {$i paspc}
    9   CONST
   10   
   11   	        {colors}
   12       Black = 0;          DarkGrey = 8;
   13       Blue = 1;           LightBlue = 9;
   14       Green = 2;          LightGreen = 10;
   15       Cyan = 3;           LightCyan = 11;
   16       Red = 4;            LightRed = 12;
   17       Magenta = 5;        LightMagenta = 13;
   18       Brown = 6;          Yellow = 14;
   19       LightGrey = 7;      White = 15;
   20       LightGray = 7;      DarkGray = 8;
   21   
   22   	        { modes }
   23       BW40Text = 0;       C40Text = 1;
   24       BW80Text = 2;       C80Text = 3;
   25       CGAGraph = 4;       BWGraph = 5;
   26       CGAHiRes = 6;       MonoText = 7;
   27       ECGraph = 13;       ECHiRes = 14;
   28       EBWGraph = 15;      EGAGraph = 16;
   29   
   30   TYPE
   31   
   32       AdaptorType = (AdapUnknown,MonoAdap,CGAdap,EGAdap);
   33   
   34       TextRange = 1..80;
   35       GraphRange = 0..639;
   36   
   37       ModeRange = BW40Text..EGAGraph;
   38       PageRange = 0..8;
   39       ColorRange  = Black..White;
   40       ColourRange = Black..White;
   41       DarkColorRange  = Black..LightGrey;
   42       DarkColourRange = Black..LightGrey;
   43   
   44   
   45   PROCEDURE AwaitRetrace;  external;
   46   PROCEDURE PutChar (ch: char; rep: word);  external;
   47   PROCEDURE PutChattr (ch: char; paper: DarkColorRange;
   48   	             ink: ColorRange; rep: word);  external;
   49   PROCEDURE ScreenFile (VAR f: text);  external;
   50   
   51   PROCEDURE Plot (x,y: GraphRange; color: ColorRange);  external;
   52   FUNCTION Pixel (x,y: GraphRange): ColorRange;  external;
   53   
   54   PROCEDURE CursorOn;  external;
   55   PROCEDURE CursorOff;  external;
   56   FUNCTION Adaptor: AdaptorType;  external;
   57   FUNCTION ScreenMode: ModeRange;  external;
   58   PROCEDURE SetScreenMode (mode: ModeRange);  external;
   59   PROCEDURE ClrVideo;  external;
   60   PROCEDURE ink (i: ColorRange);  external;
   61   PROCEDURE paper (p: DarkColorRange);  external;
   62   PROCEDURE InitScreen;  external;
   63   
   64   PROCEDURE TextWindow (x1,y1,x2,y2: TextRange);  external;
   65   PROCEDURE GotoXY (x,y: TextRange);  external;
   66   FUNCTION WhereX: TextRange;  external;
   67   FUNCTION WhereY: TextRange;  external;
   68   FUNCTION CharXY: char;  external;
   69   FUNCTION AttrXY: byte;  external;
   70   PROCEDURE CursorShape (top,bottom: byte);  external;
   71   PROCEDURE ClrEol;  external;
   72   PROCEDURE ClrScr;  external;
   73   FUNCTION KeyPressed: boolean;  external;
   74   FUNCTION EscapeKey: boolean;  external;
   75   PROCEDURE GetKeyboard (VAR ch: char; VAR scancode: byte);  external;
   76   FUNCTION KeyFlags: byte;  external;
   77   
   78   PROCEDURE DisplayPage (page: PageRange);  external;
   79   PROCEDURE UpdatePage (page: PageRange);  external;
   80   PROCEDURE ScrollUp (NLines: TextRange);  external;
   81   PROCEDURE ScrollDown (NLines: TextRange);  external;
   82   PROCEDURE DelLine;  external;
   83   PROCEDURE InsLine;  external;
   84   
   85   PROCEDURE TextFrame (double: boolean);  external;
   86   
   87   PROCEDURE EditString (VAR st: string; index,len: TextRange); external;
   88   
   89   	        { coordinate graphics }
   90   
   91   PROCEDURE CGAColour (color: ColorRange);  external; (*These two procedures*)
   92   PROCEDURE CGAColor (color: ColorRange);  external;  (*have the same effect*)
   93   PROCEDURE CGAPalette (palette: byte);  external;
   94   PROCEDURE EGAPalette (register,shade: byte);  external;
   95   PROCEDURE EGABorder (shade: byte);  external;
   96   PROCEDURE EGABlink (on: boolean);  external;
   97   PROCEDURE GraphWindow (x1,y1,x2,y2: GraphRange);  external;
   98   PROCEDURE ClipOn;  external;
   99   PROCEDURE ClipOff;  external;
  100   PROCEDURE XOROn;  external;
  101   PROCEDURE XOROff;  external;
  102   PROCEDURE Draw (x1,y1,x2,y2: GraphRange;
  103   	        color: ColorRange);  external;
  104   
  105   PROCEDURE GraphFrame (color: ColorRange);  external;
  106   PROCEDURE Circle (XCentre,YCentre,Radius: GraphRange;
  107   	          color: ColorRange);  external;
  108   PROCEDURE FillArea (x1,y1,x2,y2: GraphRange;
  109   	            color: ColorRange);  external;
  110   PROCEDURE FillWindow (color: ColorRange);  external;
  111   PROCEDURE FillShape (XStart,YStart: GraphRange;
  112   	               fill,border: ColorRange);  external;
  113   
  114   	{Turtle graphics}
  115   
  116   CONST   North = 0;      East = 90;
  117   	South = 180;    West = 270;
  118   
  119   TYPE    degrees = integer2;
  120   
  121   PROCEDURE SetPenColor (color: ColorRange);  external;
  122   PROCEDURE PenDown;  external;
  123   PROCEDURE PenUp;  external;
  124   PROCEDURE SetHeading (angle: degrees);  external;
  125   FUNCTION Heading: degrees;  external;
  126   PROCEDURE TurnLeft (angle: degrees);  external;
  127   PROCEDURE TurnRight (angle: degrees);  external;
  128   PROCEDURE SetPosition (x,y: integer2);  external;
  129   PROCEDURE TurtleHome;  external;
  130   FUNCTION XCor: integer2;  external;
  131   FUNCTION YCor: integer2;  external;
  132   PROCEDURE TurtleWindow (XCentre,YCentre,
  133   	                Width,Height: GraphRange);  external;
  134   PROCEDURE Forwd (dist: integer2);  external;
  135   PROCEDURE Back (dist: integer2);  external;
  136   
  137   	        { save and restore }
  138   
  139   TYPE  bytefile = FILE OF byte;
  140   
  141   PROCEDURE PushWindow;  external;
  142   PROCEDURE PopWindow;  external;
  143   PROCEDURE PopImage;  external;
  144   
  145   PROCEDURE PrintWindow;  external;
  146   PROCEDURE PrintScreen;  external;
  147   
  148   PROCEDURE SaveWindow (VAR f: bytefile);  external;
  149   PROCEDURE SaveScreen (VAR f: bytefile);  external;
  150   PROCEDURE RestoreWindow (VAR f: bytefile);  external;
  151   PROCEDURE RestoreScreen (VAR f: bytefile);  external;
  152   
  153   
  154   	                { comms }
  155   
  156   CONST   Com1 = 0;   Com2 = 1;   Com3 = 2;
  157   
  158   PROCEDURE InitComm (port,baud,parity,lngth,stop: byte;
  159   	             VAR PortStatus,ModemStatus: byte);  external;
  160   PROCEDURE WriteComm (port,value: byte; VAR PortStatus: byte);  external;
  161   PROCEDURE ReadComm (port: byte; VAR value,PortStatus: byte);  external;
  162   PROCEDURE CommStatus (port: byte;
  163   	              VAR PortStatus,ModemStatus: byte);  external;
  164   
  165   	                { sound }
  166   
  167   PROCEDURE Sound (freq: word);  external;
  168   PROCEDURE SoundOff;  external;
  169   PROCEDURE Beep;  external;
  170   
  171   
  172   
  173   LABEL
  174       999 ;
  175       
  176   CONST
  177       pi = 3.1415826;
  178   
  179   VAR x_max, y_max, centre, height, i, border: integer2;
  180       scale: real; ch: char ; scan: byte ;
  181   
  182   PROCEDURE dodraw ( x1, y1, x2, y2: integer2; color: colorrange ) ;
  183   VAR temppos: integer2;
  184 + BEGIN
  185 *   CASE adaptor OF
  186 *     monoadap : BEGIN
  187 * 	         gotoxy ( x1, centre );
  188 * 	         putchar ( chr (196), 80-2*border );
  189 * 	         FOR temppos := y1 TO y2 DO
  190 * 	           BEGIN
  191 * 	             gotoxy ( x1, temppos ); 
  192 * 	             putchar ( chr (179), 1 );
  193 * 	           END {for};
  194 * 	         gotoxy ( x1, centre );
  195 * 	         putchar ( chr ( 195), 1 );
  196 * 	       END;
  197 *     otherwise draw ( x1, y1, x2, y2, color );
  198 +   END {case}
  199 + END {dodraw};
  200 + 
  201   PROCEDURE doplot ( x1, y1 : integer2; color: colorrange ) ;
  202   VAR specialchar: char;
  203 + BEGIN
  204 *   case adaptor of
  205 *     monoadap : BEGIN
  206 * 	         gotoxy (x1, y1);
  207 * 	         CASE color OF
  208 * 	           1 : specialchar := '*' ;
  209 * 	           3 : specialchar := 'o' ;
  210 * 	           otherwise specialchar := '+' ;
  211 + 	         END {case};
  212 * 	         putchar ( specialchar, 1 );
  213 * 	       END;
  214 *     otherwise plot ( x1, y1, color );
  215 +   END {case};
  216 * END {doplot};
  217 + 
  218 + BEGIN { main program }
  219 *   initscreen ;
  220 *   case adaptor of
  221 *     cgadap : BEGIN
  222 * 	       setscreenmode ( cgahires ) ;
  223 * 	       cgacolor ( green ) ;
  224 * 	       x_max := 639;
  225 * 	       y_max := 199;
  226 * 	       border := 10;
  227 * 	     END;
  228 *     egadap : BEGIN
  229 * 	       setscreenmode ( egagraph ) ;
  230 * 	       x_max := 639;
  231 * 	       y_max := 349;
  232 * 	       border := 10;
  233 * 	     END;
  234 *     monoadap : BEGIN
  235 * 	         x_max := 80;
  236 * 	         y_max := 25;
  237 * 	         border := 1;
  238 * 	       END;
  239 *     otherwise GOTO 999;
  240 +     END {case};
  241 +     
  242 *   centre := y_max DIV 2;
  243 *   height := centre - border;
  244 *   scale := 2 * pi / (x_max - 2*border);
  245 +   
  246 *   clrscr;
  247 *   dodraw(border, border, border, y_max - border, 1);
  248 *   IF adaptor <> monoadap THEN
  249 *     draw(border, centre, x_max - border, centre, 1);
  250 +       
  251 *   FOR i := 0 TO x_max - 2*border DO
  252 *     BEGIN
  253 *       doplot(i + border, trunc (centre + height * sin(i * scale)), 1);
  254 *       doplot(i + border, trunc (centre + height * sin(i * scale * 2)), 3);
  255 *       IF adaptor <> monoadap THEN
  256 * 	BEGIN
  257 * 	  plot(i + border, trunc (centre + height * sin(i * scale * 3)), 5);
  258 * 	  plot(i + border, trunc (centre + height * sin(i * scale * 4)), 7);
  259 * 	END;
  260 *     END;
  261 *   GetKeyboard ( Ch, Scan ) ;
  262 *   InitScreen ;
  263 + 999:
  264 * END.
00000000  50 72 6f 20 50 61 73 63  61 6c 20 43 6f 6d 70 69  |Pro Pascal Compi|
00000010  6c 65 72 20 2d 20 56 65  72 73 69 6f 6e 20 69 69  |ler - Version ii|
00000020  64 20 33 2e 31 0d 0a 0d  0a 43 6f 6d 70 69 6c 61  |d 3.1....Compila|
00000030  74 69 6f 6e 20 6f 66 3a  20 53 49 4e 45 44 45 4d  |tion of: SINEDEM|
00000040  4f 2e 50 41 53 0d 0a 0d  0a 4f 70 74 69 6f 6e 73  |O.PAS....Options|
00000050  3a 20 20 20 20 4c 4e 45  0d 0a 0d 0a 20 20 20 20  |:    LNE....    |
00000060  31 20 20 20 50 52 4f 47  52 41 4d 20 73 69 6e 65  |1   PROGRAM sine|
00000070  64 65 6d 6f 3b 0d 0a 20  20 20 20 32 20 20 20 0d  |demo;..    2   .|
00000080  0a 20 20 20 20 33 20 20  20 7b 20 54 68 69 73 20  |.    3   { This |
00000090  70 72 6f 67 72 61 6d 20  64 72 61 77 73 20 61 20  |program draws a |
000000a0  73 69 6e 65 20 77 61 76  65 2c 20 75 73 69 6e 67  |sine wave, using|
000000b0  20 50 41 53 50 43 20 67  72 61 70 68 69 63 73 2e  | PASPC graphics.|
000000c0  0d 0a 20 20 20 20 34 20  20 20 0d 0a 20 20 20 20  |..    4   ..    |
000000d0  35 20 20 20 20 20 44 61  74 65 3a 20 38 20 4a 75  |5     Date: 8 Ju|
000000e0  6e 65 20 31 39 38 38 0d  0a 20 20 20 20 36 20 20  |ne 1988..    6  |
000000f0  20 20 20 43 6f 70 79 72  69 67 68 74 20 28 63 29  |   Copyright (c)|
00000100  20 31 39 38 38 20 50 72  6f 73 70 65 72 6f 20 53  | 1988 Prospero S|
00000110  6f 66 74 77 61 72 65 20  7d 0d 0a 20 20 20 20 37  |oftware }..    7|
00000120  20 20 20 0d 0a 20 20 20  20 38 20 20 20 7b 24 69  |   ..    8   {$i|
00000130  20 70 61 73 70 63 7d 0d  0a 20 20 20 20 39 20 20  | paspc}..    9  |
00000140  20 43 4f 4e 53 54 0d 0a  20 20 20 31 30 20 20 20  | CONST..   10   |
00000150  0d 0a 20 20 20 31 31 20  20 20 09 20 20 20 20 20  |..   11   .     |
00000160  20 20 20 7b 63 6f 6c 6f  72 73 7d 0d 0a 20 20 20  |   {colors}..   |
00000170  31 32 20 20 20 20 20 20  20 42 6c 61 63 6b 20 3d  |12       Black =|
00000180  20 30 3b 20 20 20 20 20  20 20 20 20 20 44 61 72  | 0;          Dar|
00000190  6b 47 72 65 79 20 3d 20  38 3b 0d 0a 20 20 20 31  |kGrey = 8;..   1|
000001a0  33 20 20 20 20 20 20 20  42 6c 75 65 20 3d 20 31  |3       Blue = 1|
000001b0  3b 20 20 20 20 20 20 20  20 20 20 20 4c 69 67 68  |;           Ligh|
000001c0  74 42 6c 75 65 20 3d 20  39 3b 0d 0a 20 20 20 31  |tBlue = 9;..   1|
000001d0  34 20 20 20 20 20 20 20  47 72 65 65 6e 20 3d 20  |4       Green = |
000001e0  32 3b 20 20 20 20 20 20  20 20 20 20 4c 69 67 68  |2;          Ligh|
000001f0  74 47 72 65 65 6e 20 3d  20 31 30 3b 0d 0a 20 20  |tGreen = 10;..  |
00000200  20 31 35 20 20 20 20 20  20 20 43 79 61 6e 20 3d  | 15       Cyan =|
00000210  20 33 3b 20 20 20 20 20  20 20 20 20 20 20 4c 69  | 3;           Li|
00000220  67 68 74 43 79 61 6e 20  3d 20 31 31 3b 0d 0a 20  |ghtCyan = 11;.. |
00000230  20 20 31 36 20 20 20 20  20 20 20 52 65 64 20 3d  |  16       Red =|
00000240  20 34 3b 20 20 20 20 20  20 20 20 20 20 20 20 4c  | 4;            L|
00000250  69 67 68 74 52 65 64 20  3d 20 31 32 3b 0d 0a 20  |ightRed = 12;.. |
00000260  20 20 31 37 20 20 20 20  20 20 20 4d 61 67 65 6e  |  17       Magen|
00000270  74 61 20 3d 20 35 3b 20  20 20 20 20 20 20 20 4c  |ta = 5;        L|
00000280  69 67 68 74 4d 61 67 65  6e 74 61 20 3d 20 31 33  |ightMagenta = 13|
00000290  3b 0d 0a 20 20 20 31 38  20 20 20 20 20 20 20 42  |;..   18       B|
000002a0  72 6f 77 6e 20 3d 20 36  3b 20 20 20 20 20 20 20  |rown = 6;       |
000002b0  20 20 20 59 65 6c 6c 6f  77 20 3d 20 31 34 3b 0d  |   Yellow = 14;.|
000002c0  0a 20 20 20 31 39 20 20  20 20 20 20 20 4c 69 67  |.   19       Lig|
000002d0  68 74 47 72 65 79 20 3d  20 37 3b 20 20 20 20 20  |htGrey = 7;     |
000002e0  20 57 68 69 74 65 20 3d  20 31 35 3b 0d 0a 20 20  | White = 15;..  |
000002f0  20 32 30 20 20 20 20 20  20 20 4c 69 67 68 74 47  | 20       LightG|
00000300  72 61 79 20 3d 20 37 3b  20 20 20 20 20 20 44 61  |ray = 7;      Da|
00000310  72 6b 47 72 61 79 20 3d  20 38 3b 0d 0a 20 20 20  |rkGray = 8;..   |
00000320  32 31 20 20 20 0d 0a 20  20 20 32 32 20 20 20 09  |21   ..   22   .|
00000330  20 20 20 20 20 20 20 20  7b 20 6d 6f 64 65 73 20  |        { modes |
00000340  7d 0d 0a 20 20 20 32 33  20 20 20 20 20 20 20 42  |}..   23       B|
00000350  57 34 30 54 65 78 74 20  3d 20 30 3b 20 20 20 20  |W40Text = 0;    |
00000360  20 20 20 43 34 30 54 65  78 74 20 3d 20 31 3b 0d  |   C40Text = 1;.|
00000370  0a 20 20 20 32 34 20 20  20 20 20 20 20 42 57 38  |.   24       BW8|
00000380  30 54 65 78 74 20 3d 20  32 3b 20 20 20 20 20 20  |0Text = 2;      |
00000390  20 43 38 30 54 65 78 74  20 3d 20 33 3b 0d 0a 20  | C80Text = 3;.. |
000003a0  20 20 32 35 20 20 20 20  20 20 20 43 47 41 47 72  |  25       CGAGr|
000003b0  61 70 68 20 3d 20 34 3b  20 20 20 20 20 20 20 42  |aph = 4;       B|
000003c0  57 47 72 61 70 68 20 3d  20 35 3b 0d 0a 20 20 20  |WGraph = 5;..   |
000003d0  32 36 20 20 20 20 20 20  20 43 47 41 48 69 52 65  |26       CGAHiRe|
000003e0  73 20 3d 20 36 3b 20 20  20 20 20 20 20 4d 6f 6e  |s = 6;       Mon|
000003f0  6f 54 65 78 74 20 3d 20  37 3b 0d 0a 20 20 20 32  |oText = 7;..   2|
00000400  37 20 20 20 20 20 20 20  45 43 47 72 61 70 68 20  |7       ECGraph |
00000410  3d 20 31 33 3b 20 20 20  20 20 20 20 45 43 48 69  |= 13;       ECHi|
00000420  52 65 73 20 3d 20 31 34  3b 0d 0a 20 20 20 32 38  |Res = 14;..   28|
00000430  20 20 20 20 20 20 20 45  42 57 47 72 61 70 68 20  |       EBWGraph |
00000440  3d 20 31 35 3b 20 20 20  20 20 20 45 47 41 47 72  |= 15;      EGAGr|
00000450  61 70 68 20 3d 20 31 36  3b 0d 0a 20 20 20 32 39  |aph = 16;..   29|
00000460  20 20 20 0d 0a 20 20 20  33 30 20 20 20 54 59 50  |   ..   30   TYP|
00000470  45 0d 0a 20 20 20 33 31  20 20 20 0d 0a 20 20 20  |E..   31   ..   |
00000480  33 32 20 20 20 20 20 20  20 41 64 61 70 74 6f 72  |32       Adaptor|
00000490  54 79 70 65 20 3d 20 28  41 64 61 70 55 6e 6b 6e  |Type = (AdapUnkn|
000004a0  6f 77 6e 2c 4d 6f 6e 6f  41 64 61 70 2c 43 47 41  |own,MonoAdap,CGA|
000004b0  64 61 70 2c 45 47 41 64  61 70 29 3b 0d 0a 20 20  |dap,EGAdap);..  |
000004c0  20 33 33 20 20 20 0d 0a  20 20 20 33 34 20 20 20  | 33   ..   34   |
000004d0  20 20 20 20 54 65 78 74  52 61 6e 67 65 20 3d 20  |    TextRange = |
000004e0  31 2e 2e 38 30 3b 0d 0a  20 20 20 33 35 20 20 20  |1..80;..   35   |
000004f0  20 20 20 20 47 72 61 70  68 52 61 6e 67 65 20 3d  |    GraphRange =|
00000500  20 30 2e 2e 36 33 39 3b  0d 0a 20 20 20 33 36 20  | 0..639;..   36 |
00000510  20 20 0d 0a 20 20 20 33  37 20 20 20 20 20 20 20  |  ..   37       |
00000520  4d 6f 64 65 52 61 6e 67  65 20 3d 20 42 57 34 30  |ModeRange = BW40|
00000530  54 65 78 74 2e 2e 45 47  41 47 72 61 70 68 3b 0d  |Text..EGAGraph;.|
00000540  0a 20 20 20 33 38 20 20  20 20 20 20 20 50 61 67  |.   38       Pag|
00000550  65 52 61 6e 67 65 20 3d  20 30 2e 2e 38 3b 0d 0a  |eRange = 0..8;..|
00000560  20 20 20 33 39 20 20 20  20 20 20 20 43 6f 6c 6f  |   39       Colo|
00000570  72 52 61 6e 67 65 20 20  3d 20 42 6c 61 63 6b 2e  |rRange  = Black.|
00000580  2e 57 68 69 74 65 3b 0d  0a 20 20 20 34 30 20 20  |.White;..   40  |
00000590  20 20 20 20 20 43 6f 6c  6f 75 72 52 61 6e 67 65  |     ColourRange|
000005a0  20 3d 20 42 6c 61 63 6b  2e 2e 57 68 69 74 65 3b  | = Black..White;|
000005b0  0d 0a 20 20 20 34 31 20  20 20 20 20 20 20 44 61  |..   41       Da|
000005c0  72 6b 43 6f 6c 6f 72 52  61 6e 67 65 20 20 3d 20  |rkColorRange  = |
000005d0  42 6c 61 63 6b 2e 2e 4c  69 67 68 74 47 72 65 79  |Black..LightGrey|
000005e0  3b 0d 0a 20 20 20 34 32  20 20 20 20 20 20 20 44  |;..   42       D|
000005f0  61 72 6b 43 6f 6c 6f 75  72 52 61 6e 67 65 20 3d  |arkColourRange =|
00000600  20 42 6c 61 63 6b 2e 2e  4c 69 67 68 74 47 72 65  | Black..LightGre|
00000610  79 3b 0d 0a 20 20 20 34  33 20 20 20 0d 0a 20 20  |y;..   43   ..  |
00000620  20 34 34 20 20 20 0d 0a  20 20 20 34 35 20 20 20  | 44   ..   45   |
00000630  50 52 4f 43 45 44 55 52  45 20 41 77 61 69 74 52  |PROCEDURE AwaitR|
00000640  65 74 72 61 63 65 3b 20  20 65 78 74 65 72 6e 61  |etrace;  externa|
00000650  6c 3b 0d 0a 20 20 20 34  36 20 20 20 50 52 4f 43  |l;..   46   PROC|
00000660  45 44 55 52 45 20 50 75  74 43 68 61 72 20 28 63  |EDURE PutChar (c|
00000670  68 3a 20 63 68 61 72 3b  20 72 65 70 3a 20 77 6f  |h: char; rep: wo|
00000680  72 64 29 3b 20 20 65 78  74 65 72 6e 61 6c 3b 0d  |rd);  external;.|
00000690  0a 20 20 20 34 37 20 20  20 50 52 4f 43 45 44 55  |.   47   PROCEDU|
000006a0  52 45 20 50 75 74 43 68  61 74 74 72 20 28 63 68  |RE PutChattr (ch|
000006b0  3a 20 63 68 61 72 3b 20  70 61 70 65 72 3a 20 44  |: char; paper: D|
000006c0  61 72 6b 43 6f 6c 6f 72  52 61 6e 67 65 3b 0d 0a  |arkColorRange;..|
000006d0  20 20 20 34 38 20 20 20  09 20 20 20 20 20 20 20  |   48   .       |
000006e0  20 20 20 20 20 20 69 6e  6b 3a 20 43 6f 6c 6f 72  |      ink: Color|
000006f0  52 61 6e 67 65 3b 20 72  65 70 3a 20 77 6f 72 64  |Range; rep: word|
00000700  29 3b 20 20 65 78 74 65  72 6e 61 6c 3b 0d 0a 20  |);  external;.. |
00000710  20 20 34 39 20 20 20 50  52 4f 43 45 44 55 52 45  |  49   PROCEDURE|
00000720  20 53 63 72 65 65 6e 46  69 6c 65 20 28 56 41 52  | ScreenFile (VAR|
00000730  20 66 3a 20 74 65 78 74  29 3b 20 20 65 78 74 65  | f: text);  exte|
00000740  72 6e 61 6c 3b 0d 0a 20  20 20 35 30 20 20 20 0d  |rnal;..   50   .|
00000750  0a 20 20 20 35 31 20 20  20 50 52 4f 43 45 44 55  |.   51   PROCEDU|
00000760  52 45 20 50 6c 6f 74 20  28 78 2c 79 3a 20 47 72  |RE Plot (x,y: Gr|
00000770  61 70 68 52 61 6e 67 65  3b 20 63 6f 6c 6f 72 3a  |aphRange; color:|
00000780  20 43 6f 6c 6f 72 52 61  6e 67 65 29 3b 20 20 65  | ColorRange);  e|
00000790  78 74 65 72 6e 61 6c 3b  0d 0a 20 20 20 35 32 20  |xternal;..   52 |
000007a0  20 20 46 55 4e 43 54 49  4f 4e 20 50 69 78 65 6c  |  FUNCTION Pixel|
000007b0  20 28 78 2c 79 3a 20 47  72 61 70 68 52 61 6e 67  | (x,y: GraphRang|
000007c0  65 29 3a 20 43 6f 6c 6f  72 52 61 6e 67 65 3b 20  |e): ColorRange; |
000007d0  20 65 78 74 65 72 6e 61  6c 3b 0d 0a 20 20 20 35  | external;..   5|
000007e0  33 20 20 20 0d 0a 20 20  20 35 34 20 20 20 50 52  |3   ..   54   PR|
000007f0  4f 43 45 44 55 52 45 20  43 75 72 73 6f 72 4f 6e  |OCEDURE CursorOn|
00000800  3b 20 20 65 78 74 65 72  6e 61 6c 3b 0d 0a 20 20  |;  external;..  |
00000810  20 35 35 20 20 20 50 52  4f 43 45 44 55 52 45 20  | 55   PROCEDURE |
00000820  43 75 72 73 6f 72 4f 66  66 3b 20 20 65 78 74 65  |CursorOff;  exte|
00000830  72 6e 61 6c 3b 0d 0a 20  20 20 35 36 20 20 20 46  |rnal;..   56   F|
00000840  55 4e 43 54 49 4f 4e 20  41 64 61 70 74 6f 72 3a  |UNCTION Adaptor:|
00000850  20 41 64 61 70 74 6f 72  54 79 70 65 3b 20 20 65  | AdaptorType;  e|
00000860  78 74 65 72 6e 61 6c 3b  0d 0a 20 20 20 35 37 20  |xternal;..   57 |
00000870  20 20 46 55 4e 43 54 49  4f 4e 20 53 63 72 65 65  |  FUNCTION Scree|
00000880  6e 4d 6f 64 65 3a 20 4d  6f 64 65 52 61 6e 67 65  |nMode: ModeRange|
00000890  3b 20 20 65 78 74 65 72  6e 61 6c 3b 0d 0a 20 20  |;  external;..  |
000008a0  20 35 38 20 20 20 50 52  4f 43 45 44 55 52 45 20  | 58   PROCEDURE |
000008b0  53 65 74 53 63 72 65 65  6e 4d 6f 64 65 20 28 6d  |SetScreenMode (m|
000008c0  6f 64 65 3a 20 4d 6f 64  65 52 61 6e 67 65 29 3b  |ode: ModeRange);|
000008d0  20 20 65 78 74 65 72 6e  61 6c 3b 0d 0a 20 20 20  |  external;..   |
000008e0  35 39 20 20 20 50 52 4f  43 45 44 55 52 45 20 43  |59   PROCEDURE C|
000008f0  6c 72 56 69 64 65 6f 3b  20 20 65 78 74 65 72 6e  |lrVideo;  extern|
00000900  61 6c 3b 0d 0a 20 20 20  36 30 20 20 20 50 52 4f  |al;..   60   PRO|
00000910  43 45 44 55 52 45 20 69  6e 6b 20 28 69 3a 20 43  |CEDURE ink (i: C|
00000920  6f 6c 6f 72 52 61 6e 67  65 29 3b 20 20 65 78 74  |olorRange);  ext|
00000930  65 72 6e 61 6c 3b 0d 0a  20 20 20 36 31 20 20 20  |ernal;..   61   |
00000940  50 52 4f 43 45 44 55 52  45 20 70 61 70 65 72 20  |PROCEDURE paper |
00000950  28 70 3a 20 44 61 72 6b  43 6f 6c 6f 72 52 61 6e  |(p: DarkColorRan|
00000960  67 65 29 3b 20 20 65 78  74 65 72 6e 61 6c 3b 0d  |ge);  external;.|
00000970  0a 20 20 20 36 32 20 20  20 50 52 4f 43 45 44 55  |.   62   PROCEDU|
00000980  52 45 20 49 6e 69 74 53  63 72 65 65 6e 3b 20 20  |RE InitScreen;  |
00000990  65 78 74 65 72 6e 61 6c  3b 0d 0a 20 20 20 36 33  |external;..   63|
000009a0  20 20 20 0d 0a 20 20 20  36 34 20 20 20 50 52 4f  |   ..   64   PRO|
000009b0  43 45 44 55 52 45 20 54  65 78 74 57 69 6e 64 6f  |CEDURE TextWindo|
000009c0  77 20 28 78 31 2c 79 31  2c 78 32 2c 79 32 3a 20  |w (x1,y1,x2,y2: |
000009d0  54 65 78 74 52 61 6e 67  65 29 3b 20 20 65 78 74  |TextRange);  ext|
000009e0  65 72 6e 61 6c 3b 0d 0a  20 20 20 36 35 20 20 20  |ernal;..   65   |
000009f0  50 52 4f 43 45 44 55 52  45 20 47 6f 74 6f 58 59  |PROCEDURE GotoXY|
00000a00  20 28 78 2c 79 3a 20 54  65 78 74 52 61 6e 67 65  | (x,y: TextRange|
00000a10  29 3b 20 20 65 78 74 65  72 6e 61 6c 3b 0d 0a 20  |);  external;.. |
00000a20  20 20 36 36 20 20 20 46  55 4e 43 54 49 4f 4e 20  |  66   FUNCTION |
00000a30  57 68 65 72 65 58 3a 20  54 65 78 74 52 61 6e 67  |WhereX: TextRang|
00000a40  65 3b 20 20 65 78 74 65  72 6e 61 6c 3b 0d 0a 20  |e;  external;.. |
00000a50  20 20 36 37 20 20 20 46  55 4e 43 54 49 4f 4e 20  |  67   FUNCTION |
00000a60  57 68 65 72 65 59 3a 20  54 65 78 74 52 61 6e 67  |WhereY: TextRang|
00000a70  65 3b 20 20 65 78 74 65  72 6e 61 6c 3b 0d 0a 20  |e;  external;.. |
00000a80  20 20 36 38 20 20 20 46  55 4e 43 54 49 4f 4e 20  |  68   FUNCTION |
00000a90  43 68 61 72 58 59 3a 20  63 68 61 72 3b 20 20 65  |CharXY: char;  e|
00000aa0  78 74 65 72 6e 61 6c 3b  0d 0a 20 20 20 36 39 20  |xternal;..   69 |
00000ab0  20 20 46 55 4e 43 54 49  4f 4e 20 41 74 74 72 58  |  FUNCTION AttrX|
00000ac0  59 3a 20 62 79 74 65 3b  20 20 65 78 74 65 72 6e  |Y: byte;  extern|
00000ad0  61 6c 3b 0d 0a 20 20 20  37 30 20 20 20 50 52 4f  |al;..   70   PRO|
00000ae0  43 45 44 55 52 45 20 43  75 72 73 6f 72 53 68 61  |CEDURE CursorSha|
00000af0  70 65 20 28 74 6f 70 2c  62 6f 74 74 6f 6d 3a 20  |pe (top,bottom: |
00000b00  62 79 74 65 29 3b 20 20  65 78 74 65 72 6e 61 6c  |byte);  external|
00000b10  3b 0d 0a 20 20 20 37 31  20 20 20 50 52 4f 43 45  |;..   71   PROCE|
00000b20  44 55 52 45 20 43 6c 72  45 6f 6c 3b 20 20 65 78  |DURE ClrEol;  ex|
00000b30  74 65 72 6e 61 6c 3b 0d  0a 20 20 20 37 32 20 20  |ternal;..   72  |
00000b40  20 50 52 4f 43 45 44 55  52 45 20 43 6c 72 53 63  | PROCEDURE ClrSc|
00000b50  72 3b 20 20 65 78 74 65  72 6e 61 6c 3b 0d 0a 20  |r;  external;.. |
00000b60  20 20 37 33 20 20 20 46  55 4e 43 54 49 4f 4e 20  |  73   FUNCTION |
00000b70  4b 65 79 50 72 65 73 73  65 64 3a 20 62 6f 6f 6c  |KeyPressed: bool|
00000b80  65 61 6e 3b 20 20 65 78  74 65 72 6e 61 6c 3b 0d  |ean;  external;.|
00000b90  0a 20 20 20 37 34 20 20  20 46 55 4e 43 54 49 4f  |.   74   FUNCTIO|
00000ba0  4e 20 45 73 63 61 70 65  4b 65 79 3a 20 62 6f 6f  |N EscapeKey: boo|
00000bb0  6c 65 61 6e 3b 20 20 65  78 74 65 72 6e 61 6c 3b  |lean;  external;|
00000bc0  0d 0a 20 20 20 37 35 20  20 20 50 52 4f 43 45 44  |..   75   PROCED|
00000bd0  55 52 45 20 47 65 74 4b  65 79 62 6f 61 72 64 20  |URE GetKeyboard |
00000be0  28 56 41 52 20 63 68 3a  20 63 68 61 72 3b 20 56  |(VAR ch: char; V|
00000bf0  41 52 20 73 63 61 6e 63  6f 64 65 3a 20 62 79 74  |AR scancode: byt|
00000c00  65 29 3b 20 20 65 78 74  65 72 6e 61 6c 3b 0d 0a  |e);  external;..|
00000c10  20 20 20 37 36 20 20 20  46 55 4e 43 54 49 4f 4e  |   76   FUNCTION|
00000c20  20 4b 65 79 46 6c 61 67  73 3a 20 62 79 74 65 3b  | KeyFlags: byte;|
00000c30  20 20 65 78 74 65 72 6e  61 6c 3b 0d 0a 20 20 20  |  external;..   |
00000c40  37 37 20 20 20 0d 0a 20  20 20 37 38 20 20 20 50  |77   ..   78   P|
00000c50  52 4f 43 45 44 55 52 45  20 44 69 73 70 6c 61 79  |ROCEDURE Display|
00000c60  50 61 67 65 20 28 70 61  67 65 3a 20 50 61 67 65  |Page (page: Page|
00000c70  52 61 6e 67 65 29 3b 20  20 65 78 74 65 72 6e 61  |Range);  externa|
00000c80  6c 3b 0d 0a 20 20 20 37  39 20 20 20 50 52 4f 43  |l;..   79   PROC|
00000c90  45 44 55 52 45 20 55 70  64 61 74 65 50 61 67 65  |EDURE UpdatePage|
00000ca0  20 28 70 61 67 65 3a 20  50 61 67 65 52 61 6e 67  | (page: PageRang|
00000cb0  65 29 3b 20 20 65 78 74  65 72 6e 61 6c 3b 0d 0a  |e);  external;..|
00000cc0  20 20 20 38 30 20 20 20  50 52 4f 43 45 44 55 52  |   80   PROCEDUR|
00000cd0  45 20 53 63 72 6f 6c 6c  55 70 20 28 4e 4c 69 6e  |E ScrollUp (NLin|
00000ce0  65 73 3a 20 54 65 78 74  52 61 6e 67 65 29 3b 20  |es: TextRange); |
00000cf0  20 65 78 74 65 72 6e 61  6c 3b 0d 0a 20 20 20 38  | external;..   8|
00000d00  31 20 20 20 50 52 4f 43  45 44 55 52 45 20 53 63  |1   PROCEDURE Sc|
00000d10  72 6f 6c 6c 44 6f 77 6e  20 28 4e 4c 69 6e 65 73  |rollDown (NLines|
00000d20  3a 20 54 65 78 74 52 61  6e 67 65 29 3b 20 20 65  |: TextRange);  e|
00000d30  78 74 65 72 6e 61 6c 3b  0d 0a 20 20 20 38 32 20  |xternal;..   82 |
00000d40  20 20 50 52 4f 43 45 44  55 52 45 20 44 65 6c 4c  |  PROCEDURE DelL|
00000d50  69 6e 65 3b 20 20 65 78  74 65 72 6e 61 6c 3b 0d  |ine;  external;.|
00000d60  0a 20 20 20 38 33 20 20  20 50 52 4f 43 45 44 55  |.   83   PROCEDU|
00000d70  52 45 20 49 6e 73 4c 69  6e 65 3b 20 20 65 78 74  |RE InsLine;  ext|
00000d80  65 72 6e 61 6c 3b 0d 0a  20 20 20 38 34 20 20 20  |ernal;..   84   |
00000d90  0d 0a 20 20 20 38 35 20  20 20 50 52 4f 43 45 44  |..   85   PROCED|
00000da0  55 52 45 20 54 65 78 74  46 72 61 6d 65 20 28 64  |URE TextFrame (d|
00000db0  6f 75 62 6c 65 3a 20 62  6f 6f 6c 65 61 6e 29 3b  |ouble: boolean);|
00000dc0  20 20 65 78 74 65 72 6e  61 6c 3b 0d 0a 20 20 20  |  external;..   |
00000dd0  38 36 20 20 20 0d 0a 20  20 20 38 37 20 20 20 50  |86   ..   87   P|
00000de0  52 4f 43 45 44 55 52 45  20 45 64 69 74 53 74 72  |ROCEDURE EditStr|
00000df0  69 6e 67 20 28 56 41 52  20 73 74 3a 20 73 74 72  |ing (VAR st: str|
00000e00  69 6e 67 3b 20 69 6e 64  65 78 2c 6c 65 6e 3a 20  |ing; index,len: |
00000e10  54 65 78 74 52 61 6e 67  65 29 3b 20 65 78 74 65  |TextRange); exte|
00000e20  72 6e 61 6c 3b 0d 0a 20  20 20 38 38 20 20 20 0d  |rnal;..   88   .|
00000e30  0a 20 20 20 38 39 20 20  20 09 20 20 20 20 20 20  |.   89   .      |
00000e40  20 20 7b 20 63 6f 6f 72  64 69 6e 61 74 65 20 67  |  { coordinate g|
00000e50  72 61 70 68 69 63 73 20  7d 0d 0a 20 20 20 39 30  |raphics }..   90|
00000e60  20 20 20 0d 0a 20 20 20  39 31 20 20 20 50 52 4f  |   ..   91   PRO|
00000e70  43 45 44 55 52 45 20 43  47 41 43 6f 6c 6f 75 72  |CEDURE CGAColour|
00000e80  20 28 63 6f 6c 6f 72 3a  20 43 6f 6c 6f 72 52 61  | (color: ColorRa|
00000e90  6e 67 65 29 3b 20 20 65  78 74 65 72 6e 61 6c 3b  |nge);  external;|
00000ea0  20 28 2a 54 68 65 73 65  20 74 77 6f 20 70 72 6f  | (*These two pro|
00000eb0  63 65 64 75 72 65 73 2a  29 0d 0a 20 20 20 39 32  |cedures*)..   92|
00000ec0  20 20 20 50 52 4f 43 45  44 55 52 45 20 43 47 41  |   PROCEDURE CGA|
00000ed0  43 6f 6c 6f 72 20 28 63  6f 6c 6f 72 3a 20 43 6f  |Color (color: Co|
00000ee0  6c 6f 72 52 61 6e 67 65  29 3b 20 20 65 78 74 65  |lorRange);  exte|
00000ef0  72 6e 61 6c 3b 20 20 28  2a 68 61 76 65 20 74 68  |rnal;  (*have th|
00000f00  65 20 73 61 6d 65 20 65  66 66 65 63 74 2a 29 0d  |e same effect*).|
00000f10  0a 20 20 20 39 33 20 20  20 50 52 4f 43 45 44 55  |.   93   PROCEDU|
00000f20  52 45 20 43 47 41 50 61  6c 65 74 74 65 20 28 70  |RE CGAPalette (p|
00000f30  61 6c 65 74 74 65 3a 20  62 79 74 65 29 3b 20 20  |alette: byte);  |
00000f40  65 78 74 65 72 6e 61 6c  3b 0d 0a 20 20 20 39 34  |external;..   94|
00000f50  20 20 20 50 52 4f 43 45  44 55 52 45 20 45 47 41  |   PROCEDURE EGA|
00000f60  50 61 6c 65 74 74 65 20  28 72 65 67 69 73 74 65  |Palette (registe|
00000f70  72 2c 73 68 61 64 65 3a  20 62 79 74 65 29 3b 20  |r,shade: byte); |
00000f80  20 65 78 74 65 72 6e 61  6c 3b 0d 0a 20 20 20 39  | external;..   9|
00000f90  35 20 20 20 50 52 4f 43  45 44 55 52 45 20 45 47  |5   PROCEDURE EG|
00000fa0  41 42 6f 72 64 65 72 20  28 73 68 61 64 65 3a 20  |ABorder (shade: |
00000fb0  62 79 74 65 29 3b 20 20  65 78 74 65 72 6e 61 6c  |byte);  external|
00000fc0  3b 0d 0a 20 20 20 39 36  20 20 20 50 52 4f 43 45  |;..   96   PROCE|
00000fd0  44 55 52 45 20 45 47 41  42 6c 69 6e 6b 20 28 6f  |DURE EGABlink (o|
00000fe0  6e 3a 20 62 6f 6f 6c 65  61 6e 29 3b 20 20 65 78  |n: boolean);  ex|
00000ff0  74 65 72 6e 61 6c 3b 0d  0a 20 20 20 39 37 20 20  |ternal;..   97  |
00001000  20 50 52 4f 43 45 44 55  52 45 20 47 72 61 70 68  | PROCEDURE Graph|
00001010  57 69 6e 64 6f 77 20 28  78 31 2c 79 31 2c 78 32  |Window (x1,y1,x2|
00001020  2c 79 32 3a 20 47 72 61  70 68 52 61 6e 67 65 29  |,y2: GraphRange)|
00001030  3b 20 20 65 78 74 65 72  6e 61 6c 3b 0d 0a 20 20  |;  external;..  |
00001040  20 39 38 20 20 20 50 52  4f 43 45 44 55 52 45 20  | 98   PROCEDURE |
00001050  43 6c 69 70 4f 6e 3b 20  20 65 78 74 65 72 6e 61  |ClipOn;  externa|
00001060  6c 3b 0d 0a 20 20 20 39  39 20 20 20 50 52 4f 43  |l;..   99   PROC|
00001070  45 44 55 52 45 20 43 6c  69 70 4f 66 66 3b 20 20  |EDURE ClipOff;  |
00001080  65 78 74 65 72 6e 61 6c  3b 0d 0a 20 20 31 30 30  |external;..  100|
00001090  20 20 20 50 52 4f 43 45  44 55 52 45 20 58 4f 52  |   PROCEDURE XOR|
000010a0  4f 6e 3b 20 20 65 78 74  65 72 6e 61 6c 3b 0d 0a  |On;  external;..|
000010b0  20 20 31 30 31 20 20 20  50 52 4f 43 45 44 55 52  |  101   PROCEDUR|
000010c0  45 20 58 4f 52 4f 66 66  3b 20 20 65 78 74 65 72  |E XOROff;  exter|
000010d0  6e 61 6c 3b 0d 0a 20 20  31 30 32 20 20 20 50 52  |nal;..  102   PR|
000010e0  4f 43 45 44 55 52 45 20  44 72 61 77 20 28 78 31  |OCEDURE Draw (x1|
000010f0  2c 79 31 2c 78 32 2c 79  32 3a 20 47 72 61 70 68  |,y1,x2,y2: Graph|
00001100  52 61 6e 67 65 3b 0d 0a  20 20 31 30 33 20 20 20  |Range;..  103   |
00001110  09 20 20 20 20 20 20 20  20 63 6f 6c 6f 72 3a 20  |.        color: |
00001120  43 6f 6c 6f 72 52 61 6e  67 65 29 3b 20 20 65 78  |ColorRange);  ex|
00001130  74 65 72 6e 61 6c 3b 0d  0a 20 20 31 30 34 20 20  |ternal;..  104  |
00001140  20 0d 0a 20 20 31 30 35  20 20 20 50 52 4f 43 45  | ..  105   PROCE|
00001150  44 55 52 45 20 47 72 61  70 68 46 72 61 6d 65 20  |DURE GraphFrame |
00001160  28 63 6f 6c 6f 72 3a 20  43 6f 6c 6f 72 52 61 6e  |(color: ColorRan|
00001170  67 65 29 3b 20 20 65 78  74 65 72 6e 61 6c 3b 0d  |ge);  external;.|
00001180  0a 20 20 31 30 36 20 20  20 50 52 4f 43 45 44 55  |.  106   PROCEDU|
00001190  52 45 20 43 69 72 63 6c  65 20 28 58 43 65 6e 74  |RE Circle (XCent|
000011a0  72 65 2c 59 43 65 6e 74  72 65 2c 52 61 64 69 75  |re,YCentre,Radiu|
000011b0  73 3a 20 47 72 61 70 68  52 61 6e 67 65 3b 0d 0a  |s: GraphRange;..|
000011c0  20 20 31 30 37 20 20 20  09 20 20 20 20 20 20 20  |  107   .       |
000011d0  20 20 20 63 6f 6c 6f 72  3a 20 43 6f 6c 6f 72 52  |   color: ColorR|
000011e0  61 6e 67 65 29 3b 20 20  65 78 74 65 72 6e 61 6c  |ange);  external|
000011f0  3b 0d 0a 20 20 31 30 38  20 20 20 50 52 4f 43 45  |;..  108   PROCE|
00001200  44 55 52 45 20 46 69 6c  6c 41 72 65 61 20 28 78  |DURE FillArea (x|
00001210  31 2c 79 31 2c 78 32 2c  79 32 3a 20 47 72 61 70  |1,y1,x2,y2: Grap|
00001220  68 52 61 6e 67 65 3b 0d  0a 20 20 31 30 39 20 20  |hRange;..  109  |
00001230  20 09 20 20 20 20 20 20  20 20 20 20 20 20 63 6f  | .            co|
00001240  6c 6f 72 3a 20 43 6f 6c  6f 72 52 61 6e 67 65 29  |lor: ColorRange)|
00001250  3b 20 20 65 78 74 65 72  6e 61 6c 3b 0d 0a 20 20  |;  external;..  |
00001260  31 31 30 20 20 20 50 52  4f 43 45 44 55 52 45 20  |110   PROCEDURE |
00001270  46 69 6c 6c 57 69 6e 64  6f 77 20 28 63 6f 6c 6f  |FillWindow (colo|
00001280  72 3a 20 43 6f 6c 6f 72  52 61 6e 67 65 29 3b 20  |r: ColorRange); |
00001290  20 65 78 74 65 72 6e 61  6c 3b 0d 0a 20 20 31 31  | external;..  11|
000012a0  31 20 20 20 50 52 4f 43  45 44 55 52 45 20 46 69  |1   PROCEDURE Fi|
000012b0  6c 6c 53 68 61 70 65 20  28 58 53 74 61 72 74 2c  |llShape (XStart,|
000012c0  59 53 74 61 72 74 3a 20  47 72 61 70 68 52 61 6e  |YStart: GraphRan|
000012d0  67 65 3b 0d 0a 20 20 31  31 32 20 20 20 09 20 20  |ge;..  112   .  |
000012e0  20 20 20 20 20 20 20 20  20 20 20 20 20 66 69 6c  |             fil|
000012f0  6c 2c 62 6f 72 64 65 72  3a 20 43 6f 6c 6f 72 52  |l,border: ColorR|
00001300  61 6e 67 65 29 3b 20 20  65 78 74 65 72 6e 61 6c  |ange);  external|
00001310  3b 0d 0a 20 20 31 31 33  20 20 20 0d 0a 20 20 31  |;..  113   ..  1|
00001320  31 34 20 20 20 09 7b 54  75 72 74 6c 65 20 67 72  |14   .{Turtle gr|
00001330  61 70 68 69 63 73 7d 0d  0a 20 20 31 31 35 20 20  |aphics}..  115  |
00001340  20 0d 0a 20 20 31 31 36  20 20 20 43 4f 4e 53 54  | ..  116   CONST|
00001350  20 20 20 4e 6f 72 74 68  20 3d 20 30 3b 20 20 20  |   North = 0;   |
00001360  20 20 20 45 61 73 74 20  3d 20 39 30 3b 0d 0a 20  |   East = 90;.. |
00001370  20 31 31 37 20 20 20 09  53 6f 75 74 68 20 3d 20  | 117   .South = |
00001380  31 38 30 3b 20 20 20 20  57 65 73 74 20 3d 20 32  |180;    West = 2|
00001390  37 30 3b 0d 0a 20 20 31  31 38 20 20 20 0d 0a 20  |70;..  118   .. |
000013a0  20 31 31 39 20 20 20 54  59 50 45 20 20 20 20 64  | 119   TYPE    d|
000013b0  65 67 72 65 65 73 20 3d  20 69 6e 74 65 67 65 72  |egrees = integer|
000013c0  32 3b 0d 0a 20 20 31 32  30 20 20 20 0d 0a 20 20  |2;..  120   ..  |
000013d0  31 32 31 20 20 20 50 52  4f 43 45 44 55 52 45 20  |121   PROCEDURE |
000013e0  53 65 74 50 65 6e 43 6f  6c 6f 72 20 28 63 6f 6c  |SetPenColor (col|
000013f0  6f 72 3a 20 43 6f 6c 6f  72 52 61 6e 67 65 29 3b  |or: ColorRange);|
00001400  20 20 65 78 74 65 72 6e  61 6c 3b 0d 0a 20 20 31  |  external;..  1|
00001410  32 32 20 20 20 50 52 4f  43 45 44 55 52 45 20 50  |22   PROCEDURE P|
00001420  65 6e 44 6f 77 6e 3b 20  20 65 78 74 65 72 6e 61  |enDown;  externa|
00001430  6c 3b 0d 0a 20 20 31 32  33 20 20 20 50 52 4f 43  |l;..  123   PROC|
00001440  45 44 55 52 45 20 50 65  6e 55 70 3b 20 20 65 78  |EDURE PenUp;  ex|
00001450  74 65 72 6e 61 6c 3b 0d  0a 20 20 31 32 34 20 20  |ternal;..  124  |
00001460  20 50 52 4f 43 45 44 55  52 45 20 53 65 74 48 65  | PROCEDURE SetHe|
00001470  61 64 69 6e 67 20 28 61  6e 67 6c 65 3a 20 64 65  |ading (angle: de|
00001480  67 72 65 65 73 29 3b 20  20 65 78 74 65 72 6e 61  |grees);  externa|
00001490  6c 3b 0d 0a 20 20 31 32  35 20 20 20 46 55 4e 43  |l;..  125   FUNC|
000014a0  54 49 4f 4e 20 48 65 61  64 69 6e 67 3a 20 64 65  |TION Heading: de|
000014b0  67 72 65 65 73 3b 20 20  65 78 74 65 72 6e 61 6c  |grees;  external|
000014c0  3b 0d 0a 20 20 31 32 36  20 20 20 50 52 4f 43 45  |;..  126   PROCE|
000014d0  44 55 52 45 20 54 75 72  6e 4c 65 66 74 20 28 61  |DURE TurnLeft (a|
000014e0  6e 67 6c 65 3a 20 64 65  67 72 65 65 73 29 3b 20  |ngle: degrees); |
000014f0  20 65 78 74 65 72 6e 61  6c 3b 0d 0a 20 20 31 32  | external;..  12|
00001500  37 20 20 20 50 52 4f 43  45 44 55 52 45 20 54 75  |7   PROCEDURE Tu|
00001510  72 6e 52 69 67 68 74 20  28 61 6e 67 6c 65 3a 20  |rnRight (angle: |
00001520  64 65 67 72 65 65 73 29  3b 20 20 65 78 74 65 72  |degrees);  exter|
00001530  6e 61 6c 3b 0d 0a 20 20  31 32 38 20 20 20 50 52  |nal;..  128   PR|
00001540  4f 43 45 44 55 52 45 20  53 65 74 50 6f 73 69 74  |OCEDURE SetPosit|
00001550  69 6f 6e 20 28 78 2c 79  3a 20 69 6e 74 65 67 65  |ion (x,y: intege|
00001560  72 32 29 3b 20 20 65 78  74 65 72 6e 61 6c 3b 0d  |r2);  external;.|
00001570  0a 20 20 31 32 39 20 20  20 50 52 4f 43 45 44 55  |.  129   PROCEDU|
00001580  52 45 20 54 75 72 74 6c  65 48 6f 6d 65 3b 20 20  |RE TurtleHome;  |
00001590  65 78 74 65 72 6e 61 6c  3b 0d 0a 20 20 31 33 30  |external;..  130|
000015a0  20 20 20 46 55 4e 43 54  49 4f 4e 20 58 43 6f 72  |   FUNCTION XCor|
000015b0  3a 20 69 6e 74 65 67 65  72 32 3b 20 20 65 78 74  |: integer2;  ext|
000015c0  65 72 6e 61 6c 3b 0d 0a  20 20 31 33 31 20 20 20  |ernal;..  131   |
000015d0  46 55 4e 43 54 49 4f 4e  20 59 43 6f 72 3a 20 69  |FUNCTION YCor: i|
000015e0  6e 74 65 67 65 72 32 3b  20 20 65 78 74 65 72 6e  |nteger2;  extern|
000015f0  61 6c 3b 0d 0a 20 20 31  33 32 20 20 20 50 52 4f  |al;..  132   PRO|
00001600  43 45 44 55 52 45 20 54  75 72 74 6c 65 57 69 6e  |CEDURE TurtleWin|
00001610  64 6f 77 20 28 58 43 65  6e 74 72 65 2c 59 43 65  |dow (XCentre,YCe|
00001620  6e 74 72 65 2c 0d 0a 20  20 31 33 33 20 20 20 09  |ntre,..  133   .|
00001630  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001640  57 69 64 74 68 2c 48 65  69 67 68 74 3a 20 47 72  |Width,Height: Gr|
00001650  61 70 68 52 61 6e 67 65  29 3b 20 20 65 78 74 65  |aphRange);  exte|
00001660  72 6e 61 6c 3b 0d 0a 20  20 31 33 34 20 20 20 50  |rnal;..  134   P|
00001670  52 4f 43 45 44 55 52 45  20 46 6f 72 77 64 20 28  |ROCEDURE Forwd (|
00001680  64 69 73 74 3a 20 69 6e  74 65 67 65 72 32 29 3b  |dist: integer2);|
00001690  20 20 65 78 74 65 72 6e  61 6c 3b 0d 0a 20 20 31  |  external;..  1|
000016a0  33 35 20 20 20 50 52 4f  43 45 44 55 52 45 20 42  |35   PROCEDURE B|
000016b0  61 63 6b 20 28 64 69 73  74 3a 20 69 6e 74 65 67  |ack (dist: integ|
000016c0  65 72 32 29 3b 20 20 65  78 74 65 72 6e 61 6c 3b  |er2);  external;|
000016d0  0d 0a 20 20 31 33 36 20  20 20 0d 0a 20 20 31 33  |..  136   ..  13|
000016e0  37 20 20 20 09 20 20 20  20 20 20 20 20 7b 20 73  |7   .        { s|
000016f0  61 76 65 20 61 6e 64 20  72 65 73 74 6f 72 65 20  |ave and restore |
00001700  7d 0d 0a 20 20 31 33 38  20 20 20 0d 0a 20 20 31  |}..  138   ..  1|
00001710  33 39 20 20 20 54 59 50  45 20 20 62 79 74 65 66  |39   TYPE  bytef|
00001720  69 6c 65 20 3d 20 46 49  4c 45 20 4f 46 20 62 79  |ile = FILE OF by|
00001730  74 65 3b 0d 0a 20 20 31  34 30 20 20 20 0d 0a 20  |te;..  140   .. |
00001740  20 31 34 31 20 20 20 50  52 4f 43 45 44 55 52 45  | 141   PROCEDURE|
00001750  20 50 75 73 68 57 69 6e  64 6f 77 3b 20 20 65 78  | PushWindow;  ex|
00001760  74 65 72 6e 61 6c 3b 0d  0a 20 20 31 34 32 20 20  |ternal;..  142  |
00001770  20 50 52 4f 43 45 44 55  52 45 20 50 6f 70 57 69  | PROCEDURE PopWi|
00001780  6e 64 6f 77 3b 20 20 65  78 74 65 72 6e 61 6c 3b  |ndow;  external;|
00001790  0d 0a 20 20 31 34 33 20  20 20 50 52 4f 43 45 44  |..  143   PROCED|
000017a0  55 52 45 20 50 6f 70 49  6d 61 67 65 3b 20 20 65  |URE PopImage;  e|
000017b0  78 74 65 72 6e 61 6c 3b  0d 0a 20 20 31 34 34 20  |xternal;..  144 |
000017c0  20 20 0d 0a 20 20 31 34  35 20 20 20 50 52 4f 43  |  ..  145   PROC|
000017d0  45 44 55 52 45 20 50 72  69 6e 74 57 69 6e 64 6f  |EDURE PrintWindo|
000017e0  77 3b 20 20 65 78 74 65  72 6e 61 6c 3b 0d 0a 20  |w;  external;.. |
000017f0  20 31 34 36 20 20 20 50  52 4f 43 45 44 55 52 45  | 146   PROCEDURE|
00001800  20 50 72 69 6e 74 53 63  72 65 65 6e 3b 20 20 65  | PrintScreen;  e|
00001810  78 74 65 72 6e 61 6c 3b  0d 0a 20 20 31 34 37 20  |xternal;..  147 |
00001820  20 20 0d 0a 20 20 31 34  38 20 20 20 50 52 4f 43  |  ..  148   PROC|
00001830  45 44 55 52 45 20 53 61  76 65 57 69 6e 64 6f 77  |EDURE SaveWindow|
00001840  20 28 56 41 52 20 66 3a  20 62 79 74 65 66 69 6c  | (VAR f: bytefil|
00001850  65 29 3b 20 20 65 78 74  65 72 6e 61 6c 3b 0d 0a  |e);  external;..|
00001860  20 20 31 34 39 20 20 20  50 52 4f 43 45 44 55 52  |  149   PROCEDUR|
00001870  45 20 53 61 76 65 53 63  72 65 65 6e 20 28 56 41  |E SaveScreen (VA|
00001880  52 20 66 3a 20 62 79 74  65 66 69 6c 65 29 3b 20  |R f: bytefile); |
00001890  20 65 78 74 65 72 6e 61  6c 3b 0d 0a 20 20 31 35  | external;..  15|
000018a0  30 20 20 20 50 52 4f 43  45 44 55 52 45 20 52 65  |0   PROCEDURE Re|
000018b0  73 74 6f 72 65 57 69 6e  64 6f 77 20 28 56 41 52  |storeWindow (VAR|
000018c0  20 66 3a 20 62 79 74 65  66 69 6c 65 29 3b 20 20  | f: bytefile);  |
000018d0  65 78 74 65 72 6e 61 6c  3b 0d 0a 20 20 31 35 31  |external;..  151|
000018e0  20 20 20 50 52 4f 43 45  44 55 52 45 20 52 65 73  |   PROCEDURE Res|
000018f0  74 6f 72 65 53 63 72 65  65 6e 20 28 56 41 52 20  |toreScreen (VAR |
00001900  66 3a 20 62 79 74 65 66  69 6c 65 29 3b 20 20 65  |f: bytefile);  e|
00001910  78 74 65 72 6e 61 6c 3b  0d 0a 20 20 31 35 32 20  |xternal;..  152 |
00001920  20 20 0d 0a 20 20 31 35  33 20 20 20 0d 0a 20 20  |  ..  153   ..  |
00001930  31 35 34 20 20 20 09 20  20 20 20 20 20 20 20 20  |154   .         |
00001940  20 20 20 20 20 20 20 7b  20 63 6f 6d 6d 73 20 7d  |       { comms }|
00001950  0d 0a 20 20 31 35 35 20  20 20 0d 0a 20 20 31 35  |..  155   ..  15|
00001960  36 20 20 20 43 4f 4e 53  54 20 20 20 43 6f 6d 31  |6   CONST   Com1|
00001970  20 3d 20 30 3b 20 20 20  43 6f 6d 32 20 3d 20 31  | = 0;   Com2 = 1|
00001980  3b 20 20 20 43 6f 6d 33  20 3d 20 32 3b 0d 0a 20  |;   Com3 = 2;.. |
00001990  20 31 35 37 20 20 20 0d  0a 20 20 31 35 38 20 20  | 157   ..  158  |
000019a0  20 50 52 4f 43 45 44 55  52 45 20 49 6e 69 74 43  | PROCEDURE InitC|
000019b0  6f 6d 6d 20 28 70 6f 72  74 2c 62 61 75 64 2c 70  |omm (port,baud,p|
000019c0  61 72 69 74 79 2c 6c 6e  67 74 68 2c 73 74 6f 70  |arity,lngth,stop|
000019d0  3a 20 62 79 74 65 3b 0d  0a 20 20 31 35 39 20 20  |: byte;..  159  |
000019e0  20 09 20 20 20 20 20 20  20 20 20 20 20 20 20 56  | .             V|
000019f0  41 52 20 50 6f 72 74 53  74 61 74 75 73 2c 4d 6f  |AR PortStatus,Mo|
00001a00  64 65 6d 53 74 61 74 75  73 3a 20 62 79 74 65 29  |demStatus: byte)|
00001a10  3b 20 20 65 78 74 65 72  6e 61 6c 3b 0d 0a 20 20  |;  external;..  |
00001a20  31 36 30 20 20 20 50 52  4f 43 45 44 55 52 45 20  |160   PROCEDURE |
00001a30  57 72 69 74 65 43 6f 6d  6d 20 28 70 6f 72 74 2c  |WriteComm (port,|
00001a40  76 61 6c 75 65 3a 20 62  79 74 65 3b 20 56 41 52  |value: byte; VAR|
00001a50  20 50 6f 72 74 53 74 61  74 75 73 3a 20 62 79 74  | PortStatus: byt|
00001a60  65 29 3b 20 20 65 78 74  65 72 6e 61 6c 3b 0d 0a  |e);  external;..|
00001a70  20 20 31 36 31 20 20 20  50 52 4f 43 45 44 55 52  |  161   PROCEDUR|
00001a80  45 20 52 65 61 64 43 6f  6d 6d 20 28 70 6f 72 74  |E ReadComm (port|
00001a90  3a 20 62 79 74 65 3b 20  56 41 52 20 76 61 6c 75  |: byte; VAR valu|
00001aa0  65 2c 50 6f 72 74 53 74  61 74 75 73 3a 20 62 79  |e,PortStatus: by|
00001ab0  74 65 29 3b 20 20 65 78  74 65 72 6e 61 6c 3b 0d  |te);  external;.|
00001ac0  0a 20 20 31 36 32 20 20  20 50 52 4f 43 45 44 55  |.  162   PROCEDU|
00001ad0  52 45 20 43 6f 6d 6d 53  74 61 74 75 73 20 28 70  |RE CommStatus (p|
00001ae0  6f 72 74 3a 20 62 79 74  65 3b 0d 0a 20 20 31 36  |ort: byte;..  16|
00001af0  33 20 20 20 09 20 20 20  20 20 20 20 20 20 20 20  |3   .           |
00001b00  20 20 20 56 41 52 20 50  6f 72 74 53 74 61 74 75  |   VAR PortStatu|
00001b10  73 2c 4d 6f 64 65 6d 53  74 61 74 75 73 3a 20 62  |s,ModemStatus: b|
00001b20  79 74 65 29 3b 20 20 65  78 74 65 72 6e 61 6c 3b  |yte);  external;|
00001b30  0d 0a 20 20 31 36 34 20  20 20 0d 0a 20 20 31 36  |..  164   ..  16|
00001b40  35 20 20 20 09 20 20 20  20 20 20 20 20 20 20 20  |5   .           |
00001b50  20 20 20 20 20 7b 20 73  6f 75 6e 64 20 7d 0d 0a  |     { sound }..|
00001b60  20 20 31 36 36 20 20 20  0d 0a 20 20 31 36 37 20  |  166   ..  167 |
00001b70  20 20 50 52 4f 43 45 44  55 52 45 20 53 6f 75 6e  |  PROCEDURE Soun|
00001b80  64 20 28 66 72 65 71 3a  20 77 6f 72 64 29 3b 20  |d (freq: word); |
00001b90  20 65 78 74 65 72 6e 61  6c 3b 0d 0a 20 20 31 36  | external;..  16|
00001ba0  38 20 20 20 50 52 4f 43  45 44 55 52 45 20 53 6f  |8   PROCEDURE So|
00001bb0  75 6e 64 4f 66 66 3b 20  20 65 78 74 65 72 6e 61  |undOff;  externa|
00001bc0  6c 3b 0d 0a 20 20 31 36  39 20 20 20 50 52 4f 43  |l;..  169   PROC|
00001bd0  45 44 55 52 45 20 42 65  65 70 3b 20 20 65 78 74  |EDURE Beep;  ext|
00001be0  65 72 6e 61 6c 3b 0d 0a  20 20 31 37 30 20 20 20  |ernal;..  170   |
00001bf0  0d 0a 20 20 31 37 31 20  20 20 0d 0a 20 20 31 37  |..  171   ..  17|
00001c00  32 20 20 20 0d 0a 20 20  31 37 33 20 20 20 4c 41  |2   ..  173   LA|
00001c10  42 45 4c 0d 0a 20 20 31  37 34 20 20 20 20 20 20  |BEL..  174      |
00001c20  20 39 39 39 20 3b 0d 0a  20 20 31 37 35 20 20 20  | 999 ;..  175   |
00001c30  20 20 20 20 0d 0a 20 20  31 37 36 20 20 20 43 4f  |    ..  176   CO|
00001c40  4e 53 54 0d 0a 20 20 31  37 37 20 20 20 20 20 20  |NST..  177      |
00001c50  20 70 69 20 3d 20 33 2e  31 34 31 35 38 32 36 3b  | pi = 3.1415826;|
00001c60  0d 0a 20 20 31 37 38 20  20 20 0d 0a 20 20 31 37  |..  178   ..  17|
00001c70  39 20 20 20 56 41 52 20  78 5f 6d 61 78 2c 20 79  |9   VAR x_max, y|
00001c80  5f 6d 61 78 2c 20 63 65  6e 74 72 65 2c 20 68 65  |_max, centre, he|
00001c90  69 67 68 74 2c 20 69 2c  20 62 6f 72 64 65 72 3a  |ight, i, border:|
00001ca0  20 69 6e 74 65 67 65 72  32 3b 0d 0a 20 20 31 38  | integer2;..  18|
00001cb0  30 20 20 20 20 20 20 20  73 63 61 6c 65 3a 20 72  |0       scale: r|
00001cc0  65 61 6c 3b 20 63 68 3a  20 63 68 61 72 20 3b 20  |eal; ch: char ; |
00001cd0  73 63 61 6e 3a 20 62 79  74 65 20 3b 0d 0a 20 20  |scan: byte ;..  |
00001ce0  31 38 31 20 20 20 0d 0a  20 20 31 38 32 20 20 20  |181   ..  182   |
00001cf0  50 52 4f 43 45 44 55 52  45 20 64 6f 64 72 61 77  |PROCEDURE dodraw|
00001d00  20 28 20 78 31 2c 20 79  31 2c 20 78 32 2c 20 79  | ( x1, y1, x2, y|
00001d10  32 3a 20 69 6e 74 65 67  65 72 32 3b 20 63 6f 6c  |2: integer2; col|
00001d20  6f 72 3a 20 63 6f 6c 6f  72 72 61 6e 67 65 20 29  |or: colorrange )|
00001d30  20 3b 0d 0a 20 20 31 38  33 20 20 20 56 41 52 20  | ;..  183   VAR |
00001d40  74 65 6d 70 70 6f 73 3a  20 69 6e 74 65 67 65 72  |temppos: integer|
00001d50  32 3b 0d 0a 20 20 31 38  34 20 2b 20 42 45 47 49  |2;..  184 + BEGI|
00001d60  4e 0d 0a 20 20 31 38 35  20 2a 20 20 20 43 41 53  |N..  185 *   CAS|
00001d70  45 20 61 64 61 70 74 6f  72 20 4f 46 0d 0a 20 20  |E adaptor OF..  |
00001d80  31 38 36 20 2a 20 20 20  20 20 6d 6f 6e 6f 61 64  |186 *     monoad|
00001d90  61 70 20 3a 20 42 45 47  49 4e 0d 0a 20 20 31 38  |ap : BEGIN..  18|
00001da0  37 20 2a 20 09 20 20 20  20 20 20 20 20 20 67 6f  |7 * .         go|
00001db0  74 6f 78 79 20 28 20 78  31 2c 20 63 65 6e 74 72  |toxy ( x1, centr|
00001dc0  65 20 29 3b 0d 0a 20 20  31 38 38 20 2a 20 09 20  |e );..  188 * . |
00001dd0  20 20 20 20 20 20 20 20  70 75 74 63 68 61 72 20  |        putchar |
00001de0  28 20 63 68 72 20 28 31  39 36 29 2c 20 38 30 2d  |( chr (196), 80-|
00001df0  32 2a 62 6f 72 64 65 72  20 29 3b 0d 0a 20 20 31  |2*border );..  1|
00001e00  38 39 20 2a 20 09 20 20  20 20 20 20 20 20 20 46  |89 * .         F|
00001e10  4f 52 20 74 65 6d 70 70  6f 73 20 3a 3d 20 79 31  |OR temppos := y1|
00001e20  20 54 4f 20 79 32 20 44  4f 0d 0a 20 20 31 39 30  | TO y2 DO..  190|
00001e30  20 2a 20 09 20 20 20 20  20 20 20 20 20 20 20 42  | * .           B|
00001e40  45 47 49 4e 0d 0a 20 20  31 39 31 20 2a 20 09 20  |EGIN..  191 * . |
00001e50  20 20 20 20 20 20 20 20  20 20 20 20 67 6f 74 6f  |            goto|
00001e60  78 79 20 28 20 78 31 2c  20 74 65 6d 70 70 6f 73  |xy ( x1, temppos|
00001e70  20 29 3b 20 0d 0a 20 20  31 39 32 20 2a 20 09 20  | ); ..  192 * . |
00001e80  20 20 20 20 20 20 20 20  20 20 20 20 70 75 74 63  |            putc|
00001e90  68 61 72 20 28 20 63 68  72 20 28 31 37 39 29 2c  |har ( chr (179),|
00001ea0  20 31 20 29 3b 0d 0a 20  20 31 39 33 20 2a 20 09  | 1 );..  193 * .|
00001eb0  20 20 20 20 20 20 20 20  20 20 20 45 4e 44 20 7b  |           END {|
00001ec0  66 6f 72 7d 3b 0d 0a 20  20 31 39 34 20 2a 20 09  |for};..  194 * .|
00001ed0  20 20 20 20 20 20 20 20  20 67 6f 74 6f 78 79 20  |         gotoxy |
00001ee0  28 20 78 31 2c 20 63 65  6e 74 72 65 20 29 3b 0d  |( x1, centre );.|
00001ef0  0a 20 20 31 39 35 20 2a  20 09 20 20 20 20 20 20  |.  195 * .      |
00001f00  20 20 20 70 75 74 63 68  61 72 20 28 20 63 68 72  |   putchar ( chr|
00001f10  20 28 20 31 39 35 29 2c  20 31 20 29 3b 0d 0a 20  | ( 195), 1 );.. |
00001f20  20 31 39 36 20 2a 20 09  20 20 20 20 20 20 20 45  | 196 * .       E|
00001f30  4e 44 3b 0d 0a 20 20 31  39 37 20 2a 20 20 20 20  |ND;..  197 *    |
00001f40  20 6f 74 68 65 72 77 69  73 65 20 64 72 61 77 20  | otherwise draw |
00001f50  28 20 78 31 2c 20 79 31  2c 20 78 32 2c 20 79 32  |( x1, y1, x2, y2|
00001f60  2c 20 63 6f 6c 6f 72 20  29 3b 0d 0a 20 20 31 39  |, color );..  19|
00001f70  38 20 2b 20 20 20 45 4e  44 20 7b 63 61 73 65 7d  |8 +   END {case}|
00001f80  0d 0a 20 20 31 39 39 20  2b 20 45 4e 44 20 7b 64  |..  199 + END {d|
00001f90  6f 64 72 61 77 7d 3b 0d  0a 20 20 32 30 30 20 2b  |odraw};..  200 +|
00001fa0  20 0d 0a 20 20 32 30 31  20 20 20 50 52 4f 43 45  | ..  201   PROCE|
00001fb0  44 55 52 45 20 64 6f 70  6c 6f 74 20 28 20 78 31  |DURE doplot ( x1|
00001fc0  2c 20 79 31 20 3a 20 69  6e 74 65 67 65 72 32 3b  |, y1 : integer2;|
00001fd0  20 63 6f 6c 6f 72 3a 20  63 6f 6c 6f 72 72 61 6e  | color: colorran|
00001fe0  67 65 20 29 20 3b 0d 0a  20 20 32 30 32 20 20 20  |ge ) ;..  202   |
00001ff0  56 41 52 20 73 70 65 63  69 61 6c 63 68 61 72 3a  |VAR specialchar:|
00002000  20 63 68 61 72 3b 0d 0a  20 20 32 30 33 20 2b 20  | char;..  203 + |
00002010  42 45 47 49 4e 0d 0a 20  20 32 30 34 20 2a 20 20  |BEGIN..  204 *  |
00002020  20 63 61 73 65 20 61 64  61 70 74 6f 72 20 6f 66  | case adaptor of|
00002030  0d 0a 20 20 32 30 35 20  2a 20 20 20 20 20 6d 6f  |..  205 *     mo|
00002040  6e 6f 61 64 61 70 20 3a  20 42 45 47 49 4e 0d 0a  |noadap : BEGIN..|
00002050  20 20 32 30 36 20 2a 20  09 20 20 20 20 20 20 20  |  206 * .       |
00002060  20 20 67 6f 74 6f 78 79  20 28 78 31 2c 20 79 31  |  gotoxy (x1, y1|
00002070  29 3b 0d 0a 20 20 32 30  37 20 2a 20 09 20 20 20  |);..  207 * .   |
00002080  20 20 20 20 20 20 43 41  53 45 20 63 6f 6c 6f 72  |      CASE color|
00002090  20 4f 46 0d 0a 20 20 32  30 38 20 2a 20 09 20 20  | OF..  208 * .  |
000020a0  20 20 20 20 20 20 20 20  20 31 20 3a 20 73 70 65  |         1 : spe|
000020b0  63 69 61 6c 63 68 61 72  20 3a 3d 20 27 2a 27 20  |cialchar := '*' |
000020c0  3b 0d 0a 20 20 32 30 39  20 2a 20 09 20 20 20 20  |;..  209 * .    |
000020d0  20 20 20 20 20 20 20 33  20 3a 20 73 70 65 63 69  |       3 : speci|
000020e0  61 6c 63 68 61 72 20 3a  3d 20 27 6f 27 20 3b 0d  |alchar := 'o' ;.|
000020f0  0a 20 20 32 31 30 20 2a  20 09 20 20 20 20 20 20  |.  210 * .      |
00002100  20 20 20 20 20 6f 74 68  65 72 77 69 73 65 20 73  |     otherwise s|
00002110  70 65 63 69 61 6c 63 68  61 72 20 3a 3d 20 27 2b  |pecialchar := '+|
00002120  27 20 3b 0d 0a 20 20 32  31 31 20 2b 20 09 20 20  |' ;..  211 + .  |
00002130  20 20 20 20 20 20 20 45  4e 44 20 7b 63 61 73 65  |       END {case|
00002140  7d 3b 0d 0a 20 20 32 31  32 20 2a 20 09 20 20 20  |};..  212 * .   |
00002150  20 20 20 20 20 20 70 75  74 63 68 61 72 20 28 20  |      putchar ( |
00002160  73 70 65 63 69 61 6c 63  68 61 72 2c 20 31 20 29  |specialchar, 1 )|
00002170  3b 0d 0a 20 20 32 31 33  20 2a 20 09 20 20 20 20  |;..  213 * .    |
00002180  20 20 20 45 4e 44 3b 0d  0a 20 20 32 31 34 20 2a  |   END;..  214 *|
00002190  20 20 20 20 20 6f 74 68  65 72 77 69 73 65 20 70  |     otherwise p|
000021a0  6c 6f 74 20 28 20 78 31  2c 20 79 31 2c 20 63 6f  |lot ( x1, y1, co|
000021b0  6c 6f 72 20 29 3b 0d 0a  20 20 32 31 35 20 2b 20  |lor );..  215 + |
000021c0  20 20 45 4e 44 20 7b 63  61 73 65 7d 3b 0d 0a 20  |  END {case};.. |
000021d0  20 32 31 36 20 2a 20 45  4e 44 20 7b 64 6f 70 6c  | 216 * END {dopl|
000021e0  6f 74 7d 3b 0d 0a 20 20  32 31 37 20 2b 20 0d 0a  |ot};..  217 + ..|
000021f0  20 20 32 31 38 20 2b 20  42 45 47 49 4e 20 7b 20  |  218 + BEGIN { |
00002200  6d 61 69 6e 20 70 72 6f  67 72 61 6d 20 7d 0d 0a  |main program }..|
00002210  20 20 32 31 39 20 2a 20  20 20 69 6e 69 74 73 63  |  219 *   initsc|
00002220  72 65 65 6e 20 3b 0d 0a  20 20 32 32 30 20 2a 20  |reen ;..  220 * |
00002230  20 20 63 61 73 65 20 61  64 61 70 74 6f 72 20 6f  |  case adaptor o|
00002240  66 0d 0a 20 20 32 32 31  20 2a 20 20 20 20 20 63  |f..  221 *     c|
00002250  67 61 64 61 70 20 3a 20  42 45 47 49 4e 0d 0a 20  |gadap : BEGIN.. |
00002260  20 32 32 32 20 2a 20 09  20 20 20 20 20 20 20 73  | 222 * .       s|
00002270  65 74 73 63 72 65 65 6e  6d 6f 64 65 20 28 20 63  |etscreenmode ( c|
00002280  67 61 68 69 72 65 73 20  29 20 3b 0d 0a 20 20 32  |gahires ) ;..  2|
00002290  32 33 20 2a 20 09 20 20  20 20 20 20 20 63 67 61  |23 * .       cga|
000022a0  63 6f 6c 6f 72 20 28 20  67 72 65 65 6e 20 29 20  |color ( green ) |
000022b0  3b 0d 0a 20 20 32 32 34  20 2a 20 09 20 20 20 20  |;..  224 * .    |
000022c0  20 20 20 78 5f 6d 61 78  20 3a 3d 20 36 33 39 3b  |   x_max := 639;|
000022d0  0d 0a 20 20 32 32 35 20  2a 20 09 20 20 20 20 20  |..  225 * .     |
000022e0  20 20 79 5f 6d 61 78 20  3a 3d 20 31 39 39 3b 0d  |  y_max := 199;.|
000022f0  0a 20 20 32 32 36 20 2a  20 09 20 20 20 20 20 20  |.  226 * .      |
00002300  20 62 6f 72 64 65 72 20  3a 3d 20 31 30 3b 0d 0a  | border := 10;..|
00002310  20 20 32 32 37 20 2a 20  09 20 20 20 20 20 45 4e  |  227 * .     EN|
00002320  44 3b 0d 0a 20 20 32 32  38 20 2a 20 20 20 20 20  |D;..  228 *     |
00002330  65 67 61 64 61 70 20 3a  20 42 45 47 49 4e 0d 0a  |egadap : BEGIN..|
00002340  20 20 32 32 39 20 2a 20  09 20 20 20 20 20 20 20  |  229 * .       |
00002350  73 65 74 73 63 72 65 65  6e 6d 6f 64 65 20 28 20  |setscreenmode ( |
00002360  65 67 61 67 72 61 70 68  20 29 20 3b 0d 0a 20 20  |egagraph ) ;..  |
00002370  32 33 30 20 2a 20 09 20  20 20 20 20 20 20 78 5f  |230 * .       x_|
00002380  6d 61 78 20 3a 3d 20 36  33 39 3b 0d 0a 20 20 32  |max := 639;..  2|
00002390  33 31 20 2a 20 09 20 20  20 20 20 20 20 79 5f 6d  |31 * .       y_m|
000023a0  61 78 20 3a 3d 20 33 34  39 3b 0d 0a 20 20 32 33  |ax := 349;..  23|
000023b0  32 20 2a 20 09 20 20 20  20 20 20 20 62 6f 72 64  |2 * .       bord|
000023c0  65 72 20 3a 3d 20 31 30  3b 0d 0a 20 20 32 33 33  |er := 10;..  233|
000023d0  20 2a 20 09 20 20 20 20  20 45 4e 44 3b 0d 0a 20  | * .     END;.. |
000023e0  20 32 33 34 20 2a 20 20  20 20 20 6d 6f 6e 6f 61  | 234 *     monoa|
000023f0  64 61 70 20 3a 20 42 45  47 49 4e 0d 0a 20 20 32  |dap : BEGIN..  2|
00002400  33 35 20 2a 20 09 20 20  20 20 20 20 20 20 20 78  |35 * .         x|
00002410  5f 6d 61 78 20 3a 3d 20  38 30 3b 0d 0a 20 20 32  |_max := 80;..  2|
00002420  33 36 20 2a 20 09 20 20  20 20 20 20 20 20 20 79  |36 * .         y|
00002430  5f 6d 61 78 20 3a 3d 20  32 35 3b 0d 0a 20 20 32  |_max := 25;..  2|
00002440  33 37 20 2a 20 09 20 20  20 20 20 20 20 20 20 62  |37 * .         b|
00002450  6f 72 64 65 72 20 3a 3d  20 31 3b 0d 0a 20 20 32  |order := 1;..  2|
00002460  33 38 20 2a 20 09 20 20  20 20 20 20 20 45 4e 44  |38 * .       END|
00002470  3b 0d 0a 20 20 32 33 39  20 2a 20 20 20 20 20 6f  |;..  239 *     o|
00002480  74 68 65 72 77 69 73 65  20 47 4f 54 4f 20 39 39  |therwise GOTO 99|
00002490  39 3b 0d 0a 20 20 32 34  30 20 2b 20 20 20 20 20  |9;..  240 +     |
000024a0  45 4e 44 20 7b 63 61 73  65 7d 3b 0d 0a 20 20 32  |END {case};..  2|
000024b0  34 31 20 2b 20 20 20 20  20 0d 0a 20 20 32 34 32  |41 +     ..  242|
000024c0  20 2a 20 20 20 63 65 6e  74 72 65 20 3a 3d 20 79  | *   centre := y|
000024d0  5f 6d 61 78 20 44 49 56  20 32 3b 0d 0a 20 20 32  |_max DIV 2;..  2|
000024e0  34 33 20 2a 20 20 20 68  65 69 67 68 74 20 3a 3d  |43 *   height :=|
000024f0  20 63 65 6e 74 72 65 20  2d 20 62 6f 72 64 65 72  | centre - border|
00002500  3b 0d 0a 20 20 32 34 34  20 2a 20 20 20 73 63 61  |;..  244 *   sca|
00002510  6c 65 20 3a 3d 20 32 20  2a 20 70 69 20 2f 20 28  |le := 2 * pi / (|
00002520  78 5f 6d 61 78 20 2d 20  32 2a 62 6f 72 64 65 72  |x_max - 2*border|
00002530  29 3b 0d 0a 20 20 32 34  35 20 2b 20 20 20 0d 0a  |);..  245 +   ..|
00002540  20 20 32 34 36 20 2a 20  20 20 63 6c 72 73 63 72  |  246 *   clrscr|
00002550  3b 0d 0a 20 20 32 34 37  20 2a 20 20 20 64 6f 64  |;..  247 *   dod|
00002560  72 61 77 28 62 6f 72 64  65 72 2c 20 62 6f 72 64  |raw(border, bord|
00002570  65 72 2c 20 62 6f 72 64  65 72 2c 20 79 5f 6d 61  |er, border, y_ma|
00002580  78 20 2d 20 62 6f 72 64  65 72 2c 20 31 29 3b 0d  |x - border, 1);.|
00002590  0a 20 20 32 34 38 20 2a  20 20 20 49 46 20 61 64  |.  248 *   IF ad|
000025a0  61 70 74 6f 72 20 3c 3e  20 6d 6f 6e 6f 61 64 61  |aptor <> monoada|
000025b0  70 20 54 48 45 4e 0d 0a  20 20 32 34 39 20 2a 20  |p THEN..  249 * |
000025c0  20 20 20 20 64 72 61 77  28 62 6f 72 64 65 72 2c  |    draw(border,|
000025d0  20 63 65 6e 74 72 65 2c  20 78 5f 6d 61 78 20 2d  | centre, x_max -|
000025e0  20 62 6f 72 64 65 72 2c  20 63 65 6e 74 72 65 2c  | border, centre,|
000025f0  20 31 29 3b 0d 0a 20 20  32 35 30 20 2b 20 20 20  | 1);..  250 +   |
00002600  20 20 20 20 0d 0a 20 20  32 35 31 20 2a 20 20 20  |    ..  251 *   |
00002610  46 4f 52 20 69 20 3a 3d  20 30 20 54 4f 20 78 5f  |FOR i := 0 TO x_|
00002620  6d 61 78 20 2d 20 32 2a  62 6f 72 64 65 72 20 44  |max - 2*border D|
00002630  4f 0d 0a 20 20 32 35 32  20 2a 20 20 20 20 20 42  |O..  252 *     B|
00002640  45 47 49 4e 0d 0a 20 20  32 35 33 20 2a 20 20 20  |EGIN..  253 *   |
00002650  20 20 20 20 64 6f 70 6c  6f 74 28 69 20 2b 20 62  |    doplot(i + b|
00002660  6f 72 64 65 72 2c 20 74  72 75 6e 63 20 28 63 65  |order, trunc (ce|
00002670  6e 74 72 65 20 2b 20 68  65 69 67 68 74 20 2a 20  |ntre + height * |
00002680  73 69 6e 28 69 20 2a 20  73 63 61 6c 65 29 29 2c  |sin(i * scale)),|
00002690  20 31 29 3b 0d 0a 20 20  32 35 34 20 2a 20 20 20  | 1);..  254 *   |
000026a0  20 20 20 20 64 6f 70 6c  6f 74 28 69 20 2b 20 62  |    doplot(i + b|
000026b0  6f 72 64 65 72 2c 20 74  72 75 6e 63 20 28 63 65  |order, trunc (ce|
000026c0  6e 74 72 65 20 2b 20 68  65 69 67 68 74 20 2a 20  |ntre + height * |
000026d0  73 69 6e 28 69 20 2a 20  73 63 61 6c 65 20 2a 20  |sin(i * scale * |
000026e0  32 29 29 2c 20 33 29 3b  0d 0a 20 20 32 35 35 20  |2)), 3);..  255 |
000026f0  2a 20 20 20 20 20 20 20  49 46 20 61 64 61 70 74  |*       IF adapt|
00002700  6f 72 20 3c 3e 20 6d 6f  6e 6f 61 64 61 70 20 54  |or <> monoadap T|
00002710  48 45 4e 0d 0a 20 20 32  35 36 20 2a 20 09 42 45  |HEN..  256 * .BE|
00002720  47 49 4e 0d 0a 20 20 32  35 37 20 2a 20 09 20 20  |GIN..  257 * .  |
00002730  70 6c 6f 74 28 69 20 2b  20 62 6f 72 64 65 72 2c  |plot(i + border,|
00002740  20 74 72 75 6e 63 20 28  63 65 6e 74 72 65 20 2b  | trunc (centre +|
00002750  20 68 65 69 67 68 74 20  2a 20 73 69 6e 28 69 20  | height * sin(i |
00002760  2a 20 73 63 61 6c 65 20  2a 20 33 29 29 2c 20 35  |* scale * 3)), 5|
00002770  29 3b 0d 0a 20 20 32 35  38 20 2a 20 09 20 20 70  |);..  258 * .  p|
00002780  6c 6f 74 28 69 20 2b 20  62 6f 72 64 65 72 2c 20  |lot(i + border, |
00002790  74 72 75 6e 63 20 28 63  65 6e 74 72 65 20 2b 20  |trunc (centre + |
000027a0  68 65 69 67 68 74 20 2a  20 73 69 6e 28 69 20 2a  |height * sin(i *|
000027b0  20 73 63 61 6c 65 20 2a  20 34 29 29 2c 20 37 29  | scale * 4)), 7)|
000027c0  3b 0d 0a 20 20 32 35 39  20 2a 20 09 45 4e 44 3b  |;..  259 * .END;|
000027d0  0d 0a 20 20 32 36 30 20  2a 20 20 20 20 20 45 4e  |..  260 *     EN|
000027e0  44 3b 0d 0a 20 20 32 36  31 20 2a 20 20 20 47 65  |D;..  261 *   Ge|
000027f0  74 4b 65 79 62 6f 61 72  64 20 28 20 43 68 2c 20  |tKeyboard ( Ch, |
00002800  53 63 61 6e 20 29 20 3b  0d 0a 20 20 32 36 32 20  |Scan ) ;..  262 |
00002810  2a 20 20 20 49 6e 69 74  53 63 72 65 65 6e 20 3b  |*   InitScreen ;|
00002820  0d 0a 20 20 32 36 33 20  2b 20 39 39 39 3a 0d 0a  |..  263 + 999:..|
00002830  20 20 32 36 34 20 2a 20  45 4e 44 2e 0d 0a        |  264 * END...|
0000283e
06-05-89/SINE_PRN.m0
06-05-89/SINE_PRN.m1
06-05-89/SINE_PRN.m2
06-05-89/SINE_PRN.m4
06-05-89/SINE_PRN.m5