Added code to help identify instances where multiplication constants should be checked against other sources for accuracy
This commit is contained in:
parent
1711393755
commit
46ed7c77e8
4 changed files with 386 additions and 3 deletions
|
|
@ -20,8 +20,9 @@ for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10
|
|||
|
||||
This diagnostic "TESTS THE MULTIPLY INSTRUCTION AND THE MULTIPLY ALGORITHM."
|
||||
|
||||
Resources for this diagnostic include:
|
||||
Information regarding this diagnostic includes:
|
||||
|
||||
- [Issues](#issues)
|
||||
- [Instructions](#dakaktxt)
|
||||
- [History](#dakakhst)
|
||||
- [Source Code](#dakakmac)
|
||||
|
|
@ -57,6 +58,37 @@ JavaScript parameters; e.g.:
|
|||
|
||||
embedPDP10(...,'{commands:"a 'dakakt.mac;../param.klm;../fixed.klm;dakakm.mac;../uuoerr.klm;../stor.klm'"}');
|
||||
|
||||
Issues
|
||||
------
|
||||
|
||||
As noted in [cpuops.js](/modules/pdp10/lib/cpuops.js), in the *doMUL()* function:
|
||||
|
||||
> The DAKAK diagnostic contains the following code:
|
||||
|
||||
036174: 200240 043643 MOVE 5,43643 ; [43643] = 400000000000
|
||||
036175: 200300 043603 MOVE 6,43603 ; [43603] = 777777777777
|
||||
036176: 200140 043604 MOVE 3,43604 ; [43604] = 000000000001
|
||||
036177: 224240 000003 MUL 5,3 ; Multiply 400000000000 by 000000000001
|
||||
036200: 312240 043604 CAME 5,43604 ; high order result in AC should be: 000000000001
|
||||
036201: 003240 033721 UUO 5,33721 ;
|
||||
036202: 312300 043602 CAME 6,43602 ; low order result in AC+1 should be: 000000000000
|
||||
|
||||
> The "natural" result is:
|
||||
|
||||
05=777777777777 06=400000000000
|
||||
|
||||
> And SIMH seems to agree. So why does the DEC diagnostic expect:
|
||||
|
||||
05=000000000001 06=000000000000
|
||||
|
||||
> The answer can be found in the [DECSYSTEM-10 and DECSYSTEM-20 Processor Reference Manual (June 1982)](http://archive.pcjs.org/pubs/dec/pdp10/kl10/AA-H391A-TK_DECsystem-10_DECSYSTEM-20_Processor_Reference_Jun1982.pdf),
|
||||
in the description of the MUL instruction:
|
||||
|
||||
CAUTION: In the KA10, an AC operand of 2^35 is treated as though it were +2^35, producing the
|
||||
incorrect sign in the product.
|
||||
|
||||
> This behavior is now simulated below for MODEL_KA10, at least to the extent that the diagnostic is happy.
|
||||
|
||||
---
|
||||
|
||||
DAKAK.TXT
|
||||
|
|
|
|||
|
|
@ -21,8 +21,9 @@ for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10
|
|||
This diagnostic "TESTS THE MULTIPY, INTERGER MULIPLY, DIVIDE AND INTERGER DIVIDE INSTRUCTIONS." Hopefully the tests work better
|
||||
than their spell-checking.
|
||||
|
||||
Resources for this diagnostic include:
|
||||
Information regarding this diagnostic includes:
|
||||
|
||||
- [Issues](#issues)
|
||||
- [Instructions](#dakaltxt)
|
||||
- [History](#dakalhst)
|
||||
- [Source Code](#dakalmac)
|
||||
|
|
@ -41,6 +42,345 @@ This command:
|
|||
will automatically read the [DAKAL.MAC](DAKAL.MAC.txt) source file (a slightly modified copy of [DAKALM.MAC](DAKALM.MAC.txt)),
|
||||
assemble it, and then load the binary image at the location specified in the file.
|
||||
|
||||
Issues
|
||||
------
|
||||
|
||||
The following DAKAL diagnostic test sequence produced correct results but still failed:
|
||||
|
||||
00=000000000000 01=000000000000 02=000000000000 03=000000000000
|
||||
04=000000000000 05=000000000000 06=000000000000 07=000000000000
|
||||
10=000000000000 11=000000000000 12=000000000001 13=000000000000
|
||||
14=777777777777 15=525252525252 16=000000000016 17=000000000000
|
||||
PC=030641 RA=00030626 EA=030626 PS=000000 OV=0 C0=0 C1=0 ND=0 PD=0
|
||||
030641: 200600 044434 MOVE 14,44434 ;cycles=1
|
||||
>> tr
|
||||
00=000000000000 01=000000000000 02=000000000000 03=000000000000
|
||||
04=000000000000 05=000000000000 06=000000000000 07=000000000000
|
||||
10=000000000000 11=000000000000 12=000000000001 13=000000000000
|
||||
14=525252525252 15=525252525252 16=000000000016 17=000000000000
|
||||
PC=030642 RA=00044434 EA=044434 PS=000000 OV=0 C0=0 C1=0 ND=0 PD=0
|
||||
030642: 200640 044435 MOVE 15,44435 ;cycles=1
|
||||
>> tr
|
||||
00=000000000000 01=000000000000 02=000000000000 03=000000000000
|
||||
04=000000000000 05=000000000000 06=000000000000 07=000000000000
|
||||
10=000000000000 11=000000000000 12=000000000001 13=000000000000
|
||||
14=525252525252 15=000000000000 16=000000000016 17=000000000000
|
||||
PC=030643 RA=00044435 EA=044435 PS=000000 OV=0 C0=0 C1=0 ND=0 PD=0
|
||||
030643: 200500 044440 MOVE 12,44440 ;cycles=1
|
||||
>> tr
|
||||
00=000000000000 01=000000000000 02=000000000000 03=000000000000
|
||||
04=000000000000 05=000000000000 06=000000000000 07=000000000000
|
||||
10=000000000000 11=000000000000 12=000000000002 13=000000000000
|
||||
14=525252525252 15=000000000000 16=000000000016 17=000000000000
|
||||
PC=030644 RA=00044440 EA=044440 PS=000000 OV=0 C0=0 C1=0 ND=0 PD=0
|
||||
030644: 224600 000012 MUL 14,12 ;cycles=1
|
||||
>> tr
|
||||
00=000000000000 01=000000000000 02=000000000000 03=000000000000
|
||||
04=000000000000 05=000000000000 06=000000000000 07=000000000000
|
||||
10=000000000000 11=000000000000 12=000000000002 13=000000000000
|
||||
14=777777777776 15=652525252524 16=000000000016 17=000000000000
|
||||
PC=030645 RA=00000012 EA=000012 PS=000000 OV=0 C0=0 C1=0 ND=0 PD=0
|
||||
030645: 312600 044441 CAME 14,44441 ;cycles=1
|
||||
>> tr
|
||||
00=000000000000 01=000000000000 02=000000000000 03=000000000000
|
||||
04=000000000000 05=000000000000 06=000000000000 07=000000000000
|
||||
10=000000000000 11=000000000000 12=000000000002 13=000000000000
|
||||
14=777777777776 15=652525252524 16=000000000016 17=000000000000
|
||||
PC=030647 RA=00044441 EA=044441 PS=000000 OV=0 C0=0 C1=0 ND=0 PD=0
|
||||
030647: 312640 044442 CAME 15,44442 ;cycles=1
|
||||
|
||||
The multiplication of 525252525252 * 2 produces 777777777776,652525252524, which is correct for the PDP-10's 72-bit "dual sign"
|
||||
format. However, the first time I ran this test, it failed -- not because the result was wrong, but because the value calculated
|
||||
for the expected result was wrong.
|
||||
|
||||
The source code for the test produces the expected results by performing 36-bit multiplication in the MACRO-10 Assembler:
|
||||
|
||||
775 ;MULTIPLY A FLOATING 1 BY 1010...101010
|
||||
776 525252 525252 V1=N1
|
||||
777 652525 252524 V2=N1*XX
|
||||
|
||||
but the expected result *my* MACRO-10 Mini-Assembler calculated was different:
|
||||
|
||||
>> dw 44442 l1
|
||||
044442: 252525 252524
|
||||
|
||||
My result wasn't really the *wrong value*; it was the correct (albeit truncated) value in the *wrong format*. My expression
|
||||
parser was performing simple JavaScript multiplication and then truncating the result to 36 bits; MACRO-10 performs a similar
|
||||
calculation, but it also adjusts the sign of the low 36 bits to match the sign of the high 36 bits -- because that's what the
|
||||
PDP-10 does, too.
|
||||
|
||||
My solution was to move the expression parser's *multiplication* code to its own function, *evalMUL()*, and then change
|
||||
the PDP-10 Debugger to override *evalMUL()* with its own function that calls the PDP-10 CPU *doMUL()* function, guaranteeing
|
||||
that all multiplication results are performed with the same 72-bit precision and returned in the same PDP-10 72-bit format
|
||||
(before being truncated to 36 bits).
|
||||
|
||||
Unfortunately, this creates an incestuous relationship between CPU functionality being tested and the code testing it,
|
||||
because it increases the likelihood that the multiplication tests will succeed even if/when they calculate incorrect results,
|
||||
at least whenever the expected results are being calculated with the same multiplicands that the test itself uses.
|
||||
|
||||
So, as a precaution, I added some *DEBUG* code to the *evalMUL()* function that outputs all the instances where JavaScript
|
||||
multiplication and PDP-10 multiplication differ, so that I can verify that all my PDP-10 results match those in DEC's
|
||||
[MACRO-10 Listing](DAKAL.LST.txt), which I'm treating as "the gold standard."
|
||||
|
||||
Here's that output:
|
||||
|
||||
MUL(525252525252,000000000002) PDP-10: 652525252524 JavaScript: 252525252524 @030641
|
||||
MUL(525252525252,000000000002) PDP-10: 652525252524 JavaScript: 252525252524 @030641
|
||||
MUL(525252525252,000000000004) PDP-10: 525252525250 JavaScript: 525252525250 @030654
|
||||
MUL(525252525252,000000000004) PDP-10: 525252525250 JavaScript: 525252525250 @030654
|
||||
MUL(525252525252,000000000010) PDP-10: 652525252520 JavaScript: 252525252520 @030667
|
||||
MUL(525252525252,000000000010) PDP-10: 652525252520 JavaScript: 252525252520 @030667
|
||||
MUL(525252525252,000000000020) PDP-10: 525252525240 JavaScript: 525252525240 @030702
|
||||
MUL(525252525252,000000000020) PDP-10: 525252525240 JavaScript: 525252525240 @030702
|
||||
MUL(525252525252,000000000040) PDP-10: 652525252500 JavaScript: 252525252500 @030715
|
||||
MUL(525252525252,000000000040) PDP-10: 652525252500 JavaScript: 252525252500 @030715
|
||||
MUL(525252525252,000000000100) PDP-10: 525252525200 JavaScript: 525252525200 @030730
|
||||
MUL(525252525252,000000000100) PDP-10: 525252525200 JavaScript: 525252525200 @030730
|
||||
MUL(525252525252,000000000200) PDP-10: 652525252400 JavaScript: 252525252400 @030743
|
||||
MUL(525252525252,000000000200) PDP-10: 652525252400 JavaScript: 252525252400 @030743
|
||||
MUL(525252525252,000000000400) PDP-10: 525252525000 JavaScript: 525252525000 @030756
|
||||
MUL(525252525252,000000000400) PDP-10: 525252525000 JavaScript: 525252525000 @030756
|
||||
MUL(525252525252,000000001000) PDP-10: 652525252000 JavaScript: 252525252000 @030771
|
||||
MUL(525252525252,000000001000) PDP-10: 652525252000 JavaScript: 252525252000 @030771
|
||||
MUL(525252525252,000000002000) PDP-10: 525252524000 JavaScript: 525252524000 @031004
|
||||
MUL(525252525252,000000002000) PDP-10: 525252524000 JavaScript: 525252524000 @031004
|
||||
MUL(525252525252,000000004000) PDP-10: 652525250000 JavaScript: 252525250000 @031017
|
||||
MUL(525252525252,000000004000) PDP-10: 652525250000 JavaScript: 252525250000 @031017
|
||||
MUL(525252525252,000000010000) PDP-10: 525252520000 JavaScript: 525252520000 @031032
|
||||
MUL(525252525252,000000010000) PDP-10: 525252520000 JavaScript: 525252520000 @031032
|
||||
MUL(525252525252,000000020000) PDP-10: 652525240000 JavaScript: 252525240000 @031045
|
||||
MUL(525252525252,000000020000) PDP-10: 652525240000 JavaScript: 252525240000 @031045
|
||||
MUL(525252525252,000000040000) PDP-10: 525252500000 JavaScript: 525252500000 @031060
|
||||
MUL(525252525252,000000040000) PDP-10: 525252500000 JavaScript: 525252500000 @031060
|
||||
MUL(525252525252,000000100000) PDP-10: 652525200000 JavaScript: 252525200000 @031073
|
||||
MUL(525252525252,000000100000) PDP-10: 652525200000 JavaScript: 252525200000 @031073
|
||||
MUL(525252525252,000000200000) PDP-10: 525252400000 JavaScript: 525252400000 @031106
|
||||
MUL(525252525252,000000200000) PDP-10: 525252400000 JavaScript: 525252400000 @031106
|
||||
MUL(525252525252,000000400000) PDP-10: 652525000000 JavaScript: 252525000000 @031121
|
||||
MUL(525252525252,000000400000) PDP-10: 652525000000 JavaScript: 252525000000 @031121
|
||||
MUL(525252525252,000001000000) PDP-10: 125252000000 JavaScript: 525252000000 @031134
|
||||
MUL(525252525252,000004000000) PDP-10: 125250000000 JavaScript: 525250000000 @031162
|
||||
MUL(525252525252,000020000000) PDP-10: 125240000000 JavaScript: 525240000000 @031210
|
||||
MUL(525252525252,000100000000) PDP-10: 125200000000 JavaScript: 525200000000 @031236
|
||||
MUL(525252525252,000400000000) PDP-10: 125000000000 JavaScript: 525000000000 @031264
|
||||
MUL(525252525252,002000000000) PDP-10: 124000000000 JavaScript: 524000000000 @031312
|
||||
MUL(525252525252,010000000000) PDP-10: 120000000000 JavaScript: 520000000000 @031340
|
||||
MUL(525252525252,040000000000) PDP-10: 100000000000 JavaScript: 500000000000 @031366
|
||||
MUL(525252525252,200000000000) PDP-10: 000000000000 JavaScript: 400000000000 @031414
|
||||
MUL(525252525252,400000000000) PDP-10: 000000000000 JavaScript: 000000000000 @031427
|
||||
MUL(252525252525,000000000002) PDP-10: 125252525252 JavaScript: 525252525252 @031461
|
||||
MUL(252525252525,000000000004) PDP-10: 252525252524 JavaScript: 252525252524 @031474
|
||||
MUL(252525252525,000000000010) PDP-10: 125252525250 JavaScript: 525252525250 @031507
|
||||
MUL(252525252525,000000000020) PDP-10: 252525252520 JavaScript: 252525252520 @031522
|
||||
MUL(252525252525,000000000040) PDP-10: 125252525240 JavaScript: 525252525240 @031535
|
||||
MUL(252525252525,000000000100) PDP-10: 252525252500 JavaScript: 252525252500 @031550
|
||||
MUL(252525252525,000000000200) PDP-10: 125252525200 JavaScript: 525252525200 @031563
|
||||
MUL(252525252525,000000000400) PDP-10: 252525252400 JavaScript: 252525252400 @031576
|
||||
MUL(252525252525,000000001000) PDP-10: 125252525000 JavaScript: 525252525000 @031611
|
||||
MUL(252525252525,000000002000) PDP-10: 252525252000 JavaScript: 252525252000 @031624
|
||||
MUL(252525252525,000000004000) PDP-10: 125252524000 JavaScript: 525252524000 @031637
|
||||
MUL(252525252525,000000010000) PDP-10: 252525250000 JavaScript: 252525250000 @031652
|
||||
MUL(252525252525,000000020000) PDP-10: 125252520000 JavaScript: 525252520000 @031665
|
||||
MUL(252525252525,000000040000) PDP-10: 252525240000 JavaScript: 252525240000 @031700
|
||||
MUL(252525252525,000000100000) PDP-10: 125252500000 JavaScript: 525252500000 @031713
|
||||
MUL(252525252525,000000200000) PDP-10: 252525200000 JavaScript: 252525200000 @031726
|
||||
MUL(252525252525,000000400000) PDP-10: 125252400000 JavaScript: 525252400000 @031741
|
||||
MUL(252525252525,000001000000) PDP-10: 252525000000 JavaScript: 252525000000 @031754
|
||||
MUL(252525252525,000002000000) PDP-10: 125252000000 JavaScript: 525252000000 @031767
|
||||
MUL(252525252525,000004000000) PDP-10: 252524000000 JavaScript: 252524000000 @032002
|
||||
MUL(252525252525,000010000000) PDP-10: 125250000000 JavaScript: 525250000000 @032015
|
||||
MUL(252525252525,000020000000) PDP-10: 252520000000 JavaScript: 252520000000 @032030
|
||||
MUL(252525252525,000040000000) PDP-10: 125240000000 JavaScript: 525240000000 @032043
|
||||
MUL(252525252525,000100000000) PDP-10: 252500000000 JavaScript: 252500000000 @032056
|
||||
MUL(252525252525,000200000000) PDP-10: 125200000000 JavaScript: 525200000000 @032071
|
||||
MUL(252525252525,000400000000) PDP-10: 252400000000 JavaScript: 252400000000 @032104
|
||||
MUL(252525252525,001000000000) PDP-10: 125000000000 JavaScript: 525000000000 @032117
|
||||
MUL(252525252525,002000000000) PDP-10: 252000000000 JavaScript: 252000000000 @032132
|
||||
MUL(252525252525,004000000000) PDP-10: 124000000000 JavaScript: 524000000000 @032145
|
||||
MUL(252525252525,010000000000) PDP-10: 250000000000 JavaScript: 250000000000 @032160
|
||||
MUL(252525252525,020000000000) PDP-10: 120000000000 JavaScript: 520000000000 @032173
|
||||
MUL(252525252525,040000000000) PDP-10: 240000000000 JavaScript: 240000000000 @032206
|
||||
MUL(252525252525,100000000000) PDP-10: 100000000000 JavaScript: 500000000000 @032221
|
||||
MUL(252525252525,200000000000) PDP-10: 200000000000 JavaScript: 200000000000 @032234
|
||||
MUL(252525252525,000000000002) PDP-10: 125252525252 JavaScript: 525252525252 @032301
|
||||
MUL(252525252525,000000000004) PDP-10: 252525252524 JavaScript: 252525252524 @032314
|
||||
MUL(252525252525,000000000010) PDP-10: 125252525250 JavaScript: 525252525250 @032327
|
||||
MUL(252525252525,000000000020) PDP-10: 252525252520 JavaScript: 252525252520 @032342
|
||||
MUL(252525252525,000000000040) PDP-10: 125252525240 JavaScript: 525252525240 @032355
|
||||
MUL(252525252525,000000000100) PDP-10: 252525252500 JavaScript: 252525252500 @032370
|
||||
MUL(252525252525,000000000200) PDP-10: 125252525200 JavaScript: 525252525200 @032403
|
||||
MUL(252525252525,000000000400) PDP-10: 252525252400 JavaScript: 252525252400 @032416
|
||||
MUL(252525252525,000000001000) PDP-10: 125252525000 JavaScript: 525252525000 @032431
|
||||
MUL(252525252525,000000002000) PDP-10: 252525252000 JavaScript: 252525252000 @032444
|
||||
MUL(252525252525,000000004000) PDP-10: 125252524000 JavaScript: 525252524000 @032457
|
||||
MUL(252525252525,000000010000) PDP-10: 252525250000 JavaScript: 252525250000 @032472
|
||||
MUL(252525252525,000000020000) PDP-10: 125252520000 JavaScript: 525252520000 @032505
|
||||
MUL(252525252525,000000040000) PDP-10: 252525240000 JavaScript: 252525240000 @032520
|
||||
MUL(252525252525,000000100000) PDP-10: 125252500000 JavaScript: 525252500000 @032533
|
||||
MUL(252525252525,000000200000) PDP-10: 252525200000 JavaScript: 252525200000 @032546
|
||||
MUL(252525252525,000000400000) PDP-10: 125252400000 JavaScript: 525252400000 @032561
|
||||
MUL(252525252525,000001000000) PDP-10: 252525000000 JavaScript: 252525000000 @032574
|
||||
MUL(252525252525,000002000000) PDP-10: 125252000000 JavaScript: 525252000000 @032607
|
||||
MUL(252525252525,000004000000) PDP-10: 252524000000 JavaScript: 252524000000 @032622
|
||||
MUL(252525252525,000010000000) PDP-10: 125250000000 JavaScript: 525250000000 @032635
|
||||
MUL(252525252525,000020000000) PDP-10: 252520000000 JavaScript: 252520000000 @032650
|
||||
MUL(252525252525,000040000000) PDP-10: 125240000000 JavaScript: 525240000000 @032663
|
||||
MUL(252525252525,000100000000) PDP-10: 252500000000 JavaScript: 252500000000 @032676
|
||||
MUL(252525252525,000200000000) PDP-10: 125200000000 JavaScript: 525200000000 @032711
|
||||
MUL(252525252525,000400000000) PDP-10: 252400000000 JavaScript: 252400000000 @032724
|
||||
MUL(252525252525,001000000000) PDP-10: 125000000000 JavaScript: 525000000000 @032737
|
||||
MUL(252525252525,002000000000) PDP-10: 252000000000 JavaScript: 252000000000 @032752
|
||||
MUL(252525252525,004000000000) PDP-10: 124000000000 JavaScript: 524000000000 @032765
|
||||
MUL(252525252525,010000000000) PDP-10: 250000000000 JavaScript: 250000000000 @033000
|
||||
MUL(252525252525,020000000000) PDP-10: 120000000000 JavaScript: 520000000000 @033013
|
||||
MUL(252525252525,040000000000) PDP-10: 240000000000 JavaScript: 240000000000 @033026
|
||||
MUL(252525252525,100000000000) PDP-10: 100000000000 JavaScript: 500000000000 @033041
|
||||
MUL(252525252525,200000000000) PDP-10: 200000000000 JavaScript: 200000000000 @033054
|
||||
MUL(252525252525,400000000000) PDP-10: 000000000000 JavaScript: 400000000000 @033067
|
||||
MUL(000001000000,000001000000) PDP-10: 000000000000 JavaScript: 000000000000 @033414
|
||||
MUL(000002000000,000002000000) PDP-10: 000000000000 JavaScript: 000000000000 @033427
|
||||
MUL(000004000000,000004000000) PDP-10: 000000000000 JavaScript: 000000000000 @033442
|
||||
MUL(000010000000,000010000000) PDP-10: 000000000000 JavaScript: 000000000000 @033455
|
||||
MUL(000020000000,000020000000) PDP-10: 000000000000 JavaScript: 000000000000 @033470
|
||||
MUL(000040000000,000040000000) PDP-10: 000000000000 JavaScript: 000000000000 @033503
|
||||
MUL(000100000000,000100000000) PDP-10: 000000000000 JavaScript: 000000000000 @033516
|
||||
MUL(000200000000,000200000000) PDP-10: 000000000000 JavaScript: 000000000000 @033531
|
||||
MUL(000400000000,000400000000) PDP-10: 000000000000 JavaScript: 000000000000 @033544
|
||||
MUL(001000000000,001000000000) PDP-10: 000000000000 JavaScript: 000000000000 @033557
|
||||
MUL(002000000000,002000000000) PDP-10: 000000000000 JavaScript: 000000000000 @033572
|
||||
MUL(004000000000,004000000000) PDP-10: 000000000000 JavaScript: 000000000000 @033605
|
||||
MUL(010000000000,010000000000) PDP-10: 000000000000 JavaScript: 000000000000 @033620
|
||||
MUL(020000000000,020000000000) PDP-10: 000000000000 JavaScript: 000000000000 @033633
|
||||
MUL(040000000000,040000000000) PDP-10: 000000000000 JavaScript: 000000000000 @033646
|
||||
MUL(100000000000,100000000000) PDP-10: 000000000000 JavaScript: 000000000000 @033661
|
||||
MUL(200000000000,200000000000) PDP-10: 000000000000 JavaScript: 000000000000 @033674
|
||||
MUL(400000000000,400000000000) PDP-10: 000000000000 JavaScript: 000000000000 @033707
|
||||
MUL(400000000000,400000000000) PDP-10: 000000000000 JavaScript: 000000000000 @033707
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @033726
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @033726
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @033741
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @033741
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @033754
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @033754
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @033767
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @033767
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034002
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034002
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034015
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034015
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034030
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034030
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034043
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034043
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034056
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034056
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034071
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034071
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034104
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034104
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034117
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034117
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034132
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034132
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034145
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034145
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034160
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034160
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034173
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034173
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034206
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034206
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034221
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034221
|
||||
MUL(777776777777,777776777777) PDP-10: 000002000001 JavaScript: 000002000001 @034234
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034234
|
||||
MUL(000000777777,000000777777) PDP-10: 377776000001 JavaScript: 777776000001 @034234
|
||||
MUL(777775777777,777775777777) PDP-10: 000004000001 JavaScript: 000004000001 @034247
|
||||
MUL(000000777776,000000777776) PDP-10: 377774000004 JavaScript: 777774000004 @034247
|
||||
MUL(000000777776,000000777776) PDP-10: 377774000004 JavaScript: 777774000004 @034247
|
||||
MUL(777773777777,777773777777) PDP-10: 000010000001 JavaScript: 000010000001 @034262
|
||||
MUL(000000777774,000000777774) PDP-10: 377770000020 JavaScript: 777770000020 @034262
|
||||
MUL(000000777774,000000777774) PDP-10: 377770000020 JavaScript: 777770000020 @034262
|
||||
MUL(777767777777,777767777777) PDP-10: 000020000001 JavaScript: 000020000001 @034275
|
||||
MUL(000000777770,000000777770) PDP-10: 377760000100 JavaScript: 777760000100 @034275
|
||||
MUL(000000777770,000000777770) PDP-10: 377760000100 JavaScript: 777760000100 @034275
|
||||
MUL(777757777777,777757777777) PDP-10: 000040000001 JavaScript: 000040000001 @034310
|
||||
MUL(000000777760,000000777760) PDP-10: 377740000400 JavaScript: 777740000400 @034310
|
||||
MUL(000000777760,000000777760) PDP-10: 377740000400 JavaScript: 777740000400 @034310
|
||||
MUL(777737777777,777737777777) PDP-10: 000100000001 JavaScript: 000100000001 @034323
|
||||
MUL(000000777740,000000777740) PDP-10: 377700002000 JavaScript: 777700002000 @034323
|
||||
MUL(000000777740,000000777740) PDP-10: 377700002000 JavaScript: 777700002000 @034323
|
||||
MUL(777677777777,777677777777) PDP-10: 000200000001 JavaScript: 000200000001 @034336
|
||||
MUL(000000777700,000000777700) PDP-10: 377600010000 JavaScript: 777600010000 @034336
|
||||
MUL(000000777700,000000777700) PDP-10: 377600010000 JavaScript: 777600010000 @034336
|
||||
MUL(777577777777,777577777777) PDP-10: 000400000001 JavaScript: 000400000001 @034351
|
||||
MUL(000000777600,000000777600) PDP-10: 377400040000 JavaScript: 777400040000 @034351
|
||||
MUL(000000777600,000000777600) PDP-10: 377400040000 JavaScript: 777400040000 @034351
|
||||
MUL(777377777777,777377777777) PDP-10: 001000000001 JavaScript: 001000000001 @034364
|
||||
MUL(000000777400,000000777400) PDP-10: 377000200000 JavaScript: 777000200000 @034364
|
||||
MUL(000000777400,000000777400) PDP-10: 377000200000 JavaScript: 777000200000 @034364
|
||||
MUL(776777777777,776777777777) PDP-10: 002000000000 JavaScript: 002000000000 @034377
|
||||
MUL(000000777000,000000777000) PDP-10: 376001000000 JavaScript: 776001000000 @034377
|
||||
MUL(000000777000,000000777000) PDP-10: 376001000000 JavaScript: 776001000000 @034377
|
||||
MUL(775777777777,775777777777) PDP-10: 004000000000 JavaScript: 004000000000 @034412
|
||||
MUL(000000776000,000000776000) PDP-10: 374004000000 JavaScript: 774004000000 @034412
|
||||
MUL(000000776000,000000776000) PDP-10: 374004000000 JavaScript: 774004000000 @034412
|
||||
MUL(773777777777,773777777777) PDP-10: 010000000000 JavaScript: 010000000000 @034425
|
||||
MUL(000000774000,000000774000) PDP-10: 370020000000 JavaScript: 770020000000 @034425
|
||||
MUL(000000774000,000000774000) PDP-10: 370020000000 JavaScript: 770020000000 @034425
|
||||
MUL(767777777777,767777777777) PDP-10: 020000000000 JavaScript: 020000000000 @034440
|
||||
MUL(000000770000,000000770000) PDP-10: 360100000000 JavaScript: 760100000000 @034440
|
||||
MUL(000000770000,000000770000) PDP-10: 360100000000 JavaScript: 760100000000 @034440
|
||||
MUL(757777777777,757777777777) PDP-10: 040000000000 JavaScript: 040000000000 @034453
|
||||
MUL(000000760000,000000760000) PDP-10: 340400000000 JavaScript: 740400000000 @034453
|
||||
MUL(000000760000,000000760000) PDP-10: 340400000000 JavaScript: 740400000000 @034453
|
||||
MUL(737777777777,737777777777) PDP-10: 100000000000 JavaScript: 100000000000 @034466
|
||||
MUL(000000740000,000000740000) PDP-10: 302000000000 JavaScript: 702000000000 @034466
|
||||
MUL(000000740000,000000740000) PDP-10: 302000000000 JavaScript: 702000000000 @034466
|
||||
MUL(677777777777,677777777777) PDP-10: 200000000000 JavaScript: 200000000000 @034501
|
||||
MUL(000000700000,000000700000) PDP-10: 210000000000 JavaScript: 610000000000 @034501
|
||||
MUL(000000700000,000000700000) PDP-10: 210000000000 JavaScript: 610000000000 @034501
|
||||
MUL(577777777777,577777777777) PDP-10: 000000000000 JavaScript: 400000000000 @034514
|
||||
MUL(000000600000,000000600000) PDP-10: 040000000000 JavaScript: 440000000000 @034514
|
||||
MUL(377777777777,377777777777) PDP-10: 000000000001 JavaScript: 000000000000 @034527
|
||||
MUL(000001000000,777776777777) PDP-10: 377777000000 JavaScript: 777777000000 @035054
|
||||
MUL(000002000000,777775777777) PDP-10: 377776000000 JavaScript: 777776000000 @035067
|
||||
MUL(000004000000,777773777777) PDP-10: 377774000000 JavaScript: 777774000000 @035102
|
||||
MUL(000010000000,777767777777) PDP-10: 377770000000 JavaScript: 777770000000 @035115
|
||||
MUL(000020000000,777757777777) PDP-10: 377760000000 JavaScript: 777760000000 @035130
|
||||
MUL(000040000000,777737777777) PDP-10: 377740000000 JavaScript: 777740000000 @035143
|
||||
MUL(000100000000,777677777777) PDP-10: 377700000000 JavaScript: 777700000000 @035156
|
||||
MUL(000200000000,777577777777) PDP-10: 377600000000 JavaScript: 777600000000 @035171
|
||||
MUL(000400000000,777377777777) PDP-10: 377400000000 JavaScript: 777400000000 @035204
|
||||
MUL(001000000000,776777777777) PDP-10: 377000000000 JavaScript: 777000000000 @035217
|
||||
MUL(002000000000,775777777777) PDP-10: 376000000000 JavaScript: 776000000000 @035232
|
||||
MUL(004000000000,773777777777) PDP-10: 374000000000 JavaScript: 774000000000 @035245
|
||||
MUL(010000000000,767777777777) PDP-10: 370000000000 JavaScript: 770000000000 @035260
|
||||
MUL(020000000000,757777777777) PDP-10: 360000000000 JavaScript: 760000000000 @035273
|
||||
MUL(040000000000,737777777777) PDP-10: 340000000000 JavaScript: 740000000000 @035306
|
||||
MUL(100000000000,677777777777) PDP-10: 300000000000 JavaScript: 700000000000 @035321
|
||||
MUL(200000000000,577777777777) PDP-10: 200000000000 JavaScript: 600000000000 @035334
|
||||
MUL(400000000000,377777777777) PDP-10: 000000000000 JavaScript: 400000000000 @035347
|
||||
MUL(000001000000,777776777777) PDP-10: 377777000000 JavaScript: 777777000000 @035674
|
||||
MUL(000002000000,777775777777) PDP-10: 377776000000 JavaScript: 777776000000 @035707
|
||||
MUL(000004000000,777773777777) PDP-10: 377774000000 JavaScript: 777774000000 @035722
|
||||
MUL(000010000000,777767777777) PDP-10: 377770000000 JavaScript: 777770000000 @035735
|
||||
MUL(000020000000,777757777777) PDP-10: 377760000000 JavaScript: 777760000000 @035750
|
||||
MUL(000040000000,777737777777) PDP-10: 377740000000 JavaScript: 777740000000 @035763
|
||||
MUL(000100000000,777677777777) PDP-10: 377700000000 JavaScript: 777700000000 @035776
|
||||
MUL(000200000000,777577777777) PDP-10: 377600000000 JavaScript: 777600000000 @036011
|
||||
MUL(000400000000,777377777777) PDP-10: 377400000000 JavaScript: 777400000000 @036024
|
||||
MUL(001000000000,776777777777) PDP-10: 377000000000 JavaScript: 777000000000 @036037
|
||||
MUL(002000000000,775777777777) PDP-10: 376000000000 JavaScript: 776000000000 @036052
|
||||
MUL(004000000000,773777777777) PDP-10: 374000000000 JavaScript: 774000000000 @036065
|
||||
MUL(010000000000,767777777777) PDP-10: 370000000000 JavaScript: 770000000000 @036100
|
||||
MUL(020000000000,757777777777) PDP-10: 360000000000 JavaScript: 760000000000 @036113
|
||||
MUL(040000000000,737777777777) PDP-10: 340000000000 JavaScript: 740000000000 @036126
|
||||
MUL(100000000000,677777777777) PDP-10: 300000000000 JavaScript: 700000000000 @036141
|
||||
MUL(200000000000,577777777777) PDP-10: 200000000000 JavaScript: 600000000000 @036154
|
||||
MUL(000000000010,377777777777) PDP-10: 377777777770 JavaScript: 777777777770 @000000
|
||||
MUL(000000000020,377777777777) PDP-10: 377777777760 JavaScript: 777777777760 @000000
|
||||
|
||||
---
|
||||
|
||||
DAKAL.TXT
|
||||
|
|
|
|||
|
|
@ -6326,6 +6326,8 @@ PDP10.doDIV = function(dst, ext, src)
|
|||
* PDP-10 "DAKAK" Diagnostic Notes
|
||||
* -------------------------------
|
||||
*
|
||||
* The DAKAK diagnostic contains the following code:
|
||||
*
|
||||
* 036174: 200240 043643 MOVE 5,43643 ; [43643] = 400000000000
|
||||
* 036175: 200300 043603 MOVE 6,43603 ; [43603] = 777777777777
|
||||
* 036176: 200140 043604 MOVE 3,43604 ; [43604] = 000000000001
|
||||
|
|
|
|||
|
|
@ -519,7 +519,16 @@ class DebuggerPDP10 extends Debugger {
|
|||
*/
|
||||
evalMUL(dst, src)
|
||||
{
|
||||
return PDP10.doMUL.call(this.cpu, dst, src, false, true);
|
||||
var result = PDP10.doMUL.call(this.cpu, dst, src, false, true);
|
||||
if (MAXDEBUG) {
|
||||
var resultJS = this.truncate(dst * src);
|
||||
if (resultJS !== result) {
|
||||
var sReference = this.macro10? (" @" + this.toStrBase(this.macro10.nLocation)) : "";
|
||||
var sResults = "PDP-10: " + this.toStrBase(result, 36) + " JavaScript: " + this.toStrBase(resultJS, 36);
|
||||
this.println("MUL(" + this.toStrBase(dst, 36) + "," + this.toStrBase(src, 36) + ") " + sResults + sReference);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue