Beta DPS8/M simulator + Multics 12.6f


Magic Sam

Forever Homebrew
Joined
Aug 10, 2007
Messages
2,253
Age
38
Location
Innsmouth, MA
Hi all :)

With a lot of help from Charles Anthony (one of the authors) and Vincent Scarafino (who ported the simulator to the Raspberry Pi), I have compiled the DPS8/M simulator on the Pandora:

http://multicians.org/simulator.html
https://sourceforge.net/projects/dps8m/

Grab it on the Repo while it's hot !

http://repo.openpandora.org/?page=detail&app=multics-magicsam

New in build #1

- DPS8/M simulator (32bit_new branch, latest git commit on July the 23rd)
- Libuv (from git)
- prt2pdf is in the bin directory: it converts simulated printed files to PDF
- Compiled with @ptitSeb 's latest beta Code::Blocks (GCC 7.1, all opimizations are ON)
- I wrote a simple zenity script to help you download / unpack the latest 12.6f Multics release (~120MB, ~570MB unzipped)

TODO:

- Find / make a better icon (fixed in build #2)
- Provide a better description (fixed in build #2)
- Add more previews
- Add the source code (fixed in build #2)

KNOWN BUGS:

- "instr_speed" (benchmark) doesn't work (the Pandora is too slow :( ) (see below)
- This "32bit_new" branch is pretty much untested, things will break

WHY ?

Because with this simulator, one can run the latest 12.6f Multics release on the Pandora :D

HOWTO:

http://swenson.org/multics_wiki/index.php?title=Getting_Started#Using_the_Multics_QuickStart

/!\ This application will have your Pandora's CPU and RAM for breakfast: overclock accordingly, and use some swap file /!\

* Click on the Multics icon in the Education menu (XFCE)

* If you don't already have Multics 12.6f installed, a simple zenity script will take care of that for you :)

* Be patient ! It takes 5+ minutes to boot...

* Wait until you see the following lines appear in your Multics Operator Console:
0939.3 RCP: Attached tapa_00 for Utility.SysDaemon.z
0939.3 RCP: Detached tapa_00 from Utility.SysDaemon.z
0939.3 RCP: Attached rdra for Utility.SysDaemon.z
0939.3 RCP: Detached rdra from Utility.SysDaemon.z
0939.3 RCP: Attached puna for Utility.SysDaemon.z
0939.3 RCP: Detached puna from Utility.SysDaemon.z
0939.3 RCP: Attached prta for Utility.SysDaemon.z
0939.3 RCP: Detached prta from Utility.SysDaemon.z
* Then, open a new terminal, and type:
telnet localhost 6180
* You'll be asked to choose a communication channel: just pick the first available one by pressing ENTER.

* Log in as "Repair" and change your password (default is "repair")
login Repair -cpw
When you are done, log off your "Repair" session (use the "logout" command), then follow this procedure to shutdown Multics (from the Operator Console):

http://swenson.org/multics_wiki/index.php?title=Using_Multics#Shutting_Down_Multics

Cheers, Magic Sam
 
Last edited:

Magic Sam

Forever Homebrew
Joined
Aug 10, 2007
Messages
2,253
Age
38
Location
Innsmouth, MA
Hi all :)

Charles Anthony told me how to fix the "instr_speed" issue:
Hot patch instructions:

Login as repair

[Fetch some source code:]

ac x >ldd>tools>s>bound_system_test_.s test_speed.alm

[Invoke an editor; it does not prompt]

qedx

[Read the source into the buffer]

r test_speed.alm

[Search for the code to be changed]

/instr_limit:/

[Multiply the time limits by 10]

.+1,.+15 s/00/000/

[Print the changed values]

.-15,.p

[should display:]

instr_limit:

dec 12000

dec 14000

dec 9000

dec 14000

dec 20000

dec 21000

dec 29000

dec 28000

dec 20000

dec 29000

dec 28000

dec 17000

dec 12000

dec 9000

dec 24000

[Save the changes]

w

[Quit the editor]

q

[Assemble the code]

alm test_speed

[Get the already compiled bits]

cp >ldd>tools>o>bound_system_test_.archive

[Move the patched code into the archive]

ac ud bound_system_test_ test_speed

[Bind the object files]

bind bound_system_test_

[Run the new executable]

[pwd]>instr_speed

Cheers, Magic Sam
 

Magic Sam

Forever Homebrew
Joined
Aug 10, 2007
Messages
2,253
Age
38
Location
Innsmouth, MA
Hi all !

@unused0 : welcome Charles ! And sorry for giving you too much credit (edited my first post) :p

Cheers, Magic Sam
[doublepost=1501612021,1501611365][/doublepost]@unused0: I see there's a lot of activity in the "rc9" branch. Will it lead to a new dps8/m 2.0 version soon ?

Cheers, Magic Sam
[doublepost=1501612397][/doublepost]And here are the results of "instr_speed" on my Rebirth @ 3 different clock speeds:

* 600 MHz
[pwd]>instr_speed
INSTRUCTION SPEED TEST -- 07/31/17 1005.2 pst Mon


* * * * * * * * * * * * * * * * * * * * * *


TEST 1: (lda/sta - even/odd)

MIPS AVE = 0.309, TIME AVE = 3409, 3236 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 2: (lda/sta - odd/even)

MIPS AVE = 0.302, TIME AVE = 3554, 3312 NANOSECONDS
PF = 0, LS = 1, CUTOFF = 14000

* * * * * * * * * * * * * * * * * * * * * *


TEST 3: (lda/lda/lda...)

MIPS AVE = 0.315, TIME AVE = 3347, 3173 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 4: (lda/sta - even/odd bit29)

MIPS AVE = 0.279, TIME AVE = 3881, 3582 NANOSECONDS
PF = 0, LS = 1, CUTOFF = 14000

* * * * * * * * * * * * * * * * * * * * * *


TEST 5: (eppbp/spribp - even/odd)

MIPS AVE = 0.347, TIME AVE = 3049, 2884 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 6: (eppbp/spribp - odd/even)

MIPS AVE = 0.338, TIME AVE = 3310, 2960 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 7: (eppbp/spribp - even/odd indirect)

MIPS AVE = 0.275, TIME AVE = 3818, 3631 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 8: (eppbp/spribp - odd/even indirect)

MIPS AVE = 0.265, TIME AVE = 4231, 3775 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 9: (eppbp/spribp - even/odd bit29)

MIPS AVE = 0.315, TIME AVE = 3550, 3176 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 10: (eppbp/spribp - even/odd bit29ind)

MIPS AVE = 0.255, TIME AVE = 4208, 3924 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 11: (eppbp/spribp - odd/even bit29ind)

MIPS AVE = 0.261, TIME AVE = 4027, 3832 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 12: (random mix)

MIPS AVE = 0.279, TIME AVE = 4039, 3582 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 13: (lda 0,du...)

MIPS AVE = 0.416, TIME AVE = 2552, 2405 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 14: (nop 0,du...)

MIPS AVE = 0.409, TIME AVE = 2592, 2444 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 15: (lprpbp/sprpbp - even/odd bit29)

MIPS AVE = 0.311, TIME AVE = 3448, 3214 NANOSECONDS
r 10:05 13.512 2

* 825 MHz
[pwd]>instr_speed
INSTRUCTION SPEED TEST -- 07/31/17 1017.7 pst Mon


* * * * * * * * * * * * * * * * * * * * * *


TEST 1: (lda/sta - even/odd)

MIPS AVE = 0.428, TIME AVE = 2470, 2338 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 2: (lda/sta - odd/even)

MIPS AVE = 0.417, TIME AVE = 2673, 2400 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 3: (lda/lda/lda...)

MIPS AVE = 0.433, TIME AVE = 2475, 2311 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 4: (lda/sta - even/odd bit29)

MIPS AVE = 0.400, TIME AVE = 2639, 2503 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 5: (eppbp/spribp - even/odd)

MIPS AVE = 0.469, TIME AVE = 2557, 2133 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 6: (eppbp/spribp - odd/even)

MIPS AVE = 0.491, TIME AVE = 2161, 2036 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 7: (eppbp/spribp - even/odd indirect)

MIPS AVE = 0.386, TIME AVE = 2732, 2591 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 8: (eppbp/spribp - odd/even indirect)

MIPS AVE = 0.372, TIME AVE = 2998, 2685 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 9: (eppbp/spribp - even/odd bit29)

MIPS AVE = 0.455, TIME AVE = 2325, 2197 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 10: (eppbp/spribp - even/odd bit29ind)

MIPS AVE = 0.364, TIME AVE = 2895, 2749 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 11: (eppbp/spribp - odd/even bit29ind)

MIPS AVE = 0.358, TIME AVE = 2969, 2790 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 12: (random mix)

MIPS AVE = 0.401, TIME AVE = 2690, 2494 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 13: (lda 0,du...)

MIPS AVE = 0.572, TIME AVE = 1866, 1749 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 14: (nop 0,du...)

MIPS AVE = 0.557, TIME AVE = 2007, 1794 NANOSECONDS
PF = 0, LS = 3, CUTOFF = 9000

* * * * * * * * * * * * * * * * * * * * * *


TEST 15: (lprpbp/sprpbp - even/odd bit29)

MIPS AVE = 0.440, TIME AVE = 2407, 2274 NANOSECONDS
r 10:17 9.485 2

* 1 GHz
[pwd]>instr_speed
INSTRUCTION SPEED TEST -- 07/31/17 1021.7 pst Mon


* * * * * * * * * * * * * * * * * * * * * *


TEST 1: (lda/sta - even/odd)

MIPS AVE = 0.517, TIME AVE = 2095, 1935 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 2: (lda/sta - odd/even)

MIPS AVE = 0.519, TIME AVE = 2041, 1926 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 3: (lda/lda/lda...)

MIPS AVE = 0.536, TIME AVE = 1979, 1865 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 4: (lda/sta - even/odd bit29)

MIPS AVE = 0.487, TIME AVE = 2171, 2052 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 5: (eppbp/spribp - even/odd)

MIPS AVE = 0.594, TIME AVE = 1822, 1684 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 6: (eppbp/spribp - odd/even)

MIPS AVE = 0.579, TIME AVE = 2108, 1727 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 7: (eppbp/spribp - even/odd indirect)

MIPS AVE = 0.464, TIME AVE = 2277, 2153 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 8: (eppbp/spribp - odd/even indirect)

MIPS AVE = 0.461, TIME AVE = 2370, 2170 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 9: (eppbp/spribp - even/odd bit29)

MIPS AVE = 0.547, TIME AVE = 1952, 1828 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 10: (eppbp/spribp - even/odd bit29ind)

MIPS AVE = 0.441, TIME AVE = 2393, 2268 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 11: (eppbp/spribp - odd/even bit29ind)

MIPS AVE = 0.429, TIME AVE = 2616, 2331 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 12: (random mix)

MIPS AVE = 0.481, TIME AVE = 2264, 2078 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 13: (lda 0,du...)

MIPS AVE = 0.710, TIME AVE = 1506, 1408 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 14: (nop 0,du...)

MIPS AVE = 0.701, TIME AVE = 1520, 1426 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 15: (lprpbp/sprpbp - even/odd bit29)

MIPS AVE = 0.534, TIME AVE = 1986, 1872 NANOSECONDS
r 10:21 7.777 2

Here are Vincent Scarafino's results on his Raspberry Pi 2 for comparison:

http://multicians.org/vfs-simulator.html

Cheers, Magic Sam
 
Last edited:

Magic Sam

Forever Homebrew
Joined
Aug 10, 2007
Messages
2,253
Age
38
Location
Innsmouth, MA
Hi all :)

Build #2 is on the Repo !

http://repo.openpandora.org/?page=detail&app=multics-magicsam

New in build #2
- Updated DPS8/M simulator (rc9 branch, latest git commit on August 10th 2017)
- Updated libuv (latest git commit on August 08th 2017)
- Compiled with @ptitSeb 's latest beta Code::Blocks
- Multics 12.6f is downloaded from sourceforge.net (instead of Amazon S3)
- New red and black icon
- New preview picture of a 6180 mainframe computer
- Added all source codes to src directory
Cheers, Magic Sam
 
Last edited:

Magic Sam

Forever Homebrew
Joined
Aug 10, 2007
Messages
2,253
Age
38
Location
Innsmouth, MA
Hi all,

This new build often crashes with the following error message:
DBG(47530170984907)> ERR ERR: Need status register data format
DBG(47530170984955)> ERR ERR: doPayloadChan expected IDCW 10 (12)
CONSOLE: ALERT
sys_trouble: Fault in idle process.
bce (crash) 0032.6: M->
I'm investigating...

Cheers, Magic Sam
 

Magic Sam

Forever Homebrew
Joined
Aug 10, 2007
Messages
2,253
Age
38
Location
Innsmouth, MA
Hi all,

That "fault in idle process" issue should now be fixed upstream, in the "tr_work" branch.

I'll update this package ASAP.

Cheers, Magic Sam
 
Top