This is extracted from Phil Cannon's documentation. DABIO Direct access I/O for virtual blocks 13-Sept-76 P. Cannon This module provides the FORTRAN programmer with access to the READ$ and WRITE$ macros. The user can directly access any virtual block (256 words) within his file. The entry points DABRD and DABWT return when the I/O operation is complete. The entry points IDABRD and IDABWT initiate I/O transfers and the module WAIT should be used to test for the completion of the I/O operation. CALL IDABRD(FDB,BUF,LB,IBLK) CALL IDABWT(FDB,BUF,NB,IBLK) CALL DABRD(FDB,BUF,LB,IBLK,/NBT/,/IER/) CALL DABWT(FDB,BUF,NB,IBLK,/NBT/,/IER/) FDB FILE DESCRIPTOR BLOCK BUF DATA BUFFER LB LENGTH OF BUFFER IN BYTES NB NUMBER OF BYTES TO WRITE IBLK INTEGER*2 VARIABLE CONTAINING THE VIRTUAL BLOCK NUMBER TO BE READ/WRITTEN. NBT NUMBER OF BYTES TRANSFERRED IER ERROR FLAG POSITIVE IMPLIES NO ERROR ZERO IMPLIES END OF FILE NEGATIVE IMPLIES HARDWARE I/O ERROR FQIO This is an ordinary QIO function which makes use of a special set of QIO function codes for the files control processor to manipulate the file headers of a volume to read and write attributes. SUBROUTINE TO USE THE FILES 11 QIO MACRO TO READ/WRITE FILE ATTRIBUTES CALL FQIO(FDB(67),LUN,IAT,N,IBUF,IDSW) !TO READ ATTRIBUTE SIX PARAMETERS 1 FDB(67)= ADDRESS OF FILE ID=FILE NAME BLOCK (67=OFFSET OF FNB IN FDB) 2 LUN = ADDRESS OF LOGICAL UNIT TO USE 3 IAT=ADDRESS OF ATTRIBUTE TYPE TO BE READ/WRITTEN ;SEE FILES 11 QIO NOTES IF IAT <0 THEN ATTRIBUTE IS TO BE READ, IF IAT>0 THE WRITE ATTRIBUTE 4 N = NUMBER OF CHARACTERS TO READ OR WRITE ;SEE FILES 11 QIO NOTES 5 IBUF = ADDRESS OF BUFFER CONTAINING DATA TO READ/WRITE IN FILE HEADER 6 IDSW = ADDRESS TO RETURN DIRECTIVE STATUS WORD INIT Initializes the FDB. Must be called before ANY reference to the FDB is made. CALL INIT(FDB) OFNB Opens a file using the information stored in file name block of the file descriptor block. This subroutine calls the PARSE subroutine to fill in the file name block. CALL OFNB(FDB,HOC,LUN,FNM,IER) CALLS SUBROUTINE PARSE TO FILL IN FILE NAME IN FDB FROM FNM. FDB FILE DESCRIPTOR BLOCK ARRAY INTO WHICH FDB IS BUILT. HOC HOW OPEN CODE (RACC,FACC) 1 IMPLIES INPUT 16 IMPLIES OUTPUT LUN LOGICAL UNIT NUMBER FNM FULL FILE DESCRIPTOR NAME IE. DK0:[100,100]NAME.INF;1 IER ERROR FLAG POSITIVE IMPLIES NO ERROR ZERO IMPLIES AN ERROR NEGATIVE IMPLIES AN ERROR