$MACRO FDB lun,B/R,[block]
I%DOUT <;FDB lun B/R,[block]>
       .mcall fdop$a,fdat$a,fdbdf$,fdrc$a,fdbk$a
       fdbdf$
       fdop$a #@1
I%IDN <#@2> <B> <       fdat$a r.fix,,512.>
I%IDN <#@2> <B> <       fdrc$a fd.rwm>
I%IDN <#@2> <R> <       fdat$a r.var,fd.cr>
I%NB  <#@3>     <       fdbk$a #@3,512.>
$ENDM
/
	PROGRAM stdout
stdout:: .word outr
	.word 0                  ;b.lh   listhead pointer
	.word -1,-1              ;b.lhl  listhead links for LRU blocks
				 ;b.peek or peek char if rsx i/o
	.byte 4.                 ;b.max  maximum blocks (default = 4)
	.byte -1                 ;b.cur  current in list
	.word -1                 ;b.type type of i/o 0=buffered record, 1=unix
	.word -1                 ;b.dirty 0=dirty, 1=not written into yet
	.word  1                 ;b.stat  1=ok <0=eof/err  on last seek
	.word -1,-1              ;b.seek seek address double word

	.word -1                 ;b.stype saved attributes (f.rtyp & f.ratt)
	.word -1                 ;b.ssize saved record size
	.word -1                 ;b.sracc saved record access

	.word -1                 ;b.io    direction of i/o -1=r,0=rw,1=w

	.word  0                 ;b.prec pointer to record buffer if record i/o
        .word -1                 ;b.pos  position in record buffer if record i/o
	.word 12345.             ;b.check check word (see if a valid fdb)
outr:   FDB 2 R
	.MCALL FSRSZ$
	i%dout <FSRSZ$ 1>
	.END
