Google
 

Trailing-Edge - PDP-10 Archives - bb-x130a-sb - nik.kbd
There is 1 other file named nik.kbd in the archive. Click here to see a list.
[*ASCI][*RUNOFF][*FT][*TITLE]NIK - Help file for NIK %1(13)@[*begin]
NIK (Network Interchange Kludge) is a program for "image" (i.e., exact copy including creation date//time//etc.) transfer of files between two TOPS-10 systems (or within a single system to exercise local task-to-task) running 6.03 or later monitors. Although designed primarily with disk-to-disk transfer in mind you may use any output devices as long as they support both ASCII and image mode I//O. The input device must be a disk. The command format is the usual PIP-style out/=in where "out" is the single output (destination) file specification and "in" is a list of input file specifications./l/lTo use NIK you must first start a NIK running in passive "receive" mode (see //RECEIV switch) on the destination system under your ppn.[*note]Note@Under 7.00 monitors or under 6.03? monitors with the inclusion of the DDT patch file listed at the end of this text NIK may be run in a FAL-like mode as an operator job to act as a passive receiver (see //RECEIV and //ANYPPN) which will allow any remote user to send files through it rather than having to log in a NIK job under their own ppn.@Then from the sending system run NIK and type in the "out/=in" commands./l/lNaturally NIK uses SCAN and WILD (custom FSG versions however to allow output wildcarding) so complete input and output wildcarding is allowed. File specs are of the usual TOPS-10 form:/l/f/f/fnode_device:/[path/]filename.type//switch(es)/lwhere "node" is the network node name (totally ignored on input specs); "device" is the device name; "path" is the directory path; filename is the name of the file; "type" is the type (or "extension" if you prefer) of the file; and "switch(es)" is//are any file-specific (e.g., "SCAN") switches such as //ERSUPERCEDE - all NIK command switches are "global" and independent of any file specs near which they may appear./l/lFor example, having started a remote "receiver" NIK on node KLXYZ, the command string:/l/f/f/fKLXYZ_DSKB:*.*/[,,*,*,*,*,*/]=DSKC:*.*/[,,*,*,*,*,*/]/lwould copy all files from your DSKC: directory (including all SFD's and files within those SFD's) to system KLXYZ onto DSKB:, with the same names//directories//creation-times//etc. as on the original system. Adding "//SINCE:-7D" to the input file specification would restrict NIK to transferring only those files which were created//modified within the last 7 days. Etc./l/lNIK does not automatically create the directories needed to contain the files being transferred (in the above example the UFD must already exist). If the file specification contains the directories needed then the directories will be created appropriately (in the example above, since all SFD's were passed as files they would be created on the remote receiving system before any files were written into them, and in fact if they already existed you would receive "Already Existing File" errors). The command string:/l/f/f/fKLXYZ_DSKB:*.*/[*,*,*,*,*,*,*/]=DSKB:*.*/[*,*,*,*,*,*,*/]/Lwould effectively copy the entire file structure including all UFDs (note however that certain files such as DSKB:HOME.SYS/[1,4/] can never be overwritten and as such will always give file creation errors)./l/lThe default output specifications are DSK:*.*/[-/]; the destination node must be explicitly specified (no particular reason, that's just the way it works). Note that it is assumed that ppns correspond accross all systems in the network - NIK uses your default path on the sending system for output files if you do not explicitly type one yourself./l/lNIK goes to great trouble (and spends many cpu cycles) outsmarting all known 6.03-and-later monitor task-to-task I//O problems in order to guarantee the correct transfer of the specified file(s). If you come across any conditions which NIK does not handle (and your files lose accordingly) please bring them to my attention (Robert Houk; TOPS-10 Communications and Networks Group; MR1-2//eE89 x5443). I might even fix NIK to handle it//them!/l[*tp]8@1@/_/l/lNIK switches/c/l[*ivtb][email protected]@[email protected]@[*table2][email protected]@
[*te2]///[NO/]ALLOCA@Preserve contiguous file allocation on disk (normally NIK does an estimating ENTER). Default is //NOALLOCATE.@
[*te2]///[NO/]ANYPPN@If NIK is running in passive receive mode (//RECEIV) then accept any connection (allow other NIKs to connect regardless of the ppn under which the other NIK is running). Default is //NOANYPPN.@
[*te2]///[NO/]BITCH@The //BITCH switch will cause NIK to complain incessantly about any NIK-detected task to task I//O problems which would normally (were NIK not ultra-paranoid) break the file and//or control data being transferred. Default is //NOBITCH.@
[*te2]///[NO/]DETACH@If NIK is running in passive receive mode (//RECEIV) then detach the job. This switch is useful for subsequently SET HOSTing to another system. Default is //NODETACH.@
[*te2]///[NO/]FILES@The //FILES switch instructs NIK to list on your command terminal each file transfer performed as the file transfer is initiated (active mode only). Default is //FILES.@
[*te2]///[NO/]NBIO@The //NBIO switch instructs NIK to utilize non-blocking I//O for its task-to-task communication. This switch is intended only as a stopgap measure for certain monitors which would otherwise hang NIK in EW state. Basically, if NIK works, do not use this switch (it is relatively expensive in overhead).@
[*te2]///[NO/]OKERROR@The //OKERROR switch instructs NIK to procede with any subsequent file transfers (from the same command line) in spite of any transfer errors (such as a protection or checksum failure) rather than aborting any remaining file transfers and returning immediately to command level. Default is //NOOKERROR.@
[*te2]///[NO/]PERCEN@The //PERCEN switch tells NIK to calculate the percentage of the file so far transmitted and set its program name to the percentage so calculated. This seemingly obscure behaviour can be useful when watching NIKs running detached via SYSDPY, or even (if .SET WATCH VERSION is enabled) keeping track of "active" file transfers from your command tty. Default is //NOPERCENT.@
[*te2]///[NO/]RECEIV@The //RECEIV switch instructs NIK to become a passive receiver and await connection from a remote "active" NIK to transfer one or more files. Once NIK is put into passive receive mode it remains there until explicitly killed (i.e., you can send to it as many times as you like, NIK will not return to command mode after any file transfers it receives). Default is //NORECEIV.@
[*te2]///[NO/]TOTALS@The //TOTALS switch instructs NIK to, upon completion of the file transfer(s) indicated by the command line, summarize the total words, disk blocks, and files transferred, as well as the effective data transfer rate (network protocol overhead counts against the baud rate). In addition, if any errors were encountered the total error count is also listed.@
[*TE2]///[NO/]WAIT@The //WAIT switch instructs NIK to wait indefinitely for a receiving NIK on the remote node to appear, rather than "timing out" after the usual three attempts (spaced two seconds apart) for each of the regular and //ANYNIKed receiving NIKs. NIK will issue a warning message to inform you that NIK is actually waiting, not doing active file transfer. This switch has no effect if the specified node is not up.@
/l/_/l/lThe following DDT patch file must be applied to 6.03 and 6.03A monitors to enable NIK's //ANYPPN feature to be used with them./l/l""ALLOW UNPRIVILEGED USER TO USE /[-1/] AS TSK: PPN"/lTSKSER$:/lTSKLKU/+16//PAT$/<SETO T1,/<LF/>/lCAME P3,T1$/>/l/l""NOW MAKE NETSER PASS 6-DIGIT PROJECT//PROGRAMMER NUMBERS"/lNETSER$:/LPAT//EAS2OC:MOVEI T3,10/<LF/>/lSETZB T1,T4/<LF/>/lSOJL P4,CPOPJ/<LF/>/lILDB T2,P1/<LF/>/lTRZN T2,200/<LF/>/lSETO T4,/<LF/>/lCAIL T2,60/<LF/>/lCAIL T2,60(T3)/<LF/>/lPOPJ P,/<LF/>/lIMULI T1,(T3)/<LF/>/lADDI T1,-60(T2)/<LF/>/lJUMPE T4,EAS2OC/+2/<LF/>/lPOPJ P,/<LF/>/lPAT:/l/lEAS2PP/+5//PUSHJ P,EAS2OC/<LF/>/lTLNE T1,-1/lEAS2PP/+11//PUSHJ P,EAS2OC/<LF/>/lTLNE T1,-1/l/lPATSIZ//MOVEI T1,PAT/l[*end]