Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Simulator progress

112 views
Skip to first unread message

Harry Reed

unread,
Feb 25, 2013, 10:55:54 AM2/25/13
to
For all interested parties,

My simulator for the dps-8/m is progressing along rather well, albeit
somewhat slower than I would like. All multi-word EIS instructions have
been implemented and tested (to a point) - including decimal arithmetic
instructions. (The decimal instructions are, at this time, rather
fragile since the decNumber package expects it's inputs w/o error. Need
to put boilerplate code in to ensure that decNumber doesn't have fits
with bad numeric descriptors.)

After much debugging, I am able to run a slightly modified erpt (sans
IOM functionality) from BOS for output formatting/editing.

Still need to implement faults & interrupts and need to start figuring
out how I might be able to simulate the IOM.

For more information see http://sourceforge.net/projects/dps8m/

Onwards and Upwards,
Harry Reed

doo...@gmail.com

unread,
Jan 7, 2014, 5:11:30 PM1/7/14
to
Simulator development is still progressing. Starting to (try) booting the T&D tape as well as the Multics 12.5 boot tape.

For more information see http://sourceforge.net/projects/dps8m/



Always, Onwards and Upwards,

Harry Reed

Hristo Asenov

unread,
Jan 29, 2014, 2:54:41 PM1/29/14
to
Hello, I had trouble running the simulator in Ubuntu Linux x86. When I tried to compile dps8, I got the following errors: (from http://pastebin.com/raw.php?i=VEnau8S9).

dps8 hctrl-hsa01% make
(cd ../simh; make)
make[1]: Entering directory `/home/hasenov/code-0/trunk/dps8m/src/simh'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/hasenov/code-0/trunk/dps8m/src/simh'
(cd ../decNumber; make)
make[1]: Entering directory `/home/hasenov/code-0/trunk/dps8m/src/decNumber'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/hasenov/code-0/trunk/dps8m/src/decNumber'
make dps8
make[1]: Entering directory `/home/hasenov/code-0/trunk/dps8m/src/dps8'
clang -g -O0 -I../decNumber -I../simh -std=c99 -U__STRICT_ANSI__ -D_GNU_SOURCE -DUSE_READER_THREAD -DHAVE_DLOPEN=so -Wall -DUSE_INT64 -DQUIET_UNUSED -c -o dps8_addrmods.o dps8_addrmods.c
dps8_addrmods.c:99:9: warning: implicit declaration of function 'READOP' is invalid in C99 [-Wimplicit-function-declaration]
if (READOP(i))
^
dps8_addrmods.c:117:9: warning: implicit declaration of function 'WRITEOP' is invalid in C99 [-Wimplicit-function-declaration]
if (WRITEOP(i))
^
dps8_addrmods.c:138:9: warning: implicit declaration of function 'TRANSOP' is invalid in C99 [-Wimplicit-function-declaration]
if (TRANSOP(i))
^
dps8_addrmods.c:146:56: error: no member named 'info' in 'struct DCDstruct'
if (!READOP(i) && !WRITEOP(i) && !TRANSOP(i) && i->info->flags & PREPARE_CA)
~ ^
dps8_addrmods.c:160:12: error: no member named 'info' in 'struct DCDstruct'
if (i->info->ndes > 0)
~ ^
dps8_addrmods.c:172:66: error: use of undeclared identifier 'Ypair'
sprintf(temp, "CYpair[0]=%012llo CYpair[1]=%012llo", Ypair[0], Ypair[1]);
^
dps8_addrmods.c:183:1: error: unknown type name 'modificationContinuation'
modificationContinuation _modCont, *modCont = &_modCont;
^
dps8_addrmods.c:186:18: error: unknown type name 'modificationContinuation'
char *modContSTR(modificationContinuation *i)
^
dps8_addrmods.c:457:104: error: use of undeclared identifier 'Ypair'
sim_debug(DBG_APPENDING, &cpu_dev, "ITP Pair: PRNUM=%o BITNO=%o WORDNO=%o MOD=%o\n", GET_ITP_PRNUM(Ypair), GET_ITP_WORDNO(Ypair), GET_ITP_BITNO(Ypair), GET_ITP_MOD(Ypair));
^
./dps8.h:213:43: note: expanded from:
#define GET_ITP_PRNUM(Ypair) ((word3)((Ypair[0] >> 33) & 3))
^
../simh/scp.h:154:102: note: expanded from:
#define sim_debug(dbits, dptr, ...) if (sim_deb && ((dptr)->dctrl & dbits)) _sim_debug (dbits, dptr, __VA_ARGS__); else (void)0
^
dps8_addrmods.c:520:20: error: use of undeclared identifier 'illproc_fault'
doFault(i, illproc_fault, ill_mod, "Incorrect address modifier");
^
dps8_addrmods.c:547:39: error: use of undeclared identifier 'OPERAND_READ'
Read(i, address + 1, &itxPair[1], OPERAND_READ, i->a);
^
dps8_addrmods.c:561:8: error: conflicting types for 'doComputedAddressFormation'
t_stat doComputedAddressFormation(DCDstruct *i)
^
./dps8.h:862:6: note: previous declaration is here
void doComputedAddressFormation(DCDstruct *, eCAFoper action);
^
dps8_addrmods.c:564:9: warning: implicit declaration of function 'RMWOP' is invalid in C99 [-Wimplicit-function-declaration]
if (RMWOP(i))
^
dps8_addrmods.c:565:20: error: use of undeclared identifier 'rmwCY'
operType = rmwCY; // r/m/w cycle
^
dps8_addrmods.c:581:12: error: no member named 'info' in 'struct DCDstruct'
if (i->info->flags & NO_TAG) // for instructions line STCA/STCQ
~ ^
dps8_addrmods.c:606:9: warning: implicit declaration of function 'sim_printf' is invalid in C99 [-Wimplicit-function-declaration]
sim_printf("doComputedAddressFormation(startCA): unknown Tm??? %o\n", GET_TM(rTAG));
^
dps8_addrmods.c:635:47: error: use of undeclared identifier 'rmwCY'
if (operType == readCY || operType == rmwCY)
^
dps8_addrmods.c:637:13: warning: implicit declaration of function 'ReadOP' is invalid in C99 [-Wimplicit-function-declaration]
ReadOP(i, TPR.CA, OPERAND_READ, i->a); // read appropriate operand(s)
^
dps8_addrmods.c:637:31: error: use of undeclared identifier 'OPERAND_READ'
ReadOP(i, TPR.CA, OPERAND_READ, i->a); // read appropriate operand(s)
^
dps8_addrmods.c:642:48: error: use of undeclared identifier 'rmwCY'
if (operType == writeCY || operType == rmwCY)
^
dps8_addrmods.c:661:24: error: use of undeclared identifier 'illproc_fault'
doFault(i, illproc_fault, ill_mod, "RI_MOD: Td == TD_DU || Td == TD_DL");
^
dps8_addrmods.c:679:35: warning: implicit conversion from enumeration type 'enum _processor_cycle_type' to different enumeration type 'enum eMemoryAccessType' [-Wconversion]
Read(i, TPR.CA, &indword, INDIRECT_WORD_FETCH, i->a); //TM_RI);
~~~~ ^~~~~~~~~~~~~~~~~~~
dps8_addrmods.c:701:9: error: use of undeclared identifier 'cu'
cu.CT_HOLD = Td;
^
dps8_addrmods.c:702:69: error: use of undeclared identifier 'cu'
sim_debug(DBG_ADDRMOD, &cpu_dev, "IR_MOD: CT_HOLD=%o %o\n", cu.CT_HOLD, Td);
^
../simh/scp.h:154:102: note: expanded from:
#define sim_debug(dbits, dptr, ...) if (sim_deb && ((dptr)->dctrl & dbits)) _sim_debug (dbits, dptr, __VA_ARGS__); else (void)0
^
dps8_addrmods.c:712:35: warning: implicit conversion from enumeration type 'enum _processor_cycle_type' to different enumeration type 'enum eMemoryAccessType' [-Wconversion]
Read(i, TPR.CA, &indword, INDIRECT_WORD_FETCH, i->a);
~~~~ ^~~~~~~~~~~~~~~~~~~
dps8_addrmods.c:731:90: error: use of undeclared identifier 'cu'
sim_debug(DBG_ADDRMOD, &cpu_dev, "IR_MOD(TM_IT): Td=%02o => %02o\n", Td, cu.CT_HOLD);
^
../simh/scp.h:154:102: note: expanded from:
#define sim_debug(dbits, dptr, ...) if (sim_deb && ((dptr)->dctrl & dbits)) _sim_debug (dbits, dptr, __VA_ARGS__); else (void)0
^
dps8_addrmods.c:738:40: error: use of undeclared identifier 'f2_fault'
doFault(i, f2_fault, 0, "IT_F2");
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
8 warnings and 20 errors generated.
make[1]: *** [dps8_addrmods.o] Error 1
make[1]: Leaving directory `/home/hasenov/code-0/trunk/dps8m/src/dps8'
make: *** [locallibs_then_dps8] Error 2

Could someone help me to fix this?

Hristo Asenov

unread,
Jan 29, 2014, 11:36:24 PM1/29/14
to
I actually figured out what my problem was, I was using the wrong repository.

Michael Mondy

unread,
Jan 30, 2014, 1:40:13 AM1/30/14
to
Please see also my emulator at http://github.com/MichaelMondy/multics-
emul/wiki. One notable feature is that it displays the PL/1 source
lines that were used to create the boot tape. (This is possible because
the boot tape contains inter-procedure linkage information and the
available compiler listings provide a mapping between machine
instruction offsets and the corresponding PL/1 source lines.) My
emulator reads much of the boot tape and executes a couple million
instructions before crashing during disk initialization due to
unimplemented features.

See also recent discussions on the multicians mailing list about both
emulators and about system initialization.

-
Michael Mondy

Michael Mondy

unread,
Jan 30, 2014, 1:47:35 AM1/30/14
to
On Thu, 30 Jan 2014 06:40:13 +0000, Michael Mondy wrote:

> On Wed, 29 Jan 2014 20:36:24 -0800, Hristo Asenov wrote:
>
>> On Monday, February 25, 2013 10:55:54 AM UTC-5, Harry Reed wrote:
>>> For all interested parties,
>>>
>>>
>>>
>>> My simulator for the dps-8/m is progressing along rather well, albeit
>>> [ ... ]
>
> Please see also my emulator at
> http://github.com/MichaelMondy/multics-emul/wiki.
> One notable feature is that it displays the PL/1 source
> lines that were used to create the boot tape. (This is possible
> because the boot tape contains inter-procedure linkage information and
> the available compiler listings provide a mapping between machine
> instruction offsets and the corresponding PL/1 source lines.) My
> emulator reads much of the boot tape and executes a couple million
> instructions before crashing during disk initialization due to
> unimplemented features.
>
> See also recent discussions on the multicians mailing list about both
> emulators and about system initialization.
>
> -
> Michael Mondy

Thanks pam for the auto-wrap break at the hyphen... Corrected URL:
http://github.com/MichaelMondy/multics-emul/wiki
0 new messages