/* BEGIN INCLUDE FILE ... hasp_block_record_data.incl.pl1 */ /* Created: October 1979 by G. Palter */ /* Modified: July 1981 by G. Palter to add SIGNON block template request-acknowledgement block type */ /* Template HASP block header */ dcl 1 TEMPLATE_HASP_BLOCK_HEADER_BITS aligned static options (constant), 2 dle bit (9) unaligned initial ("020"b3), /* DLE */ 2 stx bit (9) unaligned initial ("002"b3), /* STX */ 2 bcb bit (9) unaligned initial ("000"b3), /* block count byte (BCB) */ 2 fcs bit (18) unaligned initial ("000000"b3); /* function control sequence (FCS) */ dcl 1 TEMPLATE_HASP_BLOCK_HEADER aligned based (addr (TEMPLATE_HASP_BLOCK_HEADER_BITS)), 2 text1 character (2) unaligned, /* not referenced by the program */ 2 bcb character (1) unaligned, 2 fcs character (2) unaligned; /* Template HASP block trailer */ dcl 1 TEMPLATE_HASP_BLOCK_TRAILER_BITS aligned static options (constant), 2 non_crc unaligned, /* all but the CRC: actually sent to FNP */ 3 eob_rcb bit (9) unaligned initial ("000"b3), /* record control byte (RCB) indicating end of block */ 3 dle bit (9) unaligned initial ("020"b3), /* DLE */ 3 etb bit (9) unaligned initial ("046"b3), /* ETB */ 2 crc bit (18) unaligned initial ("000000"b3); /* CRC: added by FNP--not transmitted */ dcl 1 TEMPLATE_HASP_BLOCK_TRAILER aligned based (addr (TEMPLATE_HASP_BLOCK_TRAILER_BITS)), 2 non_crc character (3) unaligned, /* not referenced by programs */ 2 crc character (2) unaligned; /* Template HASP SIGNON record block */ dcl 1 TEMPLATE_HASP_SIGNON_BLOCK_BITS aligned static options (constant), 2 start_dle bit (9) unaligned initial ("020"b3), /* DLE */ 2 stx bit (9) unaligned initial ("002"b3), /* STX */ 2 bcb bit (9) unaligned initial ("240"b3), /* BCB -- ignored */ 2 fcs bit (18) unaligned initial ("217317"b3), /* FCS -- set by finish_output_block */ 2 rcb bit (9) unaligned initial ("360"b3), /* RCB -- general control record */ 2 srcb bit (9) unaligned initial ("301"b3), /* SRCB -- indicates SIGNON record */ 2 record_bits bit (720) unaligned initial (""b), /* actual SIGNON record */ 2 eob_scb bit (9) unaligned initial ("000"b3), /* SCB -- indicates end of record */ 2 eob_rcb bit (9) unaligned initial ("000"b3), /* RCB -- indicates end of block */ 2 end_dle bit (9) unaligned initial ("020"b3), /* DLE */ 2 etb bit (9) unaligned initial ("046"b3); /* ETB */ dcl 1 TEMPLATE_HASP_SIGNON_BLOCK aligned based (addr (TEMPLATE_HASP_SIGNON_BLOCK_BITS)), 2 non_trailer, /* all but the trailer and CRC characters */ 3 header character (7) unaligned, 3 record character (80) unaligned, /* the actual text of the record */ 3 text1 character (1) unaligned, 2 trailer character (3) unaligned; /* supplied by finish_output_block */ /* Template HASP bad BCB block: transmitted when one side receives a block with an invalid BCB count */ dcl 1 TEMPLATE_HASP_BAD_BCB_BLOCK_BITS aligned static options (constant), 2 start_dle bit (9) unaligned initial ("020"b3), /* DLE */ 2 stx bit (9) unaligned initial ("002"b3), /* STX */ 2 bcb bit (9) unaligned initial ("220"b3), /* BCB -- contains the received (bad) count */ 2 fcs bit (18) unaligned initial ("217317"b3), /* FCS */ 2 rcb bit (9) unaligned initial ("340"b3), /* RCB -- bad BCB record */ 2 srcb bit (9) unaligned initial ("200"b3), /* SRCB -- contains the expected count */ 2 eor_scb bit (9) unaligned initial ("000"b3), /* SCB -- indicates end of record */ 2 eob_rcb bit (9) unaligned initial ("000"b3), /* RCB -- indicates end of block */ 2 end_dle bit (9) unaligned initial ("020"b3), /* DLE */ 2 etb bit (9) unaligned initial ("046"b3); /* ETB */ dcl 1 TEMPLATE_HASP_BAD_BCB_BLOCK aligned based (addr (TEMPLATE_HASP_BAD_BCB_BLOCK_BITS)), 2 text1 character (2) unaligned, /* not referenced by programs */ 2 bcb character (1) unaligned, 2 text2 character (3) unaligned, /* not referenced by programs */ 2 srcb character (1) unaligned, 2 text3 character (4) unaligned; /* not referenced by programs */ /* Template HASP synchronization block */ dcl 1 TEMPLATE_HASP_SYNC_BLOCK_BITS aligned static options (constant), 2 start_dle bit (9) unaligned initial ("020"b3), /* DLE */ 2 stx bit (9) unaligned initial ("002"b3), /* STX */ 2 bcb bit (9) unaligned initial ("000"b3), /* BCB -- ignored */ 2 fcs bit (18) unaligned initial ("237377"b3), /* FCS -- bits 2&3 (0-based) of second byte => sync block */ 2 eob_rcb bit (9) unaligned initial ("000"b3), /* RCB -- indicates end of block */ 2 end_dle bit (9) unaligned initial ("020"b3), /* DLE */ 2 etb bit (9) unaligned initial ("046"b3); /* ETB */ dcl 1 TEMPLATE_HASP_SYNC_BLOCK aligned based (addr (TEMPLATE_HASP_SYNC_BLOCK_BITS)), 2 text1 character (8) unaligned; /* actual parts never referenced */ /* HASP record types */ dcl (HASP_EOB_RECORD initial (1), /* end of transmission block */ HASP_EOF_RECORD initial (2), /* end of file block */ HASP_SIGNON_RECORD initial (3), /* SIGNON card */ HASP_RTS_RECORD initial (4), /* request-to-send file */ HASP_RTS_ACK_RECORD initial (5), /* request-to-send file granted */ HASP_BAD_BCB_RECORD initial (6), /* bad block count detected record */ HASP_DATA_RECORD initial (7)) /* ordinary data record */ fixed binary static options (constant); /* Constant RCB, SRCB, and SCB characters used only by the multiplexer */ dcl (HASP_EOB_RCB_BITS initial ("000"b3), /* RCB -- end of transmission block */ HASP_GENERAL_CONTROL_RCB_BITS initial ("360"b3), /* RCB -- generalized control record (eg: SIGNON record) */ HASP_CONSOLE_INPUT_RCB_BITS initial ("222"b3), /* RCB -- record from console to host */ HASP_CONSOLE_OUTPUT_RCB_BITS initial ("221"b3), /* RCB -- record from host to console */ HASP_SIGNON_SRCB_BITS initial ("301"b3), /* SRCB -- SIGNON record */ HASP_EOF_SRCB_BITS initial ("200"b3), /* SRCB -- end of file record */ HASP_EOF_FIRST_SCB_BITS initial ("000"b3)) /* SCB -- first SCB in an end of file record */ bit (9) aligned static options (constant); dcl (HASP_EOB_RCB based (addr (HASP_EOB_RCB_BITS)), HASP_GENERAL_CONTROL_RCB based (addr (HASP_GENERAL_CONTROL_RCB_BITS)), HASP_CONSOLE_INPUT_RCB based (addr (HASP_CONSOLE_INPUT_RCB_BITS)), HASP_CONSOLE_OUTPUT_RCB based (addr (HASP_CONSOLE_OUTPUT_RCB_BITS)), HASP_SIGNON_SRCB based (addr (HASP_SIGNON_SRCB_BITS)), HASP_EOF_SRCB based (addr (HASP_EOF_SRCB_BITS)), HASP_EOF_FIRST_SCB based (addr (HASP_EOF_FIRST_SCB_BITS))) character (1) aligned; /* Template HASP bad BCB record (see above) */ dcl 1 TEMPLATE_HASP_BAD_BCB_RECORD_BITS aligned static options (constant), 2 rcb bit (9) unaligned initial ("340"b3), /* RCB -- bad BCB record */ 2 srcb bit (9) unaligned initial ("200"b3), /* SRCB -- contains expected count */ 2 eor_scb bit (9) unaligned initial ("000"b3); dcl 1 TEMPLATE_HASP_BAD_BCB_RECORD aligned based (addr (TEMPLATE_HASP_BAD_BCB_RECORD_BITS)), 2 rcb character (1) unaligned, 2 srcb character (1) unaligned, 2 eor_scb character (1) unaligned; /* Template HASP request-to-send record */ dcl 1 TEMPLATE_HASP_RTS_RECORD_BITS aligned static options (constant), 2 rcb bit (9) unaligned initial ("220"b3), /* RCB -- request permission to transmit file */ 2 srcb bit (9) unaligned initial ("000"b3), /* SRCB -- RCB of the device requesting permission */ 2 eor_scb bit (9) unaligned initial ("000"b3); /* SCB -- end of record */ dcl 1 TEMPLATE_HASP_RTS_RECORD aligned based (addr (TEMPLATE_HASP_RTS_RECORD_BITS)), 2 rcb character (1) unaligned, 2 srcb character (1) unaligned, 2 eor_scb character (1) unaligned; /* Template HASP request-to-send acknowledgement record */ dcl 1 TEMPLATE_HASP_RTS_ACK_RECORD_BITS aligned static options (constant), 2 rcb bit (9) unaligned initial ("240"b3), /* RCB -- permission granted to send file */ 2 srcb bit (9) unaligned initial ("000"b3), /* SRCB -- RCB of the device granted permission */ 2 eor_scb bit (9) unaligned initial ("000"b3); dcl 1 TEMPLATE_HASP_RTS_ACK_RECORD aligned based (addr (TEMPLATE_HASP_RTS_ACK_RECORD_BITS)), 2 rcb character (1) unaligned, 2 srcb character (1) unaligned, 2 eor_scb character (1) unaligned; /* HASP Block Control Byte (BCB) */ dcl 1 hasp_bcb_byte unaligned based (hasp_bcb_byte_ptr), 2 pad1 bit (1) unaligned, /* padding supplied by MCS */ 2 mbo1 bit (1) unaligned, /* always ON */ 2 type fixed binary (3) unaligned unsigned, /* type of BCB -- normal/ignore/reset */ 2 count fixed binary (4) unaligned unsigned; /* the block count */ dcl hasp_bcb_byte_ptr pointer; dcl (HASP_BCB_NORMAL initial (0), /* normal BCB */ HASP_BCB_IGNORE initial (1), /* normal: ignore this block count; in bad-BCB block: expected block count */ HASP_BCB_RESET initial (2)) /* reset exepected block count to this value */ fixed binary (3) unsigned static options (constant); /* HASP Function Control Sequence (FCS) */ dcl 1 hasp_fcs_bytes unaligned based (hasp_fcs_bytes_ptr), 2 pad1 bit (1) unaligned, /* padding supplied by MCS (byte 1) */ 2 mbo1 bit (1) unaligned, /* always ON */ 2 system_wab bit (1) unaligned, /* ON => sending site wants all data transmissions stopped */ 2 mcs1 unaligned, /* bits used by FNP and ring-0 multiplexer */ 3 device_not_ready bit (1) unaligned, /* (from FNP): ON => some individual device went not ready */ 3 returned_data bit (1) unaligned, /* (from FNP): ON => this is output block returned by FNP */ 2 wab_bits1 (4) bit (1) unaligned, /* OFF => suspend data transmissions for this device */ 2 pad2 bit (1) unaligned, /* padding supplied by MCS (byte 2) */ 2 mbo2 bit (1) unaligned, /* always ON */ 2 console_wab bit (1) unaligned, /* OFF => suspend data transmissions to/from console */ 2 mcs2 unaligned, /* bits used by FNP and ring-0 multiplexer */ 3 block_type fixed binary (2) unaligned unsigned, /* type of block -- normal/sync */ 2 wab_bits2 (4) bit (1) unaligned; /* OFF => suspend data transmissions for this device */ dcl hasp_fcs_bytes_ptr pointer; dcl (HASP_FCS_NORMAL_BLOCK initial (0), /* normal block */ HASP_FCS_ACKNOWLEDGE_BLOCK initial (1), /* requests FNP to acknowledge when block is sent */ HASP_FCS_SYNC_BLOCK initial (3)) /* synchronization block to terminate FNP loopback mode */ fixed binary (2) unsigned static options (constant); /* END INCLUDE FILE ... hasp_block_record_data.incl.pl1 */ */ ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group Bull including Bull HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell Bull Inc., Groupe Bull and Bull HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, Bull or Bull HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by Bull HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved */