Trailing-Edge - PDP-10 Archives - decuslib10-06 - 43,50362/iolib5.doc
There are no other files named iolib5.doc in the archive.

                             IOLIB v:5 Release
                             ----- --- -------

                                 Rob Cook
                    LaTrobe University Computer Centre


          IOLIB  version  5  is  a  maintenance  release  that  fixes   all
     outstanding  bugs, and provides compatibility with C.MAC version 7 and
     MACRO-10 version 50.  IOLIB version 5 contains a few new features  and
     changes in specifications, detailed below.


     1.  IOLIB requires C.MAC version 7 and MACRO-10 version 50.  The files
         C.UNV  and  IO.UNV  should be installed on ersatz device UNV:.  If
         the monitor in pre-5.07 and does not recognise device UNV:,  C.UNV
         and IO.UNV should go onto SYS:.

     2.  the instructions for compiling and loading a  program  with  IOLIB
         are  very  much simpler due to the transparent way that MACRO v:50
         handles UNIVERSAL files.  If the user program contains  a  'SEARCH
         C,IO'  instruction  he  can say 'EXECUTE MYPROG,@MAC:IOLO' and all
         good things happen.

         Users are not advised to use the .REQUEST  pseudo-op  to  force  a
         library  search  of  IOLIB  at load time because the IOLIB library
         needs to be searched twice, and this is not easy with .REQUEST

     3.  the VERSN$ macro types the version numbers of C and IO used during

     4.  there are new macros and routines to open  a  file  for  appending
         called  $APEND  and  $APDWT.  These routines are similar to $UPDAT
         and $UPDWT.

     5.  there are new macros and routines to write a number as a number od
         blocks,  34B, ($WBWRD), a number of words ,42045W, ($WWWRD) and as
         a quantity of core in pages/kwords if an exact number of units and
         in words if not ($WCWRD).

     6.  the XTUUO$, XTCAL$ and XTDCL$ macros have  had  their  definitions

     7.  MAKFD$ is changed slightly to  remove  the  case  whereby  an  FDB
         address  of less than 20 was assumed to be an ac that points to an
IOLIB v:5 Release                                                    Page 2

     8.  add new fields to the FDB.  It now contains a path block, an extra
         word  for  the  buffer headers to allow MPX channel use, and words
         for the results of /ABEFORE  and  /ASINCE  switches.   MAKFD$  and
         $CLRFD  setup  $FDPPN  to  point  to  $FDPTH,  but  $FDPPN  may be
         overwritten by a PPN.  The buffer headers are shared by a  6  word
         path mask block and the name mask word.  $FDDIM, the old directory
         mask has been removed.

     9.  two  new  fields  have  been  added  to  the  IDB,  and  both  are
         initialised  by  BEGIN$  They  are  $IDPTH, the job's default path
         spec., and $IDCPU which defines the CPU we are running on (0=KA10,

    10.  the feature test switch FT$KIX has dissappeared.   IOLIB  runs  on
         both cpus without modification.

    11.  a new macro ADVIS$ to print advisory messages enclosed in [].  The
         definition is the same as for FATAL$.

    12.  any severity flag character can be set when calling $ERROR.

    13.  new macros and routines, $MTxxx and MTxxx$ to execute  MTAPE  UUOs
         for the current file

    14.  a $BEGIN routine to do most of the  work  of  BEGIN$.   BEGIN$  is
         reduced  to 5 words of code.  The first user word has the internal
         label $$BEG.


     1.  $ROCT?  and $RDEC?  have been restructured to use a digit  reader,
         thus sortening both of them and the combination.

     2.  $$XUUO and $$XCAL have been made INTERNAL to aid debugging

     3.  $WWORD now continues writing characters until the SIXBIT  word  is
         empty.  It does not stop on the first blank.

     4.  many bug fixes and speed improvements

     4.0  EDITS

     IO        IOLIB     Changes
     --        -----     -------

               143       fix $MKBUF where .BFADR was wrongly  addresses  as

     134       144       add  symbols  $BFSTS,  $BFHDR  and  $BFCNT  to  IO
IOLIB v:5 Release                                                    Page 3

                         equivalent  to the C v:6 symbols of the same name.
                         Use these symbols in IOLIB.

               145       correct insignificant typo in $RWORD

               146       write a digit reader $$RUDO and make  $ROCT?   and
                         $RDEC?  use it.

               147       change $RCASH to use $$RUDO.  A user can now  type

               150       fix bug in $CLRFD with bad stack handling on error

               151       fix similar problems in $INPUT and $OUTPU

               152       fix another in $CRGET

               153       fix bug in $TBUUO which prevents name of  RUN  UUO
                         from being output

               154       fix stack handling bug in $RDATE

               155       make $$XUUO and $$XCAL into INTERNals

               156       alter $WWORD so that it outputs all characters  in
                         the SIXBIT word until the word is nul

     136       157       add  $WBWRD,  $WCWRD  and  $WWWRD  and  associated

     137                 change FW$$S definition to remove  possibility  of
                         spurious V errors through MACRO 50 bug

     140                 alter MAKFD$ definition to remove same.   Also  if
                         the  address  field  of  the argument list is 0-17
                         assume real address instead  of  indirect  through

               160       make $WDATE more efficient

               161       rewrite $CNVUI ala SCAN v:6

               162       rewrite $SAVE?  ala SPR 10-13836

               163       fix bug in $ERRIO whereby filenames sometimes came
                         out in the wrong format

               164       fix bug in $INPUT/$OUTPU  which  made  all  errors
                         into 'UNK' errors

               165       change $BATCH to use a GETTAB instead of GETLCH

     141       166       add $APEND and $APDWT and macros

     142       167       fix bug in $UPDWT so that it can handle a T1 arg.
IOLIB v:5 Release                                                    Page 4

     143       170       add new fields  to  FDB  for  path  spec.,  longer
                         buffer  headers etc.  Fix routines which use these
                         fields to do it correctly.

     144                 fix MAKFD$ and FDESC$ to do same

     145       171       add new fields to IDB for default  path  and  cpu.
                         Fix heap routines to use cpu info.

     146                 add PRINTX C and IO version numbers to VERSN$

               172       cure $WPATH problem with edit #170

     147                 get rid of FT$KIX

               173       use VERSN$ macro to define IOLIB version number

     150       174       implement $ADVIS and ADVIS$

               175       change verbosity handling to use bits  in  monitor
                         watch table

               176       fix bug whereby $TBMTH got loaded into the LOSEG

               177       fix bug in $ERROR caused by edit #175

               200       fix bug in $RFILE caused by edit #172

     151       201       add $MTxxx routines and MTxxx$ macros  to  execute
                         MTAPE UUOs for the current file.

     152       202       change BEGIN$ so that it fixes up PORTALs and  CCL
                         entry   and   then   calls  a  $BEGIN  routine  to
                         initialise everything.  BEGIN$ always generates  5
                         words  of  code  now  and  labels  the  first user
                         location $$BEG.

               203       use GETTABs to  find  the  program  name  and  PPN
                         instead  of  the values passed in te acs on entry.
                         Trouble is $IDPEX and $IDPDV are not filled now.

               204       fix bug introduced by edit #202

     153       205       fix bug introduced by edit #203


     1.  place IOLIB.REL on MAC:

     2.  place C.UNV and IO.UNV on UNV:  (C version 7, remember)

     3.  place IOLO.CMD and IOHI.CMD on MAC:
IOLIB v:5 Release                                                    Page 5


          None apart from those  mentioned  as  being  Unimplemented  Ideas


     1.  a prompt and reply package whereby a caller can specify a question
         and  the  form  of a reply, call a subroutine and wait till a good
         reply is typed.

     2.  interface to a WILD package

     3.  interface to a QUEUER package

     4.  all SCAN v:7 features