* ASSEMBLY LANGUAGE SUBROUTINES: * * PUT1CW -- CALLED BY SNDPKT * WRKFIL -- CALLED BY RFILE * BKSTOR -- CALLED BY LOGOUT * ************************************ * SUBROUTINE PUT1CW(BUF,NCHARS) * * WRITE AN ARRAY OF CHARACTERS TO THE TERMINAL USING 'SPECIAL' I/O * * BUF IS AN INTEGER ARRAY CONTAINING THE STRING, ONE CHARACTER PER WORD * * (SR 7/84) * REEN MAKE THE ROUTINE RE-ENTRANT XDEF PUT1CW,* GAP 1 GET LOCATION OF ARG 1 IN I, BUMP J TIM BUFADR SAVE BUFFER ADDRESS IN PARLIST GAP 1 GET LOCATION OF ARG 2 IN I, BUMP J TMA 0,I GET BUFFER SIZE TAM BUFSIZ SAVE IN PARAMETER LIST TJM RETURN SAVE RETURN ADDRESS TLO PARLST NAME THE PARLIST BLU $IOW DO THE I/O BUL* RETURN RETURN PORG * DATA: PARLST DATA '306 SPECIAL WRITE TO LFN 3 BUFSIZ DATA 0 SIZE OF BUFFER BUFADR LAC 0 ADDRESS OF BUFFER RETURN LAC 0 RETURN ADDRESS END * LOGICAL FUNCTION WRKFIL(LFN) * * DETERMINES WHETHER LFN IS ASSIGNED TO A VALID WORKFILE * * (FOR MORE INFO SEE SYSTEM SERVICES 3.6 & 4.8) * * (SR 10/83) * REEN MAKE THE ROUTINE RE-ENTRANT XDEF WRKFIL,* GAP 1 GET LOCATION OF ARG 1 IN I, BUMP J TMA 0,I GET LFN TAM TASCII AND SAVE IN PARAMETER LIST TJM RETURN SAVE RETURN ADDRESS TLO TASCII GET FILE NAME ASSIGNED TO LFN BLU $LFNAME CZA IS IT EVEN ASSIGNED? BNZ NOPE NO, ERROR TLO TASCII IS IT A WORKFILE? BLU $CHWORK CZA BNZ NOPE NO, (AT LEAST NOT FOR THIS PROCESS) * YES, IT IS A VALID WORK FILE TNA 1 WRKFIL = .TRUE. BUL* RETURN RETURN NOPE TZA WRKFIL = .FALSE. BUL* RETURN RETURN PORG * DATA: TASCII BLOK 4 PARAMETER LIST FOR FILE NAME RETURN LAC 0 RETURN ADDRESS END * * THIS FORTRAN CALLABLE SUBROUTINE IS USED TO SUPPLY A DATA RECORD * SUCH THAT A SUBSEQUENT BACKSPACE RECORD AND SYMBOLIC READ WILL INPUT * THAT RECORD. THIS IS A MEANS FOR SETTING THE COMMAND LINE BEFORE * CHAINING TO ANOTHER PROGRAM. * * FORM: CALL BKSTOR(LFN,BUF,NWORDS,ISTAT) * * LFN IS THE LFN TO SUPPLY THE RECORD TO * BUF IS THE BUFFER TO SUPPLY * NWORDS IS THE NUMBER OF WORDS IN BUF() * ISTAT IS THE STATUS RETURNED (0 = SUCCESS) * * AUTHOR- DAVE MCWILLIAMS * ************************* * REEN MAKE THIS ROUTINE RE-ENTRANT XDEF BKSTOR,BKSTOR BKSTOR GAP 1 GET ADDRESS OF LFN TMA !0,I GET THE LFN LLA 6 SHIFT 6 BITS TO THE LEFT TAM PLIST SAVE IN PARAMETER LIST GAP 1 GET ADDRESS OF BUFFER TIM BUF SAVE BUFFER ADDRESS GAP 1 GET ADDRESS OF NUMBER OF WORDS TMA !0,I GET NUMBER OF WORDS TAM NWORDS SAVE IT GAP 1 GET ADDRESS OF STATUS TIM ISTAT SAVE ADDRESS TJM RETURN SAVE OUR RETURN ADDRESS * TLO PLIST BLU $BKSTOR CALL SERVICE TO STORE IT TAM* ISTAT RETURN STATUS BUC* RETURN RETURN TO CALLING PROGRAM * * DATA * PORG * PLIST DATA 0 SHIFTED LFN NWORDS DATA 0 NUMBER OF WORDS BUF LAC 0 BUFFER ADDRESS * ISTAT LAC 0 ADDRESS FOR STATUS TO RETURN RETURN LAC 0 RETURN ADDRESS END