You are on page 1of 4

PROGRAM NPTST

$CHAREQU
CHARACTER*1 TC,TCALGN(2)
INTEGER*4 TAREAD,TARNSD,TSTDAT(0:131099),MENU,STAPAR,STQPAR
INTEGER*2 ASC,SCAN,KBF1,KBF2,ERR,IASC,ISCAN,IKBF1,IKBF2,IERR
INTEGER*1 TSTDA1(0:524395)
LOGICAL*2 ABORT,ESCAPE,INTRPT,RSH,LSH,CTRL,ALT,SCRL,NUML,CAPS,INS,PAUSES
EQUIVALENCE (ASC,IASC),(SCAN,ISCAN),(KBF1,IKBF1),(KBF2,IKBF2),(ERR,IERR)
EQUIVALENCE (TCALGN(1),IASC),(TCALGN(2),TC),(TSTDAT(0),TSTDA1(0))
COMMON /KEYGET/IASC,ISCAN,IKBF1,IKBF2,IERR,/NTRVN/ABORT,ESCAPE,INTRPT
COMMON /SHFSTA/RSH,LSH,CTRL,ALT,SCRL,NUML,CAPS,INS,/PAWS/PAUSES
SAVE /KEYGET/,/SHFSTA/,/NTRVN/,/PAWS/
EXTERNAL TSTSCR,TAREAD,TARNSD,TRPSON,OPEPPU,GETHS,GETRHS,GETWHS,GETBHS
EXTERNAL AHEX2,MENU,RSTPAR,PARRUN,PARR2D,PARSTO,RUNPAR,STOPAR,TICHNL,AHEX4
EXTERNAL GETF0,STAPAR,STQPAR,SHIFTS,R2DPAR
CALL TSTSCR
CALL CLS
CALL OPEPPU
CALL TRPSON
1 CONTINUE
CALL CCNSL0
CALL GOTOXY(0,0)
PRINT *,' T=TAREAD; I/R=GETRHS; O/W=GETWHS; ^R=PARRUN; !R=PARR2D; ^S/!S=PARSTO'
PRINT *,'1..7 = SET CHNL TIME; B=GETBHS; F=F0GET; N=TARNSD; A=STAPAR; Q=STQPAR'
PRINT *,' '
PAUSES = .TRUE.
CALL ISNTRP
* CALL SHIFTS
PAUSES = .FALSE.
IF (ABORT.OR.ESCAPE.OR.INTRPT) THEN
CALL PARSTO
CALL TRPSOF
STOP
ENDIF
IF (ASC.EQ.24) THEN
PAUSES = .TRUE.
CALL ISNTRP
SCRL = .TRUE.
PAUSES = .FALSE.
IF (ABORT.OR.ESCAPE.OR.INTRPT) THEN
CALL PARSTO
CALL TRPSOF
STOP
ENDIF
ENDIF
IF (TC.EQ.'C'.OR.TC.EQ.'c') THEN
CALL CLS
CALL CCNSL0
GOTO 1
ENDIF
IF (TC.EQ.'T'.OR.TC.EQ.'t') GOTO 101
IF (TC.EQ.'H'.OR.TC.EQ.'h') GOTO 201
IF (TC.EQ.'I'.OR.TC.EQ.'i') GOTO 301
IF (TC.EQ.'R'.OR.TC.EQ.'r') GOTO 301
IF (TC.EQ.'W'.OR.TC.EQ.'w') GOTO 401
IF (TC.EQ.'O'.OR.TC.EQ.'o') GOTO 401
IF (TC.EQ.'B'.OR.TC.EQ.'b') GOTO 501
IF (TC.EQ.'F'.OR.TC.EQ.'f') GOTO 601
IF (TC.EQ.'N'.OR.TC.EQ.'n') GOTO 701
IF (TC.EQ.'A'.OR.TC.EQ.'a') GOTO 801
IF (TC.EQ.'Q'.OR.TC.EQ.'q') GOTO 901
PRINT *,' .'
IF (ASC.EQ.18.AND.(LSH.OR.RSH)) THEN
CALL PARRUN
PRINT *,' CALL PARRUN .'
ELSEIF (ASC.EQ.18) THEN
CALL RUNPAR
PRINT *,' CALL RUNPAR .'
ELSEIF (ASC.EQ.0.AND.SCAN.EQ.$13.AND.(LSH.OR.RSH)) THEN
CALL R2DPAR
PRINT *,' CALL R2DPAR .'
ELSEIF (ASC.EQ.0.AND.SCAN.EQ.$13) THEN
CALL PARR2D
PRINT *,' CALL PARR2D .'
ELSEIF (ASC.EQ.0.AND.SCAN.EQ.120) THEN
CALL RSTPAR
PRINT *,' CALL RSTPAR .'
ELSEIF ((ASC.EQ.19.OR.(ASC.EQ.0.AND.SCAN.EQ.$1F)).AND.(LSH.OR.RSH)) THEN
CALL STOPAR
PRINT *,' CALL STOPAR .'
ELSEIF (ASC.EQ.19.OR.(ASC.EQ.0.AND.SCAN.EQ.$1F)) THEN
CALL PARSTO
PRINT *,' CALL PARSTO .'
ELSEIF (SCRL.AND.(TC.EQ.'9'.OR.TC.EQ.'0'.OR.TC.EQ.'1'.OR.TC.EQ.'2'.OR.
& TC.EQ.'3'.OR.TC.EQ.'4'.OR.TC.EQ.'=')) THEN
IF (TC.EQ.'9') THEN
CALL TSTSTP
PRINT *,' CALL TSTSTP .'
ELSEIF (TC.EQ.'0') THEN
CALL TSTNUL
PRINT *,' CALL TSTNUL .'
ELSEIF (TC.EQ.'1') THEN
CALL TSTR1D
PRINT *,' CALL TSTR1D .'
ELSEIF (TC.EQ.'2') THEN
CALL TSTR2D
PRINT *,' CALL TSTR2D .'
ELSEIF (TC.EQ.'3') THEN
CALL TSTR1D
CALL TSTEQU
PRINT *,' CALL TSTR1D, TSTEQU .'
ELSEIF (TC.EQ.'4') THEN
CALL TSTR2D
CALL TSTEQU
PRINT *,' CALL TSTR2D, TSTEQU .'
ELSEIF (TC.EQ.'=') THEN
CALL TSTEQU
PRINT *,' CALL TSTEQU .'
ENDIF
ELSEIF (ASC.GE.$31.AND.ASC.LE.$37) THEN
I = ASC - $30
CALL PARSTO
CALL TICHNL(I)
PRINT *,' CALL TICHNL(',I,') .'
CALL PARRUN
ELSEIF (TC.EQ.'-'.AND.SCRL) THEN
CALL MSKPAR(0)
PRINT *,' PAR STATUS CHECKING OFF .'
ELSEIF (TC.EQ.'+'.AND.SCRL) THEN
CALL MSKPAR(-1)
PRINT *,' PAR STATUS CHECKING ON .'
ENDIF
PRINT *,' .'
GOTO 1
201 CONTINUE
CALL CLS
LENG = 300
CALL GETHS(TSTDAT(0),LENG)
LENG = 300
CALL GOTOXY(0,5)
CALL AHEX5(TSTDAT(0),1,LENG)
* PRINT *,' Again? (y/N)'
* I = MENU(0,0,1)
* IF (I.EQ.0.OR.ABORT.OR.ESCAPE.OR.INTRPT) GOTO 1
* IF (I.EQ.1) GOTO 201
GOTO 1
301 CONTINUE
CALL CLS
LENG = 300
CALL GETRHS(TSTDAT(0),LENG)
LENG = 300
CALL GOTOXY(0,5)
CALL AHEX5(TSTDAT(0),1,LENG)
* PRINT *,' Again? (y/N)'
* I = MENU(0,0,1)
* IF (I.EQ.0.OR.ABORT.OR.ESCAPE.OR.INTRPT) GOTO 1
* IF (I.EQ.1) GOTO 301
GOTO 1
401 CONTINUE
CALL CLS
LENG = 300
CALL GETWHS(TSTDAT(0),LENG)
LENG = 300
CALL GOTOXY(0,5)
CALL AHEX5(TSTDAT(0),1,LENG)
* PRINT *,' Again? (y/N)'
* I = MENU(0,0,1)
* IF (I.EQ.0.OR.ABORT.OR.ESCAPE.OR.INTRPT) GOTO 1
* IF (I.EQ.1) GOTO 401
GOTO 1
501 CONTINUE
CALL CLS
LENG = 300
CALL GETBHS(TSTDAT(0),LENG)
LENG = 300
CALL GOTOXY(0,5)
CALL AHEX5(TSTDAT(0),1,LENG)
* PRINT *,' Again? (y/N)'
* I = MENU(0,0,1)
* IF (I.EQ.0.OR.ABORT.OR.ESCAPE.OR.INTRPT) GOTO 1
* IF (I.EQ.1) GOTO 501
GOTO 1
601 CONTINUE
CALL CLS
LENG = 30
IF (TC.EQ.'f') LENG = 30000
CALL GETF0(TSTDAT(0),LENG)
LENG = 30
CALL GOTOXY(0,5)
IF (TC.EQ.'f') LENG = 30000
CALL AHEX5(TSTDAT(0),1,LENG)
* PRINT *,' Again? (y/N)'
* I = MENU(0,0,1)
* IF (I.EQ.0.OR.ABORT.OR.ESCAPE.OR.INTRPT) GOTO 1
* IF (I.EQ.1) GOTO 601
GOTO 1
701 CONTINUE
CALL CLS
LENG = 300
LENG2 = LENG
I = TARNSD(TSTDAT(0),LENG)
CALL GOTOXY(0,5)
PRINT *,' RETURNED ',I,' LENG = ',LENG
CALL AHEX5(TSTDAT(0),1,LENG2)
* PRINT *,' Again? (y/N)'
* I = MENU(0,0,1)
* IF (I.EQ.0.OR.ABORT.OR.ESCAPE.OR.INTRPT) GOTO 1
* IF (I.EQ.1) GOTO 701
GOTO 1
801 CONTINUE
CALL CLS
LENG = 314
LENG2 = LENG - 16
DO 802 I = 0,LENG
TSTDA1(I) = STAPAR()
802 CONTINUE
CALL GOTOXY(0,5)
CALL AHEX5(TSTDA1(0),1,LENG2)
* PRINT *,' Again? (y/N)'
* I = MENU(0,0,1)
* IF (I.EQ.0.OR.ABORT.OR.ESCAPE.OR.INTRPT) GOTO 1
* IF (I.EQ.1) GOTO 801
GOTO 1
901 CONTINUE
CALL CLS
LENG = 314
LENG2 = LENG - 16
DO 902 I = 0,LENG
TSTDA1(I) = STQPAR()
902 CONTINUE
CALL GOTOXY(0,5)
CALL AHEX5(TSTDA1(0),1,LENG2)
* PRINT *,' Again? (y/N)'
* I = MENU(0,0,1)
* IF (I.EQ.0.OR.ABORT.OR.ESCAPE.OR.INTRPT) GOTO 1
* IF (I.EQ.1) GOTO 901
GOTO 1
101 CONTINUE
CALL CLS
LENG = 300
LENG2 = LENG
I = TAREAD(TSTDAT(0),LENG)
CALL GOTOXY(0,5)
PRINT *,' RETURNED ',I,' LENG = ',LENG
CALL AHEX5(TSTDAT(0),1,LENG2)
* PRINT *,' Again? (y/N)'
* I = MENU(0,0,1)
* IF (I.EQ.0.OR.ABORT.OR.ESCAPE.OR.INTRPT) GOTO 1
* IF (I.EQ.1) GOTO 101
GOTO 1
END

You might also like