From 12a04b933787269d41302e2c0d094e9f4563ea3e Mon Sep 17 00:00:00 2001 From: Richard Cornwell Date: Fri, 27 Jul 2018 11:14:18 -0400 Subject: [PATCH] B5500: Update to new sim_card interface. --- B5500/b5500_urec.c | 45 ++++++++++++++------------------------------- doc/b5500_doc.doc | Bin 143360 -> 143872 bytes 2 files changed, 14 insertions(+), 31 deletions(-) diff --git a/B5500/b5500_urec.c b/B5500/b5500_urec.c index 1b08e3a..22bda95 100644 --- a/B5500/b5500_urec.c +++ b/B5500/b5500_urec.c @@ -35,10 +35,6 @@ #define UNIT_CDP UNIT_ATTABLE | UNIT_DISABLE | MODE_029 #define UNIT_LPR UNIT_ATTABLE | UNIT_DISABLE -/* For Card reader, when set returns end of file at end of deck. */ -/* Reset after sent to system */ -#define MODE_EOF (0x40 << UNIT_V_CARD_MODE) - #define TMR_RTC 0 @@ -149,8 +145,6 @@ MTAB cdr_mod[] = { {MTAB_XTD | MTAB_VUN, 0, "FORMAT", "FORMAT", &sim_card_set_fmt, &sim_card_show_fmt, NULL, "Sets card format"}, - {MODE_EOF, MODE_EOF, "EOF", "EOF", NULL, NULL, NULL, - "Causes EOF to be set when reader empty"}, {0} }; @@ -269,15 +263,13 @@ t_stat card_cmd(uint16 cmd, uint16 dev, uint8 chan, uint16 *wc) /* Check if we ran out of cards */ if (uptr->u5 & URCSTA_EOF) { /* If end of file, return to system */ - if (uptr->flags & MODE_EOF) { - sim_debug(DEBUG_DETAIL, &cdr_dev, "cdr %d %d report eof\n", u, - chan); - chan_set_eof(chan); - uptr->flags &= ~MODE_EOF; + if (sim_card_input_hopper_count(uptr) != 0) + uptr->u5 &= ~URCSTA_EOF; + else { + /* Clear unit ready */ + iostatus &= ~(CARD1_FLAG << u); + return SCPE_UNATT; } - /* Clear unit ready */ - iostatus &= ~(CARD1_FLAG << u); - return SCPE_UNATT; } if (cmd & URCSTA_BINARY) { @@ -335,31 +327,26 @@ cdr_srv(UNIT *uptr) { if (uptr->u4 == 0 && uptr->u5 & URCSTA_ACTIVE && (uptr->u5 & URCSTA_CARD) == 0) { switch(sim_read_card(uptr, image)) { - case SCPE_UNATT: + case CDSE_EMPTY: iostatus &= ~(CARD1_FLAG << u); uptr->u5 &= ~(URCSTA_ACTIVE); iostatus &= ~(CARD1_FLAG << u); chan_set_notrdy(chan); break; - case SCPE_EOF: + case CDSE_EOF: /* If end of file, return to system */ - if (uptr->flags & MODE_EOF) { - sim_debug(DEBUG_DETAIL, &cdr_dev, "cdr %d %d set eof\n", u, chan); - chan_set_eof(chan); - uptr->flags &= ~MODE_EOF; - } uptr->u5 &= ~(URCSTA_ACTIVE); uptr->u5 |= URCSTA_EOF; chan_set_notrdy(chan); sim_activate(uptr, 500); break; - case SCPE_IOERR: + case CDSE_ERROR: chan_set_error(chan); uptr->u5 &= ~(URCSTA_ACTIVE); uptr->u5 |= URCSTA_EOF; chan_set_end(chan); break; - case SCPE_OK: + case CDSE_OK: uptr->u5 |= URCSTA_CARD; sim_activate(uptr, 500); break; @@ -478,10 +465,6 @@ cdr_help(FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr) fprintf (st, "The system supports up to two card readers, the second one is disabled\n"); fprintf (st, "by default. To have the card reader return the EOF flag when the deck\n"); fprintf (st, "has finished reading do:\n"); - fprintf (st, " sim> SET CRn EOF\n"); - fprintf (st, "This flag is cleared each time a deck has been read, so it must be set\n"); - fprintf (st, "again after each deck. MCP does not require this to be set as long as\n"); - fprintf (st, "the deck includes a ?END card\n"); fprint_set_help(st, dptr); fprint_show_help(st, dptr); return SCPE_OK; @@ -522,17 +505,17 @@ cdp_srv(UNIT *uptr) { if (uptr->u5 & URCSTA_FULL) { sim_debug(DEBUG_DETAIL, &cdp_dev, "cdp %d %d punch\n", u, chan); switch(sim_punch_card(uptr, image)) { - case SCPE_EOF: - case SCPE_UNATT: + case CDSE_EOF: + case CDSE_EMPTY: sim_debug(DEBUG_DETAIL, &cdp_dev, "cdp %d %d set eof\n", u, chan); chan_set_eof(chan); break; /* If we get here, something is wrong */ - case SCPE_IOERR: + case CDSE_ERROR: chan_set_error(chan); break; - case SCPE_OK: + case CDSE_OK: break; } uptr->u5 &= ~URCSTA_FULL; diff --git a/doc/b5500_doc.doc b/doc/b5500_doc.doc index fa1cd387ba4e5c3c8c94df11204442e0c4d82035..46818d726c74118a6c5fbd131c9120e3fc8717bc 100644 GIT binary patch delta 12110 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 delta 11972 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 LW^?f{x1#?CfJy5k