You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.3 KiB
53 lines
1.3 KiB
BREAK <Memory arena structure>
|
|
|
|
;
|
|
; Revision History:
|
|
;
|
|
; M001 - added equates for UMB allocation
|
|
; M002 - added equate for LINK/UNLINK state of UMBs
|
|
; M026 - STRAT_MASK should be HF_MASK AND HO_MASK
|
|
|
|
;** Arena Header
|
|
;
|
|
|
|
arena STRUC
|
|
arena_signature DB ? ; 4D for valid item, 5A for last item
|
|
arena_owner DW ? ; owner of arena item
|
|
arena_size DW ? ; size in paragraphs of item
|
|
arena_reserved DB 3 DUP(?) ; reserved
|
|
arena_name DB 8 DUP(?) ; owner file name
|
|
arena ENDS
|
|
|
|
;
|
|
; CAUTION: The routines in ALLOC.ASM rely on the fact that arena_signature
|
|
; and arena_owner_system are all equal to zero and are contained in DI. Change
|
|
; them and change ALLOC.ASM.
|
|
;
|
|
; I think I have all of these covered via .errnz - JGL
|
|
|
|
|
|
arena_owner_system EQU 0 ; free block indication
|
|
|
|
arena_signature_normal EQU 4Dh ; valid signature, not end of arena
|
|
arena_signature_end EQU 5Ah ; valid signature, last block in arena
|
|
|
|
|
|
FIRST_FIT EQU 00000000B
|
|
BEST_FIT EQU 00000001B
|
|
LAST_FIT EQU 00000010B
|
|
|
|
LOW_FIRST EQU 00000000B ; M001
|
|
HIGH_FIRST EQU 10000000B ; M001
|
|
HIGH_ONLY EQU 01000000B ; M001
|
|
|
|
LINKSTATE EQU 00000001B ; M002
|
|
|
|
HF_MASK EQU NOT HIGH_FIRST ; M001
|
|
HO_MASK EQU NOT HIGH_ONLY ; M001
|
|
|
|
STRAT_MASK EQU HF_MASK AND HO_MASK ; M001;
|
|
; M026: used to mask of bits
|
|
; M026: 6 & 7 of AllocMethod
|
|
|
|
|
|
|