1
0
mirror of https://github.com/PDP-10/its.git synced 2026-04-12 07:25:12 +00:00

Merge branch 'master' of https://github.com/pdp-10/its into techfury90/ka-tf-its

This commit is contained in:
Landon Rodgers
2020-02-07 07:41:07 -05:00
12 changed files with 300 additions and 30 deletions

View File

@@ -64,12 +64,16 @@ then `ESC g`. If you use the `pdp10-kl` emulator there is no prompt
and you need to type `Esc L ITS`, press Enter, and then `ESC g`.
Eventually, you will see `SYSTEM JOB USING THIS CONSOLE`. You are now
ready to log in, so type Control-Z. See [doc/DDT.md](doc/DDT.md) for
a list of useful commands. When done, shut down orderly by typing
`:lock` and then `5down`.
a list of useful commands.
To shut down ITS, type `:lock` and then `5down`. Log yourself out to
avoid the 5 minute grace period: type `:logout`. When ITS writes
`SHUTDOWN COMPLETE`, it's safe to stop the emulator.
ITS can optionally use some additional peripheral devices. To attach
a simulated GT40 graphics terminal, type `./start gt40` when booting
ITS.
a simulated GT40 graphics terminal, type `./start gt40`. If you run
the KA10 emulator, you can use the Knight TV raster display by typing
`./start tv11 tvcon`. On a TV, type <kbd>F1</kbd> instead of <kbd>Control-Z</kbd>.
To install your personal user files, add a subdirectory under `user`
with your files inside. They will be copied to ITS. The directory

View File

@@ -193,10 +193,10 @@ type ":dump\r"
respond "_" "dump links full list\r"
respond "LIST DEV =" "tty\r"
respond "TAPE NO=" "1\r"
expect -timeout 3000 "REEL"
expect -timeout 6000 "REEL"
respond "_" "rewind\r"
respond "_" "icheck\r"
expect -timeout 3000 "_"
expect -timeout 6000 "_"
type "quit\r"
shutdown

View File

@@ -609,6 +609,16 @@ respond "*" ":midas /t dsk0: .; @ munch_lars; munch\r"
respond "with ^C" ".iotlsr==jfcl\r\003"
expect ":KILL"
# Minskytron, translated from PDP-1.
respond "*" ":midas dsk0: lars; ts minsky_minsky tron\r"
expect ":KILL"
respond "*" ":link dsk0: .; @ minsky, lars; ts minsky\r"
# Edward Lorenz' strange attactor.
respond "*" ":midas dsk0: lars; ts lorenz_lorenz\r"
expect ":KILL"
respond "*" ":link dsk0: .; @ lorenz, lars; ts lorenz\r"
# PI
respond "*" ":midas sys3;ts pi_rwg; ran\r"
expect ":KILL"

View File

@@ -34,10 +34,33 @@ tvcon() {
started "TV-console" "$!"
}
type340() {
cp build/pdp10-ka/run out/pdp10-ka/run
}
help() {
cat <<EOF
This start script takes several command line arguments:
help - Display this help text.
type340 - Enable the Type 340 display.
gt40 - Start a GT40 emulator.
tv11 - Start a TV-11 emulator.
tvcon - Start a TV display.
EOF
touch out/pdp10-ka/nohelp
}
sed 's/set dpy enabled/set dpy disabled/' < build/pdp10-ka/run > out/pdp10-ka/run
test -f out/pdp10-ka/nohelp || help
while test -n "$1"; do
"$1"
shift
done
tools/sims/BIN/pdp10-ka build/pdp10-ka/run
tools/sims/BIN/pdp10-ka out/pdp10-ka/run
exit 0

View File

@@ -61,7 +61,16 @@ Note: `XX` means the name of the ITS you are building.
Answer the question `MACHINE NAME = ` with `XX`.
4. Merge the ITS binary with DDT and (N)SALV.
4. If you made a change to (N)SALV, you should update @ (N)SALV. The latter is just (N)SALV dumped with its symbol table and DDT in the core image.
```
L$DDT
T$(N)SALV BIN
$U
D$(N)SALV
```
5. Merge the ITS binary with DDT and (N)SALV.
There are two options for doing this. The normal way is to reboot and do it in DSKDMP. The other way is to do it in timesharing DDT.
@@ -82,6 +91,6 @@ Note: `XX` means the name of the ITS you are building.
4. Merge in ITS with symbols: <code><kbd>$</kbd><kbd>$</kbd>L .; NITS BIN</code>
5. Write the result to disk: <code><kbd>$</kbd>Y .; @ NITS</code>
5. If you're in DSKDMP and want to run ITS right away after dumping it, type <code>G<kbd>$</kbd></code>. You're now in DDT. You can examine ITS, set breakpoints, etc. Type <code><kbd>$</kbd>G</code> to start ITS.
6. If you're in DSKDMP and want to run ITS right away after dumping it, type <code>G<kbd>$</kbd></code>. You're now in DDT. You can examine ITS, set breakpoints, etc. Type <code><kbd>$</kbd>G</code> to start ITS.
6. When the new ITS has passed testing, rename the old `.; @ ITS` to `.; @ OITS`. Rename the new ITS to `.; @ ITS`.
7. When the new ITS has passed testing, rename the old `.; @ ITS` to `.; @ OITS`. Rename the new ITS to `.; @ ITS`.

View File

@@ -6,18 +6,18 @@
ourselves. In fact the work on LOGO to which I have devoted much of the past
years consists precisely of developing such forces in positive directions."
Seymour Papert
**Seymour Papert**
"Logo is the name for a philosophy of education and for a continually
evolving family of computer languages that aid its realization."
Harold Abelson
**Harold Abelson**
"Historically, this idea that Logo is mainly turtle graphics is a mistake.
Logos name comes from the Greek word for word, because Logo was first
Logos name comes from the Greek word for *word*, because Logo was first
designed as a language in which to manipulate language: words and sentences."
Brian Harvey
**Brian Harvey**
Logo was initially created by Wally Feurzeig, Seymour Papert, Daniel G.Bobrow,
Cynthia Solomon and Richard Grant in 1967 as part of a National Science Foundation
@@ -143,7 +143,7 @@ The emulator must be run on the KA10 simulator which supports the Type 340 displ
11LOGO system was one of the major logo versions of the 70s and included not only
the LOGO evaluator but also a dedicated time-sharing system which serviced about
dozen users. MIT AI MEMO 313 cites among the system developers Ron Label, Joe Cohen,
dozen users. MIT AI MEMO 313 cites among the system developers Ron Lebel, Joe Cohen,
Nat Goodman, Hal Abelson, Roger Hale, Radia Perlman. The 11LOGO display controller
was designed and built by Tom Knight. The document also cited contributions of Richard
Greenblatt on matters of system design and, of course, Seymour Papert and Cynthina

View File

@@ -186,6 +186,7 @@
- LOCK, shut down system.
- LOGO, BBN Logo.
- LOOKUP, looks up user info in INQUIR database.
- LORENZ, Edward Lorenz' strange attractor.
- LOSS (device).
- LOTCLN - LOGOUT TIMES cleanup program.
- LSPEED, set TTY line parameters.
@@ -212,6 +213,7 @@
- MINI36, mini Chaosnet file server (36-bit).
- MINITS, mini-ITS network utility.
- MINIC, mini Chaosnet file server (old).
- MINSKY TRON, display hack translated from the PDP-1.
- MLDEV/MLSLV, allows access to remote systems as devices (e.g. DB:).
- MLIFE, Mike Speciner's Conway Life.
- MODEMS, modems dragon.

82
src/lars/lorenz.67 Normal file
View File

@@ -0,0 +1,82 @@
title Lorenz - strange attractor
x=1
y=2
z=3
dx=4
dy=5
dz=6
dot=7
t=10
tt=t+1
dis==130
rho==28.0
sigma==10.0
beta==2.66666666666666666
loc 20
step: 0.0001
loc 41
jrst nts
loc 100
define display data ;Send data to display when ready.
conso dis,200
jrst .-1
datao dis,data
termin
define fix a,b ;Convert float in a to fixed point in a+1,
muli a,400 ;shifted by b.
tsc a,a
ash a+1,-243+19.!b(a)
termin
go: seto x,
.iotlsr x,
nts: cono dis,100
display <[020016]> ;Parameters, go to point mode.
move x,[1.0]
move y,[1.0]
move z,[1.0]
move dot,[220000,,022000]
loop: move dy,[rho] ;dy/dt = (rho-z)*x - y
fsb dy,z
fmp dy,x
fsb dy,y
move dx,y ;dx/dt = (y-x) * sigma
fsb dx,x
fmp dx,[sigma]
move dz,x ;dz/dt = x*y - beta*z
fmp dz,y
move t,z
fmp t,[beta]
fsb dz,t
fmp dx,step ;Update x,y,z from differentials.
fmp dy,step
fmp dz,step
fad x,dx
fad y,dy
fad z,dz
move t,x ;Convert x,y to fixed point.
fix t,-15.
addi tt,512.
dpb tt,[001200,,dot]
move t,y
fix t,-15.
addi tt,512.
dpb tt,[221200,,dot]
display dot ;And plot on display.
jrst loop
end go

141
src/lars/minsky.tron Normal file
View File

@@ -0,0 +1,141 @@
TITLE MINSKYTRON
;Set switches to e.g. 677721.
A=1
B=2
XY=3
P=17
APR==0
DIS=130
LOC 41
JRST NTS
LOC 100
GO: SETO A,
.IOTLSR A, ;If NTS, go to UUO hander at 41.
NTS: CONO DIS,100 ;Reset display.
DATAO DIS,[020016] ;Parameter mode, go to point mode.
MOVE XY,[220000,,022000];Two point mode words.
DATAI APR,A ;Get switches.
HRLZ B,A
M1: JSP P,GSH ;Make six shift instructions.
MOVEM A,SH0
JSP P,GSH
MOVEM A,SH1
JSP P,GSH
MOVEM A,SH2
JSP P,GSH
MOVEM A,SH3
JSP P,GSH
MOVEM A,SH4
JSP P,GSH
MOVEM A,SH5
M2: MOVE A,XA0 ;Copy the initial state.
MOVEM A,XA
MOVE A,XB0
MOVEM A,XB
MOVE A,XC0
MOVEM A,XC
MOVE A,YA0
MOVEM A,YA
MOVE A,YB0
MOVEM A,YB
MOVE A,YC0
MOVEM A,YC
M3A: MOVE A,XA ;Update XA and YA.
ADD A,XB
HRRES A
XCT SH0
ADD A,YA
MOVEM A,YA
SUB A,YB
HRRES A
XCT SH1
MOVNS A
ADD A,XA
MOVEM A,XA
MOVE B,YA
JSP P,DPY
M3B: MOVE A,XB ;Update XB and YB.
SUB A,XC
HRRES A
XCT SH2
ADD A,YB
MOVEM A,YB
SUB A,YC
HRRES A
XCT SH3
MOVNS A
ADD A,XB
MOVEM A,XB
MOVE B,YB
JSP P,DPY
M3C: MOVE A,XC ;Update XC and YC.
SUB A,XA
HRRES A
XCT SH4
ADD A,YC
MOVEM A,YC
SUB A,YA
HRRES A
XCT SH5
MOVNS A
ADD A,XC
MOVEM A,XC
MOVE B,YC
JSP P,DPY
JSP P,DELAY
JRST M3A
GSH: SETZ A, ;Get a shift instruction.
ROTC A,3
MOVE A,GST(A)
JRST (P)
GST: REPEAT 9.,[ASH A,-1-.RPCNT
]
DPY: LSH A,-8 ;Display a point at A,B.
LSH B,-8
ADDI A,512.
ADDI B,512.
DPB A,[001200,,XY]
DPB B,[221200,,XY]
CONSO DIS,200 ;Wait for display.
JRST .-1
DATAO DIS,XY ;Send display instruction.
JRST (P)
DELAY: MOVE A,[10000.]
SOJGE A,.
JRST (P)
XA0: -137016/3
XB0: 0
XC0: 020000/3
YA0: 0
YB0: 060000/3
YC0: 0
XA: 0
XB: 0
XC: 0
YA: 0
YB: 0
YC: 0
SH0: 0
SH1: 0
SH2: 0
SH3: 0
SH4: 0
SH5: 0
END GO

View File

@@ -474,9 +474,10 @@ CHNPI:CHNPO:CHNPF:CHNSTS:CHNSNS:CHNRTR:CHNPFL:CHNPD:
CHNABT:CHNCRC:CHNCR2:CHNWLE:CHNPLE:CHNLOS:CHNSPZ:
CHTTBF:CHFRBF:CHQRFC:CHQLSN:CHNIPI:CHNIPO:
TCPUP:PKBNT:PKBNF:OVHTB2:
PKEQHF:IPOUTQ:IPOBLQ:PKETBL:]
PKEQHF:IPOUTQ:IPOBLQ:PKETBL:
DISUSR:LPTUSR:PDPUSR:PTPUSR:PTRUSR:]
;No longer used: DISUSR:LPTUSR:NVDUSR:PDPUSR:PLTUSR:PTPUSR:PTRUSR:TABUSR:
;No longer used: NVDUSR:PLTUSR:TABUSR:
; MSUSER:MSREAD:MSRED2:MSWRIT:MSWRT2:IMPBPQ:
; IMNOSH:IMNISH:IMPNPE:IMNSRF:IMNSRC:IMNRFN:IMPNIH:
@@ -495,10 +496,11 @@ XBRWND:XBSAVW:MTRCNT:MTRNAM:
CHSUSR:CHSSTA:CHSNBF:CHSNOS:CHSFRN:CHSACK:CHSPKN:CHSWIN:CHSIBP:CHSOBP:
IPGWTN:IPGWTG:IPGWTI:IPGWTM:SBNRUT:
PGIHTB:SWPHTB:OVHTB1:
IPUQHD:IPFDPE:XBITQH:XBORTQ:XBOCOS:]
IPUQHD:IPFDPE:XBITQH:XBORTQ:XBOCOS:
DG2:DRTM:EUPOS:UDIR:UDIRO:UGOAL:ULCTM:UTASS:UTBFS:
UTTNO:UTUSR:UMNTR:]
;No longer used: DG2:DRTM:EUPOS:UDIR:UDIRO:UGOAL:ULCTM:UTASS:UTBFS:
; UTTNO:UTUSR:UMNTR:MPXBUF:
;No longer used: MPXBUF:
; IMSOC1:IMSOC2:IMSOC3:IMSOC4:IMSOC5:IMSOC6:IMSOC7:IMSOC8:
;+SYSBEG(U)
@@ -1234,7 +1236,7 @@ IFN 0,[
MODEF "R,RNABLE,%MFERO, "Running jobs"
%MDS:: MODEF "S,SPEEK,, "Single Tree (job#)"
MODEF "T,TRANPK,, "Translations"
IFN 0, MODEF "U,UTPEEK,%MFERO, "Utape??"
MODEF "U,UTPEEK,%MFERO, "Utape"
MODEF "V,DOUSER,, "job Variables (job#)"
; ULOOK checks MODE to hack this one (swap vars)
MODEF "W,WROUTE,, "Internet, Chaosnet routing tables (1W is Chaos only)"
@@ -1857,7 +1859,7 @@ TSINL1: SUBI I1,12. ;LIGHT-PEN HIT IN UPPER (USER) AREA
HLRZ I1,LPBLK
SUBI I1,1700
MOVNS I1
IDIVI I1,18.
IDIVI I1,22. ;22 DOTS PER CHARACTER
SOS I1
IMULI I1,6
ADD I1,LPBLK+1
@@ -6096,7 +6098,6 @@ RESR2: MOVEI T,"%
HRRZ B,@UREALT
CAMN U,B
JSP A,RESCHO ;real time user
IFN 0,[
SKIPE PDPUSR
CAME U,@PDPUSR
JRST RESR4
@@ -6106,7 +6107,6 @@ IFN 0,[
CONI 130,A
SKIPN A
JSP A,RESCHO ;340 display user
];IFN 0
RESR4: MOVSI B,RESTAB-RESTBE
RESR3A: HRRZ T,RESTAB(B)
SKIPN (T)
@@ -6142,12 +6142,12 @@ RESOR3: JFCL
ODEVER RESOR3
RESTAB: "C_11.,,@CUSER ;core alocator user
IFN 0,[ ;Remove stuff that no longer exists
"D_11.,,@DISUSR ;340 display user
"L_11.,,@LPTUSR ;line printer user
"R_11.,,@PTRUSR ;paper tape reader user
"P_11.,,@PLTUSR ;plotter user
"T_11.,,@PTPUSR ;paper tape punch user
IFN 0,[ ;Remove stuff that no longer exists
"P_11.,,@PLTUSR ;plotter user
"V_11.,,@NVDUSR ;tv camera user
"S_11.,,@TABUSR ;tablet user
];IFN 0
@@ -7268,8 +7268,6 @@ LOVHMT==.-OVHMTN
SUBTTL Mode "U" - DECtape status display
IFN 0,[
UTPEEK: ATYPE UTTOP
MOVN C,NUNITS
HRLZS C
@@ -7339,7 +7337,6 @@ UTTOP: ASCIZ /Dirc Goal Pos Dg2 Dir Umntr Utass
/
UTMID: ASCIZ /Cn Tn Uname Jname Dir Bufs
/
];IFN 0
SUBTTL Misc constants

2
src/sysen2/stuff.93 → src/sysen2/stuff.94 Executable file → Normal file
View File

@@ -689,6 +689,8 @@ TVFIX: MOVE E,[SQUOZE 0,TT11P]
JRST DIE
MOVE A,[JRST FIXOK] ;COME BACK HERE LATER
MOVEM A,OK
MOVE A,[JRST DIE] ;ANY ATTEMPT TO TYPE ANYTHING IS AN
MOVEM A,TYPE ;ERROR AND WILL NOT WORK ANYWAY
MOVE A,[ASCII /TVî/]
JRST STUFF

View File

@@ -1,4 +1,4 @@
-*- Mode:LISP; -*-
;;; -*- Mode:LISP; -*-
(herald ERRHEL)