/ / / 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 / EDIT #1 / /COPYRIGHT 1973, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. / / 14 JUN 73 T.MURRAY / 28 JAN 74 M. HEBENSTREIT / / DSKGET AND DSKPUT SUBROUTINE / / DSKGET - FORTRAN CALLABLE ENTRY POINT TO TRANSFER DATA / FROM A DISK TO AN ARRAY / DSKPUT - FORTRAN CALLABLE ENTRY POINT TO TRANSFER DATA / FROM AN ARRAY TO DISK / / CALLING SEQUENCE: / CALL DSKGET/DSKPUT (CTB,OFFSET,WORDS,ARRAY, / + DVCODE,UNIT,EV) / WHERE / CTB 7 WORD CONTROL TABLE / CTB(1) TO CTB(3) = CONTROL TABLE / RETURNED BY DSKAL SUBROUTINE / CTB(4) TO CTB(7) RESERVED, USED BY THIS SUB- / ROUTINE AS GET/PUT CTB / OFFSET DISK ADDRESS OFFSET / WORDS NUMBER OF WORDS TO TRANSFER / ARRAY CORE ADDRESS AT WHICH TRANSFER BEGINS / DVCODE DISK DEVICE CODE / UNIT DISK DEVICE UNIT NUMBER / EV EVENT VARIABLE ADDRESS / IDX=ISZ .GLOBL DSKGET, DSKPUT, .DAA DSKGET 0 /DSKGET ENTRY LAC DSKGET /MOVE RETURN POINT DAC GETPUT CLA /CLEAR BITS TO FORM CPB CODE JMP ENTRY /GOTO COMMON ENTRY DSKPUT 0 /DSKPUT ENTRY LAC DSKPUT /MOVE RETURN POINT DAC GETPUT LAC (100) /SET BITS TO FORM PUT CPB CODE ENTRY TAD (13000) /COMPLETE GET (13000) OR PUT (13100) DAC CPB /FUNCTION CODE SKP /SKIP RETURN POINT, WHICH MUST SHOW UP GETPUT 0 JMS* .DAA /JUST BEFORE .DAA CALL FOR .DAA TO WORK JMP ARGEND TBLADR 0 OFFSET 0 WORDS 0 ARRAY 0 DVCODE 0 UNIT 0 EVNTV 0 ARGEND LAC EVNTV /MOVE EVENT VAR. ADDRESS. THEN CLEAR DAC REQEV /POINTER, SINCE THIS PARAMETER IS OPTIONAL. DZM EVNTV LAC* DVCODE /MOVE DEVICE CODE TO 5TH WORD OF DAC DSKTYP /GET/PUT CPB LAC TBLADR /GET PASSED CTB ADDRESS IAC /SAVE ADDR. OF WD 1 OF CTA DAC TABTMP AAC 2 / DEFINE START OF GET/PUT CPB, DAC CTBADR /LAST 4 WORDS OF TBLADR. LAC* UNIT /GET THE UNIT NUMBER LRS!10000 3 /CLQ, THEN LEFT JUSTIFY UNIT NO. IN MQ LAC* TABTMP /GET PLATTER NUMBER, 2ND WORD OF DSKAL CPB IDX TABTMP IDX TABTMP AND (77777) /CLEAR UNIT NUMBER FIELD OMQ /IMPOSE UNIT NUMBER DAC* TABTMP /PUT INTO 1ST WORD OF GET/PUT CPB LAW -1 TAD TABTMP DAC TABTMP LAC* TABTMP /GET DISK BASE ADDRESS, 3RD WORD OF DSKAL CPB IDX TABTMP IDX TABTMP TAD* OFFSET /COMPUTER DISK TRANSFER START ADDRESS DAC* TABTMP /PUT INTO 2ND WORD OF GET/PUT CTB IDX TABTMP LAC ARRAY /GET CORE START ADDRESS DAC* TABTMP /MOVE TO THIRD WORD OF GET/PUT CPB IDX TABTMP LAC* WORDS /GET NUMBER OF WORDS TO TRANSFER DAC* TABTMP /PUT INTO 4TH WORD OF GET/PUT CBP CAL CPB /EXECUTE GET/PUT FUNCTION JMP* GETPUT /RETURN / TABTMP 0 / CPB 0 /GET (13000) OR PUT (13100) REQEV 0 /EVENT VARIABLE ADDRESS 1 /LUN-1 CTBADR 0 /GET/PUT CONTROL TABLE ADDRESS DSKTYP 0 /DISK TYPE CODE / / /THE GET PUT CAL IS CONSTRUCTED TO THE FORM / / UNIT (BITS 0-3), PLATTER NO. (BITS 4-17) / DISK STARTING ADDRESS / CORE STARTING ADDRESS / NUMBER OF WORDS TO TRANSFER / .END