+++ /dev/null
- SECT DROP\r
-/ SUBROUTINE DROP(OBJECT,WHERE)\r
-/ C\r
-/ C PLACE AN OBJECT AT A GIVEN LOC, PREFIXING IT ONTO THE ATLOC LIST.\r
-/ C DECR HOLDNG IF THE OBJECT WAS BEING TOTED.\r
-/ C\r
-/ IMPLICIT INTEGER (A-Z)\r
-/ COMMON /PLACOM/ ATLOC,LINK,PLACE,FIXED,HOLDNG\r
-/ DIMENSION ATLOC(150)\r
-/ DIMENSION LINK(200)\r
-/ DIMENSION PLACE(100)\r
-/ DIMENSION FIXED(100)\r
-\r
- JA #ST\r
-#XR, ORG .+10\r
- TEXT +DROP +\r
-#RET, SETX #XR\r
- SETB #BASE\r
- JA .+3\r
-#BASE, ORG .+6\r
-OBJECT, ORG .+3\r
-WHERE, ORG .+3\r
-ONE, F 1.0\r
-HUND, F 100.0\r
-M1, F -1.0\r
- ORG #BASE+30\r
- FNOP\r
- JA #RET\r
- FNOP\r
-#GOBAK, 0;0\r
- #LBL=.\r
- COMMON PLACOM\r
-ATLOC, ORG .+702\r
-LINK, ORG .+1130\r
-PLACE, ORG .+454\r
-FIXED, ORG .+454\r
-HOLDNG, ORG .+3\r
- ORG #LBL\r
-#RTN, BASE #BASE\r
- JA #GOBAK\r
-#ST, STARTD\r
- 0210\r
- FSTA #GOBAK,0\r
- 0200\r
- SETX #XR\r
- SETB #BASE\r
- LDX 0,1\r
- FSTA #BASE\r
- FLDA% #BASE,1+\r
- FSTA OBJECT\r
- FLDA% #BASE,1+\r
- FSTA WHERE\r
- STARTF\r
- FLDA% WHERE /Pre-load index regs\r
- ATX 6\r
- FLDA% OBJECT\r
- ATX 7\r
-/ IF(OBJECT.GT.100)GOTO 1\r
- FSUB HUND\r
- ATX 5 /Save object-100\r
- JGT #1\r
-/ IF(PLACE(OBJECT).EQ.-1)HOLDNG=HOLDNG-1\r
- FLDA ONE\r
- FADD PLACE-3,7\r
- JNE #G1\r
- FLDA M1\r
- FADDM HOLDNG\r
-/ PLACE(OBJECT)=WHERE\r
-#G1, FLDA% WHERE\r
- FSTA PLACE-3,7\r
-/ GOTO 2\r
- JA #2\r
-\r
-/ 1 FIXED(OBJECT-100)=WHERE\r
-#1, FLDA% WHERE\r
- FSTA FIXED-3,5\r
-\r
-/ 2 IF(WHERE.LE.0)RETURN\r
-#2, JLE #RTN\r
-/ LINK(OBJECT)=ATLOC(WHERE)\r
-#G2, FLDA ATLOC-3,6\r
- FSTA LINK-3,7\r
-/ ATLOC(WHERE)=OBJECT\r
- XTA 7\r
- FSTA ATLOC-3,6\r
-/ RETURN\r
-/ END\r
- JA #RTN\r
- END\r