X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=sw%2Fadventure%2FPUT.RA;fp=sw%2Fadventure%2FPUT.RA;h=143b9bffc018e204da61cafcf3b10a306d508301;hb=84b5715c66b026062d9c455da3509b814bc32b1b;hp=0000000000000000000000000000000000000000;hpb=9107854b0bc70913de9757805c976b7442d88178;p=pdp8.git diff --git a/sw/adventure/PUT.RA b/sw/adventure/PUT.RA new file mode 100644 index 0000000..143b9bf --- /dev/null +++ b/sw/adventure/PUT.RA @@ -0,0 +1,53 @@ + SECT PUT +/ INTEGER FUNCTION PUT(OBJECT,WHERE,PVAL) +/ C +/ C PUT IS THE SAME AS MOVE, EXCEPT IT RETURNS A VALUE USED TO SET UP THE +/ C NEGATED PROP VALUES FOR THE REPOSITORY OBJECTS. +/ C +/ IMPLICIT INTEGER (A-Z) +/ C + + EXTERN MOVE + JA #ST +#XR, ORG .+10 + TEXT +PUT + +#RET, SETX #XR + SETB #BASE + JA .+3 +#BASE, ORG .+6 +PVAL, ORG .+3 +M1, F -1.0 + ORG #BASE+30 + FNOP + JA #RET + FNOP +#GOBAK, 0;0 + #LBL=. + 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 #G1 + FLDA% #BASE,1+ + FSTA #G2 + FLDA% #BASE,1+ + FSTA PVAL + STARTF +/ CALL MOVE(OBJECT,WHERE) + JSR MOVE + JA .+6 +#G1, JA . +#G2, JA . +/ PUT=(-1)-PVAL + FLDA M1 + FSUB% PVAL + JA #RTN + END