; ; PROGRAM TO SEND DATA TO BASIC INTERPRETER ; CAUSING A BREAK FLAG TO BE SET ; THIS PROGRAM CAN BE REQUESTED EITHER FROM THE ; MCR OR BY A ^B IN A MODIFIED TT16 HANDLER ; .TITLE BASTER .CSECT .MCALL VSDA$ EXIT$S DIR$ BASNAM: .RAD50 /.../ ;FIRST HALF OF ...BAS BASNA1: .RAD50 /BAS/ ;2ND HALF OF ...BAS BASNA2: .RAD50 /BAR/ ;IN CASE USING NEW VERSION BUFDUM: .WORD 0 ;DUMMY BUFFER FOR DATA TO SEND VSDDPB: VSDA$ ...BAS,BUFDUM,1,,240 START: MOV .CRTSK,R0 ;USE R0 TO POINT TO BASTER'S ATL ENTRY MOV #.ATLLH,R1 ;R1 POINTS TO ATL CURRENTLY UNDER TEST LOOP: MOV (R1),R1 ;GET NEXT (OR FIRST) ATL POINTER CMP R1,#.ATLLH ;END OF ATL ? BEQ NOSRQ ;YES BASIC NOT ACTIVE FOR THIS TTY CMP A.TI(R1),A.TI(R0) ; IS TI CORRECT ? BNE LOOP ;NO TI WRONG MOV A.TD(R1),R3 ;GET STD POINTER IN R3 CMP S.TN(R3),BASNAM ;MATCH TO FIRST HALF OF NAME ? BNE LOOP ;NO SKIP THIS ACTIVE TASK CMP S.TN+2(R3),BASNA1 ;CHECK 2ND HALF OF NAME BNE BARTST ;ALSO NO MATCH - TRY FOR ...BAR ;FOUND BASIC RUNNING WITH SAME TI DIREXC: DIR$ #VSDDPB NOSRQ: EXIT$S BARTST: CMP S.TN+2(R3),BASNA2 ;CHECK ON SECOND VERSION BNE LOOP ;IF NOT, TRY AGAIN MOV BASNA2,VSDDPB+S.DATN+2 ;MODIFY DIRECTIVE FOR ...BAR BR DIREXC ;AND DO IT .END START