;++ ; ; Modified FOR$IO_END from VAX RTL to allow interface to REREAD ; ; Neal Lippman, Douglass J. Wilson, MIT-JCF, October, 1980 ; ;-- .TITLE FOR$IO_END .IDENT \1-010\ .library \sys$library:lib\ .EXTRN OTS$$A_CUR_LUB,FOR$$AA_UDF_PR9 .EXTRN FOR$$ERR_ENDHND .EXTRN FOR$$CB_POP,FOR$$SIGNAL .extrn reread_bufadr .extrn reread_buflen .psect jcf_for_impure,rd,wrt L_INCR_DEPTH: .blkl 1 A_END_ADR: .blkl 1 A_ERR_ADR: .blkl 1 L_UNWIND_ACTION:.blkl 1 USER_FRAME: .blkl 1 .PSECT _FOR$CODE,NOWRT,SHR,PIC,2 ;;; ??? .ENTRY FOR$IO_END,^M MOVAB FOR$$AA_UDF_PR9,R3 SUBL2 #12,SP CLRL L_INCR_DEPTH CLRL A_END_ADR CLRL A_ERR_ADR CLRL L_UNWIND_ACTION MOVAL 2$,(FP) MOVL OTS$$A_CUR_LUB,R11 movl rab$l_ubf(r11),reread_bufadr ;save the RMS buffer address movw rab$w_rsz(r11),reread_buflen ;save the buffer size CLRL L_UNWIND_ACTION MOVL -140(R11),A_ERR_ADR MOVL -136(R11),A_END_ADR CLRL L_INCR_DEPTH pushr #^m MOVL -180(R11),r0 movl r0,user_frame ;;; MOVL -188(R11),(r0) ;;; MOVZBL -143(R11),R0 ;;; MOVL FOR$$AA_UDF_PR9[R0],R0 JSB FOR$$AA_UDF_PR9[R0] MOVZBL -144(R11),IOSTAT BEQL 1$ PUSHL IOSTAT CALLS #1,FOR$$SIGNAL 1$: JSB FOR$$CB_POP MOVL IOSTAT,R0 RET 2$: .WORD 0 MOVL 8(AP),R0 MOVL 4(AP),R0 PUSHAB L_INCR_DEPTH PUSHAB A_END_ADR PUSHAB A_ERR_ADR PUSHAB L_UNWIND_ACTION PUSHL #4 PUSHL SP MOVQ 4(AP),-(SP) CALLS #3,FOR$$ERR_ENDHND RET .psect jcf_for_impure,rd,wrt iostat: .blkl 1 .end