.TITLE PTY - TURN PARITY ON OR OFF FOR TT LINE .LIST MEB ; ; EXAMPLE: ; PTY/ON TT12: ; PTY/OFF TT14: ; .MCALL EXST$S,GMCR$,DIR$,ALUN$,QIOW$ PARITY: QIOW$ SF.SMC,1,1,,IOSTAT,, SETTAB: .BYTE TC.PAR,1 ; SET PARITY .BYTE TC.ACR,0 ; SET NO WRAP .BYTE TC.EPA,1 ; EVEN PARITY SETSIZ = .-SETTAB IOSTAT: .BLKW 2 ; MCRDPB: GMCR$ MCRBUF= MCRDPB+G.MCRB+4 ;PTR TO NUMBER AFTER ERC ASSIGN: ALUN$ 1,TT,0 TTNO= ASSIGN+A.LUNU SYNTAX: QIOW$ IO.WLB,5,2,,IOSTAT,, .ENABLE LC .NLIST BEX MESS: .BYTE 12,15 .ASCII / PTY -- ?? Syntax Error ??/ .BYTE 12,15 .ASCII _ Command is: PTY/ON TTnn:_ .BYTE 12,15 .ASCII _ or: PTY/OFF TTnn:_ .BYTE 12,15 .BYTE 12,15 MES.SZ= .-MESS .EVEN ; ENTRY: DIR$ #MCRDPB MOV $DSW,R1 ; CHAR COUNTER BLE 50$ ; SYNTAX ERROR MOV #MCRBUF-1,R0 ;INPUT BUFFER CMPB (R0)+,#'/ ;SWITCH USED BNE 10$ ;NO, DEFAULT TO ON CMPB (R0)+,#'O BNE 50$ CMPB (R0)+,#'N ;/ON ? BEQ 7$ ; YES CMPB (R0)+,#'F ;/OFF BNE 50$ CLRB SETTAB+1 ;FLAG FOR OFF 7$: CMPB #40,(R0)+ ; PASS THE SPACE BNE 50$ 10$: CMPB #'T,(R0)+ BNE 50$ CMPB #'T,(R0)+ BNE 50$ ; NOW AT NUMBER CALL $COTB ;CONVERT OCTAL ASCII TO BINARY CMP #':,R2 ;OK ? BNE 50$ MOV R1,TTNO ; PUT IN TTNO DIR$ #ASSIGN ; ASSIGN THE LUN BCS 60$ DIR$ #PARITY ;DO THE PARITY FUNCTION BCS 60$ TSTB IOSTAT ; SUCCESS ? BPL 100$ ; YES CLR R0 BISB IOSTAT,R0 ; RETURN IOSTAT AS STATUS (WILL BE 300 NUMBER) BR 200$ 60$: MOV #400,R0 BISB $DSW,R0 ; RETURN DSW AS STATUS (WILL BE 700 NUMBER) BR 200$ 50$: DIR$ #SYNTAX MOV #EX$ERR,R0 BR 200$ 100$: MOV #EX$SUC,R0 200$: EXST$S R0 ;EXIT STATUS IS 40 ON ERROR .END ENTRY