MODULE KMT_DATA_MODULE; () @******************************************************************************@ @* *@ @* Mode definitions *@ @* *@ @******************************************************************************@ MODE KMT_FH_RECORD_DETAILS_S IS STRUCT ( BOOL FILE_OPEN, NEW_RECORD, END_OF_FILE, WORD TEXT_TYPE, @ 0 = EBCDIC @ @ 1 = IA5 @ @ 2 = BINARY @ INT MAX_RECORD_LENGTH, RECORD_LENGTH, (4098) BYTE RECORD); @ Maximum record size of @ @ 4096 + 2 bytes for CRLF @ @ pair when constructing @ @ output records @ MODE KMT_FH_FILE_STATISTICS_S IS STRUCT ( INT INPUT_TOTAL, INT OUTPUT_TOTAL); MODE KMT_DH_DEVICE_DETAILS_S IS STRUCT ( BOOL FILE_OPEN, WORD MAX_INPUT_LENGTH, MAX_OUTPUT_LENGTH, INPUT_PARITY, OUTPUT_PARITY, PAUSE); MODE KMT_PP_CONFG_PARAMS_S IS STRUCT ( BYTE MARK, MAXL, TIME, NPAD, PADC, EOL, QCTL, QBIN, CHKT, REPT, 4-BYTE CAPAS); MODE KMT_PP_PACKET_STATISTICS_S IS STRUCT ( INT INPUT_TOTAL, OUTPUT_TOTAL); MODE KMT_TRACE_FLAGS_S IS WORD STRUCT ( BIT PH_TRACING, PP_TRACING, FH_TRACING, DH_TRACING, 28-BIT SPARE); MODE KMT_STATISTICS_FLAGS_S IS WORD STRUCT ( BIT PP_STATISTICS, FH_STATISTICS, 30-BIT SPARE); MODE KMT_STATISTICS_S IS STRUCT ( REF KMT_FH_FILE_STATISTICS_S FH_FILE_STATISTICS, REF KMT_PP_PACKET_STATISTICS_S PACKET_STATISTICS); MODE KMT_BUFFER IS (96)BYTE; MODE KMT_STRING IS REF()BYTE; MODE KMT_WORD IS REF()BYTE; MODE KMT_MTM_VALUES IS ANY (LONG WORD LW_VALUE, LONG INT LI_VALUE, REF WORD RW_VALUE, REF INT RI_VALUE, REF LONG WORD RLW_VALUE, REF LONG INT RLI_VALUE, REF()BYTE RVB_VALUE, REF()REF()BYTE RVRVB_VALUE); ***PAGE @******************************************************************************@ @* *@ @* Global data declarations *@ @* *@ @******************************************************************************@ @ Constants: @ @ ********** @ GLOBAL STATIC (256) BYTE ASCII_TO_EBCDIC IS X"00010203 372D2E2F 1605250B 0C0D0E0F" X"10111213 3C3D3226 18193F27 1C1D1E1F" X"404F7F7B 5B6C507D 4D5D5C4E 6B604B61" X"F0F1F2F3 F4F5F6F7 F8F97A5E 4C7E6E6F" X"7CC1C2C3 C4C5C6C7 C8C9D1D2 D3D4D5D6" X"D7D8D9E2 E3E4E5E6 E7E8E94A E05A5F6D" X"79818283 84858687 88899192 93949596" X"979899A2 A3A4A5A6 A7A8A9C0 6AD0A107" X"00010203 372D2E2F 1605250B 0C0D0E0F" X"10111213 3C3D3226 18193F27 1C1D1E1F" X"404F7F7B 5B6C507D 4D5D5C4E 6B604B61" X"F0F1F2F3 F4F5F6F7 F8F97A5E 4C7E6E6F" X"7CC1C2C3 C4C5C6C7 C8C9D1D2 D3D4D5D6" X"D7D8D9E2 E3E4E5E6 E7E8E94A E05A5F6D" X"79818283 84858687 88899192 93949596" X"979899A2 A3A4A5A6 A7A8A9C0 6AD0A107"; GLOBAL STATIC (256) BYTE EBCDIC_TO_ASCII IS X"00010203 1A091A7F 1A1A1A0B 0C0D0E0F" X"10111213 1AFB081A 18191A1A 1C1D1E1F" X"FFFEFDFC 1A0A171B 1A1A1A1A 1A050607" X"1A1A161A 1A1A1A04 1A1A1A1A 14151A1A" X"201A1A1A 1A1A1A1A 1A1A5B2E 3C282B21" X"261A1A1A 1A1A1A1A 1A1A5D24 2A293B5E" X"2D2F1A1A 1A1A1A1A 1A1A7C2C 255F3E3F" X"1A1A1A1A 1A1A1A1A 1A603A23 40273D22" X"1A616263 64656667 68691A1A 1A1A1A1A" X"1A6A6B6C 6D6E6F70 71721A1A 1A1A1A1A" X"1A7E7374 75767778 797A1A1A 1A1A1A1A" X"1A1A1A1A 1A1A1A1A 1A1A1A1A 1A1A1A1A" X"7B414243 44454647 48491A1A 1A1A1A1A" X"7D4A4B4C 4D4E4F50 51521A1A 1A1A1A1A" X"5C1A5354 55565758 595A1A1A 1A1A1A1A" X"30313233 34353637 38391A1A 1A1A1A1A"; GLOBAL STATIC INT UNSET IS -1, @ Kermit exit states @ EXIT IS 0, LOGOUT IS 1, FATAL_ERROR IS 999; GLOBAL STATIC INT EOF IS 9034; GLOBAL STATIC BOOL NOREADINT IS FALSE, READINT IS TRUE; GLOBAL STATIC INT SERVER_MODE IS 0, @ Kermit modes @ RECEIVE_MODE IS 1, SEND_MODE IS 2, COMMAND_MODE IS 3; GLOBAL STATIC INT REC_SERVER_IDLE IS 0, @ Protocol Handler states @ REC_INIT IS 1, REC_FILE IS 2, REC_DATA IS 3, SEND_INIT IS 4, SEND_FILE IS 5, SEND_DATA IS 6, SEND_EOF IS 7, SEND_BREAK IS 8, COMPLETE IS 9, ABORT IS 10; GLOBAL STATIC INT ENTRY IS 0, @ Packet codes @ BREAK_PKT IS 1, DATA_PKT IS 2, ERROR_PKT IS 3, FILE_HDR_PKT IS 4, GEN_CMD_PKT IS 5, INIT_PARAM_PKT IS 6, KMT_CMD_PKT IS 7, NAK_PKT IS 8, REC_INIT_PKT IS 9, SEND_INIT_PKT IS 10, ACK_PKT IS 11, EOF_PKT IS 12, BAD_PKT IS 13, INVALID_PKT IS 14; GLOBAL STATIC INT UNS_PKT IS -80251, @ Unsupported packet @ NON_PKT IS -80252; @ Non-existant packet type @ GLOBAL STATIC () INT PACKET_CODES := (UNS_PKT, BREAK_PKT, @ B packet @ UNS_PKT, DATA_PKT, @ D packet @ ERROR_PKT, @ E packet @ FILE_HDR_PKT, @ F packet @ GEN_CMD_PKT, @ G packet @ NON_PKT, INIT_PARAM_PKT, @ I packet @ NON_PKT, KMT_CMD_PKT, @ K packet @ NON_PKT, NON_PKT, NAK_PKT, @ N packet @ NON_PKT, NON_PKT, NON_PKT, REC_INIT_PKT, @ R packet @ SEND_INIT_PKT, @ S packet @ UNS_PKT, NON_PKT, NON_PKT, NON_PKT, UNS_PKT, ACK_PKT, @ Y packet @ EOF_PKT); @ Z packet @ GLOBAL STATIC INT VME_TERM IS 0, @ VME terminal file name @ VME_STD IS 1, @ VME standard file name @ KMT_STD IS 2; @ Kermit standard name @ ***LINES(4) @ Variables: @ @ ********** @ GLOBAL STATIC () KMT_FH_RECORD_DETAILS_S KMT_FH_RECORD_DETAILS; GLOBAL STATIC () KMT_FH_FILE_STATISTICS_S KMT_FH_FILE_STATISTICS; GLOBAL STATIC () KMT_DH_DEVICE_DETAILS_S KMT_DH_DEVICE_DETAILS; ***LINES(4) GLOBAL STATIC () KMT_PP_CONFG_PARAMS_S KMT_PP_LOCAL_CONFG_PARAMS; GLOBAL STATIC () KMT_PP_CONFG_PARAMS_S KMT_PP_REMOTE_CONFG_PARAMS; GLOBAL STATIC () KMT_PP_PACKET_STATISTICS_S KMT_PP_PACKET_STATISTICS; ***LINES(4) GLOBAL STATIC () REF () BYTE KMT_PH_INPUT_PACKET_DATA; ***LINES(4) GLOBAL STATIC () KMT_TRACE_FLAGS_S KMT_TRACE_FLAGS; GLOBAL STATIC () KMT_STATISTICS_FLAGS_S KMT_STATISTICS_FLAGS; GLOBAL STATIC () KMT_STATISTICS_S KMT_STATISTICS := (KMT_FH_FILE_STATISTICS, KMT_PP_PACKET_STATISTICS); GLOBAL STATIC () BYTE KMT_VERSION := "1.01"; GLOBAL STATIC BOOL ASG_ROUTE; GLOBAL STATIC (15)KMT_MTM_VALUES KMT_MTM_AREA; GLOBAL STATIC (80)BYTE MTM_TEXT; GLOBAL STATIC INT MTM_TEXT_LEN; GLOBAL STATIC (2)REF()BYTE MTM_RECALL_DATA; GLOBAL STATIC INT RC_IGNORED; @ ignored result code @ GLOBAL STATIC INT PKT_SEQ; @ packet sequence number @ GLOBAL STATIC INT PKT_NO; @ number of packet received @ GLOBAL STATIC INT PKT_TYPE; @ packet type @ GLOBAL STATIC INT RETRY_COUNT; @ retry count @ GLOBAL STATIC INT RETRY_TOTAL; @ total retries during xfer @ GLOBAL STATIC INT TIMEOUT_TOTAL; @ total timeouts during xfer @ GLOBAL STATIC INT MAXTRY; @ max retries @ GLOBAL STATIC INT EXIT_STATE; @ controls main Kermit loop @ GLOBAL STATIC INT KMT_CURRENT_MODE; @ server/send/receive/command @ GLOBAL STATIC INT KMT_PH_STATE; @ state in protocol handler @ GLOBAL STATIC INT FILE_OPTION; @ create or replace receive files @ GLOBAL STATIC WORD DELAY; @ time delay before SEND_INIT packet@ GLOBAL STATIC BOOL DELAY_TIMER; @ set delay timer before get packet @ GLOBAL STATIC BOOL SAVE_INCOMPLETE_FILE; @ save action for incomplete files @ GLOBAL STATIC BOOL TRANSLATE_FILENAME; @ file names to be translated @ GLOBAL STATIC KMT_BUFFER KMT_VME_FILE_BUF, @ buffer for VME filename @ KMT_REM_FILE_BUF; @ buffer for remote filename @ GLOBAL STATIC KMT_WORD KMT_VME_FILE, @ pointer to VME filename @ KMT_REM_FILE; @ pointer to remote filename @ GLOBAL STATIC KMT_BUFFER KMT_INPUT_BUF; @ command line buffer@ ***LINES(4) @ Results: @ @ ******** @ ***LINES(4) ENDMODULE @ KMT_DATA_MODULE @