5 *\brief Tape data block base class.
7 * This class represents a Honeywell paper tape block.
8 * That may be some kind of data block or a end of tape mark.
15 *\brief Initialisation state.
18 TBS_OK, //!< Block successfully initialised
19 TBS_EOF_LEGAL, //!< Legal EOF while initialising
20 TBS_EOF_ILLEGAL, //!< Illegal EOF while initialising
21 TBS_CHECKSUM, //!< Checksum error
22 TBS_IOERR, //!< I/O-Error while reading
23 TBS_DEFAULT //!< Block not initialised.
30 TBT_DATA=0x10, //!< Data block
31 TBT_EOT, //!< End of tape block
32 TBT_DISCARD //!< Invalid block, check block_type
39 void(*input_start)(void *)=0,
40 void (*input_stop)(void *)=0,
41 void * start_stop_arg=0
44 virtual ~tape_block();
45 tb_state_t get_state();
47 unsigned char * get_raw_data();
48 virtual int get_type();
49 virtual int get_subtype();
52 tape_block(tape_block &);
60 void(*input_start)(void *)=0,
61 void (*input_stop)(void *)=0,
62 void * start_stop_arg=0
68 int block_type; //!< Type of this block.
69 tb_state_t init_state; //!< Initialisation state.
70 int data_read; //!< Total data consumption during intialisation.
71 unsigned char * raw_data; //!< Raw block data in bytes.
72 int raw_size; //!< Size of the raw data.
73 unsigned short * word_data; //!< Data organized in machine words.
74 int word_size; //!< Size of the blocks in machine words.