home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
kermit.columbia.edu
/
kermit.columbia.edu.tar
/
kermit.columbia.edu
/
archives
/
kermit11.zip
/
k11cmd.mac
< prev
next >
Wrap
Text File
|
1989-06-13
|
70KB
|
1,821 lines
.title k11cmd command level for kermit-11
.ident /3.60/
.enabl gbl
baselev == 3 ; baseline level
edit == 60. ; edit (independent of base_level)
release == 'T&137 ; T for test, V for release
.save
.psect ident ,ro,d,gbl,rel,con
lasted::.ascii / Last edit: 21-Mar-89 /
.ascii / /
.byte 0
.even
ident:: .word baselev,edit,release
.psect $pdata
do$ver::.word 1
do$exi::.word 1
do$lng::.word 1
umddef::.word usermd
warn$:: .byte CR,LF
.ascii /Check SHOW RELEASE_NOTES for possible incompatabilities/
.byte CR,LF
.ascii /with previous releases of Kermit-11 and other Kermits./
.byte CR,LF,0
$beep2: .byte CR,LF,7,7,0
.even
.restore
.macro BEEP2
PRINT #$beep2
.endm BEEP2
; Brian Nelson 01-Dec-83 13:19:14
;
; Change Software, Toledo, Ohio
; University of Toledo, Toledo, Ohio
;
; Copyright (C) 1983 Change Software, Inc.
;
; edits:
;
; 60 21-Mar-89 00:00:00 K11M41.MAC For RSX, ensure Kermit is privileged
; K11MCO.MAC before performing SF.SMC to remote
; K11DIA.MAC port; failure to do so will crash M+
; V4.0. Also added local terminal
; buffering to RSX connect module.
; Completed definition of DF224 modem.
; 59 12-Oct-87 08:55:33 K11ATR.MAC Support attribute packet type 54(8)
; K11RMS.MAC to send files11 protection over. If
; RSTS, convert to/from F11 format.
; 59 17-Sep-87 15:28:36 K11SER.MAC Fix processing of server cwd cmd.
; 58 14-Aug-87 08:19:24 K11ECO.MAC SET LINE TTN:/[NO]ALLOCATE, added
; K11ST1.MAC mostly for RSTS/E
; 56 23-Jun-87 07:41:18 K11PRT.MAC Fix sending break for XL on RT11
; 56 13-Mar-87 13:18:18 K11RMS.MAC Dynamically allocate the command
; K11M41.MAC line buffer count set by TKB via
; K11E80.MAC GBLDEF=LNCNT$:nn. This allows us
; to have > 3 for the I/D tasks.
; 56 19-Feb-87 15:58:58 All sources Use teco macro to change all the
; .INCLUDES to be conditional, this
; was done to allow assembly on RT11
; version 4 and P/OS.
; 56 17-Feb-87 09:35:04 K11RMS Redo record buffer allocation to
; be dynamic at startup. Set MAXSIZ
; during task build to allow bigger
; buffers for I/D space Kermit11.
; 56 09-Dec-86 14:15:23 K11INI.MAC Control A stats support.
; K11REC.MAC
; K11SEN.MAC
; 56 06-Nov-86 08:27:33 K11M41.MAC IO.WAL for tt output with CLE
; 56 06-Nov-86 08:27:54 K11SHO.MAC Fix command macro list (SHO ?)
; 55 23-Oct-86 11:00:59 K11CMD.MAC Prompting bug for RT11 XM overlay
; 54 30-Sep-86 13:24:07 SHOW DIAL
; 54 29-Sep-86 10:23:49 Numerous Fix sources for possible I/D space
; linking under RSTS/E and RSX11M+.
; 54 23-Sep-86 16:28:14 K11DIA.MAC Support VADIC 4224 .v22bis modem
; 54 23-Sep-86 16:28:46 K11ST0.MAC SET PHONE TONE/PULSE and SET PHONE
; BLIND, added for VA4224 support.
; 54 10-Sep-86 11:22:52 K11M41.MAC Fix setting of typeahead buffer
; size for M+, ie, move the TC.TBS
; to a point AFTER the TC.RAT.
; 54 09-Sep-86 16:01:27 K11ST1.MAC SET FILE NAMING/NAMES option
; K11CVT.MAC Options are: LITERAL, CONVERTED
; K11DAT.MAC FULL, UNTRANSLATED
; 54 23-Aug-86 12:37:09 K11E80.MAC Had to cut some code from K11E80 and
; K1180S.MAC K11M41, moved to K1180S and K11RMZ
; K11M41.MAC respectively so the task images don't
; cross the 130000 high limit boundary.
; Caused by adding in extra XAB's.
; 54 22-Aug-86 14:36:44 K11RMS.MAC Added in Date XAB's per a user request
; Ultimate goal: to send attribute paks
; with creation date/time.
; 53 13-Aug-86 09:38:04 K11PAK.MAC Add SET SEN [NO]XON so one can force
; K11ST1.MAC every packet sent to be prefixed with
; K11DAT.MAC an XON. Perhaps this will help for
; the DHV/U problems with flow control.
; 53 12-Aug-86 16:28:14 K11PAK.MAC Fix BUFUNP to process repeat counts.
; K11SER.MAC It would seem the 2.29 of MS Kermit
; K11REC.MAC is prefixing filename in F packets.
; 53 12-Aug-86 11:08:13 K11M41.MAC IO.GTS to check for extended I/O
; Also check TC.PAR
; 53 12-Aug-86 11:05:03 K11CMD.MAC Allow ; and ! to delimit comments.
; 53 07-Aug-86 08:40:36 K11RCO.MAC Minor changes to connect under RT11
; K11PRT.MAC SJ without timer support. This was
; done AGAINST my better judgement.
; 53 05-Aug-86 19:35:19 Many Make CMDBUF and ARGBUF pointers to
; the actual data in order to reduce
; the K11XM and K11RT4 sizes to help
; in SRUN or FRUN's. Add code to re-
; locate some PIC code into dynamic
; region based from APR7 for RT11.
; 53 29-Jul-86 13:10:34 K11ST1.MAC Add SET FIL TYP DEC_MULTINATIONAL
; to allow 8bit text files. The mod
; to K11ATR was to add support for
; this between two 3.53 or later K11
; systems.
; 53 29-Jul-86 12:58:38 K11ATR.MAC Modified attribute type '0' to
; allow types other than IFABs. It
; is backwards compatible with old
; versions of Kermit-11.
; 52 28-Jul-86 17:10:00 K11RTI.MAC More TSX+ features, also for PRO.
; (I know have a TSX+ system on my
; PRO/350).
; 52 2X-Jul-86 Numerous Command line editing and recall,
; use arrow keys to control. Created
; K11EDI.MAC from CLEEDI.MAC
; 52 2x-Jul-86 K11RT*.MAC Root size reductions for XM, via
; moving more things into dynamic
; region. Affected K11RMS, K11M41,
; K11E80 and K11DAT also as some
; things in K11DAT were changed to
; pointers.
; 51 07-Jul-86 12:31:17 K11PRT.MAC .TWAIT for packet reads to reduce
; overhead on XM and TSX+
; 51 03-Jun-86 12:00:43 K11M41.MAC Support for IO.EIO
; 51 13-Jun-86 13:53:05 K11CVT.MAC Truncate filenames for RT11
; 51 06-Jun-86 09:52:29 K11RTI.MAC Alter TSX+ memory allocation
; 51 06-Jun-86 09:52:57 K11PRT.MAC Get rid of .HRESET for XC handler
; 51 04-Jun-86 11:16:07 Misc. More changes to get K11XM.SAV to run
; in the Foreground on RT11 v5.
; 51 29-May-86 13:50:00 K11CMD.MAC Remove first (unneeded) call to SETCC
; so we can wait for XINIT to do a .QSET
; as we need extra one for the control
; C watcher on RT11.
; 51 29-May-86 13:46:07 K11RT4.MAC Add a real control C trap. IE, start a
; watchdog timer to check the terminal
; status word.
; 51 27-May-86 11:33:23 K11RCO.MAC Kludge for bug in the RT 5.1 XL handler
; 51 25-May-86 09:33:12 K11RT4.MAC Move XINIT out into K11RTI.MAC and put
; K11RTI.MAC into an overlay. Also redo the overlay
; K11XM.COM to cut down autoload vectors on RT XM.
; 51 23-May-86 11:49:44 A few Allocate ALBUFF at run time.
; 51 23-May-86 10:50:16 K11RCO.MAC Check for SJ exec having a clock
; 51 08-May-86 15:54:56 K11RCO.MAC Rewrote RT11 connect code.
; 51 08-May-86 13:20:33 K11CM1.MAC Fix TYPE command for large recordsize
; files.
; 50 04-Apr-86 19:59:36 K11M41.MAC Enable echoing for local terminal in
; case of task abort w/o characteristics
; getting reset.
; 50 04-Apr-86 19:57:27 K11PCO.MAC Look for spawning PRO/COMM if PROCOM
; K11DAT.MAC global ne 0. Set via SET POS [NO]DTE
; K11ST0.MAC and via tkb GBLPAT option. SET code
; K11STD.MAC in K11ST0, cmd def in K11STD.
; 50 02-Apr-86 15:53:27 K11ECO.MAC Rewrote RSTS/E connect code for speed
; 49 28-Mar-86 09:25:10 K11HLP.MAC Rewrote help routine
; 49 24-Mar-86 12:16:33 K11ATR.MAC Fix protocol error for attribute
; packets. See K11INS.DOC and K11.BWR,
; also see K11ATR.MAC
; 48 21-Mar-86 16:54:53 K11DIA.MAC Don't go to sleep for 2 secs after
; successfull connection unless M or M+
; 48 21-Mar-86 16:54:26 K11PCO.MAC Extend flushing of XOFFS to P/OS
; 48 13-Mar-86 14:28:10 K11SHO.MAC SHOW PHONE
; 48 17-Mar-86 13:22:19 K11ECO.MAC Ignore XOFF's from connected host.
; (have a fubarred DHU11 on my 785).
; 47 07-Mar-86 18:17:30 K11RMS.MAC BINFIL return(text) for FB$FTN files
; This means that FD.FTN files will be
; converted to text files.
; 47 05-Mar-86 12:48:19 K11PCO.MAC Trash K11CON, K11PCO is for P/OS,
; K11RXY is for RSX, K11ECO RSTS/E,
; K11RTC RT11.
; 46 21-Feb-86 11:45:01 K11RMS.MAC Add TLOG$S call to see if the
; filespec is a logical name.
; 45 20-Feb-86 15:28:56 K11DIA.MAC Added SET PHONE NUMBER
; K11ST0.MAC
; 45 18-Feb-86 11:14:04 K11ST0.MAC Added SET DIAL
; 45 14-Feb-86 13:46:55 K11E80.MAC Modify RSTS packet reader to cancel
; XOFF'ed line, requires SYSIO priv.
; 45 12-Feb-86 16:56:35 K11M41.MAC Find out terminal type for RSX & POS
; 45 11-Feb-86 12:17:09 K11RT4.MAC Pass kmon command BYE for server
; logout on TSX+
; 45 11-Feb-86 12:27:42 K11RTD.MAC Skip volume verify for LDn:
; 45 11-Feb-86 12:28:06 K11PRT.MAC Do s SET CLn LFOUT when closing line
; 45 11-Feb-86 15:44:36 K11E80.MAC Rewrote support for SERVER logout to
; use RSTS/E v9 features, also hangup
; line if logout will succeed.
; 45 10-Feb-86 11:56:37 K11ECO.MAC Creation, RSTS/E ONLY connect code.
; 45 10-Feb-86 11:52:21 K11CON.MAC Removed RSTS/E and RT11 code
; 45 10-Feb-86 11:30:41 Misc Final MODS from Steve Heflin
; 44 08-Feb-86 06:13:26 K11RXY.MAC Added Robin Miller's new high speed
; connect code as SET RSX CONNECT ALT
; 44 07-Feb-86 16:02:52 K11M41.MAC Follow Heflin's EXST$S with EXIT$S
; 44 07-Feb-86 16:00:00 K11E80.MAC Try to UNDO DEC's feature of turning
; C1 characters into ESCAPE sequences.
; 44 07-Feb-86 15:48:45 K11PAK.MAC Change Steve Heflin's exiting Kermit
; if the wait for SOH reads a contrl Z
; to require TWO control Z's in a row.
; 44 07-Feb-86 13:58:09 K11DAT.MAC Data for displaying TIMEOUT count
; K11INI.MAC Display TIMEOUT count
; 44 04-Feb-86 09:00:12 K11PRT.MAC Implicit SET CL NOLFOUT for TSX+
; Write SET SPEED code for CL (TSX+)
; 44 03-Feb-86 12:46:50 K11PRT.MAC Allow CLn: for TSX+, where N is 0..7
; K11DSP.MAC
; 43 24-Jan-86 16:30:22 K11PRT.MAC Added SET RT11 BREAK [SHORT][LONG]
; K11DAT.MAC Short is 275 MS, long is 3 Sec.
; K11ST0.MAC
; 43 24-Jan-86 14:42:32 K11RMZ.MAC Creation from K11RMS. Root segment
; was getting too large.
; K11CPY.MAC Reduce buffer size, module too large
; 43 23-Jan-86 15:58:51 Misc Added stats for packet and file data
; Also compute data rate in STAT and
; SHO PAC commands.
; 43 17-Jan-86 13:39:50 K11INI.MAC Clean up SET SEND/RECEIVE and also
; K11ST1.MAC use LONG PACKETS only if the user
; did SET REC PAC > 94
; 43 17-Jan-86 11:26:01 K11PAK.MAC Change packet stats into 32 bits
; K11INI.MAC to avoid overflow. Run DOB on SYSLIB
; K11DAT.MAC modules CDDMG, CBTA and SAVRG and
; K11SHO.MAC put them into K11RT4.MAC
; K11REC.MAC
; K11SEN.MAC
; K11RT4.MAC
; 42 14-Jan-86 13:03:38 K11DIA.MAC Rixon R212A modem support added
; by Robin Miller of Nothern Telecom
; 42 10-Jan-86 11:43:37 several LONG packet support.
; 41 31-Dec-85 12:23:53 K11ST1.MAC Added SET SERVER [NO]TIME_OUT [value]
; K11PAK.MAC
; K11INI.MAC
; K11DAT.MAC
; K11SER.MAC
; K11DEB.MAC
; 41 31-Dec-85 04:23:27 K11PRT.MAC Added support for RT11 5.2 and DTR
; control.
; 41 28-Dec-85 11:43:52 Numerous Added Steve Heflin's mods in for AtoZ
;
; The following things (edit 40) came up from comments received at F85 Decus
;
; 40 18-Dec-85 10:03:57 K11DSP.MAC Added dummy EP for INQDTR:
;
; 40 18-Dec-85 10:03:35 K11M41.MAC Added dummy EP for INQDTR:
; 40 18-Dec-85 10:03:02 K11ST0.MAC Print DTR status on SET LINE
; 40 18-Dec-85 10:01:55 K11E80.MAC Add routine to find out if line has DTR
; up. RSTS/E normally keeps DTR low, it
; raises it on seeing CD or RING. Only
; works on 9.x or later.
; 40 17-Dec-85 18:24:53 K11E80.MAC Redo of RSTS/E v9.x options regarding
; setting typeahead (small buffer quota)
; i.e., save and restore it please.
; 40 17-Dec-85 13:39:06 K11M41.MAC Added mods by Robin Miller for logical
; names for terminals, also checks for
; SET LIN TTn: for TTn: having someone
; logged in. (RSX11M/M+ only)
; 40 17-Dec-85 13:20:12 K11DIA.MAC Added REDIAL ntimes command.
; K11DAT.MAC Added global PHNUM for REDIAL command
; 40 16-Dec-85 15:14:23 K11CVT.MAC Remove .COM from default binary types
; Re: Bernie Eiben's "QAR". Very much
; a PAIN if one edits VMS com files on
; the PRO.
; 40 16-Dec-85 15:13:19 K11M41.MAC Start timer on packet writes to clear
; things in case we got XOFF'ed
;
; 2.39 is the Fall Decus version
;
; 39 06-Dec-85 11:57:58 K11DIA.MAC Support for calling external routine
; K11M41.MAC to dial (ala PRO/TMS). Added in mods
; from Steve Covey for PRO/TMS dialing
; out, mods for dialing in not done.
; 39 04-Dec-85 17:58:37 K11DIA.MAC Modem type data structure mods, see
; K11DIA.MAC for more info.
; 39 03-Dec-85 13:00:14 K11TSX.MAC More mods to use CONSOLE port on RT11
; K11DSP.MAC Also, SET LIN TT: will override the
; use of XL or MT service.
; 39 30-Nov-85 12:35:44 K11INI.MAC Send ESC > to force ansi mode if a
; VT100.
; 39 30-Nov-85 12:35:20 K11E80.MAC Minor mods for RSTS/E v9.x, get term
; type and set buffer count for input.
; 39 16-Nov-85 12:13:26 K11CON.MAC Intercept ESC Z and return a terminal
; id that all exec's understand on P/OS.
; Also, intercept all escape sequences
; from P/OS keyboard and map some of the
; upper row F keys to something usefull,
; like ESC (F11)-> \033, INT (F6)>-> \03
; and so on. Both features added at the
; request of B. Eiben, DEC LDP, formerly
; DEC LCG (eiben@dec-marlboro.arpa)
; 39 14-Nov-85 10:17:53 K11TSX.MAC TSXFLG=1 for TSX+, -1 for RT11 without
; XC,XL or MT service. Thus, RT11 kermit
; can run using console only systems.
; 39 14-Nov-85 10:17:15 K11RT4.MAC Check for XC, XL and MT service. If
; not present, warn and fake using TSX
; TT: code.
; 38 09-Nov-85 12:35:05 K11M41.MAC Alter XBINREAD to use MRKT$S for the
; read timeout and do an IO.KIL if it
; fails then convert IE.ABO to IS.TMO
; 38 07-Nov-85 15:13:06 K11M41.MAC Rewrite handling for REMOTE DIR server
; K11E80.MAC processing so that we do not fill up
; K11RTD.MAC a file with the directory listing and
; K11SER.MAC then send the file. Instead stuff
; GETROUTINE: with &SDODIR.
; 38 06-Nov-85 16:20:33 K11SER.MAC Change REM HELP to use asciz sender
; instead of dumping to file and sending
; the file for the extended response.
;
; 38 06-Nov-85 15:17:36 K11RT4.MAC Change EPT name GETCR0 to FGETCR0
; 38 06-Nov-85 15:17:36 K11RMS.MAC Change EPT name GETCR0 to FGETCR0
; 38 06-Nov-85 15:13:59 K11PAK.MAC Moved GETCR0 to call actual next_char
; routine via CALL @GETROUTINE so we can
; support the use of alternate routines.
; This allows extended server responses
; to use memory or whatever instead of
; temporary files.
; 37 05-Nov-85 10:19:47 K11PRT.MAC Added .TWAIT for 1/3 second in TTYFIN
; to avoid turning the XC/XL driver off
; before all I/O has been sent to host.
; 37 04-Nov-85 17:23:30 K11PRT.MAC Put back in the kludges for the lack
; K11RTT.MAC of a clock, which somehow got lost in
; subspace somewhere (RT11 specific).
; 37 04-Nov-85 15:25:08 K11PRT.MAC Various mods for CL: handler for TSX+
; K11RT4.MAC to allow the use of 8BIT mode on the
; K11TSX.MAC handler, also avoid dropping DTR when
; K11RTT.MAC we close CL line. Dummy EPT's stuffed
; K11DSP.MAC in K11TSX and K11RTT for reset @ exit
; code.
; 37 04-Nov-85 13:23:52 K11REC.MAC Insure call to FPARSE for case where
; user says GET remote_name local_name
; 37 01-Nov-85 10:51:33 K11INI.MAC Get defensive in RPAR so we can catch
; short SINIT packets better and fix(?)
; them. Needed for FIDO Kermit.
; 37 29-Oct-85 17:01:53 K11M41.MAC Add code for IO.BRK on P/OS.
; 37 28-Oct-85 17:40:52 K11M41.MAC Stuff *.*;* into DEFDIR in DODIR: iif
; the first byte of DEFDIR is \0 (null)
; 37 28-Oct-85 13:37:44 K11CON.MAC Added code re Steve Heflin to (1) do
; a MRKT$S iif 'TC.DLU' does a zero to
; non-zero transition, and (2) alter
; function code for REMWRITE QIO if the
; TC.DLU == 2 to IO.WBT!TF.WAL, a must
; do for M+ V3 and MicroRsx V3. Would
; assume not needed for packet sending
; as currently packet sending is block-
; ing (ie, its half duplex).
; 37 19-Oct-85 17:17:49 K11DIA.MAC Add DIAL command
; 37 19-Oct-85 17:00:01 K11ST0.MAC Added SET MODEM command
; 36 13-Oct-85 15:27:45 K11SEN.MAC Fix up control C aborts. Add new state
; K11REC.MAC called STA.CCABORT for processng ctl C
; K11M41.MAC aborts. Added IO.KIL in ctrl C ast
; K11E80.MAC code for RSX and P/OS to stop current
; i/o operation. Can't do this on RSTS.
; 36 10-Oct-85 14:53:55 K11CON.MAC Save and reset speed if change TC.DLU
; 36 10-Oct-85 14:51:33 K11PAK.MAC Fix call from M$RETRY to ERROR()
; 36 24-Sep-85 12:29:53 K11E80.MAC Added REMOTE LOGIN and support for it
; K11SER.MAC in the server. The server support makes
; K11COM.MAC sense only for RSTS/E V9.x since RSTS
; K11CMD.MAC is the only PDP exec supporting logins
; via executive directives. REM LOGIN was
; a request by Dale Handy for a specific
; application.
; K11CMD.MAC Disabled for SEND if wilcarded filename
; K11SEN.MAC and GET filename destination_filename
; 36 17-Sep-85 10:55:06 K11REC.MAC Allow SEN filename destination_filename
; 36 17-Sep-85 10:54:11 K11ST0.MAC Added SET RT11 CREATE_SIZE value to
; for allocation for small disks on file
; creates, sometimes needed for Kermit-11
; to non Kermit-11 transfers.
; 36 13-Sep-85 12:30:12 K11ST1.MAC Added SET REC START-OF-PACKET, also
; K11PAK.MAC SET SEN STA . Also added
; SET START-OF-PACKET which forces both
; SOP's to same value.
; 36 10-Sep-85 13:38:31 K11ST0.MAC Added SET RT11 command, currently as
; K11RTD.MAC SET RT11 [NO]VOLUME_VERIFY, to skip
; K11DAT.MAC checking systype at offset 760 in the
; K11RT4.MAC directory header for disks. Also added
; K11COM.MAC SET RT11 [NO]FLOW_CONTROL, same as the
; old SET RTFLOW [ON][OFF]
; 35 01-Sep-85 14:45:33 K11SEN.MAC Added messages for retry aborts.
; 35 01-Sep-85 14:30:22 K11PAK.MAC Modified insertion of prompt into error
; 35 01-Aug-85 14:15:10 K11CVT.MAC Fix filenames with fubar characters
; K11REC.MAC to be legit (insert 'x' into name),
; as in GET abcde_f.dat --> abcdexf.dat
; 34 29-Jul-85 14:22:28 Mod REM CWD to accept password if
; present, no prompts though.
; 33 16-Jul-85 21:12:01 K11HLP.RNo Update HELP for SET RSX.
; 33 16-Jul-85 21:10:47 K11M41.MAC Do a MCR SET/NORPA=TTn:, needed if the
; line was set to /RPA as /RPA tells the
; TTDRV to pass XON and XOFF thru.
; 33 16-Jul-85 20:57:50 K11RXX.MAC Added new connect code, for now invoked
; K11ST0.MAC via SET RSX CONNECT ALTERNATE, default
; K11CON.MAC is SET RSX CONNECT DEFAULT. If it works
; out ok, will change new code to default
; as it appears to do the connect i/o
; better due to it's own internal xon/xof
; and double buffering.
; 32 02-Jul-85 22:29:34 K11HLP.RNO Add Doc for modems.
;
; 32 02-Jul-85 13:44:50 K11CMD.MAC Added support for CWD and REM CWD.
; K11SER.MAC Support for GN$CONNECT (rem cwd)
; K11COM.MAC Added CWD and REM CWD to command lists
; 32 02-Jul-85 13:14:22 K11INI.MAC Set pro/350 to 7 bit to avoid multinat
; char sets, use SET CONS 8 to override.
; 32 02-Jul-85 13:10:31 K11CON.MAC Set remote line to binary mode for RSTS
; version 9 for the CONNECT command, (see
; TTDVR, it changes C1 ( > 200 (8)) chars
; to escape sequences, neat, huh?).
; 32 02-Jul-85 13:02:04 K11PAK.MAC Insert current prompt into error text
; sent to other system.
;
; New tape to Columbia V2.31
;
;
; 31 20-Jun-85 18:42:39 K11SEN.MAC Updated SDATA to not abort on 'unknown'
; packet type.
; 31 20-Jun-85 18:42:27 K11SHO.MAC Updated SHOW command
; 31 17-Jun-85 15:29:36 K11RT4.MAC Added .HRESET if device was X?: at exit.
; 31 17-Jun-85 14:53:34 K11CMD.MAC Add call to RSTSRV to restore line chars
; if control C abort under SERVER & RSX.
; 31 17-Jun-85 14:23:14 K11CON.MAC Wait 6 seconds if changing TC.DLU
; 30 04-Jun-85 11:26:04 K11M41.MAC Added SET RSX CHARIO and SET RSX LINEIO.
; K11ST0.MAC The former will force packet reads to do
; a SF.GMC for the typeahead count, then
; read that many under IO.RAL, as is done
; for P/OS. The latter will (default) do
; reads by line for M and M+.
; 30 04-Jun-85 11:23:52 K11ST0.MAC Added SET RSX TC.DLU value to alter
; K11M41.MAC the tc.dlu setting for connecting to a
; K11DAT.MAC modem. By default, Kermit will never try
; K11CON.MAC to change it, however, a value of 1 or 2
; K11COM.MAC will force a change if not already set.
; 30 01-Jun-85 11:04:31 K11M41.MAC Add 19.2 and 38.4 speeds into SET SPEED
; 30 01-Jun-85 11:03:30 K11INI.MAC Mods for SET UPDATE, also set do a SET
; TER VT100 for PRO/3xx systems.
; 30 01-Jun-85 11:02:28 K11ST1.MAC Added LOGFILE filename.type so we can
; be more compatible (calls SET LOGFILE)
; 30 01-Jun-85 11:01:45 K11DAT.MAC Added 'BLIP::' for packet logging ala
; SET UPDATE n. A SET UPD 0 will disable
; all packet counts to the terminal.
; 29 18-May-85 14:17:39 K11SER.MAC Update packet types to symbolic names
; 29 17-May-85 05:08:47 K11ST1.MAC Add SET FIL [NO]SUPERCEDE to protect
; K11REC.MAC files that already exists.
; 29 14-MAY-85 10:26:33 K11INI.MAC Fix bug for setting 8bit prefixing.
; Quite noticable on PRO/RT version.
; 28 09-May-85 07:40:41 K11RTD.MAC Add support for server REM DIR command
; for RT and TSX+.
; 28 07-May-85 17:40:06 K11TSX.MAC Final mods by Ned Rhodes for TSX+
; K11PRT.MAC
; 28 01-May-85 16:00:01 K11ST1.MAC Ignore TYPE in SET FILE [TYPE] arg
; 28 22-Apr-85 10:34:56 K11RT4.MAC Kludge if RT system does not have a
; K11RTT.MAC clock.
; 28 20-Apr-85 09:22:01 K11ST1.MAC Added SET BINARY-TYPE .filetype for
; K11CVT.MAC overriding the built-in binary file
; type list.
; 27 XX-Apr-85 K11M41.MAC Fix ASSDEV: for stack problem
; 27 19-Mar-85 15:59:06 K11SEN.MAC Fix losing attribute packets in case
; we timed out or were naked.
; 26 28-Feb-85 14:01:08 K11RMS.MAC Change % to ? in wildcards for RSTS/E
; K11SER.MAC server to kludge around the problem
; that some Kermits mangle ? in cmdline
; 26 28-Feb-85 14:00:30 K11RT4.MAC Fixes for TSX+
; K11DSP.MAC
; K11TSX.MAC
; 26 20-Feb-85 15:13:05 K11E80.MAC Changed default record format from
; FILES-11 variable to STREAM ASCII.
; 25 29-Jan-85 09:40:22 K11SEN.MAC Fix things up for ^e,^x and ^z inter-
; K11REC.MAC upts on getting and sending files.
; 25 28-Jan-85 15:30:01 K11SER.MAC Get rid of imbedded crlfs in the short
; server reply string.
; 25 17-Jan-85 10:56:03 K11HLP.HLP More explanation about BINARY files as
; there seems to be a lot of confusion
; about binary file transfer.
; 25 17-Jan-85 10:53:17 K11CON BDN Added SET CONSOLE 7, SET CONSOLE 8 to
; K11ST1 BDN force P/OS Kermit11 to junk bit 7 when
; in terminal mode, thus avoiding DEC's
; multinational character set.
; 25 17-Jan-85 10:52:38 K11DSP BDN Clear PROFLG in ASSDEV if SET LINE is
; done and device is not X?: for RT11.
; 25 17-Jan-85 10:51:58 K11SEN BDN Added abort (^E,^X & ^Z) for SENDing.
; 25 16-Jan-85 13:20:45 K11E80 BDN Mods for much faster packet reading.
; Sped file get up by about 35% for RSTS
; 24 26-Nov-84 11:46:53 K11E80 BDN Fix a UU.TRM call for RSTS T9.0-07.
; 24 09-Nov-84 15:35:17 K11TSX BDN Creation from NED RHODE'S modifications
; to K11RTT for TSX+. Note that this one
; I can never test as I do not use TSX.
; 24 09-Nov-84 15:35:05 K11DSP BDN Creation.
; 24 09-Nov-84 15:32:36 K11RT? BDN Virtual overlays for XM, K11DSP to call
; the correct terminal i/o overlay based
; on the exec and line type (ie, TSX+ and
; XC/XL). We can now AVOID generating a
; differnt save image for each config.
; 23 25-Oct-84 16:47:20 K11XXX BDN This is getting to be a drag having to
; generate six different versions of the
; Kermit-11 each time I change something.
; 23 25-Oct-84 16:46:01 K11CON BDN Removed break sending code to specific
; executive support modules.
; 23 25-Oct-84 16:45:36 K11PRT BDN Real break sending for the PRO/RT11
; 23 25-Oct-84 16:45:11 K11ST1 BDN SET REPEAT ON/OFF
; 23 25-Oct-84 16:44:52 K11PAK BDN Repeat count prefixing added.
; 23 21-Oct-84 16:37:57 K11??? BDN Got sick of working on PRO/RT11.
; 23 21-Oct-84 16:38:36 K11CMD BDN Moved printing of banner.
; 23 21-Oct-84 16:37:16 K11REC BDN Added error logging and got all state
; switches parameterized.
; 23 21-Oct-84 16:36:51 K11CVT BDN Added new filetypes for binary mode.
; 23 16-Oct-84 15:32:31 K11CM1 BDN Removed number of commands from K11CMD
; to save space for PRO/RT11 version.
; 23 15-Oct-84 13:52:09 K11RT? BDN Fixed all the .FETCH stuff
; 23 15-Oct-84 13:39:22 K11ST1 BDN Creation, split K11STT in half for RT11
; 23 15-Oct-84 13:39:22 K11ST0 BDN Creation, split K11STT in half for RT11
; 23 15-Oct-84 13:39:05 K11CMD BDN Moved C$SET back in
; 23 14-Oct-84 16:01:22 K11PRT BDN New module for XC port communications
; with PRO/RT11 version 5.1
; 23 14-Oct-84 15:20:13 K11SEN BDN Creation, split receive and send state
; K11REC out from K11PAK to save space for the
; PRO/RT11 version of Kermit.
; 22 20-Aug-84 14:51:05 K11M41 BDN Mods for P/OS
; 22 15-Aug-84 09:15:32 K11M41 BDN Slave the connect line at SET LINE in
; routine ASSDEV (restored @ exit). Also
; add RPOI$S call to ...BYE for generic
; logout from server.
; 22 14-Aug-84 10:24:23 K11RTU BDN Added code for ASCTIM for RT11 Kermit.
; 22 14-Aug-84 10:21:51 K11ATR BDN Add attribute packet type 41 (8) so we
; K11RMS send the recieving Kermit the size of
; K11RT4 the file. Needed for RT11 Kermit since
; RT11 needs to preallocate files. Could
; not create file larger than 243 blocks
; on the PDT150 until this was put in.
; 22 10-Aug-84 13:20:31 K11RT4 BDN Moved ERROR text and error lookup code
; K11RTU to K11RTE.MAC, also moved RT11 COPY to
; K11RTU overlay.
; 22 08-Aug-84 15:50:33 K11RTD BDN Change the check for RT11 volume valid
; from home block offset 730 to 760.
; 22 03-Aug-84 10:28:54 K11PAK BDN Finish code for talking to half duplex
; K11COM IBM 370 compatible systems. Added SET
; K11STT IBM ON/OFF, SET LOCAL ON/OFF. SET LOC
; is equivalent to SET DUPLEX FULL/HALF.
; 22 03-Aug-84 10:28:23 K11M41 BDN Hook for single character reads if any
; handshaking character is set.
; 21 30-Jul-84 16:11:36 K11M41 BDN Added date and time ascii conversion.
; 21 30-Jul-84 16:11:01 K11COM BDN Added commands TIME and DATE
; 21 30-Jul-84 16:08:17 K11M41 BDN Fix TTPARS to return device name so we
; can use DECNET/M HTnn: device names.
; 21 30-Jul-84 16:07:44 K11CVT BDN Add .EXE and .RTS to binary file list.
; 21 30-Jul-84 11:17:24 K11PAK BDN More work for IBM mode
; 21 24-Jul-84 11:35:15 K11RTD BDN Extended directory lookup for RT11 to
; allow '%' in the filename or type.
; 21 23-Jul-84 12:47:03 K11DEF BDN New module, an '.include' file to define
; all the packet types.
; 21 23-Jul-84 12:32:11 K11SER BDN Stuff the default device into the server
; extended reply temp filename (needed for
; RT11 Kermit).
; 21 23-Jul-84 12:31:47 K11RT4 BDN Insure that we are NOT running under the
; SJ monitor.
; 21 19-Jul-84 15:35:00 K11PAK BDN Added 8 bit prefixing
; 20 19-Jul-84 10:26:57 K11RTU BDN Add support for RENAME and DELETE for RT
; version 5.
; 19 15-Jul-84 17:14:10 K11E80 BDN Add checks to be sure that the SET LINE
; devicename was a real device for RSTS/E
; and not some file name like SET LIN 1.
; 19 11-Jul-84 17:59:20 K11STT BDN Add SERVER DETACH command to allow ser-
; K11M41 ver to detach from KB: (or TI:). In the
; K11E80 the case of RSTS/E, spawn new job to log
; K11RT4 the caller back in.
; 19 11-Jul-84 17:49:26 K11ATR BDN Fix RMS problem with attributes for RSTS
; non attributed binary files.
; 18 06-Jul-84 15:20:34 Update sent to Frank Da Cruz for fubar
; RT11 code with .FETCH and .DSTAT
;
;
; 18 06-Jul-84 13:29:21 K11RTT BDN Add loop to eat any buffered server NAKS
; in TTYINI().
;
;
; 18 03-Jul-84 10:16:03 K11INI BDN Moved INIT and KERINI from K11CMD.MAC to
; module (K11INI). Also moved SPAR, RPAR,
; DSKDMP and FILLOG from K11PAK to here to
; save space in the root for RT11 version.
; 18 06-Jul-84 12:45:27 K11RT4 BDN Finally found out that I had gotten the
; arguments for .DSTAT swapped, which will
; explain why the RT11 file opens and cre-
; ates were being so flakey.
; 18 26-Jun-84 09:06:03 K11LCL BDN Optionally slow transfer rate down for
; user's based on the uic and speed
; 17 22-Jun-84 12:33:15 !!! finally ship new version out to Columbia !!!
;
;
; 17 22-Jun-84 11:20:29 K11M41 BDN Add SREX$S call in TTYINI so an aborted
; server can fix the line back up.
;
; 17 22-Jun-84 09:31:19 K11RMS BDN Don't set fb$wri in the FAC field when a
; file is readonly for binary file reads.
; 17 21-Jun-84 19:33:48 K11RT4 BDN Final RT11 code modifications.
; 17 21-Jun-84 16:22:12 K11CMD BDN Fix open for takefile (missing type arg)
; 17 21-Jun-84 15:19:46 K11STT BDN If set line kb: or set line ti: then we
; K11M41 should reset back to remote mode.
; K11E80
; 17 19-Jun-84 18:08:56 misc BDN Add xon/xoff support to RT11 connect be-
; cause the MT service for RT has far too
; much overhead for speeds greater than
; 300 baud.
; Add wildcard support for RT11 version.
; Add IO.ATT for slaved terminal re M+ 2.1
; and RSX v4.1 kits (curse you, K. Olsen).
; The 'new' versions of M+ and M disable
; typeahead for slaved lines unless the
; device is attached (?). Rather odd (?)
; 17 11-Jun-84 11:21:51 K11CVT BDN Add code to decide if a file is binary
; based on the filetype (ala .SAV, .BAC..)
; 17 10-Jun-84 16:44:50 K11RTT BDN Reduce tt read overhead for RT11 version
; K11RT4 BDN Dummy out K11LCL for RT11 to save space.
; K11RT4 BDN Timing bug in file open routine (?)
; K11RT4 Fix overlay error (K11ATR with K11SUB).
; 16 28-May-84 15:55:08 K11PAK BDN Insure that 'BUFEMP' does not try to CTL
; characters that could not have been set.
; Defensive response to the CPM Kermit 3.9
; which ALWAYS sends ampersands over with
; the CTL quote, '#'. Note: 20KERMIT does
; this also. Fix should be in CPM Kermit,
; but it's simple to fix at this end.
; 16 28-May-84 09:10:19 K11CMD BDN Fix call to TTYRST for Kermit-11/RT
; 16 28-May-84 09:09:40 K11RTT BDN Kermit-11 now runs under the FB moniter
; for Rt11 version 5 with MT support.
; 16 28-May-84 09:08:47 Version 3.0.051 of VMS Kermit fixed the
; above problem of ACK length.
; 16 25-May-84 15:40:35 K11PAK BDN Problem with VMSKERIT not liking 10 char
; acks for 'S' packets, changed ACK packet
; size to 11 for the time being until the
; problem can be isolated.
; 16 25-May-84 15:39:26 K11STT BDN Moved command definitions for the 'SET'
; command to K11COM.MAC to save space.
; 16 25-May-84 12:18:08 K11DEB BDN Added 'DISPLAY globalsym' command. This
; prints out values of variables in module
; K11DAT.MAC for debugging purposes.
; 16 21-May-84 17:01:56 K11PAK BDN Don't retry until MAXTRY the SINFO ('I')
; packet since older Kermit's will not be
; able to understand 'I' packets. The old
; Kermits will ALWAYS send NAKS for SINFO.
; 16 18-May-84 10:29:02 K11SER BDN The code for response to an 'R' packet
; was sending the RMS error text after the
; routine GETNXT already sent error packet
; 16 14-May-84 09:38:50 K11CON BDN Check for errors from the qio's for RSX.
; In particular, catch the IE.DNR in case
; the carrier drops.
; 15 08-May-84 11:15:35 K11PAK BDN Insure R0 cleared in BUFEMP in case the
; the data packet was null.
; 15 06-May-84 11:33:56 K11PAK BDN Moved the ACK for the EOF packet to be
; send AFTER the output file is closed. An
; occasional RSX problem in that the BREAK
; packet was lost due to timing required
; this mod, though if the line is set up
; properly this would not be a problem.
; 15 06-May-84 11:33:38 K11RMS BDN Increased record buffersize to 160
; 15 04-May-84 13:56:21 K11M41 BDN Fixed read timeouts in RBD's version of
; BINREA. Also hooked BINREA into CANTYP.
; 15 03-May-84 10:29:22 K11E80 BDN Added UU.SPL stuff for the PRINT command
; K11M41 Dummy support for it on RSX since PRINT$
; macro needs FCS, not RMS, support. Will
; check RMS out or else SPAWN a PRINT cmd.
; 15 03-May-84 10:25:46 K11M41 BDN Fixed the faking of BREAK for RSX. Pass
; K11CON a LUN to use for the set speed QIO.
; 15 02-May-84 11:03:57 K11RMS BDN Found out that either INIDM from SYSLIB
; or the GSA code from the RMS v2 kit will
; fail if th e task size is exactly on a 1
; KW boundary. In this case the high limit
; was 113777, causing $INIDM to crash at
; startup.
; 15 01-May-84 11:41:49 K11ATR BDN Added support for attribute packets.
; Allow auto determination of binary mode.
; Support for getting the IFAB data will
; only work between like Kermits.
; Added SET ATTRIBUTES OFF command to dis-
; able any attribute sending even if the
; other Kermit's CAPAS field indicates the
; support of it (ie, handle incompatible
; protocal versions or bugs)
; 14 18-Apr-84 10:41:34 K11RMS BDN Added 'inited' flag for lun being active
; 14 18-Apr-84 10:40:01 K11PAK BDN Mods for defered file creates to handle
; attribute packets
; 14 12-Apr-84 17:07:51 K11CON BDN Print speed and escape seq for CONNECT.
; 13 04-Apr-84 18:43:33 K11RMS BDN Added ept's FOPEN and FCREATE to allow
; use of multiple block buffering for seq
; files. Desired for use by HELP command.
; 13 04-Apr-84 18:39:38 K11SER BDN Calls to SINFO if we expect an extended
; reply from a remote server, required if
; block checks are type 2 or 3.
; 13 04-Apr-84 18:37:58 K11CON BDN Have X command cancel link being xoff'ed
; by the remote as well as send the remote
; an xon.
; 13 04-Apr-84 10:13:32 K11PAK BDN Debug logging mods. Added calls to TTXON
; to fix xoff'ed line. Also added routine
; SINFO to handle init for expected server
; reply.
; 13 04-Apr-84 09:36:06 K11STT BDN Changes to SET BLOCK
; 13 03-Apr-84 17:11:35 K11M41 BDN Added TTXON to cancel xoffed line state.
; 13 03-Apr-84 16:22:01 K11E80 BDN Added TTXON to cancel xoffed line state.
; 13 02-Apr-84 17:14:29 K11E80 BDN Insure that no single private delimiter
; is set for the terminal, ala the ttyset
; command SET DELIMITER "ch". If set, an
; unusual exec bug seems to creep in when
; a .sleep is executed ????
; 13 02-Apr-84 11:14:36 K11CON BDN Added support for half duplex link. Also
; added global 'duplex' to K11DAT.MAC
; 13 02-Apr-84 11:14:12 K11STT BDN Added SET DUPLEX HALF, SET DUPLEX FULL
; 13 30-Mar-84 10:45:08 K11E80 BDN Removed hardware parity set code since
; K11M41 we will generate our own if need be.
; 13 30-Mar-84 10:40:35 K11MAC BDN Defined a macro for XOR which does not
; require 'XOR reg,dst' format. It uses 4
; instructions and will be needed anyway
; for the RT11 version.
; 13 30-Mar-84 10:34:02 K11PAK BDN Fix extended server replies to work when
; the checksum is type 2 (12bit arith sum)
; or type 3 (16 bit CRC).
; 13 30-Mar-84 10:33:03 K11E80 BDN Rewrote DIRECTORY code, disable non-priv
; users from looking at other accounts. Is
; patchable via ONLPAT, see K11INS.DOC.
; 13 30-Mar-84 10:32:44 K11LCL BDN Modified protection for commands.
; 13 30-Mar-84 10:31:46 K11PAK BDN Added software parity generation. Would
; be mainly used when connecting out to a
; remote system that requires parity.
; 12 23-Mar-84 08:47:08 K11LCL BDN Rewrote so commands can be disabled via
; ONLPAT for RSTS/E.
; 12 20-Mar-84 20:06:06 K11E80 BDN Modified control C ast support so it can
; be compatible with the newly added RSX
; control C ast processing.
; 12 20-Mar-84 20:04:15 K11M41 BDN Added control C ast recognition for RSX.
; 12 20-Mar-84 20:03:16 K11CON BDN Added directive SREX$S for RSX connect
; to reset the TT: lines to their former
; states in case of an ABORT.
; 12 20-Mar-84 19:57:16 K11E80 BDN Conditional'ed out NAMCVT, which I re-
; K11M41 wrote and put into K11CVT.MAC.
; 12 20-Mar-84 19:55:15 K11CVT BDN A new module. Do executive independent
; parsing of file specs to return only the
; filename.filetype. This will help those
; users who need DAP support. It's also
; overlayed into the ERRDVR region.
; 12 19-Mar-84 16:52:51 K11RMS BDN Put back SY: defaulting for RSTS only.
; K11CPY Done if TST FU$DEF is <> 0. FU$DEF is
; defined in K11E80 to be .word 177777. In
; K11M41 it is .word 0.
; 12 19-Mar-84 14:15:40 K11CMD BDN Add check for device name on CONNECT cmd
; K11RMS Add routine to get MCR/CCL command line.
; 12 17-Mar-84 13:23:45 K11RMS BDN Add in Bob Denny's mods for RSX i/o and
; K11CON doing RMS DAP access correctly.
; K11M41
; K11CPY
;
; 12 14-Mar-84 16:58:12 K11RMS BDN Skip the $SEARCH if there is no wildcard
; context. This gets around problems with
; RSTS sites that modify the exec to alter
; the way the exec does directory lookup.
; This option is only executed if the lo-
; cation FU$DIR is <> 0 (see K11RMS.MAC)
;
; 12 14-Mar-84 10:49:37 K11E80 BDN Don't set 8BIT mode for the cpu console
; if we are running Kermit from it as a
; local Kermit dialing out (RSTS/E only).
; 12 14-Mar-84 10:45:39 K11CON BDN Added 'BIC #^C177,R1' in front of both
; of the 'CMPB R1,CONESC' to fix problem
; using Kermit's connect command from the
; console (TT00: or KB0:)
; 12 08-Mar-84 12:33:59 K11CMD BDN Added default of '.CMD' for TAKE
; 12 08-Mar-84 11:56:14 K11CMD BDN Move 'remlst' and 'cmdlst' into K11COM
; which is overlayed in the ERROR segment.
; Added calls to LOACMD and LOAREM to get
; the overlay with K11COM resident and to
; return a pointer to the command list. It
; saves about 3000 (8) bytes in task size.
; Note that this does not sit well with
; what $AUTO likes to do.
; If it causes a problem, put K11COM back
; into the root.
; Also had to make all RM$xxx epts in the
; module K11CMD global.
; 12 07-Mar-84 12:28:16 K11TRA BDN Added routine to 'brute force' a file to
; a remote line. Needed it to get the new
; (and not yet done) RT11 version onto the
; RT11 system being used for testing which
; is, would you believe, a real PDT150.
; 12 06-Mar-84 16:05:42 K11CMD BDN Mods to override auotmatic use of local
; terminal name if we're running in server
; mode and the user did a SET LINE TTnn:
; 11 05-Mar-84 10:22:48 Sent version 2.11 to Columbia and DEC.
; Did NOT include Bob Denny's RSX mods.
;
; 11 02-Mar-84 11:27:22 K11CMD BDN Modified init stuff to look for the init
; file KERMIT.INI in SY: then if not there
; to try LB:[1,2], SY:[1,2] and KERMIT:
;
;
; The following mods were done by:
; Bob Denny
; Alisa Systems, Inc.
; Pasadena, Ca
;
; 10 xx-Mar-84 xx:xx:xx K11M41 Bob also rewrote much of the RSX i/o
; support and wrote the connect code for
; RSX using asynch qios.
; 10 07-mar-84 14:47:00 K11CPY Close input file if $create failed.
;
; 10 05-Mar-84 15:47:30 K11CPY Remove defaulting to SY: so Decnet will
; work with systems that don't understand
; SY:
; 10 04-Mar-84 02:55:47 K11RMS Many small changes to allow DECNET (DAP)
; remote file access. See comments in
; K11RMS.MAC
; 10 04-Mar-84 01:10:03 K11M41 Remove FCS style filename parsing and
; allow DAp remote file specifications.
; 10 03-Mar-84 20:44:35 DAP11S.ODL Created this for sequential-only DAP
; support RMS. General purpose, though.
; 10 03-Mar-84 20:41:10 K11DAP.ODL Add new odl for Decnet (DAP) remote file
; support for RSX11M.
; 10 03-Mar-84 20:34:18 K11RSX.ODL Remove FCS parsing factor
;
;
; The following mods were done by:
; Brian Nelson
; Change Software, Inc.
; Toledo, Ohio
;
; 10 17-Feb-84 15:08:05 K11CMD BDN Did some trial stuff on talking to IBM
; mainframes, but the CMS Kermit makes
; things difficult as it can't time out.
; Added Set Handshake and show for it. Not
; yet done with handshake garbage.
; 10 17-Feb-84 15:07:14 K11PAK BDN Mods for doing ^X and ^Z things. Also
; affected K11M41 and K11E80.
; 09 10-Feb-84 12:25:17 K11M41 BDN Add HANGUP via IO.HNG qio, added code to
; spawn MCR SET /SPEED=TTnn:xxxx:xxxx if
; the SF.SMC call to change speed fails
; with an IE.PRI error, also changed the
; cli for SPWN$S to CLI... from MCR...
; Also use MCR spawn for disabling echo.
; 08 09-Feb-84 21:33:55 K11RSX.ODL Overlayed CSI1, CSI2 and PARSE which are
; used to get the simple filename.ext from
; the RMS11 expanded name string.
; 07 09-Feb-84 09:20:34 K11E80 BDN Try to anticipate the DHV11 q bus inter-
; face for showing and setting speed. No
; changes needed to K11M41 for rsx.
; 07 08-Feb-84 15:19:58 K11SER BDN Force mode to be remote if we are to run
; as a server. Not really needed, but what
; about doing a SET LINE and then SERVER ?
; 06 06-Feb-84 10:34:04 K11PAK BDN Added SETTMO to decide what receive time
; out to use based on server timeout, the
; other kermit's desired timeout and any
; timeout set via SET TIMEOUT value.
; 06 04-Feb-84 11:55:22 K11CMD BDN Added local copy and remote copy, rename
; 06 04-Feb-84 11:54:59 K11SER BDN Added remote copy and rename support.
; 06 04-Feb-84 11:53:32 K11CPY BDN New module, do file copies using RMS i/o
; This could be dependent on new versions
; of RMS11 as I access the IFABS to copy
; the correct file attributes,
; 06 03-Feb-84 10:06:23 K11RMS BDN Rewrote the default directory to work
; the way it should by using $PARSE and
; the DNS and DNA fields in the FAB. Also
; added FPARSE to return an expanded name.
; Changes to K11CMD, K11SER and K11PAK.
; 06 02-Feb-84 17:24:19 K11E80 BDN Fix CANTYP and change parameter list.
; Mods required to K11SER, K11PAK, K11CMD
; and K11M41.
; 06 01-Feb-84 14:25:46 K11RMS BDN Insure FB$FID in the FOP is cleared for
; the $ERASE call.
; 06 01-Feb-84 13:07:26 K11CMD BDN Local and remote WHO commands.
; 06 01-Feb-84 13:07:10 K11SER BDN Add support for remote WHO command
; 06 01-Feb-84 13:06:36 K1180S BDN New module, do a partial SYSTAT for RSTS
; 06 01-Feb-84 10:37:49 K11SER BDN Support remote type in server
; 06 01-Feb-84 10:36:27 K11CMD BDN Add 'REMOTE TYPE' and added 'DISK to be
; same as 'SPACE'
; 06 01-Feb-84 10:22:17 K11SER BDN Insure KERMIT.TMP has the default device
; string inserted in it for create.
; 06 01-Feb-84 10:21:19 K11CMD BDN Moved type and rename commands to K11SHO
; to space space in the root.
; 05 31-Jan-84 09:36:56 K11RMS BDN Fixed help file access problem at the
; source, ie, insure FB$GET is set only if
; the file is opened for reading.
; 05 31-Jan-84 08:41:03 K11CMD BDN Moved SHOW command to K11SHO.MAC, also
; moved $NAME and COMMAND macros to K11CDF
; 05 30-Jan-84 20:10:28 K11HLP BDN Found out that K11HLP needs temp privs
; to get at the help file (K11HLP.HLP). If
; the sys manager installs the optional
; patch to FIP for UU.LOK then a <234> is
; needed.
; 05 30-Jan-84 16:38:01 K11SER BDN Consolidated remote server command pac-
; ket sending and creation.
; 05 30-Jan-84 13:44:28 K11RMS BDN Added RMS $ERASE code and disk logging
; of files deleted.
; 05 30-Jan-84 12:01:41 K11CMD BDN Add ERASE, DELETE
; 04 27-Jan-84 21:33:21 K11CMD BDN Added REM ERASE, also add synonyms for
; SET LOGFILE as LOG_FILE and LOG-FILE.
; 04 27-Jan-84 20:02:34 K11HLP BDN Fix keyword match to match @ position 1
; 04 27-Jan-84 18:55:44 K11PAK BDN If datafield.len < 0 then reset checksum
; type to type '1' in RPACK$
; 04 27-Jan-84 18:45:08 K11SER BDN Redo support for remote commands
; 04 27-Jan-84 18:30:07 K11PAK BDN Redo support for extended server replies
;
; Version 2
;
;
; I decided that I would like to have the normal TED timestamp on the edit.
;
;
; 03 25-jan-84 K11RMS BDN Added support for stream ascii
; 03 25-Jan-84 K11CMD BDN Added SET RECORD-FORMAT STREAM and
; and SET RECORD-FORMAT VARIABLE
; 03 25-Jan-84 K11HLP BDN Finished subtopics for HELP command
; 03 23-Jan-84 K11SER BDN Finished prototype version of extended
; replies and added the remote DIRECTORY
; command (generic D) to test it for RSTS
; 03 23-Jan-84 K11M41 BDN Modified CANTYP(lun) to force LUN 5 if
; a value of zero (0) is passed for a lun
; to make it compatible with the RSTS
; version of CANTYP.
; 03 23-Jan-84 K11E80 BDN Rewrote NOECHO(line) and ECHO(line) to
; set noecho when the remote link is set
; via SET LIN and open in K11CON. Added
; calls in K11CMD and K11CON to NOECHO.
; 03 22-Jan-84 K11M41 BDN Fixed BINREAD(lun,tmo) to work with a
; passed timout of '-1' to effect a read
; without wait (no stalling if no data).
; 03 20-Jan-84 K11M41 BDN Test and fix TTSPEED, SETSPD and BINREA
; for RSX11M/M+
; 02 18-Jan-84 K11CMD BDN Added REMOTE, SPACE and REMOTE SPACE
; commands. Support added to K11E80 and
; K11SER for generic U command.
; 02 17-Jan-84 K11CMD BDN Added commands NOTE and COMMENT for
; echoing text from indirect files.
; 02 17-Jan-84 K11CMD BDN Allow open for KERMIT.INI
; 02 17-Jan-84 K11PAK BDN Allow 12 bit and CRC-CCITT Checksums
; The user should always set the checksum
; type for both KERMITS.
; 02 16-Jan-84 K11CMD BDN Allow underscore and digits in command
; names.
; 02 16-Jan-84 K11PAK BDN Redo checksum processing to accomadate
; 12 bit and CRC types.
; 02 16-Jan-84 K11CMD BDN Add Set Block-Check-Type and SHOW BLOCK
; 02 13-Jan-84 K11CMD BDN Moved C$HELP to module K11HLP
; 02 13-Jan-84 K11M41 BDN More rsxm/m+ code added
; 02 13-Jan-84 K11CMD BDN Added showing speed for SHOW LINE
; 02 13-Jan-84 K11CMD BDN Added TAKE and @ commands
; 02 12-Jan-84 K11PAK BDN Fix checking for X , Z in ACK for Sdata
; 02 11-Jan-84 K11CMD BDN Added RENAME command
; 02 11-Jan-84 K11RMS BDN Added RMS rename
; 01 08-Jan-84 K11PAK BDN Fix .asicz for ERROR: SPACK
; 01 08-Jan-84 K11CMD BDN Added call to XINIT for initialization
; based on the operating system.
; 01 08-Jan-84 K11PAK BDN Change timeout to MYTIME from MAXTIME
; if remote's SINIT packet had a value of
; zero for the timeout (CMS kermit?)
; 01 08-Jan-84 K11CMD BDN fix SET PARITY
.sbttl define macros and things we want for KERMIT-11
.if ndf, K11INC
.ift
.include /IN:K11MAC.MAC/
.include /IN:K11CDF.MAC/
.endc
.iif ndf, k11inc, .error ; INCLUDE for IN:K11MAC.MAC failed
.macro $NAME junk
.endm $NAME
.psect $code
cc$max == 2
.enabl gbl
.sbttl the main program
code
.enabl lsb ; For I/D space
kermit::message
tst do$ver ; /41/ Always print version #?
beq 5$ ; /41/ No
call sho$ve ; print version and edit number
print #warn$ ; /49/ Warning messages
5$: call drpprv ; drop temp privs (for RSTS)
clr cccnt ; clear control C count
mov #stack ,sp ; initialize a large stack
clr exstac ; /41/ Clear exit status now
clr exstal ; /41/ Clear exit status now
call kerini ; try to open SY:KERMIT.INI
call binini ;
10$: CALLS setcc ,<#cctrap> ; command loop reading
call drpprv ; insure no privs are up now
mov argbuf ,argpnt ; insure arg pointer is reset
call fixchk ; restore setted crc type
clr cccnt ; no control C's
call getcmd ; read and parse the command
tst r0 ; but did it work out ?
blt 70$ ; no
jsr pc ,@cmdadr ; dispatch to the command
cmpb jobtype ,#JOB$BAT ; /45/ Batch job today ?
bne 11$ ; /45/ No
tst status ; /45/ Status OK so far ?
bne 14$ ; /45/ Batch and bad status, DIE
11$: tst exireq ; /41/ Server force an exit ?
bne 15$ ; /41/ Yes, do it then
tst logreq ; /41/ Logout from CONNECT?
beq 90$ ; /41/ No
14$: call c$hang ; /41/ Yes, Send logout string and
; /41/ Hang the line up
15$: jmp c$exit ; /41/ Exit normally now
; Parse errors or EOF comes here
70$: cmp r0 ,#cmd$ex ; control Z typed
bne 80$ ; no
jmp c$exit ; yes, exit normally
80$: mov #-IE.ITS,exstac ; /41/ Assume inconsistent exit
cmp r0 ,#cmd$ba ; invalid command ?
bne 85$ ; no
print #200$ ; yes, print out an error message
br 90$ ; and go back for more
85$: cmp r0 ,#cmd$un ; /39/ not unique?
bne 90$ ; /39/ no
print #210$ ; /39/ yes
90$: tst exstac ; /41/ Take exit with STATUS now ?
beq 100$ ; /41/ No
tst cmdlun ; /41/ Indirect command file running?
beq 100$ ; /41/ No, ignore the error
CALLS close ,<#LUN.TA> ; /41/ Yes, abort the command file
clr cmdlun ; /41/ No more indirect file active
tst mcrind ; /41/ Were we running KER @Filename?
beq 100$ ; /41/ No, drop to interactive mode
jmp c$exit ; /41/ Yes, exit with STATUS please
100$: clr exstac ; /41/ Clear exit status
br 10$ ; back to the command loop
.save
.psect $PDATA ,D
200$: .asciz /Unrecognized command/<cr><lf>
210$: .asciz /%Command not unique./<cr><lf>
.even
.restore
.dsabl lsb
global <argbuf,argpnt,binini,drpprv,fixchk,stack>
global <mcrind,exstac,exstal,cmdlun,exireq,logreq> ; /41/
global <jobtyp,status> ; /45/
.sbttl commands
.enabl lsb
c$rec:: $name <REC>
call opentt ; initialize the link line
mov pauset ,oldpau ; save old pause settings
call throtl ; perhaps thottle the line speed
tst outopn ; is an output file already open?
beq 10$ ; no
CALLS close ,<#lun.ou> ; yes, close it up please
10$: CALLS recsw ,<#'R> ; get the file
tst r0 ; did it work
bne 20$ ; no
CALLS printm ,<#1,#200$> ; yes, say so if we are local
br 100$ ; bye
20$: CALLS printm ,<#1,#210$> ; it failed, say so iff local
inc status ; /45/ Flag for BATCH exit
100$: call clostt ; release the terminal
mov oldpau ,pauset ; restore old pause setting
message
return
.enabl lc
.save
.psect $PDATA ,D
200$: .asciz /Complete/<cr><lf>
210$: .asciz /Receive failed/<cr><lf>
.even
.restore
.dsabl lsb
global <oldpau ,pauset ,throtl>
.sbttl send a file to pc
.enabl lsb
.enabl lc
c$send::$name <SEN>
clr index ; initialize for directory i/o
tst inopn ; is an input file currently open
beq 5$ ; no
CALLS close ,<#lun.in> ; yes, pelase close old file up
5$: call opentt ; open and initialize the terminal
mov argbuf ,r1 ; address of command line buffer
tstb @r1
bne 10$ ; yes
message <?Syntax SEND Filename.type>,cr
br 100$
10$: tst sermode ; are we a server now ?
bne 15$ ; yes, don't delay sending it.
tst remote
beq 15$
CALLS suspend ,<sendly> ; give them a moment to type REC
15$: mov #srcnam ,r2 ; /36/ destination address
clrb asname ; /36/ no SEND f1 [AS] f2
20$: tstb @r1 ; /36/ and of the line today ?
beq 40$ ; /36/ yes, exit this loop
cmpb @r1 ,#40 ; /36/ if a space they may have typed
beq 30$ ; /36/ SEND file [as] file
movb (r1)+ ,(r2)+ ; /36/ ok so far, copy the name over
br 20$ ; /36/ next please
30$: inc r1 ; /36/ found a <SPACE> in the cmd line
cmpb @r1 ,#40 ; /36/ assume not trailing control char
blos 40$ ; /36/ no
clrb @r2 ; /36/ insure source name(s) asciz
CALLS iswild ,<#srcnam> ; /36/ check for wildcarding on the name
tst r0 ; /36/ if NE, then wildcarded
bne 40$ ; /36/ can't rename outgoing if wildcard
strcpy #asname ,r1 ; /36/ not wildcard, copy it
40$: clrb @r2 ; /36/ insure source name .asciz
CALLS tlog ,<#srcnam> ; /46/ Expand logical if need be
call getnxt ; get the first filename please
tst r0 ; did it work ?
bne 100$ ; no. Getnxt will send the error pak
CALLS sendsw ,<#'S> ; now send the file
tst r0 ; did it work ?
bne 90$ ; no
CALLS printm ,<#1,#200$> ; yes
br 100$ ; bye
90$: CALLS printm ,<#1,#210$> ; no
inc status ; /45/ Flag for BATCH status
100$: call clostt ; exit
message
clrb asname ; /36/ insure no more alternate names
return
global <cmdbuf ,filsiz ,index ,inopn ,sermod ,srcnam ,sendly>
.save
.psect $PDATA ,D
200$: .asciz <7><7>/Send complete/<cr><lf>
210$: .asciz <CR><LF><7><7>/Send failed/<cr><lf>
.even
.restore
.dsabl lsb
.sbttl open and close a link
.enabl lsb
opentt::tst linksts ; already open ?
bne 100$ ; yes, ignore it then
tst remote ; if remote
beq 10$ ; then ttname := ourname
tst inserv ; but not if we are a server
beq 5$ ; and the line number has been
tstb ttname ; set already
bne 10$ ;
5$: CALLS gttnam ,<#ttname> ; get the terminal name here
10$: CALLS ttyini ,<#ttname,#lun.ti,#ter$pa>
tst r0
bne 100$
CALLS ttysav ,<#ttname> ; save terminal settings
CALLS ttyset ,<#ttname> ; set some things now
mov sp ,linksts ; flag it as being open
100$: return
.dsabl lsb
clostt::save <r0>
CALLS ttyfin ,<#ttname,#lun.ti>
CALLS ttyrst ,<#ttname>
clr linksts
unsave <r0>
return
global <linksts,remote ,rwdata ,rwsize ,ttname>
global <gttnam ,ttyini ,ttyrst ,ttysav ,ttyset>
global <chksiz ,chktyp ,defchk ,mx$try ,maxtry>
global <inserv>
.sbttl exit kermit-11
c$exit::call sd$off
10$: tst outopn
beq 20$
CALLS close ,<#lun.ou>
20$:
jmp exit
global <exit>
c$nop:: return ; a NO-OP command ???
.sbttl bye, finish and get
rmtbye::
c$bye:: $name <BYE>
call ckremote ; must not be remote for this
bcs 100$ ; we are remote, abort this
call rembye ; tell a server to logout
100$: return ; back to command loop
rmtfin::
c$fin:: $name <FIN>
call ckremote ; must not be remote for this
bcs 100$ ; we are remote, abort this
call remfin ; tell a server to exit
100$: return ; back to command loop
.enabl lsb
rmtget::
c$get:: $name <GET>
call ckremote ; must not be remote for this
bcs 100$ ; we are remote, abort this
clrb asname ; /36/ assume no names
call nextarg ; /36/ if two files present use last one
tstb @r1 ; /36/ for new name (first file only)
beq 10$ ; /36/ nothing present
strcpy #asname ,r1 ; /36/ something there, copy it please
clrb -(r1) ; /36/ get rid of last arg now
10$: CALLS tlog ,<argbuf> ; /46/ Do any needed logical xlates
CALLS remget ,<argbuf> ; tell a server to get a file
tst r0 ; success ?
beq 100$ ; yes
CALLS printm ,<#1,#gmsg> ; no
inc status ; /45/ Failed
br 110$
100$: BEEP2
message <Kermit: Get complete>,CR
110$: message
clrb asname ; /36/ always fix [as file] name to null
return ; back to command loop
.save
.psect $PDATA ,D
gmsg: .asciz /Get from server aborted/<cr><lf>
.even
.restore
.dsabl lsb
rmtspa::$name <SPA>
call remspa ; issue a space ('U') generic command
100$: return
rmthlp::$name <HEL>
call remhlp ; issue a space ('U') generic command
100$: return
rmthos::$name <HOS>
CALLS remhos ,<argbuf>
return
rmtdir::$name <RDI>
CALLS remdir ,<argbuf> ; issue a dir ('D') generic command
return
rmttyp::$name <TYP>
CALLS remtyp ,<argbuf> ; issue a typ ('T') generic command
return
rmtwho::$name <WHO>
CALLS remwho ,<argbuf> ; issue a who ('W') generic command
return
rmtdel::$name <DEL>
CALLS remera ,<argbuf> ; issue a erase ('E') generic command
return
rmtcwd::$name <CWD> ; Change Working Directory
mov argbuf ,r1 ; check for optional password
10$: tstb @r1 ; find eos yet ?
beq 30$ ; yes exit
cmpb (r1)+ ,#40 ; look for a space
bne 10$ ; nothing
20$: tstb @r1 ; null here ?
beq 30$ ; yes, no password present
CALLS remcwd ,<argbuf,r1> ; send password over also
br 100$ ; and exit
30$: CALLS remcwd ,<argbuf,#null> ; send the command to the server
100$: return ; without any password trash
rmtlgi::$name <LOG> ; Login
mov argbuf ,r1 ; check for optional password
10$: tstb @r1 ; find eos yet ?
beq 30$ ; yes exit
cmpb (r1)+ ,#40 ; look for a space
bne 10$ ; nothing
20$: tstb @r1 ; null here ?
beq 30$ ; yes, no password present
clrb -1(r1) ; insert null over the <space>
CALLS remlgi ,<argbuf,r1> ; send password over also
br 100$ ; and exit
30$: CALLS remlgi ,<argbuf,#null> ; send the command to the server
100$: return ; without any password trash
rmtren::$name <REN> ; do a remote rename please
call gettwo ; insure both arguments are here
tst r0 ; but did that work out ok ?
bne 100$ ; no, just exit then please
CALLS remren ,<cmdbuf,argbuf>; send a generic 'r' please
100$: return ; bye
rmtcop::$name <COP> ; do a remote Kopy please
call gettwo ; insure both arguments are here
tst r0 ; but did that work out ok ?
bne 100$ ; no, just exit then please
CALLS remcop ,<cmdbuf,argbuf>; send a generic 'K' please
100$: return ; bye
ckremo: tst remote ; are we local or remote
bne 100$ ; local, ok
clc ; ok
return ; bye
100$: message <KERMIT is not running as a LOCAL Kermit>,cr
sec
return
global <asname ,cmdbuf ,argbuf>
global <rembye ,remdir ,remera ,remfin ,remget ,remhlp>
global <remspa ,conesc ,remote ,ttdial ,ttname>
global <remcop ,remren>
.sbttl get the next command
.enabl lsb
; R E A D C M D
;
; input: @r5 buffer address
; 2(r5) prompt address
; output: r0 error
; r1 byte count
readcmd:mov r2 ,-(sp) ; /41/
10$: tst cmdlun ; reading from indirect file
beq 50$ ; no, do a read on the terminal
inc exstal ; /41/ Increment command file line#
CALLS getrec ,<@r5,#lun.ta> ; yes, try to read a record
tst r0 ; did it work ?
bne 30$ ; yes
tst tkecho ; should we echo the prompt and
beq 100$ ; the command string read ?
tst infomsg ; /41/ Echo this ?
beq 100$ ; /41/ No
print 2(r5) ; yes, print the passed prompt
tst r1 ; /56/ Anything there?
beq 20$ ; /56/ No
print @r5 ,r1 ; and also echo the command.
20$: message ; /56/ crlf
mov @r5 ,r2 ; Check for comment
cmpb @r2 ,#'; ; Well?
beq 10$ ; Yes, ignore then
cmpb @r2 ,#'! ; Well?
beq 10$ ; Yes, ignore then
br 100$ ; and exit with a success read
30$: cmp r0 ,#ER$EOF ; hopefully, it's end of file
beq 40$ ; yes
message <Read error on TAKE file: >
direrr r0 ; no, print the RMS error number
40$: tst sy.ini ; from kermit.ini ?
bne 45$ ; yes, don't print the message
tst infomsg ; /41/ Really print the message
beq 45$ ; /41/ no
message <TAKE file closed>,cr
45$: CALLS close ,<#lun.ta> ; close the file on any errors
clr mcrind ; /41/ No longer KER @Filename
clr sy.ini ; no longer a kermit.ini
clr cmdlun ; and read a command from TI:
50$: tst mcrcmd ; did we ever get a mcr command
beq 60$ ; no
tst exieof ; /45/ Do we really want EOF returned?
beq 70$ ; /45/ No, just do a terminal READ
mov #-1 ,r0 ; yes, fake end of file then
br 100$ ; bye
60$: CALLS getmcr ,<@r5> ; no mcr command yet, check for it
mov r0 ,r1 ; did we get any characters there?
clr r0 ; say no errors
mov r1 ,mcrcmd ; flag if we got a mcr command
beq 70$ ; /41/ Nothing was there
mov @r5 ,r2 ; /41/ Check if KER @Filename.type
cmpb @r2 ,#'@ ; /41/ Well
bne 80$ ; /41/ No
mov sp ,mcrind ; /41/ Yes, we will exit on error then
80$: br 100$ ; /41/ And take an exit bow
70$: CALLS kbredi ,<2(r5),@r5> ; read a record from the terminal
100$: mov (sp)+ ,r2 ; /41/
return ; bye
.save
.psect $PDATA ,D
tkecho::.word -1 ; if <> then echo the take file
.restore
global <cmdlun ,argbuf ,cmdbuf ,er$eof ,lun.ta ,mcrcmd>
global <mcrind,infomsg>
.dsabl lsb
.sbttl the LOCAL command (basically, a NOP)
c$loc:: $name <LOC>
call loacmd
CALLS getcm0 ,<argbuf,r0>
tst r0
bmi 110$
mov r0 ,r3
call loacmd
CALLS getcm1 ,<argbuf,r0,r3>
tst r0
bmi 110$
jsr pc ,@r1
110$: return
global <argbuf>
.sbttl the REMOTE command
.enabl lsb
c$rem:: $name <REM>
call ckremo ; insure that we are remote
bcs 120$ ; no, exit then
call loarem ; get the command overlay in
CALLS getcm0 ,<argbuf,r0> ; and try it please
tst r0 ; did we find the remote command
bmi 110$ ; no
mov r0 ,r3 ; save the index (can't use r1)
call loarem ; get the overlay resident
CALLS getcm1 ,<argbuf,r0,r3> ; get any required args for command
tst r0 ; now could we get command arguements?
bmi 120$ ; no
jsr pc ,@r1 ; dispatch on it now please
return
110$: message <Unrecogized REMOTE command>,cr
120$: return
.dsabl lsb
global <loarem>
c$cwd:: strcpy #defdir ,argbuf ; CWD command, same as SET DEF command
clr r0 ; no errors
return ; exit
global <sdirini,sdodir>
c$home::clrb defdir
clr r0
return
c$test::
xxsdia::call shodia
return
GLOBAL <shodia>
.sbttl get command from the attached terminal
; G E T C M D
;
; input: nothing
; output: r0 command index in dispatch table
; r0 -1 (CMD$BAD) for invalid command
; -2 (CMD$EX) for exit
; side effects: cmdbuf written into
cvtarg = 4 + 10 + 20 + 40 + 200
.name = 0
.minle = 2
.cmdad = 4
.cmdar = 6
.cmdat = 10
cmd$un == -4
cmd$ab == -3
cmd$ex == -2
cmd$bad == -1
getcmd::clrb @argbuf
10$: clr cmdnum
mov cmdbuf ,r4 ; point to the command buffer
CALLS readcmd ,<r4,#prompt> ; get from current input stream
tst r0 ; and exit if it failed for whatever
bne 120$ ; oops
tst cccnt ; time to exit on control C ?
bne 120$ ; yep
CALLS cvt$$ ,<r4,r1,#cvtarg>; remove junk, convert to upcase
tst r0 ; anything left ?
beq 10$ ; no, reprompt and try again
add cmdbuf ,r0 ;
clrb @r0 ; .asciz
call loacmd ; get the command list overlay
CALLS getcm0 ,<r4,r0> ; search for the command
mov r1 ,cmdadr ; store address of routine away
mov r0 ,cmdnum ; store index of command away
mov r0 ,r3 ; did we actually find a command ?
bmi 110$ ; no
call loacmd
CALLS getcm1 ,<r4,r0,r3> ; now get the rest of the commandline
tst r0 ; or prompt for extra. Did it work
bmi 110$ ; no
100$: mov cmdnum ,r0
110$: return
120$: mov #cmd$ex ,r0
return
global <loacmd ,prompt>
.sbttl getcm1 check for additional input needed
; G E T C M 1
;
; input: @r5 current command buffer
; 2(r5) command table address
; 4(r5) index of the current command
;
; output: r0 index of current command or < 0 for error
; argbuf any additional input or rest of the command line
.enabl lsb ; /55/
getcm1: save <r1,r2,r3> ; Save registers that we destroy
sub #100 ,sp ; /55/ Allocate a small buffer for
mov sp ,r2 ; /55/ saving the command prompt.
tst wasnul ; /45/ Was the command for ?
beq 10$ ; /45/ No
clr wasnul ; /45/ Not null anymore
clr r0 ; /45/ Yes, return index 0
br 110$ ; /45/ Exit
10$: mov @r5 ,r1 ; Get command line address
scan #40 ,r1 ; Look for a space that might delimit
tst r0 ; the command name from an argument
beq 30$ ; Nothing there
add r1 ,r0 ; Point to the string after the space
COPYZ r0,argbuf,#200 ; Copy the command arg over please
br 100$ ; And exit
30$: mov 4(r5) ,r3 ; Get the command index
mul #$listl*2,r3 ; If no arg given, see if one is needed
add 2(r5) ,r3 ; Add in base address of command table
mov .cmdar(r3),r3 ; Get the argument prompt now
tstb @r3 ; Anything there that is required ?
beq 100$ ; No, so take a normal exit then.
STRCPY r2 ,r3 ; /55/ Copy the prompt over now
40$: CALLS kbredi ,<r2,argbuf> ; /55/ Read a command from the keyboard
tst r0 ; And exit if it failed for whatever
bne 90$ ; The read failed (control Z typed).
tst cccnt ; No, but is there a Control C?
bne 90$ ; Yes, treat as end of file
CALLS cvt$$,<argbuf,r1,#cvtarg>;Remove junk, convert to upcase
tst r0 ; Is there anything left ?
beq 40$ ; No, reprompt and try again
mov r0 ,r1 ; Something is left, point to the
add argbuf ,r1 ; end of the line and null terminate
clrb @r1 ; ...
br 100$ ; Take normal exit
90$: MESSAGE ; /55/ Insure a carriage return
mov #cmd$ab ,r0 ; Control Z on keyboard read.
br 110$ ; And exit
100$: mov 4(r5) ,r0 ; Return command index
110$: add #100 ,sp ; /55/ Pop the temporary buffer
unsave <r3,r2,r1> ; Restore registers we used
return ; And exit
.dsabl lsb ; /55/
global <argbuf ,cmdadr ,cmdbuf ,cmdnum>
.sbttl getcm0 find the command in the table
; input: @r5 command buffer
; 2(r5) first command descriptor block
; output: r0 command index
; r1 dispatch address
;
; errors: r0 -1 (CMD$BAD) unrecognized command
; r0 -4 (CMD$UN) not unique
;
; descriptor block:
;
; .word commandname text
; .word minimum length
; .word address of command itself
; .word required argument prompt or a null for nothing
; .word type of argument
.enabl lsb ; /45/
getcm0::save <r2,r3,r4>
clr wasnul ; /45/ Not NULL (ie, ?) anymore
clr -(sp) ; /39/ temp
mov @r5 ,r1 ; the passed command buffer
strlen r1 ; get the command length
mov r0 ,r3 ; error if nothing is there
beq 110$ ; oops
cmpb @r1 ,#'? ; /45/ Help desired today ?
bne 9$ ; /45/ No
mov 2(r5) ,r4 ; /45/ Yes, get start of list
message ; /45/ A crlf
5$: mov .name(r4),r1 ; /45/ Anything to dump?
beq 8$ ; /45/ No, exit
print r1 ; /45/ The command text allowed
print #300$ ; /45/ Move over
mov .cmdar(r4),r1 ; /45/ Get address of prompt
tstb @r1 ; /45/ Prompting text?
beq 7$ ; /45/ No
print .cmdar(r4) ; /45/ The prompt text next
7$: message ; /45/ A crlf
add #$listl*2,r4 ; /45/ Jump to the next entry
br 5$ ; /45/ Yes, dump it
8$: mov #nulcmd ,r1 ; /45/ No, return NULCMD
mov sp ,wasnul ; /45/ Flag as having been NULL
clr r0 ; /45/ No errors from GETCM0
br 200$ ; /45/ Exit please
9$: clr r2 ; length := 0
10$: scan (r1)+ ,#cmdch ; is this character ok in name?
tst r0 ; find it in the list ?
beq 20$ ; no, we have found enough
inc r2 ; command name len and pointer
sob r3 ,10$ ; next
20$: tst r2 ; anything useful in cmd line
ble 110$ ; No leading letters ????
mov 2(r5) ,r4 ; the list of edit commands
clr r3 ; R3 will have the command #
30$: tst .name(r4) ; anything left in the command list
beq 110$ ; no
strlen .name(r4) ; get the length of the command name
CALLS instr, <.name(r4),r0,@r5,r2> ; the next command?
cmp r0 ,#1 ; /39/ find anything ?
bne 35$ ; /39/ no
mov r0 ,@sp ; /39/ save it
35$: cmpb r2 ,.minle(r4) ; check if command length is ok
blo 40$ ; no, not enough for the command
dec r0 ; if match = position 1 we have it
beq 100$ ; then 'found the command'
40$: inc r3 ; commandnum := commandnum + 1
add #$listl*2,r4 ; cmdsaddr := succ( cmdsaddr)
br 30$
100$: mov r3 ,r0 ; return command index and exit
mov .cmdad(r4),r1 ; return the command address also
br 200$
110$: mov #cmd$ba ,r0 ; bad command
dec @sp ; /39/ command not unique?
bne 120$ ; /39/ no
mov #cmd$un ,r0 ; /39/ yes, say so
120$: br 200$
200$: tst (sp)+ ; /39/ pop it
unsave <r4,r3,r2>
return
.save
.psect $PDATA ,D
300$: .asciz / /
.even
cmdch: .asciz /0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-@_./
.even
.restore
.dsabl lsb
.sbttl cctrap the control C trap
.enabl lsb
cctrap::cmp cccnt ,#cc$max
bhi 100$
CALLS setcc ,<#cctrap>
inc cccnt
return
100$: tst inserv
beq 110$
call rstsrv
110$: tst infomsg ; /43/
beq 120$ ; /43/
message <Exiting due to control C interupt>,cr ; /43/
120$: jmp c$exit
global <cccnt ,exit ,inserv ,rstsrv ,infomsg>
.dsabl lsb
; D I R E R $
;
; called from DIRERR value macro
.enabl lsb
direr$::mov r0 ,-(sp) ; direrr will select whether or not
mov 4(sp) ,r0 ; to call rms error or FIP (or DIR)
beq 10$ ; error based on whether the error
CALLS syserr ,<r0,#errtxt> ; code is < 0 (implies RMS) or > 0
print #errtxt ; which implies either FIP (RSTS)
message ; or a DIRECTIVE error (RSX). Thus
10$: mov (sp)+ ,r0 ; for RSX all error codes should be
mov @sp ,2(sp) ; made > 0 for non RMS errors.
tst (sp)+ ; error 0 is a no-op.
return
.dsabl lsb
nextar::mov argbuf ,r1
10$: tstb @r1
beq 100$
cmpb (r1)+ ,#40
bne 10$
100$: return
nulcmd::clr r0 ; /45/ No errors
return ; /45/ Exit
.end kermit