Trailing-Edge
-
PDP-10 Archives
-
decuslib20-06
-
decus/20-153/cleant.mac
There are 9 other files named cleant.mac in the archive. Click here to see a list.
TITLE CLEANT FOR RPGII 1
SUBTTL SQUASH TABLES TO GAIN CORE AL BLACKINGTON/CAM/BOB CURRIER
TWOSEG
RELOC 400000
ENTRY CLEANT
EXTERN CLENTX,LITLOC,NAMLOC,FREESP
;RESET TABLE SIZES
CLEANT: MOVE TA,CLENTX
CLENT0: HLRZ TD,0(TA) ; GET XLOC
HRRZ TE,0(TA) ; GET SQUASH CODE
CAIN TE,1 ; IS IT "DELETE EMPTIES?"
JRST CLENT1 ; YES -
JUMPN TE,CLENT2 ; NO - IS IT "EMPTY IT"?
HRRZ TE,0(TD) ; YES - SET LH
HRLI TE,-1 ; OF
MOVEM TE,0(TD) ; XLOC AND
MOVEM TE,1(TD) ; XNXT TO -1
JRST CLENT3
CLENT1: HRRZ TE,1(TD) ; SET
HRRZ TC,0(TD) ; LH OF
SUBI TE,-1(TC) ; XLOC
MOVNS TE ; TO BE
HRLM TE,0(TD) ; NEW SIZE
MOVSI TE,-1 ; SET LH OF XNXT
HLLM TE,1(TD) ; TO -1
JRST CLENT3
CLENT2: CAIE TD,LITLOC ; IS IT LITAB?
JRST CLENT3 ; NO -
HLRZ TE,0(TD) ; YES - IF
CAIGE TE,-^D1100 ; SIZE IS
MOVEI TE,-^D1100 ; GREATER THAN 1100
HRLM TE,0(TD) ; RESET TO 1100
CLENT3: AOBJN TA,CLENT0
;THROW AWAY AIR BETWEEN TABLES
MOVEI TA,NAMLOC+3 ; START AT FIRST TABLE AFTER NAMTAB
CLENT4: HLRE TD,0(TA) ; GET SIZE OF
MOVMS TD ; THIS TABLE
ADDI TD,1 ; PLUS ONE
ADD TD,0(TA) ; DESTINATION ADDRESS
HRRZ TE,3(TA) ; IF THAT
CAIG TE,(TD) ; DOES NOT CHANGE ANYTHING,
JRST CLENT5 ; GO TO NEXT TABLE
HRL TD,3(TA) ; SOURCE ADDRESS
MOVE TC,4(TA) ; COMPUTE
SUB TC,3(TA) ; SIZE OF
HRRZS TC ; NEXT TABLE
ADDI TC,(TD) ; NEW FINAL DESTINATION
HRRM TD,3(TA) ; RESET XLOC
HRRM TC,4(TA) ; RESET XNXT
BLT TD,(TC) ; MOVE DATA DOWN
CLENT5: ADDI TA,3 ; STEP UP TO NEXT TABLE PARAMETERS
SKIPE 3(TA) ; IF THAT IS NOT LAST TABLE,
JRST CLENT4 ; LOOP
HLRE TE,0(TA) ; IT IS - RECOMPUTE
MOVMS TE ; LOCATION
ADDI TE,1 ; OF
ADD TE,0(TA) ; FREE
HRRM TE,FREESP ; CORE
POPJ PP,
END