.TITLE VTXT SFGL70 ROUTINE TO PLOT VERTICAL TEXT .IDENT 'VTXT00' .PSECT VTXT ; KEN DEMERS ; UTRC ; 1970 ; THIS ROUTINE IS PART OF THE PDP-11/70 SMALL ; FAST GRAPHICS LIBRARY (SFGL70). IT PLOTS ; CHARACTERS ON THE SCREEN VERTICALLY, ; STARTING FROM THE PRESENT CURSOR POSITION. ; THE STRING IS ASSUMED TO BE TERMINATED BY ; A ZERO BYTE. ; SINCE A TEKTRONIX 4006 DOESN'T HAVE A HARDWARE BACKSPACE ; IT IS DONE VIA A MVCURI CALL. ; CALLING FORMAT: ; CALL VTXT(IBUFF) ; IBUFF = BUFFER CONTAINING THE ASCII CHARACTERS ; INTERNAL GLOBALS .GLOBL V$TXT ; EXTERNAL GLOBALS .GLOBL C$HAR,ALPHA,MVCURI,DOWN,S$AVARG,R$STARG .GLOBL A$RGB1 V$TXT: CALL S$AVARG ;SAVE REGS MOV #IBFPTR,R4 ;R4= A(C$HAR BUF) IN ARG BLK MOV 2(R5),(R4) ;PT ARG BLK PTR TO C$HAR BUFF VTX10: CALL ALPHA ;PUT SCOPE IN ALPHA MODE MOV #ARGBLK,R5 ;R5= A(C$HAR ARG BLK) TSTB @(R4) ;END OF STRING? BEQ VTX20 ;YES CALL C$HAR ;PRINT 1 C$HAR SUB #22.,A$RG22 ;SET UP FOR LINEFEED MOV #A$RGB1,R5 ;ARG BLK FOR MVCURI CALL MVCURI ;BACKSPACE & LINEFEED 1 CHAR INC (R4) ;BUMP C$HAR BUFF PTR BR VTX10 ;PRINT NEXT C$HAR VTX20: CALL R$STARG ;RESTORE REGS RETURN ; FORTRAN ARG BLK FOR C$HAR ARGBLK: .BYTE 1,0 ;1 ARG,NOT USED IBFPTR: .WORD 0 ;PTR TO IBUF ADDR .END