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:
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
|
||||
Reference in New Issue
Block a user