!***********************************************************************
!*
!* Program to send messages to system processes
!*
!* Copyright (C) R.D. Eager University of Kent MCMLXXXVI
!*
!***********************************************************************
!
!
!***********************************************************************
!*
!* Constants
!*
!***********************************************************************
!
constantstring (1) snl = "
"
!
!
!***********************************************************************
!*
!* Record formats
!*
!***********************************************************************
!
recordformat pe(integer dest,srce,p1,p2,p3,p4,p5,p6)
!
!
!***********************************************************************
!*
!* Subsystem references
!*
!***********************************************************************
!
externalroutinespec set return code(integer i)
!
!
!***********************************************************************
!*
!* Director references
!*
!***********************************************************************
externalstringfunctionspec derrs(integer n)
externalintegerfunctionspec dpon3(string (6) user,record (pe)name p,
integer invoc,msgtype,outno)
!
!
!
!***********************************************************************
!*
!* Service routines
!*
!***********************************************************************
!
routine slash(string (6) user,string (255) s)
integer i,flag
record (pe) p
!
if length(s) > 23 then start
printstring("Command too long".snl)
set return code(1000)
stop
finish
for i = 1,1,length(s) cycle
if charno(s,i) = '_' then charno(s,i) = ' '
repeat
p_dest = x'ffff0014'; ! PON relay, common command activity
p_srce = 0
string(addr(p_p1)) = s
flag = dpon3(user,p,0,1,6); ! PON and continue
if flag # 0 then start
printstring("DPON flag = ".derrs(flag).snl)
finish
set return code(flag)
end ; ! of slash
!
!
!***********************************************************************
!*
!* D S L A S H
!*
!***********************************************************************
!
externalroutine dslash(string (255) s)
slash("DIRECT",s)
end ; ! of dslash
!
!
!***********************************************************************
!*
!* V S L A S H
!*
!***********************************************************************
!
externalroutine vslash(string (255) s)
slash("VOLUMS",s)
end ; ! of vslash
!
!
!***********************************************************************
!*
!* S S L A S H
!*
!***********************************************************************
!
externalroutine sslash(string (255) s)
slash("SPOOLR",s)
end ; ! of sslash
!
!
!***********************************************************************
!*
!* M S L A S H
!*
!***********************************************************************
!
externalroutine mslash(string (255) s)
slash("MAILER",s)
end ; ! of mslash
!
!
!***********************************************************************
!*
!* F S L A S H
!*
!***********************************************************************
!
externalroutine fslash(string (255) s)
slash("FTRANS",s)
end ; ! of fslash
endoffile