Difference between revisions of "OSWORD &19"

From BeebWiki
Jump to: navigation, search
m (1 revision)
m (.)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
[[Category:OSWORD]]
+
[[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 39: Line 40:
 
* http://mdfs.net/Docs/Comp/BBC/Oswords
 
* http://mdfs.net/Docs/Comp/BBC/Oswords
 
{{Networking}}
 
{{Networking}}
 +
 +
==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.
 +
 
[[User:Jgharston|Jgharston]] 01:33, 19 December 2010 (UTC)
 
[[User:Jgharston|Jgharston]] 01:33, 19 December 2010 (UTC)
 +
[[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 22:55, 28 March 2015 (UTC)

Latest revision as of 19: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)