1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-17 00:33:22 +00:00
PDP-10.its/src/syseng/@chaos.17
Eric Swenson 28710a9690 Added ITS support for CHTN and CFTP (Telnet and FTP over Chaosnet).
To actually use these programs, however, the emulator needs to get
updated to support Chaosnet (over UDP, for example).
2016-11-26 21:59:06 +01:00

75 lines
1.6 KiB
Plaintext
Executable File

;;; Primitive ATSIGN CHAOS DLW 1/26/78 -*-Fundamental-*-
TITLE ATSIGN CHAOS
;;; This program is loaded by the system when an RFC is received and nobody
;;; else is listening.
A=1
B=2
C=3
D=4
E=5
DSKI==1 ; Channel for loading server.
.INSRT SYSTEM;CHSDEF >
DEBUG: 0 ; -1 => Debug mode.
DEFNAM: SIXBIT /DFAULT/ ; FN2 of the default server (if CHAOS <foo> is not found).
PBUF: BLOCK %CPMXW ; Packet buffer.
GO: .CALL [ SETZ ; Get a pending RFC.
SIXBIT /CHAOSQ/
SETZI PBUF]
JSR LOGOUT
MOVE A,[440800,,PBUF+%CPKDT] ; First byte in packet.
MOVE B,[440600,,D]
MOVEI D,0
LDB E,[$CPKNB+PBUF] ; The NBYTES field of the packet.
CAILE E,6 ; If > 6, usae 6 instead.
MOVEI E,6
CHLOOP: ILDB C,A ; Convert 8-bit codes from packet into a sixbit word
CAIN C,40 ; in D.
JRST ENDLUP
CAIL C,"a
CAILE C,"z
SUBI C,40
IDPB C,B
SOJG E,CHLOOP
ENDLUP: MOVE 0,D ;Contact name, sixbitified, is passed in in AC0
.SUSET [.SSNAME,,D] ;Also pass it in the sname, for debugging
.CALL [ SETZ ; Open DEVICE;CHAOS <conn>
SIXBIT /OPEN/
[.UII,,DSKI]
[SIXBIT /DSK/]
[SIXBIT /CHAOS/]
D
SETZ [SIXBIT /DEVICE/]]
JRST [ CAMN D,DEFNAM ; Were we trying the default server?
JSR LOGOUT ; Yes, lose big!
MOVE D,DEFNAM ; No, try loading the default server.
JRST .-1]
MOVE 17,[ACBLK,,1] ; Load it in and start it.
BLT 17,ACBLKL
JRST 1
ACBLK: .CORE 0 ;1 - vital to clear core!!
.LOSE ;2
.CALL 7 ;3
.LOGOUT 1, ;4
.IOT DSKI,17 ;5
JRST (17) ;6
SETZ ;7
SIXBIT /LOAD/ ;10
MOVEI %JSELF ;11
SETZI DSKI ;12
ACBLKL=.-ACBLK
LOGOUT: 0
SKIPE DEBUG
.VALUE
.LOGOUT 1,
END GO