;ENTER ; R4 CONTAINS THE NUMBER OF OPTIONAL PARAMETERS REMAINING ; IN THE ARGUMENT LIST. ; R5 IS POINTING TO THE ADDRESS OF THE FIRST OF TWO POSSIBLE ; OPTIONAL PARAMETERS. ;EXIT ; IF PRESENT THE TWO OPTIONAL PARAMETERS /NBT/ AND /IER/ ; ARE RETURNED TO THE FORTRAN CALLING PROGRAM ; THE NUMBER OF BYTES TRANSFERRED (NBT) IS TAKEN FROM THE ; "F.NBRD" OFFSET OF THE FDB. THUS THIS ROUTINE SHOULD ; ONLY BE CALLED BY MODULES WHICH ARE PERFORMING RECORD ; I/O (GET$,PUT$,GET$R,PUT$R). ; R4 IS DECREASED BY 2. .TITLE RIOCMP - FOR RECORD I/O, UPDATE /NBT/,/IER/ .IDENT /V01/ .PSECT .GLOBL RIOCMP .GLOBL IOFERR RIOCMP: JSR PC,NBTRIO ;TRY TO UPDATE THE NUMBER OF BYTES ;TRANSFERRED FROM THE "F.NBRD" ;OFFSET IN THE FDB. JSR PC,IOFERR ;TEST THE F.ERR OFFSET IN ;THE FDB AND RETURN THE STATUS TO ;THE CALLING FORTRAN PROGRAM. RTS PC .PAGE .SBTTL NBTRIO - UPDATE THE NBT FOR RECORD I/O ;ENTER ; R5 POINTS TO THE ADDRESS IN THE ARGUMENT LIST, AT WHICH ; THE CALLING FORTRAN PROGRAM WISHES THE NUMBER OF BYTES ; TRANSFERRED (NBT) TO BE STORED. ; R4 CONTAINS THE NUMBER OF OPTIONAL PARAMETERS REMAINING ; IN THE ARGUMENT LIST ;EXIT ; THE WBT SPECIFIED IN THE "F.NBRD" OFFSET OF THE FDB ARE ; RETURNED TO THE CALLING PROGRAM. ; ; IF THE ADDRESS POINTED TO BY R5 IS EQUAL TO -1, NO STORAGE ; TAKES PLACE. ; IN EITHER CASE R5 IS INCREMENTED BY 2. ; R4 IS DECREMENTED NBTRIO: DEC R4 ;DECREMENT THE NUMBER OF PARAMETERS ;ARE THERE ANY PARAMETERS LEFT ? BLT 1$ ;YES-THEN EXIT CMP (R5),#-1 ;IS THE ADDRESS SPECIFIED EQUAL TO -1 ? BEQ 1$ ;YES- THEN EXIT MOV F.NRBD(R0),@(R5);NO-STORE THE NBR OF BYTES TRANSFERRED 1$: TST (R5)+ ;ADVANCE R5 TO THE NEXT PARAMETER RTS PC .END