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