.MACRO TTATCH LUN ; ; *** TTATCH MACRO FOR ATTACHING TERMINAL *** TTATCH .NARG CNT .IF GT,CNT MOV LUN,.+12 .IFF MOV #5,.+14 .ENDC JSR R5,TT$.AT ;GO ATTACH TERMINAL .WORD 0 ;LOGICAL UNIT .ENDM .MACRO TTREAD INDATA,INCNT ; *** TTREAD MACRO FOR READING INPUT FROM CRT *** TTREAD ; MOV INCNT,.+20 MOV INDATA,.+14 JSR R5,TT$.RD ;EXECUTE TERMINAL READ ROUTINE .WORD 0 ;BYTE COUNT TO READ IN .WORD 0 ;ADDRESS TO READ DATA INTO CMPB #IE.EOF,TT$.ST ;CTRL Z ENTERED? BNE .+6 SEC ;CARRY SET MEANS CTRL Z WAS ENTERED BR .+4 CLC ;CARRY CLEAR MEANS CTRL Z NOT ENTERED .ENDM .MACRO TTWRIT OUTMSG,OUTCNT,FCTL ; ; *** TTWRIT MACRO FOR WRITING MESSAGES TO CRT *** TTWRIT .NARG CNT MOVB OUTCNT,.+21 MOV OUTMSG,.+14 JSR R5,TT$.WR ;EXECUTE CRT WRITE ROUTINE .IF EQ,CNT-3 .ASCII FCTL ;LINE CONTROL CHARACTER .IFF .BYTE 0 ;NO FORMAT CONTROL .ENDC .BYTE 0 ;BYTE COUNT OF OUTPUT MESSAGE .WORD 0 ;STARTING ADDRESS OF OUTPUT DATA .ENDM .MACRO EDMWRT INSTR,ARGBLK ; *** EDMWRT MACRO TO USE $EDMSG TO FORMAT A MESSAGE MOV R0,-(SP) MOV R1,-(SP) MOV R2,-(SP) MOV INSTR,R1 ;ADDRESS OF INPUT STRING MOV ARGBLK,R2 ;ADDRESS OF ARGUMENT BLOCK CALL EDMWRT ;GO CALL $EDMSG AND OUTPUT MESSAGE MOV (SP)+,R2 MOV (SP)+,R1 MOV (SP)+,R0 .ENDM