| 1 | SECT PSPEAK\r |
| 2 | / SUBROUTINE PSPEAK(MSG,SKIP)\r |
| 3 | / C\r |
| 4 | / C FIND THE SKIP+1ST MESSAGE FOR OBJECT MSG AND PRINT IT.\r |
| 5 | / C MSG SHOULD BE THE INDEX OF\r |
| 6 | / C THE OBJECT. (INVEN+N+1 MESSAGE IS PROP=N MESSAGE).\r |
| 7 | / C\r |
| 8 | / IMPLICIT INTEGER (A-Z)\r |
| 9 | / COMMON /TXTCOM/ RTEXT,LINES,ASCVAR\r |
| 10 | / COMMON /PTXCOM/ PTEXT\r |
| 11 | / DIMENSION RTEXT(205),LINES(36),PTEXT(100)\r |
| 12 | \r |
| 13 | EXTERN IO\r |
| 14 | EXTERN SPEAK\r |
| 15 | JA #ST\r |
| 16 | #XR, ORG .+10\r |
| 17 | TEXT +PSPEAK+\r |
| 18 | #RET, SETX #XR\r |
| 19 | SETB #BASE\r |
| 20 | JA .+3\r |
| 21 | #BASE, ORG .+6\r |
| 22 | MSG, ORG .+3\r |
| 23 | SKIP, ORG .+3\r |
| 24 | ONE, F 1.0\r |
| 25 | #DOTMP, ORG .+3\r |
| 26 | OLDLOC, ORG .+3\r |
| 27 | ORG #BASE+30\r |
| 28 | FNOP\r |
| 29 | JA #RET\r |
| 30 | FNOP\r |
| 31 | #GOBAK, 0;0\r |
| 32 | I, ORG .+0003\r |
| 33 | M, ORG .+0003\r |
| 34 | #LBL=.\r |
| 35 | COMMON PTXCOM\r |
| 36 | PTEXT, ORG .+0454\r |
| 37 | COMMON TXTCOM\r |
| 38 | RTEXT, ORG .+1147\r |
| 39 | LINES, ORG .+0044\r |
| 40 | ASCVAR, ORG .+0003\r |
| 41 | TXTLOC, ORG .+0003\r |
| 42 | DATA, ORG .+0352\r |
| 43 | ORG #LBL\r |
| 44 | #RTN, BASE #BASE\r |
| 45 | JA #GOBAK\r |
| 46 | #ST, STARTD\r |
| 47 | 0210\r |
| 48 | FSTA #GOBAK,0\r |
| 49 | 0200\r |
| 50 | SETX #XR\r |
| 51 | SETB #BASE\r |
| 52 | LDX 0,1\r |
| 53 | FSTA #BASE\r |
| 54 | FLDA% #BASE,1+\r |
| 55 | FSTA MSG\r |
| 56 | FLDA% #BASE,1+\r |
| 57 | FSTA SKIP\r |
| 58 | STARTF\r |
| 59 | / M=PTEXT(MSG)\r |
| 60 | FLDA% MSG\r |
| 61 | ATX 7\r |
| 62 | FLDA PTEXT-0003,7\r |
| 63 | FSTA M\r |
| 64 | / IF(SKIP.LT.0)GOTO 9\r |
| 65 | FLDA% SKIP\r |
| 66 | JLT #9\r |
| 67 | / OLDLOC=MSG\r |
| 68 | FLDA% MSG\r |
| 69 | FSTA OLDLOC\r |
| 70 | / DO 3 I=1,SKIP+1\r |
| 71 | FLDA ONE\r |
| 72 | FSTA I\r |
| 73 | FLDA% SKIP\r |
| 74 | FADD ONE\r |
| 75 | FSTA #DOTMP\r |
| 76 | \r |
| 77 | #G0001,\r |
| 78 | / 1 READ(2'M)LOC,LINES\r |
| 79 | #1, JSR IO\r |
| 80 | JA .+0004\r |
| 81 | JA M\r |
| 82 | / M = ASCVAR\r |
| 83 | FLDA M\r |
| 84 | FADD ONE\r |
| 85 | FSTA M\r |
| 86 | / IF(LOC.EQ.OLDLOC) GO TO 1\r |
| 87 | FLDA TXTLOC\r |
| 88 | FSUB OLDLOC\r |
| 89 | JEQ #1\r |
| 90 | / OLDLOC=LOC\r |
| 91 | FLDA TXTLOC\r |
| 92 | FSTA OLDLOC\r |
| 93 | / 3 CONTINUE\r |
| 94 | #3, FLDA I\r |
| 95 | FADD ONE\r |
| 96 | FSTA I\r |
| 97 | FSUB #DOTMP\r |
| 98 | JLE #G0001\r |
| 99 | / M=M-1\r |
| 100 | FLDA M\r |
| 101 | FSUB ONE\r |
| 102 | FSTA M\r |
| 103 | / CALL SPEAK(M)\r |
| 104 | #9, JSR SPEAK\r |
| 105 | / RETURN\r |
| 106 | / END\r |
| 107 | JA #RTN\r |
| 108 | JA M\r |
| 109 | END\r |