.PSECT TERM .TITLE TERM - COPY LETTER FROM TERM TO TMP FILE .IDENT /781117/ ; ; THIS CODE HAS BEEN DEVELOPED BY THE COMPUTING ; GROUP OF THE ATMOSPHERIC SCIENCES DIVISION, ; ALBERTA RESEARCH. THIS WORK FUNDED BY THE ; ALBERTA WEATHER MODIFICATION BOARD. ; ; THERE IS EXPLICITLY NO COPYRIGHT ON THIS SOFTWARE, ; AND ITS DISTRIBUTION IS ENCOURAGED. NO RESPONSIBILITY ; NOR GUARANTEE IS MADE OR ASSUMED BY THE AUTHOR, OR ; BY ALBERTA RESEARCH. ; ; SUGGESTIONS OR CHANGES ARE INVITED, AND WILL BE ; DISTRIBUTED TO OTHER USERS OF THIS SOFTWARE THROUGH ; THE DECUS IAS/RSX SPECIAL INTEREST GROUP. ; ; ; VERSION: 781020 ; WRITTEN BY: MARK JOHNSON ; DATE WRITTEN: 23-OCT-78 ; ; RELATED DOCUMENTATION: ; NONE ; ; ; ROUTINES USED: ; RDPMPT ; FDB2FN ; ; ; MODIFICATIONS: ; ; CODE NAME DATE ; ;+ ; *** - TERM - COPY A LETTER FROM THE TERMINAL TO A TEMPORARY FILE ; ; INPUTS: ; R0 - POINTS TO FDB TO BE USED ; R1 - POINTS TO PROMPT STRING ; R2 - POINTS TO PREFIX LINES TO PUT IN FILE ; (EACH LINE IS MAXLIN+2 LONG, FIRST BYTE IS BYTECOUNT) ; IF R2=0, NO PREFIX LINES ; ; OUTPUTS: ; REGISTERS ARE NOT CHANGED ; INPUT FDB SET UP FOR TEMPORARY FILE ; ; SIDE EFFECTS: ; A TEMPORARY FILE CALLED TMP.MAI IS CREATED. ; LINES ARE READ FROM THE TERMINAL UP TO A ^Z, ; WITH A PROMPT AS SPECIFIED ON INPUT TO ROUTINE. ; THE LINES ARE WRITTEN TO A TEMPORARY FILE. ;- .MCALL ENTER,LEAVE .MCALL OPEN$W,PUT$,CLOSE$ .MCALL FDOF$L,FCSBT$,IOERR$ FDOF$L ;DEFINE FDB OFFSETS FCSBT$ ;AND FCS BIT DEFINITIONS IOERR$ ;AND I/O ERROR CODES .MCALL MAIGBL MAIGBL .DSABL GBL ; ; TEMPORARY FILE DATASET DESCRIPTOR TMPDSD: .WORD 0,0 ;DEFAULT DEVICE .WORD 0,0 ;DEFAULT UIC .WORD NAMLEN,TMPNAM ;FILE NAME ; ; TEMPORARY FILENAME TMPNAM: .ASCII /TMP.MAI/ NAMLEN=.-TMPNAM .EVEN TERM: ENTER R1,R2,R3 ; ;CREATE AND OPEN TEMPORARY FILE ; OPEN$W R0,,#TMPDSD,,,,IOERR ; TST R2 ;ANY PREFIX LINES? BEQ 1$ ;NOPE ; ; OUTPUT PREFIX LINES ; 4$: MOVB (R2)+,R3 ;GET LENGTH BEQ 1$ ;0 LENGTH => NO MORE LINES PUT$ R0,R2,R3,IOERR ;WRITE THE LINE ADD #MAXLIN+1,R2 ;MOVE TO NEXT COUNT BR 4$ ; ; NOW GET LINES FROM THE TERMINAL ; 1$: CALL RDPMPT ;READ A LINE FROM THE TERMINAL CMPB TTYSB,#IE.EOF ;CNTRL-Z TYPED? BEQ 2$ ;YES, READ NO MORE PUT$ R0,#LINBUF,TTYSB+2,IOERR ;WRITE THE LINE TO A FILE BR 1$ ;READ SOME MORE ; ; END-OF-FILE AT TERMINAL ; 2$: TST TTYSB+2 ;ANYTHING THERE? BEQ 3$ ;NO, SO STOP PUT$ R0,#LINBUF,TTYSB+2,IOERR ;YES, SO INCLUDE IT 3$: CALL FDB2FN ;SAVE FILENAME BLOCK FOR RE-OPEN CLOSE$ R0,IOERR ; LEAVE RETURN ; .END