mirror of
https://github.com/PDP-10/its.git
synced 2026-01-29 13:21:11 +00:00
Added CHARFC/CHARFS: Chaos RFC (?).
Resolves #296. Source code from MOON; CHARFC 3.
This commit is contained in:
committed by
Lars Brinkhoff
parent
ae86cc010b
commit
fad6cbe33a
@@ -111,6 +111,7 @@ A list of [known ITS machines](doc/machines.md).
|
||||
- BINPRT, display information about binary executable file.
|
||||
- BYE, say goodbye to user. Used in LOGOUT scripts.
|
||||
- CALPRT, decode a .CALL instructions CALL block.
|
||||
- CHARFC/CHARFS, Chaos RFC.
|
||||
- CHTN, CFTP, Chaosnet TELNET and FTP support.
|
||||
- COMPLR, lisp compiler.
|
||||
- COMSAT, Mail server.
|
||||
|
||||
@@ -832,6 +832,11 @@ respond "*" ":link syseng;chsdef 999999,system;chsdef >\r"
|
||||
respond "*" ":midas device;chaos itsdev_bawden;itsdev\r"
|
||||
expect ":KILL"
|
||||
|
||||
# charfc/charfs
|
||||
respond "*" ":midas sys1;ts charfc_sysen3;charfc\r"
|
||||
expect ":KILL"
|
||||
respond "*" ":link sys1;ts charfs,sys1;ts charfc\r"
|
||||
|
||||
# 11sim
|
||||
respond "*" ":midas /t sys1;ts pdp11_syseng;11sim\r"
|
||||
respond "end input with ^C" "45p==0\r"
|
||||
|
||||
222
src/sysen3/charfc.3
Executable file
222
src/sysen3/charfc.3
Executable file
@@ -0,0 +1,222 @@
|
||||
;;; -*- Midas -*-
|
||||
|
||||
TITLE CHAOS RFC
|
||||
|
||||
;;; Gumby, 16.11.86: if started with the uname CHARFS (S for SILENT)
|
||||
;;; won't print e.g. [EOF] on TTY. This is mainly useful for programs
|
||||
;;; which .VALUE to DDT a CHARFC command (e.g. WHAT, UFIND).
|
||||
|
||||
A=1
|
||||
B=2
|
||||
C=3
|
||||
D=4
|
||||
E=5
|
||||
F=6
|
||||
T=7
|
||||
TT=10
|
||||
SILENT=16
|
||||
P=17
|
||||
|
||||
TYOC=10
|
||||
CHSI=11
|
||||
CHSO=12
|
||||
|
||||
PDL: -20,,.
|
||||
BLOCK 22
|
||||
|
||||
DEBUG: 0
|
||||
|
||||
.INSRT SYSTEM;CHSDEF
|
||||
|
||||
JCLBUF: BLOCK 100
|
||||
-1
|
||||
CNMBUF: BLOCK 100 ;Copy contact name
|
||||
BUF: BLOCK %CPMXW ;Misc buffer
|
||||
|
||||
$$HST3==1
|
||||
$$HOSTNM==1
|
||||
$$SYMLOOK==1
|
||||
$$HSTMAP==1
|
||||
$$CONNECT==1
|
||||
$$ANALYZE==1
|
||||
$$CHAOS==1
|
||||
.INSRT SYSENG;NETWRK
|
||||
|
||||
GO: MOVE P,PDL
|
||||
.OPEN TYOC,[.UAO,,'TTY]
|
||||
.LOSE %LSFIL
|
||||
.suset [.rxjname,,a]
|
||||
camn a,[sixbit /CHARFS/]
|
||||
seto silent,
|
||||
MOVEI A,HST3PG
|
||||
MOVEI B,CHSI
|
||||
PUSHJ P,NETWRK"HSTMAP
|
||||
.LOSE
|
||||
.BREAK 12,[5,,JCLBUF]
|
||||
MOVE A,[440700,,JCLBUF] ;Isolate host name
|
||||
GHN: ILDB T,A
|
||||
CAIN T,40
|
||||
JRST GHN1
|
||||
CAIE T,^M
|
||||
CAIN T,^C
|
||||
JRST NHN
|
||||
CAIE T,^_
|
||||
JUMPN T,GHN
|
||||
NHN: MOVEI TT,[ASCIZ/Usage is: :CHARFC HOST <space> CONTACT NAME/]
|
||||
PUSHJ P,ASZOUT
|
||||
.LOGOUT 1,
|
||||
|
||||
GHN1: setz T,
|
||||
DPB T,A
|
||||
MOVE B,[440700,,CNMBUF] ;Extract contact name and args
|
||||
SETOM E ;Upper-caseify flag
|
||||
GCN: ILDB T,A
|
||||
CAIE T,^M
|
||||
CAIN T,^C
|
||||
JRST GCN1
|
||||
CAIE T,^_
|
||||
CAIN T,0
|
||||
JRST GCN1
|
||||
JUMPGE E,GCN0
|
||||
CAIN T,40
|
||||
AOJA E,GCN0 ;Space ends upper-case part
|
||||
CAIL T,"a
|
||||
CAILE T,"z
|
||||
JRST GCN0
|
||||
SUBI T,40
|
||||
GCN0: IDPB T,B
|
||||
JRST GCN
|
||||
|
||||
GCN1: MOVEI A,JCLBUF
|
||||
PUSHJ P,NETWRK"HSTLOOK
|
||||
JRST [ MOVEI TT,[ASCIZ/Host not found: /]
|
||||
PUSHJ P,ASZOUT
|
||||
MOVEI TT,JCLBUF
|
||||
PUSHJ P,ASZOUT
|
||||
.LOGOUT 1, ]
|
||||
MOVEM A,HOST'
|
||||
MOVEI A,CHSI
|
||||
MOVE B,HOST
|
||||
MOVEI C,CNMBUF
|
||||
MOVEI D,10
|
||||
MOVEI TT,%CORFC
|
||||
PUSHJ P,OPEN ;Start things up
|
||||
JRST NETERR ;Lost
|
||||
CAIE TT,%CSOPN
|
||||
JRST NOTOPN ;Started but didn't get open
|
||||
;Open, copy out whatever string it gives, to EOF
|
||||
jumpn silent,opn
|
||||
MOVEI TT,[ASCIZ/Connection open:
|
||||
/]
|
||||
PUSHJ P,ASZOUT
|
||||
OPN: MOVE TT,[440700,,BUF] ;Truncate to 7-bit codes
|
||||
MOVEI T,%CPMXC
|
||||
.CALL [ SETZ ? SIXBIT/SIOT/ ? MOVEI CHSI ? TT ? SETZ T ]
|
||||
.LOSE %LSSYS
|
||||
SUBI T,%CPMXC
|
||||
MOVNS A,T
|
||||
MOVE TT,[440700,,BUF]
|
||||
.CALL [ SETZ ? SIXBIT/SIOT/ ? MOVEI TYOC ? TT ? SETZ T ]
|
||||
.LOSE %LSSYS
|
||||
CAIN A,%CPMXC
|
||||
JRST OPN
|
||||
skipe silent
|
||||
.logout 1,
|
||||
MOVEI TT,[ASCIZ/[EOF]/]
|
||||
PUSHJ P,ASZOUT
|
||||
.LOGOUT 1,
|
||||
|
||||
RESET: MOVSI T,RESET1 ;Reset the buffer for network debugging
|
||||
HRR T,C
|
||||
BLT T,2(C)
|
||||
MOVEI D,5*12.
|
||||
MOVE F,[260700,,.+6]
|
||||
XCT @(P)
|
||||
.LOSE %LSSYS ;Failed to open
|
||||
POPJ P,
|
||||
|
||||
RESET1: 512131,,547650 ;Reset the buffer for right thing
|
||||
425330,,444646
|
||||
455012,,242602
|
||||
421004,,327120
|
||||
502451,,743542
|
||||
201404,,24206
|
||||
442031,,751564
|
||||
426550,,146132
|
||||
516132,,253212
|
||||
511331,,747122
|
||||
245006,,20142
|
||||
202151,,747400
|
||||
|
||||
NOTOPN: CAIE TT,%CSCLS
|
||||
JRST NETERR
|
||||
.CALL [ SETZ ? 'WHYINT ? MOVEI CHSI ? MOVEM TT ? MOVEM TT ? SETZM TT ]
|
||||
.LOSE %LSSYS
|
||||
HLRZS TT ;Number of input packets available
|
||||
JUMPE TT,NETERR
|
||||
.CALL [ SETZ ? 'PKTIOT ? MOVEI CHSI ? SETZI BUF ]
|
||||
.LOSE %LSSYS
|
||||
LDB T,[$CPKOP BUF]
|
||||
MOVEI TT,[ASCIZ/Closed: /]
|
||||
CAIN T,%COCLS
|
||||
JRST NOTOP1
|
||||
MOVEI TT,[ASCIZ/Lost: /]
|
||||
CAIN T,%COLOS
|
||||
JRST NOTOP1
|
||||
MOVEI TT,[ASCIZ/Forwarded: /]
|
||||
CAIN T,%COFWD
|
||||
JRST NOTOP1
|
||||
MOVEI TT,[ASCIZ/Answered: /]
|
||||
CAIN T,%COANS
|
||||
JRST NOTOP1
|
||||
RANPKT: PUSHJ P,OCTOUT
|
||||
MOVEI TT,[ASCIZ/ type random packet: /]
|
||||
NOTOP1: skipn silent
|
||||
PUSHJ P,ASZOUT
|
||||
LDB A,[$CPKNB BUF]
|
||||
MOVE B,[440800,,%CPKDT+BUF]
|
||||
STROU: SOJL A,[.LOGOUT 1,]
|
||||
ILDB T,B
|
||||
ANDI T,177
|
||||
.IOT TYOC,T
|
||||
JRST STROU
|
||||
|
||||
OPEN: MOVE F,[440700,,[ASCII/INITIALIZE/]] ;Opcode String (if needed)
|
||||
MOVE T,(C)
|
||||
CAMN T,[SIXBIT/BUH,Q/]
|
||||
PUSHJ P,RESET
|
||||
JRST NETWRK"CHACN0
|
||||
.CALL [ SETZ ? SIXBIT/SIOT/ ? MOVEI 1(A) ? F ? SETZ D ]
|
||||
SKIPA TT,[%COLOS]
|
||||
AOS (P)
|
||||
.IOT CHSO,[215] ;Final opcode
|
||||
.CALL [ SETZ ? SIXBIT/FORCE/ ? SETZI 1(A) ]
|
||||
SOS (P)
|
||||
POPJ P,
|
||||
|
||||
NETERR: PUSHJ P,NETWRK"ANALYZE
|
||||
JFCL
|
||||
.LOGOUT 1,
|
||||
|
||||
OCTOUT: IDIVI T,8
|
||||
HRLM TT,(P)
|
||||
SKIPE T
|
||||
PUSHJ P,OCTOUT
|
||||
HLRZ T,(P)
|
||||
ADDI T,'0
|
||||
PUTCHR: .IOT TYOC,T
|
||||
CPOPJ: POPJ P,
|
||||
|
||||
ASZOUT: HRLI TT,440700
|
||||
ASZOU1: ILDB T,TT
|
||||
JUMPE T,CPOPJ
|
||||
.IOT TYOC,T
|
||||
JRST ASZOU1
|
||||
|
||||
CONSTANTS
|
||||
VARIABLES
|
||||
|
||||
HST3PG==<.+1777>/2000
|
||||
|
||||
END GO
|
||||
|
||||
Reference in New Issue
Block a user