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."
|
This diagnostic "TESTS THE MULTIPLY INSTRUCTION AND THE MULTIPLY ALGORITHM."
|
||||||
|
|
||||||
Resources for this diagnostic include:
|
Information regarding this diagnostic includes:
|
||||||
|
|
||||||
|
- [Issues](#issues)
|
||||||
- [Instructions](#dakaktxt)
|
- [Instructions](#dakaktxt)
|
||||||
- [History](#dakakhst)
|
- [History](#dakakhst)
|
||||||
- [Source Code](#dakakmac)
|
- [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'"}');
|
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
|
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
|
This diagnostic "TESTS THE MULTIPY, INTERGER MULIPLY, DIVIDE AND INTERGER DIVIDE INSTRUCTIONS." Hopefully the tests work better
|
||||||
than their spell-checking.
|
than their spell-checking.
|
||||||
|
|
||||||
Resources for this diagnostic include:
|
Information regarding this diagnostic includes:
|
||||||
|
|
||||||
|
- [Issues](#issues)
|
||||||
- [Instructions](#dakaltxt)
|
- [Instructions](#dakaltxt)
|
||||||
- [History](#dakalhst)
|
- [History](#dakalhst)
|
||||||
- [Source Code](#dakalmac)
|
- [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)),
|
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.
|
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
|
DAKAL.TXT
|
||||||
|
|
|
||||||
|
|
@ -6326,6 +6326,8 @@ PDP10.doDIV = function(dst, ext, src)
|
||||||
* PDP-10 "DAKAK" Diagnostic Notes
|
* PDP-10 "DAKAK" Diagnostic Notes
|
||||||
* -------------------------------
|
* -------------------------------
|
||||||
*
|
*
|
||||||
|
* The DAKAK diagnostic contains the following code:
|
||||||
|
*
|
||||||
* 036174: 200240 043643 MOVE 5,43643 ; [43643] = 400000000000
|
* 036174: 200240 043643 MOVE 5,43643 ; [43643] = 400000000000
|
||||||
* 036175: 200300 043603 MOVE 6,43603 ; [43603] = 777777777777
|
* 036175: 200300 043603 MOVE 6,43603 ; [43603] = 777777777777
|
||||||
* 036176: 200140 043604 MOVE 3,43604 ; [43604] = 000000000001
|
* 036176: 200140 043604 MOVE 3,43604 ; [43604] = 000000000001
|
||||||
|
|
|
||||||
|
|
@ -519,7 +519,16 @@ class DebuggerPDP10 extends Debugger {
|
||||||
*/
|
*/
|
||||||
evalMUL(dst, src)
|
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