1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-27 12:42:10 +00:00

MINI36 - mini Chaosnet file server (36-bit).

This commit is contained in:
Lars Brinkhoff
2019-02-01 03:34:02 +01:00
parent c568077d9d
commit 2ffe67348b
3 changed files with 129 additions and 0 deletions

123
src/kshack/mini36.2 Executable file
View File

@@ -0,0 +1,123 @@
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