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.
945 lines
14 KiB
945 lines
14 KiB
;----------------------------Module-Header------------------------------;
|
|
; Module Name: ROPTABLE.BLT
|
|
;
|
|
; Raster operation code templates for BitBLT.
|
|
;
|
|
; Created: In Windows' distant past (c. 1983)
|
|
;
|
|
; Copyright (c) 1983 - 1987 Microsoft Corporation
|
|
;
|
|
; This file defines the code templates for all raster operations which
|
|
; BitBLT supports.
|
|
;
|
|
; This file is part of a set that makes up the Windows BitBLT function
|
|
; at driver-level.
|
|
;-----------------------------------------------------------------------;
|
|
|
|
if MASMFLAGS and PUBDEFS
|
|
public Sn
|
|
public DDx
|
|
public DPna
|
|
public Pn
|
|
public PDSanon
|
|
public PSnon
|
|
public DPSona
|
|
public PSon
|
|
public PDSnaon
|
|
public PDSaon
|
|
public DPon
|
|
public PDSonon
|
|
public DPSnoon
|
|
public DPSoon
|
|
public DSon
|
|
public PDSona
|
|
public SDPxnon
|
|
public SSPxDSxaxn
|
|
public SPxDSxa
|
|
public PSDPSanaxx
|
|
public SDPSanaxn
|
|
public DSna
|
|
public PDSPanaxn
|
|
public DPSana
|
|
public PDSnaxn
|
|
public DPSaon
|
|
public PDSPaox
|
|
public PDSox
|
|
public SDPSxaxn
|
|
public DPSxa
|
|
public DSPDxaxn
|
|
public DPSnaa
|
|
public PSna
|
|
public DPSaan
|
|
public PSDnaon
|
|
public SPDnaon
|
|
public PDSPxaxn
|
|
public SDPSaox
|
|
public PSDPSaoxxn
|
|
public SSPxPDxaxn
|
|
public SPxPDxa
|
|
public DSPDSoaxxn
|
|
public SPDSoax
|
|
public PDSoan
|
|
public PSDPxox
|
|
public SDPxon
|
|
public PSDnoan
|
|
public PSan
|
|
public SDPnaon
|
|
public SDPaon
|
|
public PSDPaox
|
|
public SDPSoox
|
|
public SPDSaox
|
|
public DPSDxaxn
|
|
public SDPox
|
|
public PSDPoax
|
|
public SDPoan
|
|
public PSx
|
|
public SPDnox
|
|
public SPDSxox
|
|
public PDSxon
|
|
public SPDnoan
|
|
public SPDSonox
|
|
public DPSxnan
|
|
public SPDSnaox
|
|
public SPDSanaxn
|
|
public PDSana
|
|
public DSan
|
|
public PSDPxaxn
|
|
public SDPxa
|
|
public DSPDaox
|
|
public PDSPDaoxxn
|
|
public DPSDoax
|
|
public DPSanon
|
|
public PDSnox
|
|
public DSnon
|
|
public SDPana
|
|
public SSPxDSxoxn
|
|
public SPxDSxo
|
|
public PDSPxox
|
|
public DPSxon
|
|
public PDna
|
|
public Dn
|
|
public DPSDaox
|
|
public SPDSxaxn
|
|
public PDSxa
|
|
public DPx
|
|
public PDSxnon
|
|
public DPSnoan
|
|
public PDSPoax
|
|
public DPSoan
|
|
public PDSax
|
|
public DPSnox
|
|
public DPSox
|
|
public PDSxnan
|
|
public DPSDonox
|
|
public DPSDxox
|
|
public DSPnaon
|
|
public PDSPnaox
|
|
public DPan
|
|
public DSPDSaoxxn
|
|
public SDPnox
|
|
public DPSnaxn
|
|
public DPSax
|
|
public DSx
|
|
public PDSxxn
|
|
public SDPSonox
|
|
public PSDPSonoxxn
|
|
public DPSonon
|
|
public SDPSoax
|
|
public PSDPSoaxxn
|
|
public SDPax
|
|
public DSPDoax
|
|
public PDSPDoaxxn
|
|
public SDPSnoax
|
|
public SSDxPDxaxn
|
|
public SDxPDxa
|
|
public SDPSxox
|
|
public SDPnoan
|
|
public DSPDxox
|
|
public SDPSnaox
|
|
public DPSnaon
|
|
public DSPnoan
|
|
public PDSPnoax
|
|
public DPSxnon
|
|
public PDSnoan
|
|
public SPDSnoax
|
|
public SDPxnan
|
|
endif
|
|
|
|
ROPDEF macro lbl,ne,whocares
|
|
if1
|
|
if MASMFLAGS and DEBUG
|
|
public lbl
|
|
endif
|
|
ROP&ne=(offset lbl)-(offset roptable) ;;Start with offset
|
|
irpc x,lbl
|
|
ROP&ne = ROP&ne AND (NOT NEGATE_NEEDED)
|
|
ifidn <n>,<&&x>
|
|
ROP&ne = ROP&ne OR NEGATE_NEEDED ;;Show negate needed
|
|
endif
|
|
ifidn <P>,<&&x>
|
|
ROP&ne = ROP&ne OR PATTERN_PRESENT ;;Show pattern present
|
|
endif
|
|
ifidn <S>,<&&x>
|
|
ROP&ne = ROP&ne OR SOURCE_PRESENT ;;Show source needed
|
|
endif
|
|
endm
|
|
ROPDEF1 ROP&ne,%((offset $)-(offset lbl))
|
|
endif
|
|
endm
|
|
|
|
|
|
ROPDEF1 macro lbl,len
|
|
if len ;;Skip 0
|
|
lbl = lbl OR (ROPLen&len SHL 10) ;;Set size index
|
|
endif
|
|
endm
|
|
|
|
|
|
|
|
public roptable
|
|
roptable label word
|
|
|
|
errn$ roptable ;Must be at offset 0
|
|
Sn:
|
|
ROPDEF Sn,0033,0008
|
|
|
|
|
|
errn$ roptable ;Must be at offset 0
|
|
|
|
dw ROP0000,ROP0001,ROP0002,ROP0003
|
|
dw ROP0004,ROP0005,ROP0006,ROP0007
|
|
dw ROP0008,ROP0009,ROP000A,ROP000B
|
|
dw ROP000C,ROP000D,ROP000E,ROP000F
|
|
dw ROP0010,ROP0011,ROP0012,ROP0013
|
|
dw ROP0014,ROP0015,ROP0016,ROP0017
|
|
dw ROP0018,ROP0019,ROP001A,ROP001B
|
|
dw ROP001C,ROP001D,ROP001E,ROP001F
|
|
dw ROP0020,ROP0021,ROP0022,ROP0023
|
|
dw ROP0024,ROP0025,ROP0026,ROP0027
|
|
dw ROP0028,ROP0029,ROP002A,ROP002B
|
|
dw ROP002C,ROP002D,ROP002E,ROP002F
|
|
dw ROP0030,ROP0031,ROP0032,ROP0033
|
|
dw ROP0034,ROP0035,ROP0036,ROP0037
|
|
dw ROP0038,ROP0039,ROP003A,ROP003B
|
|
dw ROP003C,ROP003D,ROP003E,ROP003F
|
|
dw ROP0040,ROP0041,ROP0042,ROP0043
|
|
dw ROP0044,ROP0045,ROP0046,ROP0047
|
|
dw ROP0048,ROP0049,ROP004A,ROP004B
|
|
dw ROP004C,ROP004D,ROP004E,ROP004F
|
|
dw ROP0050,ROP0051,ROP0052,ROP0053
|
|
dw ROP0054,ROP0055,ROP0056,ROP0057
|
|
dw ROP0058,ROP0059,ROP005A,ROP005B
|
|
dw ROP005C,ROP005D,ROP005E,ROP005F
|
|
dw ROP0060,ROP0061,ROP0062,ROP0063
|
|
dw ROP0064,ROP0065,ROP0066,ROP0067
|
|
dw ROP0068,ROP0069,ROP006A,ROP006B
|
|
dw ROP006C,ROP006D,ROP006E,ROP006F
|
|
dw ROP0070,ROP0071,ROP0072,ROP0073
|
|
dw ROP0074,ROP0075,ROP0076,ROP0077
|
|
dw ROP0078,ROP0079,ROP007A,ROP007B
|
|
dw ROP007C,ROP007D,ROP007E,ROP007F
|
|
|
|
|
|
|
|
errn$ roptable,-256 ;Must be 256 bytes afterwards
|
|
db 2,3,4,5,7,9,11,13
|
|
|
|
|
|
|
|
|
|
|
|
; The actual raster operation templates follow.
|
|
;
|
|
; Entry: AL = Source byte
|
|
; DH = Pattern Bytes
|
|
; ES:DI --> Destination byte
|
|
;
|
|
; Exit: AL = Result
|
|
; DH = Pattern Bytes
|
|
; ES:DI --> Destination byte
|
|
; AH IS possibly the destination byte
|
|
;
|
|
; Uses: AL,AH,DH,DL
|
|
|
|
|
|
;-----------------------------------------------------------------
|
|
; In Wes' World:
|
|
; The actual raster operation templates follow.
|
|
;
|
|
; Entry: AX = Source word
|
|
; DX = Pattern Word
|
|
; ES:DI --> Destination word
|
|
;
|
|
; Exit: AX = Result
|
|
; DX = Pattern Word
|
|
; ES:DI --> Destination word
|
|
; BP,BX?? IS possibly the destination word
|
|
;
|
|
; Uses: AL,AH,DH,DL
|
|
;-----------------------------------------------------------------
|
|
|
|
|
|
DDx:
|
|
xor al,al
|
|
ROPDEF DDx,0000,0042
|
|
|
|
|
|
DPna:
|
|
Pn:
|
|
mov al,dh
|
|
ROPDEF Pn,000F,0001
|
|
not al
|
|
PDSanon:
|
|
and al,es:[di]
|
|
ROPDEF DPna,000A,0329
|
|
PSnon:
|
|
not al
|
|
DPSona:
|
|
PSon:
|
|
or al,dh
|
|
ROPDEF PDSanon,0008,0F08
|
|
ROPDEF PSon,0003,00AA
|
|
ROPDEF PSnon,000C,0324
|
|
PDSnaon:
|
|
not al
|
|
PDSaon:
|
|
and al,es:[di]
|
|
ROPDEF DPSona,0002,0C89
|
|
or al,dh
|
|
ROPDEF PDSnaon,000D,0B25
|
|
ROPDEF PDSaon,0007,02C5
|
|
|
|
|
|
DPon:
|
|
mov al,dh
|
|
PDSonon:
|
|
or al,es:[di]
|
|
ROPDEF DPon,0005,00A9
|
|
DPSnoon:
|
|
not al
|
|
DPSoon:
|
|
or al,dh
|
|
ROPDEF PDSonon,000E,08A5
|
|
DSon:
|
|
PDSona:
|
|
or al,es:[di]
|
|
ROPDEF DPSnoon,0004,0C88
|
|
ROPDEF DPSoon,0001,0289
|
|
ROPDEF DSon,0011,00A6
|
|
not al
|
|
and al,dh
|
|
ROPDEF PDSona,0010,0C85
|
|
|
|
|
|
SDPxnon:
|
|
mov ah,es:[di]
|
|
xor ah,dh
|
|
not ah
|
|
or al,ah
|
|
ROPDEF SDPxnon,0012,0868
|
|
|
|
|
|
SSPxDSxaxn:
|
|
mov dl,al
|
|
SPxDSxa:
|
|
mov ah,dh
|
|
xor ah,al
|
|
xor al,es:[di]
|
|
and al,ah
|
|
ROPDEF SPxDSxa,0024,0D55
|
|
xor al,dl
|
|
ROPDEF SSPxDSxaxn,0017,1D54
|
|
|
|
|
|
PSDPSanaxx:
|
|
SDPSanaxn:
|
|
mov dl,al
|
|
and al,dh
|
|
DSna:
|
|
not al
|
|
and al,es:[di]
|
|
ROPDEF DSna,0022,0326
|
|
xor al,dl
|
|
ROPDEF SDPSanaxn,0019,1CC8
|
|
xor al,dh
|
|
ROPDEF PSDPSanaxx,0016,5CCA
|
|
|
|
|
|
PDSPanaxn:
|
|
DPSana:
|
|
and al,dh
|
|
PDSnaxn:
|
|
not al
|
|
and al,es:[di]
|
|
ROPDEF DPSana,002A,0CC9
|
|
xor al,dh
|
|
ROPDEF PDSnaxn,002D,060A
|
|
ROPDEF PDSPanaxn,0025,1CC5
|
|
|
|
|
|
|
|
|
|
DPSaon:
|
|
PDSPaox:
|
|
and al,dh
|
|
PDSox:
|
|
or al,es:[di]
|
|
ROPDEF DPSaon,0015,02C9
|
|
xor al,dh
|
|
ROPDEF PDSox,001E,01A5
|
|
ROPDEF PDSPaox,001A,06C5
|
|
|
|
|
|
SDPSxaxn:
|
|
mov dl,al
|
|
DPSxa:
|
|
xor al,dh
|
|
and al,es:[di]
|
|
ROPDEF DPSxa,0028,0369
|
|
xor al,dl
|
|
ROPDEF SDPSxaxn,001B,0768
|
|
|
|
|
|
DSPDxaxn:
|
|
mov ah,es:[di]
|
|
mov dl,ah
|
|
xor dl,dh
|
|
and al,dl
|
|
xor al,ah
|
|
ROPDEF DSPDxaxn,001D,0766
|
|
|
|
|
|
DPSnaa:
|
|
PSna:
|
|
not al
|
|
DPSaan:
|
|
and al,dh
|
|
ROPDEF PSna,0030,032A
|
|
and al,es:[di]
|
|
ROPDEF DPSnaa,0020,0F09
|
|
ROPDEF DPSaan,007F,03C9
|
|
|
|
|
|
PSDnaon:
|
|
mov ah,es:[di]
|
|
not ah
|
|
and al,ah
|
|
or al,dh
|
|
ROPDEF PSDnaon,000B,0B2A
|
|
|
|
|
|
SPDnaon:
|
|
mov ah,es:[di]
|
|
not ah
|
|
and ah,dh
|
|
or al,ah
|
|
ROPDEF SPDnaon,0023,0B24
|
|
|
|
|
|
PDSPxaxn:
|
|
xor al,dh
|
|
and al,es:[di]
|
|
xor al,dh
|
|
ROPDEF PDSPxaxn,0027,1868
|
|
|
|
|
|
SDPSaox:
|
|
PSDPSaoxxn:
|
|
mov dl,al
|
|
and al,dh
|
|
or al,es:[di]
|
|
xor al,dl
|
|
ROPDEF SDPSaox,0026,06C8
|
|
xor al,dh
|
|
ROPDEF PSDPSaoxxn,0029,16CA
|
|
|
|
|
|
SSPxPDxaxn:
|
|
mov dl,al
|
|
SPxPDxa:
|
|
mov ah,es:[di]
|
|
xor ah,dh
|
|
xor al,dh
|
|
and al,ah
|
|
ROPDEF SPxPDxa,0018,0D59
|
|
xor al,dl
|
|
ROPDEF SSPxPDxaxn,002B,1D58
|
|
|
|
|
|
DSPDSoaxxn:
|
|
SPDSoax:
|
|
mov dl,al
|
|
PDSoan:
|
|
mov ah,es:[di]
|
|
or al,ah
|
|
and al,dh
|
|
ROPDEF PDSoan,001F,0385
|
|
xor al,dl
|
|
ROPDEF SPDSoax,002C,0784
|
|
xor al,ah
|
|
ROPDEF DSPDSoaxxn,0079,1786
|
|
|
|
|
|
|
|
|
|
PSDPxox:
|
|
SDPxon:
|
|
mov ah,es:[di]
|
|
xor ah,dh
|
|
or al,ah
|
|
ROPDEF SDPxon,0021,0248
|
|
xor al,dh
|
|
ROPDEF PSDPxox,002E,064A
|
|
|
|
|
|
PSDnoan:
|
|
mov ah,es:[di]
|
|
not ah
|
|
or al,ah
|
|
PSan:
|
|
and al,dh
|
|
ROPDEF PSan,003F,00EA
|
|
ROPDEF PSDnoan,002F,0E2A
|
|
|
|
|
|
SDPnaon:
|
|
mov ah,dh
|
|
not ah
|
|
and ah,es:[di]
|
|
or al,ah
|
|
ROPDEF SDPnaon,0031,0B28
|
|
|
|
|
|
SDPaon:
|
|
PSDPaox:
|
|
mov ah,es:[di]
|
|
and ah,dh
|
|
or al,ah
|
|
ROPDEF SDPaon,0013,02C8
|
|
xor al,dh
|
|
ROPDEF PSDPaox,001C,06CA
|
|
|
|
|
|
|
|
SDPSoox:
|
|
mov dl,al
|
|
or al,dh
|
|
or al,es:[di]
|
|
xor al,dl
|
|
ROPDEF SDPSoox,0032,0688
|
|
|
|
|
|
SPDSaox:
|
|
mov dl,al
|
|
and al,es:[di]
|
|
or al,dh
|
|
xor al,dl
|
|
ROPDEF SPDSaox,0034,06C4
|
|
|
|
|
|
DPSDxaxn:
|
|
mov ah,es:[di]
|
|
xor al,ah
|
|
and al,dh
|
|
xor al,ah
|
|
ROPDEF DPSDxaxn,0035,1864
|
|
|
|
|
|
SDPox:
|
|
mov ah,es:[di]
|
|
or ah,dh
|
|
xor al,ah
|
|
ROPDEF SDPox,0036,01A8
|
|
|
|
|
|
PSDPoax:
|
|
SDPoan:
|
|
mov ah,es:[di]
|
|
or ah,dh
|
|
and al,ah
|
|
ROPDEF SDPoan,0037,0388
|
|
PSx:
|
|
xor al,dh
|
|
ROPDEF PSx,003C,004A
|
|
ROPDEF PSDPoax,0038,078A
|
|
|
|
|
|
SPDnox:
|
|
mov ah,es:[di]
|
|
not ah
|
|
or ah,dh
|
|
xor al,ah
|
|
ROPDEF SPDnox,0039,0604
|
|
|
|
|
|
SPDSxox:
|
|
mov dl,al
|
|
PDSxon:
|
|
xor al,es:[di]
|
|
or al,dh
|
|
ROPDEF PDSxon,0009,0245
|
|
xor al,dl
|
|
ROPDEF SPDSxox,003A,0644
|
|
|
|
|
|
SPDnoan:
|
|
mov ah,es:[di]
|
|
not ah
|
|
or ah,dh
|
|
and al,ah
|
|
ROPDEF SPDnoan,003B,0E24
|
|
|
|
|
|
SPDSonox:
|
|
mov dl,al
|
|
or al,es:[di]
|
|
not al
|
|
or al,dh
|
|
xor al,dl
|
|
ROPDEF SPDSonox,003D,18A4
|
|
|
|
|
|
DPSxnan:
|
|
xor al,dh
|
|
SPDSnaox:
|
|
mov dl,al ;(wasted for DPSxnan)
|
|
not al
|
|
and al,es:[di]
|
|
ROPDEF DPSxnan,007D,0C69
|
|
or al,dh
|
|
xor al,dl
|
|
ROPDEF SPDSnaox,003E,1B24
|
|
|
|
|
|
SPDSanaxn:
|
|
mov dl,al
|
|
PDSana:
|
|
DSan:
|
|
and al,es:[di]
|
|
ROPDEF DSan,0077,00E6
|
|
not al
|
|
and al,dh
|
|
ROPDEF PDSana,0070,0CC5
|
|
xor al,dl
|
|
ROPDEF SPDSanaxn,0043,1CC4
|
|
|
|
|
|
PSDPxaxn:
|
|
SDPxa:
|
|
mov ah,es:[di]
|
|
xor ah,dh
|
|
and al,ah
|
|
ROPDEF SDPxa,0048,0368
|
|
xor al,dh
|
|
ROPDEF PSDPxaxn,0047,076A
|
|
|
|
|
|
DSPDaox:
|
|
PDSPDaoxxn:
|
|
mov ah,es:[di]
|
|
mov dl,ah
|
|
and dl,dh
|
|
or al,dl
|
|
xor al,ah
|
|
ROPDEF DSPDaox,0046,06C6
|
|
xor al,dh
|
|
ROPDEF PDSPDaoxxn,0049,16C5
|
|
|
|
DPSDoax:
|
|
mov ah,es:[di]
|
|
or al,ah
|
|
and al,dh
|
|
xor al,ah
|
|
ROPDEF DPSDoax,004A,0789
|
|
|
|
|
|
DPSanon:
|
|
and al,dh
|
|
PDSnox:
|
|
DSnon:
|
|
not al
|
|
or al,es:[di]
|
|
ROPDEF DPSanon,0040,0F0A
|
|
ROPDEF DSnon,0044,0328
|
|
xor al,dh
|
|
ROPDEF PDSnox,004B,0605
|
|
|
|
|
|
SDPana:
|
|
mov ah,es:[di]
|
|
and ah,dh
|
|
not ah
|
|
and al,ah
|
|
ROPDEF SDPana,004C,0CC8
|
|
|
|
|
|
SSPxDSxoxn:
|
|
mov dl,al
|
|
SPxDSxo:
|
|
mov ah,al
|
|
xor ah,dh
|
|
xor al,es:[di]
|
|
or al,ah
|
|
ROPDEF SPxDSxo,007E,0955
|
|
xor al,dl
|
|
ROPDEF SSPxDSxoxn,004D,1954
|
|
|
|
|
|
PDSPxox:
|
|
DPSxon:
|
|
xor al,dh
|
|
or al,es:[di]
|
|
ROPDEF DPSxon,0041,0249
|
|
xor al,dh
|
|
ROPDEF PDSPxox,004E,0645
|
|
|
|
|
|
PDna:
|
|
Dn:
|
|
mov al,es:[di]
|
|
ROPDEF Dn,0055,0009
|
|
not al
|
|
and al,dh
|
|
ROPDEF PDna,0050,0325
|
|
|
|
|
|
DPSDaox:
|
|
mov ah,es:[di]
|
|
and al,ah
|
|
or al,dh
|
|
xor al,ah
|
|
ROPDEF DPSDaox,0052,06C9
|
|
|
|
|
|
SPDSxaxn:
|
|
mov dl,al
|
|
PDSxa:
|
|
xor al,es:[di]
|
|
and al,dh
|
|
ROPDEF PDSxa,0060,0365
|
|
xor al,dl
|
|
ROPDEF SPDSxaxn,0053,0764
|
|
|
|
|
|
DPx:
|
|
mov al,dh
|
|
PDSxnon:
|
|
xor al,es:[di]
|
|
ROPDEF DPx,005A,0049
|
|
DPSnoan:
|
|
not al
|
|
PDSPoax:
|
|
DPSoan:
|
|
or al,dh
|
|
ROPDEF PDSxnon,0006,0865
|
|
PDSax:
|
|
and al,es:[di]
|
|
ROPDEF DPSnoan,005D,0E29
|
|
ROPDEF DPSoan,0057,0389
|
|
xor al,dh
|
|
ROPDEF PDSPoax,0058,0785
|
|
ROPDEF PDSax,0078,01E5
|
|
|
|
|
|
DPSnox:
|
|
not al
|
|
DPSox:
|
|
or al,dh
|
|
PDSxnan:
|
|
xor al,es:[di]
|
|
ROPDEF DPSox,0056,01A9
|
|
ROPDEF DPSnox,0059,0609
|
|
not al
|
|
and al,dh
|
|
ROPDEF PDSxnan,006F,0C65
|
|
|
|
|
|
DPSDonox:
|
|
mov ah,es:[di]
|
|
or al,ah
|
|
not al
|
|
or al,dh
|
|
xor al,ah
|
|
ROPDEF DPSDonox,005B,18A9
|
|
|
|
|
|
DPSDxox:
|
|
mov ah,es:[di]
|
|
xor al,ah
|
|
or al,dh
|
|
xor al,ah
|
|
ROPDEF DPSDxox,005C,0649
|
|
|
|
|
|
DSPnaon:
|
|
PDSPnaox:
|
|
mov ah,dh
|
|
not ah
|
|
and al,ah
|
|
or al,es:[di]
|
|
ROPDEF DSPnaon,0051,0B26
|
|
xor al,dh
|
|
ROPDEF PDSPnaox,005E,1B29
|
|
|
|
|
|
DPan:
|
|
mov al,dh
|
|
and al,es:[di]
|
|
ROPDEF DPan,005F,00E9
|
|
|
|
|
|
DSPDSaoxxn:
|
|
mov dl,al
|
|
mov ah,es:[di]
|
|
and al,ah
|
|
or al,dh
|
|
xor al,dl
|
|
xor al,ah
|
|
ROPDEF DSPDSaoxxn,0061,16C6
|
|
|
|
|
|
SDPnox:
|
|
mov ah,dh
|
|
not ah
|
|
or ah,es:[di]
|
|
xor al,ah
|
|
ROPDEF SDPnox,0063,0608
|
|
|
|
|
|
DPSnaxn:
|
|
not al
|
|
DPSax:
|
|
and al,dh
|
|
DSx:
|
|
PDSxxn:
|
|
xor al,es:[di]
|
|
ROPDEF DSx,0066,0046
|
|
ROPDEF DPSax,006A,01E9
|
|
ROPDEF DPSnaxn,0065,0606
|
|
xor al,dh
|
|
ROPDEF PDSxxn,0069,0145
|
|
|
|
|
|
SDPSonox:
|
|
PSDPSonoxxn:
|
|
mov dl,al
|
|
DPSonon:
|
|
or al,dh
|
|
not al
|
|
or al,es:[di]
|
|
ROPDEF DPSonon,0054,08A9
|
|
xor al,dl
|
|
ROPDEF SDPSonox,0067,18A8
|
|
xor al,dh
|
|
ROPDEF PSDPSonoxxn,0068,58A6
|
|
|
|
|
|
SDPSoax:
|
|
PSDPSoaxxn:
|
|
mov dl,al
|
|
or al,dh
|
|
and al,es:[di]
|
|
xor al,dl
|
|
ROPDEF SDPSoax,0064,0788
|
|
xor al,dh
|
|
ROPDEF PSDPSoaxxn,006B,178A
|
|
|
|
|
|
SDPax:
|
|
mov ah,es:[di]
|
|
and ah,dh
|
|
xor al,ah
|
|
ROPDEF SDPax,006C,01E8
|
|
|
|
|
|
DSPDoax:
|
|
PDSPDoaxxn:
|
|
mov ah,es:[di]
|
|
mov dl,ah
|
|
or ah,dh
|
|
and al,ah
|
|
xor al,dl
|
|
ROPDEF DSPDoax,0062,0786
|
|
xor al,dh
|
|
ROPDEF PDSPDoaxxn,006D,1785
|
|
|
|
|
|
SDPSnoax:
|
|
mov dl,al
|
|
not al
|
|
or al,dh
|
|
and al,es:[di]
|
|
xor al,dl
|
|
ROPDEF SDPSnoax,006E,1E28
|
|
|
|
|
|
SSDxPDxaxn:
|
|
mov dl,al
|
|
SDxPDxa:
|
|
mov ah,es:[di]
|
|
xor al,ah
|
|
xor ah,dh
|
|
and al,ah
|
|
ROPDEF SDxPDxa,0042,0D5D
|
|
xor al,dl
|
|
ROPDEF SSDxPDxaxn,0071,1D5C
|
|
|
|
|
|
SDPSxox:
|
|
mov dl,al
|
|
xor al,dh
|
|
or al,es:[di]
|
|
xor al,dl
|
|
ROPDEF SDPSxox,0072,0648
|
|
|
|
|
|
SDPnoan:
|
|
mov ah,dh
|
|
not ah
|
|
or ah,es:[di]
|
|
and al,ah
|
|
ROPDEF SDPnoan,0073,0E28
|
|
|
|
|
|
DSPDxox:
|
|
mov ah,es:[di]
|
|
mov dl,ah
|
|
xor ah,dh
|
|
or al,ah
|
|
xor al,dl
|
|
ROPDEF DSPDxox,0074,0646
|
|
|
|
|
|
SDPSnaox:
|
|
mov dl,al
|
|
DPSnaon:
|
|
not al
|
|
and al,dh
|
|
or al,es:[di]
|
|
ROPDEF DPSnaon,0045,0B29
|
|
xor al,dl
|
|
ROPDEF SDPSnaox,0076,1B28
|
|
|
|
|
|
DSPnoan:
|
|
PDSPnoax:
|
|
mov ah,dh
|
|
not ah
|
|
or al,ah
|
|
and al,es:[di]
|
|
ROPDEF DSPnoan,0075,0E26
|
|
DPSxnon:
|
|
xor al,dh
|
|
ROPDEF PDSPnoax,007A,1E29
|
|
PDSnoan:
|
|
SPDSnoax:
|
|
mov dl,al ;(wasted for DPSxnon)
|
|
not al
|
|
or al,es:[di]
|
|
ROPDEF DPSxnon,0014,0869
|
|
and al,dh
|
|
ROPDEF PDSnoan,004F,0E25
|
|
xor al,dl
|
|
ROPDEF SPDSnoax,007C,1E24
|
|
|
|
SDPxnan:
|
|
mov ah,es:[di]
|
|
xor ah,dh
|
|
not ah
|
|
and al,ah
|
|
ROPDEF SDPxnan,007B,0C68
|
|
|
|
|
|
|
|
foobar macro y
|
|
if @Version LT 600
|
|
if2
|
|
%out Size of the table is y.
|
|
endif
|
|
else
|
|
%out Size of the table is y.
|
|
endif
|
|
endm
|
|
|
|
foobar %(offset $)-(offset roptable)-256-8
|
|
|