From ba046430dc0565a51e828c28596c3e3de344e349 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Fri, 21 Dec 2018 12:22:10 +0100 Subject: [PATCH] NETRFC - serve ARPANET connections. --- build/basics.tcl | 4 ++++ doc/programs.md | 1 + src/sysen2/netrfc.3 | 47 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100755 src/sysen2/netrfc.3 diff --git a/build/basics.tcl b/build/basics.tcl index 9878bee1..0ecfd8ab 100644 --- a/build/basics.tcl +++ b/build/basics.tcl @@ -189,6 +189,10 @@ respond "*" ":midas sysbin;_syseng;@chaos\r" expect ":KILL" respond "*" ":link sys;atsign chaos,sysbin;@chaos bin\r" +# ARPANET support +respond "*" ":midas sys;atsign netrfc_sysen2; netrfc\r" +expect ":KILL" + # CHA: and CHAOS: device respond "*" ":midas device;jobdev cha_dcp;chadev\r" expect ":KILL" diff --git a/doc/programs.md b/doc/programs.md index e3ebddcc..d73487b1 100644 --- a/doc/programs.md +++ b/doc/programs.md @@ -197,6 +197,7 @@ - MUNCH, TV-munching square. - NAME, shows logged in users and locations, aka FINGER. - NETIME, network time dragon. +- NETRFC, serve ARPANET connections. - NEWDEC, DECtape converter. - NICNAM/NICWHO, look up someone in the Arpanet directory. - NIMLIN, a game of unknown features. diff --git a/src/sysen2/netrfc.3 b/src/sysen2/netrfc.3 new file mode 100755 index 00000000..4741b183 --- /dev/null +++ b/src/sysen2/netrfc.3 @@ -0,0 +1,47 @@ + TITLE NETRFC BOOTSTRAPPER +.MLLIT==1 +A=1 +B=2 +Q=16 + +BEG: MOVE A,[SQUOZE 0,IMPBPQ] + .EVAL A, + JRST ENDQ + MOVE Q,A +NEXTQ: MOVSS Q + HRRI Q,Q + .GETLOC Q, + JUMPL Q,ENDQ ;-1 IS END OF LIST + MOVSI A,1(Q) + HRRI A,A + .GETLOC A, ;GET SLOT 1, LCL SOCK + CAIL A,1000 ;SKIP IF SHOULD SIGNAL + JRST NEXTQ ;JUMP TO TRY ANOTHER ONE + DPB A,[000300,,LOGNAM] ;STASH IN 'RFC000 + LSH A,-3 + DPB A,[060300,,LOGNAM] + LSH A,-3 + DPB A,[140300,,LOGNAM] + .CALL [SETZ ? 'DEMSIG ? LOGNAM ? SETZ [-1]] + JRST NORFC ;FAIL-LEAVE TRAIL + JRST ENDQ + +NORFC: MOVSI A,3(Q) ;SLOT 3, HOST CALLING + HRRI A,A + .GETLOC A, + LSH A,-8 ;GET HOST # + DPB A,[000300,,TRMNAM] + LSH A,-3 + DPB A,[060300,,TRMNAM] + LSH A,-3 + DPB A,[140300,,TRMNAM] + .CALL [SETZ ? 'LOGIN_6 ? LOGNAM ? SETZ TRMNAM] + JFCL ;DONT SVEAT IT +ENDQ: .LOGOUT + .VALUE + +LOGNAM: 'RFC000 +TRMNAM: 'HST000 + + END BEG + \ No newline at end of file