*DECK OMOVE
IDENT OMOVE
ENTRY OMOVE
EXT XTRACE
SST
*IF DEF,IMS
*#
*1DC OMOVE
*
* 1. PROC NAME AUTHOR DATE
* OMOVE Y. HSIEH 77/01/30
*
* 2. FUNCTIONAL DESCRIPTION.
* THIS ROUTINE IS RESPONSIBLE FOR MOVING MOVABLE BUFFERS IN USE
* TO A BIG ENOUGH FREE BLOCK AT LOWER ADDRESS TO AVOID MEMORY
* FRAGMENTATION.
*
* 3. METHOD USED.
* PARAMETERS ARE PASSED THROUGH COMMON DECK FORDEQ
* MOVING STARTS FROM LOWER END TO TAKE CARE OF THE OVERLAPPING.
*
* 4. ENTRY PARAMETERS.
* MOLD = FWA OF BLOCK TO BE MOVED FROM
* MNEW = NUMBER OF WORDS IN BLOCK
* MSIZE = FWA OF BLOCK TO MOVE TO
* ALL THREE PARAMETERS CAN BE FOUND IN FREETAB COMMON BLOCK
*
* 5. EXIT PARAMETERS. NONE
*
* 6. COMDECKS CALLED.
* CYBERDEFS FREETAB INPARU MACDEF
*
* 7. ROUTINES CALLED.
* XTRACE RECORD CALL
*
* 8. DAYFILE MESSAGES. NONE
*
*#
*ENDIF
*CALL MACDEF
*CALL CYBERDEFS
*CALL INPARU
*CALL FREETAB
*
OMOVE SUBR = ENTRY/EXIT
*
IFEQ DEBUG,1,6
SX6 A1
SA6 TEMP
SX1 XOMOVE
RJ XTRACE
SA1 TEMP
SA1 X1
*
SA1 MOLD
SB1 1
SB2 X1 FROM ADDRESS
SA2 MSIZE
ZR X2,OMOVE EXIT IF NO TEXT TO MOVE
SB5 B1-B1
SA3 MNEW
SB3 X2 NUMBER OF WORDS
SB4 X3 TO ADDRESS
OMOVEA SA4 B2+B5
BX6 X4
SA6 B4+B5
SB5 B5+B1
NE B3,B5,OMOVEA
EQ OMOVE
XOMOVE DATA L*OMOVE*
TEMP BSS 1
END