!********************************************************************** ! MODIFICATION HISTORY !********************************************************************** ! Previous mod history not recorded ! 92.11.04 Keith Walker E102ISD_0_30 !********************************************************************** !********************************************************************** ! CONSTANTS !********************************************************************** DECLARE WORD CONSTANT & TRUE = -1%, & FALSE = 0%, & L_MENU = 100, !number of menu items & MAX_MBX_SIZE = 128%, !size of mailbox buffer & BRDCST_BUF_SIZE = MAX_MBX_SIZE - 22%, & MAX_BUF_CNT = 9%, !(number - 1) of input buffers & MAX_BUF_SIZE = 79%, !(size - 1) of input buffers & MAX_LOG_SIZE = 511%, !(size - 1) of log file buffer & MAX_LOG_SSIZE = MAX_LOG_SIZE + 1%, !size of log file buf & IOSB_STATUS = 0%, !IOSB offset for status word & IOSB_BUF_LEN = 1%, !IOSB offset for buffer length & IOSB_TERM = 2%, !IOSB offset for terminator & IOSB_TERM_SIZE = 3% !IOSB offset for terminator size DECLARE LONG CONSTANT & READ_PORT_TIMER = 1%, !timer ID for EXT_READ_PORT_AST & MBX_KICKER_TIMER = 2%, !timer ID for EXT_MBX_KICKER_AST & LOG_FILE = 1%, !file # for log file & MENU_FILE = 2%, !file # for menu file & PORTS_FILE = 3%, !file # for ports file & RECORD_FILE = 4%, !file # for record file & SCRIPT_FILE = 5% !file # for script files (must be !highest #) !********************************************************************** ! RECORDS !********************************************************************** RECORD QUAD VARIANT CASE LONG LOW_LONGWORD LONG HIGH_LONGWORD CASE WORD FIRST_WORD WORD SECOND_WORD WORD THIRD_WORD WORD FOURTH_WORD CASE BYTE SINGLE_BYTE(7) END VARIANT END RECORD RECORD PORT_INP_REC !layout of a port input buffer... BYTE BUF_FER(MAX_BUF_SIZE) !input buffer itself WORD BUF_IN_USE !true if buffer in use WORD BUF_PTR !pointer to byte in buffer WORD BUF_CNT !number of bytes in buffer WORD IOSB(3) !IO status block END RECORD RECORD MBX_REC !layout for mailbox input buffer... WORD MBX_TYPE !message type WORD MBX_UNIT !unit number BYTE MBX_CTRL_LEN !controller name length STRING MBX_CTRL = 15 !controller name WORD MBX_MSG_LEN !broadcast message length STRING MBX_MSG = BRDCST_BUF_SIZE !broadcast message END RECORD !********************************************************************** ! COMMONS !********************************************************************** COMMON (DEVICE_MODE_COM) & LONG OLD_PORT_MODE(2), !port mode on entry & LONG OLD_TERM_MODE(2), !terminal mode on entry & LONG PORT_MODE(2), !new port mode & LONG TERM_MODE(2) !new terminal mode COMMON (MENU_SELECTION_COM) & STRING FACILITY_CODE = 20, !code for facility & STRING FACILITY_NAME = 80, !display name of facility & STRING NODE_NAME = 20, !name of node & STRING PORT_NAME = 10, !name of selected port & STRING SERVED_PORT = 1, !"Y" if port is on a server & STRING MODEM_CLASS = 20, !class of modem & STRING MODEM_TYPE = 20 !type of modem COMMON (PORT_READ_COM) & WORD TERM_CHAN, !channel for terminal & WORD PORT_CHAN, !channel for modem port & WORD MBX_CHAN, !channel for mailbox & MBX_REC MBX_BUF, !mailbox buffer & WORD MBX_IOSB(3), !IOSB for mailbox & WORD MBX_ACTIVE, !TRUE if waiting for mbx & PORT_INP_REC PORT_BUF(MAX_BUF_CNT), !input buffers & LONG CURRENT_BUF, !current input buffer & WORD BUFS_USED, !# of buffers in use & WORD BUF_ATTEMPTS, !# attempts to get a buffer & WORD VIEW_FLAG, !T to copy input to terminal & WORD ECHO_FLAG, !T to copy output to terminal & WORD CONT_FLAG, !T to continue & WORD SEVENBIT_FLAG !T if seven databits COMMON (DEBUG_COM) & LONG DBG_READ_CNT, !total number of port reads done & LONG DBG_DATA_CNT, !number of reads with data present & LONG DBG_BYTE_CNT, !number of bytes read & LONG DBG_DELAY_CNT, !# of times read queued with delay & LONG DBG_NODELAY_CNT,!# of times read queued without delay & LONG DBG_UNSOL_CNT, !# of times unsol mbx routine called & STRING DEBUG_FLAG = 10 !debug symbol from DCL & !0: no debugging & !1: print script parsing info & !2: print scripts & labels & !3: print interpreted lines & !4: print INPUT parameters & !5: print condition flags & !6: print I/O stats on completion & !7: print connection status COMMON (LOGFILE_COM) & WORD LOG_FLAG, !T to log the received text & WORD CENSOR_FLAG, !T to censor control chars & WORD LOG_PTR !pointer into log buffer COMMON (PARITY_COM) & WORD PARITY_SELECT, !0: not applicable (8 bit) & !1: odd & !2: even & !3: mark & !4: space & BYTE ODD_PARITY(127), !conversions for odd parity & BYTE EVEN_PARITY(127) !conversions for even parity COMMON (SMG_COM) & LONG KB_ID, & LONG PB_ID, & LONG MENU_DISP, & LONG HELP_DISP, & LONG MSG_DISP, & LONG ACTION_DISP, & LONG HDR_DISP, & LONG EXIT_DISP, & LONG CONN_DISP COMMON (MENU_COM) & LONG MENU_COUNT, !number of items in menu & LONG MENU_INDEX, !pointer to menu item & LONG TOP_LINE, & LONG BOT_LINE, & LONG MAX_ROW, & STRING HELP_LINE = 80, !short help & STRING MENU(L_MENU, 2%) = 30 !holds menu text & !0: code, 1: name, 2: class COMMON (TIME_COM) & QUAD CUR_TIME, & QUAD TIME_ON, & QUAD TIME_OFF, & QUAD ONE_SEC !********************************************************************** ! MAPS !********************************************************************** MAP (LOG_BUF_MAP) & BYTE LOG_BUF(MAX_LOG_SIZE) !log file buffer MAP (LOG_BUF_MAP) & STRING LOG_BUF_S = MAX_LOG_SSIZE MAP (USER_INPUT_MAP) & STRING USER_INPUT_BUF = MAX_BUF_SIZE