CAC 2015-08-19

tape_archive

Fixed forward skip records; now tape has:

VOL1FOO                              PYKMULT001                                3P
UVL1PYK 93231   SERENITY VALLEY ENGINEERING     ANTHONY.SYSENG.A                P
HDR1!!DUMMY FILE ID!!******00010001000100 00000 00000 000000MULTICS ANSI2       P
EOF1!!DUMMY FILE ID!!******00010001000100 00000 00000 000000MULTICS ANSI2       P
HDR1ATTRIBUTEFILE0001FOO   00010001000100 93231 99365 000000MULTICS ANSI2       P
HDR2S0819200000                                13 00                            P
EOF1ATTRIBUTEFILE0001FOO   00010001000100 93231 99365 000001MULTICS ANSI2       P
EOF2S0819200000                                13 00                            P
HDR1JONESFORTH.S/0002FOO   00010002000100 93231 99365 000000MULTICS ANSI2       P
HDR2S0819200000                                13 00                            P

Still doesn't like reading it, but closer….

+tss

Breakpoint 1, DoBasicInstruction () at dps8_ins.c:4257
4257    sim_printf ("tss!\n");
(gdb) n
4259    cpu_dev . dctrl |= DBG_FAULT;
(gdb) n
4260                if (TPR.CA >= ((word18) BAR.BOUND) << 9)
(gdb) n
4267                PPR.IC = TPR.CA /* + (BAR.BASE << 9) */; // getBARaddress does the adding
(gdb) p BAR
$1 = {BASE = 0, BOUND = 256}
(gdb) n
4268                PPR.PSR = TPR.TSR;
(gdb) p TPR.TSR
$2 = 220
(gdb) p/o TPR.TSR
$3 = 0334
(gdb) n
4270                if (get_addr_mode () == APPEND_mode)
(gdb) n
4271                  set_addr_mode(APPEND_BAR_mode);
(gdb) n
5848    }
(gdb) n
executeInstruction () at dps8_ins.c:1249
1249        if (switches . append_after)
(gdb) n
1251            if (info->ndes == 0 && a && (info->flags & TRANSFER_INS))
(gdb) n
1253                if (get_addr_mode () == BAR_mode)
(gdb) n
1256                  set_addr_mode(APPEND_mode);
(gdb) p get_addr_mode ()
$4 = APPEND_BAR_mode

///
/// executeInstruction: Transfer into append mode
///

    if (switches . append_after)
    {
        if (info->ndes == 0 && a && (info->flags & TRANSFER_INS))
        {
            if (get_addr_mode () == BAR_mode)
              set_addr_mode(APPEND_BAR_mode);
            else
              set_addr_mode(APPEND_mode);
        }
    }

That's wrong; we are already in APPEND_BAR_mode; tss should only set BAR mode, and let executeInstruction do the APPEND_BAR mode setting.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License