IOBmem toolkit
                             ==============

  Wrapping for the IOB.xxx traps to send and fetch bytes into a buffer


Compatible with SMSQ/E, QDOS and Minerva


Usage:
------

Fetch string/bytes

       fetched% = FMUL2MEM%([#ch%;] address, buflen%)
       fetched% = FLIN2MEM%([#ch%;] address, buflen%)

      where:  #ch% is the channel number to use (default #3)

              addr is the address where to load.
                   must point to a buffer of at least bufflen
                   must be an even, positive, none-zero address

              buflen% is the size of the buffer
                   must be a positive number between 0 and 32767

       fetched% is either the number of bytes fetched (including LF, in
                   the case of FLIN2MEM)
                or an error code: Soft errors are NC, EOF, BFFL
                   (EOF is only returned when fetched% reaches zero
                   although it may in fact have been triggered on the
                   preceding call.)

       Hard errors: ICHN, etc

Note: LF is included in FLIN2MEM%, and must therefore be accommodated by
the size of the buffer. In the case of a Buffer Full error, the
terminating character is undefined.

If you use FLIN2MEM% in a window channel, the cursor appears and the string
may be edited; it works a bit like INPUT. This is not the case with
FMUL2MEM%. However, you can still type in characters only they wont be
echoed on screen, and any editing keystrokes, including <ENTER> will be
regarded as part of the data! It will only return when the buffer is full
or on EOF (where the channel is open to a file), or if <break> is pressed
(where possible, ie not normally when compiled).


Software status
---------------

V0.01, pjw, 2023 Jun 01

               Conditions of use and DISCLAIMER as per Knoware.no

Generated by QuickHTM, 2023 Aug 13