home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power Programming
/
powerprogramming1994.iso
/
progtool
/
asm
/
bmac.arc
/
DOS.MAC
< prev
next >
Wrap
Text File
|
1988-07-27
|
2KB
|
123 lines
; LM8086.MAC 13 Dec 83 Craig Milo Rogers at USC/ISI
; Prevent multiply defined GROUPs.
;**
;
; This macro library defines the operating environment for the 8086 large
; model, which allows 1Mbyte for program and 1 Mbyte for data.
;
;**
;**
;
; The following symbols define the 8086 memory mode being used. Set LPROG
; to 1 for a large program segment (greater than 64K-bytes), and set LDATA
; to 1 for a large data segment.
;
;**
LPROG EQU 0
LDATA EQU 0
;**
;
; The following symbols are established via LPROG and LDATA as follows:
;
; S8086 set for small model (small prog, small data)
; D8086 set for model with large data, small prog
; P8086 set for model with large prog, small data
; L8086 set for large model
;
;**
IF (LPROG EQ 0) AND (LDATA EQ 0)
S8086 EQU 1
D8086 EQU 0
P8086 EQU 0
L8086 EQU 0
ENDIF
IF (LPROG EQ 0) AND (LDATA NE 0)
S8086 EQU 0
D8086 EQU 1
P8086 EQU 0
L8086 EQU 0
ENDIF
IF (LPROG NE 0) AND (LDATA EQ 0)
S8086 EQU 0
D8086 EQU 0
P8086 EQU 1
L8086 EQU 0
ENDIF
IF (LPROG NE 0) AND (LDATA NE 0)
S8086 EQU 0
D8086 EQU 0
P8086 EQU 0
L8086 EQU 1
ENDIF
;**
;
; The DSEG and PSEG macros are defined to generate the appropriate GROUP
; and SEGMENT statements for the memory model being used. The ENDDS and
; ENDPS macros are then used to end the segments.
;
;**
DSEG MACRO
IFNDEF DGROUP
DGROUP GROUP DATA
ENDIF
DATA SEGMENT WORD PUBLIC 'DATA'
ASSUME DS:DATA
ENDM
ENDDS MACRO
DATA ENDS
ENDM
IF S8086
PSEG MACRO
IFNDEF PGROUP
PGROUP GROUP PROG
ENDIF
PROG SEGMENT BYTE PUBLIC 'PROG'
ASSUME CS:PROG
ENDM
ENDPS MACRO
PROG ENDS
ENDM
ENDIF
IF D8086
PSEG MACRO
IFNDEF CGROUP
CGROUP GROUP CODE
ENDIF
CODE SEGMENT BYTE PUBLIC 'CODE'
ASSUME CS:CODE
ENDM
ENDPS MACRO
CODE ENDS
ENDM
ENDIF
IF P8086
PSEG MACRO
_CODE SEGMENT BYTE
ASSUME CS:_CODE
ENDM
ENDPS MACRO
_CODE ENDS
ENDM
ENDIF
IF L8086
PSEG MACRO
_PROG SEGMENT BYTE
ASSUME CS:_PROG
ENDM
ENDPS MACRO
_PROG ENDS
ENDM
ENDIF