; Set the memory model here.
; 1. Chose Small_code or Large_code.
; 2. Choose Small_data or Large_data.
; 3. IF YOU CHOSE Large_data, choose DS_grouped or not.

;Use next line if Small_code; use 2nd if Large.
Large_code	equ	1	; Many CSs.
;Small_code	equ	1	; CS is fixed.

; This defines the memory model:  small vs. large data.
; For large data, use the next line; for small, the second.
;Large_data	equ	1	; ES & SS separate; DS may or may not vary.
Small_data	equ	1	; DS=SS=ES.

ifdef	Small_data
DS_grouped	equ	1
else
; Is DS grouped or does it vary?	Choose this only in Large_data model.
; You choose, in large data case, whether DS is grouped.
;DS_grouped	equ	1
endif

; Provide the appropriate external definition:
ifdef	Small_code
	ifdef	Small_data
			extrn	SMALL?:near
	else
		ifdef	DS_grouped
			extrn	COMPACT?:near
		else
			extrn	UNSUPPORTED_MODEL?:near
		endif
	endif
else
	ifdef	Small_data
			extrn	MEDIUM?:near
	else
		ifdef	DS_grouped
			extrn	BIG?:near
		else
			extrn	LARGE?:near
		endif
	endif
endif

; There are 6 possible libraries:
; 1 CS		1 DS	1 SS=ES=DS	; Small
; Many CS	1 DS	1 SS=ES=DS  	; Medium
; 1 CS		1 DS	1 SS,Many ES	; Compact
; Many CS	1 DS	1 SS,Many ES	; Big
; 1 CS		Many DS	1 SS,Many ES	; Semi-Giant; strange; support?
; Many CS	Many DS	1 SS,Many ES	; Giant
; Not supported:
; 1 CS		1 DS	1 SS,1 ES	; No one supports this.
; Many CS	1 DS	1 SS,1 ES	; " "

	include	macros

