console
This emulator follows on from my earlier PDP-11 emulator and was written after considerable prompting by various people. Thanks guys.
For several years I was one of the system programmers for the KI10 at La Trobe University in Melbourne Australia. I did get to play with the console panel a couple of times but normally the system was under the control of dedicated operating staff - we weren't supposed to touch. This computer had its own dedicated computer room and provided computing for the Research, Teaching and the Administrative needs of the University. The user base was rather diverse with everyone using RUNOFF to prepare documents, researchers writing programs in FORTRAN, LISP or PROLOG or using statistical packages like SPSS, while administrative programmers produced COBOL applications for payroll, finance and student records. Students seem to dable with everything.
My main memory from using the system was the lack of recovery in any of the editors, combined with the frequency of reboots caused by system faults or power failures. It became rather common to remind yourself or others to save the current document. Even though that sounds bad I remember sometimes looking forward to making improvements in the code or document as I typed it in the next time.
Eventually the KI10 was replaced by several VAXes. These were faster, cheaper and more reliable. However they didn't initially have the software maturity of the KI10 and never really provided environments such as LISP and PROLOG the way the PDP-10 did. It was a very sad day when all of the cabinets of the PDP-10 were craned onto a truck and taken away for scrap.
Writing an emulator for a 36-bit computer in Javascript has special challenges because Javascript provides only 32-bit bit operations. In addition some operands on a KI10 may be up to 71 bits long. As a result bit testing and manipulation must be done with the help of other operators such as division and modulo, and some operands must be split into multiple parts. I hate to think what this does for performance. However if you do encounter performance issues then please consider upgrading your PC. They are significantly faster and cheaper than a real DECsystem-10 and just imagine the savings in power consumption!
Happy emulating
Paul Nankervis
Please note that this emulator is incomplete. Not all floating point instructions are fully operational and what is there still requires simplification, clean up and testing. This is a one person part time hobby project so you will have to be patient.
This emulator simulates a PDP-10 KI10 running TOPS-10 v6.03A from four RP03 disks, similar to the La Trobe University machine. The operating system is built from software and automated scripts provided by Richard Cornwell at http://www.sky-visions.com/dec/. The login password for account 1,2 is 'FAILSA'. Suggestions for changes or improvements to the emulator can be made by email, but please be aware this is a resource constrained hobby project.
Paul Nankervis - paulnank@hotmail.com Boot> boot dpa0 Press RETURN to continue loading BOOTS... <CR> KI603 04-21-78 WHY RELOAD: sched DATE: 13-dec-78 TIME: 1121 STARTUP OPTION: quick %CONTROLLER RPA IS OFF-LINE %CONTROLLER RPB IS OFF-LINE %CONTROLLER DPB IS OFF-LINE KI603 11:21:06 CTY system 514 .LOGIN 1,2 JOB 1 KI603 CTY Password: failsa 1121 13-Dec-78 Wed .TTY LC WIDTH 132 .dir BACKUP EXE 103 <057> 21-Apr-78 2(216) DSKB: [1,2] OPR BAK 3 <057> 21-Apr-78 JOBDAT REL 1 <057> 21-Apr-78 OPR ATO 3 <057> 21-Apr-78 SYSTEM EXE 800 <057> 21-Apr-78 603A(20116) Total of 910 blocks in 5 files on DSKB: [1,2] .r basic READY, FOR HELP TYPE HELP. 10 print "Hello world" 90 end run NONAME 11:21 13-DEC-78 Hello world TIME: 0.00 SECS. READY save myprog READY system EXIT .sos test.for Input: TEST.FOR 00100 write(5,10) 00200 10 format(12H Hello World) 00300 90 end 00400 <ESC> *e [DSKB:TEST.FOR] .r fortran *test,test=test MAIN. *^Z .execute test LINK: Loading [LNKXCT TEST Execution] Hello World END OF EXECUTION CPU TIME: 0.00 ELAPSED TIME: 0.00 EXIT .r pip *boot.mac=tt: ; Javascript PDP KI10 Emulator v1.0 ; written by Paul Nankervis ; Please send suggestions, fixes and feedback to paulnank@hotmail.com ...... stack: end start ^Z *^C .r macro *boot,boot=boot NO ERRORS DETECTED PROGRAM BREAK IS 000000 ABSOLUTE BREAK IS 037371 CPU TIME USED 00:00.600 8P CORE USED *^Z .load boot LINK: Loading EXIT .save boot.sav BOOT saved .r convrt PDP-10 DIAGNOSTIC ASCIIZER CONVERSION PROGRAM VERSION 030.000 TYPE /H<CR> FOR HELP FILE: boot.sav CONVERTING COMPLETED, BLOCKS = 3 EXIT .type boot.a10 Z A,Cx@,Cy,LDF T I,AP,Cx@,Ood,,C{y,,,,FH@,E,BSE T C,A[,C??,Oo`,,LOC T ^,Cx@,,HA,N,AD@,X@,N,,F`@,E,C{x,>@,D,Czu,d@,D,CyG,H^@,E,Cz>,d@,D,CyG,H^@,E,,j@,D,C{x,H@,D,Hnq ... T R,C{o,CyD,,,CyP,,,H@@,IP`,H,H@@,KT`,I,C{q,\@,I,C{r,\@,I,F|e T F,C{v,Cyq,,,CzM,,,DPF T C,C{x,P@,\@,I,KW| T ,Cx@,LH@ .dir BACKUP EXE 103 <057> 21-Apr-78 2(216) DSKB: [1,2] OPR BAK 3 <057> 21-Apr-78 JOBDAT REL 1 <057> 21-Apr-78 OPR ATO 3 <057> 21-Apr-78 SYSTEM EXE 800 <057> 21-Apr-78 603A(20116) MYPROG BAS 1 <157> 13-Dec-78 TEST FOR 1 <057> 13-Dec-78 TEST LST 1 <057> 13-Dec-78 TEST REL 1 <057> 13-Dec-78 BOOT MAC 14 <057> 13-Dec-78 BOOT REL 4 <057> 13-Dec-78 BOOT LST 26 <057> 13-Dec-78 BOOT SAV 3 <057> 13-Dec-78 BOOT A10 5 <057> 13-Dec-78 Total of 966 blocks in 14 files on DSKB: [1,2] .sys Status of KI603 at 11:25:28 on 13-Dec-78 Uptime 4:22, 98%Null time = 98%Idle + 0%Lost 1 Jobs in use out of 64. 1 logged in, 0 detached out of 64. (LOGMAX) Job Who Line# What Size(P) State Run Time 1 [OPR] CTY SYSTAT 14+SPY RN 3 Swapping space used = 0/1024 = 0% Virt. Core used = 14/1024 = 1% 8002P Core left Active swapping ratio = 14/8016 = 0.0 Average job size =14/1 = 14.0P+0/1 = 0.0P Total=14/1 = 14.0P No busy devices 1 disk DDBs System File Structures: Name Free Mount DSKB 137857 2 Total Free 137857 HAPPY BIRTHDAY BILL HARDY .kjob/f Job 1, User [1,2] Logged off CTY 1125 13-Dec-78 Runtime 3.09 Sec .
Home