ReadMe for UniTerm V2.0c 009 <-| ---------------------------- | 10.4.88 |This number is displayed on the 'About UniTerm...' dialog box and indicates the "Edit Number" Changes 2.0b to 2.0c -------------------- General: A lot of the oldest code in UniTerm has been redone. Some things should be even faster now. The 20ATO20C.TOS program will convert 2.0a/2.0b setup files to 2.0c format, remote commands will be disabled, clipboard size set to 2kB and NRC to ASCII (turned off). The delay time parameter now additionaly affects: start/end of transfer strings in ASCII file upload the dialer macro processor send command single-line editor. Keys moved: View History buffer (NEW!): History Control: Mouse cursor control now uses a double click with the left button. UniTerm will no longer let you exit from the `Help' menu if you still have desk accessory windows open. The deeper reason for this is a AES deficiency. Terminal Emulation: NRC character sets implemented, they will naturally be slower than the straight ASCII mode (the Dutch and Portugese sets are not completly implemented). I'm too lazy to list the corresponding escape sequences, will be in the manual. NRC mode can also be set in the 'Terminal 2' dialog, selecting [ASCII] just turns NRC mode off, selecting one off the NRC sets, map the set into G0 and G0 into GL. ********************************* *Macro processor: COMPLETLY NEW!* ********************************* The two modi (function key - macro file) are now more different, the % command introducer is now only needed (and allowed!) on the function keys. No more absolute line numbers (labels instead), additional integer and string variables. No more boolean constants, use 0 and 1 intstead (for FALSE / TRUE) Commands are no longer case sensitive. Common features: ---------------- Built-in functions: ------------------- add(int1,int2) returns sum of int1 and int2. and(int1,int2) returns logical 'and' of int1 and int2. assert() asserts DTR. break(len,drop-dtr) send a break for len mS, drop DTR if if drop-dtr is true (<>0). concat(str1,str2) concatenate str1 and str2 and return the result in $TEMP. copy(nr,str) copy str into string variable nr (1 to 10). compare(str1,str2) compare str1 to str2, return true if equal. drop() drop DTR. dial(nr) dial number nr (1 to 10), returns true if sucessful echo(str) echo str to the screen. fileselector(path,filename,prompt) show a fileselector with path, filename and a prompt, returns true if [OK] is selected, $PATH and $FILENAME hold the values the user entered. get(instr,time) wait for string instr, timeout after time seconds, returns true if sucessful. hangup() hangup the modem. history(mode) turn history saving on/off (1/0 for mode) inline(mode) reads a line from the keyboard (until is pressed or a maximum of 80 characters are read (^C aborts)), if mode is true the characters are echoed, the line is returned in $TEMP. input(prompt) prompt for a line of input, result is in $TEMP, returns true if [OK] is selected. kermit(mode,8-bit-mode,filespec) start Kermit filetransfer with: mode (string): 'SEND', 'REC' or 'GET' 8-bit-mode: 1=true,0=false filespec: string with wildcards. loadsetup(name) load a setup file. loadtel(name) load a dialer setup file message(str) display str on the statusline, '' restores the normal statusline. macro(name) execute macro file, returns value of exit function or: -3 : syntax error (line in $TEMP) -2 : not enough stack (macro files nested more than one level) -1 : macro buffer full (max. 4096 bytes). or(int1,int2) return logical 'or' of int1 and int2. path(str) set GEMDOS path to str. popup(entry,command,name) redefine a popup menu entry run(name,commandline) run a program, returns the return code (negativ numbers display an alert box) reassign(alt-key,command) reassign the function of a 'Alt' key. suspend() displays 'Press any key...' and waits for a keypress. send(str) sends str. set(nr,int) sets integer variable nr (1 to 10) to int. wait(int) wait for int mS * 100 unicommand(nr) execute a UniTerm internal command. xmodem(mode,file) start xmodem with: mode: 'SEND' or 'REC' ymodem(mode,filespec) start ymodem with: mode: 'SEND' or 'REC' Prefix operators (work only before arguments): ---------------- - negate integer value ! logical not " return integer as string . return string as integer (. and " don't know about negative integers!) String constants ---------------- Enclosed in single quotes, escape character '\', every character after '\' equals itsself except: r : \r is carrige return (ASCII 13) n : \n is newline (ASCII 10) 0xx : \0xx is the octal ASCII value 0xx Predefined string variables: ---------------------------- $T ($TEMP) : used for return values of some built-in functions $F ($FILENAME) : see fileselector command $P ($PATH) : " $C ($CURRENT) : current GEMDOS path $V ($VAR) : contains the address of UniTerm's parameter block String variables: ----------------- $1 to $10 max. 80 characters Integer variables: ------------------ @1 to @10 signed 16 bit value Additional features in macro file mode: --------------------------------------- Labels: ------- :1 to :20 (must be first and only word on a line!) Comments: --------- A line starting with # is ignored on input. Additional statements --------------------- if(int) execute the rest of the line if int is <> 0 jump(nr) goto label number nr exit(int) stop processing and return with value int call(nr) execute subroutine at label nr (subroutines can't be nested!) return() return from subroutine ***************************************** * History buffer viewing * ***************************************** Needs at least 25kB of reserved system memory. Start with . Display top of buffer Display bottom of buffer , Scroll line up/down , Page up/down The mouse clipboard functions work the same as in normal mode. //////////////////////// Incremental change list: //////////////////////// V2.0c 002 --------- The default history buffer view mode now displays CR and LF as spaces, this makes cliping stuff from the buffer much more useful, the old mode can still be used with the command ViewHistEOL = 63 V2.0c 003 --------- Fixed a small bug in the mouse code that caused spurious 'Alt' keycodes to be generated. Put the 'GDOS not loaded' message back in, this uses the (possibly invalid) rule that 'graf_handle' will not return 1 as the workstation handle. (As we all know the ST crashes if you try to open a workstation without having GDOS loaded....). To avoid unnecessary contortions in initializing the data structures in the view buffer mode, it now just rings the bell and returns immediatly if you try to view an empty buffer, the same happens if you try to use while in tek mode. V2.0c 004 --------- Fixed a bug in the new Kermit checksum code, the two character checksum wasn't masked properly. V2.0c 005 --------- Saved a few bytes (11 to be exact). V2.0c 006 --------- Fixed a really old bug in the routine that gets filenames out of dialogs, it sometimes inserted the '.' in the wrong place. V2.0c 007 --------- Improved the actual time processing of a ESC character takes (it now takes 0.17 mS). V2.0c 008 --------- Fixed underline cursor. Fixed a bug in the line breaking code for viewing the history buffer. Moved the 'Help' dialog up a bit, so that it hopefully doesn't get truncated anymore on a color screen. V2.0c 009 --------- Fixed a VERY nasty bug in the delete_in_line code. **************************************************************************