ߋtv ?B-NO BOOT ON VOLUME @w p@w wP׭ ׭ w f& fwW#w v   @ @wP  @& 7 "  BLOCK@   IS BAD   -̂@ &   # p@ zw 7 P7 R & B g wD ѕ  Rì     s   p x] \Z 1  d s  -2&w* KkQ.@QkQ .y,dkQ .ZI9kQ .:$"kQ .&kQ.Xq|kQ .l8kQ .t:#kQ .ZkQ .GwSkQ. zykQ .GwgkQ .wkQ .8GkQ .8<}kQ..@QkQ .8KkQ .8<}kQ .9}kQ .B9 kQ.]9x}kQ .. kQ .gMHkQ .T`;kQ .fZkQ.Zg,kQ . qorkQ .;N`kQ .[qMkQ .9;[kQ.z4fkQ .l;C^kQ .t;:kQ .t;akQ .w;kQ.|C^kQ .;`;kQ .[MDkQ .u~ zkQ .D; kQ.ARkQ .;t~kQ .;kQ .<;` kQ .H;'kQ.;e;kQ .; kQ .Du~kQ .~kQ .H;@kQ.u~; kQ .59}kQ .:`"kQ .8kQ .8'kQ.u~$kQ .8YkQ .zfKkQ .T}kQ .<;f kQ.H;'kQ .;f;kQ .;&kQ .;;2kQ .;WkQ.&#kQ.>kQ .&#kQ.A kQ .&#kQ .kQ .A kQ .@KkQ .)?kQ .?kQ.9kQ .y?kQ .|?}kQ .@kQ .;kQ. NkQ .p:kQ .qkQ .w3XkQ .?dkQ.5:WkQ .{8f9kQ .u~@kQ .@kQ .:wkQ .8@8kQ .\gy' .,y' .Q`kQ.:T,`kQ .iTXkQ .Q$:kQ .&#kQo.&#kQo.&#kQo.&#kQo.;f;kQ .;&kQ .;;2kQ .;WkQ.&#kQ.>kQ .&#kQ.A kQ .&#kQ . B THEN I > 0 ; IN ADDITION, WHEN A IS NOT EQUAL TO B, THE ABSOLUTE VALUE OF THE ; VARIABLE I IS SET TO THE CHARACTER POSITION OF THE FIRST INEQUALITY ; FOUND IN SCANNING. THE STRINGS ARE COMPARED LEFT-TO-RIGHT, ONE ; CHARACTER AT A TIME USING THE ASCII CODES FOR THE CHARACTERS. IF ; THE STRINGS A AND B ARE NOT OF THE SAME LENGTH, THEN THE SHORTER ; ONE IS TREATED AS IF IT WERE PADDED ON THE RIGHT WITH ENOUGH BLANKS ; TO MAKE THE TWO LENGTHS EQUAL. NEITHER STRING IS CHANGED BY THIS ; ROUTINE. A NULL STRING ARGUMENT IS EQUIVALENT TO A STRING CONTAINING ; ANY NUMBER OF BLANKS. R0=%0 R1=%1 R2=%2 R3=%3 R4=%4 R5=%5 SP=%6 PC=%7 .GLOBL $SYSLB ;REFERENCE VERSION NUMBER .GLOBL SCOMP, ISCOMP ;ENTRY POINTS SCOMP: ISCOMP: MOV (R5)+,R3 ;# OF ARGS IN LOW BYTE MOV (R5)+,R1 ;POINTER TO 1ST STRING (A) MOV (R5)+,R2 ;POINTER TO 2ND STRING (B) CLR R0 ;CHARACTER POSITION 1$: INC R0 ;COUNT TSTB @R1 ;AT END OF 1ST STRING? BEQ 5$ ;YES TSTB @R2 ;AT END OF 2ND STRING? BEQ 7$ ;YES CMPB (R1)+,(R2)+ ;COMPARE 2 CHARACTERS 2$: BEQ 1$ ;BRANCH IF EQUAL SO FAR BGT 3$ ;BRANCH IF A > B NEG R0 ;RETURN NEGATIVE (A < B) 3$: CMPB #3,R3 ;ARGUMENT I GIVEN? BHI 4$ ;NO, JUST RETURN VALUE IN R0 MOV R0,@(R5)+ ;STORE RESULT INTO I 4$: RTS PC 5$: TSTB @R2 ;AT END OF BOTH STRINGS? BEQ 6$ ;YES, RETURN EQUAL INDICATION CMPB #40,(R2)+ ;ASSUME A PADDED WITH BLANKS BR 2$ ;JUMP TO NORMAL COMPARISON 6$: CLR R0 ;RETURN EQUAL INDICATOR BR 3$ 7$: CMPB (R1)+,#40 ;ASSUME B PADDED WITH BLANKS BR 2$ ;TO NORMAL COMPARISON .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE SUBSTR ; E. PETERS ; CALL SUBSTR(IN,OUT,I[,J]) ; A SUBSTRING IS TAKEN FROM THE STRING SPECIFIED BY IN BEGINNING ; AT CHARACTER POSITION I. THE RESULT IS PLACED IN OUT. IF OPTIONAL ; ARGUMENT J IS SPECIFIED, THE SUBSTRING WILL CONTAIN AT MOST J ; CHARACTERS. IF J IS NOT GIVEN, THE SUBSTRING WILL INCLUDE ALL CHAR- ; ACTERS TO THE RIGHT OF CHARACTER POSITION I. IN AND OUT MAY BE THE ; SAME ARRAY. IF J=0 THEN OUT IS REPLACED WITH A NULL STRING. THE ; OLD CONTENTS OF OUT ARE LOST WHEN THIS ROUTINE IS CALLED. R0=%0 R1=%1 R2=%2 R3=%3 R4=%4 R5=%5 SP=%6 PC=%7 .GLOBL $SYSLB ;REFERENCE VERSION NUMBER .GLOBL SUBSTR ;ENTRY POINT SUBSTR: MOV (R5)+,R3 ;# OF ARGS IN LOW BYTE MOV (R5)+,R1 ;INPUT STRING POINTER MOV (R5)+,R2 ;OUTPUT STRING POINTER MOV @(R5)+,R4 ;STARTING CHAR POSITION BEQ 2$ ;TREAT 0 AS ONE 1$: TSTB (R1)+ ;SKIP CHARS TO STARTING POSITION BEQ 4$ ;REACHED END OF STRING, NO OUTPUT DEC R4 ;COUNT SKIPPED CHARS BNE 1$ DEC R1 ;BACK UP CHAR POINTER 2$: CMPB #4,R3 ;LENGTH GIVEN FOR SUBSTRING? BHI 6$ ;NO, DO A FAST SUBSTR MOV @(R5)+,R4 ;GET LENGTH BEQ 4$ ;ZERO LENGTH, RETURN NULL STRING 3$: MOVB (R1)+,(R2)+ ;COPY SUBSTRING BEQ 5$ ;REACHED END OF INPUT, RETURN DEC R4 ;COUNT LENGTH BNE 3$ 4$: CLRB (R2)+ ;TERMINATE OUTPUT STRING 5$: RTS PC 6$: MOVB (R1)+,(R2)+ ;COPY TO END BNE 6$ RTS PC .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE SCOPY ; E. PETERS ; CALL SCOPY(IN,OUT[,LEN[,ERR]]) ; THIS ROUTINE COPIES A STRING OF CHARACTERS FROM ARRAY IN TO ; ARRAY OUT. COPYING STOPS EITHER WHEN A NULL (ZERO) CHARACTER ; IS MOVED, OR IF LEN IS GIVEN AND LEN CHARACTERS HAVE BEEN ; MOVED. (THE EFFECT OF THE LEN ARGUMENT IS TO TRUNCATE THE ; OUTPUT STRING TO A GIVEN LENGTH IF NECESSARY.) IF THE ERR ; ARGUMENT IS GIVEN AND THE OUTPUT STRING WOULD HAVE BEEN LONGER ; THAN LEN CHARACTERS, THEN ERR IS SET TO .TRUE.; OTHERWISE, IT ; IS UNCHANGED. IF THE ERR ARGUMENT IS GIVEN, THEN THE LEN ; ARGUMENT IS REQUIRED. THE OLD CONTENTS OF THE ARRAY OUT ARE ; LOST WHEN THIS SUBROUTINE IS CALLED. IN AND OUT MAY BE THE ; SAME ARRAY. ; SCOPY IS USEFUL WHEN INPUTTING CHARACTER STRINGS: ; READ(5,100) BUFR !BUFR IS 80 BYTE ARRAY ; 100 FORMAT(80A1) !BUT NOT IN STRING FORM ; CALL SCOPY(BUFR,STRING,80) !COPY TO 81 ELEMENT ; ! LOGICAL*1 ARRAY IN STRING FORM ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;REFERENCE VERSION NUMBER OF SYSLIB .GLOBL SCOPY ;ENTRY POINT NAME SCOPY: MOV (R5)+,R3 ;# OF ARGS IN LOW BYTE MOV (R5)+,R1 ;PTR TO INPUT STRING MOV (R5)+,R2 ;PTR TO OUTPUT STRING CMPB #2,R3 ;LEN ARGUMENT GIVEN? BEQ 3$ ;NO, DO A FAST COPY MOV @(R5)+,R4 ;GET LEN 1$: MOVB (R1)+,(R2)+ ;MOVE A BYTE BEQ 2$ ;DONE DEC R4 ;COUNT DOWN LENGTH BNE 1$ ;KEEP ON LOOPIN' CLRB (R2)+ ;TERMINATE OUTPUT STRING HERE CMPB #4,R3 ;ERR ARGUMENT GIVEN? BHI 2$ ;NO, DONE TSTB @R1 ;INPUT DONE ANYWAY? BEQ 2$ ;YES, GET OUT MOVB #-1,@(R5)+ ;SET ERR TO .TRUE. 2$: RTS PC ;GO BACK 3$: MOVB (R1)+,(R2)+ ;COPY STRING BNE 3$ ;UNTIL A NULL RTS PC .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE CLOSEC ; R. BILLIG ; CALL CLOSEC( ICHAN ) ; ; NO ERRORS ARE POSSIBLE. ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL CLOSEC CLOSEC: MOV @2(R5),R0 ;GET CHANNEL NO. TO CLOSE BIS #6*400,R0 ;INSERT CLOSE CODE EMT 374 ;.CLOSE RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE ICMKT ; R. BILLIG ; I = ICMKT( ID, ITIME(2) ) ; ; ISSUES A CANCEL MARK TIME REQUEST FOR MARK TIME #ID. ; RETURNS TIME REMAINING IN REQUEST IN ITIME. ; ID = 0 IF MARK TIME HAS NO ID. ; ; I = 0 NORMAL RETURN ; = 1 ID WAS NOT ZERO AND NO MKTM REQUEST WITH THAT ; ID COULD BE FOUND. ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL ICMKT ICMKT: MOV 4(R5),-(SP) ;ADDRESS OF TIME AREA MOV @2(R5),-(SP) ;ID OF MARK TIME REQUEST MOV #23*400,-(SP) ;.CMKT MOV SP,R0 ;POINT AT ARGUMENT BLOCK EMT 375 ;.CMKT BIC R0,R0 ;CLEAR ERROR STATUS ADC R0 ;INDICATE ERROR IF ANY ADD #6,SP ;POP ARG BLOCK RTS PC ;AND RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE ICSTAT ; R. BILLIG ; I = ICSTAT( ICHAN, IAREA(6) ) ; ; RETURNS STATUS OF ICHAN IN IAREA. ; IAREA(1) = CHANNEL STATUS WORD ; IAREA(2) = STARTING BLOCK NUMBER OF FILE ; IAREA(3) = LENGTH OF FILE ; IAREA(4) = HIGHEST BLOCK CURRENTLY WRITTEN ; IAREA(5) = UNIT # OF DEVICE TO WHICH THIS CHANNEL IS ATTACHED ; IAREA(6) = RAD50 NAME OF DEVICE TO WHICH THIS CHANNEL IS ATTACHED ; ; I = 0 NORMAL RETURN ; = 1 CHANNEL NOT OPEN ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL ICSTAT ICSTAT: MOV 4(R5),-(SP) ;ADDR OF IAREA MOV @2(R5),-(SP) ;CHANNEL BIS #27*400,@SP ;SET .CSTAT CODE MOV SP,R0 ;POINT AT ARGUMENT BLOCK EMT 375 ;.CSTAT BIC R0,R0 ;CLEAR ERROR CODE ADC R0 ;INDICATE ERROR IF ANY CMP (SP)+,(SP)+ ;POP ARG BLOCK RTS PC ;AND RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE GTIM ; R. BILLIG ; CALL GTIM( ITIME(2) ) ; ; RETURNS THE TIME OF DAY IN TICKS PAST MIDNIGHT ; IN ITIME. ; ITIME(1) = HIGH-ORDER TIME ; ITIME(2) = LOW-ORDER TIME ; ; NO ERRORS ARE POSSIBLE. ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL GTIM GTIM: MOV 2(R5),-(SP) ;ADDR OF ITIME MOV #21*400,-(SP) ;SET .GTIM CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.GTIM CMP (SP)+,(SP)+ ;POP PARM BLOCK RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IDELET ; R. BILLIG ; I = IDELET( ICHAN, IDEVBL(4) [, ICOUNT] ) ; ; DELETE FILE SPECIFIED BY IDEVBL(4), USING CHANNEL ICHAN. ; OPTIONAL ARGUMENT ICOUNT IS USED WITH MAGTAPE AND ; CASSETTE. ; ; I = 0 NORMAL RETURN ; = 1 CHANNEL ACTIVE ; = 2 FILE NOT FOUND ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL IDELET IDELET: CLR -(SP) ;SET DEFAULT ICOUNT CMPB @R5,#2 ;WAS ICOUNT SPECIFIED? BLOS 1$ ;NOPE MOV @6(R5),@SP ;ELSE USE IT 1$: MOV 4(R5),-(SP) ;ADDR OF IDEVBL MOV @2(R5),-(SP) ;ICHAN MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.DELETE BIC R0,R0 ;CLEAR ERROR CODE ADC R0 ;IF ERROR -> 1 BEQ 2$ ;NO ERRORS MOVB @#52,R0 ;GET ERROR CODE INC R0 2$: ADD #6,SP ;POP ARG BLOCK RTS PC .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IDSTAT ; R. BILLIG ; I = IDSTAT( IDEVNM, ISTAT(4) ) ; ; RETURNS STATUS OF DEVICE SPECIFIED BY IDEVNM (RAD50) ; IN ISTAT(4). ; ; ISTAT(1) = DEVICE STATUS WORD ; ISTAT(2) = SIZE OF HANDLER IN BYTES ; ISTAT(3) = ENTRY POINT OF HANDLER ; ISTAT(4) = SIZE OF DEVICE IN BLOCKS ; ; I = 0 NORMAL RETURN ; = 1 DEVICE NOT FOUND ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL IDSTAT IDSTAT: TST (R5)+ ;SKIP ARGUMENT COUNT MOV (R5)+,R0 ;ADDR OF IDEVNM MOV @R5,-(SP) ;ADDR OF ISTAT EMT 342 ;.DSTAT BIC R0,R0 ;CLEAR ERROR CODE ADC R0 ;R0 = 1 IF ERROR RTS PC ;AND RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IENTER ; R. BILLIG ; I = IENTER( ICHAN, IDEVBL(4), ILEN [, ICOUNT] ) ; ; PERFORMS AN RT-11 ENTER ON CHANNEL ICHAN. ; ICOUNT IS OPTIONAL AND IS USED WITH MAGTAPE AND ; CASSETTE. ; ; I = +N NORMAL RETURN, NUMBER OF BLOCKS ACTUALLY ALLOCATED ; = -1 CHANNEL ALREADY IN USE ; = -2 NO SPACE >= ILEN AVAILABLE ON DEVICE ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL IENTER IENTER: CLR -(SP) ;SET DEFAULT ICOUNT CMPB @R5,#4 ;WAS ICOUNT SPECIFIED? BLO 1$ ;NOPE MOV @10(R5),@SP ;ELSE USE IT 1$: MOV @6(R5),-(SP) ;ILEN MOV 4(R5),-(SP) ;ADDR OF IDEVBL MOV @2(R5),-(SP) ;ICHAN BIS #2*400,@SP ;SET .ENTER CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.ENTER BCC 2$ ;NORMAL RETURN, R0=# BLOCKS ALLOCATED MOVB @#52,R0 ;GET ERROR CODE COM R0 ;TURN 0 -> -1, 1 -> -2 2$: ADD #10,SP ;POP ARG BLOCK RTS PC .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IFREEC ; R. BILLIG ; CALL IFREEC( ICHAN ) ; ; FREES THE RT-11 CHANNEL ICHAN. ; ; ERRORS ARE POSSIBLE. ; 0=NORMAL RETURN, -1 CHANNEL IN USE ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL IFREEC, $AOTS RTCNLS= 20 ;OFFSET OF RT CHANNEL WORD IN WORK AREA IFREEC: MOV $AOTS,R3 ;R3 -> OTS WORK AREA MOV @2(R5),R0 ;R0 = CHANNEL TO FREE CLR R1 ;INIT MASK SEC 1$: ROL R1 ;BUILD CHANNEL MASK DEC R0 BPL 1$ BIT R1,RTCNLS(R3) ;IS CHANNEL ALLOCATED? BEQ 2$ ;BRANCH IF NOT, R0=-1 CLR R0 ;NORMAL RETURN BIC R1,RTCNLS(R3) ;AND FREE CHANNEL 2$: RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IGETC ; R. BILLIG ; I = IGETC() ; ; ALLOCATES AN RT-11 CHANNEL AND MARKS IT IN USE. ; ; I = -1 NO CHANNELS AVAILABLE ; = N N IS THE CHANNEL NUMBER ASSIGNED (0 <= N <= 17) ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL IGETC, $AOTS RTCNLS= 20 ;OFFSET OF RT CHANNEL WORD IN WORK AREA IGETC: MOV $AOTS,R3 ;R3 -> OTS WORK AREA MOV #-1,R0 ;R0 = ERROR RETURN CODE MOV RTCNLS(R3),R2 ;R2 = BIT WORD CMP R0,R2 ;ALL IN USE? BEQ 3$ ;YES CLR R1 ;CLEAR CHANNEL COUNTER 1$: INC R1 ;COUNT CHANNELS ROR R2 ;FIND FIRST FREE ONE BCS 1$ MOV R1,R0 ;RETURN ITS NUMBER DEC R0 SEC ;AND MARK IT IN USE 2$: ROL R2 ;REASSEMBLE WORD DEC R1 BNE 2$ MOV R2,RTCNLS(R3) ;UPDATE WORKAREA 3$: RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE GTJB ; R. BILLIG ; CALL GTJB( IJPARM(8) ) ; ; RETURNS JOB PARAMETERS IN IJPARM. ; ; IJPARM(1) = JOB NUMBER (0 = BACKGROUND, 2 = FOREGROUND) ; IJPARM(2) = HIGH MEMORY LIMIT ; IJPARM(3) = LOW MEMORY LIMIT ; IJPARM(4) = START OF CHANNEL AREA ; IJPARM(5), ... , IJPARM(8) ARE RESERVED FOR FUTURE USE. ; ; NO ERRORS ARE POSSIBLE. ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL GTJB GTJB: MOV 2(R5),-(SP) ;ADDR OF IJPARM MOV #20*400,-(SP) ;SET .GTJB CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.GTJB CMP (SP)+,(SP)+ ;POP ARG BLOCK RTS PC ;RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE LOOKUP ; R. BILLIG ; I = LOOKUP( ICHAN, IDEVBL(4) [, ICOUNT] ) ; ; PERFORMS AN RT-11 LOOKUP ON ICHAN FOR IDEVBL. ; ICOUNT IS AN OPTIONAL ARGUMENT USED WITH MAGTAPE ; AND CASSETTE. ; ; I = N NORMAL RETURN, R0= # BLOCKS IN FILE ; = -1 CHANNEL ALREADY OPEN ; = -2 FILE NOT FOUND ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL LOOKUP LOOKUP: CLR -(SP) ;SET DEFAULT ICOUNT CMPB @R5,#3 ;WAS ICOUNT SPECIFIED? BLO 1$ ;NOPE MOV @6(R5),@SP ;ELSE USE IT 1$: MOV 4(R5),-(SP) ;ADDR OF IDEVBL MOV @2(R5),-(SP) ;ICHAN BIS #1*400,@SP ;SET .LOOKUP CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.LOOKUP BCC 2$ ;NO ERRORS, R0= # BLOCKS IN FILE MOVB @#52,R0 ;ELSE GET ERROR CODE COM R0 ;MAKE 0 -> -1, 1 -> -2 2$: ADD #6,SP ;POP ARG BLOCK RTS PC ;AND RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE MWAIT ; R. BILLIG ; CALL MWAIT ; ; SUSPENDS EXECUTION UNTIL ALL MESSAGES HAVE BEEN SENT OR ; RECEIVED. USED WITH SDAT AND RCVD ROUTINES. ; ; NO ERRORS ARE POSSIBLE. ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL MWAIT MWAIT: MOV #11*400,R0 ;SET .MWAIT CODE EMT 374 ;.MWAIT RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE PRINT ; R. BILLIG ; CALL PRINT( ISTRNG ) ; ; PRINTS STRING SPECIFIED ON CONSOLE TERMINAL. MAY BE USED ; FROM COMPLETION ROUTINES FOR MESSAGES. ; ; NO ERRORS ARE POSSIBLE. ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL PRINT PRINT: MOV 2(R5),R0 ;ADDR OF ISTRNG EMT 351 ;.PRINT RTS PC ;AND RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE PURGE ; R. BILLIG ; CALL PURGE( ICHAN ) ; ; DEACTIVATES RT-11 CHANNEL ICHAN. ANY FILE ASSOCIATED WITH ; THE CHANNEL IS DISCARDED. ; ; NO ERRORS ARE POSSIBLE. ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL PURGE PURGE: MOV @2(R5),R0 ;R0 = ICHAN BIS #3*400,R0 ;SET .PURGE CODE EMT 374 ;.PURGE RTS PC ;AND RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE RCTRLO ; R. BILLIG ; CALL RCTRLO ; ; RESETS ANY CONTROL-O EFFECT FOR THIS JOB'S TERMINAL. ; ; NO ERRORS ARE POSSIBLE. ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL RCTRLO RCTRLO: EMT 355 ;.RCTRLO RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IREOPN ; R. BILLIG ; I = IREOPN( ICHAN, ICSTAT(5) ) ; ; REOPENS THE FILE WHOSE CHANNEL STATUS INFORMATION ; IS CONTAINED IN ICSTAT ON CHANNEL ICHAN. ; ; I = 0 NORMAL RETURN ; = 1 CHANNEL ALREADY IN USE ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL IREOPN IREOPN: MOV 4(R5),-(SP) ;ICSTAT ADDR MOV @2(R5),-(SP) ;ICHAN BIS #6*400,@SP ;SET .REOPEN CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.REOPEN BIC R0,R0 ;CLEAR ERROR STATUS ADC R0 ;R0 = 1 IF ERROR CMP (SP)+,(SP)+ ;POP ARG BLOCK RTS PC ;AND RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE RESUME ; R. BILLIG ; CALL RESUME ; ; RESUMES MAINLINE EXECUTION OF THIS JOB. ; ; NO ERRORS ARE POSSIBLE. ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL RESUME RESUME: MOV #2*400,R0 ;SET .RSUM CODE EMT 374 ;.RSUM RTS PC ;AND RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE ISAVES ; R. BILLIG ; I = ISAVESTATUS( ICHAN, ICSTAT(5) ) ; ; SAVES THE STATUS OF THE FILE OPEN ON CHANNEL ICHAN ; IN ICSTAT AND FREES THE CHANNEL. FILE MAY BE LATER ; REACTIVATED WITH A CALL TO REOPEN. ; ; I = 0 NORMAL RETURN ; = 1 CHANNEL NOT ACTIVE ; = 2 ILLEGAL SAVESTATUS - CHANNEL OPENED WITH AN ENTER ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL ISAVES ISAVES: MOV 4(R5),-(SP) ;ICSTAT ADDR MOV @2(R5),-(SP) ;ICHAN BIS #5*400,@SP ;SET .SAVEST CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.SAVESTATUS BIC R0,R0 ;CLEAR ERROR CODE ADC R0 ;R0 = 1 IF ERROR BEQ 1$ ;NO ERRORS MOVB @#52,R0 ;GET ERROR CODE INC R0 1$: CMP (SP)+,(SP)+ ;POP ARG BLOCK RTS PC ;AND RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE SUSPND ; R. BILLIG ; CALL SUSPND ; ; SUSPENDS MAINLINE OF THE CURRENT JOB. ; ; NO ERRORS ARE POSSIBLE. ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL SUSPND SUSPND: MOV #1*400,R0 ;SET .SPND CODE EMT 374 ;.SPND RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE ITLOCK ; R. BILLIG ; I = ITLOCK() ; ; TEST AND LOCK THE USR. RETURNS AN ERROR IF THE USR IS ; NOT AVAILABLE CURRENTLY, OTHERWISE LOCKS IT. ; ; I = 0 NORMAL RETURN ; I = 1 USR NOT AVAILABLE ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL ITLOCK ITLOCK: MOV #7*400,R0 ;SET .TLOCK CODE EMT 374 ;.TLOCK BIC R0,R0 ;CLEAR ERROR STATUS ADC R0 ;R0 = 1 IF ERROR RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE ITTINR ; R. BILLIG ; I = ITTINR() ; ; READS A CHARACTER FROM THE CONSOLE TERMINAL. ; ; I = CHARACTER READ IF I.GT.0 ; = IF I.LT.0 ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL ITTINR ITTINR: EMT 340 ;.TTINR BCC 1$ ;CHARACTER AVAILABLE - RETURN ROR R0 ;ELSE FLAG 1$: RTS PC ;RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE ITTOUR ; R. BILLIG ; I = ITTOUR( ICHAR ) ; ; OUTPUTS THE CHARACTER ICHAR TO THE CONSOLE TERMINAL ; IF THERE IS SPACE IN THE OUTPUT RING BUFFER. ; ; I = 0 CHARACTER HAS BEEN OUTPUT ; = 1 RING BUFFER IS FULL ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL ITTOUR ITTOUR: MOVB @2(R5),R0 ;GET CHARACTER EMT 341 ;.TTOUTR BIC R0,R0 ;CLEAR ERROR FLAG ADC R0 RTS PC ;RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE ITWAIT ; R. BILLIG ; CALL ITWAIT( ITIME(2) ) ; ; SUSPENDS MAINLINE EXECUTION OF THIS JOB FOR THE ; TIME SPECIFIED BY ITIME. ITIME(1) = HIGH-ORDER TIME, ; ITIME(2) = LOW-ORDER TIME. ; ; ERRORS ARE POSSIBLE. ; 0 NORMAL ; 1 NO QUEUE ELEMRNT ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL ITWAIT ITWAIT: MOV 2(R5),-(SP) ;ADDR OF ITIME MOV #24*400,-(SP) ;SET .TWAIT CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.TWAIT BIC R0,R0 ;R0=0 ADC R0 ;C=1 MEANS ERROR CMP (SP)+,(SP)+ ;POP ARG BLOCK RTS PC ;AND RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE UNLOCK ; R. BILLIG ; CALL UNLOCK ; ; RELEASES THE USR FROM MEMORY. ; ; NO ERRORS ARE POSSIBLE. ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL UNLOCK UNLOCK: EMT 347 ;.UNLOCK RTS PC ;RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IWAIT ; R. BILLIG ; I = IWAIT( ICHAN ) ; ; SUSPENDS EXECUTION UNTIL ALL INPUT/OUTPUT REQUESTS ; FOR CHANNEL ICHAN ARE COMPLETE. ; ; I = 0 NORMAL RETURN ; = 1 CHANNEL NOT OPEN ; = 2 HARDWARE ERROR ON PREVIOUS OPERATION ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL IWAIT IWAIT: MOV @2(R5),R0 ;ICHAN EMT 374 ;.WAIT BIC R0,R0 ;CLEAR ERROR FLAG ADC R0 ;R0 = 1 IF ERROR BEQ 1$ ;NO ERRORS MOVB @#52,R0 ;GET ERROR CODE INC R0 1$: RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE LOCK ; R. BILLIG ; CALL LOCK ; ; LOCKS USR IN CORE. ; ; NO ERRORS ARE POSSIBLE. ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL LOCK LOCK: EMT 346 ;ISSUE .LOCK RTS PC ;AND RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE TIMSUB ; H.J. ; TIME CONVERSION SUBROUTINE FOR SYSLIB ; ; TAKES NEXT 4 ARGUMENTS FROM ARGUMENT LIST ; AND BUILDS A TWO-WORD INTEGER TIME IN (R0,R1) ; ; DESTROYS R0,R1,R2,R3,R4 ; UPDATES R5 BEYOND TIME ARGUMENTS ; ; CALLED BY: JSR PC,$TIME$ ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL $TIME$ $TIME$: CLR R0 ;CLEAR HIGH-ORDER TIME MOV @(R5)+,R1 ;AND INIT LOW ORDER TO HOURS MOV #60.,R4 ;SET MULTIPLIER JSR PC,MULAD JSR PC,MULAD MOV @#54,R3 ;GET CONFIG WORD BIT #40,300(R3) ;50 OR 60 CYCLE CLOCK? BEQ MULAD ;BRANCH IF 60 CYCLE MOV #50.,R4 MULAD: MOV R4,-(SP) ;COPY R4 MOV R0,R2 MOV R1,R3 CLR R0 CLR R1 1$: ROR @SP ;MULTIPLY ROUTINE FROM JMUL BCC 2$ ADD R3,R1 ADC R0 ADD R2,R0 TST @SP 2$: BEQ 3$ ASL R3 ROL R2 BR 1$ 3$: TST (SP)+ ADD @(R5)+,R1 ADC R0 RTS PC ;RETURN WITH (R0,R1) SET .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE ISLEEP ; R. BILLIG ; CALL ISLEEP( IHRS, IMIN, ISEC, ITCK ) ; ; SUSPENDS EXECUTION OF THE MAINLINE CODE OF THIS JOB ; FOR THE AMOUNT OF TIME SPECIFIED BY THE ARGUMENTS. ; ; ERRORS ARE POSSIBLE. ; 0 NORMAL ; 1 NO QUEUE ELEMENT ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL ISLEEP, $TIME$ ISLEEP: TST (R5)+ ;SKIP ARGUMENT COUNT JSR PC,$TIME$ ;CONVERT ARGS -> (R0,R1) TIME MOV R1,-(SP) ;STACK TIME MOV R0,-(SP) MOV SP,R0 MOV R0,-(SP) ;STAY MACHINE-INDEPENDANT MOV #24*400,-(SP) ;SET .TWAIT CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.TWAIT BIC R0,R0 ;R0=0 ADC R0 ;C=1 IF ERROR ADD #10,SP ;POP ARG BLOCK RTS PC ;RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE JTIME ; R. BILLIG ; CALL JTIME( IHRS, IMIN, ISEC, ITCK, ITIME(2) ) ; ; CONVERTS TIME SPECIFIED TO INTERNAL TWO-WORD INTEGER ; FORMAT. ; ; NO ERRORS ARE POSSIBLE. ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL JTIME, $TIME$ JTIME: TST (R5)+ ;SKIP ARG COUNT JSR PC,$TIME$ ;(R0,R1) = TIME MOV @R5,R5 ;R5 -> ITIME MOV R0,(R5)+ ;STORE RESULT MOV R1,@R5 RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IUNTIL ; R. BILLIG ; CALL IUNTIL( IHRS, IMIN, ISEC, ITCK ) ; ; SUSPENDS THE MAINLINE OF THIS JOB UNTIL THE ; SPECIFIED TIME-OF-DAY. IF THE TIME GIVEN IS ; LESS THAN THE CURRENT TIME, THE JOB WILL BE ; SUSPENDED UNTIL THE SPECIFIED TIME TOMORROW. ; ; ERRORS ARE POSSIBLE. ; 0 NORMAL ; 1 NO QUEUE ELEMENT ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL IUNTIL, $TIME1 IUNTIL: TST (R5)+ ;SKIP ARG COUNT JSR PC,$TIME1 ;SET (R2,R3) = TIME INTERVAL MOV R3,-(SP) ;STACK IT MOV R2,-(SP) MOV SP,R0 MOV R0,-(SP) MOV #24*400,-(SP) ;SET .TWAIT CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.TWAIT BIC R0,R0 ;R0=0 ADC R0 ;C=1 IF ERROR ADD #10,SP ;POP ARGS RTS PC ;AND RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IREAD, IREADW, IREADC ; R. BILLIG ; I = IREAD( IWDCNT, IBUF, IBLOCK, ICHAN ) ; ; I = IREADW( IWDCNT, IBUF, IBLOCK, ICHAN ) ; ; I = IREADC( IWDCNT, IBUF, IBLOCK, ICHAN, ROUTIN ) ; ; ISSUES AN RT-11 READ REQUEST OF THE APPROPRIATE TYPE ; ON RT-11 CHANNEL ICHAN. IWDCNT WORDS ARE TRANSFERRED, ; STARTING AT BLOCK IBLOCK FROM IBUF. ROUTIN IS THE ; COMPLETION ROUTINE (IF SPECIFIED) TO BE ENTERED ; WHEN THE OPERATION IS COMPLETE. ; ; I = N NORMAL RETURN, N= # WORDS BEING READ ; = -1 ATTEMPT TO READ PAST END-OF-FILE ; = -2 HARD ERROR OCCURRED ON CHANNEL ; = -3 CHANNEL IS NOT OPEN ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL IREAD, IREADW, IREADC, $READ IREAD: MOV #1,-(SP) ;SET ASYNCH CODE BR $READ IREADW: CLR -(SP) ;SET WAIT CODE BR $READ IREADC: MOV 12(R5),-(SP) ;SET COMPLETION ROUTINE ADDR $READ: TST (R5)+ ;SKIP ARGUMENT COUNT MOV @(R5)+,-(SP) ;IWDCNT MOV (R5)+,-(SP) ;IBUF MOV @(R5)+,-(SP) ;IBLOCK MOV @(R5)+,-(SP) ;ICHAN BIS #10*400,@SP ;SET .READ CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.READ BCC 1$ ;NO ERRORS, R0=# WORDS BEING READ MOVB @#52,R0 ;GET ERROR CODE COM R0 ;MAP ERRORS 0-> -1, 1-> -2, 2-> -3 1$: ADD #12,SP ;POP ARG BLOCK RTS PC ;AND RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE ISDAT, ISDATW, ISDATC ; R. BILLIG ; I = ISDAT( IBUF(IWDCNT), IWDCNT ) ; ; I = ISDATW( IBUF(IWDCNT), IWDCNT ) ; ; I = ISDATC( IBUF(IWDCNT), IWDCNT, ROUTIN ) ; ; SENDS DATA TO THE OTHER JOB. IWDCNT WORDS ARE TRANSFERRED ; FROM BUFFER IBUF. ROUTIN IS THE ROUTINE TO BE ENTERED ; WHEN THE MESSAGE HAS BEEN TRANSMITTED. ; ; I = 0 NORMAL RETURN ; = 1 NO OTHER JOB EXISTS CURRENTLY ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL ISDAT, ISDATW, ISDATC, $SEND ISDAT: MOV #1,-(SP) ;SET ASYNCH CODE BR $SEND ISDATW: CLR -(SP) ;SET WAIT CODE BR $SEND ISDATC: MOV 6(R5),-(SP) ;SET COMPLETION ROUTINE ADDR $SEND: MOV @4(R5),-(SP) ;IWDCNT MOV 2(R5),-(SP) ;IBUF ADDR CLR -(SP) ;NULL WORD MOV #25*400,-(SP) ;SET .SDAT CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.SDAT BIC R0,R0 ;CLEAR ERROR CODE ADC R0 ;R0 = 1 IF ERROR ADD #12,SP ;POP ARG BLOCK RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE ISPFN, ISPFNW, ISPFNC ; R. BILLIG ; I = ISPFN( ICODE, ICHAN [, IWDCNT, IBUF, IBLOCK ] ) ; ; I = ISPFNW( ICODE, ICHAN [, IWDCNT, IBUF, IBLOCK ] ) ; ; I = ISPFNC( ICODE, ICHAN, IWDCNT, IBUF, IBLOCK, ROUTIN ) ; ; EXECUTES A SPECIAL FUNCTION REQUEST FOR MAGTAPE ; OR CASSETTE. IWDCNT, IBUF, AND IBLOCK ARE ONLY REQUIRED ; FOR MAGTAPE WRITE WITH EXTENDED INTERRECORD GAP ; OPERATIONS. ; ; I = 0 NORMAL RETURN ; = 1 ATTEMPT TO WRITE PAST END-OF-FILE ; = 2 HARD ERROR OCCURRED ON CHANNEL ; = 3 CHANNEL IS NOT OPEN ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL ISPFN, ISPFNW, ISPFNC, $SPFN ISPFN: MOV #1,-(SP) ;INDICATE ASYNCH OPERATION BR $SPFN ISPFNW: CLR -(SP) ;INDICATE WAIT OPERATION BR $SPFN ISPFNC: MOV 14(R5),-(SP) ;SET COMPLETION ROUTINE ADDR $SPFN: TST (R5)+ ;SKIP ARG COUNT MOVB @(R5)+,R0 ;GET ICODE SWAB R0 ;INTO HIGH BYTE BIS #377,R0 ;SET SPECIAL FUNCTION FLAG MOV R0,-(SP) ;AND STACK IT MOV @(R5)+,R0 ;SAVE ICHAN CMPB -6(R5),#5 ;IBLOCK,IWDCNT,IBUF PRESENT? BLO 1$ ;NOPE MOV @(R5)+,-(SP) ;IWDCNT MOV (R5)+,-(SP) ;IBUF MOV @(R5)+,-(SP) ;IBLOCK BR 2$ 1$: CLR -(SP) ;DEFAULT FOR IWDCNT, IBUF, IBLOCK CLR -(SP) CLR -(SP) 2$: ADD #32*400,R0 ;SET .SPFUN CODE MOV R0,-(SP) MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.SPFUN BIC R0,R0 ;CLEAR ERROR CODE ADC R0 ;R0 = 1 IF ERROR BEQ 3$ ;NO ERRORS MOVB @#52,R0 ;GET ERROR CODE INC R0 3$: ADD #14,SP ;POP ARG BLOCK RTS PC ;AND RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IWRITE, IWRITW, IWRITC ; R. BILLIG ; I = IWRITE( IWDCNT, IBUF, IBLOCK, ICHAN ) ; ; I = IWRITW( IWDCNT, IBUF, IBLOCK, ICHAN ) ; ; I = IWRITC( IWDCNT, IBUF, IBLOCK, ICHAN, ROUTIN ) ; ; ISSUES AN RT-11 WRITE REQUEST TO TRANSFER IWDCNT WORDS ; FROM IBUF TO THE FILE ON CHANNEL ICHAN STARTING AT ; BLOCK IBLOCK. ; ; I = N NORMAL RETURN, N IS # WORDS WRITTEN ; = -1 END-OF-FILE ON OUTPUT, IS NOT REPORTED UNLESS N=0!! ; = -2 HARDWARE ERROR OCCURRED ; = -3 CHANNEL NOT OPEN ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL IWRITE, IWRITW, IWRITC, $WRITE IWRITE: MOV #1,-(SP) ;SET ASYNCH FLAG BR $WRITE IWRITW: CLR -(SP) ;SET WAIT FLAG BR $WRITE IWRITC: MOV 12(R5),-(SP) ;SET COMPLETION ROUTINE ADDR $WRITE: TST (R5)+ ;SKIP ARG COUNT MOV @(R5)+,-(SP) ;IWDCNT MOV (R5)+,-(SP) ;IBUF MOV @(R5)+,-(SP) ;IBLOCK MOV @(R5)+,-(SP) ;ICHAN BIS #11*400,@SP ;SET .WRITE CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.WRITE BCC 1$ ;NO ERRORS, R0= # WORDS IN TRANSFER MOVB @#52,R1 ;GET ERROR CODE BNE 2$ ;BRANCH IF REAL (BAD) ERROR TST R0 ;IF R0 .NE. 0 THEN SHORTENED WRITE!! BNE 1$ ;BRANCH IF PSEUDO O.K. 2$: MOV R1,R0 ;SET RETURN VALUE COM R0 ;PERFORM MAPPING ON ERROR CODES 1$: ADD #12,SP ;POP ARG BLOCK RTS PC ;RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IRCVD, IRCVDW, IRCVDC ; R. BILLIG ; I = IRCVD( IBUF(IWDCNT+1), IWDCNT ) ; ; I = IRCVDW( IBUF(IWDCNT+1), IWDCNT ) ; ; I = IRCVDC( IBUF(IWDCNT+1), IWDCNT, ROUTIN ) ; ; ISSUES A RECEIVE DATA, RECEIVE DATA AND WAIT, OR ; RECEIVE DATA AND ACTIVATE COMPLETION ROUTINE FUNCTION. ; IWDCNT IS THE NUMBER OF WORDS TO BE RECEIVED. ; DATA IS RECEIVED IN IBUF, WHICH SHOULD BE ONE ; WORD LARGER THAN IWDCNT. WHEN THE MESSAGE IS ; RECEIVED, IBUF(1) IS THE INTEGER NUMBER OF WORDS ; ACTUALLY RECEIVED FROM THE OTHER JOB. ; ; I = 0 NORMAL RETURN ; I = 1 NO OTHER JOB EXISTS IN THE SYSTEM ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL IRCVD, IRCVDW, IRCVDC, $RCVD IRCVD: MOV #1,-(SP) ;SET ASYNCH FLAG BR $RCVD IRCVDW: CLR -(SP) ;SET WAIT FLAG BR $RCVD IRCVDC: MOV 6(R5),-(SP) ;SET COMPLETION ROUTINE ADDR $RCVD: MOV @4(R5),-(SP) ;IWDCNT MOV 2(R5),-(SP) ;IBUF ADDR CLR -(SP) ;NULL WORD MOV #26*400,-(SP) ;SET .RCVD CODE MOV SP,R0 ;R0 -> PARM BLOCK EMT 375 ;.RCVD BIC R0,R0 ;CLEAR RETURN CODE ADC R0 ;R0 = 1 IF ERROR ADD #12,SP ;CLEAN UP STACK RTS PC ;AND RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE CVTTIM ; R. BILLIG ; CALL CVTTIM( ITIME(2), IHRS, IMIN, ISEC, ITCK ) ; ; CONVERTS AN INTERNAL TWO-WORD INTEGER TIME TO ; HOURS, MINUTES, SECONDS, AND TICKS. ITIME(2) ; SPECIFIES THE INTERNAL FORM OF THE TIME. ; ; NO ERRORS ARE POSSIBLE. ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL CVTTIM, $DIV60, $DIVTK CVTTIM: TST (R5)+ ;SKIP ARG COUNT MOV (R5)+,R1 ;R1 -> ITIME MOV (R1)+,R0 ;R0 = ITIME(1) MOV @R1,R1 ;R1 = ITIME(2) ADD #10,R5 ;PREPARE TO GO BACKWARDS JSR PC,$DIVTK ;CONVERT TICKS MOV R3,@-(R5) JSR PC,$DIV60 ;CONVERT SECONDS MOV R3,@-(R5) JSR PC,$DIV60 ;CONVERT MINUTES MOV R3,@-(R5) MOV R1,@-(R5) ;AND HOURS RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE DIV60, DIVTK ; R. BILLIG, H.J. ; DIVIDES (R0,R1) BY 60, LEAVING THE REMAINDER IN R3. ; DESTROYS R2,R4. ; CALLING SEQUENCE JSR PC,$DIV60 ; $DIVTK DOES SAME BUT WITH NUMBER OF TICKS IN SECOND ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL $DIV60, $DIVTK $DIVTK: MOV #50.,R4 ;ASSUME A 50 CYCLE CLOCK MOV @#54,R3 ;SEE IF WE HAVE A 50 OR 60 CYCLE CLOCK BIT #40,300(R3) ;LOOK IN CONFIG WORD BNE DIV ;BRANCH 50 CYCLE CLOCK ASSUMPTION RIGHT $DIV60: MOV #60.,R4 ;SET FOR DIVIDE BY 60 DIV: CLR R3 ;ZERO REMAINDER MOV #32.,-(SP) ;BIT COUNT 1$: ASL R1 ;STANDARD SHIFT-AND-SUBTRACT ROL R0 ;DIVISION ROL R3 CMP R3,R4 BLO 2$ SUB R4,R3 INC R1 2$: DEC @SP BNE 1$ TST (SP)+ ;REMOVE 0 FROM STACK RTS PC .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE ISPY, IPEEK, IPOKE ; R. BILLIG ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 ; ISPY FUNCTION ; ; I = ISPY(IOFF) ; RETURNS THE VALUE OF THE WORD AT "IOFF" OFF OF THE RMON. ; .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL ISPY ISPY: TST (R5)+ ;SKIP # OF ARGS MOV @#54,R0 ;GET ADDR OF RMON ADD @(R5)+,R0 ;GET ADDR OF WORD IN QUESTION MOV @R0,R0 ;AND RETURN INTEGER RESULT RTS PC ;RETURN TO CALLER ; IPEEK FUNCTION ; ; I = IPEEK(IADDR) ; RETURNS THE VALUE OF THE WORD AT "IADDR". ; .GLOBL IPEEK IPEEK: TST (R5)+ ;SKIP # OF ARGS MOV @(R5)+,R0 ;GET ADDRESS IN QUESTION MOV @R0,R0 ;AND RETURN THE VALUE OF THE WORD RTS PC ;RETURN TO CALLER ; IPOKE SUBROUTINE ; ; CALL IPOKE(IADDR,IVALUE) ; STORES "IVALUE" IN "IADDR". ; .GLOBL IPOKE IPOKE: TST (R5)+ ;SKIP # OF ARGS MOV @(R5)+,R0 ;GET ADDRESS MOV @(R5)+,@R0 ;AND STORE VALUE RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE TIMASC ; R. BILLIG ; CALL TIMASC( ITIME(2), LSTRNG(8) ) ; ; CONVERTS THE TWO-WORD INTERNAL FORMAT TIME TO ; AN ASCII STRING OF THE FORM HH:MM:SS WHICH ; IS STORED IN THE FIRST 8 BYTES OF LSTRNG. ; ; NO ERRORS ARE POSSIBLE. ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL TIMASC, $DIV60, $DIVTK TIMASC: TST (R5)+ ;SKIP ARG COUNT MOV (R5)+,R1 ;R1 -> ITIME MOV (R1)+,R0 ;R0 = ITIME(1) MOV @R1,R1 ;R1 = ITIME(2) MOV #-1,-(SP) ;SET STOPPER JSR PC,$DIVTK ;CONVERT TICKS AND TOSS 'EM JSR PC,$DIV60 ;CONVERT SECONDS MOV R3,-(SP) JSR PC,$DIV60 ;CONVERT MINUTES MOV R3,-(SP) MOV R1,R3 ;MOVE HOUR QUOTIENT TO REMAINDER MOV @R5,R5 ;R5 -> LSTRNG BR 2$ 1$: MOVB #':,(R5)+ ;INSERT DELIMITER 2$: ADD #366,R3 ;APPLY MAGIC NUMBER TRANSFORMATION TSTB R3 ;TO GET REMAINDER IN ASCII BPL 2$ ADD #"00-366,R3 SWAB R3 MOVB R3,(R5)+ ;STORE IN LSTRNG SWAB R3 MOVB R3,(R5)+ MOV (SP)+,R3 ;GET NEXT NUMBER BPL 1$ ;AND GO CONVERT IT RTS PC ;AND RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IFETCH ; R. BILLIG ; I = IFETCH( IDEVNM ) ; ; FETCHES THE DEVICE HANDLER FOR THE DEVICE WHOSE ; RAD50 NAME IS CONTAINED IN IDEVNM. ; ; I = 0 NORMAL RETURN ; = 1 DEVICE DOES NOT EXIST ; = 2 NO ROOM FOR DEVICE HANDLER ; = 3 NO HANDLER FOR SPECIFIED DEVICE ON SY: ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL IFETCH, $AOTS DEVHDR= 10. ;OFFSET OF PTR IN OTS WORKAREA FREESP= 12. ;OFFSET OF PTR IN OTS WORKAREA IFETCH: TST (R5)+ ;SKIP ARG COUNT SUB #10,SP ;ALLOCATE SPACE FOR .DSTATUS MOV SP,R0 ;R0 -> .DSTATUS BLOCK MOV R0,-(SP) MOV @R5,R0 ;R0 -> IDEVNM EMT 342 ;.DSTATUS BIC R0,R0 ;CLEAR ERROR CODE MOV (SP)+,R1 ;POP WORD BUT LEAVE C BIT MOV (SP)+,R1 ;R1 = HANDLER SIZE IN BYTES MOV (SP)+,(SP)+ ;IS HANDLER IN CORE? BCS 4$ ;* DEVICE DOESN'T EXIST BNE 1$ ;YES - RETURN NOW MOV $AOTS,R3 ;R3 -> OTS IMPURE AREA MOV DEVHDR(R3),R2 ;R2 -> LOWEST DEV. HDLR. ADDR SUB R1,R2 ;ALLOCATE ROOM FOR THIS ONE CMP R2,FREESP(R3) ;IS THERE SPACE FOR IT? BLOS 3$ ;* NOT ENOUGH ROOM MOV @R5,R0 ;R0 -> IDEVNM MOV R2,-(SP) ;R2 -> WHERE TO LOAD HANDLER EMT 343 ;.FETCH BIC R0,R0 ;ZERO ERROR CODE BCS 2$ ;* NO HANDLER ON SY: MOV R2,DEVHDR(R3) ;UPDATE LOW POINTER 1$: RTS PC ;AND RETURN TO CALLER 2$: INC R0 ;* NO HANDLER ON SY: 3$: INC R0 ;* NO ROOM FOR HANDLER 4$: INC R0 ;* DEVICE DOESN'T EXIST RTS PC ;RETURN WITH ERROR STATUS .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IQSET ; R. BILLIG ; I = IQSET( INUM ) ; ; ADDS INUM ELEMENTS TO THE RT-11 I/O QUEUE. THE ELEMENTS ; ARE ALLOCATED FROM THE FORTRAN SYSTEM FREE SPACE. ; ; I = 0 NORMAL RETURN ; = 1 NOT ENOUGH FREE SPACE AVAILABLE ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL IQSET, $AOTS DEVHDR= 10. ;OTS WORKAREA OFFSETS FREESP= 12. IQSET: MOV @2(R5),R0 ;R0 = # OF ELEMENTS TO ADD ASL R0 ;MULTIPLY IT BY 14. MOV R0,R1 ASL R0 ADD R0,R1 ASL R0 ADD R0,R1 ;R1 = SPACE REQ'D IN BYTES MOV $AOTS,R3 ;R3 -> OTS WORKAREA MOV DEVHDR(R3),R2 ;R2 -> LOWEST ADDR ALLOCATED SUB R1,R2 ;ALLOCATE QUEUE CMP R2,FREESP(R3) ;IS THERE ENOUGH SPACE? BLOS 1$ ;NOPE - ERROR MOV R2,DEVHDR(R3) ;ELSE UPDATE POINTER MOV @2(R5),R0 ;GET BACK # OF ELEMENTS MOV R2,-(SP) ;STACK ADDRESS EMT 353 ;.QSET CLR R0 ;INDICATE NORMAL RETURN RTS PC ;AND RETURN 1$: MOV #1,R0 ;INDICATE DISPARAGEMENT RTS PC .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE DEVICE ; R. BILLIG ; CALL DEVICE( ILIST(N) ) ; ; CAUSES ACTIONS TO BE TAKEN ON JOB EXIT OR ABORT. ; ; ILIST IS AN INTEGER ARRAY OF ADDRESS-VALUE PAIRS, ; TERMINATED BY A ZERO WORD. ; ; ON EXIT FROM THE JOB OR ABORT, EACH VALUE SPECIFIED ; WILL BE MOVED INTO THE CORRESPONDING ADDRESS. THIS ; CALL IS USED TO DISABLE INTERRUPTS FROM FOREIGN ; DEVICES (I.E., DEVICES UNKNOWN TO RT-11). ; ; NO ERRORS ARE POSSIBLE. ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL DEVICE DEVICE: MOV 2(R5),-(SP) ;PUSH ADDR OF ILIST MOV #14*400,-(SP) ;SET .DEVICE CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.DEVICE CMP (SP)+,(SP)+ ;POP ARG BLOCK RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE ICDFN ; R. BILLIG ; I = ICDFN( INCHAN ) ; ; ALLOCATES INCHAN CHANNELS (0 <= INCHAN <= 256) ; FROM THE FORTRAN FREE SPACE AREA. ; ; I = 0 NORMAL RETURN ; = 1 TOO FEW CHANNELS SPECIFIED ; = 2 NOT ENOUGH FREE SPACE ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL ICDFN, $AOTS DEVHDR= 10. ;OTS WORKAREA OFFSETS FREESP= 12. ICDFN: MOV @2(R5),R5 ;R5 = INCHAN MOV #2,R0 ;SET FOR ERROR EXIT MOV R5,R1 ;MULTIPLY BY 10. ASL R5 MOV R5,R4 ASL R5 ASL R5 ADD R5,R4 ;R4 = SPACE REQUIRED MOV $AOTS,R3 ;R3 -> OTS WORKAREA MOV DEVHDR(R3),R2 ;R2 -> LOWEST ALLOCATED SUB R4,R2 ;ALLOCATE CHANNEL AREA CMP R2,FREESP(R3) ;ENOUGH ROOM? BLOS 2$ ;NOPE MOV R1,-(SP) ;INCHAN MOV R2,-(SP) ;ADDR OF CHANNEL AREA MOV #15*400,-(SP) ;.CDFN CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.CDFN BIC R0,R0 ;CLEAR ERROR CODE ADC R0 ;R0 = 1 IF ERROR BNE 1$ ;BRANCH IF ERROR MOV R2,DEVHDR(R3) ;SAVE NEW POINTER 1$: ADD #6,SP ;POP ARG BLOCK 2$: RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE TIME1 ; R. BILLIG ; TIME CONVERSION SUBROUTINE FOR SYSLIB ; ; CALCULATES THE TWO-WORD INTEGER TIME BETWEEN ; THE CURRENT TIME AND A SPECIFIED TIME-OF-DAY. ; USED BY CALL UNTIL(...) AND CALL SCHED(...) ; TO CALCULATE THE APPROPRIATE TIME INTERVAL. ; ; INPUTS: ; USES THE NEXT FOUR ARGUMENTS FROM THE ARGUMENT LIST, ; AS IHRS, IMIN, ISEC, ITCK. ; ; OUTPUTS: ; (R2,R3) = TIME INTERVAL DESIRED ; ; DESTROYS: ; R0,R1,R2,R3,R4 ; UPDATES R5 BEYOND NEXT FOUR ARGUMENTS ; ; CALLING SEQUENCE: JSR PC,$TIME1 ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL $TIME1, $TIME$ $TIME1: JSR PC,$TIME$ ;SET (R0,R1) = DESIRED TIME-OF-DAY MOV R0,R2 ;COPY IT INTO (R2,R3) MOV R1,R3 CMP -(SP),-(SP) ;ALLOCATE SPACE FOR CURRENT TIME-OF-DAY MOV SP,R0 MOV R0,-(SP) ;MACHINE-INDEPENDENCE MOV #21*400,-(SP) ;SET .GTIM CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.GTIM CMP (SP)+,(SP)+ ;DISCARD ARG BLOCK MOV (SP)+,R0 ;(R0,R1) = CURRENT TIME MOV (SP)+,R1 SUB R1,R3 SBC R2 SUB R0,R2 ;CALCULATE INTERVAL BPL 1$ ;IF IT ISN'T REALLY TOMORROW ADD #15000,R3 ;NO, IT IS - ADD 24 HOURS ADC R2 ADD #117,R2 1$: RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE ICHCPY ; R. BILLIG ; I = ICHCPY( ICHAN, IOCHAN ) ; ; COPIES OTHER JOB'S CHANNEL SPECIFIED BY IOCHAN, ; OPENING IT ON ICHAN OF THIS JOB. ; ; I = 0 NORMAL RETURN ; = 1 OTHER JOB DOESN'T EXIST, OR SPECIFIED CHANNEL ; OF OTHER JOB DOESN'T EXIST ; = 2 CHANNEL ALREADY OPEN ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL ICHCPY ICHCPY: MOV @4(R5),-(SP) ;OTHER JOB'S CHANNEL MOV #13*400,-(SP) ;.CHCOPY CODE MOVB @2(R5),@SP ;SET OUR CHANNEL MOV SP,R0 ;POINT AT ARGUMENT BLOCK EMT 375 ;.CHCOPY BIC R0,R0 ;CLEAR ERROR CODE ADC R0 ;IF ERROR BEQ 1$ ;NO ERRORS - EXIT MOVB @#52,R0 ;ELSE GET CODE INC R0 1$: CMP (SP)+,(SP)+ ;POP ARG BLOCK RTS PC ;AND RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE SYSLBV ; H.J. ; THIS MODULE DEFINES THE GLOBAL SYMBOL $SYSV$, ; WHOSE VALUE INDICATES THE VERSION NUMBER OF THE ; COPY OF SYSLIB IN USE. THIS NUMBER WILL APPEAR ; ON ALL LINK MAPS OF PROGRAMS REFERENCING SYSLIB. .GLOBL $SYSLB, $SYSV$ ,$LOCK, $CRASH $SYSV$ = 006 ;VERSION NUMBER $SYSLB: .WORD 0 ;2ND OTS WORK AREA POINTER $LOCK: .BYTE 1 ;COMPLETION ROUTINE LOCK WORD ;1 MEANS INIT CALL NECESSARY $CRASH: .BYTE 0 ;FLAG BYTE USED TO INDICATE INTERRUPT ;OVERRUN, 1 INDICATES IT'S HAPPENED .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE MRKT ; R. BILLIG ; I = MRKT( ID, ROUTIN, ITIME(2) ) ; ; SCHEDULES ROUTIN TO BE ENTERED AFTER TIME ITIME HAS ; ELAPSED. ASSOCIATES NUMBER ID WITH THIS REQUEST ; (FOR USE WITH CMKT). ; ; I = 0 NORMAL RETURN ; = 1 NO QUEUE ELEMENTS AVAILABLE ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL MRKT MRKT: TST (R5)+ ;SKIP ARGUMENT COUNT MOV @(R5)+,-(SP) ;ID MOV (R5)+,-(SP) ;ROUTINE ADDRESS MOV (R5)+,-(SP) ;ADDR OF TIME MOV #22*400,-(SP) ;SET .MRKT CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.MRKT BIC R0,R0 ;CLEAR ERROR STATUS ADC R0 ;R0 = 1 IF ERROR ADD #10,SP ;POP ARG BLOCK RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE ISDATF ; R. BILLIG ; I = ISDATF( IBUF(IWDCNT), IWDCNT, IAREA(20), ROUTIN ) ; ; SEND DATA TO OTHER JOB AND ACTIVATE FORTRAN SUBROUTINE ; "ROUTIN" ON COMPLETION. ; ; IAREA(20) IS A 20 WORD AREA USED FOR LINKAGE CODE. ; THE USR MUST NOT SWAP OVER THIS AREA. ; ; I = 0 NORMAL RETURN ; = 1 NO OTHER JOB EXISTS CURRENTLY ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL ISDATF, $CMPLT, $SEND ISDATF: ADD #6,R5 ;R5 -> ADDR OF IAREA MOV (R5)+,R1 ;R1 -> IAREA MOV R1,-(SP) ;SET COMPL. RTN. ADDR JSR PC,$CMPLT ;SET UP LINKAGE AREA SUB #10,R5 ;BACK UP TO BEGINNING OF ARGS JMP $SEND ;AND GO SEND .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE ISPFNF ; R. BILLIG ; I = ISPFNF( ICODE, ICHAN, IWDCNT, IBUF, IBLOCK, IAREA(20), ; ROUTIN ) ; ; ISSUES A SPECIAL FUNCTION REQUEST WHICH, ON COMPLETION, ; WILL ACTIVATE THE FORTRAN SUBROUTINE "ROUTIN". SEE ; SPECIAL FUNCTION CALLS (ISPFN, ISPFNW, ISPFNC) FOR MORE ; DETAILS. ; ; IAREA(20) IS A 20 WORD LINKAGE AREA. THE USR MUST NEVER ; SWAP OVER THIS ARRAY, AND THE FORTRAN PROGRAM MUST NOT ; MODIFY IT. ; ; I = 0 NORMAL RETURN ; = 1 ATTEMPT TO READ/WRITE PAST END-OF-FILE ; = 2 HARD ERROR OCCURRED ON CHANNEL ; = 3 CHANNEL IS NOT OPEN ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL ISPFNF, $CMPLT, $SPFN ISPFNF: ADD #14,R5 ;R5 -> ADDR OF IAREA MOV (R5)+,R1 ;R1 -> IAREA MOV R1,-(SP) ;SET CMPLT. RTN. ADDR JSR PC,$CMPLT ;SET UP LINKAGE AREA SUB #16,R5 ;BACK TO BEGINNING OF ARGS JMP $SPFN ;GO ISSUE .SPFUN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IWRITF ; R. BILLIG ; I = IWRITF( IWDCNT, IBUF, IBLOCK, ICHAN, IAREA(20), ROUTIN ) ; ; ISSUES AN RT-11 .WRITC OPERATION WHICH WILL, ON ; COMPLETION, ACTIVATE THE FORTRAN SUBROUTINE "ROUTIN". ; ; IAREA(20) IS A 20 WORD AREA WHICH IS USED FOR LINKAGE. ; THE USR MUST NEVER SWAP OVER THIS AREA, AND THE FORTRAN ; PROGRAM MUST NEVER MODIFY ITS CONTENTS. AFTER THE ; OPERATION HAS COMPLETED, IAREA MAY BE REUSED. ; ; I = 0 NORMAL RETURN ; = 1 END-OF-FILE OCCURRED ON OUTPUT ; = 2 HARDWARE ERROR OCCURRED ; = 3 CHANNEL NOT OPEN ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL IWRITF, $CMPLT, $WRITE IWRITF: ADD #12,R5 ;R5 -> ADDR OF IAREA MOV (R5)+,R1 ;R1 -> IAREA MOV R1,-(SP) ;SET CMPLT. RTN. ADDR JSR PC,$CMPLT ;SET UP LINKAGE AREA SUB #14,R5 ;BACK TO BEGINNING OF ARGS JMP $WRITE ;GO ISSUE .WRITC .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IRCVDF ; R. BILLIG ; I = IRCVDF( IBUF(IWDCNT+1), IWDCNT, IAREA(20), ROUTIN ) ; ; ISSUES AN RT-11 .RCVDC OPERATION WHICH, ON COMPLETION, ; WILL ACTIVATE THE FORTRAN SUBROUTINE "ROUTIN". SEE ; THE RECEIVE DATA ROUTINES FOR MORE INFORMATION. ; ; IAREA(20) IS A LINKAGE AREA OF 20 WORDS. THIS AREA ; MUST NEVER BE LOCATED WHERE THE USR SWAPS, AND MUST ; NOT BE MODIFIED BY THE FORTRAN PROGRAM. ; ; I = 0 NORMAL RETURN ; = 1 NO OTHER JOB EXISTS ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL IRCVDF, $CMPLT, $RCVD IRCVDF: ADD #6,R5 ;R5 -> ADDR OF IAREA MOV (R5)+,R1 ;R1 -> IAREA MOV R1,-(SP) ;SET CMPLT. RTN. ADDR JSR PC,$CMPLT ;SET UP LINKAGE AREA SUB #10,R5 ;BACK TO BEGINNING OF ARGS JMP $RCVD ;GO ISSUE .RCVDC .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE ISCHED ; R. BILLIG ; I = ISCHED( IHRS, IMIN, ISEC, ITCK, IAREA(20), ID, ROUTIN ) ; ; SCHEDULES THE FORTRAN SUBROUTINE "ROUTIN" TO BE ENTERED ; AS A COMPLETION ROUTINE AT THE TIME OF DAY SPECIFIED ; BY IHRS, IMIN, ISEC, AND ITCK. "ROUTIN" IS A ; SUBROUTINE OF ONE INTEGER ARGUMENT; THIS ARGUMENT ; WILL BE SET TO THE VALUE SPECIFIED FOR "ID" WHEN THE ; ROUTINE IS ACTIVATED. ; ; I = ITIMER( IHRS, IMIN, ISEC, ITCK, IAREA(20), ID, ROUTIN ) ; ; ITIMER CAUSES THE ROUTINE TO BE ENTERED AT THE TIME ; SPECIFIED FROM NOW. ALL ARGUMENTS ARE IDENTICAL TO ISCHED. ; ; THIS SCHEDULE REQUEST MAY BE ABORTED BY ISSUING ; A CALL ICMKT WITH THE SAME ID AS SPECIFIED IN THE ; ISCHED CALL. ; ; IAREA IS A 20 WORD INTEGER ARRAY WHICH IS USED ; TO CONTAIN SYSTEM LINKAGE INFORMATION, AND MUST ; NOT BE DESTROYED OR MODIFIED. FOR THIS REASON, ; IAREA MUST NOT BE IN AN AREA OVER WHICH THE USR ; MAY SWAP, ETC. ; ; TO PERIODICALLY RESCHEDULE THE ROUTINE, ANOTHER ; ISCHED OR ITIMER CALL (WHICH MAY SPECIFY THE SAME ; IAREA AS THE CALL WHICH ACTIVATED IT) MAY BE ISSUED ; FROM INSIDE OF "ROUTIN". ; ; I = 0 NORMAL RETURN ; = 1 NO QUEUE ELEMENTS AVAILABLE ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL ISCHED, ITIMER, $TIME$, $TIME1, $CMPLT ITIMER: TST (R5)+ ;SKIP ARGUMENT COUNT JSR PC,$TIME$ ;(R0,R1) = TIME INTERVAL MOV R1,-(SP) ;SAVE INTERVAL MOV R0,-(SP) BR ISCTIM ISCHED: TST (R5)+ ;SKIP ARGUMENT COUNT JSR PC,$TIME1 ;(R2,R3) = TIME INTERVAL MOV R3,-(SP) ;SAVE TIME INTERVAL MOV R2,-(SP) ISCTIM: MOV SP,R2 ;R2 -> TIME INTERVAL MOV (R5)+,R1 ;R1 -> IAREA MOV @(R5)+,-(SP) ;STACK ID MOV R1,-(SP) ;STACK ADDR OF IAREA MOV R2,-(SP) ;AND ADDR OF TIME MOV #22*400,-(SP) ;SET .MRKT CODE MOV SP,R0 ;R0 -> .MRKT ARG BLOCK JSR PC,$CMPLT ;SET UP LINKAGE AREA EMT 375 ;.MRKT BIC R0,R0 ;CLEAR ERROR CODE ADC R0 ;R0 = 1 IF ERROR ADD #14,SP ;POP ARGS AND TIME RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IRENAM ; R. BILLIG ; I = IRENAM( ICHAN, IDEVBL(8) ) ; ; CAUSES FILE SPECIFIED BY IDEVBL(1)-IDEVBL(4) TO BE ; RENAMED TO THE NAME SPECIFIED BY IDEVBL(5)-IDEVBL(8). ; ; I = 0 NORMAL RETURN ; = 1 CHANNEL ACTIVE ; = 2 FILE NOT FOUND ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL IRENAM IRENAM: MOV 4(R5),-(SP) ;IDEVBL ADDR MOV @2(R5),-(SP) ;ICHAN BIS #4*400,@SP ;SET .RENAME CODE MOV SP,R0 ;R0->AREA EMT 375 ;.RENAME BIC R0,R0 ;CLEAR ERROR CODE ADC R0 ;R0 = 1 IF ERROR BEQ 1$ ;NO ERRORS MOVB @#52,R0 ;GET ERROR CODE INC R0 1$: CMP (SP)+,(SP)+ ;POP ARG BLOCK RTS PC ;AND RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE JADD INTEGER*4 ADD ; H.J. R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL JADD,$SETR0 JADD: CLR R0 ;INITIALIZE FOR NORMAL EXIT TST (R5)+ ;SKIP COUNT ARG MOV (R5)+,R4 ;ADDR OF OPERAND 1 MOV (R5)+,R3 ;ADDR OF OPERAND 2 MOV (R5)+,R1 ;ADDR OF RESULT MOV (R4)+,R2 ;GET LOW ORDER OP 1 ADD (R3)+,R2 ;ADD IN LOW ORDER OP 2 MOV @R4,R5 ;GET HIGH ORDER OP 1 ADC R5 ;ADD IN CARRY BVS 1$ ADD @R3,R5 ;ADD IN HIGH ORDER OP 2 BVC 2$ 1$: CLR R2 ;SET RESULT TO 0 CLR R5 MOV #-2,R0 ;INDICATE OVERFLOW 2$: MOV R2,(R1)+ ;STORE RESULT MOV R5,@R1 JMP $SETR0 ;EXIT VIA SETR0 ROUTINE .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE JSUB INTEGER*4 SUBTRACT ; H.J. R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL JSUB,$SETR0 JSUB: CLR R0 ;INITIALIZE FOR NORMAL EXIT TST (R5)+ ;SKIP COUNT ARG MOV (R5)+,R4 ;ADDR OF OPERAND 1 MOV (R5)+,R3 ;ADDR OF OPERAND 2 MOV (R5)+,R1 ;ADDR OF RESULT MOV (R4)+,R2 ;GET LOW ORDER OP 1 SUB (R3)+,R2 ;SUBTRACT LOW ORDER OP 2 MOV @R4,R5 ;GET HIGH ORDER RESULT SBC R5 ;SUBTRACT CARRY BVS 1$ SUB @R3,R5 ;SUBTRACT HIGH ORDER OP 2 BVC 2$ 1$: CLR R2 ;SET RESULT TO 0 CLR R5 MOV #-2,R0 ;INDICATE OVERFLOW 2$: MOV R2,(R1)+ ;STORE RESULT MOV R5,@R1 JMP $SETR0 ;EXIT VIA SETR0 ROUTINE .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE JMUL INTEGER*4 MULTIPLY ; H.J. R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL JMUL,$SETR0 JMUL: TST (R5)+ ;SKIP COUNT ARG CLR -(SP) ;INIT SIGN FLAG MOV (R5)+,R4 ;ADDR OF OPERAND 1 MOV (R4)+,R1 ;GET LOW ORDER OP 1 MOV @R4,R3 ;GET HIGH ORDER OP 1 BPL 1$ ;BRANCH IF POSITIVE NEG R3 ;TAKE ABSOLUTE VALUE NEG R1 SBC R3 INC @SP ;AND SET SIGN FLAG 1$: MOV (R5)+,R4 ;ADDR OF OPERAND 2 MOV (R4)+,R0 ;LOW ORDER OF OP 2 MOV @R4,R2 ;HIGH ORDER OF OP 2 BPL 2$ ;BRANCH IF POSITIVE INC @SP ;SET SIGN FLAG NEG R2 ;AND TAKE ABSOLUTE VALUE NEG R0 SBC R2 2$: BEQ 3$ ;BRANCH IF HIGH PART OF OP 2 IS 0 TST R3 ;IF WASN'T OP 2 MUST BE OP 1 BNE OVRFL ;BRANCH IF RESULT WILL BE TOO BIG MOV R0,R4 ;OTHERWISE SWITCH OPS MOV R1,R0 MOV R4,R1 MOV R2,R3 CLR R2 3$: CLR R4 ;RESULT WILL END UP IN R2:R4 4$: ROR R0 ;SHIFT BIT OUT OF MULTIPLIER BCC 5$ ;BRANCH IF 0 ADD R1,R4 ;ADD LOW PARTS TOGETHER ADC R2 ;ADD IN CARRY BVS OVRFL ;BRANCH IF OVERFLOW ADD R3,R2 ;ADD HIGH PARTS TOGETHER BVS OVRFL ;BRANCH IF OVERFLOW TST R0 ;ANY MORE OF MULTIPLIER LEFT? 5$: BEQ DONE ;BRANCH IF FINISHED ASL R1 ;SHIFT MULTIPLICAND LEFT ROL R3 BVC 4$ ;LOOP OVRFL: MOV #-2,R0 ;SET OVEFLOW INDICATOR CLR R2 ;SET RESULT TO 0 CLR R4 DONE: ROR (SP)+ ;GET RESULT SIGN INTO C BCC 1$ ;BRANCH IF TO BE POSITIVE NEG R2 ;NEGATE RESULT NEG R4 SBC R2 1$: MOV @R5,R1 ;ADDR OF RESULT MOV R4,(R1)+ ;STORE LOW ORDER MOV R2,@R1 ;STORE HIGH ORDER JMP $SETR0 ;EXIT VIA SETR0 ROUTINE .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE JDIV INTEGER*4 DIVIDE ; H.J. R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL JDIV,$SETR0 JDIV: CLR -(SP) ;SET SUCCCESSFUL EXIT FLAG MOV (R5)+,-(SP) ;SAVE ARG COUNT MOV (R5)+,R4 ;ADDR OF NUMERATOR MOV (R5)+,R1 ;ADDR OF DENOMINATOR MOV R5,-(SP) ;SAVE ADDR OF RESULT MOV #33.,-(SP) ;SET SHIFT COUNTER MOV (R1)+,R0 ;GET LOW ORDER DENOM MOV @R1,R1 ;GET HIGH ORDER DENOM BPL 1$ ;BRANCH IF POSITIVE NEG R1 ;TAKE ABSOLUTE VALUE NEG R0 SBC R1 ADD #100000,@SP ;AND SET SIGN FLAG 1$: BNE 2$ ;BRANCH IF DENOM CAN'T BE 0 TST R0 ;MAKE SURE LOW DENOM ISN'T 0 BEQ ZDIV ;BRANCH IF ZERO DIVIDE 2$: MOV (R4)+,R2 ;LOW ORDER OF NUM MOV @R4,R3 ;HIGH ORDER OF NUM BPL 3$ ;BRANCH IF POSITIVE ADD #40000,@SP ;SET SIGN FLAG NEG R3 ;AND TAKE ABSOLUTE VALUE NEG R2 SBC R3 3$: CLR R5 ;QUOTIENT ENDS UP IN R3:R2 CLR R4 ;REMAINDER ENDS UP IN R5:R4 4$: ROL R4 ;EXPOSE NEW BIT OF NUMERATOR ROL R5 CMP R1,R5 ;DOES DENOM FIT? BHI 6$ ;BRANCH IF NOT, C=0 BNE 5$ ;BRANCH IF YES CMP R0,R4 ;HIGH PARTS SAME, CHECK LOW BHI 6$ ;BRANCH IF NOT, C=0 5$: SUB R0,R4 ;SUBTRACT DENOM FROM REMAINDER SBC R5 SUB R1,R5 SEC ;INDICATE NEW QUOTIENT BIT 6$: ROL R2 ;SHIFT IN NEW BIT OF QUOTIENT ROL R3 DECB @SP ;CHECK LOOP COUNT BGT 4$ ;BRANCH TO LOOP ENDCOD: ASL @SP ;PUT QUOTIENT RESULT SIGN IN V BVC 1$ ;BRANCH IF TO BE POSITIVE NEG R3 ;NEGATE QUOTIENT NEG R2 SBC R3 1$: TST (SP)+ ;GET REMAINDERS SIGN BPL 2$ ;BRANCH IF REMAINDER TO BE POSITIVE NEG R5 ;NEGATE REMAINDER NEG R4 SBC R5 2$: MOV (SP)+,R0 ;GET ARG LIST POINTER AGAIN MOV (R0)+,R1 ;ADDR OF QUOTIENT RESULT CMPB #3,(SP)+ ;CHECK NUMBER OF ARGUMENTS BEQ 3$ ;BRANCH IF ONLY 3 PASSED MOV @R0,R0 ;GET ADDR REMAINDER RESULT MOV R4,(R0)+ ;STORE LOW MOV R5,@R0 ;STORE HIGH 3$: MOV R2,(R1)+ ;STORE LOW QUOTIENT RESULT MOV R3,@R1 ;STORE HIGH MOV (SP)+,R0 ;SET R0 FOR $SETR0 ROUTINE JMP $SETR0 ;EXIT VIA $SETR0 ROUTINE ZDIV: CLR R4 ;SET REMAINDER TO 0 CLR R5 CLR R2 ;SET QUOTIENT TO 0 CLR R3 MOV #-3,6(SP) ;SET ZDIV ERROR INDICATOR BR ENDCOD ;GO SET RESULTS .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE JICVT INTEGER*2 TO INTEGER*4 CONVERT ; H.J. R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL JICVT,$SETR0 JICVT: TST (R5)+ ;SKIP COUNT ARG CLR R2 ;INIT SIGN EXTEND WORD MOV @(R5)+,R0 ;GET INTEGER VALUE BPL 1$ ;BRANCH IF POSITIVE DEC R2 ;SET SIGN EXTEND WORD 1$: MOV @R5,R1 ;ADDR OF RESULT MOV R0,(R1)+ ;STORE LOW ORDER MOV R2,@R1 ;STORE HIGH ORDER CLR R0 ;INITIALIZE FOR NORMAL EXIT JMP $SETR0 ;EXIT VIA SETR0 ROUTINE .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IJCVT INTEGER*4 TO INTEGER*2 CONVERT ; H.J. R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 ; FUNCTION RETURNS INTEGER*2 RESULT OF INTEGER*4 ARGUMENT ; FOR ONLY 1 ARGUMENT -THE FUNCTION RESULT IS THE VALUE ; FOR 2 ARGUMENTS -THE SECOND ARGUMENT IS THE VALUE ; AND FUNCTION RESULT IS: ; -2 OVERFLOW, -1 NEGATIVE, 0 ZERO, 1 POSITIVE .GLOBL IJCVT,$SETR0 IJCVT: MOV (R5)+,R1 ;GET ARG COUNT DECB R1 ;ONLY 1 ARG? BNE 1$ ;BRANCH IF MORE THAN ONE MOV @(R5)+,R0 ;RETURN SINGLE WORD INTEGER RTS PC ;RETURN 1$: CLR R0 ;INIT RESULT REG MOV (R5)+,R1 ;ADDR OF OP 1 MOV (R1)+,@(R5)+ ;STORE RESULT BMI 5$ ;ARG WAS NEGATIVE BEQ 2$ ;MUST BE POSITIVE INC R0 ;MAKES R0=1 2$: TST @R1 ;ARG MUST BE 0 3$: BEQ 4$ ;BRANCH SUCCESSFUL COMPLETION MOV #-2,R0 ;SET OVERFLOW CLR @-(R5) ;SET RESULT TO 0 ON OVERFLOW 4$: RTS PC ;RETURN 5$: DEC R0 ;SET R0=1 (ASSUMED GOOD RETURN) CMP R0,@R1 ;SHOULD BE -1 TO BE VALID? BR 3$ ;GO EXIT .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE JFIX FLOATING TO INTEGER*4 ; H.J. R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL JDFIX,JAFIX,$SETR0 JDFIX: TST (PC)+ ;SET C=0 JAFIX: SEC ;SET C=1 BIC R3,R3 ;0 REG WITHOUT CHANGING C MOV (R5)+,R4 ;GET ARG COUNT MOV (R5)+,R4 ;GET ADDR OF FLOATING NUMBER MOV (R4)+,R1 ;GET HIGH ORDER FLOATING MOV (R4)+,R0 ;NEXT PART BCS 1$ ;IF JAFIX DON'T WANT ANY MORE MOV @R4,R3 ;GET LAST NEEDED 8 BITS 1$: ASL R1 ;C=SIGN ROR -(SP) ;SAVE FOR LATER SEC RORB R1 ;INSERT IMPLIED NORMALIZE BIT SWAB R1 ;SWITCH EXP AND HIGH MANTISSA MOV R1,R4 ;MAKE COPY FOR EXP CLRB R1 ;REMOVE EXP FROM HIGH WORD MANTISSA BIC R1,R4 ;REMOVE HIGH WORD MANTISSA FROM EXP SWAB R0 ;SET UP TO MOVE NEXT BYTE OF MANTISSA BISB R0,R1 ;INSERT NEXT BYTE MANTISSA CLRB R0 ;REMOVE IT SWAB R3 ;GET LOWEST BYTE BISB R3,R0 ;PUT IT IN CLR R3 ;INIT LOW WORD OF RESULT CLR R2 ;INIT HIGH WORD OF RESULT SUB #200,R4 ;REMOVE BIAS FROM EXP BLE 4$ ;BRANCH IF RESULT WILL BE ZERO CMP #20,R4 ;WILL RESULT BE ONLY 1 WORD LONG BHIS 3$ ;BRANCH IF ONLY NEED 1 WORD SUB #20,R4 ;WELL, WE NEED 2 WORDS CMP #20,R4 ;MAKE SURE RESULT WILL FIT IN 2 WORDS BHI 2$ ;BRANCH IF O.K. MOV #-2,R0 ;SET OVERFLOW INDICATORE BR 5$ ;GO FINISH UP 2$: MOV R1,R3 ;PERFORM A WORD SHIFT MOV R0,R1 3$: ROL R1 ;SHIFT IN A BIT ROL R3 ;INTO LOW ORDER RESULT ROL R2 ;NOW INTO HIGH ORDER RESULT DEC R4 ;ARE WE DONE? BGT 3$ ;BRANCH FOR MORE BITS 4$: CLR R0 ;SET FOR $SETR0 ROUTINE 5$: TST (SP)+ ;TEST FINAL SIGN BPL 6$ ;BRANCH IF POSITIVE NEG R2 ;NEGATE RESULT NEG R3 SBC R2 6$: MOV @R5,R1 ;GET ADDRESS OF RESULT MOV R3,(R1)+ ;STORE LOW RESULT MOV R2,@R1 ;STORE HIGH RESULT JMP $SETR0 ;EXIT VIA $SETR0 ROUTINE .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE JFLT INTEGER*4 TO FLOATING ; H.J. R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL DJFLT,IDJFLT,IAJFLT,AJFLT,$SETR0 IDJFLT: DJFLT: MOV (PC)+,-(SP) ;SET D ENTRY FLAG IAJFLT: AJFLT: CLR -(SP) ;SET A ENTRY FLAG MOV (R5)+,-(SP) ;SAVE ARG COUNT MOV (R5)+,R4 ;GET ADDR OF I*4 QUANTITY CLR R2 ;INIT POSSIBLE 3RD WORD OF RESULT MOV (R4)+,R1 ;GET LOW PART BNE 1$ ;BRANCH IF NOT 0 MOV @R4,R0 ;IS ENTIRE NUMBER 0 BEQ 7$ ;BRANCH IF YES 1$: MOV @R4,R0 ;GET HIGH PART BPL 2$ ;BRANCH IF POSITIVE NEG R0 ;NEGATE HIGH PART, C=1 NEG R1 ;NEGATE LOW PART SBC R0 2$: MOV #237,R3 ;SET MAXIMUM EXP+1 3$: BIT #177400,R0 ;LOOK FOR A STRING OF 8 0 BITS BNE 5$ ;BRANCH IF NOT FOUND SWAB R0 ;LEFT JUSTIFY THEM SUB #8.,R3 ;PERFORM A SHIFT BY 8 SWAB R1 BISB R1,R0 ;INSERT NEW BITS CLRB R1 ;REMOVE THEM BR 3$ ;TRY AGAIN 4$: DEC R3 ;FIX EXP COUNT ROL R1 ;NORMALIZE R0:R1 ROL R0 5$: BPL 4$ ;LOOP TILL IMPLIED NORM BIT IN SIGN BISB R1,R2 ;PUT IN BITS 25-32 SWAB R2 ;JUSTIFY IT CLRB R1 ;REMOVE THE BITS FROM 2ND WORD BISB R0,R1 ;MOVE THE NEW ONES IN FROM R0 SWAB R1 ;JUSTIFY IT CLRB R0 ;REMOVE THEM FROM HIGH WORD SWAB R0 ;JUSTIFY IT SWAB R3 ;GET EXP INTO HIGH BYTE TST @R4 ;WAS ORIGINAL NUMBER + OR - BPL 6$ ;BRANCH IF POSITIVE, C=0 SEC 6$: ROR R3 ;INSERT WITH EXP ADD R3,R0 ;CREATE RESULT 7$: CLR R3 ;INIT JUST IN CASE D ENTRY DECB (SP)+ ;IS RESULT ARGUMENT WANTED? BNE 8$ ;BRANCH IF YES TO STORE IT TST (SP)+ ;REMOVE EXTRA WORD RTS PC ;RETURN 8$: MOV @R5,R5 ;GET DESTINATION ADRESS MOV R0,(R5)+ ;STORE HIGH ORDER WORD MOV R1,(R5)+ ;STORE NEXT WORD TST (SP)+ ;2 WORD OR 4 WORD RESULT? BEQ 9$ ;BRANCH IF ONLY 2 WORD RESULT MOV R2,(R5)+ ;STORE NEXT WORD CLR @R5 ;STORE LAST WORD 9$: MOV R4,R1 ;SET POINTER TO I*4 QUANTITY FOR $SETR0 CLR R0 ;SET FOR $SETR0 JMP $SETR0 ;EXIT VIA $SETR0 ROUTINE .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE JMOV INTEGER*4 MOVE ; H.J. R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL JMOV,$SYSLB,$SETR0 JMOV: CLR R0 ;INITIALIZE FOR NORMAL EXIT TST (R5)+ ;SKIP COUNT ARG MOV (R5)+,R4 ;ADDR OF OPERAND 1 MOV (R5)+,R1 ;ADDR OF OPERAND 2 MOV (R4)+,(R1)+ ;MOVE LOW PART MOV @R4,@R1 ;MOVE HIGH PART $SETR0: TST @R1 ;TEST HIGH PART BGT 1$ ;BRANCH IF >0 BLT 2$ ;BRANCH IF <0 TST -(R1) ;CHECK LOW PART BEQ 3$ ;RESULT IS 0, LEAVE R0 ALONE 1$: TST (R0)+ ;ADD 2 TO R0 2$: DEC R0 ;SUBTRACT 1 FROM R0 3$: RTS PC ;RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IREADF ; R. BILLIG ; I = IREADF( IWDCNT, IBUF, IBLOCK, ICHAN, IAREA(20), ROUTIN ) ; ; ISSUES AN RT-11 .READC OPERATION. ON COMPLETION, CONTROL ; WILL PASS TO THE FORTRAN SUBROUTINE "ROUTIN". ; ; SUBROUTINE ROUTIN( IREGS(2) ) ; IREGS(1) CONTAINS ON ENTRY THE CHANNEL STATUS WORD, ; IREGS(2) CONTAINS THE CHANNEL NUMBER FOR THE OPERATION. ; ; IAREA(20) IS A 20 WORD AREA USED FOR LINKAGE CODE. IT SHOULD ; BE SITUATED SO AS TO PREVENT THE USR FROM SWAPPING OVER IT. ; IT MUST NEVER BE MODIFIED BY THE FORTRAN PROGRAM. ; SUBSEQUENT TO THE COMPLETION OF THE OPERATION, IAREA MAY ; BE REUSED FOR ANOTHER COMPLETION OPERATION. ; ; I = 0 NORMAL RETURN ; = 1 ATTEMPT TO READ PAST END-OF-FILE ; = 2 HARD ERROR OCCURRED ON CHANNEL ; = 3 CHANNEL IS NOT OPEN ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL IREADF, $CMPLT, $READ IREADF: ADD #12,R5 ;R5 -> ADDR OF IAREA MOV (R5)+,R1 ;R1 -> IAREA MOV R1,-(SP) ;STACK COMPLT. RTN. ADDR JSR PC,$CMPLT ;SET UP LINKAGE AREA SUB #14,R5 ;BACK TO FIRST ARG JMP $READ ;GO DO READ .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE CMPLT ; H.J. ; SUBROUTINE CMPLT FOR SYSLIB. ; SETS UP AREA FOR FORTRAN COMPLETION ROUTINE. ; ; INPUTS: ; R1 -> IAREA (3 WORDS) TO BE USED FOR LINKAGE CODE. ; R5 -> WORD CONTAINING ADDRESS OF FORTRAN ROUTINE. ; ; OUTPUTS: ; R0,R4,R5,SP UNCHANGED, IAREA INITIALIZED ; ; DESTROYS: ; R1,R2,R3 ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL $CMPLT,$LOCK,$CRASH .GLOBL $AOTS,$LRECL,$WASIZ,$HRDWR ENMLNK=14. ;RT-11 OTSWA TRACEBACK CHAIN POINTER DEVHDR=10. ;TOP OF FREE SPACE POINTER FREESP=12. ;BOTTOM OF FREE SPACE POINTER LNBUF=2. ;RECORD BUFFER POINTER SEQNO=0. ;STATEMENT COUNTER $CMPLT: MOV #004437,(R1)+ ;JSR R4,@#COMPLT TO IAREA MOV #COMPLT,(R1)+ MOV @R5,(R1)+ ;FORTRAN SUBROUTINE ADDRESS TSTB $LOCK ;IS THIS FIRST CALL? BLE 2$ ;1 MEANS YES MOV $AOTS,R3 ;GET ADDRESS OF CURRENT WORK AREA MOV #$WASIZ,R2 ;GET ITS SIZE MOV DEVHDR(R3),R1 ;GET TOP OF FREE SPACE POINTER SUB R2,R1 ;HUNK OUT NEW WORK AREA SUB R2,R1 ;COUNT WAS IN WORDS MOV R1,$SYSLB ;SAVE ITS ADDRESS FOR COMPLETION ENTRY MOV R1,-(SP) ;MAKE COPY SUB #$LRECL,@SP ;ALLOCATE NEW LINE BUFFER BIC #1,@SP ;MAKE SURE # OF WORDS MOV @SP,DEVHDR(R3) ;RESET NEW FREE SPACE POINTER CMP @SP,FREESP(R3) ;MAK SURE THIS WILL WORK BHI 1$ ;TIS O.K. TRAP 0 ;GIVE THE 'NON-FORTRAN ERROR CALL' 1$: MOV (R3)+,(R1)+ ;COPY THE WORK AREA DEC R2 ;COUNT BNE 1$ ;LOOP MOV $SYSLB,R3 ;NOW POINT TO IT TO SET NEW LINE BUFFER MOV (SP)+,LNBUF(R3) ;GIVES US NEW LINE BUFFER NEGB $LOCK ;ENABLE OTSWA SWAPPING 2$: RTS PC ;THEN RETURN COMPLT: INCB $LOCK ;SIGNAL COMPLETION ROUTINE IN PROGRESS BEQ RUNIT ;MUST BE A SJ MONITOR NON-SYNCHRONIZE ;COMPLETION ROUTINE DISASTER BOMB: TRAP 0 ;MIGHT AS WELL CRASH MOV SP,R0 ;MAKE SURE R0 ISN'T 0 EMT 350 ;.EXIT RUNIT: MOV R5,-(SP) ;SAVE REGISTERS MOV R3,-(SP) MOV R2,-(SP) MOV #$HRDWR,R3 ;PERFORM A PSEUDO HARDWARE TASK SWITCH JMP @SAVH(R3) ;GO TO CORRECT SAVER ROUTINE SAVED: MOV $AOTS,R2 ;SWITCH TO NEW WORK AREA MOV $SYSLB,R3 MOV R3,$AOTS MOV R2,-(SP) ;SAVE FOR MAINLINE MOV DEVHDR(R2),DEVHDR(R3) ;SAFETY PLAY MOV FREESP(R2),FREESP(R3) ;OBJECT TIME FORMAT ALLOWER ;EVEN THOUGH THIS IS DONE IT IS ;IMPERATIVE THAT THE COMPLETION ROUTINE ;NOT CAUSE MODIFICATION TO THESE MOV ENMLNK(R2),ENMLNK(R3) ;HANDLE TRACEBACK AND RETURN MOV R1,-(SP) MOV SP,R2 ;SAVE ITS ADDRESS SO WE CAN PASS IT MOV R0,-(SP) MOV SP,R0 ;R0 -> SAVEAREA MOV R2,-(SP) ;BUILD FORTRAN ARGUMENT LIST MOV R0,-(SP) ;BUILD FORTRAN ARG LIST MOV #2,-(SP) ;WITH ONE ARG MOV SP,R5 ;R5 -> ARG LIST JSR PC,@(R4)+ ;CALL FORTRAN ROUTINE ADD #10.,SP ;POP ARG BLOCK AND R0,R1 MOV (SP)+,$AOTS ;RESTORE REAL WORKAREA POINTER MOV #$HRDWR,R3 ;UN-TASK SWITCH HARDWARE JMP @RESTH(R3) ;GO TO PROPER ROUTINE RESTRD: MOV (SP)+,R2 ;RESTORE REGS MOV (SP)+,R3 MOV (SP)+,R5 MOV (SP)+,R4 TSTB $CRASH ;DID INTERRUPT OVERRUN OCCUR?? BEQ 1$ ;BRANCH IF ALL O.K. EMT 355 ;.RCTRLO MOV #MSG,R0 ;SET UP FOR .PRINT EMT 351 ;.PRINT BR BOMB ;TERMINATE PROGRAM 1$: DECB $LOCK ;FREE UP THIS COPY OF WORK AREA RTS PC ;AND RETURN TO THE MONITOR MSG: .ASCIZ /?SYSLIB- FATAL INTERRUPT OVERRUN/ .EVEN EAESV: MOV @#177302,-(SP) ;MUST BE SAVE IN THIS ORDER!!! MOV @#177304,-(SP) MOV @#177310,-(SP) BR SAVED EAERE: MOV (SP)+,@#177310 ;MUST BE RESTORED IN THIS ORDER MOV (SP)+,@#177304 MOV (SP)+,@#177302 BR RESTRD FPUSV: STFPS -(SP) ;THE STACK BETTER BE BIG!!! SETD ;HERE IT COMES STD R0,-(SP) STD R1,-(SP) STD R2,-(SP) STD R3,-(SP) LDD R4,R0 STD R0,-(SP) LDD R5,R0 STD R0,-(SP) SETF ;SIMULATE OTI INIT FOR SUBR'S BR SAVED FPURE: SETD ;JUST IN CASE DOUBLE MODE LDD (SP)+,R0 STD R0,R5 LDD (SP)+,R0 STD R0,R4 LDD (SP)+,R3 LDD (SP)+,R2 LDD (SP)+,R1 LDD (SP)+,R0 LDFPS (SP)+ BR RESTRD ;WHEW SAVH: .WORD SAVED ;BARE 11 .WORD EAESV ;EAE .WORD SAVED ;EIS .WORD SAVED ;FIS .WORD FPUSV ;IT'S AN FPU! RESTH: .WORD RESTRD ;BARE 11 .WORD EAERE ;EAE .WORD RESTRD ;EIS .WORD RESTRD ;FIS .WORD FPURE ;FPU .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE CHAIN ; R. BILLIG ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 ; CHAIN SUBROUTINE ; ; THE CHAIN SUBROUTINE ALLOWS A FORTRAN PROGRAM TO ; CHAIN TO ANOTHER PROGRAM BY SPECIFYING ITS NAME. ; THE PROGRAM MAY ALSO PASS PARAMETERS THROUGH THE ; STANDARD CHAIN PARAMETER AREA AT 500-776. ; ; CALL CHAIN( PROG, STRVAR, IUNITS ) ; PROG= THE RAD50 STRING "DEV:FILNAM.EXT" WHICH ; SPECIFIES THE PROGRAM TO CHAIN TO. ; STRVAR= THE FIRST VARIABLE IN A SEQUENCE OF VARIABLES ; WITH INCREASING ADDRESSES WHICH ARE TO BE ; PASSED IN THE CHAIN PARAMETER AREA. ; IUNITS= THE NUMBER OF STORAGE UNITS (WORDS) TO BE ; MOVED TO THE PARAMETER AREA. ; .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL CHAIN CHAIN: TST (R5)+ ;SKIP # OF ARGUMENTS MOV #500,R1 ;POINT TO PARAMETER AREA MOV (R5)+,R4 ;GET ADDRESS OF NAME OF PROG MOV (R4)+,(R1)+ ;MOVE IN NAME OF CHAINEE MOV (R4)+,(R1)+ MOV (R4)+,(R1)+ MOV (R4)+,(R1)+ MOV (R5)+,R4 ;R4 -> STRVAR MOV @(R5)+,R3 ;R3 = # OF STORAGE UNITS TO MOVE BEQ 2$ ;NONE - JUST GO 1$: MOV (R4)+,(R1)+ ;MOVE A WORD TO THE PARAM AREA DEC R3 ;FOR AS MANY WORDS AS DESIRED BNE 1$ 2$: MOV #10*400,R0 ;CHAIN SUBCODE EMT 374 ;AND GO ; RTS PC ;CAN'T POSSIBLY RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE RCHAIN ; R. BILLIG ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF ; RCHAIN SUBROUTINE ; ; THE RCHAIN SUBROUTINE ALLOWS THE FORTRAN PROGRAM TO ; DETERMINE IF IT WAS CHAINED TO (RATHER THAN HAVING ; BEEN RUN DIRECTLY), AND ALLOWS ACCESS TO THE ; CHAIN PARAMETERS PASSED. ; ; CALL RCHAIN( IFLAG, STRVAR, IUNITS ) ; IFLAG= -1 IF THIS PROGRAM WAS CHAINED TO, 0 OTHERWISE ; STRVAR= ADDRESS OF FIRST VARIABLE IN A SEQUENCE OF ; CONTIGUOUS VARIABLES TO RECEIVE THE PARAMETERS ; PASSED IN THE CHAIN AREA. ; IUNITS= THE NUMBER OF STORAGE UNITS TO BE MOVED FROM ; THE PARAMETER AREA TO THE VARIABLES SPECIFIED. ; .GLOBL RCHAIN RCHAIN: TST (R5)+ ;SKIP # OF ARGUMENTS MOV (R5)+,R4 ;R4 -> IFLAG CLR @R4 ;GUESS THAT NO CHAIN WAS DONE BIT #400,@#44 ;WAS CHAIN DONE? BEQ 2$ ;NOPE COM @R4 ;ELSE INDICATE SO MOV (R5)+,R4 ;R4 -> STRVAR MOV @(R5)+,R3 ;R3 = # OF UNITS TO MOVE BEQ 2$ ;NONE MOV #510,R2 ;ELSE POINT TO PARAMETERS 1$: MOV (R2)+,(R4)+ ;COPY A WORD UP DEC R3 ;FOR AS MANY AS SPECIFIED BNE 1$ 2$: RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE SECNDS ; H.J. ; CALL SECNDS( ARG ) ; ; RETURNS THE TIME OF DAY - ARG IN FLOATING FORMAT ; ; NO ERRORS ARE POSSIBLE. ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL SECNDS, $DIVTK, SUF$SS, AJFLT SECNDS: MOV R5,-(SP) CMP -(SP),-(SP) ;TIME FROM GTIM SPOT MOV SP,R0 MOV R0,-(SP) MOV #21*400,-(SP) ;SET .GTIM CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.GTIM CMP (SP)+,(SP)+ ;POP PARM BLOCK MOV (SP)+,R0 ;HIGH TIME TO R0 MOV (SP)+,R1 JSR PC,$DIVTK ;DIVIDE BY TICKS PER SECOND MOV R0,-(SP) ;SET UP TO CALL AJFLT MOV R1,-(SP) MOV SP,R0 MOV R0,-(SP) MOV #1,-(SP) MOV SP,R5 JSR PC,AJFLT ADD #8.,SP ;REMOVE STUFF MOV (SP)+,R5 MOV 2(R5),R4 MOV R1,-(SP) MOV R0,-(SP) MOV 2(R4),-(SP) MOV @R4,R4 ;SET UP TO DO FLOATING DIFFERENCE JSR R4,@(PC)+ .WORD SUF$SS .WORD .+2 MOV (SP)+,R0 MOV (SP)+,R1 RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE JCMP INTEGER*4 COMPARE ; H.J. R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL JCMP,$SYSLB JCMP: CLR R0 ;INITIALIZE FOR NORMAL EXIT TST (R5)+ ;SKIP COUNT ARG MOV (R5)+,R2 ;ADDR OF OPERAND 1 MOV (R5)+,R1 ;ADDR OF OPERAND 2 CMP 2(R2),2(R1) ;COMPARE HIGH PARTS BGT 1$ ;BRANCH IF >0 BLT 2$ ;BRANCH IF <0 CMP @R2,@R1 ;COMPARE LOW PARTS BEQ 3$ ;RESULT IS 0, LEAVE R0 ALONE BLO 2$ ;UNSIGNED ARG 1 IS LESS 1$: TST (R0)+ ;ADD 2 TO R0 2$: DEC R0 ;SUBTRACT 1 FROM R0 3$: RTS PC ;RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE ILUN ; H.J. ; ILUN ( LUN ) ; ; RETURNS THE RT-11 CHANNEL NUMBER ASSOCIATED WITH LUN. ; ; ERRORS ARE POSSIBLE. ; -1 MEANS NOT OPEN ; -2 MEANS OPEN ON TERMINAL ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL ILUN, $FCHNL, $AOTS OPEN=4000 CHNLNO=17. ILUN: MOV @2(R5),R2 ;GET QUESTIONED UNIT MOV $AOTS,R3 ;SET WORK AREA POINTER JSR PC,$FCHNL ;GET ADDRESS OF THE FDB MOV R0,R1 ;COPY POINTER MOV #-1,R0 ;MAKE R0 NEGATIVE BIT #OPEN,@R1 ;MAKE SURE UNIT OPEN BEQ 2$ ;BAD EXIT DEC R0 ;RETURN FOR TERMINAL? TSTB @R1 ;IS IT TERMINAL? BMI 2$ ;BRANCH IF YES 1$: MOVB CHNLNO(R1),R0 ;GIVE RT-11 CHANNEL 2$: RTS PC ;RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE IASIGN ; H.J. ; IASIGN ( LUN, IDEV, IFILEX, IESIZ, ITYPES ) ; ; PUTS INFO IN FDB ASSOCIATED WITH LUN. ; ; ERRORS ARE POSSIBLE. ; 0 MEANS O.K. ; <>0 MEANS OPEN ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 OPEN=4000 LISTMD=20 UNLIST=10 RDO=100 OLD=400 SCR=4 BUFNO= 16. DEVNM= 6. FILNM= 8. EXTEN= 12. FILSZ= 24. .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL IASIGN, $FCHNL, $AOTS IASIGN: MOV (R5)+,R4 ;GET ARG COUNT DECB R4 ;WE MUST HAVE LUN MOV @(R5)+,R2 ;GET LUN FOR OTS $FCHNL MOV $AOTS,R3 ;WORK AREA POINTER JSR PC,$FCHNL ;GET ASSOCIATED LUN BIT #OPEN,@R0 ;MAKE SURE WE DON'T CHANGE OPENED FDB BNE 7$ ;BRANCH TO DO NOTHING IFOPENED DECB R4 ;WE SHOULD HAVE DEVICE MOV R0,R1 ;MAKE COPY ADD #DEVNM,R0 ;POINT TO DEVICE NAME SLOT MOV @(R5)+,(R0)+ ;PUT IN DEV NAME DECB R4 ;ANY MORE ARGS? BLT 6$ ;BRANCH IF NOT MOV (R5)+,R2 ;GET POINTER TO FILENAME LIST MOV (R2)+,(R0)+ ;PUT IN FILE NAME MOV (R2)+,(R0)+ MOV (R2)+,@R0 DECB R4 ;MORE ARGS? BLT 6$ ;BRANCH IF NOT MOV @(R5)+,FILSZ-EXTEN(R0) ;PUT IN ENTER SIZE DECB R4 ;MORE ARGS? BLT 6$ ;BRANCH IF NOT MOV @(R5)+,R2 ;GET TYPES WORD ASR R2 ;DOUBLE BUFFERING? BCC 1$ ;BRANCH IF NO MOVB #2,BUFNO-EXTEN(R0) ;SET DOUBLE BUFFERING 1$: ASR R2 ;SCR? BCC 2$ ;BRANCH IF NO BIS #SCR,@R1 2$: ASR R2 ;OLD? BCC 3$ ;BRANCH IF NO BIS #OLD,@R1 3$: ASR R2 ;FORCE CARRAIGE CONTROL BCC 4$ ;BRANCH IF NO BIS #LISTMD,@R1 4$: ASR R2 ;FORCE NO CARRIAGE CONTROL BCC 5$ ;BRANCH IF NO BIS #UNLIST,@R1 5$: ASR R2 ;RDO BCC 6$ ;BRANCH IF NO BIS #RDO,@R1 6$: CLR R0 ;GOOD RETURN 7$: RTS PC ;RETURN .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE TIME ; H.J. ; CALL TIME( LSTRNG(8) ) ; ; RETURNS THE TIME OF DAY IN ASCII IN LSTRNG. ; ; NO ERRORS ARE POSSIBLE. ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL TIME, TIMASC TIME: CMP -(SP),-(SP) ;ALLOCATE GTIM BLOCK MOV SP,R0 MOV 2(R5),-(SP) ;PUT LSTRNG ADDR IN BLOCK MOV R0,-(SP) ;SAVE POINTER TO 2 WORD TIMER BLOCK MOV #21*400,-(SP) ;SET .GTIM CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.GTIM MOV #2,@SP ;SET UP FOR CALL TO TIMASC MOV SP,R5 ;POINT R5 TO IT JSR PC,TIMASC ;LET IT DO ITS THING ADD #10.,SP ;POP STUFF FROM STACK RTS PC ;RETURN TO CALLER .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE JJCVT INTEGER*4 INVERT ; H.J. R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL JJCVT,$SYSLB JJCVT: MOV 2(R5),R1 ;GET ADDRESS OF 2 WORDS TO SWITCH MOV (R1)+,R2 MOV @R1,-(R1) MOV R2,2(R1) CLR R0 RTS PC .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE INTSET ; H.J. ; I = INTSET( IVECT, IPRIO, ROUTIN ) ; ; ESTABLISHES THE FORTRAN SUBROUTINE "ROUTIN" AS AN ; INTERRUPT SERVICE ROUTINE AT PRIORITY "IPRIO", ; THROUGH VECTOR "IVECT". ; ; THROUGH THE USE OF THE .SYNC CALL THE INTERRUPT ROUTINE ; 'BECOMES' A COMPLETION ROUTINE AND THEREFORE BENEFITS ; FROM ALL THE CAPABILITIES THAT COMPLETION ROUTINES HAVE. ; NOTE - THAT THIS ADDS SUBSTANTIAL OVERHEAD TO ; THIS ROUTINE, BUT JOBS WHICH CAN ACCEPT ; THE INHERENT OVERHEAD INTRODUCED BY ; FORTRAN SHOULD NOT BE AFFECTED. ; ; I = 0 NORMAL RETURN, ROUTINE IS ATTACHED TO VECTOR ; = 1 INCORRECT VECTOR SPECIFICATION ; = 2 RESERVED FOR FUTURE USE ; = 3 NO SPACE AVAILABLE FOR LINKAGE SETUP ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL INTSET, $AOTS, $CMPLT, $CRASH DEVHDR= 10. ;OTS WORKAREA OFFSETS FREESP= 12. INTSET: TST (R5)+ ;SKIP ARG COUNT MOV @(R5)+,R4 ;R4 = VECTOR ADDR MOV R4,-(SP) ;STACK FOR .PROTECT MOV #31*400,-(SP) ;SET .PROTECT CODE MOV SP,R0 ;R0 -> ARG BLOCK EMT 375 ;.PROTECT BIC (SP)+,(SP)+ ;POP BLOCK WITHOUT HURTING CARRY BCS 3$ ;WHOOPS - ERROR 4$: SUB #16.,SP ;ALLOCATE .GTJB BLOCK MOV SP,R3 ;SAVE JOB NUMBER POINTER MOV R3,-(SP) ;SET POINTER TO IT MOV #20*400,-(SP) ;SET FUNCTION CODE FOR .GTJB MOV SP,R0 ;R0 -> AREA EMT 375 ;ISSUE .GTJB REQUEST MOV @R3,SYNJOB ;SET CORRECT JOB NUMBER ADD #20.,SP ;REMOVE .GTJB STUFF MOV @(R5)+,R0 ;R0 = PRIORITY SWAB R0 ;POSITION IT FOR .INTEN CALL ASR R0 ASR R0 ASR R0 BIC #^C<340>,R0 ;ELIMINATE ALL BUT PRIORITY MOV R0,PRIO ;SET LINKAGE PRIORITY MOV @(R5)+,SYNARG ;SET UP USER ARGUMENT MOV #CLINK,R1 ;SET UP R1 FOR CALL TO $CMPLT, R5 SET JSR PC,$CMPLT ;HANDLE GENERAL COMPLETION ROUTINE LINK MOV $AOTS,R3 ;R3 -> OTS WORKAREA MOV DEVHDR(R3),R2 ;R2 -> LOWEST ADDR ALLOCATED SUB #INTSIZ,R2 ;ALLOCATE LINKAGE AREA CMP R2,FREESP(R3) ;ENOUGH SPACE? BLOS 2$ ;NOPE - ERROR MOV R2,DEVHDR(R3) ;UPDATE POINTER MOV R2,(R4)+ ;SET UP VECTOR PC = LINKAGE AREA MOV #340,@R4 ;AND PS = PRIORITY = 7 MOV #INTMOD,R4 ;R4 -> MODEL LINKAGE CODE MOV #INTSIZ/2,R0 ;R0 = # OF WORDS TO COPY 1$: MOV (R4)+,(R2)+ ;COPY INTO LINKAGE AREA DEC R0 ;THE ENTIRE PROTOTYPE BNE 1$ RTS PC ;R0 = 0, RETURN 2$: MOV #3,R0 ;NO SPACE FOR LINKAGE RTS PC 3$: MOVB @#52,R0 ;GET ERROR CODE BEQ 4$ ;IGNORE ALREADY PROTECTED ERROR! ;CURRENTLY .PROTECT IMPLEMENTATION ;DOES NOT CLEAR PROTECTED WORDS AT ;JOB TERMINATION RTS PC ; MODEL INTERRUPT LINKAGE CODE INTMOD: MOV @#54,-(SP) ;GET RMON LOW ADDRESS JSR R5,@(SP)+ ;.INTEN PRIO: .WORD 0 ;DEVICE PRIORITY MOV PC,R4 ;POINT R4 TO .SYNCH BLOCK ADD #SYNBLK-.,R4 ;(PIC WAY) MOV @#54,R5 ;POINT R5 TO MONITOR JSR R5,@324(R5) ;JUMP INTO MIDDLE OF MONITOR!! BR FAIL ;.SYNCH FAILED CLINK: .WORD 0 ;BECOMES JSR R4,@(PC)+ .WORD 0 ;ADDRESS OF COMPLETTION SCHEDULER .WORD 0 ;BECOMES ADDRESS OF FORTRAN ROUTINE FAIL: INCB @#$CRASH ;HANDLE ERROR AT END OF COMPLETION CODE RTS PC ;IGNORE THE INTERUPT!!!! SYNBLK: .WORD ;7 WORD SYNC BLOCK FOR 'THIS' INTSET SYNJOB: .WORD .BLKW 2 SYNARG: .WORD .WORD -1 .WORD 0 MEND=. INTSIZ= .-INTMOD ;SIZE OF MODEL CODE .END ; RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY ; DEC-11-ORLBA-E-LA ; ; ; ; ; ; ; ; ; ; ; COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSSETTS ; ; ; ; ; ; ; ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- ; VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO ; THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A ; COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY ; FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; ; ; ; ; ; ; ; ; ; ; .TITLE ICSI ; R. BILLIG ; I = ICSI( ISPEC(39), IDEFXT(4), ISTRNG, ISWT(N), N ) ; ; ISSUES A SPECIAL-MODE CSI CALL. ISPEC IS THE RETURN AREA, ; IDEFXT IS THE DEFAULT EXTENSION BLOCK, ISTRNG IS THE ; COMMAND STRING (IF THIS ARG IS OMITTED, IT WILL BE READ ; FROM THE TERMINAL), AND ISWT AND N SPECIFY SWITCH ; INFORMATION. ; ; N IS THE NUMBER OF SWITCHES IN THE ARRAY ISWT. ; ISWT IS ARRANGED AS FOLLOWS: ; ISWT(1,I) = THE ASCII NAME OF THE ITH SWITCH ; ISWT(2,I) = 0 IF THE SWITCH WAS NOT SPECIFIED IN THE CALL ; = 1 IF THE SWITCH WAS SPECIFIED WITHOUT A VALUE ; = 2 IF THE SWITCH WAS SPECIFIED WITH A VALUE ; ISWT(3,I) = THE NUMBER OF THE FILE WITH WHICH THE SWITCH ; WAS ASSOCIATED ; ISWT(4,I) = THE VALUE GIVEN FOR THE SWITCH ; ; I = 0 NORMAL RETURN ; = 1 ILLEGAL COMMAND LINE ; = 2 ILLEGAL DEVICE ; = 3 BAD SWITCH OR TOO MANY SWITCHES ; REGISTER DEFINITIONS R0= %0 R1= %1 R2= %2 R3= %3 R4= %4 R5= %5 SP= %6 PC= %7 .GLOBL $SYSLB ;VERSION NUMBER REF .GLOBL ICSI ICSI: TST (R5)+ ;SKIP ARG COUNT MOV SP,SPSAVE ;SAVE SP FOR ERRORS MOV (R5)+,-(SP) ;ISPEC ADDR MOV (R5)+,-(SP) ;IDEFXT ADDR CLR -(SP) ;IF NO STRING CMP #-1,(R5)+ ;CHECK FOR NULL ARG BEQ 1$ ;YUP MOV -2(R5),@SP ;ELSE ADDR OF ISTRNG 1$: EMT 345 ;.CSISPC BCC 2$ ;IF NO ERRORS MOVB @#52,R0 ;ELSE GET ERROR CODE INC R0 BR 10$ ;AND EXIT 2$: MOV (R5)+,R1 ;ADDR OF ISWT MOV @(R5)+,R2 ;R2 = N MOV R1,R3 ;R3 -> ISWT MOV R2,R4 ;R4 = N BEQ 11$ ;NONE 3$: TST (R3)+ ;INIT ISWT AREA CLR (R3)+ CLR (R3)+ CLR (R3)+ DEC R4 ;FOR AS MANY AS SPECIFIED BNE 3$ 11$: MOV (SP)+,R5 ;R5 = # OF SWITCHES IN COMMAND LINE BEQ 7$ ;NONE - DONE 4$: MOV R1,R3 ;SEARCH FOR A SWITCH MOV R2,R4 5$: CMPB @R3,@SP ;IS THIS THE ONE? BNE 8$ ;NOPE - TRY THE NEXT TST 2(R3) ;IS SLOT ALREADY USED? BNE 8$ ;BRANCH TO CONTINUE SCAN INC 2(R3) ;ELSE INDICATE FOUND MOV (SP)+,R4 ;R4 = FILE #, ETC. BPL 6$ ;IF NO VALUE INC 2(R3) ;ELSE INDICATE VALUE MOV (SP)+,6(R3) ;AND STORE IT 6$: SWAB R4 ;ISOLATE FILE # BIC #177600,R4 MOV R4,4(R3) ;AND STORE IT DEC R5 ;ANY SWITCHES LEFT? BNE 4$ ;YES 7$: CLR R0 ;INDICATE NORMAL RETURN RTS PC ;ELSE DONE 8$: ADD #10,R3 ;BUMP TO NEXT SWITCH ENTRY DEC R4 ;IF THERE ARE ANY BNE 5$ ;THERE ARE - CONTINUE MOV #3,R0 ;ELSE BAD SWITCH 10$: MOV SPSAVE,SP ;RESET STACK RTS PC ;AND RETURN SPSAVE: .BLKW .END C RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY C DEC-11-ORLBA-E-LA C C C C C C C C C C C COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION C MAYNARD, MASSACHUSSETTS C C C C C C C C C C THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY C ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH C THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS C SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- C VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON C EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO C THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE C SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. C C THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE C WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A C COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. C C DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY C FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT C WHICH IS NOT SUPPLIED BY DIGITAL. C C C C C C C C C C C C C C C H.J. C C CALL PUTSTR ( LUN, AREA, CC ) C SUBROUTINE PUTSTR ( LUN, AREA, CC ) LOGICAL*1 AREA(250),CC IF (CC) GOTO 1 WRITE(LUN,99)(AREA(I),I=1,LEN(AREA)) RETURN 1 WRITE(LUN,99) CC,(AREA(I),I=1,LEN(AREA)) 99 FORMAT(250A1) END C RT-11 FORTRAN SYSTEM SUBROUTINE LIBRARY C DEC-11-ORLBA-E-LA C C C C C C C C C C C COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION C MAYNARD, MASSACHUSSETTS C C C C C C C C C C THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY C ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH C THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS C SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- C VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON C EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO C THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE C SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. C C THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE C WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A C COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. C C DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY C FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT C WHICH IS NOT SUPPLIED BY DIGITAL. C C C C C C C C C C C C C C C H.J. C C CALL GETSTR( LUN, AREA, MAXLEN, ERR ) C SUBROUTINE GETSTR( LUN, AREA, MAXLEN, ERR ) LOGICAL*1 AREA (1),ERR READ(LUN,99) ITMP,(AREA(I),I=1,MAXLEN) 99 FORMAT(Q,250A1) AREA(MAXLEN+1)=.FALSE. CALL TRIM(AREA) IF (ITMP.GT.MAXLEN) ERR=.TRUE. END .TITLE MBOOT V01-01 ; RT-11 MAGTAPE PRIMARY BOOTSTRAP ; ; DEC-11-ORTSA-E ; ; COPYRIGHT (C) 1975 ; ; DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSETTS 01754 ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, ; OR ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE MADE ; AVAILABLE TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ; ONE WHO AGREES TO THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO ; CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED ; AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE ; OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; AUGUST 1975 ; ; BOB BEAN ; ; .MCALL .REGDEF .REGDEF .ASECT .SBTTL SYMBOL DEFINITONS ;TM11/TU10/TS03 DEVICE REGISTERS MTS =172520 ;STATUS REGISTER MTC =MTS+2 ;COMMAND REGISTER MTBRC =MTC+2 ;BYTE RECORD COUNTER MTCMA =MTBRC+2 ;CURRENT MENORY ADDRESS ;TM11/TU10/TS03 REGISTER BIT ASSIGNMENTS TMSPF =60011 ;SPACE FORWARD TMRD =60003 ;READ TMBSP =60013 ;BACKSPACE TMREST =10000 ;CONTROL RESET TMEOF =40000 ;TAPE MARK SEEN ;TJU16 DEVICE REGISTERS MTCS1 =172440 ;CONTROL AND STATUS 1 MTWC =MTCS1+2 ;WORD COUNT MTBA =MTWC+2 ;MEMORY ADDRESS MTFC =MTBA+2 ;FRAME COUNT MTCS2 =MTFC+2 ;CONTROL AND STATUS 2 MTDS =MTCS2+2 ;DRIVE STATUS MTTC =MTCS1+32 ;TAPE CONTROL ;TJU16 REGISTER BIT ASSIGNMENTS TUSPF =31 ;SPACE FORWARD TURD =71 ;READ TUBSP =33 ;BACKSPACE TUREST =40 ;CONTROL RESET TUEOF =4 ;TAPE MARK SEEN TU8BPI =1300 ;DENSITY AND FORMAT (800 BPT,NRZ) ;OTHER SYMBOLIC DEFINITIONS MTSPC =TUSPC ;GET MT HANDLER ENTRY FOR SPACE FORWARD MTREAD =TUREAD ;MT HANDLER ENTRY FOR READ MTBSPC =TUBSPC ;MT HANDLER ENTRY FOR BACKSPACE TPS =177564 ;TERMINAL PRINT STATUS TPB =TPS+2 ;TERMINAL PRINT BUFFER RTCNT =12 ;RETRY COUNT FOR MT ERRORS .SBTTL MBOOT MAINLINE ; DETERMINES IF TJU16 OR TM11 WAS THE BOOTED DEVICE. MOVES ; APPROPRIATE HANDLER TO 400(8). SKIPS PAST HDR1* OF FIRAT FILE ON ; TAPE FOLLOWING THIS BOOT,THEN READS THE SECONDARY BOOT INTO CORE ; STARTING AT 1000. THE SECONDARY BOOT IS ASSUMED TO BE A SAV FILE, ; AND THE ONLY LOCATIONS HONORED IN THE FIRST BLOCK ARE 40 AND 42. ; WHEN THE SECONDARY BOOT IS COMPLETELY IN CORE,IT IS STARTED ; AT THE ADDRESS SPECIFIIED AT 40. NOP ;ALL BOOTS MUST START WITH NOP BR MBOOT ;BRANCH AROUND VECTORS AT 4 AND 10 ;ILLEGAL MEMORY REFERENCE TRAP VECTOR TMHERE ;ADDR OF MEMORY EXCEPTION ROUTINE 340 ;ILLEGAL INST TRAP HERR ;ADDR OF BOOT ERROR MESSAGE ROUTINE 340 ; .=20 ;LEAVE T BIT VECTOR FREE FOR ODT MBOOT: MOV #1000,SP ;SET INITIAL STACK TO 1000 TST @#MTCS1 ;SEE IF TJU16 PRESENT BR TUTMCM ;IF WE GET HERE,TJU16 IS PRESENT ON CONFIGURATION. ;ASSUME WE WERE BOOTED FROM IT TMHERE: ;THE ONLY WAY TO GET HERE IS IF TJU16 ;MTCS1 REFERENCE CAUSED TRAP TO 4. ;ASSUME IN THAT CASE THAT WE ARE USING TM11. MOV #400,R0 ;POINT R0 TO HANDLER AREA MOV #TMSPC,R1 ;POINT R1 TO TM11 HANDLER MOV #TMSIZ,R2 ;LENGTH OF TM11 HANDLER INTO R2 1$: MOV (R1)+,(R0)+ ;MOVE TM11 HANDLER TO 400 TST -(R2) ;SUBTRACT 2 FROM COUNT TST R2 ;DONE? BGT 1$ ;BRANCH IF NOT ;ONCE WE GET TO THIS POINT,PROPER HANDLER IS AT 400,AND THE WORD AT 402 CAN ;BE TESTED BY THE SECONDARY BOOT TO DETERMINE WHAT DEVICE IS. 402 WILL ;BE EQUAL TO TUSPF IF TJU16,TMSPF IF TM11. TUTMCM: MOV #HERR,4 ;SET VECTOR AT 4 SO THAT ANY FURTHER ERRORS ;CAUSE BOOT ERROR MESSAGE JSR PC,MTSPC ;SPACE PAST HDR1* FOLLOWING MBOOT BVS HERR ;UNEXPLAINED ERROR BCC HERR ;MUST HAVE PASSED * TO BE LEGAL TAPE MOV #1000,R1 ;START READING SECONDARY BOOT INTO 1000 1$: JSR PC,MTREAD ;READ FIRST BLOCK BVC 2$ ;BRANCH IF NO ERROR JSR PC,RETRY ;OTHERWISE,BACKSPACE FOR RETRY BR 1$ ;AND TRY AGAIN IF RETRIES LEFT 2$: BCS HERR ;PREMATURE EOF MOV 1040,(PC)+ ;SAVE START ADDR OF PROGRAM STADDR: 0 MOV 1042,(PC)+ ;SAVE INITIAL STACK POINTER OF PROGRAM SPADDR: 0 3$: JSR PC,MTREAD ;READ NEXT BLOCK OF SECONDARY BOOT BVC 4$ ;BRANCH IF NO ERROR JSR PC,RETRY ;OTHERWISE BACKSPACE FOR RETRY BR 3$ ;TRY AGAIN IF RETRIES LEFT 4$: BCS 5$ ;EOF DETECTED-START SECONDARY BOOT ADD #1000,R1 ;OTHERWISE BUMP CORE ADDR BR 3$ ;AND GET NEXT BLOCK 5$: MOV SPADDR,SP ;SET INITIAL STACK CMP STADDR,#1000 ;MAKE CERTAIN START ADDR WITHIN PROG BHIS 6$ ;IT IS HALT ;NO START ADDRESS 6$: JMP @STADDR ;START SECONDARY BOOT PROGRAM ;RETRY SETUP ROUTINE RETRY: DEC (PC)+ ;GIVE UP AFTER 10 ERRORS RTCNT BEQ HERR ;NO ERRORS LEFT JSR PC,MTBSPC ;BACK UP SPACE BVS HERR ;ERRORS ON BACKUP BCS HERR ;CAN'T PASS * ON BACKUP RTS PC ;ROUTINE TO PRINT BOOT I/O ERROR MESSAGE HERR: MOV #BMSG,R0 1$: TSTB @#TPS ;WAIT FOR PRINTER READY BPL 1$ 2$: MOVB (R0)+,@#TPB ;PRINT CHAR BPL 1$ ;AND WAIT FOR READY BR . BMSG: .BYTE 0,0,15,12,0,0,0,0,0,0,0,0,0,0 .ASCII "?B-I/O ERROR" .BYTE 15,12,200 .EVEN .=400 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; TM11 AND TJU16 MINI-HANDLERS ; ; BOTH HANDLERS ARE CAPABLE OF SPACING FORWARD TO EOF,READING ; ONE 256 WORD BLOCK,OR BACKSPACING ONE RECORD. ; AFTER MBOOT HAS DETERMINED WHICH DEVICE IS BEING USED,THE ; HANDLER FOR THE APPROPRIATE DEVICE IS MOVED TO START AT 400(8) ; (THEY ARE PIC),AND THEY ARE USED FROM THEN ON AT THAT PLACE IN CORE ; TO SUPPORT ALL THE I/O DONE BY MBOOT AND MSBOOT. ; ; EACH HANDLER HAS THREE ENTRY POINTS: ; 400: SPACES FORWARD TO TAPE MARK ; 410: READS ONE 256 WORD RECORD ; 424: BACKSPACES OVER ONE RECORD ; ; ON RETURN FROM THE HANDLER,CONDITION CODES SERVE AS FLAGS ; IF C=1,EOF OCCURRED DURING OPERATION ; IF V=1,AN ERROR OCCURED DURING OPERATION ; IF C=0 AND V=0,THE OPERATION WAS SUCCESSFUL ; THE V BIT SHOULD ALWAYS BE CHECKED BEFORE THE C BIT, ; BECAUSE IF THE V BIT IS SET,THE C BIT WILL ALWAYS BE SET ; ; BOTH HANDLERS AVOID USE OF INTERRUPTS ; ; R0 IS CORRUPTED ; R2 IS CORRUPTED ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .SBTTL TJU16 HANDLER .ENABL LSB TUSPC: MOV #TUSPF,R0 ;CODE TO SPACE FORWARD INTO R0 CLR R2 ;MAX # OF RECORDS POSSIBLE BR 1$ TUREAD: MOV #TURD,R0 ;CODE TO READ INTO R0 MOV #-256.,@#MTWC ;READ ONE BLOCK BR 1$ TUBSPC: MOV #TUBSP,R0 ;CODE TO BSP INTO R0 MOV #-1,R2 ;ONE RECORD 1$: TSTB @#MTDS ;WAIT FOR DRIVE READY BPL 1$ BIS #TUREST,@#MTCS2 ;RESET DRIVE IN CASE ERROR 2$: TSTB @#MTDS ;WAIT FOR RESET TO COMPLETE BPL 2$ MOV R2,@#MTFC ;SET FRAME COUNT FOR SPACE FUNCS MOV R1,@#MTBA ;SET MEMORY ADDR FOR TRANSFER MOV R0,@#MTCS1 ;INITIATE FUNCTION 3$: TSTB @#MTDS ;WAIT FOR DRIVE TO FINISH BPL 3$ BIT #TUEOF,@#MTDS ;TAPE MARK SEEN ON OPERATION? BNE 4$ ;YES-SET CARRY (V IS ALREADY CLEAR FROM TSTB) TST @#MTCS1 ;ANY ERRORS? BPL 5$ ;NO SEV ;YES-SET OVERFLOW TO SIGNAL ERROR 4$: SEC ;SET CARRY TO SIGNAL EOF 5$: RTS PC ;RETURN .DSABL LSB TUSIZ= .-TUSPC ;LENGTH OF TJU16 HANDLER .SBTTL TM11 HANDLER .ENABL LSB TMSPC: MOV #TMSPF,R0 ;SPACE FORWARD CODE INTO R0 CLR R2 ;MAX # OF RECORDS POSSIBLE BR 1$ TMREAD: MOV #TMRD,R0 ;READ CODE INTO R0 MOV #-512.,R2 ;ONE 256 WORD BLOCK NOP ;PAD SO TMBSPC IS AT TMSPC+24 BR 1$ TMBSPC: MOV #TMBSP,R0 ;BACKSPACE CODE INTO R0 MOV #-1,R2 ;ONE RECORD 1$: TSTB @#MTC ;WAIT FOR DRIVE READY BPL 1$ BIS #TMREST,@#MTC ;RESET CONTROLLER IN CASE OF ERROR 2$: TSTB @#MTC ;AND WAIT FOR THE RESET BPL 2$ MOV R2,@#MTBRC ;SET FRAME OR BYTE COUNT MOV R1,@#MTCMA ;SET TRANSFER ADDRESS MOV R0,@#MTC ;AND INITIATE COMMAND 3$: TSTB @#MTC ;WAIT FOR READY BPL 3$ BIT #TMEOF,@#MTS ;TAPE MARK SEEN? BNE 4$ ;YES-SET CARRY AND RETURN TST @#MTC ;ANY ERRORS? BPL 5$ ;NO-JUST REURN SEV ;YES-SET V BIT TO INDICATE ERROR 4$: SEC ;SET CARRY TO INDICATE EOF 5$: RTS PC ;RETURN .DSABL LSB TMSIZ= .-TMSPC ;LENGTH OF TM11 HANDLER .END .TITLE MSBOOT V01-05 ; RT-11 MAGTAPE SECONDARY BOOTSTRAP ; ; DEC-11-ORTSA-E ; ; COPYRIGHT (C) 1975 ; ; DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSETTS 01754 ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, ; OR ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE MADE ; AVAILABLE TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ; ONE WHO AGREES TO THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO ; CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED ; AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE ; OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; AUGUST 1975 ; ; BOB BEAN ; ; .SBTTL SYMBOL AND MACRO DEFINITIONS .MCALL .REGDEF .REGDEF .MACRO MSGTXT TEXT .BYTE 0,0,15,12,0,0,0,0,0,0,0,0,0,0 .ASCII "TEXT" .BYTE 15,12,200 .EVEN .ENDM .MACRO MSGTX1 TEXT .BYTE 0,0,0,0,0,0,0,0,0,0 .ASCII "TEXT" .BYTE 15,12,200 .EVEN .ENDM .MACRO TYPE ADDR MOV ADDR,R0 JSR PC,PRINT .ENDM CR =15 LF =12 CTRLU =25 BCKSLS =134 RUBOUT =177 ;MAGTAPE MINI-HANDLER ENTRY POINT DEFINITIONS MTSPF =400 MTREAD =410 MTBSPC =424 TUSPF =31 TURWND =7 TMRWND =60017 RTCNT =20 ;RETRY COUNT KRS =177560 KRB =KRS+2 TPS =KRB+2 TPB =TPS+2 .SBTTL MSBOOT MAINLINE .ASECT .=42 ;SET INITIAL STACK START .=1000 START: TYPE #VMSG ;PRINT VERSION # FNLOOP: MOV #'*,R3 ;PRINT "*" JSR PC,ECHO JSR PC,ACCEPT ;GET LINE OF INPUT. R0 WILL POINT ;TO START OF LINE ON RETURN MOV #FNAME,R1 ;POINT R1 TO FILENAME IN HDR1 TEMPLATE MOV #18.,R2 ;TEMPLATE IS 18 BYTES LONG 1$: MOVB #40,(R1)+ ;INIT FILENAME IN TEMPLATE DEC R2 ;DONE? BGT 1$ ;BRANCH IF NOT CLRB DOTFLG ;CLEAR ". SEEN FLAG" MOVB #'.,FNAMED ;PUT . IN PLACE IN TEMPLATE MOV #FNAME,R1 ;POINT R1 TO BEGINNING OF NAME PART OF TEMPLATE CMPB (R0),#CR ;DID HE TYPE JUST CR? BEQ FNLOOP ;YES-NULL COMMAND;TRY AGAIN PLOOP: CMPB (R0),#CR ;INPUT LINE FINISHED? BEQ GOODNAME ;YES-FILENAME DESIRED IS IN TEMPLATE CMPB (R0),#'. ;IS NEXT CHAR .? BNE 1$ ;NO-MUST BE FILENAME CHAR TSTB DOTFLG ;. SEEN ALREADY? BNE BADNAME ;YES-ILLEGAL FILENAME CONTRUCTION MOV #FNAMED,R1 ;NO-START FILLING TEMPLATE EXTENSION INCB DOTFLG ;SET . SEEN FLAG BR GOODCHR ;PROCESS CHAR 1$: CMPB (R0),#60 BLT BADNAME CMPB (R0),#72 ;THIS SECTION REJECTS ALL NON-ALPHANUMERIC BLT GOODCHR ;CHARACTERS AS COMPONENTS OF AN CMPB (R0),#101 ;ILLEGAL FILENAME BLT BADNAME CMPB (R0),#132 BGT BADNAME GOODCHR:MOVB (R0)+,(R1)+ ;PUT NAME IN TEMPLATE CMP R1,#FNAMED ;FILENAME FULL? BNE 1$ ;NO-SEE IF EXTENSION FULL CMPB (R0),#'. ;YES-THEN NEXT CHAR BETTER BE . BNE BADNAME ;BRANCH IF FILE NAME >6 CHARS 1$: CMP R1,#FNAME+12 ;EXTENSION FULL? BLOS PLOOP ;NO-CONTINUE BADNAME:TYPE #BNMSG ;TYPE ?ILL FILE NAME? BR FNLOOP ;AND TRY AGAIN .SBTTL FILENAME SEARCH LOOP GOODNAME:MOV #BUFFER,R1 ;READ INTO BUFFER JSR PC,MTREAD ;READ BLOCK FOLLOWING LAST FILE MARK BVC 1$ ;BRANCH IF NO HARD ERROR JSR PC,RETRY ;ELSE BACKSPACE FOR RETRY BR GOODNAME ;AND TRY AGAIN 1$: BCC FCOMP ;BRANCH IF READ SUCCESSFUL TYPE #FNFMSG ;ELSE DOUBLE TAPE MARK SEEN CMP 402,#TUSPF ;IS TAPE TJU16? BNE 3$ ;NO-TM11 MOV #TURWND,R0 ;LOAD REWIND COMMAND INTO R0 2$: JSR PC,MTSPF+4 ;REWIND TAPE BR FNLOOP ;TRY AGAIN 3$: MOV #TMRWND,R0 ;LOAD TM11 REWIND COMMAND INTO R0 BR 2$ ;AND EXECUTE IT FCOMP: MOV #HDR1,R0 ;POINT R0 TO TEMPLATE MOV #21.,R2 ;21 CHARS IN TEMPLATE ALL TOGETHER 1$: CMPB (R1)+,(R0)+ ;IS THIS "HDR1FILNAM.EXT" REQUESTED? BNE NOMTCH ;NO DEC R2 ;MAYBE-DONE COMPARING? BGT 1$ ;BRANCH IF NOT BR FOUND ;YES-THIS IS RIGHT FILE NOMTCH: JSR PC,MTSPF ;SPACE PAST NEXT TAPE MARK BVS HERR ;HARD ERROR BCS GOODNAME ;TRY NEXT FILE BR HERR ;FAILED TO SEE MARK WHEN SPACING .SBTTL REQUESTED FILE FOUND-READ IT IN FOUND: JSR PC,MTSPF ;SPACE PAST MARK FOLLOWING HDR1 BVS HERR ;HARD ERROR BCC HERR MOV #BUFFER,R1 ;READ INTO BUFFER 1$: JSR PC,MTREAD ;READ FIRST BLOCK OF SAV FILE INTO BUFFER BVC 2$ ;BRANCH IF NO ERROR JSR PC,RETRY ;ELSE BACKSPACE FOR RETRY BR 1$ ;AND TRY AGAIN 2$: CLR R0 ;POINT R0 TO BEGINNING OF CORE 3$: MOV (R1)+,(R0)+ ;MOVE FIRST HALF BLOCK OF SAV IMAGE INTO CORE CMP R0,#400 ;DONE? BLT 3$ ;NO MOV #LAST,R0 ;POINT TO ROUTINE TO READ REST OF FILE MOV #600,R1 ;WANT TO LOAD IT AT 600 4$: MOV (R0)+,(R1)+ ;MOVE READ ROUTINE OUT OF HARMS WAY CMP R0,#LASTEND ;ALL OF ROUTINE MOVED? BLOS 4$ ;NOT DONE MOV #600,SP ;SET TEMPORARY STACK MOV #1000,R1 ;READ REST OF FILE STARTING AT 1000 JMP 600 ;START LITTLE ROUTINE TO READ ;REST OF PROGRAM .SBTTL CODE TO READ BULK OF SAV FILE AND START IT ;RESIDES AT 600-776 WHEN EXECUTING ;MOVED THERE BY ROUTINE FOUND LAST: JSR PC,@#MTREAD ;READ NEXT BLOCK BVC 1$ ;BRANCH IF NO HARD ERROR JSR PC,RETRY ;ELSE BACKSPACE FOR RETRY BR LAST ;AND TRY AGAIN 1$: BCS 3$ ;TAPE MARK MEANS EOF ENCOUNTERED ADD #1000,R1 ;ELSE BUMP CORE ADDR BR LAST ;AND READ NEXT BLOCK 3$: JSR PC,@#MTSPF ;SPACE PAST EOF 1 AT END OF FILE BVS HERR ;TEST FOR HARD ERROR BCC HERR ;MUST HAVE SEEN EOF MARK MOV @#42,SP ;INIT PROGRAM STACK MOV @#40,R0 ;START ADDR INTO R0 BIT #1,R0 ;IS START ADDR ODD? BEQ 4$ ;BRANCH IF NOT HALT ;ILLEGAL START ADDRESS 4$: JMP -(R0) ;START PROGRAM AT RE-ENTER ADDR ;ROUTINE TO BACKSPACE PRIOR TO HARD ERROR RETRY. COUNTS TOTAL ;RETRIES,AND ABORTS IF TOO MANY RETRY: DEC (PC)+ ;DEC RETRY COUNT RTCNT BEQ HERR ;COUNT EXCEEDED-GIVE UP JSR PC,@#MTBSPC ;ELSE BACKSPACE BVS HERR ;HARD ERROR BCS HERR ;SHOULDN'T SEE MARK ON BACKSPACE RTS PC HERR: TYPE #IOERR ;TYPE ?HARD I/O ERROR? BR . ;CAN'T GO ON ;ROUTINE TO PRINT TEXT STRING POINTED TO BY R0 ON TERMINAL PRINT: TSTB @#TPS ;PRINTER READY? BPL PRINT ;NO-WAIT 1$: MOVB (R0)+,@#TPB ;YES-TYPE NEXT BPL PRINT ;AND WAIT RTS PC IOERR: MSGTXT LASTEND: .SBTTL DATA BASE AND HEADER TEMPLATE DOTFLG: .BYTE 0 RUBFLG: .BYTE 0 HDR1: .ASCII /HDR1/ ;HDR1 TEMPLATE FNAME: .ASCII /FILNAM/ FNAMED: .ASCII /.EXT/ .=.+10 .EVEN LBUFF: .BLKW 40. ;LINE BUFFER ;ASCII MESSAGES VMSG: MSGTXT BNMSG: MSGTX1 FNFMSG: MSGTX1 .SBTTL SUBROUTINE TO ACCEPT ASCII INPUT LINE ;SUBROUTINE ACCEPT ;GETS ASCII LINE FROM TERMINAL INTO LBUFF,TERMINATED BY CRLF ;HANDLES RUBOUTS AND ^U LIKE RT11 ;ON RETURN,R0 POINTS TO START OF BUFFER ACCEPT: MOV #LBUFF,R0 ;POINT R0 TO LINE BUFFER CLRB RUBFLG ;CLEAR RUBOUT FLAG 1$: TSTB @#KRS ;CHAR AVAILABLE? BPL 1$ ;NO-WAIT TILL ONE IS TYPED MOVB @#KRB,R2 ;YES-FETCH INTO R2 BIC #177600,R2 ;STRIP TO 7 BITS CMPB R2,#CTRLU ;WAS IT CTRL U? BNE 4$ ;NO MOV #CUECHO,R0 JSR PC,PRINT ;YES-ECHO ^U BR ACCEPT 4$: CMPB R2,#RUBOUT ;IS CHAR RUBOUT? BEQ 2$ ;YES TSTB RUBFLG ;WAS LAST CHAR TYPED A RUBOUT? BPL 3$ ;NO MOVB #BCKSLS,R3 ;YES-ECHO BACKSLASH JSR PC,ECHO BR 3$ ;PROCESS CHAR 2$: CMPB R0,#LBUFF ;IS BUFFER EMPTY? BLE 1$ ;YES-IGNORE TSTB RUBFLG ;LAST CHAR A RUBOUT? BMI 6$ ;YES MOVB #BCKSLS,R3 ;NO-ECHO BACKSLASH JSR PC,ECHO 6$: MOVB -(R0),R3 ;GET DELETED CHAR INTO R3 JSR PC,ECHO ;AND ECHO IT MOVB #200,RUBFLG ;SET FLAG THAT LAST CHAR IS RUBOUT BR 1$ 3$: CLRB RUBFLG ;CHAR NOT RUBOUT CMPB R2,#100 BLT 7$ ;BRANCH IF CHAR NOT LETTER BIC #40,R2 ;STRIP LOWER CASE TO UPPER CASE 7$: MOVB R2,R3 JSR PC,ECHO ;ECHO CHAR MOVB R2,(R0)+ ;PUT CHAR IN BUFFER CMPB R2,#CR ;WAS IT CR? BEQ 5$ ;YES CMP R0,#LBUFF+80. ;NO-BUFFER FULL? BLE 1$ ;NO-NEXT CHAR TYPE #TOOMSG ;YES-ERROR BR ACCEPT 5$: MOVB #LF,R3 ;ECHO LF JSR PC,ECHO MOV #LBUFF,R0 ;POINT R0 TO START OF LINE RTS PC TOOMSG: MSGTXT CUECHO:.BYTE '^,'U,15,12,200 .EVEN ;SUBROUTINE ECHO-LITTLE ROUTINE TO TYPE ONE CHAR ON TERMINAL ECHO: TSTB @#TPS ;WAIT FOR PRINTER BPL ECHO MOVB R3,@#TPB ;PRINT CHAR IN R3 RTS PC ;I/O BUFFER FOR FIRST BLOCK BUFFER: .END START .TITLE MTINIT V01-01 ; RT-11 BOOTABLE MAGTAPE INITIALIZATION PROGRAM ; ; DEC-11-ORTSA-E ; ; COPYRIGHT (C) 1975 ; ; DIGITAL EQUIPMENT CORPORATION ; MAYNARD, MASSACHUSETTS 01754 ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, ; OR ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE MADE ; AVAILABLE TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ; ONE WHO AGREES TO THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO ; CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED ; AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE ; OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DIGITAL. ; ; AUGUST 1975 ; ; R. BEAN ; ; .MCALL ..V2..,.REGDEF,.FETCH,.CSISPC,.SPFUN .MCALL .LOOKUP,.TTYIN,.PRINT,.DSTATUS,.TTYOUT .MCALL .DELETE,.READW,.WRITW,.EXIT ..V2.. .REGDEF CR=15 LF=12 .SBTTL CODE TO GET AND VERIFY CSI COMMAND LINE START: .PRINT #VMSG ;IDENTIFY SELF CLOOP: .CSISPC #OUTSPC,#DEFEXT,#0 ;CALL CSIGEN AND GET COMMAND PARSED BCS ILLCMD ;BAD COMMAND IF C SET MOV #OUTSPC,R0 ;POINT R0 TO START OF CSI BLOCK MOV #38.,R1 ;CSI BLOCK IS 39 WORDS LONG TST (R0)+ ;WAS OUTPUT SPECIFIED AS FIRST FILE? BEQ ILLCMD ;NO-BAD COMMAND 1$: TST (R0)+ ;ARE ALL OTHER SLOTS IN BLOCK BLANK? BNE ILLCMD ;NO-HE TYPED SOMETHING HE SHOULDN'T DEC R1 ;DONE SCAN? BGT 1$ ;BRANCH IF NOT TST (SP)+ ;ANY SWITCHES? BNE ILLCMD ;YES-NONE ALLOWED .FETCH #CORADD,#OUTSPC ;GET MT HANDLER BCS ILLDEV ;USER ASKED FOR ILLEGAL DEVICE .DSTATUS #AREA,#OUTSPC ;WHAT IS DEVICE? CMPB AREA,#11 ;IS IT TM11? BEQ GOODEV ;YES-OK TO PROCEED CMPB AREA,#20 ;IS IT TJU16? BEQ GOODEV ;OK TO PROCEED ILLDEV: .PRINT #IDMSG ;TYPE "?ILL DEV?" BR CLOOP ;AND TRY AGAIN ILLCMD: .PRINT #ICMSG ;TYPE "?ILL CMD?" BR CLOOP ;AND TRY AGAIN ;VERIFY THAT USER DESIRES TO ZERO TAPE GOODEV: MOV OUTSPC,R0 ;DEVICE NAME INTO R0 JSR PC,R50OUT ;ECHO IT ON TERMINAL .PRINT #AVSMSG ;FOLLOWED BY "ARE YOU SURE?" .TTYIN ;GET ANSWER CMPB R0,#'Y ;WAS IT Y? BNE 1$ ;NO:TRY AGAIN .TTYIN ;GET NEXT CHAR OF ANSWER CMPB R0,#CR ;WAS IT CR? BEQ GO ;YES-INIT TAPE CMPB R0,#'E ;WAS SECOND CHAR E? BNE 1$ ;NO:TRY AGAIN .TTYIN ;YES-GET THIRD CHAR CMP R0,#CR ;WAS IT CR? BEQ GO ;YES-INIT TAPE CMP R0,#'S ;WAS THIRD CHAR S? BNE 1$ ;NO:TRY AGAIN .TTYIN ;GET FOURTH CHAR CMPB R0,#CR ;IT MUST BE CR BEQ GO ;IT IS-ANSWER WAS GOOD 1$: .TTYIN ;BAD ANSWER-FLUSH REST OF INPUT BUFFER CMPB R0,#LF ;END OF LINE YET? BNE 1$ ;NO-FLUSH ANOTHER CHAR BR CLOOP ;YES-TRY AGAIN .SBTTL CODE TO INITIALIZE TAPE GO: .TTYIN ;FLUSH LF OUT OF INPUT BUFFER .DELETE #AREA,#0,#OUTSPC ;WRITE VOL1 ON MT BCC 2$ ;NO HARD ERROR 1$: JMP HERR ;GO TO HARD ERROR ROUTINE 2$: .LOOKUP #AREA,#0,#OUTSPC ;REWIND MT0 AND OPEN FOR HARDWARE MODE BCS 1$ ;HARD ERROR .SPFUN #AREA,#0,#376,#0,#1 ;SPACE OVER VOL1 RECORD BCS HERR ;HARD ERROR .LOOKUP #AREA,#1,#MBOOT ;FIND MBOOT.BOT ON SY: BCS FNF ;NOT THERE .READW #AREA,#1,#BUFF,#400,#0 ;READ MBOOT INTO BUFFER BCS HERR ;HARD ERROR .WRITW #AREA,#0,#BUFF,#400,#0 ;WRITE BOOT BLOCK ON MT FOLLWING VOL1 BCS HERR ;COULDN'T .SPFUN #AREA,#0,#377,#0 ;WRITE TAPE MARK BCS HERR .SPFUN #AREA,#0,#377,#0 ;WRITE DOUBLE TAPE MARK TO SHOW EOT BCS HERR .SPFUN #AREA,#0,#373,#0 ;REWIND TAPE TO GET BEFORE DOUBLE MARK BCS HERR ;ERROR ON REWIND CLR R0 ;HARD EXIT .EXIT ;FINISHED HERR: .PRINT #HMSG ;PRINT ?HARD I/O ERROR? JMP CLOOP ;AND TRY AGAIN FNF: .PRINT #FNFMSG ;PRINT ?FIL NOT FND? JMP CLOOP ;AND TRY AGAIN .SBTTL CONV ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; CONV WILL CONVERT THE NUMBER IN R0 TO A DIGIT STRING ; USING RADIX. THE RESULTING STRING OF DIGITS (LESS ; LEADING ZEROES WILL BE POINTED TO BY R1, WITH A NEGATIVE ; BYTE TO INDICATE THE END OF STRING. R3 MAY BE SET TO THE ; DESIRED FIELD WIDTH, IN WHICH CASE CONV WILL OUTPUT (VIA ; DIRLST) SUFFICIENT BLANKS TO RIGHT JUSTIFY THE DIGITS ; IN THAT FIELD. R4 IS USED AS A TEMPORARY. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; CONV: MOV #DIGITS,R1 ;POINTER TO DIGITS OUTPUT AREA MOV R4,-(SP) ;PRESERVE R4 CNVLUP: CLR R4 ;CLEAR REMAINDER WORD MOV #17,-(SP) ;SET BIT COUNT DIVLUP: ASL R0 ;SHIFT DIVIDEND-QUOTIENT REG ROL R4 ;SHIFT REMAINDER REG CMP R4,RADIX ;BIG ENOUGH TO SUBTRACT ?? BLO NOFIT ;NO SUB (PC)+,R4 ;SUBTRACT DIVISOR RADIX: 0 INC R0 ;SET CORRESPONDING BIT IN QUOTIENT NOFIT: DEC (SP) ;ANY MORE BITS ?? BPL DIVLUP ;YES MOVB R4,-(R1) ;SAVE REMAINDER AS RIGHTMOST DIGIT ADD (SP)+,R3 ;DECREMENT DIGIT COUNT TST R0 ;ANYTHING LEFT ?? BNE CNVLUP ;YES, KEEP DIVIDING BLFILL: DEC R3 ;ENOUGH CHARACTERS ?? BMI 2$ ;YES, RETURN MOV #' ,R0 ;NO, PUT OUT ANOTHER BLANK .TTYOUT ;TYPE IT BR BLFILL 2$: MOV (SP)+,R4 ;RESTORE R4 DONE: RTS PC .BYTE 0,0,0,0,0,0,0 DIGITS: .BYTE 377 .SBTTL R50OUT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; R50OUT WILL OUTPUT (ON THE TERMINAL) THE WORD IN R0 AS THREE ; RADIX 50 CHARACTERS. SPACES ARE PRINTED FOR 0,33,34,35. ; R50OUT USES CONV. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; R50OUT: MOV R3,-(SP) ;PRESERVES R3, R1 MOV R1,-(SP) MOV #3,R3 ;OUTPUT THREE CHARS ALWAYS MOV #50,RADIX ;SET RADIX TO 50 JSR PC,CONV ;CONVERT FROM RAD 50 1$: MOVB (R1)+,R0 ;GET NEXT CHARACTER BMI 5$ ;MINUS IS INDICATOR CHARACTER BEQ 2$ ;ZERO IS A BLANK CMP R0,#32 ;IS IT A LETTER (1-32) ?? BLE 3$ ;YES SUB #36,R0 ;IS IT A DIGIT (36-47) ?? BCC 4$ ;YES 2$: MOV #-40,R0 ;PRINT A SPACE FOR 0,33,34,35 3$: ADD #20,R0 ;CONVERT FROM (1-32) TO (101-132) 4$: ADD #60,R0 ;CONVERT FROM (36-47) TO (60-71) .TTYOUT ;OUTPUT THE CHAR BR 1$ 5$: MOV (SP)+,R1 MOV (SP)+,R3 RTS PC .SBTTL DATA AREA AND BUFFERS ;MESSAGE TEXTS VMSG: .ASCIZ "MTINIT V01-01 " IDMSG: .ASCIZ "?ILLEGAL DEVICE?" ICMSG: .ASCIZ "?ILLEGAL COMMAND?" AVSMSG: .ASCII ":/ZERO/BOOT-ARE YOU SURE?" .BYTE 200 HMSG: .ASCIZ "?HARD I/O ERROR?" FNFMSG: .ASCIZ "?MBOOT.BOT NOT FOUND ON SY:?" .EVEN MBOOT: .RAD50 /SY0/ ;FILE DESCRIPTOR FOR SY:MBOOT.BOT .RAD50 /MBOOT / .RAD50 /BOT/ AREA: .BLKW 7 ;V2 EMT ARG BLOCK DEFEXT: .WORD 0,0,0,0 ;DEFAULT EXTENSIONS FOR CSISPC OUTSPC: .=.+116 ;39 WORD CSI BLOCK BUFF: .=.+1000 ;BLOCK I/O BUFFER CORADD: ;HANDLER LOAD SPACE .END START MBUILD=1