
!++
! FACILITY:
!   KERMIT-32/36
!
! ABSTRACT:
!	This file contains the common definitions for KERMIT-32 and KERMIT-36.
!
! ENVIRONMENT:
!   User mode
!
! AUTHOR: Robert C. McQueen, CREATION DATE: 24-January-1983
!
! MODIFIED BY:
!
!	13-June-83			Nick Bush
!	Change maximum record length for RMS records to be 4096 instead
!	of 256.
!
!	3-Jan-1984			Nick Bush
!	Add FNM_xxx symbols for type of file specification to send.
!
!	6-July-1984			Nick Bush
!	Increase MAX_MSG so that it includes space for the start-of-packet
!	and end-of-line characters, plus a little slop, just in case.
!
! 3.2.074	By: Robert McQueen			On: 11-March-1986
!		Put MAX_MSG back the way it was.
!
!--

%SBTTL 'Table of Contents'

%SBTTL 'Symbol definitions -- Routine calls'

!
! EQUATED SYMBOLS:
!
!
! Function types passed to FILE_OPEN routine.
!

LITERAL
    FNC_READ = 0,				! Open for reading
    FNC_WRITE = 1;				! Open for writing

!
! File types used
!

LITERAL
    FILE_ASC = 1,				! ASCII files (SEVEN-BIT)
    FILE_BIN = 2,				! Binary (.COM) files. (EIGHT-BIT)
    FILE_BLK = 3,				! Block transfer of files
    FILE_FIX = 4;				! Fixed 512 byte records under Files-11
						!  (used for PRO/KERMIT .TSK files)
!
! File naming forms
!
!	Note:  Only FNM_NORMAL should be a true value (have LSB on).  Other
!	       values must be false, or the name will be normalized.
!
GLOBAL LITERAL
    FNM_NORMAL = 1,				! Normal form file names
    FNM_FULL = 2,				! Complete file names
    FNM_UNTRAN = 4;				! Untranslated (but not full) names

!
! Parity types
!

GLOBAL LITERAL
    PR_MIN = 0,					! Min offset
    PR_NONE = 0,				! No parity
    PR_MARK = 1,				! Mark parity
    PR_EVEN = 2,				! Even parity
    PR_ODD = 3,					! Odd parity
    PR_SPACE = 4,				! Space
    PR_MAX = 4;					! Max offset
!
! DO_GENERIC commands
!
! Generic commands that we can send
!
GLOBAL LITERAL
    GC_MIN	= 1,		! Min command
    GC_EXIT	= 1,		! EXIT command
    GC_DIRECTORY = 2,		! List DIRECTORY command
    GC_DISK_USAGE = 3,		! Display disk usage summary
    GC_DELETE	= 4,		! DELETE file command
    GC_TYPE	= 5,		! TYPE file command
    GC_HELP	= 6,		! Display HELP information
    GC_LOGOUT	= 7,		! LOGOUT command
    GC_LGN	= 8,		! LOGIN command
    GC_CONNECT	= 9,		! CONNECT (CWD) command
    GC_RENAME	=10,		! RENAME file command
    GC_COPY	=11,		! COPY file command
    GC_WHO	=12,		! WHO is logged in (Finger)
    GC_SEND_MSG	=13,		! Send a message
    GC_STATUS	=14,		! Get status of server
    GC_COMMAND	=15,		! Perform host command
    GC_KERMIT	=16,		! Perform Kermit command
    GC_JOURNAL	=17,		! Perform journal functions
    GC_VARIABLE	=18,		! Set/get variable value
    GC_PROGRAM	=19,		! Run program and pass command
    GC_MAX	=19;		! Max command

!++
!The following denotes the type of communications line that is being used.
!--

GLOBAL LITERAL
    DP_FULL = 0,		! Full duplex line
    DP_HALF = 1;		! Half duplex line

!++
! The following are the various checksum types that are allowed.
!--

GLOBAL LITERAL
    CHK_1CHAR = %C'1',				! One character checksums
    CHK_2CHAR = %C'2',				! Two character checksums
    CHK_CRC = %C'3';				! Three character CRC.


	%SBTTL	'Character definitions'

!
! Character definitions
!

LITERAL
    CHR_NUL = %O'000',			! Null (tape feed character, fill character)
    CHR_SOH = %O'001',			! Start of header
    CHR_STX = %O'002',			! Start of text
    CHR_ETX = %O'003',			! End of text
    CHR_EOT = %O'004',			! End of transmission
    CHR_ENQ = %O'005',			! Enquiry (WRU "Who are you?")
    CHR_ACK = %O'006',			! Acknowledge
    CHR_BEL = %O'007',			! Bell
    CHR_BS = %O'010',			! Backspace
    CHR_TAB = %O'011',			! Horizontal tab
    CHR_LFD = %O'012',			! Line feed
    CHR_VTB = %O'013',			! Vertical tab
    CHR_FFD = %O'014',			! Form feed
    CHR_CRT = %O'015',			! Carriage return
    CHR_SO = %O'016',			! Shift out
    CHR_SI = %O'017',			! Shift in
    CHR_DLE = %O'020',			! Data link escape
    CHR_DC1 = %O'021',			! Device control 1 (also XON)
    CHR_DC2 = %O'022',			! Device control 2 (also TAPE or AUX ON)
    CHR_DC3 = %O'023',			! Device control 3 (also XOFF)
    CHR_DC4 = %O'024',			! Device control 4 (also AUX OFF)
    CHR_NAK = %O'025',			! Negative acknowledge
    CHR_SYN = %O'026',			! Synchronous idle (SYNC)
    CHR_ETB = %O'027',			! End of transmission block
    CHR_CAN = %O'030',			! Cancel
    CHR_EM = %O'031',			! End of medium
    CHR_SUB = %O'032',			! Substitute
    CHR_ESC = %O'033',			! Escape
    CHR_FS = %O'034',			! File separator
    CHR_GS = %O'035',			! Group separator
    CHR_RS = %O'036',			! Record separator
    CHR_US = %O'037',			! Unit separator

    CHR_CTL_A = %O'001',			! Control-A
    CHR_CTL_B = %O'002',			! Control-B
    CHR_CTL_C = %O'003',			! Control-C
    CHR_CTL_D = %O'004',			! Control-D
    CHR_CTL_E = %O'005',			! Control-E
    CHR_CTL_F = %O'006',			! Control-F
    CHR_CTL_G = %O'007',			! Control-G
    CHR_CTL_H = %O'010',			! Control-H
    CHR_CTL_I = %O'011',			! Control-I
    CHR_CTL_J = %O'012',			! Control-J
    CHR_CTL_K = %O'013',			! Control-K
    CHR_CTL_L = %O'014',			! Control-L
    CHR_CTL_M = %O'015',			! Control-M
    CHR_CTL_N = %O'016',			! Control-N
    CHR_CTL_O = %O'017',			! Control-O
    CHR_CTL_P = %O'020',			! Control-P
    CHR_CTL_Q = %O'021',			! Control-Q
    CHR_CTL_R = %O'022',			! Control-R
    CHR_CTL_S = %O'023',			! Control-S
    CHR_CTL_T = %O'024',			! Control-T
    CHR_CTL_U = %O'025',			! Control-U
    CHR_CTL_V = %O'026',			! Control-V
    CHR_CTL_W = %O'027',			! Control-W
    CHR_CTL_X = %O'030',			! Control-X
    CHR_CTL_Y = %O'031',			! Control-Y
    CHR_CTL_Z = %O'032',			! Control-Z
    CHR_SP = %C' ',				! Space
    CHR_DEL = %O'177',				! Delete
    CHR_ESCAPE = %O'035',			! Connect escape character
    CHR_SIZE = 8;				! Size of the characters we process

!
! Constants
!

LITERAL
    TRUE = (0 EQL 0),				! Value of true
    FALSE = (0 NEQ 0),				! Value of FALSE.
    MAX_FILE_NAME = 132,			! Maximum length of a file specification
    MAX_REC_LENGTH = 4096,			! Maximum record length we handle
    INIT_DELAY = 5;				! Initial delay time

GLOBAL LITERAL
    MAX_MSG = 96;				! Maximum message length

