b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* $XFree86: xc/programs/Xserver/hw/xfree86/xf4bpp/wm3.h,v 1.2 1998/07/25 16:59:46 dawes Exp $ */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* $XConsortium: wm3.h /main/4 1996/02/21 17:59:24 kaleb $ */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* Do call in Write Mode 3.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * We take care of the possibility that two passes are needed.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* GJA -- Move a long word to screen memory.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * The reads into 'dummy' are here to load the VGA latches.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * This is a RMW operation except for trivial cases.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Notice that we ignore the operation.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync { volatile unsigned short *_dtmp = \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync (volatile unsigned short *)(destp); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync { volatile char *_dtmp = (volatile char *)(destp); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync dummy = *_dtmp; *_dtmp = _stmp; _dtmp++; _stmp >>= 8; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync dummy = *_dtmp; *_dtmp = _stmp; _dtmp++; _stmp >>= 8; \