home *** CD-ROM | disk | FTP | other *** search
- (*****************************************************************************)
- (* *)
- (* F U L L S C R E E N E D I T O R *)
- (* *)
- (* By Martine Wedlake *)
- (* *)
- (* This programme may be copied, or modified in any way for non- *)
- (* commercial uses. If you would like to use this programme in a business *)
- (* environment please write me for licencing, and so I can keep track of *)
- (* its success. If you like this programme a donation would be awfully *)
- (* nice of you. Thanks! *)
- (* Martine Wedlake *)
- (* 4551 N.E. Simpson St. *)
- (* Portland Or *)
- (* 97218 *)
- (* *)
- (*****************************************************************************)
-
- program configure_editor;
- {U-}
- {C-}
- type
- str64=string[64];
- string_of_80=string[80];
- string_of_255=string[255];
- config=record
- graphic_letters:array[1..19,1..8] of char;
- insert_mode:boolean;
- help:boolean;
- forg:integer;
- back:integer;
- Help_path:str64;
- end;
- var
- f_configure:file of config;
- configure:config;
-
- procedure center(stringy:string_of_80);{-----this centers a line of text}
-
- { Centers a line of text at the present Y co-ordinate.}
-
- var
- endpos:integer;
- begin
- gotoxy(40-length(stringy) div 2,wherey); {goto position}
- write(stringy); {write string}
- end; {end of center procedure}
-
- procedure border(x,y,x2,y2,forg,{------------This makes a lined border}
- back:integer;
- double:boolean);
-
- { Border will put a double or single lined border by specifying the top left
- and bottom left co-ordinates for the border. x,y is the co-ordinate of the
- top left. x2,y2 is the co-ordinate of the bottom right. Forg is the
- forground colour, while Back is the background colour. If double is true
- the border will be a double line. If it is false, then it will be a single
- line border.}
-
- var
- old_x,
- old_y,
- loop:integer;
- top_left,
- top_right,
- bot_left,
- bot_right,
- accross,
- down:char;
- BEGIN
- if (x2<x) or (y2<y) or (y>24) or (x>80) {check to see that parameters valid}
- or (y<1) or (x<1) then
- begin {if not valid then write error}
- clrscr;
- textcolor(white);
- textbackground(black);
- writeln('ERROR in procedure boarder. Co-ordanates incorrect.');
- halt;
- end;
- old_x:=wherex; {remember x,y of currsor}
- old_y:=wherey;
- TextColor(forg); {set the colours to be used}
- textbackground(back);
- if double then {assign the various characters for}
- begin {corners, vertical, and horizontal}
- top_left:=#201; {lines}
- top_right:=#187;
- bot_left:=#200;
- bot_right:=#188;
- accross:=#205;
- down:=#186;
- end
- else
- begin {For single lines}
- top_left:=#218;
- top_right:=#191;
- bot_left:=#192;
- bot_right:=#217;
- accross:=#196;
- down:=#179;
- end;
- gotoxy(x,y);
- WRITE(top_left); {output the corner pieces}
- gotoxy(x2,y);
- WRITELN(top_right);
- gotoxy(x,y2);
- WRITE(bot_left);
- gotoxy(x2,y2);
- WRITE(bot_right);
- FOR loop:=x+1 TO x2-1 DO {loop for the horz. line}
- begin
- gotoxy(loop,y);
- WRITE(accross);
- gotoxy(loop,y2);
- write(accross);
- end;
- for loop:=y+1 to y2-1 do {loop for the vert. lines}
- begin
- gotoxy(x,loop);
- WRITE(down);
- gotoxy(x2,loop);
- write(down);
- end;
- gotoxy(old_x,old_y); {restore cursor pos}
- textcolor(white); {set colour to "normal"}
- textbackground(black);
- END;
-
- PROCEDURE title(title1:string_of_80);{-------this prints out the title}
-
- { Title prints out a nice title with the title automatically centered
- on the screen and with a border around it. Use title(name) where the
- title you want to print is name. Name must be a string. It can be any
- length. }
-
- VAR
- loop, {a loop counter}
- string_length, {the length of the title string}
- x_position:INTEGER; {the position for centering title}
- BEGIN
- ClrScr;
- GotoXY(1,3);
- TextColor(white); {title is in white}
- Center(title1); {write title out}
- string_length:=LENGTH(title1); {assigns the length of title}
- x_position:=40-(string_length DIV 2)-1;
- border(x_position,2,x_position+string_length+1,
- 4,lightblue,black,true);
- TextColor(lightblue); {frame is lightblue}
- gotoxy(1,6);
- END;
-
- PROCEDURE cursor(on:BOOLEAN);{---------------This sets the cursor on/off}
-
- {procedure cursor will set the cursor on or off depending if the argument sent
- is true or false. If the argument is false the cursor will be turned off,
- if the argument is true the cursor is the cursor is turned on.}
-
- CONST
- video_io=$10; {this is the interrupt number}
- VAR
- regs:RECORD CASE INTEGER OF {this sets up the registers}
- 1: (AX,BX,CX,DX,BP,DI,SI,DS,ES,Flags: INTEGER);
- 2: (AL,AH,BL,BH,CL,CH,DL,DH: Byte);
- END;
- BEGIN
- IF on THEN {if the user wants a cursor then}
- BEGIN
- regs.ch:=$06; {set the registers up for display}
- regs.cl:=$07; {ch = start line, cl = end line}
- END
- ELSE {else, the cursor is not displayed}
- BEGIN
- regs.ch:=$20; {set the register up for non-}
- regs.cl:=$00; {display, ch=$20 doesn't display}
- END;
- regs.ah:=$01;
- regs.al:=$00;
- Intr(video_io,regs);
- END;
-
- PROCEDURE waitkey;{--------------------------Press any key to continue proc.}
-
- { This is a very simple but useful procedure to wait for a keypress to
- continue with the program.}
-
- VAR
- key:CHAR;
- BEGIN
- cursor(FALSE); {turn cursor off}
- GotoXY(1,25); {set colour and position}
- TextColor(black);
- TextBackGround(white);
- center('Press any key to continue with program.');{write message}
- REPEAT UNTIL KeyPressed; {wait for key}
- READ(Kbd,key); {store the key so it won't}
- GotoXY(1,25); {screw up the next read(kbd)}
- TextColor(white); {restore colour}
- TextBackGround(black);
- DelLine; {erase message}
- cursor(TRUE); {restore cursor}
- END; {end of the waitkey procedure}
-
-
- function upstring(str:string_of_255){------returns uppercase strings}
- :string_of_255;
-
- { This will take a string and return it's uppercase counterpart.}
-
- var
- temp_str:string_of_255;
- temp:integer;
- begin
- temp:=1; {initialize the counter variable}
- temp_str:=''; {initialize the dummy string}
- for temp:=1 to length(str) do {loop and set it to upper case}
- temp_str:=temp_str+upcase(copy(str,temp,1));
- upstring:=temp_str; {return the correct value}
- end; {end of the upstring function}
-
- procedure video(cond:boolean);{--------------Turns on or off the display}
-
- { This will turn the display on or off. You can still write to the screen
- but the text will not be seen until you set video(on). I have set up two
- constants for this procedure -- On=True, Off=false. You can use these
- constants instead of true/false. NOTE: Some turbo instuctions will auto-
- matically set the video as on. Some are ClrScr, TextMode, etc}
-
- begin
- repeat until port[$3da] and 8=8; {wait for video sync}
- if cond then
- port[$3d8]:=mem[$40:$65] or 8 {restore display}
- else
- port[$3d8]:=$25; {turn off display by setting regs}
- end; {end of video procedure}
-
- function exist(filename:string_of_255){------tests if a file exists}
- :boolean;
-
- { This routine will check to see if a file exists or not.}
-
- var
- f_test:file;
-
- begin
- assign(f_test,filename);
- {$I-}
- reset(f_test);
- {$I+}
- exist:=(ioresult = 0);
- close(f_test);
- end; {End of function exist}
-
- PROCEDURE TitleScreen;
- var
- key:char;
- BEGIN
- {This screen was done with the aid of the Screen Writer program}
- {Date: 03-21-87}
- TextColor(LightGray);
- TextBackground(Black);
- ClrScr;
- gotoxy(19,1);
- TextColor(White);
- TextBackground(Cyan);
- video(false);
- Writeln('┌────────────────────────────────────────┐');
- gotoxy(19,2);
- TextColor(White);
- TextBackground(Cyan);
- Write('│');
- TextColor(LightGray);
- TextBackground(Blue);
- Write(' ╔═══╕ ╔══╕ ╔══╗ ╔══╕ ╔══╕ ╔╗ ╥ ');
- TextColor(White);
- TextBackground(Cyan);
- Writeln('│');
- gotoxy(19,3);
- TextColor(White);
- TextBackground(Cyan);
- Write('│');
- TextColor(LightGray);
- TextBackground(Blue);
- Write(' ╚═══╗ ║ ║ ║ ║ ║ ║╚╗ ║ ');
- TextColor(White);
- TextBackground(Cyan);
- Writeln('│');
- gotoxy(19,4);
- TextColor(White);
- TextBackground(Cyan);
- Write('│');
- TextColor(LightGray);
- TextBackground(Blue);
- Write(' ║ ║ ╠═╦╝ ╠╡ ╠╡ ║ ╚╗║ ');
- TextColor(White);
- TextBackground(Cyan);
- Writeln('│');
- gotoxy(19,5);
- TextColor(White);
- TextBackground(Cyan);
- Write('│');
- TextColor(LightGray);
- TextBackground(Blue);
- Write(' ╘═══╝ ╚══╛ ╨ ╚╕ ╚══╛ ╚══╛ ╨ ╚╝ ');
- TextColor(White);
- TextBackground(Cyan);
- Writeln('│');
- gotoxy(19,6);
- TextColor(White);
- TextBackground(Cyan);
- Write('│');
- TextColor(LightGray);
- TextBackground(Blue);
- Write(' ╥ ╥ ╔══╗ ╒╦╕ ╒══╦══╕ ╔══╕ ╔══╗ ');
- TextColor(White);
- TextBackground(Cyan);
- Write('│');
- gotoxy(19,7);
- TextColor(White);
- TextBackground(Cyan);
- Write('│');
- TextColor(LightGray);
- TextBackground(Blue);
- Write(' ║ ║ ║ ║ ║ ║ ║ ║ ║ ');
- TextColor(White);
- TextBackground(Cyan);
- Write('│');
- gotoxy(19,8);
- TextColor(White);
- TextBackground(Cyan);
- Write('│');
- TextColor(LightGray);
- TextBackground(Blue);
- Write(' ║╔╧╗║ ╠═╦╝ ║ ║ ╠╡ ╠═╦╝ ');
- TextColor(White);
- TextBackground(Cyan);
- Write('│');
- gotoxy(19,9);
- TextColor(White);
- TextBackground(Cyan);
- Write('│');
- TextColor(LightGray);
- TextBackground(Blue);
- Write(' ╚╝ ╚╝ ╨ ╚╕ ╘╩╛ ─╨─ ╚══╛ ╨ ╚╕ ');
- TextColor(White);
- TextBackground(Cyan);
- Write('│');
- gotoxy(19,10);
- TextColor(White);
- TextBackground(Cyan);
- Writeln('└────────────────────────────────────────┘');
- TextColor(LightGray);
- TextBackground(Black);
- video(true);
- gotoxy(25,12);
- Write('E D I T O R C O N F I G U R E');
- gotoxy(1,15);
- Writeln('':7,'The author wishes to note that this programme may be freely copied');
- Writeln('':7,'and distributed as long as there are no costs imposed for the copy');
- Writeln('':7,'other than prices for the media itself. If anyone has any queries');
- Writeln('':7,'he can reach me at: Martine Wedlake');
- Writeln('':28,'4551 N.E. Simpson St.');
- Writeln('':28,'Portland, OR.');
- Writeln('':28,'97218');
- writeln;
- Writeln('':21,'(C) Copywrite 1987, Martine B. Wedlake');
- Writeln('':31,'<<< Press A Key >>>');
- repeat until keypressed;
- read(kbd,key);
- END;
-
- procedure load_config;
- begin
- if not exist('EDSCREEN.CNF') then
- begin
- with configure do
- begin
- graphic_letters[1,1]:=#205;
- graphic_letters[1,2]:=#186;
- graphic_letters[1,3]:=#187;
- graphic_letters[1,4]:=#201;
- graphic_letters[1,5]:=#188;
- graphic_letters[1,6]:=#200;
- graphic_letters[1,7]:=#206;
- graphic_letters[1,8]:=#215;
- graphic_letters[2,1]:=#196;
- graphic_letters[2,2]:=#179;
- graphic_letters[2,3]:=#191;
- graphic_letters[2,4]:=#218;
- graphic_letters[2,5]:=#217;
- graphic_letters[2,6]:=#192;
- graphic_letters[2,7]:=#197;
- graphic_letters[2,8]:=#216;
- graphic_letters[3,1]:=#180;
- graphic_letters[3,2]:=#195;
- graphic_letters[3,3]:=#194;
- graphic_letters[3,4]:=#193;
- graphic_letters[3,5]:=#185;
- graphic_letters[3,6]:=#204;
- graphic_letters[3,7]:=#203;
- graphic_letters[3,8]:=#202;
- graphic_letters[4,1]:=#184;
- graphic_letters[4,2]:=#213;
- graphic_letters[4,3]:=#190;
- graphic_letters[4,4]:=#212;
- graphic_letters[4,5]:=#183;
- graphic_letters[4,6]:=#214;
- graphic_letters[4,7]:=#189;
- graphic_letters[4,8]:=#211;
- graphic_letters[5,1]:=#181;
- graphic_letters[5,2]:=#198;
- graphic_letters[5,3]:=#208;
- graphic_letters[5,4]:=#210;
- graphic_letters[5,5]:=#182;
- graphic_letters[5,6]:=#199;
- graphic_letters[5,7]:=#207;
- graphic_letters[5,8]:=#209;
- graphic_letters[6,1]:=#219;
- graphic_letters[6,2]:=#220;
- graphic_letters[6,3]:=#221;
- graphic_letters[6,4]:=#222;
- graphic_letters[6,5]:=#223;
- graphic_letters[6,6]:=#176;
- graphic_letters[6,7]:=#177;
- graphic_letters[6,8]:=#178;
- graphic_letters[7,1]:=#142;
- graphic_letters[7,2]:=#143;
- graphic_letters[7,3]:=#146;
- graphic_letters[7,4]:=#128;
- graphic_letters[7,5]:=#144;
- graphic_letters[7,6]:=#153;
- graphic_letters[7,7]:=#154;
- graphic_letters[7,8]:=#165;
- graphic_letters[8,1]:=#131;
- graphic_letters[8,2]:=#132;
- graphic_letters[8,3]:=#133;
- graphic_letters[8,4]:=#134;
- graphic_letters[8,5]:=#145;
- graphic_letters[8,6]:=#160;
- graphic_letters[8,7]:=#166;
- graphic_letters[8,8]:=#032;
- graphic_letters[9,1]:=#130;
- graphic_letters[9,2]:=#136;
- graphic_letters[9,3]:=#137;
- graphic_letters[9,4]:=#138;
- graphic_letters[9,5]:=#139;
- graphic_letters[9,6]:=#140;
- graphic_letters[9,7]:=#141;
- graphic_letters[9,8]:=#161;
- graphic_letters[10,1]:=#147;
- graphic_letters[10,2]:=#148;
- graphic_letters[10,3]:=#149;
- graphic_letters[10,4]:=#162;
- graphic_letters[10,5]:=#167;
- graphic_letters[10,6]:=#032;
- graphic_letters[10,7]:=#032;
- graphic_letters[10,8]:=#032;
- graphic_letters[11,1]:=#129;
- graphic_letters[11,2]:=#150;
- graphic_letters[11,3]:=#151;
- graphic_letters[11,4]:=#163;
- graphic_letters[11,5]:=#032;
- graphic_letters[11,6]:=#032;
- graphic_letters[11,7]:=#032;
- graphic_letters[11,8]:=#032;
- graphic_letters[12,1]:=#135;
- graphic_letters[12,2]:=#152;
- graphic_letters[12,3]:=#164;
- graphic_letters[12,4]:=#168;
- graphic_letters[12,5]:=#159;
- graphic_letters[12,6]:=#158;
- graphic_letters[12,7]:=#157;
- graphic_letters[12,8]:=#173;
- graphic_letters[13,1]:=#155;
- graphic_letters[13,2]:=#156;
- graphic_letters[13,3]:=#171;
- graphic_letters[13,4]:=#172;
- graphic_letters[13,5]:=#174;
- graphic_letters[13,6]:=#175;
- graphic_letters[13,7]:=#169;
- graphic_letters[13,8]:=#170;
- graphic_letters[14,1]:=#226;
- graphic_letters[14,2]:=#127;
- graphic_letters[14,3]:=#233;
- graphic_letters[14,4]:=#240;
- graphic_letters[14,5]:=#228;
- graphic_letters[14,6]:=#232;
- graphic_letters[14,7]:=#234;
- graphic_letters[14,8]:=#032;
- graphic_letters[15,1]:=#224;
- graphic_letters[15,2]:=#225;
- graphic_letters[15,3]:=#227;
- graphic_letters[15,4]:=#229;
- graphic_letters[15,5]:=#230;
- graphic_letters[15,6]:=#231;
- graphic_letters[15,7]:=#233;
- graphic_letters[15,8]:=#236;
- graphic_letters[16,1]:=#237;
- graphic_letters[16,2]:=#238;
- graphic_letters[16,3]:=#239;
- graphic_letters[16,4]:=#241;
- graphic_letters[16,5]:=#242;
- graphic_letters[16,6]:=#243;
- graphic_letters[16,7]:=#244;
- graphic_letters[16,8]:=#245;
- graphic_letters[17,1]:=#246;
- graphic_letters[17,2]:=#247;
- graphic_letters[17,3]:=#248;
- graphic_letters[17,4]:=#249;
- graphic_letters[17,5]:=#250;
- graphic_letters[17,6]:=#251;
- graphic_letters[17,7]:=#252;
- graphic_letters[17,8]:=#253;
- graphic_letters[18,1]:=#003;
- graphic_letters[18,2]:=#004;
- graphic_letters[18,3]:=#005;
- graphic_letters[18,4]:=#006;
- graphic_letters[18,5]:=#024;
- graphic_letters[18,6]:=#025;
- graphic_letters[18,7]:=#026;
- graphic_letters[18,8]:=#027;
- graphic_letters[19,1]:=#001;
- graphic_letters[19,2]:=#002;
- graphic_letters[19,3]:=#016;
- graphic_letters[19,4]:=#017;
- graphic_letters[19,5]:=#018;
- graphic_letters[19,6]:=#023;
- graphic_letters[19,7]:=#019;
- graphic_letters[19,8]:=#020;
- help:=true;
- insert_mode:=false;
- forg:=lightgray;
- back:=black;
- help_path:='A:\';
- end;
- end
- else
- begin
- assign(f_configure,'edscreen.cnf');
- reset(f_configure);
- read(f_configure,configure);
- close(f_configure);
- end;
- end;
-
- procedure screen;
- begin
- title(' SCREEN WRITER CONFIGURATION ');
- textcolor(white);
- gotoxy(1,6);
- center('Written by Martine B. Wedlake');
- textcolor(lightblue);
- gotoxy(5,8);
- write('Insert Mode At Start :');
- gotoxy(5,10);
- write('Look To Disk For Help :');
- gotoxy(5,12);
- write('Path For Help :');
- gotoxy(5,14);
- write('Forground At Start :');
- gotoxy(5,16);
- write('Background At Start :');
- gotoxy(5,18);
- write('The Graphic Letter Set:');
- gotoxy(5,20);
- write('Exit The Programme :');
- gotoxy(9,22);
- textcolor(white);
- write('Press [');
- textcolor(white+blink);
- write('+');
- textcolor(white);
- write('] to increase Graph Level, [');
- textcolor(white+blink);
- write('-');
- textcolor(white);
- write('] to decrease Graph Level.');
- gotoxy(12,24);
- center('Press <SPACE BAR> to reset.');
- gotoxy(1,25);
- center('Use arrow keys to position cursor. Press RETURN to Activate');
- end;
-
- procedure display_info(y,level,letter:integer);
- var
- counter:integer;
- begin
- textcolor(red);
- gotoxy(30,8);
- if configure.insert_mode then write('ON ') else write('OFF');
- gotoxy(30,10);
- if configure.help then write('YES') else write('NO ');
- gotoxy(30,12);
- clreol;
- write(configure.Help_path);
- gotoxy(30,14);
- write(configure.forg:2);
- gotoxy(30,16);
- write(configure.back:2);
- gotoxy(45,14);
- textcolor(configure.forg);
- textbackground(configure.back);
- write('Colour');
- textcolor(white);
- textbackground(black);
- gotoxy(45,16);
- write('Graph Level: ',level:2);
- gotoxy(30,18);
- for counter:=1 to 8 do
- begin
- textcolor(white);
- write(counter);
- textcolor(red);
- write(' ',configure.graphic_letters[level,counter],' ');
- end;
- gotoxy(30,20);
- write('':10);
- if y<>18 then gotoxy(70,16);
- clreol;
- case y of
- 08:begin
- gotoxy(30,8);
- textcolor(black);
- textbackground(white);
- if configure.insert_mode then write('ON ') else write('OFF');
- textcolor(white);
- textbackground(black);
- end;
- 10:begin
- gotoxy(30,10);
- textcolor(black);
- textbackground(white);
- if configure.help then write('YES') else write('NO');
- textcolor(white);
- textbackground(black);
- end;
- 12:begin
- gotoxy(30,12);
- textcolor(black);
- textbackground(white);
- write(configure.Help_path);
- textcolor(white);
- textbackground(black);
- end;
- 14:begin
- gotoxy(30,14);
- textcolor(black);
- textbackground(white);
- write(configure.forg:2);
- textcolor(white);
- textbackground(black);
- end;
- 16:begin
- gotoxy(30,16);
- textcolor(black);
- textbackground(white);
- write(configure.back:2);
- textcolor(white);
- textbackground(black);
- end;
- 18:begin
- gotoxy(70,16);
- textcolor(white);
- write('ASCII = ');
- clreol;
- write(ord(configure.graphic_letters[level,letter]):3);
- gotoxy(letter*6+26,18);
- textbackground(white);
- textcolor(blue);
- write(configure.graphic_letters[level,letter]);
- textcolor(white);
- textbackground(black);
- end;
- 20:begin
- gotoxy(30,20);
- textcolor(black);
- textbackground(white);
- write('':10);
- textcolor(white);
- textbackground(black);
- end;
- end;
- end;
-
- procedure do_input;
- var
- numstr:string[3];
- letter,
- level,
- num,
- y,
- code:integer;
- saved,
- leave:boolean;
- key,
- key1:char;
- begin
- leave:=false;
- level:=1;
- letter:=1;
- y:=8;
- repeat
- repeat
- key:=#0;
- key1:=#0;
- display_info(y,level,letter);
- read(kbd,key);
- if keypressed then read(kbd,key1);
- case ord(key1) of
- 72:if y>8 then y:=y-2 else y:=20;
- 80:if y<20 then y:=y+2 else y:=8;
- 77:if (y=18) then
- if letter<8 then letter:=letter+1 else letter:=1;
- 75:if (y=18) then
- if letter>1 then letter:=letter-1 else letter:=8;
- end;
- if key='-' then if level>1 then level:=level-1 else level:=19;
- if key in['=','+'] then if level<19 then level:=level+1 else level:=1;
- if key=' ' then load_config;
- until key=#13;
- case y of
- 8:configure.insert_mode:=not configure.insert_mode;
- 10:configure.Help:=not configure.help;
- 12:begin
- gotoxy(40,10);
- write('Enter NEW Path for EdScreen.HLP');
- gotoxy(30,12);
- cursor(true);
- repeat until keypressed;
- clreol;
- read(configure.help_path);
- cursor(false);
- gotoxy(40,10);
- clreol;
- end;
- 14:if configure.forg<15 then configure.forg:=configure.forg+1 else configure.forg:=0;
- 16:if configure.back<7 then configure.back:=configure.back+1 else configure.back:=0;
- 18:begin
- gotoxy(20,17);
- write('Enter ASCII for character to replace:');
- repeat
- cursor(true);
- gotoxy(59,17);
- clreol;
- buflen:=3;
- read(numstr);
- cursor(false);
- val(numstr,num,code);
- if code<>0 then write(^g);
- until code=0;
- configure.graphic_letters[level,letter]:=chr(num);
- gotoxy(20,17);
- clreol;
- end;
- 20:begin
- gotoxy(30,20);
- write('Do you want the Configuration saved [Y/N] ? ');
- repeat
- read(kbd,key);
- key:=upcase(key);
- until key in ['Y','N'];
- leave:=true;
- saved:=key = 'Y';
- end;
- end;
- until leave;
- if saved then
- begin
- assign(f_configure,'EDSCREEN.CNF');
- rewrite(f_configure);
- write(f_configure,configure);
- close(f_configure);
- end;
- end;
-
- begin
- cursor(false);
- load_config;
- TitleScreen;
- Screen;
- do_input;
- cursor(true);
- clrscr;
- end.