C PROGRAM FINDOPR.FT C ------------------- C C C FUNCTION FINDOPR(OPR) C C C P LEMKIN C NIH C BETHESDA, MD C C C MARCH 5, 1977 C FEB 13, 1977 C FEB 7, 1977 C FEB 4, 1977 C JAN 20, 1977 C NOV 16, 1976 C OCT 21, 1976 C OCT 15, 1976 C OCT 8, 1976 C OCT 7, 1976 C SEPT 21, 1976 C SEPT 17, 1976 C SEPT 16, 1976 C SEPT 13, 1976 C SEPT 11, 1976 C SEPT 10, 1976 C SEPT 9, 1976 C SEPT 7, 1976 C SEPT 2, 1976 C SEPT 1, 1976 C AUG 31, 1976 C AUG 30, 1976 C AUG 27, 1976 C AUG 26, 1976 C C PURPOSE C ------- C LOOKUP THE OPR IN THE ARG AND RETURN 0 IF IT IS NOT C FOUND IN THE LIST OF OPRS IN THIS PROCEDURE. C IF IT IS FOUND, RETURN THE INDEX OF THE ARG IN THE C LIST OF NAMES. C C OPR FUNCTION C ---- -------- C 0.0 NOP FOR NOW [WASPRINT THE LIST OF OPERATORS]. C NON ZERO FIND AND RETURN INDEX OF OPERATOR C IF IT FAILS IT RETURNS 0. IF THE OPR IS C A PDP8E IOT, THEN THE VALUE OF THE C IOT IS RETURNED. C C C C S OPDEF GETMSK 6304 S OPDEF MSTAG 6366 S OPDEF DET34 6424 S OPDEF DETB 6420 S OPDEF DETC 6421 S OPDEF HPL 6360 S OPDEF HSL 6361 S OPDEF LDXP 6443 S OPDEF LDYP 6444 S OPDEF LFBW2 6437 S OPDEF LGALX 6456 S OPDEF LGALY 6457 S OPDEF LMASKE 6441 S OPDEF LMASKX 6442 S OPDEF LQDT1 6375 S OPDEF LQDT2 6376 S OPDEF LQDT3 6377 S OPDEF MSKADR 6440 S OPDEF QPROG1 6370 S OPDEF QPROG2 6371 S OPDEF QPROG3 6372 S OPDEF QPROG4 6373 S OPDEF QPROG5 6431 S OPDEF QPROG6 6432 S OPDEF QPROG7 6433 S OPDEF QPROG8 6434 S OPDEF QSTAT 6374 S OPDEF SIZEA 6425 S OPDEF SIZEC 6426 S OPDEF SIZEM 6427 S OPDEF SIZES 6430 S OPDEF STEP 6305 S OPDEF STQMT 6300 S OPDEF VPL 6362 S OPDEF VSL 6363 S OPDEF EXADR 6450 S OPDEF EXOUT 6451 S DUMMY LSWITCH DIMENSION III(4),JJJ(4) EQUIVALENCE (III(1),POPR),(JJJ(1),FFF) C C C [0] ASSUME DEFAULT OF FAILURE MAXOPRS=63 MAXIOTS=37 FINDOPR=0.0 C C [0.1] TEST IF PRINT OR SEARCH IF(OPR)200,100,200 C C C [1] NOP FOR NOW (DID PRINT THE CMD NAMES)RINT 100 CONTINUE C@ DO 101 I=1,MAXOPRS C@ DO 102 J=1,3 C@ IF(I-42)105,105,106 C@S \105, TAD PTR1 C@S DCA \IPOINTER C@ L=I C@ GOTO 107 C@C C@S \106, TAD PTR2 C@S DCA \IPOINTER C@ L=I-42 C@C C@107 K=IPOINTER+(J-1)+(L-1)*3 C@S TAD \K C@S DCA 20 C@S TAD I 20 C@S DCA \K C@C C@C GET RID OF "?" BY REPLACING THEM WITH SPACES C@S TAD \K C@S AND (7700 C@S TAD (-7700 C@S SZA C@S JMP \108 C@S TAD (-7700 C@S TAD (4000 C@S \108, TAD (7700 C@S DCA \L /TEMP C@C C@S TAD \K C@S AND (0077 C@S TAD (-0077 C@S SZA C@S JMP \109 C@S TAD (-0077 C@S TAD (0040 /SPACE C@S\109, TAD (0077 C@S TAD \L C@S DCA \K C@102 JJJ(J)=K C@C C@S WAITKBD, 6034 C@S AND (177 C@S TAD (-17 /CONTROL/O C@S SNA CLA C@S JMP \999 /DONE C@C C@S 6034 C@S AND (177 C@S TAD (-23 /^S C@S SNA CLA C@S JMP WAITKBD C@C C@ WRITE(1,103)I,(JJJ(L),L=1,3) C@103 FORMAT(' [',I2,']=',3A2,50X) C@101 CONTINUE RETURN C C C [2] COPY THE NAME TO LOCAL STORAGE 200 POPR=OPR C C CHECK THE POPR AGAINST EACH ENTRY FFF(I) IN TBLE DO 201 I=1,MAXOPRS C C COPY THE ENTRY TO FFF DO 202 J=1,3 IF(I-42)205,205,206 S \205, TAD PTR1 S DCA \IPOINTER L=I GOTO 207 C S \206, TAD PTR2 S DCA \IPOINTER L=I-42 C 207 K=IPOINTER+(J-1)+(L-1)*3 S TAD \K S DCA 20 S TAD I 20 S DCA \K 202 JJJ(J)=K C C C NOW TEST IF JJJ (PATTERN) IS AN INSTANCE OF III (OPR) IF(MATCH(FFF,POPR))203,201,203 C C YES, FOUND A MATCH, RETURN IT 203 FINDOPR=I RETURN 201 CONTINUE C C C [2.1] SCAN THROUGH THE IOT NAME LIST, AND RETURN C THE IOT VALUE ASSOCIATED WITH THE INDEX (FROM TABLE4). C CHECK THE POPR AGAINST EACH ENTRY FFF(I) IN TBLE DO 211 I=1,MAXIOTS C C COPY THE ENTRY TO FFF DO 212 J=1,3 S TAD PTR3 S DCA \IPOINTER L=I 217 K=IPOINTER+(J-1)+(L-1)*3 S TAD \K S DCA 21 S TAD I 21 S DCA \K 212 JJJ(J)=K C C NOW TEST IF JJJ (PATTERN) IS AN INSTANCE OF III (OPR) IF(MATCH(FFF,POPR))213,211,213 C C YES, FOUND A MATCH, RETURN IOT S\213, CLA CMA S TAD \I /ADD INDEX TO TABLE4 S TAD PTR4 /TABLE4 IOT LIST S DCA 20 S TAD I 20 S DCA \IOT FINDOPR=IOT 211 CONTINUE C C C [2.2] RETURN 999 RETURN C C****************LIST OF OPRS*************** S CPAGE 2 S LSWITCH, 6211 S 7643 /CD SWITCH WORD FOR BITS A:L S PTR1, TABLE1 S PTR2, TABLE2 S PTR3, TABLE3 S PTR4, TABLE4 C S PAGE S LAP S TABLE1, S TEXT /GET???/ /1. S TEXT /POST??/ /2. S TEXT /UNPOST/ /3. S TEXT /POSXY?/ /4. S TEXT /POSFS?/ /5. S TEXT /SETFSX/ /6. S TEXT /ALL384/ /7. S TEXT /STDBM?/ /8. S TEXT /SETFSB/ /9. S TEXT /WRITE?/ /10. S TEXT /READ??/ /11. S TEXT /CMDKEY/ /12. S TEXT /SETGEN/ /13. S TEXT /INIT??/ /14. S TEXT /COLOR?/ /15. S TEXT /COPY??/ /16. S TEXT /COMPLE/ /17. S TEXT /HIST??/ /18. S TEXT /CONTRA/ /19. S TEXT /SLICE?/ /20. S TEXT /LAPLAC/ /21. S TEXT /AVG8??/ /22. S TEXT /GRAD4?/ /23. S TEXT /EVAL??/ /24. S TEXT /GRAYBA/ /25. S TEXT /TEXT??/ /26. S TEXT /GRID??/ /27. S TEXT /GRAPHP/ /28. S TEXT /ZERO??/ /29. S TEXT /PARAME/ /30. S TEXT /SAVCMD/ /31. S TEXT /RSTCMD/ /32. S TEXT /SCALE?/ /33. S TEXT /LOADQR/ /34. S TEXT /SUMDIF/ /35. S TEXT /ADD???/ /36. S TEXT /SUB???/ /37. S TEXT /MUL???/ /38. S TEXT /DIV???/ /39. S TEXT /AND???/ /40. S TEXT /OR????/ /41. S TEXT /MAX???/ /42. C C IOT NAME TABLE 3 S PAGE S TABLE3, S TEXT /GETMSK/ S TEXT /MSTAG?/ S TEXT /DET34?/ S TEXT /DETB??/ S TEXT /DETC??/ S TEXT /HPL???/ S TEXT /HSL???/ S TEXT /LDXP??/ S TEXT /LDYP??/ S TEXT /LFBW2?/ S TEXT /LGALX?/ S TEXT /LGALY?/ S TEXT /LMASKE/ S TEXT /LMASKX/ S TEXT /LQDT1?/ S TEXT /LQDT2?/ S TEXT /LQDT3?/ S TEXT /MSKADR/ S TEXT /QPROG1/ S TEXT /QPROG2/ S TEXT /QPROG3/ S TEXT /QPROG4/ S TEXT /QPROG5/ S TEXT /QPROG6/ S TEXT /QPROG7/ S TEXT /QPROG8/ S TEXT /QSTAT?/ S TEXT /SIZEA?/ S TEXT /SIZEC?/ S TEXT /SIZEM?/ S TEXT /SIZES?/ S TEXT /STEP??/ S TEXT /STQMT?/ S TEXT /VPL???/ S TEXT /VSL???/ S TEXT /EXADR?/ S TEXT /EXOUT?/ C C C S PAGE C S TABLE2, S TEXT /MIN???/ /43. S TEXT /DIFF??/ /44. S TEXT /SETFSR/ /45. S TEXT /FILLPI/ /46. S TEXT /CIRCLE/ /47. S TEXT /RECTAN/ /48. S TEXT /WHITEN/ /49. S TEXT /SHIFT?/ /50. S TEXT /AREA??/ /51. S TEXT /DENSIT/ /52. S TEXT /PERIME/ /53. S TEXT /EDGE??/ /54. S TEXT /EXIT??/ /55. S TEXT /LOADTH/ /56. S TEXT /QDATA?/ /57. S TEXT /BATCH?/ /58. S TEXT /SETIOT/ /59. S TEXT /OPENFI/ /60. S TEXT /CLOSEF/ /61. S TEXT /NOBATC/ /62. S TEXT /SHOWHI/ /63. C C C IOT NAME TABLE 4 S TABLE4, S GETMSK S MSTAG S DET34 S DETB S DETC S HPL S HSL S LDXP S LDYP S LFBW2 S LGALX S LGALY S LMASKE S LMASKX S LQDT1 S LQDT2 S LQDT3 S MSKADR S QPROG1 S QPROG2 S QPROG3 S QPROG4 S QPROG5 S QPROG6 S QPROG7 S QPROG8 S QSTAT S SIZEA S SIZEC S SIZEM S SIZES S STEP S STQMT S VPL S VSL S EXADR S EXOUT C S EAP END