.TITLE MF02 READ A RECORD FROM A RECORD TYPE DEVICE .IDENT /MF02../ ; ; ; ; F$GETR:: ;THIS PROCEDURE READ A RECORD FROM A FILES ;STRUCTRURED DEVICE AND LOADS THE DATA ;INTO A STRING ; ; ; ENTRY CONDITIONS ; R0 -> ADDRESS OF CHARACTER STRING TO LOAD ; ; EXIT CONDITIONS ; R0 -> LOADED STRING IF STATUS = SUCCESS ; ; TST -2(R0) ;IS STRING WRITE PROTECTED BGT 10$ ;J IF STRING IS NOT WRITE PROTECTED EXITERROR ; 10$: SAVE R0,R1 ;PROTECT REGISTERS MOV R0,R1 ;HOLD STRING ADDRESS TST (R1)+ ;INC STRING POINTER TO DATA LOAD ADDRESS MOV F$FDB,R0 ;HOLD THE FDB ADDRESS FOR THIS FILE MOV -4(R1),F.URBD(R0) ;HOLD MAX ALLOWED RECORD LENGTH MOV R1,F.URBD+2(R0) ;HOLD ADDRESS OF OUTPUT DATA ; CALL .GET ;READ THE RECORD IFERROR 50$ ;J IF ERROR CONDITION MOV F.NRBD(R0),-(R1) ;STORE LENGTH RECIVED RECORD SETSUCCESS ;INDICATE JOB DONE OK 50$: UNSAVE R0,R1 ;RESTORE REGISTERS RETURN ;BACK TO CALLING PROGRAM ; ; .END ; ;