UR103 001 .HEADING 002 'L' 1 INTRODUCTION'L' 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.FOOTING 004 1.3 005 ----------------------------------------------------------------- 006 | Local operation: No | 007 | Remote operation: Yes | 008 | Transfers text files: Yes | 009 | Transfers binary files: No | 010 | Wildcard send: Yes | 011 | File transfer interuption: Yes | 012 | Filename collision avoidance: No | 013 | Can time out: Yes (non-Reality) | 014 | 8th-bit prefixing: Yes | 015 | Repeat count compression: Yes | 016 | Alternate block check types: No | 017 | Terminal emulation: No | 018 | Communication settings: No | 019 | Transmit BREAK: No | 020 | IBM mainframe communication: No | 021 | Transaction logging: No | 022 | Debug logging: Yes | 023 | Session logging (raw download): No | 024 | Raw upload: No | 025 | Act as server: No | 026 | Talk to server: No | 027 | Advanced server functions: No | 028 | Local file management: No | 029 | Command/init files: Yes | 030 | Command macros: No | 031 | Extended-length packets: No | 032 | Local area networks: No | 033 | MS-Windows compatibility: No | 034 | Attribute packets: No | 035 | Sliding windows: No | 036 ----------------------------------------------------------------- 037 .SP.CENTER 038 Figure A. DATA/KERMIT capabilities at a glance UL306 001 .HEADING 002 'L' 3 PROGRAMMER'S REFERENCE'L' 003 .BEGIN PAGE.LEFT MARGIN 5.NOFILL 004 3.6 REALITY User Modes 005 .SKIP 006 ----------------------------------------------------------------- 007 | User Modes are used in the REALITY version to speed I/O and | 008 | to referenct the print spoolers queue table. | 009 ----------------------------------------------------------------- 010 .SKIP.FILL.JUSTIFY.PARAGRAPH 0.LINE LENGTH 65 011 The User Modes DK1 and DK2 will have to be MLOADed; check to see 012 that your installation does not already use frames 498 and 499 before 013 proceeding. The current version of DK1 will require a patch 014 to operate correctly with the SP-SEND function; Figure B shows the 015 use of the debugger to make this change. It is best to change the DK1 016 source variable BEGQTAB 017 to the DDDDD result of the operations of Figure B and reassemble 018 the mode befor MLOADing. This will insure that the correct code will 019 be restored if frame 499 must be reloaded in the future. 020 Packet input is done in this user mode in order to reduce to a 021 minimum the CPU time between characters. Notice that there is no 022 zero of parity bits on the characters. This means that 023 the sender should have 8-bit word length or 7-bit with space 024 parity, otherwise the MARK character (usually X'01') will not be 025 recognized. The Send-init packet received by DK1 must terminate 026 with a X'0D' somewhere but the EOL field may redefine the 027 termination character for subsequent packets. UL204 001 .HEADING 002 'L' 2 USER'S GUIDE'L' 003 .BEGIN PAGE.LEFT MARGIN 5.NOFILL 004 2.4 The SET Command 005 .SKIP 006 ----------------------------------------------------------------- 007 | The SET command is used to change some working parameters of | 008 | DATA/KERMIT. With a "?", a list of argument types is shown. | 009 ----------------------------------------------------------------- 010 .SKIP.FILL.JUSTIFY.PARAGRAPH 0.LINE LENGTH 65 011 Per the KERMIT PROTOCOL MANUAL, the SET command can be used to 012 change the working parameters from the defaults employed when DATA/KERMIT 013 is initially started. Each parameter may have subparameters as 014 defined in the 'PARAMS' item in the M/DICT for the DK account. 015 When DATA/KERMIT begins operation, it reads the 'PARAMS' item into 016 the COMMON area of the process converting the data to its own 017 "internal" format. 018 These values in the COMMON area may be changed conversationally 019 with the SET command to the extent defined in PARAMS attributes 2 and 8. 020 SHOW ALL (See next topic.) may be used to list the SETtable parameters. 021 General format is: 022 .SKIP.NOFILL 023 DATA/KERMIT>SET [ parameter{ subparameter} value ] 024 [ ? ] 025 ------------------------------------------ 026 .SKIP.FILL.JUSTIFY 027 The query character in place of a parameter will make a list 028 of all SETtable parameters with an argument requirement type in 029 lower case; see Figure A. 030 The example list has been compressed into one column for display in 031 this manual. UR205 001 .HEADING 002 'L' 2 USER'S GUIDE'L' 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.FOOTING 004 2.5 005 ----------------------------------------------------------------- 006 | | 007 | DATA/KERMIT>SHOW ALL | 008 | | 009 | CTRL-PREFIXING=# DATAFILE= | 010 | DEBUGGING=OFF DELAY=10 | 011 | EIGHT-BIT-PREFIXING=& END-OF-LINE=13 | 012 | LINE=1 MARKER=1 | 013 | PACKET-LENGTH=80 PADDING=0 | 014 | PAD-CHARACTER=00 PROMPT STRING=DATA/KERMIT | 015 | PROMPT CHARACTER=> REPEAT-COUNT-PROCESSING=~ | 016 | RETRY=5 TIMEOUT=45 | 017 | | 018 | | 019 | DATA/KERMIT> | 020 | | 021 ----------------------------------------------------------------- 022 .SKIP 1.CENTER 023 Figure A. SHOW command usage UL102 001 .HEADING 002 'L' 1 INTRODUCTION'L' 003 .BEGIN PAGE.LEFT MARGIN 5.NOFILL 004 1.2 Overview 005 .SP 006 ----------------------------------------------------------------- 007 | DATA/KERMIT is a data communications program which provides | 008 | some measure of file structure reconciliation between PICK | 009 | systems and more traditional file systems. | 010 ----------------------------------------------------------------- 011 .SP.FILL.JUSTIFY.PARAGRAPH 0.LINE LENGTH 65 012 DATA/KERMIT is an implementation of the KERMIT data commun-ications 013 protocol originally developed and distributed by the Columbia University 014 Center for Computing Activities. Version 0.3 has been 015 successfully used on the 016 Microdata (now McDonald Douglas) REALITY systems under 4.2E, 017 Ultimate coprocessor in the DEC MicroVAX II under R10*182P, 018 PC/XT compatibles under PICK R83*2.0 and PC/AT under 019 PICK R83*2.2. 020 Alternate statements in the source must be enabled or commented out 021 at installation time; there are only a few such program units listed 022 in Figure A. 023 DATA/KERMIT is very much still in the development stage 024 and a great deal of work will be necessary in order 025 to bring it up to the expectations of the KERMIT user community. 026 It will transfer error-free data however, and has been used with 027 KERMIT implementations as shown in Figure B. 028 This chapter and the next assume that DATA/KERMIT has been 029 installed and tested on your system. For installation see chapter 030 3 ^^PROGRAMMER'S REFERENCE.\\ 031 The PICK Operating System (REALITY was the original imple-mentation.) 032 has only one file type in the data space of the system. Files have a 033 hashed single-key structure with variable length fields (ATTRIBUTES) 034 and records (ITEMS). Sequential files of the traditional stucture are not 035 used but are emulated by items in which each (physical) attribute 036 is treated as a line of text (or any data). 037 DATA/KERMIT resolves these incompatibilities syntactually by the use 038 of a parameter called DATAFILE. File naming may also be conventional 039 or NORMALized in the Kermit sense. UR307 001 .HEADING 002 'L' 3 PROGRAMMER'S REFERENCE'L' 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.FOOTING 004 3.7 005 ----------------------------------------------------------------- 006 | Entry: | 007 | DICT := "DICT" for a dictionary level or | 008 | "" for the data portion | 009 | FILENAME := file name | 010 | FV := file variable containing pointer after | 011 | a successful open | 012 ----------------------------------------------------------------- 013 .SKIP.CENTER 014 Figure A. Subroutine OPENFILE Interface 015 .SKIP 016 ----------------------------------------------------------------- 017 | Entry: | 018 | C := crt column for message } Both C and R zero | 019 | R := crt row for message } means next line. | 020 | F := file variable of message file | 021 | ID := is message item-id | 022 | RESP := multi-valued message filler segments | 023 | | 024 | Exit: | 025 | RESP := user's response if paused for input | 026 ----------------------------------------------------------------- 027 .SKIP.CENTER 028 Figure B. Subroutine PERR Interface 029 .SKIP 030 ----------------------------------------------------------------- 031 | Entry: | 032 | N := string of hexadecimal characters | 033 | | 034 | Exit: | 035 | N := decimal number | 036 ----------------------------------------------------------------- 037 .SKIP.CENTER 038 Figure C. Subroutine BXTD Interface 039 .SKIP 040 ----------------------------------------------------------------- 041 | Entry: | 042 | CHRSTR := don't care | 043 | | 044 | Exit: | 045 | CHRSTR := dynamic array as below | 046 | <1,1> erase screen home cursor | 047 | <1,2> erase to end of page | 048 | <1,3> erase to end of line | 049 | <2,1> cursor up | 050 | <2,2> cursor down | 051 | <2,3> cursor left | 052 | <2,4> cursor right | 053 | <4> p1,p2,p3... for TERM verb | 054 ----------------------------------------------------------------- 055 .SKIP.CENTER 056 Figure D. Subroutine GTRMCHR Interface UL205 001 .HEADING 002 'L' 2 USER'S GUIDE'L' 003 .BEGIN PAGE.LEFT MARGIN 5.NOFILL 004 2.5 The SHOW Command 005 .SKIP 006 ----------------------------------------------------------------- 007 | The SHOW command displays a set of parameters as specified by | 008 | the 'PARAMS' item in the M/DICT for the DK account. SHOW ALL | 009 | is used to display all parameter values. | 010 ----------------------------------------------------------------- 011 .SKIP.FILL.JUSTIFY.PARAGRAPH 0.LINE LENGTH 65 012 Each parameter may individually be displayed with the SHOW 013 command. The general format is: 014 .NOFILL.SKIP 015 DATA/KERMIT>SHOW [ parameter {subparameter} ] 016 [ ALL ] 017 ------------------------------------- 018 .SKIP.FILL.JUSTIFY 019 If the subparameter is omitted and the parameter selected has 020 subparameters, all subparameters with their current values are 021 shown. 022 The SHOW ALL form will display all parameters defined in 'PARAMS'. 023 Figure A shows parameters in a two column format; format will vary 024 with terminal width set in the processes' TERM parameters. UR206 001 .HEADING 002 'L' 2 USER'S GUIDE'L' 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.FOOTING 004 2.6 005 ----------------------------------------------------------------- 006 | | 007 | DATA/KERMIT>SEND DOC UL203 UL204 UL205 | 008 | ------------------------------ | 009 | | 010 | | 011 ----------------------------------------------------------------- 012 .SKIP 1.CENTER 013 Figure A. SENDing an item list 014 .SKIP 2 015 ----------------------------------------------------------------- 016 | | 017 | DATA/KERMIT>SEND DOC * | 018 | -------------- | 019 | | 020 ----------------------------------------------------------------- 021 .SKIP 1.CENTER 022 Figure B. Wildcard SEND UREADME 001 This manual can be printed front and back to save space and 002 facilitate the concept of a single topic contained on facing 003 pages. To produce the manual this way 004 set PAGE DEPTH for the PRINTER at 61 with the TERM verb for 005 proper bottom margin 006 and then RUNOFF two print files: 007 one with a SAVE-LIST of item-ids of the format 'URctt' 008 and one of the format 'ULctt' 009 each in sorted order. "\c" is the chapter number and 010 "tt" is the topic. This will produce a set of Right 011 and Left facing pages respectively. 012 Physically print these jobs at 6 LPI/10 CPI on 8 1/2 x 11 inch paper with 013 the first printer column 014 adjacent to the left perforation and 015 top of form set on the third print line of the form. 016 Spine-side margins will be set to accomodate a binding or three-hole 017 punching. After printing turn the paper over and print reverse sides; 018 each print file will begin and end with a form feed. 019 The example below assumes that 'RIGHT' and 'LEFT' have been 020 defined in the dictionary of DK's DOC file pointed to by 021 Q-pointer DKD. Remember to set SP-ASSIGNments if multiple 022 copies are desired. The DICT for DKD has definitions 023 for Ultimate-, PICK-, and Microdata- LEFT and RIGHT. 024 .SKIP.NOFILL.NOJUSTIFY 025 :SSELECT DKD IF [ RIGHT ] 026 [ LEFT ] 027 ---------------------------- 028 nnn ITEMS SELECTED. 029 >RUNOFF DKD (P) 030 ------------------ UL103 001 .HEADING 002 'L' 1 INTRODUCTION'L' 003 .BEGIN PAGE.LEFT MARGIN 5.NOFILL 004 1.3 Capabilities 005 .SP 006 ----------------------------------------------------------------- 007 | Many capabilities are available in DATA/KERMIT and more are | 008 | always in the testing stage. | 009 ----------------------------------------------------------------- 010 .SP.FILL.JUSTIFY.PARAGRAPH 0.LINE LENGTH 65 011 The capabilities of DATA/KERMIT 0.3 are summarized in Figure A. 012 Lack of local operation (i.e. being able to act as a terminal 013 to a remote system) is the glaring deficiency. The difficulty 014 in implementing local operation characterizes the dearth of 015 system-level programming facilities in most PICK system implementations. 016 Each system is different, the best probably being the ADDS Mentor 017 system, which provides a PROTOCOL and CONVERSE verb as well as 018 the ability to assign (or not) a terminal port to a process. 019 Many of the features marked "No" in the list are in fact in work 020 and subroutines in the PR file may be found which address these 021 shortcomings. In particular, binary file transfers, alternate 022 block checks, server operation, and attribute packets are all 023 "in work." 024 They are marked "No" simply because sufficient testing has not 025 been done to insure reliablity. Only inspection of the source 026 code will reveal if work has been done on any given feature. 027 Refer to the topic on the HELP item in DK's M/DICT and the topic 028 on the PARAMS item for details of how to test a given feature or 029 interface new code to that extant. UR0 001 .HEADING 002 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.SKIP 20.CENTER 004 DATA/KERMIT UTILITY MANUAL 005 .SKIP 2.CENTER 006 Second Edition 007 .SKIP 5.CENTER 008 JOE FISHER -- Computer Consultant 009 .SKIP.CENTER 010 5709 Coventry Lane 011 .CENTER 012 Austin, Texas 78723-3541 013 .CENTER 014 512 928-4113 015 .SKIP 2.CENTER 016 Revised 8 August 1989 017 .SKIP 7.CENTER 018 Copyright (C) 1987,1989 019 .CENTER 020 Trustees of Columbia University in the City of New York 021 .SKIP.CENTER 022 Permission is granted to any individual or institution to copy or 023 .CENTER 024 use this document and the programs described in it, except for 025 .CENTER 026 explicitly commercial purposes. UL307 001 .HEADING 002 'L' 3 PROGRAMMER'S REFERENCE'L' 003 .BEGIN PAGE.LEFT MARGIN 5.NOFILL 004 3.7 Site Specific Application Subroutines 005 .SP 006 ----------------------------------------------------------------- 007 | General subroutines are used by DATA/KERMIT which it may be | 008 | desirably replaced with available code that was cutom written | 009 | at the installation site. | 010 ----------------------------------------------------------------- 011 .SP.FILL.JUSTIFY.PARAGRAPH 0.LINE LENGTH 65 012 Several subroutines are used that are likely duplicates of 013 similar subroutines custom written at the installation site. As 014 detailed below these functions include file opening, error message 015 and response input, hex to decimal conversion in DATA/BASIC, and 016 terminal characteristics resolution. 017 If there are available generalized subroutines to perform these 018 functions, it may be desireable to replace those listed below 019 with simple interface subroutines to call the custom code 020 already available at the installation site. Figures A through D 021 will detail the interfaces. 022 OPENFILE handles error conditions and file locks in a general way. 023 The file locking provisions are not used by DATA/KERMIT and may be 024 ignored. 025 PERR prints an error message with a bell if the message item-id is 026 numberic and in certain cases pauses for an operator response for 027 return to the calling program. 028 BXTD simply converts an hexadecimal string to a decimal number. 029 GTRMCHR returns a dynamic array containing 030 strings necessary to perform vareious screen cosmetics in 031 the arrays various elements as shown in Figure D. UR308 001 .HEADING 002 'L' 3 PROGRAMMER'S REFERENCE'L' 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.FOOTING 004 3.8 005 ----------------------------------------------------------------- 006 | COM area variable | 007 | ----------------- | 008 | REMOTE.MODE LINE | 009 | ----------- ---- | 010 | | 011 | REFER TO PROGRAM 'DKIO' FOR CONVENTIONS ON THE USE OF | 012 | THESE VARIABLES. | 013 | | 014 ----------------------------------------------------------------- 015 .SKIP.CENTER 016 Figure A. Variables Determining the Mode of Operation UL308 001 .HEADING 002 'L' 3 PROGRAMMER'S REFERENCE'L' 003 .BEGIN PAGE.LEFT MARGIN 5.NOFILL 004 3.8 Modes of Operation 005 .SP 006 ----------------------------------------------------------------- 007 | In "local" mode operation certain variable conventions apply. | 008 ----------------------------------------------------------------- 009 .SP.FILL.JUSTIFY.PARAGRAPH 0.LINE LENGTH 65 010 Provision has been made for all modes of Kermit operation as 011 described in the KERMIT PROTOCOL MANUAL Sixth Edition. Some of 012 these combinations will be extremely difficult to implement 013 on some PICK system implementations. The conventions illustrated 014 in Figure A however should be adhered to for compatibility 015 with updates of other subroutines. UR207 001 .HEADING 002 'L' 2 USER'S GUIDE'L' 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.FOOTING 004 2.7 005 ----------------------------------------------------------------- 006 | | 007 | DATA/KERMIT>RECEIVE | 008 | ----------- | 009 | | 010 | - cursor to here means "ready" | 011 | | 012 ----------------------------------------------------------------- 013 .SKIP 1.CENTER 014 Figure A. RECEIVE command usage UL206 001 .HEADING 002 'L' 2 USER'S GUIDE'L' 003 .BEGIN PAGE.LEFT MARGIN 5.NOFILL 004 2.6 The SEND Command 005 .SKIP 006 ----------------------------------------------------------------- 007 | Use the SEND command to transmit data (download) to the local | 008 | Kermit. Either multiple items or an all-file "*" may be used. | 009 ----------------------------------------------------------------- 010 .SKIP.FILL.JUSTIFY.PARAGRAPH 0.LINE LENGTH 65 011 To transmit items from DATA/KERMIT to the local machine, one first 012 logs into the remote host, runs DATA/KERMIT and then sets DATAFILE to 013 the source of data. After SETting any other parameters necessary 014 for the transaction, two forms of the SEND command may be used. 015 Figure A shows the item-list form; item-ids are entered 016 immediately following the command NOT surrounded with apostrophes, 017 quote marks. 018 Transmission will proceed in the order of item-id command entry. 019 The transmission may be interrupted with the standard Kermit 020 interrupt packet mechanism. See your local Kermit manual. 021 If TIMEOUT many seconds elapse with no incoming data, the retry 022 counter will be incremented and check against the RETRY limit. 023 The Microdata REALITY 4.2E version cannot timeout. 024 In addition, a "wildcard" may be used to send all items in a file. 025 This form is shown in Figure B. For file naming conventions, see topic 026 2.2. UL207 001 .HEADING 002 'L' 2 USER'S GUIDE'L' 003 .BEGIN PAGE.LEFT MARGIN 5.NOFILL 004 2.7 The RECEIVE Command 005 .SKIP 006 ----------------------------------------------------------------- 007 | To upload to DATA/KERMIT use the RECEIVE command. | 008 ----------------------------------------------------------------- 009 .SKIP.FILL.JUSTIFY.PARAGRAPH 0.LINE LENGTH 65 010 The RECEIVE command will output a combination which confirms 011 that the command has been parsed and considered valid. DATA/KERMIT 012 will loop waiting for a MARKER control character for 013 TIMEOUT many seconds. If no valid packet is received in that 014 time period, a NAK packet is issued the RETRY counter is incremented, 015 tested against the RETRY count setting and then either goes back 016 to a wait loop or terminates. 017 If a file type of "<0>" has been set, i.e. an ordinary data-space 018 file, the incoming Kermit filename will be used as the item-id. 019 When the DATAFILE is set to SPOOLER, the file will sent to the 020 print spooler according to the current SP-ASSIGNments. 021 Figure A shows use of the RECEIVE command. UR301 001 .HEADING 002 'L' 3 PROGRAMMER'S REFERENCE'L' 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.FOOTING 004 3.1 005 ----------------------------------------------------------------- 006 | Program ID Function (comment in attr. 2) ver. | 007 | ---------- ----------------------------- ---- | 008 | | 009 | DKDBUG *Print KERMIT debug data on printer | 010 | DKSEND *Send file item(s) | 011 | DKXMTB *Transmit a Break Transmission pkt. | 012 | DKCHECK *Checksum a packet | 013 | DKINIT *Initial Send-init parameters | 014 | DKXMTD *Transmit Data packet(s) | 015 | DKXMTE *Transmit a Error packet | 016 | DKXPKTS *Exchange packets (send or receive) | 017 | DKXMTF *Transmit a File Header packet | 018 | DKRCVZ *Receive an End-of-file packet | 019 | DKFPKT *Form a packet | 020 | DKSP-SEND *Send a spooler printfile | 021 | DKFATAL *Process fatal errors | 022 | DKDPKT *Decode a packet | 023 | DKACK *Set up an Acknowledge packet 0.3 | 024 | DKSP-RECEIVE *Receive print file data 0.2C | 025 | DKSET *Set Kermit parameters | 026 | DKCNV *Convert parameters to COM format | 027 | DKSTATUS *Display Kermit status | 028 | DKRECON *Reconcile capability parameters | 029 | DKOPNFILE *Open a file for processing | 030 | DKRCVD *Receive a Data packet | 031 | DKHELP *Display HELP info | 032 | DKRCVE *Receive a Error packet | 033 | DKRECEIVE *Recieve data | 034 | DKRCVF *Receive a File name packet | 035 | DKXMTS *Transmit a Send-init packet | 036 | DKDEFAULT *Set Default parameters | 037 | DKXMTZ *Transmit a End of File packet | 038 | DKVPKT *Verify a received packet | 039 | DKRCVS *Receive a init packet to initialize 0.3 | 040 | DKSERVER *Go into SERVER mode 0.3 | 041 ----------------------------------------------------------------- 042 .SKIP.CENTER 043 Figure A. DATA/KERMIT program unit names and functions UR302 001 .HEADING 002 'L' 3 PROGRAMMER'S REFERENCE'L' 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.FOOTING 004 3.2 005 ----------------------------------------------------------------- 006 | Pos. Name Pos. Name | 007 | ---- ---- ---- ---- | 008 | | 009 | 1 Command.line 33 | 010 | 2 Help.list 34 F.TYPE | 011 | 3 Err.msg.FV 35 | 012 | 4 MARK 36 RECORD | 013 | 5 Pkt.sequence 37 | 014 | 6 DATA 38 | 015 | 7 CHECK 39 | 016 | 8 Pkt.type 40 | 017 | 9 LIMIT 41 ID | 018 | 10 Debug.mode 42 | 019 | 11 DELAY 43 | 020 | 12 Default.params 44 F.NAME | 021 | 13 Log.flag 45 Data.FV | 022 | 14 Log.FV 46 Data.file.name | 023 | 15 DK-MD.FV 47 | 024 | 16 48 | 025 | 17 MAXL 49 SMAXL | 026 | 18 TIMEOUT 50 STIMEOUT | 027 | 19 NPAD 51 SNPAD | 028 | 20 PADC 52 SPADC | 029 | 21 EOL 53 SEOL | 030 | 22 QCTL 54 SQCTL | 031 | 23 QBIN 55 SQBIN | 032 | 24 CHKT 56 SCHKT | 033 | 25 REPT 57 SREPT | 034 | 26 CAPAS 58 SCAPAS | 035 | 27 RETRY 59 | 036 | 28 MODE 60 | 037 | 29 61 | 038 | 30 62 | 039 | 31 63 | 040 | 32 64 | 041 ----------------------------------------------------------------- 042 .SKIP.CENTER 043 Figure A. DATA/KERMIT COMMON variable locations UL301 001 .HEADING 002 'L' 3 PROGRAMMER'S REFERENCE'L' 003 .BEGIN PAGE.LEFT MARGIN 5.NOFILL 004 3.1 Overview 005 .SKIP 006 ----------------------------------------------------------------- 007 | DATA/KERMIT version 0.3 is written principally in DATA/BASIC | 008 | in the style of a number of small subroutines. The I/O code | 009 | is isolated and uses some Assembler code. | 010 ----------------------------------------------------------------- 011 .SKIP.FILL.JUSTIFY.PARAGRAPH 0.LINE LENGTH 65 012 Since DATA/KERMIT is and may always be in the development stage, 013 the primary concern for the style of the coding is that the 014 whole system be easy to change and port. Ease of change and debug 015 is afforded by exploiting the independently prepared and indirectly 016 callable subroutines of DATA/BASIC with the convention that no 017 source unit will exceed one CRT screen in size (24 x 80). This 018 permits changes to be made and verified in small steps. 019 Portability to other implementations of PICK 020 systems is simplified by isolating any statements peculiar to a given 021 system and commenting these lines in the source. Alternate source should 022 be commented as such and REMarked out. 023 Those program units requiring this type of change have an exclamation 024 point as the first value of attribute 4 of their source code items. 025 Those not needing change have an asterisk. 026 Added sophistication demands either a recoding in 027 assembler or the addition of monitor code to implement all of the 028 features seen in programs of the Kermit protocol running on other 029 systems. This consideration makes it imperative that all I/O 030 be isolated in source by system. 031 Figure A lists the program units with the comment line 032 (attribute 2) and release/revision level from each. 033 Line 1 contains either the SUBROUTINE 034 statement or *MAIN in the case of KERMIT. In the third attribute of 035 each unit is the date of last modification, the programmer's initials, 036 and the DATA/KERMIT version. 037 Attribute 4 of each program unit contains a multivalued list of 038 the names of subroutines called by that unit. The asterisk is always 039 the first value to denote a comment. This permits LIST WITHIN type 040 statement to make an indented subroutine listing; handy for debugging. UR201 001 .HEADING 002 'L' 2 USER'S GUIDE'L' 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.FOOTING 004 2.1 005 ----------------------------------------------------------------- 006 | . . . . . | 007 | setup local Kermit | 008 | . . . . . | 009 | | 010 | local-Kermit-prompt>CONNECT | 011 | ------------ | 012 | | 013 | LOGON PLEASE: your-account-name | 014 | ---------------------- | 015 | PASSWORD: your-password | 016 | ------------------ | 017 | | 018 | . . . . . | 019 | any remote logon messages or prompt/responses | 020 | . . . . . | 021 | :KERMIT | 022 | ----------- | 023 | | 024 |- - - - - - - - - - - - clear screen - - - - - - - - - - - - -| 025 | | 026 | DATA/KERMIT version 0.3 | 027 | DATA/KERMIT>HELP | 028 | --------- | 029 | command/argument list | 030 | . . . . . | 031 | | 032 ----------------------------------------------------------------- 033 .SKIP 1.CENTER 034 Figure A. Starting DATA/KERMIT 035 .SKIP 1 036 ----------------------------------------------------------------- 037 | | 038 | DATA/KERMIT>SET DATAF DKD | 039 | ------------------ | 040 | | 041 | DATA/KERMIT>show datafile | 042 | ----------------- | 043 | | 044 | DATAFILE=DKD <0> | 045 | | 046 | DATA/KERMIT>set data SPOOLER | 047 | -------------------- | 048 | | 049 | DATAFILE=SPOOLER <3> | 050 | | 051 ----------------------------------------------------------------- 052 .SKIP 1.CENTER 053 Figure B. Setting DATAFILE UL302 001 .HEADING 002 'L' 3 PROGRAMMER'S REFERENCE'L' 003 .BEGIN PAGE.LEFT MARGIN 5.NOFILL 004 3.2 COMMON Area 005 .SP 006 ----------------------------------------------------------------- 007 | All DATA/KERMIT programs reference a COMMON area of 64 var- | 008 | iables. For most programs only a STATUS argument is passed. | 009 ----------------------------------------------------------------- 010 .SP.FILL.JUSTIFY.PARAGRAPH 0.LINE LENGTH 65 011 The COMMON area is set at 64 variables in the main program KERMIT 012 even though the entire area is not referenced in each of the 013 subroutines. DATA/BASIC handles this nicely by the assignment of 014 variable locations in the Descriptor Table. Xi (i=1,2,3,...) is 015 used in the source code to "dummy" out variables that are not 016 referenced by specific subroutines, i.e. X3(5) means that the next 5 017 variables are not referenced. Figure A gives a complete listing of the 018 COMMON area and an example variable name. Those with no name are 019 not used in version 0.2. UL999 001 .HEADING 002 003 .BEGIN PAGE.LEFT MARGIN 5.FOOTING 004 Credits Printed 'D' 005 .NOFILL.SKIP 2.CENTER 006 DATA/KERMIT UTILITY MANUAL 007 .SKIP 2.CENTER 008 Second Edition 009 .SKIP 2.CENTER 010 Revised 8 August 1989 011 .SKIP 5.CENTER 012 Contributing Authors 013 .CENTER 014 ------------ ------- 015 .SKIP 016 Joe Fisher - Computer Consultant, Editor 017 Gerry Savary, Gould Inc., Circuit Protection Div. 018 .SKIP 30 019 Trademark credits: 020 Microdata, REALITY, SEQUEL - McDonald Douglas Computer Systems Co. 021 PICK - Pick Systems 022 DEC, VAX, VMS, microVMS - Digital Equipment Corp. 023 IBM - International Business Machines 024 Ultimate - Ultimate Corporation 025 .BEGIN PAGE 026 .FOOTING 027 028 .BEGIN PAGE UR303 001 .HEADING 002 'L' 3 PROGRAMMER'S REFERENCE'L' 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.FOOTING 004 3.3 005 ----------------------------------------------------------------- 006 | | 007 | Filename DICT M,S DATA M,S | 008 | -------- -------- -------- | 009 | | 010 | M/DICT 3,1 | 011 | PR 1,1 37,1 | 012 | DOC 1,1 7,1 | 013 | UM 1,1 3,1 | 014 | ERRFILE 1,1 1,1 | 015 | SUBS 1,1 3,1 | 016 | | 017 ----------------------------------------------------------------- 018 .SKIP.CENTER 019 Figure A. DATA/KERMIT files 020 .SKIP 021 ----------------------------------------------------------------- 022 | | 023 | DK filename Columbia U. \filename | 024 | DICT portion DATA portion | 025 | ----------- ------------ ------------ | 026 | | 027 | PR PICPR.DIC PICPR.BAS | 028 | DOC PICDOC.DIC PICDOC.RNO | 029 | M/DICT PICMD.DIC none | 030 | ERRFILE PICERR.MSG PICERR.MSG | 031 | SUBS PICSUB.DIC PICSUB.BAS | 032 | UM PICUM.DIC PICUM.ASM | 033 | | 034 ----------------------------------------------------------------- 035 .SKIP.CENTER 036 Figure B Corresponding Columbia U. \filenames UL201 001 .HEADING 002 'L' 2 USER'S GUIDE'L' 003 .BEGIN PAGE.LEFT MARGIN 5.NOFILL 004 2.1 Overview 005 .SP 006 ----------------------------------------------------------------- 007 | The file structure of the PICK system is unique and the DATA- | 008 | FILE parameter designates the source and destination file on | 009 | the PICK side of a transaction. Commands can be added and | 010 | tested independently; the Kermit Protocol Manual if followed | 011 | with respect to command syntax. | 012 ----------------------------------------------------------------- 013 .SP.FILL.JUSTIFY.PARAGRAPH 0.LINE LENGTH 65 014 The most significant difference between DATA/KERMIT and other 015 implementations of the Kermit protocol involve the PICK systems 016 file structures. Most operating systems treat a file as 017 just a collection of data that through one convention or 018 another is divided into logical records. The interpretation 019 of the contents of these records is not the concern of the 020 operating system itself but is left to some higher level 021 algorithms. In PICK systems part of the mechanism to separate 022 data into units below the record level is 023 the concern of the operating system itself. This design 024 coupled with the use of only one file type at the user data 025 level makes it necessary for DATA/KERMIT's logic 026 to syntactually reconcile these differences. 027 Topic 2.2 summarizes PICK systems file name conventions and file 028 specifications. 029 This chapter assumes that DATA/KERMIT is installed on your 030 system and is usually started by setting up your local Kermit 031 for the physical data line dicipline and issuing the 032 CONNECT command. Logon to the PICK system and at TCL enter 033 the KERMIT command as per Figure A. Before any file I/O transfer 034 can take place, you must SET DATAFILE in DATA/KERMIT; see Figure B. 035 Note that SET DATAFILE SPOOLER will only work when the user-modes 036 are assembled and loaded to access the spooler job table. 037 So far as reasonable, the KERMIT PROTOCOL MANUAL, Sixth Edition, has 038 been used to structure the command set. Additional commands can be 039 added without changing any of the code or parameters supplied in 040 the release by writing a subroutine with name "DKcommand". 041 This "command" can be executed with the "!" prefix 042 in front of the command or by adding the "command" to the 043 'HELP' item in the M/DICT for account DK. 044 SET permits a "SET ?" version as an aid to use, and "SHOW ALL" 045 is also permissible. 046 Minimally uniuqe command/parameter tokens are also permitted, 047 and can be entered in either upper or lower case. 048 Data values though are case sensitive. 049 In general, PICK systems have a fixed process set which is 050 determined at boot time, i.e. \processes can not be created or deleted. 051 Usually each async port on a system is associated with only 052 one of these processes and cannot be controlled by another 053 process. Release 0.3 of DATA/KERMIT therefore cannot operate in local 054 mode. Local mode may be implementable on Honeywell-based 055 Ultimate systems or older DEC-based models, or ADDS Mentor systems; 056 we would greatly 057 appreciate reports of anyone working on such a capability. UR202 001 .HEADING 002 'L' 2 USER'S GUIDE'L' 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.FOOTING 004 2.2 005 ----------------------------------------------------------------- 006 | DATAFILE |space| PICK | Kermit SEND File Name | 007 | setting |type | space | NORMAL | non-NORMAL | 008 |==========|=====|========|============|========================| 009 | | | | | | 010 | SPOOLER | <3> |printjob| SPnnn. | SPOOLER.nnn | 011 | | | | | | 012 | | | | nnn is spooler print job # | 013 |----------|-----|--------|-------------------------------------| 014 | | | | | 015 | ABS | <2> |abs | not yet implemented | 016 | | | | | 017 |----------|-----|--------|-------------------------------------| 018 | | | | | 019 | POINTER | <1> |pointer | not yet implemented | 020 | | | | | 021 |----------|-----|--------|-------------------------------------| 022 | | | | | | 023 | [ DICT ] | | | | | 024 | filename | <0> | file | id.fil | item-id.filename | 025 | | | | | | 026 | | | | "id" is first 6 chars if item-id | 027 | | | | "fil" is first 3 char of filename | 028 ----------------------------------------------------------------- 029 .SKIP 1.CENTER 030 Figure A. DATAFILE Parameter Conventions UR304 001 .HEADING 002 'L' 3 PROGRAMMER'S REFERENCE'L' 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.FOOTING 004 3.4 005 ----------------------------------------------------------------- 006 | *MAIN | 007 | *Read ANSI formatted tape; convert to file item(s). | 008 | *12/30/86 JF3 4.2E | 009 | OPEN "DICT","DK" ELSE PRINT "No DICT DK!";STOP | 010 | READ ST FROM "ANSITAPE" ELSE | 011 | PRINT "No ANSITAPPE in DICT DK!";STOP | 012 | END;PRINT "DESTINATION FILE NAME:":;INPUT file.name | 013 | OPEN "",file.name ELSE PRINT "No such file!";STOP | 014 | EQU Symbol TO RCW;STATE=1;D=0;LOOP | 015 | p=1;READT block ELSE p=0 | 016 | IF p THEN Symbol=block[p,4] | 017 | I=ST<3-p,STATE>;BEGIN CASE | 018 | CASE I=2;IF Symbol#"VOL1" THEN GO 9 | 019 | CASE I=3 | 020 | IF Symbol="HDR1" THEN | 021 | file.name=block[5,17];ext=TRIM(FIELD(file.name,".",2)) | 022 | IF ext[1,2]="DK" THEN | 023 | file.name=FIELD(file.name,".",1);a=1;item="" | 024 | END | 025 | END ELSE I=0 | 026 | CASE I=4 | 027 | IF Symbol="VOL1" THEN D=-1 ELSE | 028 | LOOP UNTIL RCW="" OR RCW[1,1]="_^" DO | 029 | item=block[p+4,RCW-4];a=a+1;p=p+RCW;RCW=block[p,4] | 030 | REPEAT;p=1;I=0 | 031 | END | 032 | CASE I=5 | 033 | IF Symbol="EOF1" THEN | 034 | WRITE item ON file.name | 035 | END ELSE I=0 | 036 | CASE I=8;D=5 | 037 | CASE I=9 | 038 | 9 PRINT "FORMAT ERROR!";PRINT "STATE=":STATE;STATE=99 | 039 | IF p THEN PRINT block | 040 | END CASE;IF I THEN STATE=ST<4,STATE>+D;D=0 | 041 | UNTIL STATE>=9 DO REPEAT | 042 | REWIND ELSE PRINT "TAPE NOT READY!" | 043 | END | 044 ----------------------------------------------------------------- 045 .SKIP.CENTER 046 Figure A. DATA/BASIC Program ANSITAPE 047 .SKIP 2 048 ----------------------------------------------------------------- 049 | | 050 | ANSITAPE | 051 | 001 X | 052 | 002 2]9]3]0]4]9]5]0 | 053 | 003 9]9]8]1]1]9]9]1 | 054 | 004 3]9]4]5]7]9]8]3 | 055 | | 056 ----------------------------------------------------------------- 057 .CENTER 058 Figure B. State Table item in DICT DK UL303 001 .HEADING 002 'L' 3 PROGRAMMER'S REFERENCE'L' 003 .BEGIN PAGE.LEFT MARGIN 5.NOFILL 004 3.3 Installation of Programs 005 .SKIP 006 ----------------------------------------------------------------- 007 | Since the PICK system is implemented in several different | 008 | ways only a generic installation proceedure is given. The | 009 | primary consideration is to facilitate updates and debugging. | 010 ----------------------------------------------------------------- 011 .SKIP.FILL.JUSTIFY.PARAGRAPH 0.LINE LENGTH 65 012 In order to facilitate the distribution of DATA/KERMIT to as many 013 sites as possible and to maintain a single program product, 014 DATA/KERMIT will likely be distributed as a collection of items in six 015 files as listed in Figure A. The steps necessary to 016 install DATA/KERMIT on any given implementation of the PICK 017 system will vary with that implementation and more topics contributed for 018 this manual detailing those proceedures will be greatly 019 appreciated by the editor and included herein. 020 The design intent of this manual is to detail document each program unit 021 and ancillary data item as a separate topic so that modifications 022 and new implementations can be done in a straight forward manner. 023 The only logical tape format common to all PICK implementations is 024 the T-DUMP format for a file of items. All PICK-like systems 025 seem to be able to T-LOAD data T-DUMPed by any other system. 026 DATA/KERMIT can best be installed by creating the files in the 027 list shown in Figure A with suggested MODULO and SEPARATIONS and 028 then loading the various data into them. 029 Should it be necessary to bootstrap from "text" files as distributed 030 by Columbia University, any method of moving the files to the PICK 031 system is done first. Spooling from tape to hold entry and then to 032 data files with SP-EDIT may work. Line numbers have been retained 033 in these "text" files to accomodate reconstruction with the PICK 034 EDITOR and confirm their integrety; after loading, line numbers must 035 be deleted with the editor. The Columbia files must then be broken 036 up into items in the DK account files whose correspondence is 037 shown in Figure B. 038 In the dictionary files and in ERRFILE, the 039 right bracket characters must be changed to 040 value marks, and backslashes to subvalue marks. 041 Item 'PARAMS' attribute 6 in MD has both right brackets and vaule marks! 042 Study it carefully; right brackets will be paired with left brackets, 043 value marks will not. UR305 001 .HEADING 002 'L' 3 PROGRAMMER'S REFERENCE'L' 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.FOOTING 004 3.5 005 ----------------------------------------------------------------- 006 | | 007 | :T-ATT | 008 | --------- | 009 | [92] TAPE ATTACHED, RECORD SIZE = 512 | 010 | | 011 | :T-RDLBL 1 | 012 | ------------- | 013 | LABEL = DATA/KERMIT 0.2C}11:34:22 07 JAN 1987 | 014 | | 015 | :ACCOUNT-RESTORE | 016 | ------------------- | 017 | DK 9521,3,1 | 018 | PR 12974,1,1 | 019 | DL/ID 10859,37,1 | 020 | UM 7155,1,1 | 021 | DL/ID 9622,5,1 | 022 | MD 9521,3,1 (S) | 023 | DOC 10337,1,1 | 024 | DL/ID 10338,7,1 | 025 | DL/ID 9521,3,1 (S) | 026 | M/DICT 9521,3,1 (S) | 027 | ERRFILE 10898,1,1 | 028 | DL/ID 10899,1,1 | 029 | SUBS 10900,1,1 | 030 | DL/ID 10901,3,1 | 031 ----------------------------------------------------------------- 032 .SKIP.CENTER 033 Figure A. DATA/KERMIT Restore from Tape 034 .SKIP 035 ----------------------------------------------------------------- 036 | :DK-SETUP | 037 | ACCOUNT NAME?accountname | 038 | --------------- | 039 | | 040 | nn ITEMS SELECTED. | 041 | 'DKname' ADDED | 042 | . . . . . | 043 | | 044 | 'KERMIT' ADDED | 045 ----------------------------------------------------------------- 046 .SKIP.CENTER 047 Figure C. Setting Up a User Account for DATA/KERMIT UR101 001 .HEADING 002 'L' 1 INTRODUCTION'L' 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.FOOTING 004 1.1 005 ----------------------------------------------------------------- 006 | CONVENTION MEANING | 007 | ---------- ------- | 008 | | 009 | UPPER CASE Characters or words printed in upper case are | 010 | required and must appear exactly as shown. | 011 | | 012 | lower case Characters or words printed in lower case are | 013 | parameters to be supplied by the user (e.g., | 014 | file name, column number, data, etc.) or | 015 | displayed by the system. | 016 | | 017 | {} Braces surrounding a word and/or parameter | 018 | indicate that the word and/or parameter is | 019 | optional and may be included or omitted at | 020 | the user's option. | 021 | | 022 | {}... If an elipses (i.e., three dots) follows the | 023 | terminating bracket, then the enclosed word | 024 | and/or parameter may be omitted or repeated | 025 | an arbitrary number of times. | 026 | | 027 | [ \word1 ] Brackets surrounding a column of words or | 028 | [ word2 ] parameters means that a choice of one is | 029 | . . . . . \required. The brackets are not entered and | 030 | [ wordN ] the column begins on the main example line. | 031 ----------------------------------------------------------------- 032 .SKIP.CENTER 033 Figure A. Conventions Used in General Formats 034 .SKIP 2 035 ----------------------------------------------------------------- 036 | CONVENTION MEANING | 037 | ---------- ------- | 038 | | 039 | TEXT Underlined test is user's input. | 040 | ---- | 041 | | 042 | TEXT Standard text represents system output. | 043 | | 044 | _ This symbol means no terminator necessary. | 045 | | 046 | _ This symbol represents a blank (space). | 047 | | 048 | _ Control characters are represented by their | 049 | standard ASCII mnemonic designators. For | 050 | example, GS is the ASCII standard symbol | 051 | for Group Seperator: X'1D'. | 052 | | 053 ----------------------------------------------------------------- 054 .SKIP.CENTER 055 Figure B. Conventions Used in Examples UL202 001 .HEADING 002 'L' 2 USER'S GUIDE'L' 003 .BEGIN PAGE.LEFT MARGIN 5.NOFILL 004 2.2 File Specifications 005 .SKIP 006 ----------------------------------------------------------------- 007 | The DATAFILE parameter has been added to DATA/KERMIT to indi- | 008 | cate the "space" from/to which data will be sent/received. In | 009 | the SEND command an "*" means all items. The RECEIVE command | 010 | may designate the item-id of the incoming file. | 011 ----------------------------------------------------------------- 012 .SKIP.FILL.JUSTIFY.PARAGRAPH 0.LINE LENGTH 65 013 In all PICK implementations each "file" in the PICK sense of the word 014 is composed of 015 a set of items, each of which is handled by DATA/KERMIT as a "file" 016 in the Kermit sense. 017 In addition to the "file-space" in a PICK system, there is 018 also "pointer-space", "abs-space" 019 and "printjob-space". Since 020 data in these alternate "spaces" 021 will likely 022 be of as much interest to Kermit users as file-space data, 023 provision within DATA/KERMIT has been made to accomodate naming them. 024 This mechanism is the DATAFILE parameter which indicates the space 025 from or to which a Kermit transaction will occur. 026 Figure A summarizes these conventions in tabular form. 027 As of Release 0.3 only the DATAFILE reserved name SPOOLER has been 028 implemented for printjob-space. 029 Assembler modes are necessary for SEND access to this space and 030 they are provided only for Microdata 4.2E and VAX-based Ultimate R10 031 systems. 032 At TCL (Terminal Command Language) an item is usually referenced 033 by specifing a file name and item-id seperated by a space. This 034 is confusing for new users of PICK systems who are 035 experienced users of other operating systems as well as 036 experienced Kermit users. So to remain in syntactual 037 agreement with the KERMIT PROTOCOL MANUAL, the DATAFILE parameter 038 was added to DATA/KERMIT. 039 The SEND command is followed by a list of item-ids of items 040 to be sent as Kermit files. 041 Wildcarding as is commonly used in many systems has only one 042 variation in PICK systems: the "*" used in place of an item-id 043 list to indicate all items in a file. This convention is used only in 044 TCL-II verbs. ENGLISH/RECALL/ACCESS verbs must use the SELECT verb 045 or a variant to build a list of item-ids. 046 The convention is retained in DATA/KERMIT. 047 File naming during the Kermit transaction is described in a later topic. 048 When the RECEIVE command is issued, the incoming file will be stored 049 in the space currently pointed to by DATAFILE. 050 If a "<0>" type file is currently SET, the Kermit file will be stored 051 as an item whose id is the file name sent by the other 052 Kermit. See the RECEIVE command topic. 053 If a "<3>" type DATAFILE is currently SET, i.e. SPOOLER, the incoming 054 file will be stored in printjob-space as an spooler "entry number" and 055 treated normally according to the processes SP-ASSIGNments. UR203 001 .HEADING 002 'L' 2 USER'S GUIDE'L' 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.FOOTING 004 2.3 005 ----------------------------------------------------------------- 006 | | 007 | EXIT to TCL | 008 | HELP by giving this message | 009 | RECEIVE file records | 010 | SEND file records | 011 | SET a parameter | 012 | Show parameter value(s) | 013 | VERSION of this Kermit | 014 | | 015 ----------------------------------------------------------------- 016 .SKIP 1.CENTER 017 Figure A. HELP command output 018 .SKIP 2 019 ----------------------------------------------------------------- 020 | | 021 | DATA/KERMIT>VER | 022 | ------- | 023 | | 024 | DATA/KERMIT version 0.3 | 025 | | 026 | DATA/KERMIT>EXIT | 027 | -------- | 028 | | 029 | > now at TCL | 030 | | 031 ----------------------------------------------------------------- 032 .SKIP 1.CENTER 033 Figure A. VERSION command output with EXIT UL304 001 .HEADING 002 'L' 3 PROGRAMMER'S REFERENCE'L' 003 .BEGIN PAGE.LEFT MARGIN 5.NOFILL 004 3.4 ANSITAPE Program 005 .SKIP 006 ----------------------------------------------------------------- 007 | The ANSITAPE program can be used to load DATA/KERMIT files | 008 | from a CUCCA distribution tape in the ANSI "D" format. | 009 | THIS PROGRAM IS INCORRECT FOR RELEASE 0.3; THE STATE TABLE | 010 | MUST BE FIXED TO ACCOMODATE MULTIPLE ITEMS IN ONE TAPE FILE | 011 ----------------------------------------------------------------- 012 .SKIP.FILL.JUSTIFY.PARAGRAPH 0.LINE LENGTH 65 013 ANSI "D" tape format provides that each volume in a set and each 014 file on a volume have a set of 80 character label records followed 015 by a tape (file) mark. A file of fixed length blocks of variable 016 length undelimited records padded in the last block by "_^" 017 characters then follows. Another tape mark follows this data file 018 section which is itself followed by a set of trailer labels for 019 for end-of-file or end-of-volume as appropriate. 020 A redundant tape mark signals end-of-set. 021 The DATA/BASIC program ANSITAPE will search a tape volume set 022 for filenames with an extension beginning with the letters "DK". 023 The following data section will be loaded into the file 024 designated by the operator at the beginning of the program 025 with each logical record becoming an attribute of an item whose 026 id is "filename". 027 The program has only been tested on tapes containing only "*.DK*" 028 files so a word of caution is in order. 029 Some means should be added to the program to load different files 030 based on their tape file name. 031 Tapes made on the DEC VAX computers under microVMS 4.4 have written 032 data with 8-bit characters like attribute marks (X'FE') and 033 value marks, but whether these characters will make the transfer 034 back on the target PICK system has not been fully check out. 035 Also some characters used in item-ids of DATA/KERMIT items are 036 illegal in filenames on other systems writing ANSI "D" tapes, 037 therefore some editing and item renaming may be necessary. 038 A State Table drives the program and it is shown in Figure B. 039 The right bracket characters are, as usual, value marks (X'FD') 040 entered at the keyboard on most PICK systems as . UR102 001 .HEADING 002 'L' 1 INTRODUCTION'L' 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.FOOTING 004 1.2 005 ----------------------------------------------------------------- 006 | DKCNV | 007 | DKDF | 008 | DKINP | 009 | DKIO | 010 | DKRCVB | 011 | DKSEND | 012 | DKXMTS | 013 ----------------------------------------------------------------- 014 .SP.CENTER 015 Figure A. DATA/KERMIT program units with alternate source 016 .SP 2 017 ----------------------------------------------------------------- 018 | Machine Oper. Sys. KERMIT ver. | 019 | ------- ---------- ----------- | 020 | | 021 | DEC PRO/350 P/OS Kermit-11 T3.50 | 022 | DEC microVAX II microVMS Kermit-32 3.3.117 | 023 | IBM PC-XT MS-DOS Kermit-MS 2.32/A | 024 | EPSON PX-8 CP/M Kermit-80 4.09 | 025 | Zenith Z100 ZDOS BesTerm | 026 ----------------------------------------------------------------- 027 .SP.CENTER 028 Figure B. Tested DATA/KERMIT Compatibility 029 .FOOTING 030 1.2 UL305 001 .HEADING 002 'L' 3 PROGRAMMER'S REFERENCE'L' 003 .BEGIN PAGE.LEFT MARGIN 5.NOFILL 004 3.5 Installation on REALITY with ACCOUNT-RESTORE 005 .SKIP 006 ----------------------------------------------------------------- 007 | Guidelines for installation of DATA/KERMIT on a Microdata | 008 | REALITY system running 4.2E are given. No SEQUEL installation | 009 | has yet been done. | 010 ----------------------------------------------------------------- 011 .SKIP.FILL.JUSTIFY.PARAGRAPH 0.LINE LENGTH 65 012 Since REALITY 4.2 has but a single POINTER-FILE for all cataloged 013 programs, it was deemed best to create a "limited capability" 014 account to contain the DATA/KERMIT files and provide only for some 015 cataloging operations from that account. This account is named 016 DK for "DATA/KERMIT" and its Master Dictionary has only a few 017 verbs and attribute definitions. Log onto SYSPROG, T-ATT the tape, 018 T-RDLBL 1, and then ACCOUNT-RESTORE; this will create the DK 019 account and load the files. Put a 'DK' Q-pointer in SYSPROG's MD. 020 Q-pointers will have to be put into any accounts that will use 021 DATA/KERMIT; normally "DK-filename" by convention for the 6 files 022 listed in topic 3.3. 023 Check the verb definitions in DK's Master Dictionary that they 024 are consistent with the local system; change as necessary. 025 Now LOGTO DK; there is no password. Catalog the verbs with 026 .SKIP.NOFILL 027 :CATALOG PR verb 028 ------------------- 029 .SKIP.FILL 030 The CATALOG proc will delete the verb item that is automatically 031 put into DK's MD; this is desireable as it will never be executed 032 there. Notice that there are Map items and '$verb' object items 033 in DK-PR. This is useful for debugging and comparing object code 034 date/times of compilation. The objects were compiled without the 035 E option. This permits line numbers in error messages but takes 036 more space and time. 037 Now enter 038 .SKIP.NOFILL 039 :SHARE MD PARAMS 040 ------------------- 041 .SKIP.FILL 042 in order to get access to the default Kermit parameters. LOGTO SYSPROG 043 to leave DK. 044 All DATA/KERMIT verbs will have to be added to any user account's 045 MD including SYSPROG. This can be done by 046 .SKIP.NOFILL 047 :SELECT DK-PR IF NAME # "$]" AND # "*]" 048 ------------------------------------------ 049 .SKIP.FILL 050 then ED MD and prestore a MErge command to enter these items. UR306 001 .HEADING 002 'L' 3 PROGRAMMER'S REFERENCE'L' 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.FOOTING 004 3.6 005 ----------------------------------------------------------------- 006 | | 007 | 010 BEGQTAB DTLY 11166_\007 00_\008 00002B9E | 008 | | 009 ----------------------------------------------------------------- 010 .SKIP.CENTER 011 Figure A. Source Mode DK1 Line to Patch 012 .SKIP 2 013 ----------------------------------------------------------------- 014 | | 015 | :WHERE Find Spooler port (pp) and | 016 | ---------- its PCB (xpcb) for the | 017 | last process listed. | 018 | . . . . . | 019 | | 020 | \pp xpcb ps . . . . . | 021 | | 022 | : Interupt into DEBUGGER. | 023 | I 6.8D | 024 | !.xpcb.13A;6.000080xxxxxx= | 025 | --------------- ---- | 026 | Display pointer in PCB. | 027 | !.xxxxxx.1C.000100yyyyyy= | 028 | -------------- ---- | 029 | Display pointer to Q table. | 030 | !G | 031 | ----- | 032 | | 033 | :XTD yyyyyy | 034 | -------------- Convert to decimal. | 035 | | 036 | DDDDD Value for BEGQTAB in DK1. | 037 | | 038 ----------------------------------------------------------------- 039 .CENTER 040 Figure B Patching User Mode DK1 041 .CENTER 042 for Spooler Queue Table Reference UL101 001 .HEADING 002 'L' 1 INTRODUCTION'L' 003 .BEGIN PAGE.LEFT MARGIN 5.NOFILL 004 1.1 How to Use This Manual 005 .SP 006 ----------------------------------------------------------------- 007 | This manual is written in a modular format with each pair of | 008 | facing pages representing a single topic. This is essentially | 009 | the same format as that appearing in most Microdata manuals. | 010 | The following text appears in most REALITY and PICK manuals. | 011 ----------------------------------------------------------------- 012 .FILL.JUSTIFY.PARAGRAPH 0.LINE LENGTH 65 013 The approach in this and other REALITY manuals differs substantially from 014 the typical reference manual format. Here each pair of facing pages 015 discusses an individual topic. Generally the left-hand page is devoted 016 to text, while the right-hand page presents figures referred to by the 017 text. At the head of each text page are a pair of titles, the first one 018 naming the section and the second one naming the topic. Immediately below 019 these titles is a brief summary of the material covered in the topic. 020 The advantage of this format will become readily apparent to the reader 021 as he begins to use this manual. First of all, the figures referred to 022 in the text are always conveniently right in front of the reader at the 023 point where the reference is made. Secondly, there is a psychological 024 advantage to the reader in knowing that, when he has completed reading a 025 topic and goes to turn the page, he is done with one idea ad ready to 026 encounter a new one. 027 Conventions used in presenting general formats 028 are listed in Figure A, while those used in examples are listed in 029 Figure B. 030 .READ DKD UREADME UL203 001 .HEADING 002 'L' 2 USER'S GUIDE'L' 003 .BEGIN PAGE.LEFT MARGIN 5.NOFILL 004 2.3 EXIT, HELP and VERSION Commands 005 .SKIP 006 ----------------------------------------------------------------- 007 | The HELP command prints a list of available commands as deter-| 008 | mined by the item 'HELP' in the DK master dictionary. The | 009 | EXIT commands leaves Kermit and returns to TCL. The VERSION | 010 | command show DATA/KERMIT release level in operation. | 011 ----------------------------------------------------------------- 012 .SKIP.FILL.JUSTIFY.PARAGRAPH 0.LINE LENGTH 65 013 The HELP command gives a list of commands with their argument 014 types that your DATA/KERMIT implementation can process. Argument 015 designations are very cryptic and may be changed by editing 016 the item 'HELP' in DK's M/DICT; see chapter 3 for details. 017 Figure A shows a typical HELP command. 018 EXIT will cause the process to leave DATA/KERMIT and return to TCL. 019 If debug logging or other printer output has been done during the 020 execution of DATA/KERMIT, the printjob files will be closed and 021 printer output will be sent to the form queue last SP-ASSIGNed. 022 Use VERSION to check the release level of DATA/KERMIT currently 023 operating. The response data is actually taken from the item 024 'HELP', attribute 1, in DK's M/DICT. UR204 001 .HEADING 002 'L' 2 USER'S GUIDE'L' 003 .BEGIN PAGE.LEFT MARGIN 15.NOFILL.FOOTING 004 2.4 005 ----------------------------------------------------------------- 006 | | 007 | DATA/KERMIT>SET ? | 008 | --------- | 009 | CTRL-PREFIXING prefix char | 010 | DATAFILE {[DICT ]filename,SPOOLER} | 011 | DEBUGGING mode | 012 | DELAY time | 013 | EIGHT-BIT-PREFIXING prefix char | 014 | END-OF-LINE dec char # | 015 | LINE # | 016 | MARKER dec char # | 017 | PACKET-LENGTH # | 018 | PADDING char len | 019 | PAD-CHARACTER dec char # | 020 | PROMPT char(s) | 021 | REPEAT-COUNT-PROCESSING prefix char | 022 | RETRY count | 023 | TIMEOUT seconds | 024 | | 025 | DATA/KERMIT> | 026 | | 027 ----------------------------------------------------------------- 028 .SKIP 1.CENTER 029 Figure A. SET command help