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:
12
README.md
12
README.md
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
15
doc/NITS.md
15
doc/NITS.md
@@ -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`.
|
||||
|
||||
10
doc/logo.md
10
doc/logo.md
@@ -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.
|
||||
Logo’s name comes from the Greek word for word, because Logo was first
|
||||
Logo’s 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
|
||||
|
||||
@@ -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
82
src/lars/lorenz.67
Normal 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
141
src/lars/minsky.tron
Normal 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
|
||||
@@ -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
2
src/sysen2/stuff.93 → src/sysen2/stuff.94
Executable file → Normal 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
-*- Mode:LISP; -*-
|
||||
;;; -*- Mode:LISP; -*-
|
||||
|
||||
(herald ERRHEL)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user