; OUT0 - PRIMATIVE VERSION OF OUTS ; LAST EDIT: 24-SEP-81 ; .NLIST .LIST TTM .NLIST BEX .TITLE OUT0 .LIST ; .IDENT /V001/ ; ; THIS ROUTINE IS INTENDED TO BE USED IN APPLICATIONS REQUIRING ; SIMPLE MESSAGE OUTPUT TO TI: WITH NO VALUE SUBSTITUTION ; ; CALL OUTS(STR[,LINE]) ; ; STR IS A ZERO TERMINATED TEXT STRING ; LINE SELECTS THE CARRIAGE CONTROL ; A POSITIVE VALUE SELECTS PROMPT MODE ; ABSENT OR NEGATIVE SELECTS A NORMAL WRITE. ; ; OUTS MAY BE CALLED WITHOUT PARAMETERS TO OUTPUT A BLANK LINE ; ; .PSECT OUTS ; ; OUTLUN==5 ;LUN ASSUMED TO BE ASSIGNED TO TI: ;THIS MAY BE PATCHED TO ANOTHER VALUE USING THE ;GBLDEF TKB OPTION. ; .MCALL DIR$,QIOW$ ; ; P1=2 P2=4 ; ; OUT:: OUTS:: MOV R0,-(SP) MOV R1,-(SP) MOV #QBLK,R0 TSTB (R5) ;ANY PARAMETERS ? BEQ 2$ ;SKIP IF NOT MOV P1(R5),R1 ;GET BUFFER ADDRESS MOV R1,Q.IOPL(R0) ;SET ADDRESS IN DPB 1$: TSTB (R1)+ ;FIND LENGTH BNE 1$ SUB P1(R5),R1 DEC R1 ;DISCOUNT ZERO BYTE BEQ 2$ ;SKIP IF NULL STRING MOV R1,Q.IOPL+2(R0) ;SET LENGTH IN DPB BR 10$ 2$: MOV #BLANK,Q.IOPL(R0);SET BLANK BUFFER ADDRESS MOV #1,Q.IOPL+2(R0) 10$: MOV #' ,Q.IOPL+4(R0);ASSUME NORMAL CONTROL CMPB (R5),#1 ;LINE ARG ? BLE 11$ TST @P2(R5) ;PROMPT MODE ? BLT 11$ MOV #'$,Q.IOPL+4(R0);SET PROMPT MODE 11$: DIR$ R0 MOV (SP)+,R1 MOV (SP)+,R0 RETURN ; BLANK: .ASCII / / QBLK: QIOW$ IO.WVB,OUTLUN,OUTLUN,,,,<0,0,0> .END