117 for (
int i = 0; i < ncards && i < 16; i++) {
119 const uint16_t *cols;
131 if (cols[2] != 0x0100)
134 for (
int j = 0; j < 12; j++) {
137 b[j >> 1] = (uint8_t)(nib << 4);
142 if (b[0] == 0x9e && b[1] == 0x80 &&
143 b[2] == 0x00 && b[4] == 0x9e && b[5] == 0x80)
310 if (ncols == 0 || ctx->
col_idx >= ncols) {
360 int is_last_col = (ctx->
col_idx == ncols - 1);
370 present = (ctx->
half == 0) ? (uint8_t)((
byte >> 4) & 0x0f)
371 : (uint8_t)(
byte & 0x0f);
372 is_last = (ctx->
half == 1) && is_last_col;
375 is_last = is_last_col;
379 "cardreader: presenting card %d col %d half %d byte=0x%02x val=0x%02x end=%d\n",
401 if (pack_now && ctx->
half == 0) {
468 int auto_loader = -1;
470 fprintf(stderr,
"cardreader: failed to load deck '%s'\n", cap_path);
493 if (auto_loader >= 0)
498 ctx->
card_idx = auto_loader >= 0 ? auto_loader : (first_card < 0 ? 0 : first_card);
527 "cardreader: loaded '%s', %d cards, last non-empty card=%d col=%d\n",
const uint16_t * cap_card_columns(const struct cap_deck *d, int i)
int cap_card_ncols(const struct cap_deck *d, int i)
int cap_num_cards(const struct cap_deck *d)
void cap_free(struct cap_deck *d)
struct cap_deck * cap_load(const char *path)
int cardreader_register_packed(struct ge *ge, const char *cap_path, enum transcode_mode mode)
static int cr_advance(struct cardreader_ctx *ctx)
static int cardreader_deinit(struct ge *ge, void *opaque)
static int cardreader_on_clock(struct ge *ge, void *opaque)
int cardreader_register(struct ge *ge, const char *cap_path, enum transcode_mode mode)
static int cr_find_hollerith_loader_card(struct cap_deck *deck)
int cardreader_register_from(struct ge *ge, const char *cap_path, enum transcode_mode mode, int first_card)
static int cr_register(struct ge *ge, const char *cap_path, enum transcode_mode mode, int first_card, int pack)
int ge_register_peri(struct ge *ge, struct ge_peri *p)
void ge_log(ge_log_type type, const char *format,...)
Log message.
@ LOG_READER
Integrated Reader.
void reader_setup_to_send(struct ge *ge, uint8_t data, uint8_t end)
void reader_clear_sending(struct ge *ge)
int end_of_card_presented
enum transcode_mode active_mode
int(* on_pulse)(struct ge *, void *)
int(* init)(struct ge *, void *)
int(* deinit)(struct ge *, void *)
int(* on_clock)(struct ge *, void *)
The entire state of the emulated system, including registers, memory, peripherals and timings.
struct ge_integrated_reader integrated_reader
The I/O interface for the integrated reader (RI)
uint8_t RASI
Channel 1 in transfer.
uint8_t transcode_column(uint16_t column, enum transcode_mode mode)