rcornwell / sims Goto Github PK
View Code? Open in Web Editor NEWBurroughs B5500, ICL1900, SEL32, IBM 360/370, IBM 7000 and DEC PDP10 KA10/KI10/KL10/KS10, PDP6 simulators for SimH
Home Page: http://sky-visions.com
Burroughs B5500, ICL1900, SEL32, IBM 360/370, IBM 7000 and DEC PDP10 KA10/KI10/KL10/KS10, PDP6 simulators for SimH
Home Page: http://sky-visions.com
Booting DOS/360 give file not found. Tracing indicates that the file is being deleted.
Systems Concepts disk controller, used on MIT-AI.
This is quite optional. The RP10 controller works well.
Noel Chiappa wants to work with us to document the DL10 in this page:
http://gunkies.org/wiki/DL10
I'm opening a separate issue for this.
I seem to have this working, but I'm not sure how to best implement it.
There's a failure doing the final DUMP in the ITS build. The error message is Improper thread context for operation
and then the simulator dies. Full log in https://travis-ci.org/PDP-10/its/jobs/350579354
I'll look into this, but I'm also posting it here in case you have any idea what it can be.
Log excerpt:
LIBMAX
706 LIBMAX .FILE. (DIR) 0 3/7/2018 23:59:17.5
707 LIBMAX DEFINE 65 2 3/7/2018 18:28:49
708 LIBMAX DEFINE FASL 3 3/7/2018 23:55:28
709 LIBMAX DEFINE UNFASL 3 3/7/2018 23:55:28
710 LIBMAX DEFOPT 8 2 3/7/2018 18:28:49
711 LIBMAX DEFOPT FASL 3 3/7/2018 23:54:54.5
712 LIBMAX DEFOPT UNFASL 3 3/7/2018 23:54:54.5
713 LIBMAX DISPLM 13 2 3/7/2018 18:28:49
714 LIBMAX DISPLM 14 2 3/7/2018 18:28:49
715 LIBMAX DISPLM FASL 3 3/7/2018 23:54:53.5
716 LIBMAX DISPLM UNFASL 3 3/7/2018 23:54:53.5
717 LIBMAX EDMAC FASL 3 3/7/2018 23:54:58.5
718 LIBMAX EDMAC UNFASL 3 3/7/2018 23:54:58.5
719 LIBMAX ERMSGC 210 2 3/7/2018 18:28:49
720 LIBMAX ERMSGC FASL 3 3/7/2018 23:54:47
721 LIBMAX ERMSGC UNFASL 3 3/7/2018 23:54:47Improper thread context for operation
expect: spawn id exp9 not open
Hi
I'm trying to run 9AP on I7090 but fails on booting.
May be I'm doing something wrong?
Many thanks in advance
Best regards
Roberto
(Image attached)
9AP.zip
lib paths are: /usr/lib /usr/X11/lib
include paths are: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include
using libm: /usr/lib/libm.dylib
using libpthread: /usr/lib/libpthread.dylib /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/pthread.h
using regex: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/regex.h
using libdl: /usr/lib/libdl.dylib /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/dlfcn.h
using mman: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/sys/mman.h
*** ki10 Simulator being built with:
*** - compiler optimizations and no debugging support. Apple LLVM version 8.0.0.
gcc -std=c99 -U__STRICT_ANSI__ -O2 -DSIM_COMPILER="Apple LLVM version 8.0.0" -I . -D_GNU_SOURCE -DUSE_READER_THREAD -DSIM_ASYNCH_IO -DHAVE_REGEX_H -DHAVE_DLOPEN=dylib -DHAVE_GLOB -DHAVE_SHM_OPEN PDP10/ka10_cpu.c PDP10/ka10_sys.c PDP10/ka10_df.c PDP10/ka10_dp.c PDP10/ka10_mt.c PDP10/ka10_cty.c PDP10/ka10_lp.c PDP10/ka10_pt.c PDP10/ka10_dc.c PDP10/ka10_rp.c PDP10/ka10_rc.c PDP10/ka10_dt.c PDP10/ka10_dk.c PDP10/ka10_cr.c PDP10/ka10_cp.c scp.c sim_console.c sim_fio.c sim_timer.c sim_sock.c sim_tmxr.c sim_ether.c sim_tape.c sim_disk.c sim_serial.c sim_video.c sim_imd.c sim_card.c -DKI=1 -DUSE_INT64 -I PDP10 -DUSE_SIM_CARD -o BIN/pdp10-ki -L/usr/X11/lib -lm -lpthread -ldl
PDP10/ka10_cpu.c:3523:65: warning: '&&' within '||' [-Wlogical-op-parentheses]
if (!pi_cycle && ((FLAGS & (USER|USERIO)) == USER &&
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
PDP10/ka10_cpu.c:3523:65: note: place parentheses around the '&&' expression to silence this warning
if (!pi_cycle && ((FLAGS & (USER|USERIO)) == USER &&
^
PDP10/ka10_cpu.c:1787:20: error: use of undeclared label 'unasign'
goto unasign;
^
1 warning and 1 error generated.
Building GCC to see if it behaves the same.
Add support for IMP-10. Used by TENEX.
http://bitsavers.org/pdf/bbn/imp/IMP-10_Special_Interface_Manual_Oct73.pdf
Maybe needed to use 340 display in ITS timesharing. I'll have to check in detail.
Can probably stub out most functionality, because there's no PDP-6 attached.
Occasionally, I see the SYSTEM CLOBBERED message.
I'd like to understand exactly what it means. And then, how to detect what is doing the clobbering.
Pressing Ctrl/E in CANDE sometimes causes the B5500 to go into a busy loop.
The problem can reliably be reproduced as follows:
This does not occur when CPU1 is disabled.
I am running latest B5500 on Slackware 14.2 on Intel Core i7 laptop.
Allowed attaching 8 PDP-11s for I/O. It's probably not well documented.
Used for:
Shortly after booting ITS, there's the message
TOP LEVEL INTERRUPT 200 DETACHED JOB # 3, USR:TARAKA CNAVRL
Running FED using the 340 display will cause ITS to crash.
During the course of running FED, where will be an interrupt from the 340. PIH is set to 10 (level 4).
When the interrupt service routine returns through LPBKRT, PIH has changed to 12. When LPBKRT+1 executes a JEN, PIH is set to 2. But check_irq_level will not trigger a new interrupt request on level 1 because PIH is already 2, and it remains at 2 when ITS returns to user mode. The next time user mode calls a UUO, ITS notices PIH is 2, and throws the message "UUO WITH PI IN PROGRESS".
I know KL10 and DTE isn't in the plan. I'll just post this here, and when you've seen it you can close it.
;;; Here is how a DTE works, as far as I can tell. Each processor has an area
;;; which only it is theoretically allowed to write in. This area is refered
;;; to as the OWNER'S area. This area is composed of an section which is for
;;; the owner's use only. This contains the keepalive count, among other
;;; things. Next comes various sections in which the OWNER writes to SEND
;;; INFORMATION TO other processors. These other processors must know to look
;;; at it. When an 11 does an DTE EXAMINE operation, it is relative to his
;;; header word in the entire communications region. So to examine the header
;;; word, location 0 is examined. When an 11 does a DTE DEPOSIT operation, it
;;; is relative to the base of the area that it OWNs, NOT the base of the
;;; communications region.
;;; Well folks, that is correct. The code now works following the above
;;; guidlines. I wish it were documented in some DEC manual...
Some old software, include MIDAS itself, won't assemble with the latest ITS MIDAS 458.
I'd like to have a set of old MIDAS versions all the way to 108 which is the oldest known version.
Have you seen this document about the MIT pager?
https://github.com/PDP-10/its/blob/master/doc/ITS_Hardware_Memo_2.pdf
Hopefully ITS can again run on a KA with that pager implemented.
1 warning generated.
display/x11.c:51:10: fatal error: 'X11/X.h' file not found
#include <X11/X.h>
^~~~~~~~~
1 error generated.
X11/X.h is found in /opt/X11, not /usr/X11 or similar
Maybe work with @philbudne on this.
ITS applications:
I built and dumped a new TECO. However, there's a problem when I start it. This message is printed over and over:
ERROR WHILE ENTERING ERROR HANDLER! POPPING TO TOP LEVEL.
To reproduce:
RH devices need to be assigned in order FS, RP, then TU devices. If the device is disabled the numbers need to slide down.
I tried to ^N over a system call, but the job didn't stop.
I'll prepare a test case with regular instructions, skips, jumps, calls, and system calls. I'll run it on both KS and KA and compare the results.
General cleanup on the LPR device needs to be done.
Starry-eyed wish item.
This info might be necessary to handle ITS DF10 correctly:
MIT-ML and MIT-DM (also KA's) had 18-bit DF10's with a special kludge modification (disabled with a toggle switch for running DEC diagnostics) to take extra address bits from the complement of some high-order bits of the count. The complementation is so that with a small count (which is negative) you address the low-order memory, for compatibility.
Last time I tried this, it didn't work.
Steps to reproduce:
OS/360 gets stuck in a SVC loop.
When building EMACS, some essential libraries are first generated from TECO sources. This is done with the EINIT library. It should be run from EMACS with M-X Run Library$EINIT$? Generate
. However, this elicits the message
LIB FILE NOT IN LIBRARY FORMAT?
This message comes from EMACS1; USRCOM 514 file; Load Library function. Of course, it's TECO code, so it's nearly impossible to decipher.
I dumped out the EMACS; EINIT :EJ file from ITS, and confirmed that it's identical to the one in the its repository. So there's no corruption.
TM10A hangs ITS.
This should be an issue with @philbudne's 340 emulator.
If I boot DSKDMP and start e.g. the standalone @ TECO available in the ITS . directory, the simulator crashes with a segfault. Gdb says this happens in XkbSetDetectableAutoRepeat.
If I set dpy disable
, this doesn't happen.
In order to have multiple devices use PI channel 1, the AI Lab KA10s had a multiplexing feature.
MIT-AI had seveal deivces share channel1: TM10A, DECtape, IMP input, and IMP output.
It's documented here:
https://github.com/PDP-10/its/blob/master/doc/ITS_Hardware_Memo_1.pdf
As the ITS build times keep increasing, I'm starting to eye simulator performance. Is it appropriate to look for optimizations?
This isn't with a version from your repository, so feel free to ignore this until you have incorporated @philbudne's 340 CONI fix and I have tested against that.
There's a crash using the FED program in ITS. FED calls .DSTART to display some graphics in the 340 display. But there's a monitor crash.
My test goes like this:
Attempting to set a breakpoint in a MIDAS pure page doesn't work. No error message. DDT doesn't make the page impure. Starting MIDAS doesn't trigger the breakpoint.
m$j!
*$l sys; ts midas
*:corprt
Page # 0, Impure, Swapped OUT
Page # 1, Impure, Swapped OUT
Page # 2, Impure, Swapped OUT
Page # 3, Impure, Swapped OUT
Page # 17, Impure, Swapped OUT
Page # 20, Impure, Swapped OUT
Page # 200, Pure, Swapped OUT
Page # 201, Pure, Swapped OUT
Page # 202, Pure, Swapped OUT
Page # 203, Pure, Swapped OUT
Page # 204, Pure, Swapped OUT
Page # 205, Pure, Swapped OUT
Page # 206, Pure, Swapped OUT
Page # 207, Pure, Swapped OUT
Page # 210, Pure, Swapped OUT
Page # 211, Pure, Swapped OUT
Page # 212, Pure, Swapped OUT
*beg=420112 beg$b
:corprt
Page # 0, Impure, Swapped OUT
Page # 1, Impure, Swapped OUT
Page # 2, Impure, Swapped OUT
Page # 3, Impure, Swapped OUT
Page # 17, Impure, Swapped OUT
Page # 20, Impure, Swapped OUT
Page # 200, Pure, Swapped OUT
Page # 201, Pure, Swapped OUT
Page # 202, Pure, Swapped OUT
Page # 203, Pure, Swapped OUT
Page # 204, Pure, Swapped OUT
Page # 205, Pure, Swapped OUT
Page # 206, Pure, Swapped OUT
Page # 207, Pure, Swapped OUT
Page # 210, Pure, Swapped OUT
Page # 211, Pure, Swapped OUT
Page # 212, Pure, Swapped OUT
Steps to reproduce:
x$j
0$g
ex 0-30
. Output is:0: 000000000000
1: 000000000000
2: 000000000000
3: 000000000000
4: 000000000000
5: 000000000000
6: 000000000000
7: 000000000000
10: 000000000000
11: 000000000000
12: 000000000000
13: 000000000000
14: 000000000000
15: 000000000000
16: 000000000000
17: 000000000000
20: 000000000022
21: 000023247777
22: 776000245777
23: 000000000000
24: 000000000000
25: 000000000000
26: 000000000000
27: 000000000000
30: 000000000000
If you want to implement PDP-6 devices. ITS can use the old PDP-6 DECtape device.
There's DC 200, and UTC/UTS 210, 214.
CC @aap
I think this is a real-time clock. Without it, ITS will complain it doesn't know that time it is during boot.
When I start COMPLR, there's no _
prompt:
*:complr
LISP COMPILER 2155 [in LISP 2154]
If I press Enter, there's an error message and the prompt is displayed:
INCORRECT COMMAND SYNTAX - MAKLAP
_
Now I should be able to compile Lisp files, but the program doesn't seem to be doing anything after entering the command line:
_liblsp;_libdoc;tty
It's still possible to enter text.
PEEK works with the light pen, but the Y coordinate seems slightly off. To test this, start PEEK and type D to get the directory view. Then use the light pen to select a directory to list. When I do this, the wrong directory is viewed.
CC @philbudne
Opening an issue to log my attempts to use DECtape in ITS.
Since microtapes are hardwarily and softwarily unreliable on the ITS systems, their use is discouraged.
.INFO.; DDT 33
Here's a riddle. What happens if you put PUSH
in location 0 and then execute it?
The answer is that it writes a new PUSH 0,0
instruction to location 1, and then executes that. Now it's more interesting, because it writes PUSH 0,1(1)
to location 2.
And so on, but when it hits location 20, it breaks. If I single step this in timesharing DDT, location 20 gets 0. If I single step in SIMH, it gets 000000000022. The correct value ought to be PUSH 0,17(17)
.
I have started on an automated build of KA ITS and all programs.
I have encountered a problem shortly after purification. The first two programs built are MIDAS and DDT. They are first assembled with MIDAS, and then loaded into DDT for running the PURIFY routine. Shortly after this, ITS starts to act weirdly. It hangs; sometimes it's possible to get its attention by typing ^G, sometimes not.
I set :tctyp vt52
expecting a nice EMACS experience (also set xterm to VT52 mode).
But ESC characters come out as 377. Here's a session hexdump:
00000bb0 0a 20 2e 20 20 20 20 20 0d 0a 3a 65 6d 61 63 73 |. . ..:emacs|
00000bc0 0d 0a ff 4b 53 59 53 3a 20 53 59 53 33 3b 20 54 |...KSYS: SYS3; T|
00000bd0 53 20 45 4d 41 43 53 20 2d 20 4e 4f 4e 2d 45 58 |S EMACS - NON-EX|
00000be0 49 53 54 45 4e 54 20 44 49 52 45 43 54 4f 52 59 |ISTENT DIRECTORY|
00000bf0 0d 0a ff 4b 0d 0a ff 4b 3a 6c 69 6e 6b 20 73 79 |...K...K:link sy|
00000c00 73 3b 20 74 73 20 65 6d 61 63 73 2c 20 65 6d 61 |s; ts emacs, ema|
00000c10 63 73 3b 20 74 73 20 3e 0d 0a ff 4b ff 4b 2a 0d |cs; ts >...K.K*.|
00000c20 0a ff 4b 5f 5f 5f 30 30 32 20 48 41 43 54 52 4e |..K___002 HACTRN|
00000c30 20 53 59 53 20 20 20 20 54 53 20 20 20 20 20 45 | SYS TS E|
00000c40 4d 41 43 53 20 20 4c 49 4e 4b 20 20 20 0d 0a ff |MACS LINK ...|
00000c50 4b 3a 65 6d 61 63 73 0d 0a ff 4b 28 50 6c 65 61 |K:emacs...K(Plea|
00000c60 73 65 20 4c 6f 67 20 49 6e 29 0d 0a ff 4b ff 59 |se Log In)...K.Y|
00000c70 35 20 ff 48 ff 4a ff 4b 45 4d 41 43 53 20 45 64 |5 .H.J.KEMACS Ed|
00000c80 69 74 6f 72 2c 20 76 65 72 73 69 6f 6e 20 31 36 |itor, version 16|
00000c90 32 20 2d 20 74 79 70 65 20 48 65 6c 70 28 5e 5f |2 - type Help(^_|
00000ca0 48 29 20 66 6f 72 20 68 65 6c 70 2e 0d 0a ff 4b |H) for help....K|
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.