home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
pub
/
ucsdibmpc
/
kermglob.text
< prev
next >
Wrap
Text File
|
2020-01-01
|
4KB
|
112 lines
unit kermglob;
interface
const blksize = 512;
oport = 8; (* output port # *)
inport = 7;
keyport = 2;
bell = 7; (* ASCII bell *)
maxpack = 93; (* maximum packet size minus 1 *)
soh = 1; (* start of header *)
sp = 32; (* ASCII space *)
cr = 13; (* ASCII CR *)
lf = 10; (* ASCII line feed *)
xdle = 16; (* ASCII DLE (space compression prefix for psystem) *)
del = 127; (* delete *)
my_esc = 29; (* default esc char for connect (^]) *)
maxtry = 5; (* number of times to retry sending packet *)
my_quote = '#'; (* quote character I'll use *)
my_pad = 0; (* number of padding chars I need *)
my_pchar = 0; (* padding character I need *)
my_eol = 13; (* end of line character i need *)
my_time = 5; (* seconds after which I should be timed out *)
maxtim = 20; (* maximum timeout interval *)
mintim = 2; (* minimum time out interval *)
at_eof = -1; (* value to return if at eof *)
rqsize = 5000; (* input queue size *)
qsize1 = 5001; (* qsize + 1 *)
eoln_sym = 13; (* pascal eoln sym *)
back_space = 8; (* pascal backspace sym *)
defaultbaud = 1200; (* default baud rate *)
(* screen control information *)
(* console line on which to put specified info *)
title_line = 1;
statusline = 2;
packet_line = 3;
retry_line = 4;
file_line = 5;
error_line = 6;
debug_line = 7;
prompt_line = 8;
(* position on line to put info *)
statuspos = 70;
packet_pos = 19;
retry_pos = 17;
file_pos = 11;
type packettype = packed array[0..maxpack] of char;
parity_type = (evenpar, oddpar, markpar, spacepar, nopar);
char_int_rec = record (* allows character to be treated as integer... *)
(* is system dependent *)
case boolean of
true: (i: integer);
false: (ch: char)
end; (* record *)
int_bool_rec = record (* allows integer to be treated as boolean... *)
(* used for numeric and, or, xor...system dependent *)
case boolean of
true: (i: integer);
false: (b: boolean)
end; (* record *)
string255 = string[255];
statustype = (null, at_eol, unconfirmed, parm_expected, ambiguous,
unrec, fn_expected, ch_expected, num_expected);
vocab = (nullsym, allsym, baudsym, consym, debugsym, emulatesym,
escsym, evensym, exitsym, filewarnsym,helpsym, ibmsym,
localsym, marksym, nonesym, oddsym, offsym, onsym, paritysym,
quitsym, recsym, sendsym, setsym, showsym, spacesym);
scrcommands = (sc_up, sc_right, sc_clreol, sc_clreos, sc_home,
sc_escape, sc_left, sc_clrall, scr_clrline);
var noun, verb, adj: vocab;
status: statustype;
vocablist: array[vocab] of string255;
xfilename, line: string255;
newescchar: char;
expected: set of vocab;
newbaud: integer;
currstate: char; (* current state *)
f: file of char; (* file to be received *)
oldf: file; (* file to be sent *)
s: string255;
xeol, quote, esc_char: char;
fwarn, ibm, half_duplex, debug: boolean;
i, size, rpsiz, spsiz, pad, n, num_try, oldtry, timint: integer;
recpkt, packet: packettype;
padchar, ch: char;
debf: text; (* file for debug output *)
parity: parity_type;
xon: char;
filebuf: packed array[1..1024] of char;
bufpos, bufend: integer;
parity_array: packed array[char] of char;
ctlset: set of char;
rec_ok, send_ok: boolean;
baud: integer;
emulating: boolean;
implementation
end. { kermglob }