[Simh] are I1401 disk operations working in the current version ?
Mike Stramba
mikestramba at gmail.com
Thu Aug 8 04:56:15 EDT 2019
Are disk operations to the dpX devices working in the I1401 simulator ?
If so, does anyone have any sample code ?
The ref man : A24-1403-5_1401RefMan_Apr62.pdf on page 66 shows the "A"
mnemonic for "write disk single record" as being "WD"
Are "A" mnemonics what SIMH / the I1401 is supporting ?
The "SPS" mnemonic shows as "M"
I'm using version v4 commit -69ec3778 of the sim, neither of those
mnemonics are accepted by the deposit command :
"d 600 WD %F0 700 W" gives "Invalid argument"
Looking through i1401_sys.c, neither "M" or "WD" are present in the
*opcode table :
------------------------------------------------------------
const char *opcode[64] = {
NULL, "R", "W", "WR", "P", "RP", "WP", "WRP",
"SRF", "SPF", NULL, "MA", "MUL", NULL, NULL, NULL,
NULL, "CS", "S", NULL, "MTF", "BWZ", "BBE", NULL,
"MZ", "MCS", NULL, "SWM", "DIV", NULL, NULL, NULL,
NULL, NULL, "SS", "LCA", "MCW", "NOP", NULL, "MCM",
"SAR", NULL, "ZS", NULL, NULL, NULL, NULL, NULL,
NULL, "A", "B", "C", "MN", "MCE", "CC", NULL,
"SBR", NULL, "ZA", "H", "CWM", NULL, NULL, NULL
};
---------------------------
Reading through I1401_cpu.c at :
------------------------------------------------------------------------------
case OP_MCW: /* move char */
if ((ilnt >= 4) && (ioind == BCD_PERCNT)) { /* I/O form? */
reason = iodisp (dev, unit, MD_NORM, D); /* dispatch I/O */
--------------------------------------
It looks like if an MCW instruction is found with 'ioind' (the 'D
modifier) set to BCD_PERCNT ("%") then 'iodisp' will be called which
then calls 'dp_io' in i1401_dp.c (the dpX device handler).
If that is how disk ops are working, is the MCW instruction a "non
standard" or "earlier / later" method than what is documented in the
reference manual ?
I've tried to deposit an MCW instruction, but I'm not sure where the
'%' should go.
I tried putting it in as the eighth byte of the instruction with :
d 607 '%'
but it doesn't seem to be found by instruction fetch routine.
Mike
More information about the Simh
mailing list