C HELP -- SIMPLE HELP ROUTINE C (WERE TALKING VVVERY SIMPLE!!) C C SUBROUTINE HELP(SELECT,OUTPUT) BYTE SELECT(6),MESAGE(216) INTEGER SIZE(15),ALLFG,OUTPUT,CLSFLG REAL*8 CMDLST(4) COMMON /MESBUF/MESAGE DATA CMDLST /'EAEREPES','CACRCSPR','STFFHFDT','HEEXCP '/ DATA SIZE/56,46,17,74,78,42,80,72,74,33,40,124,48,23,86/ CLSFLG=.FALSE. IF(OUTPUT.LT.2)GOTO50 40 OPEN(UNIT=7,NAME='SDT.DAT',TYPE='NEW',ACCESS='SEQUENTIAL' + ,ERR=60) GOTO50 60 IF(CLSFLG.EQ..TRUE.)GOTO70 CLSFLG=.TRUE. CLOSE(UNIT=7) GOTO40 70 ENCODE(84,852,MESAGE) 852 FORMAT(' *** OPEN ERROR FILE SDT.DAT, RE: WAS NOT PROPERLY', + ' CLOSED AFTER PREVIOUS USEAGE ***') RETURN 50 IF(LTEQGT(' ',SELECT,0).EQ.0)GOTO100 IF(LTEQGT('ALL ',SELECT,0).EQ.0)GOTO100 ISELCT=LSTRNG(CMDLST,1,32,SELECT,1,2) IF(ISELCT.LT.1.OR.ISELCT.GT.32)GOTO200 A=ISELCT ISELCT=INT(A/2+1) ALLFG=.FALSE. GOTO150 100 ALLFG=.TRUE. DO 110 ISELCT=1,15 150 GOTO(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15),ISELCT 170 IF(OUTPUT.LT.2)GOTO172 WRITE(7,171)(MESAGE(K),K=1,SIZE(ISELCT)) 171 FORMAT(1X,A1) 172 IF(ALLFG.EQ..FALSE.)GOTO900 IF(OUTPUT.GE.2)GOTO167 TYPE 171,(MESAGE(I),I=1,SIZE(ISELCT)) 167 CALL PUTBLK(MESAGE,216,1,216) 110 CONTINUE 900 GOTO(1000,920,940,960),OUTPUT GOTO1000 920 CALL PRTNOW(7,'LP') GOTO1000 940 CLOSE(UNIT=7) CALL PUTBLK(MESAGE,216,1,216) ENCODE(42,6025,MESAGE(146)) 6025 FORMAT(' DATA SAVED IN FILE SDT.DAT ON DEFAULT UIC') GOTO1000 960 CALL PRTNOW(7,'GD') 1000 RETURN 1 CALL STRMOV(' EXAMINE ADDRESS: EA "ADDRESS [NBYTES] +[/I/X/R/A][/P/G/F]',1,SIZE(ISELCT),MESAGE,1) GOTO170 2 CALL STRMOV(' EXAMINE REGISTER: ER REGISTER[/I/X/A][/P/G/F]' +,1,SIZE(ISELCT),MESAGE,1) GOTO170 3 CALL STRMOV(' EXAMINE P C : EP',1,SIZE(ISELCT),MESAGE,1) GOTO170 4 CALL STRMOV(' EXAMINE SYMBOL: ES SYMBOL [OFFSET] [MODULE] [SEGMENT] +[/I/O/X/A/R][/P/G/F]',1,SIZE(ISELCT),MESAGE,1) GOTO170 5 CALL STRMOV(' CHANGE ADDRESS: CA "ADDRESS [NBYTES DATA [DATA DATA + DATA][/I/O/X/A/R][/P/G/F]',1,SIZE(ISELCT),MESAGE,1) GOTO170 6 CALL STRMOV(' CHANGE REGISTER: CR REGISTER DATA[/I/X/A]' +,1,SIZE(ISELCT),MESAGE,1) GOTO170 7 CALL STRMOV(' CHANGE SYMBOL: CS SYMBOL [DATA] [OFFSET] [MODULE +] [SEGMENT][/I/A/X/R/O][/P/G/F]',1,SIZE(ISELCT),MESAGE,1) GOTO170 8 CALL STRMOV(' PROCEED: PR [MAXSTEP DEF=1] [LINE NO.] +[TARGET MODULE] [TARGET SEGMENT]',1,SIZE(ISELCT),MESAGE,1) GOTO170 9 CALL STRMOV(' SET BREAK POINT TRAP : ST TRAPNO(0=CLEARALL) + [ADDRESS(0=TRAP IS CLEARED)]',1,SIZE(ISELCT),MESAGE,1) GOTO170 10 CALL STRMOV(' FOLLOW COMMAND FILE: CO FILESPEC' +,1,SIZE(ISELCT),MESAGE,1) GOTO170 11 CALL STRMOV(' KEEP HISTORY COMMAND FILE: HI: FILESPEC' +,1,SIZE(ISELCT),MESAGE,1) GOTO170 12 CALL STRMOV(' DUMP TABLES: TA [ALL=DEF.PROG.CODE.VARS] +[MODULE(DEF=CURRENT)] [SEGMENT(DEF=CURRENT +] [LINENO.OR.VARIABLE(DEF=ALL)] +[/P/G/F]',1,SIZE(ISELCT),MESAGE,1) GOTO170 13 CALL STRMOV('HELP INFORMATION: HE [COMMAND(DEF=ALL)][/P/G/F]' +,1,SIZE(ISELCT),MESAGE,1) GOTO170 14 CALL STRMOV(' EXIT: Z.OR. EX',1,SIZE(ISELCT),MESAGE,1) GOTO170 15 CALL STRMOV(' CHANGE P C : CP (LINE NO.OR."ADDRESS) [MODULE] + [SEGMENT][/O(=OCTAL ADDRESS)][/P/G/F]' +,1,SIZE(ISELCT),MESAGE,1) GOTO170 200 ENCODE(20,210,MESAGE) 210 FORMAT(' *ILLEGAL SELECTION*') RETURN END