* LAST ==> HIGH SPEED LAST N LINES LIST * * 3/9/80 EUGENE SPAFFORD * 1/29/81 MODIFIED * SUBR LAST SEG RLIT SYML include "=syscom=/keys.ins.pma" LINK LAST ECB START,,FUNIT,2 DATA 4,C'LAST' PROC LINK BUFFER BSS 1024 IP_BUFF IP BUFFER GARBAGE COMM PLACE('170000) PROC DYNM ERCODE, POS(2), NW, COUNT(2) DYNM PCOUNT, FUNIT(3), NLINES(3) START ARGT LDA NLINES,* SPL LT A1A STA NLINES ALS 1 TXA LDL =1L STL POS CRL STL COUNT STL PLACE STA PCOUNT ZZ STA PLACE - 2,X BDX ZZ * * LOOP CALL PRWF$$ AP =K$READ+K$PRER+K$CONV,S AP FUNIT,*S AP IP_BUFF,S AP =1024,S AP =0L,S AP NW,S AP ERCODE,SL * * LDA NW BEQ DONE TAX TCA TAY EAXB BUFFER + 0,X TXA PIDA ADL POS STL POS * LOOP2 LDA XB% + 0,Y ERA ='105212 TAB CAR BEQ INCR RCHAR TBA CAL BNE NXTWRD INCR IRS# COUNT + 1 JMP# * + 2 IRS# COUNT LDA PCOUNT A1A CAS NLINES RCB CRA STA PCOUNT FLX PCOUNT TYA PIDA ADL POS STL PLACE,X NXTWRD BIY LOOP2 JMP LOOP * * * OKAY, TELL HOW MANY LINES WE HAVE AND PRINT THE LAST LINES... * DONE LDA PCOUNT A1A CAS NLINES RCB CRA STA PCOUNT FLX PCOUNT LDL PLACE,X STL POS * CALL PRWF$$ AP =K$POSN+K$PREA,S AP FUNIT,*S AP =0,S AP =0,S AP POS,S AP NW,S AP ERCODE,SL * LDA ERCODE BEQ L2 LDA =-1L PRTN * L2 LDL COUNT PRTN * END