.TITLE RBINIO / / / FIRST PRINTING, FEBRUARY 1974 / / THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO / CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED / AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. / DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPON- / SIBILITY FOR ANY ERRORS THAT MAY APPEAR IN THIS / DOCUMENT. / / THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FUR- / NISHED TO THE PURCHASER UNDER A LICENSE FOR USE ON / A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH / INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR / USE IN SUCH SYSTEM, EXCEPT AS MAY OTHERWISE BE PRO- / VIDED IN WRITING BY DIGITAL. / / DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY / FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIP- / MENT THAT IS NOT SUPPLIED BY DIGITAL. / / COPYRIGHT (C) 1974, BY DIGITAL EQUIPMENT CORPORATION / / .EJECT / /COPYRIGHT 1971, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. / /EDIT #006 1-28-72 **REF**WAD / /ASSEMBLY PARAMTERS: / /DEFINE RSX FOR RSX SYSTEMS. /NO PARAMETERS FOR DOS SYSTEMS. / /RANDOM ACCESS BINARY I/O OBJECT-TIME PACKAGE / CONTAINS ROUTINES TO INIT. A DEVICE FOR R.A., / BINARY I/O AND TO DO I/O CLEANUP. / THE BINIO ROUTINES .RI, .RJ, .RK, .RL, AND .RB ARE / USED FOR RANDOM ACCESS I/O FOR THE DIFFERENT TYPES / OF DATA ELEMENTS AND FOR ARRAYS. / /ROY FOLK / / INTERNAL .GLOBALS-- .GLOBL .RS /INIT. DEVICE FOR R.A. BINARY READ .GLOBL .RX /INIT. DEVICE FOR R.A. BINARY WRITE .GLOBL .RG /R.A. BINARY I/O CLEANUP .GLOBL RBINIO RBINIO=. / EXTERNAL GLOBALS-- .GLOBL .FH /R/W FLAG (FIOPS) .GLOBL .RN /R.A. FLAG (FIOPS) .GLOBL .RCDNM /RCD. NUM. (RANCOM) .GLOBL .INRRW /INIT. RANDOM R/W (RANCOM) .GLOBL .MDSW /MODS SW.: = 0 (BIN.); = 2 (ASCII) .GLOBL .FNPTR /PNTR. TO FIRST WD. OF RCD. (RANCOM) .GLOBL .RIO /RANDOM I/O (RANCOM) .GLOBL .ADAVR /ADDR. OF ASSOC. VAR. (RANCOM) .GLOBL .LRFLG /LAST FCD. FLG. (RANCOM) .GLOBL .ER /ERROR (OTSER) .GLOBL .BUFLC /BUFF. LOC. (BINIO) .GLOBL .RDTV /READ TRANS. VEC. (BINIO) .GLOBL .IBLB /INIT. BINARY LINE BUFF. (BINIO) .GLOBL .WRTV /WRITE TRANS. VEC. (BINIO) .GLOBL .ER4 /REINIT. .ER (OTSER) / /CONSTANTS S00000 000000 S00001 1 S00007 7 W00000 400000 /WORKING STORAGE LDBNER .DSA BINEOR TEMP 0 .EJECT /BINARY RANDOM READ AND WRITE / / WRITE / CALLING SEQUENCE- / JMS .RX / .DSA ADDR. OF SLOT NUMBER / (AC HOLDS INTEGER RECORD NUMBER) .RX 0 DAC* .RCDNM LAC S00001 DAC* .FH /SET F/W FLG. JMP RWCOM / READ / CALLING SEQUENCE-- / JMS .RS / .DSA ADDR OF SLOT NUMBER / (AC HOLDS INTEGER RECORD NUMBER) .RS 0 DAC* .RCDNM DZM* .FH /SET R/W FLG. LAC .RS DAC .RX RWCOM LAC W00000 /400000 DAC* .RN DZM* .MDSW /BIN. MODE LAC* .RX /ADDR. OF SLOT NUM. JMS* .INRRW .IFUND RSX /ONLY CHECK FILE HEADERS WITH DOS15. JMS CHKBMD /CHECK BINARY MODE .ENDC /INIT. .IBLB AND .FI (IN BINIO) FOR R.A. LAC* .FNPTR /AC _ ADDR. OF FIRST WD OF RCD. DAC* .BUFLC LAC LDBNER /CONTAINS BINEOR DAC* .RDTV DAC* .WRTV / JMS* .IBLB /INIT. LINE BUF. PARAMS. ISZ .RX /INCREM. FOR RTN JMP* .RX .EJECT .IFUND RSX /CHECK BINARY MODE /CALLING SEQUENCE-- / JMS CHKBMD CHKBMD 0 LAC* .FNPTR /ADDR. OF HDR. WD. 0 TO AC DAC TEMP LAC* TEMP /HDR. WD. 0 TO AC AND S00007 /MODE BITS SAD S00000 JMP* CHKBMD JMS* .ER /BAD MODE OR EOF ERROR 11 .EJECT .ENDC /BINARY END-OF-RECORD /CALLING SEQUENCE-- / JMS BINEOR BINEOR 0 DZM* .LRFLG /CLR. LAST RCD. FLG /PREPARE AND OUTPUT OLD RCD. (IF WRITE) AND SET / PTRS. FOR NEW RCD. JMS* .RIO LAC* .FNPTR /RESET .BUFLC FOR .IBLB INITIAL. DAC* .BUFLC / .IFUND RSX /CHECK FILE HEADERS WITH DOS15 ONLY. JMS CHKBMD /CHECK BINARY MODE .ENDC JMS* .IBLB /INIT. L.B. PARAMS. JMP* BINEOR .EJECT /BINARY RANDOM ACCESS I/O CLEAN-UP /CALLING SEQUENCE-- / JMS .RG .RG 0 LAC* .ADAVR DAC TEMP ISZ* TEMP /INCREM. ASSOC. VAR. LAC* .FH SNA /SKP IF WRITE JMP RG1 /READ - RTN. ISZ* .LRFLG /SET LAST RCD. FLG. JMS* .RIO /OUTPUT FINAL RCDS. RG1 LAC (NOP /REINIT. .ER DAC* .ER4 JMP* .RG .END