.TITLE DACMD - COMMAND PAGE FOR DA .IDENT /V01.00/ ; ; COPYRIGHT (C) 1979, 1980 BY ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER ; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY ; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY ; TRANSFERRED. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT ; CORPORATION. ; ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. ; ; ; MODULE DESCRIPTION: ; ; PROCESS COMMANDS FOR DEVICE ACTIVITY COMMAND PAGE ; ; ; ; RJDK - ATMOS - OXFORD ; ; IDENT HISTORY: ; ; 1.00 11-oct-81 ; .SBTTL MACROS ; ; MCALLS AND MACROS ; .MCALL QIOW$,DIR$ .PSECT CMD,OVR,I,LCL .WORD CMD ; ENTRY POINT, FIRST WORD QIO: QIOW$ IO.WVB,$DLUN,$QIOF,,,,<,,40> PRMPT: QIOW$ IO.WVB,$DLUN,$QIOF,,,, READ: QIOW$ IO.RVB,$DLUN,$QIOF,,ISTAT,, .MACRO MESS,TXT .NCHR SYM, .WORD SYM .ASCII /TXT/ .ENDM .MACRO PRINT,TXT MOV #TXT+2,QIO+Q.IOPL MOV TXT,QIO+Q.IOPL+2 DIR$ #QIO .ENDM .MACRO SKIP,N MOV #LF,QIO+Q.IOPL MOV #N,QIO+Q.IOPL+2 DIR$ #QIO .ENDM .SBTTL TEXT STRINGS .EVEN LINE1: MESS .EVEN .ENABL LC LINE2: MESS .EVEN LINE4: MESS .DSABL LC .EVEN LINEN: MESS < TO RETURN> LF: .BYTE 40 ; FIRST BLANK LINE IS FREE FROM TTDRV .REPT 25. .BYTE 12 ; LINE FEED .ENDR PROMPT: .ASCII /COMMAND > / .EVEN ERM: MESS .EVEN ERMTAS: MESS .EVEN CMDBUF: .BLKB 42. .EVEN ERSTAT: .WORD 0 ISTAT: .BLKW 2 .EVEN .SBTTL COMMAND HANDLER ;+ ; ; CMD - COMMAND HANDLER ; ; INPUTS: NONE ; ; OUTPUTS: ; INFORMATION TEXT IS DISPLAYED ON TERMINAL AND ; ANY COMMAND SPECIFIED IS PROCESSED ; ;- CMD: CLR R3 ; NEW PAGE INDICATOR (0 = NO NEW PAGE) CALL $CLEAR ; BLANK SCREEN PRINT LINE1 ; PRINT LINE 1 SKIP 2 ; SKIP 2 BLANK LINES PRINT LINE2 SKIP 1 PRINT LINE4 ; PRINT LINE 4 SKIP 1 PRINT LINEN SKIP 3 ; SKIP TO LOWER PART OF SCREEN IN: MOV #42,R0 MOV #CMDBUF,R1 1$: CLRB (R1)+ SOB R0,1$ DIR$ #PRMPT ; OUTPUT PROMPT DIR$ #READ ; READ COMMAND MOV #CMDBUF,R1 MOV R1,R2 ; SAVE TST ISTAT+2 ; BLANK LINE, RETURN BNE 10$ ; COMMAND GIVEN, PROCESS TST R3 ; DISPLAY NEW PAGE? BEQ 5$ ; BR IF NO MOV R3,$PAGE ; STORE PAGE PREFIX JMP $NPAGE ; DISPLAY NEW PAGE 5$: RETURN 10$: CMPB #40,(R2) ; DEBLANK LINE BEQ 30$ CMPB #141,(R2) ; LOWER CASE? BHIS 20$ ; BR IF NO BICB #40,(R2) ; CONVERT 20$: MOVB (R2),(R1) INC R1 30$: INC R2 TSTB (R2) BNE 10$ ; STOP WHEN PAST CLRB (R1) ; FORCE ZERO AT END OF DEBLANKED LINE MOV #CMDBUF,R1 ; START AT BEGINNING AGAIN CMPB #'R,(R1) ; RATE=S COMMAND BEQ RATE CMPB #'T,(R1) ; TASK=T COMMAND BEQ TASK CERR: PRINT ERM ; COMMAND ERROR BR IN ; READ ANOTHER COMMAND RATE: TSTB (R1) ; FIND '=' BEQ CERR ; DIDN'T FIND ONE CMPB #'=,(R1) BEQ 10$ INC R1 BR RATE 10$: INC R1 ; PAST '=' TSTB (R1) ; ANYTHING PAST IT BEQ CERR MOV R1,R0 CALL $CDTB TSTB (R0) ; NOTHING MUST BE PAST NUMBER BNE CERR MOV R1,$TMG ; STORE NEW RATE JMP IN TASK: TSTB (R1) ; FIND '=' BEQ CERR ; DIDN'T FIND ONE CMPB #'=,(R1) BEQ 10$ INC R1 BR TASK 10$: INC R1 ; PAST '=' TSTB (R1) ; ANYTHING PAST IT BEQ CERR CMP ISTAT+2,#14. ; TASK NAME MORE THAN 6 CHARACTERS? BLOS 20$ ; BR IF NO PRINT ERMTAS ; PRINT ERROR MESSAGE JMP IN 20$: MOV R1,R0 ; STRING TO BE CONVERTED MOV #1,R1 ; PERIOD AND $ ARE VALID CHARACTERS CALL $CAT5 ; CONVERT ASCII TO RAD50 BCC 30$ ; BR IF OK TST R1 ; ANYTHING CONVERTED? BNE 30$ ; BR IF YES PRINT ERMTAS ; ILLEGAL TASK NAME JMP IN 30$: MOV R1,$XCTSK ; STORE TASK NAME MOV #1,R1 ; PERIOD AND $ ARE VALID CHARACTERS CALL $CAT5 ; CONVERT TO RAD50 BCC 40$ ; BR IF OK TSTB (R0) ; END OF STRING? BEQ 40$ ; BR IF YES PRINT ERMTAS ; ILLEGAL TASK NAME JMP IN 40$: MOV R1,$XCTSK+2 ; STORE SECOND HALF OF NAME MOV #"TH,R3 ; STORE TASK HEADER PAGE PREFIX JMP IN .END