Example #1
0
void multibus_put_mbyte(uint16 addr, uint8 val)
{
    SET_XACK(0);                        /* set no XACK */
//    sim_printf("multibus_put_mbyte: Cleared XACK for %04X\n", addr); 
    isbc064_put_mbyte(addr, val);
//    sim_printf("multibus_put_mbyte: Done XACK=%dX\n", XACK); 
}
Example #2
0
uint8 nulldev(t_bool flag, uint8 data, uint8 devnum)
{
    SET_XACK(0);                        /* set no XACK */
    if (flag == 0)                      /* if we got here, no valid I/O device */
        return (0xFF);
    return 0;
}
Example #3
0
uint8 isbc064_get_mbyte(uint16 addr)
{
    uint32 val, org, len;

    if ((isbc064_dev.flags & DEV_DIS) == 0) {
        org = isbc064_unit.u3;
        len = isbc064_unit.capac;
        sim_debug (DEBUG_read, &isbc064_dev, "isbc064_get_mbyte: addr=%04X", addr);
        sim_debug (DEBUG_read, &isbc064_dev, "isbc064_get_mbyte: org=%04X, len=%04X\n", org, len);
        if ((addr >= org) && (addr < (org + len))) {
            SET_XACK(1);                /* good memory address */
            sim_debug (DEBUG_xack, &isbc064_dev, "isbc064_get_mbyte: Set XACK for %04X\n", addr); 
            val = *((uint8 *)isbc064_unit.filebuf + (addr - org));
            sim_debug (DEBUG_read, &isbc064_dev, " val=%04X\n", val);
//            sim_printf ("isbc064_get_mbyte: addr=%04X, val=%02X\n", addr, val);
            return (val & 0xFF);
        } else {
            sim_debug (DEBUG_read, &isbc064_dev, "isbc064_get_mbyte: Out of range\n");
            return 0;                   /* multibus has active high pullups and inversion */
        }
    }
    sim_debug (DEBUG_read, &isbc064_dev, "isbc064_get_mbyte: Disabled\n");
//    sim_printf ("isbc064_get_mbyte: Disabled\n");
    return 0;                           /* multibus has active high pullups and inversion */
}
Example #4
0
File: ieprom.c Project: B-Rich/simh
int32 EPROM_get_mbyte(uint32 addr)
{
    int32 val;

    if (i8255_unit.u5 & 0x01) {         /* EPROM enabled */
        sim_debug (DEBUG_read, &EPROM_dev, "EPROM_get_mbyte: addr=%04X\n", addr);
        if (addr < EPROM_unit.capac) {
            SET_XACK(1);                /* good memory address */
            sim_debug (DEBUG_xack, &EPROM_dev, "EPROM_get_mbyte: Set XACK for %04X\n", addr); 
            val = *((uint8 *)EPROM_unit.filebuf + addr);
            sim_debug (DEBUG_read, &EPROM_dev, " val=%04X\n", val);
            return (val & 0xFF);
        }
        sim_debug (DEBUG_read, &EPROM_dev, " Out of range\n");
        return 0xFF;
    }
    sim_debug (DEBUG_read, &EPROM_dev, " EPROM Disabled\n");
    return 0xFF;
}
Example #5
0
void isbc064_put_mbyte(uint16 addr, uint8 val)
{
    uint32 org, len;

    if ((isbc064_dev.flags & DEV_DIS) == 0) {
        org = isbc064_unit.u3;
        len = isbc064_unit.capac;
//        sim_printf ("isbc064_put_mbyte: addr=%04X, val=%02X\n", addr, val);
        sim_debug (DEBUG_write, &isbc064_dev, "isbc064_put_mbyte: addr=%04X, val=%02X\n", addr, val);
        sim_debug (DEBUG_write, &isbc064_dev, "isbc064_put_mbyte: org=%04X, len=%04X\n", org, len);
        if ((addr >= org) && (addr < (org + len))) {
            SET_XACK(1);                /* good memory address */
            sim_debug (DEBUG_write, &isbc064_dev, "isbc064_put_mbyte: Set XACK for %04X\n", addr); 
            *((uint8 *)isbc064_unit.filebuf + (addr - org)) = val & 0xFF;
            sim_debug (DEBUG_write, &isbc064_dev, "isbc064_put_mbyte: Return\n"); 
            return;
        } else {
            sim_debug (DEBUG_write, &isbc064_dev, "isbc064_put_mbyte: Out of range\n");
            return;
        }
    }
    sim_debug (DEBUG_write, &isbc064_dev, "isbc064_put_mbyte: Disabled\n");
//    sim_printf ("isbc064_put_mbyte: Disabled\n");
}
Example #6
0
uint8 multibus_get_mbyte(uint16 addr)
{
    SET_XACK(0);                        /* set no XACK */
//    sim_printf("multibus_get_mbyte: Cleared XACK for %04X\n", addr); 
    return isbc064_get_mbyte(addr);
}