DEFINITION MODULE Keys ; (* The editor's key map, loaded from a TEXT file. This is the other half of what TINST configures: TINST patches TURBO.COM's editor command table; this port reads TP3.KEY. FILE FORMAT - one NAME=value per line, ';' comments, values decoded by TermCfg.ParseValue (\e, \r, \n, \t, \\, ^X). Each value must be exactly ONE byte. Names are case-insensitive; unknown names are ignored. QUIT=^Q PREFIX=^K WORDLEFT=^A ... A missing file leaves the defaults, which are exactly the keys the editor used before there was a key file. *) TYPE Map = RECORD quit : CHAR ; cancel : CHAR ; (* ^U *) prefix : CHAR ; (* Ctrl-K *) literal : CHAR ; (* Ctrl-P: insert the next key literally *) wordLeft : CHAR ; charLeft : CHAR ; charRight : CHAR ; wordRight : CHAR ; lineUp : CHAR ; lineDown : CHAR ; scrollUp : CHAR ; scrollDown : CHAR ; pageUp : CHAR ; pageDown : CHAR ; insertToggle: CHAR ; deleteChar : CHAR ; deleteLeft : CHAR ; deleteWord : CHAR ; insertBreak : CHAR ; deleteLine : CHAR ; repeatLast : CHAR ; autoTab : CHAR ; newLine : CHAR ; END ; PROCEDURE Default (VAR m : Map) ; PROCEDURE Load (path : ARRAY OF CHAR ; VAR m : Map ; VAR ok : BOOLEAN) ; (* Default(m), then every NAME=value in path. ok is FALSE if the file could not be opened or a value is not exactly one byte. *) END Keys.