home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
simtel
/
sigm
/
vols000
/
vol083
/
ice-main.pli
< prev
next >
Wrap
Text File
|
1984-04-29
|
4KB
|
113 lines
ICE : procedure options(main);
/**************************************************/
/* */
/* IN CONTEXT EDITOR */
/* */
/* Re-implementation of ICE written by */
/* P. G. Main in Ratfor. */
/* */
/* Paul Tilden Aug 1981 */
/* */
/* IMPORTANT: To avoid confusion, the word */
/* LINE is used exclusively to refer to lines */
/* on the VDU screen, and ROW to refer to data */
/* in the working buffer BUF. */
/* */
/**************************************************/
%replace
true by '1'b,
false by '0'b;
%replace
huge by 32000,
linelen by 100, /* screen width */
scrlen by 16, /* screen length */
size by 100; /* nr. of rows in buf */
%replace
escape by 27,
line_feed by 10;
declare
(edt_in, edt_out, sysin, sysprint) file;
declare
nextout fixed, /* next row to be output from buf */
lastin fixed, /* last row input to buf */
posn fixed, /* equal to rmod(crow - lastin) */
crow fixed, /* current row */
delrows fixed, /* nr. of rows to be deleted but
not yet read */
inrow fixed, /* infile row nr. of lastin */
inopen bit(1), /* flag saying an input file is open */
file_end bit(1), /* eof on edt_in */
abort bit(1), /* abort edit */
scr_row fixed, /* screen row */
scr_col fixed; /* screen column */
declare
1 buf(size),
2 buf_row character(linelen) varying;
declare
upper character(26) static initial
('ABCDEFGHIJKLMNOPQRSTUVWXYZ'),
lower character(26) static initial
('abcdefghijklmnopqrstuvwxyz'),
digit character(10) static initial ('0123456789'),
blanks character(linelen) varying static;
/********************************************************/
/* */
/* MAIN PROCEDURE */
/* */
/********************************************************/
/* initialization */
open file(sysprint) print pagesize(0)
linesize(255)
title('$CON');
begin;
declare i fixed;
do i = 1 to size;
buf_row(i) = '';
end;
blanks = '';
do i = 1 to linelen;
blanks = blanks !! ' ';
end;
end;
call home_cursor;
call clear_screen;
nextout = 1;
lastin = size;
crow = lastin;
posn = size;
inrow = 0;
delrows = 0;
on undefinedfile(edt_in)
begin;
call diag('new file');
inopen = false;
file_end = true;
goto edtin_cont;
end;
open file(edt_in) input stream env(b(2048)) title('$1.$1');
inopen = true;
file_end = false;
revert undefinedfile(edt_in);
edtin_cont: ;
open file(edt_out) output stream pagesize(0) env(b(2048))
title('$1.%%%');
call get_row(lastin);
call spray(scrlen-2,scrlen-2);
/* edit file */
call edit_file;
/* file cleanup */
close file(edt_in);
close file(edt_out);
/* end */
call diag('done');