.TITLE LOGOU - PROCESS OUTPUT TYPE BUFFER .IDENT /01.00/ .LIST MEB ; ; AUTHOR: H. L. COLEMAN ; MILLIKEN AND COMPANY ; P. O. BOX 1926 ; MAIL STOP M-103 ; SPARTANBURG, S. C. 29304 ; (803)573-2556 ; ; VERSION: 01.00 ; ; DATE: 30-MAR-78 ; ; MODIFICATIONS: ; ; FUNCTION: COPY DATA FROM OUTPUT TYPE LOG BUFFER TO THE LOG FILE ; OUTPUT BUFFER. ; ; INPUT: ; ; R1 = A(LOG BUFFER + 3) ; R4 = COUNT REMAINING IN OUTPUT BUFFER ; R5 = A(POSITION IN OUTPUT BUFFER) ; ; OUTPUT: ; ; DATA COPIED TO OUTPUT BUFFER ; .PAGE $LOGOU::MOVB (R1)+,FNBYT ;SAVE CARRIAGE CONTROL CHARACTER MOVB (R1)+,R3 ;R3 = DATA LENGTH TSTB FNBYT ;ANY VFC ? BEQ 1100$ ;IF EQ, NO CMPB #'+,FNBYT ;OVERPRINT ? BEQ 1100$ ;IF EQ, YES MOVB #14,R0 ;ASSUME A FORM FEED CMPB #'1,FNBYT ;IS IT PAGE EJECT? BEQ 1000$ ;IF EQ, YES - GO DO IT MOVB #12,R0 ;NEED AT LEAST 1 LF CALL $LOGPB ;PUT LF IN OUTPUT CMPB #'0,FNBYT ;DOUBLE SPACE? BNE 1100$ ;IF NE, NO - WE'RE DONE MOVB #12,R0 ;ANOTHER LF 1000$: CALL $LOGPB ;PUT LAST VFC IN OUTPUT 1100$: BIC #177400,R3 ;CLEAR HIGH BYTE BEQ 1300$ ;IF EQ, NO DATA TO COPY 1200$: MOVB (R1)+,R0 ;R0 = DATA BYTE CALL $LOGPB ;PUT CHARACTER IN OUTPUT BUFFER SOB R3,1200$ ;LOOP UNTIL DONE 1300$: MOVB #15,R0 ;ASSUME CR AT END TSTB FNBYT ;ANY VFC ? BEQ 1400$ ;IF EQ, NO - WE'RE DONE CMPB #'$,FNBYT ;PROMPT? BEQ 1400$ ;IF EQ, YES - WE'RE DONE CALL $LOGPB ;PUT FINAL CR 1400$: RETURN ;RETURN TO CALLER .END