mirror of
https://github.com/PDP-10/its.git
synced 2026-03-25 01:47:08 +00:00
124 lines
1.7 KiB
Groff
Executable File
124 lines
1.7 KiB
Groff
Executable File
TITLE MINI36 Server
|
|
|
|
A=1
|
|
B=2
|
|
C=3
|
|
D=4
|
|
E=5
|
|
T=6
|
|
TT=7
|
|
P=17
|
|
|
|
NETI=10
|
|
NETO=11
|
|
FILE=12
|
|
ERRCH=13
|
|
|
|
DEBUG: 0
|
|
|
|
LOC 42
|
|
JSR TSINT
|
|
LOC DEBUG+1
|
|
|
|
PDL: -60,,.
|
|
BLOCK 62
|
|
|
|
DEV: 0
|
|
SNM: 0
|
|
FN1: 0
|
|
FN2: 0
|
|
|
|
NETWRK"$$SERVE==1
|
|
NETWRK"$$CHAOS==1
|
|
|
|
.INSRT SYSTEM;CHSDEF
|
|
.INSRT SYSENG;NETWRK
|
|
|
|
PKT: BLOCK %CPMXW
|
|
|
|
BUFL==<%CPMXC/6>
|
|
BUF: BLOCK BUFL
|
|
|
|
|
|
MINI36: .CLOSE 1,
|
|
MOVE P,PDL
|
|
.SUSET [.SMASK,,[%PIIOC]]
|
|
MOVEI A,NETI
|
|
MOVEI C,[ASCIZ/MINI36/]
|
|
MOVEI D,1
|
|
PUSHJ P,NETWRK"CHASRV
|
|
JSR DIE
|
|
LUP: .CALL [ SETZ ? 'PKTIOT ? MOVEI NETI ? SETZI PKT ]
|
|
JSR DIE
|
|
LDB T,[$CPKOP PKT]
|
|
CAIE T,%CODWD
|
|
JSR DIE
|
|
LDB T,[$CPKNB PKT]
|
|
CAIE T,24.
|
|
JSR DIE ;WTF?
|
|
MOVE A,[441400,,DEV]
|
|
MOVE B,[442000,,PKT+%CPKDT]
|
|
MOVEI C,12.
|
|
FNR1: ILDB T,B
|
|
IDPB T,A
|
|
SOJG C,FNR1
|
|
.CALL [ SETZ ? SIXBIT/OPEN/ ? [.BII,,FILE]
|
|
DEV ? FN1 ? FN2 ? SETZ SNM ]
|
|
JRST OPNLUZ
|
|
RDLUP: MOVE E,[-BUFL,,BUF]
|
|
.IOT FILE,E
|
|
HRRZ C,E
|
|
SUBI C,BUF ;Number of 36-bit words to send
|
|
MOVE A,[441400,,BUF]
|
|
MOVE B,[442000,,PKT+%CPKDT]
|
|
IMULI C,3
|
|
PUSH P,C
|
|
CPLUP: ILDB T,A
|
|
IDPB T,B
|
|
SOJG C,CPLUP
|
|
REPEAT 4,SETZM PKT+.RPCNT
|
|
MOVEI T,%CODWD
|
|
DPB T,[$CPKOP PKT]
|
|
POP P,T
|
|
ASH T,1
|
|
DPB T,[$CPKNB PKT]
|
|
.CALL [ SETZ ? 'PKTIOT ? MOVEI NETO ? SETZI PKT ]
|
|
JSR DIE
|
|
JUMPGE E,RDLUP
|
|
SETZM PKT
|
|
MOVEI T,%COEOF
|
|
DPB T,[$CPKOP PKT]
|
|
.CALL [ SETZ ? 'PKTIOT ? MOVEI NETO ? SETZI PKT ]
|
|
JSR DIE
|
|
.CLOSE FILE,
|
|
JRST LUP
|
|
|
|
OPNLUZ: .OPEN ERRCH,[.UAI,,'ERR ? 1 ? 0]
|
|
JSR DIE
|
|
REPEAT 4,SETZM PKT+.RPCNT
|
|
MOVE B,[440800,,PKT+%CPKDT]
|
|
MOVSI C,-%CPMXC
|
|
OPNLZ1: .IOT ERRCH,T
|
|
CAIGE T,40
|
|
JRST OPNLZ2
|
|
IDPB T,B
|
|
AOBJN C,OPNLZ1
|
|
OPNLZ2: DPB C,[$CPKNB PKT]
|
|
MOVEI T,%COCLS
|
|
DPB T,[$CPKOP PKT]
|
|
.CALL [ SETZ ? 'PKTIOT ? MOVEI NETO ? SETZI PKT ]
|
|
JSR DIE
|
|
JSR DIE
|
|
|
|
TSINT: 0 ? 0
|
|
SKIPE DEBUG
|
|
.VALUE
|
|
.LOGOUT 1,
|
|
|
|
DIE: 0
|
|
SKIPE DEBUG
|
|
.VALUE
|
|
.LOGOUT 1,
|
|
|
|
END MINI36
|