.TITLE FQIO .IDENT /071878/ ; SUBROUTINE TO USE THE FILES 11 QIO MACRO TO READ/WRITE FILE ATTRIBUTE ; 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 .MCALL DIR$,QIOW$ ; FILE ATTRIBUTES DIRECTIVE PARAMETER BLOCK FQI: QIOW$ IO.WAT,5,5,,,,<,FAT> ;QIO READ ATTRIBUTES FQIO:: MOV #IO.RAT,FQI+Q.IOFN ;STORE READ ATTRIBUTE FUNCTION CODE MOVB @6(R5),FAT ;STORE ATTRIBUTE TYPE BMI COMMON ;MINUS = READ ATTRIBUTE MOV #IO.WAT,FQI+Q.IOFN ;STORE WRITE ATTRIBUTE FUNCTION CODE COMMON: MOV 2(R5),FQI+Q.IOPL ;STORE ADDRESS OF FID MOV @4(R5),FQI+Q.IOLU ;STORE LOGICAL UNIT NUMBER MOVB @10(R5),FAT+1 ;STORE NUBER ATTRIBUTE CHARACTERS MOV 12(R5),FAT+2 ;ADDRESS OF DATA BUFFER DIR$ #FQI ;EXECUTE F11 QIO FUNCTION. MOV $DSW,@14(R5) ;RETURN DIRECTIVE STATUS RET: RTS PC ;EXIT FAT: .BYTE 1,2 ;WRITE FILE OWNER UIC ATTRIBUTE LIST .WORD IUIC,0 IUIC: 0 .END ASTX$S ERR ERR: HALT .PSECT ASTADR,RW,D,GBL,REL,OVR ASTCHR: 0 ASTSP: 0 .PSECT VABORT,RW,D,GBL,REL,OVR ABORT: 0 .END