.TITLE HLABEL .ENABL LC ; ; CALL HLABEL(NCHRS,STRING) -- This subroutine will ; set the plotter into alpha mode and output the ; character string of NCHRS in length. If called with ; no arguments (i.e. CALL HLABEL), just the alpha mode ; is set. ; .PSECT HLABEL ; HLABEL::CMP #4,IDev ;IS PLOTTER A TEKTRONIC 4025? BEQ VIDEO ;BRANCH IF TRUE TST IMode ;ALPHA MODE? BEQ CONT ;BRANCH IF TRUE MOV R5,-(SP) ;SAVE R5 MOV #LIST0,R5 ;SET ARGUMENT LIST JSR PC,TOUTPT ;SET ALPHA MODE AT TERMINAL MOV (SP)+,R5 ;RESTORE R5 CLR IMODE ;SET TO ALPHA MODE ; CONT: TST (R5) ;NO ARGUMENTS? BEQ DONE ;BRANCH IF TRUE MOV 2(R5),LIST1+4 ;SET ADDRESS OF NCHRS MOV 4(R5),LIST1+2 ;SET ADDRESS OF STRING MOV R5,-(SP) ;SAVE R5 MOV #LIST1,R5 ;SET ARGUMENT LIST FOR TOUTPT JSR PC,TOUTPT ;OUTPUT CHARACTER STRING MOV (SP)+,R5 ;RESTORE R5 ; DONE: RTS PC ;RETURN ; VIDEO: TST (R5) ;NO ARGUMENTS? BNE STR ;BRANCH TO OUTPUT STRING MOV R5,-(SP) ;SAVE R5 MOV #VLIST0,R5 ;SET ARGUMENT LIST FOR TOUTPUT JSR PC,TOUTPT ;OUTPUT SCREEN RESET MOV (SP)+,R5 ;RESTORE R5 RTS PC ;RETURN ; STR: MOV 2(R5),LIST1+4 ;SET ADDRESS OF NCHRS MOV 4(R5),LIST1+2 ;SET ADDRESS OF STRING MOV R5,-(SP) ;SAVE R5 MOV #VLIST1,R5 ;SET ARGUMENT LIST FOR !STR JSR PC,TOUTPT ;OUTPUT HEADER MOV #LIST1,R5 ;SET ARGUMENT LIST FOR STRING JSR PC,TOUTPT ;OUTPUT STRING MOV #VLIST2,R5 ;SET ARGUMENT LIST FOR CLOSING DELIMITER JSR PC,TOUTPT ;OUTPUT DELIMITER MOV (SP)+,R5 ;RESTORE R5 RTS PC ;RETURN ; LIST0: .WORD 1,US ;ARGUMENT STRING TO SET ALPHA MODE LIST1: .WORD 2,0,0 ;ARGUMENT STRING TO OUTPUT CHARACTERS TWO: VLIST0: .WORD 2,WORK,SEVEN VLIST1: .WORD 2,US,SEVEN VLIST2: .WORD 2,DELIM,TWO SEVEN: .WORD 7 US: .ASCII <37>/!STR / DELIM: .ASCII /\/<15> WORK: .ASCII <37>/!WOR 0/<15>