summaryrefslogtreecommitdiff
path: root/v4.0/src/DEV/XMAEM/INDEOVP.MAC
blob: 3f2e213ddf71506b931d555c2ec8b1bb660ba010 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
COMMENT #
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*                                                                             *
* MODULE NAME     : INDEOVP                                                   *
*                                                                             *
*                    5669-196 (C) COPYRIGHT 1988 Microsoft Corp.              *
*                                                                             *
* DESCRIPTIVE NAME: Override prefix macros                                    *
*                                                                             *
* STATUS (LEVEL)  : Version (0) Level (1.0)                                   *
*                                                                             *
* FUNCTION        : DATAOV - Creates a prefix so that the next instruction    *
*                            accesses data twice as wide as it normally would.*
*                            Bytes go to words, and words go to double words. *
*                   ADDROV - Creates a prefix so that the next instruction    *
*                            uses 32 bit addresses instead of 16 bit.         *
*                   SEGOV  - Creates a segment override prefix for the next   *
*                            instruction.                                     *
*                                                                             *
* MODULE TYPE     : MAC                                                       *
*                                                                             *
* REGISTER USAGE  : 80286 Standard                                            *
*                                                                             *
* CHANGE ACTIVITY :                                                           *
*                                                                             *
* $MAC(INDEOVP) COMP(LOAD) PROD(3270PC) :                                     *
*                                                                             *
* $D0=D0004700 410 870604 D : NEW FOR RELEASE 1.1                             *
* $P1=P0000311 410 870804 D : RENAME MODULE'S LIBRARY FILE TYPE TO "MAC"      *
*                                                                             *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
#

PAGE
; DATAOV - Create a prefix for an instruction so that it accesses data twice
;          as wide as it normally would have.  If the instruction was to access
;          bytes then it will access words.  If it was to access words then it
;          will access double words (32 bits).

DATAOV  MACRO
         DB      066H
        ENDM

PAGE
; ADDROV - Create a prefix for an instruction so that it uses 32 bit addresses
;          instead of 16 bit addresses.

ADDROV  MACRO
         DB      067H
        ENDM

PAGE
; SEGOV - Segment Prefix Overrides
; This macro will create segment prefix overrides for all the segment registers
; on the 80386.  It will also create prefixes for the data override and address
; override as listed in the DATOV and ADDROV macros above.
;
; Syntax:  SEGOV   ES | CS | SS | DS | FS | GS | DATA | ADDRESS
;

SEGOV   MACRO   SR
        IFIDN   <&SR>,<ES>
         DB      026H
        ENDIF
        IFIDN   <&SR>,<es>
         DB      026H
        ENDIF
        IFIDN   <&SR>,<CS>
         DB      02EH
        ENDIF
        IFIDN   <&SR>,<cs>
         DB      02EH
        ENDIF
        IFIDN   <&SR>,<SS>
         DB      036H
        ENDIF
        IFIDN   <&SR>,<ss>
         DB      036H
        ENDIF
        IFIDN   <&SR>,<DS>
         DB      03EH
        ENDIF
        IFIDN   <&SR>,<ds>
         DB      03EH
        ENDIF
        IFIDN   <&SR>,<FS>
         DB      064H
        ENDIF
        IFIDN   <&SR>,<fs>
         DB      064H
        ENDIF
        IFIDN   <&SR>,<GS>
         DB      065H
        ENDIF
        IFIDN   <&SR>,<gs>
         DB      065H
        ENDIF
        IFIDN   <&SR>,<DATA>
         DB      066H
        ENDIF
        IFIDN   <&SR>,<data>
         DB      066H
        ENDIF
        IFIDN   <&SR>,<ADDRESS>
         DB      067H
        ENDIF
        IFIDN   <&SR>,<address>
         DB      067H
        ENDIF
        ENDM