OSWORD &19

From BeebWiki
Jump to: navigation, search
OSWORD &19 (25): IP Network receive

This call is made by a modifed NFS to pass networking calls on to an IP networking handler. It should not be called directly by the user, programs should call OSWORD &11 and allow the networking system to forward the call to the appropriate handler.

Specification

Open receive block

 XY?0=0 - Open receive block
 On entry:
   XY?0   = 0
   XY?1   = must contain &7F
   XY?2   = port to receive on
   XY+3..4= station to receive from
   XY!5   = reception buffer start address
   XY!9   = reception buffer end address
 On exit:
   XY?0   = 0 if no more space to open blocks, or number of opened
          reception block. Receive blocks can be 'wild', ie will
          receive from anyone if the port or station values are set to
          &00.

Read receive block

 XY?0<>0 - Read and delete receive block
 On entry:
   XY?0   = receive block number to read
   XY!5   = receive buffer start address
   XY!9   = receive buffer end address
 On exit:
   XY?1   = flag from transmission block
   XY?2   = port received on
   XY+3..4= station received from
   XY!9   = updated to new address of buffer end

Unread receive blocks must be deleted with OSBYTE &34 (52).

See Also

Networking calls

Watford Electronics Speech control

 On entry:
   XY!0   =address of data
   XY?4   =flag
   XY+5..6=length of data
       If flag is 0 then the address points to a table of byte pairs that
       are output as though with Speech OSBYTE &19. 
       If flag is &8x then the address points to an ASCII string of words or
       allophones, terminated with <cr> or &00. The string will be spoken
       as with *TALK
       If flag is &Cx then the address points to an ASCII string of word or
       allophones of the length specified in the control block.
       Calls with flag set to &8x or &Cx, bit 3 of the flag sets the unknown
       word mode. If flag is &x0 unrecognised words are spoken letter by
       letter. If flag is &x8 unrecognised words are ignored and the call
       is passed to the vector at &0230.

Jgharston 01:33, 19 December 2010 (UTC) Jgharston (talk) 22:55, 28 March 2015 (UTC)