There are no other files named iolib5.doc in the archive.
IOLIB v:5 Release
----- --- -------
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.
2.0 EXTERNAL CHANGES
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
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
3.0 INTERNAL CHANGES
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
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
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
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
5.0 INSTALLATION INSTRUCTIONS
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
6.0 KNOWN DEFICIENCIES
None apart from those mentioned as being Unimplemented Ideas
7.0 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