! Ethernet and Filestore communication
option "-low"
{Filestore Communication}
@16_01108 integerfn FCOMM(integer cn,string (255)s)
@16_0110C routine FCOMMW(integer cn,string (255) s,
bytename buffer,integer size)
@16_01110 integerfn FCOMMR(integer c,string (255)p,
bytename b,integer max)
@16_035c4 short USERNO
{Ethernet Communication}
@16_010f8 routine ETHEROPEN(integer port,remote)
@16_010fc routine ETHERCLOSE(integer port)
@16_01100 routine ETHERWRITE(integer port,bytename buf,integer size)
@16_01104 integerfn ETHERREAD(integer port,bytename buf,integer max)
@16_0372c byte CYLOCK,FSPORT
@16_03730 integer ERR,DTX,RDY,STX,ACK,NAK
@16_03fa8 byte LDTE,LSAP,RDTE,RSAP
@16_7fffc byte ETHS
@16_7fffd byte ETHD
@16_7ffff byte ETHC
routine TWAIT
cycle ; repeatuntil eths&8#0
end
routine DISABLE BROADCASTS
constinteger bof=10
twait; ethc = bof; twait
end
routine ENABLE BROADCASTS(integer channel)
constinteger bon=9
twait; ethc = bon; twait; ethd = channel; twait
end
integerfn ETHERSTATION
@16_0372e short STATION
constinteger esa=5
station = 0; twait; ethc = esa; twait
cycle
result = station unless station=0
repeat
end
routine ETHERDTX(integer port)
integer bit
port = port&31
bit = 1<<port
port = port+32 if rdy&bit#0
port = port+64 if ack&bit=0
signal 3,0,port,"ETHERDTX fails" if port&96#0
twait; ethc = 16_30; twait; ethd = port; twait
end