1
0
mirror of https://github.com/PDP-10/its.git synced 2026-02-01 06:22:14 +00:00

PDP-10 Minskytron.

Translated from the PDP-1 program.
This commit is contained in:
Lars Brinkhoff
2020-01-12 17:08:19 +01:00
parent 06e4c10028
commit 3fc269272b
3 changed files with 146 additions and 0 deletions

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