X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=sw%2Fadventure%2Fwork%2FPSPEAK.RA;fp=sw%2Fadventure%2Fwork%2FPSPEAK.RA;h=e6fc0a6f9190cd56436717e510a3b39d30b4a55f;hb=81e70d488b71bf995c459ca3a02c025993460ffa;hp=0000000000000000000000000000000000000000;hpb=07ec0278333ed187ac242dedcff13c56cf1b0b91;p=pdp8.git diff --git a/sw/adventure/work/PSPEAK.RA b/sw/adventure/work/PSPEAK.RA new file mode 100644 index 0000000..e6fc0a6 --- /dev/null +++ b/sw/adventure/work/PSPEAK.RA @@ -0,0 +1,109 @@ + SECT PSPEAK +/ SUBROUTINE PSPEAK(MSG,SKIP) +/ C +/ C FIND THE SKIP+1ST MESSAGE FOR OBJECT MSG AND PRINT IT. +/ C MSG SHOULD BE THE INDEX OF +/ C THE OBJECT. (INVEN+N+1 MESSAGE IS PROP=N MESSAGE). +/ C +/ IMPLICIT INTEGER (A-Z) +/ COMMON /TXTCOM/ RTEXT,LINES,ASCVAR +/ COMMON /PTXCOM/ PTEXT +/ DIMENSION RTEXT(205),LINES(36),PTEXT(100) + + EXTERN IO + EXTERN SPEAK + JA #ST +#XR, ORG .+10 + TEXT +PSPEAK+ +#RET, SETX #XR + SETB #BASE + JA .+3 +#BASE, ORG .+6 +MSG, ORG .+3 +SKIP, ORG .+3 +ONE, F 1.0 +#DOTMP, ORG .+3 +OLDLOC, ORG .+3 + ORG #BASE+30 + FNOP + JA #RET + FNOP +#GOBAK, 0;0 +I, ORG .+0003 +M, ORG .+0003 + #LBL=. + COMMON PTXCOM +PTEXT, ORG .+0454 + COMMON TXTCOM +RTEXT, ORG .+1147 +LINES, ORG .+0044 +ASCVAR, ORG .+0003 +TXTLOC, ORG .+0003 +DATA, ORG .+0352 + ORG #LBL +#RTN, BASE #BASE + JA #GOBAK +#ST, STARTD + 0210 + FSTA #GOBAK,0 + 0200 + SETX #XR + SETB #BASE + LDX 0,1 + FSTA #BASE + FLDA% #BASE,1+ + FSTA MSG + FLDA% #BASE,1+ + FSTA SKIP + STARTF +/ M=PTEXT(MSG) + FLDA% MSG + ATX 7 + FLDA PTEXT-0003,7 + FSTA M +/ IF(SKIP.LT.0)GOTO 9 + FLDA% SKIP + JLT #9 +/ OLDLOC=MSG + FLDA% MSG + FSTA OLDLOC +/ DO 3 I=1,SKIP+1 + FLDA ONE + FSTA I + FLDA% SKIP + FADD ONE + FSTA #DOTMP + +#G0001, +/ 1 READ(2'M)LOC,LINES +#1, JSR IO + JA .+0004 + JA M +/ M = ASCVAR + FLDA M + FADD ONE + FSTA M +/ IF(LOC.EQ.OLDLOC) GO TO 1 + FLDA TXTLOC + FSUB OLDLOC + JEQ #1 +/ OLDLOC=LOC + FLDA TXTLOC + FSTA OLDLOC +/ 3 CONTINUE +#3, FLDA I + FADD ONE + FSTA I + FSUB #DOTMP + JLE #G0001 +/ M=M-1 + FLDA M + FSUB ONE + FSTA M +/ CALL SPEAK(M) +#9, JSR SPEAK +/ RETURN +/ END + JA #RTN + JA M + END