INDAS3.MAC=INDAS1.MAC -1,1,/;PE/ .TITLE INDAS3 -30,,/;PE/ .MCALL GET$S,FDOF$L,FCSBT$ FDOF$L FCSBT$ -36,40,/;PE/ EXBUF: .ASCII / C/ MSGBUF: .BLKB 160. ; .EVEN .LIST BEX LEN: .BLKW 1 ; INDAS3::MOV CLPTR,R0 ; PICK UP CMD LINE PTR -91,110,/;PE/ SUB #ASKBUF,R2 ; GET LENGTH MOV R2,LEN ;SAVE LEN OF Q STRING MOV R3,-(SP) ;SAVE R3 MOV R4,-(SP) ;SAVE R4 100$: GET$S #EXTRA,#EXBUF,#162. ;READ EXTRA FILE BCS 140$ ;CHECK FOR ERROR CMPB #'C,EXBUF+1 ;IS CHECKING REQUESTED? BNE 120$ ;NO 120$ MOV #ASKBUF,R1 ;SET PLACE TO CHECK MOV #MSGBUF,R3 ;PLACE OF READ QUESTION 101$: CMPB (R1)+,(R3)+ ;CHECK IF = BNE 145$ ;IF NOT THEN ERROR ROUTINE SOB R2,101$ ;CHECK FOR THE WHOLE QUESTION BR 123$ ;LOOP AROUND CODE FOR NO CHECK. 120$: MOV #MSGBUF,R1 ;LOCATION OF ANSWER. MOV R1,R3 ;CALCULATE NEW LOCATION MOV EXTRA+F.NRBD,R4 ;OF ANSWER SUB #2,R4 ;DON'T COUNT BEGINING 2 CHARS ADD LEN,R3 ;MOVE ANSWER TO MAKE ROOM FOR ;QUESTION TST R4 ;POSSIBLE LENTH = 0 BEQ 210$ ;IF SO SKIP. 121$: MOVB (R1)+,(R3)+ ;MOVE THE ANSWER. SOB R4,121$ ;R4 IS COUNTER 210$: MOV #ASKBUF,R1 ;MOVE QUESTION MOV #MSGBUF,R3 ;TO MSG BUF MOV LEN,R2 ;NO OF CHARS ADD R2,EXTRA+F.NRBD ;CHANGE SIZE READ QUESTION 122$: MOVB (R1)+,(R3)+ ;MOVE THE SOB R2,122$ ;QUESTION 123$: MOV EXTRA+F.NRBD,R2 ;GET LENTH OF READ QUESTION SUB #2,R2 ;DON'T COUNT 2 EXTRA CHAR MOV #MSGBUF,R1 ;SET UP TO PRINT CALL PRMSG1 ;PRINT LINE BCS 140$ ;CHECK FOR ERROR MOV EXTRA+F.NRBD,R2 ;GET SIZE OF LINE SUB LEN,R2 ;DON'T COUNT QUESTION SUB #2,R2 ;DON'T COUNT BEGIN 2 CHARS MOV R2,TIOST+2 ;NO OF CHARS MOV #ASKBUF,R1 ;PLACE TO MOVE TST R2 ;SKIP IF 0 CHARS BEQ 151$ 150$: MOVB (R3)+,(R1)+ ;MOVE THE CHARS SOB R2,150$ ;R2 HAS NO 151$: CMPB EXBUF,#'E ;CHECK IF ESCAPE BEQ 124$ ;BRANCH IF NO MOV #IS.CR,TIOST ;SET NORMAL LINE READ IN BR 125$ ;BRANCH AROUND CODE FOR ESCAPE 124$: MOV #IS.ESC,TIOST ;SET ESCAPE 125$: MOV (SP)+,R4 ;RESTORE R4 MOV (SP)+,R3 ;RESTORE R3 RETURN ;BACK TO INDASK ; 130$: TRAP EREOF ; Y - PRINT @ AND EXIT 140$: MOV (SP)+,R4 ;RESTORE R4 MOV (SP)+,R3 ;RESTORE R3 CMPB EXTRA+F.ERR,#IE.EOF ;CHECK IF END EXTRA FILE BEQ 130$ ;YES BRANCH JMP ATEXIT ; N - SIMPLY EXIT 145$: MOV (SP)+,R4 ;RESTORE R4 MOV (SP)+,R3 ;RESTORE R3 TRAP ERCHK ;PRINT CHECKING MSG AND ;EXIT /