Difference between revisions of "OSWORD &19"

From BeebWiki
Jump to: navigation, search
m (Added Watford Electronics Speech.)
m (.)
 
Line 1: Line 1:
 
[[Category:OSWORD]]__NOTOC__
 
[[Category:OSWORD]]__NOTOC__
==OSWORD &19 (25) - IP Network receive==
+
{{PageTitle|OSWORD &19 (25): IP Network receive}}
  
 
This call is made by a modifed NFS to pass networking calls on to an IP
 
This call is made by a modifed NFS to pass networking calls on to an IP
Line 8: Line 8:
  
 
==Specification==
 
==Specification==
    XY?0=0 - Open receive block
+
===Open receive block===
    On entry:
+
  XY?0=0 - Open receive block
        XY?0  = 0
+
  On entry:
        XY?1  = must contain &7F
+
    XY?0  = 0
        XY?2  = port to receive on
+
    XY?1  = must contain &7F
        XY+3..4= station to receive from
+
    XY?2  = port to receive on
        XY!5  = reception buffer start address
+
    XY+3..4= station to receive from
        XY!9  = reception buffer end address
+
    XY!5  = reception buffer start address
    On exit:
+
    XY!9  = reception buffer end address
        XY?0  = 0 if no more space to open blocks, or number of opened
+
  On exit:
              reception block. Receive blocks can be 'wild', ie will
+
    XY?0  = 0 if no more space to open blocks, or number of opened
              receive from anyone if the port or station values are set to
+
          reception block. Receive blocks can be 'wild', ie will
              &00.
+
          receive from anyone if the port or station values are set to
   
+
          &00.
    XY?0<>0 - Read and delete receive block
+
===Read receive block===
    On entry:
+
  XY?0<>0 - Read and delete receive block
        XY?0  = receive block number to read
+
  On entry:
        XY!5  = receive buffer start address
+
    XY?0  = receive block number to read
        XY!9  = receive buffer end address
+
    XY!5  = receive buffer start address
    On exit:
+
    XY!9  = receive buffer end address
        XY?1  = flag from transmission block
+
  On exit:
        XY?2  = port received on
+
    XY?1  = flag from transmission block
        XY+3..4= station received from
+
    XY?2  = port received on
        XY!9  = updated to new address of buffer end
+
    XY+3..4= station received from
 +
    XY!9  = updated to new address of buffer end
  
 
Unread receive blocks must be deleted with [[OSBYTE &34|OSBYTE &34 (52)]].
 
Unread receive blocks must be deleted with [[OSBYTE &34|OSBYTE &34 (52)]].
Line 41: Line 42:
  
 
==Watford Electronics Speech control==
 
==Watford Electronics Speech control==
        On entry:
+
  On entry:
                XY!0  =address of data
+
    XY!0  =address of data
                XY?4  =flag
+
    XY?4  =flag
                XY+5..6=length of data
+
    XY+5..6=length of data
 
         If flag is 0 then the address points to a table of byte pairs that
 
         If flag is 0 then the address points to a table of byte pairs that
 
         are output as though with Speech OSBYTE &19.  
 
         are output as though with Speech OSBYTE &19.  

Latest revision as of 18:28, 7 January 2023

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)