Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

136 lines
3.6 KiB

/*[
======================================================================
SoftPC Revision 3.0
Title:
cpu_vid.h
Description:
This module supports the interface between the cpu
and the video emulation code.
Author:
John Shanly
Date:
12 April 1991
SccsID @(#)cpu_vid.h 1.11 03/09/94
(c)Copyright Insignia Solutions Ltd., 1991. All rights reserved.
======================================================================
]*/
typedef struct
{
void (*b_write) IPT2(ULONG, value, ULONG, offset);
void (*w_write) IPT2(ULONG, value, ULONG, offset);
#ifndef NO_STRING_OPERATIONS
void (*b_fill) IPT3(ULONG, value, ULONG, offset, ULONG, count);
void (*w_fill) IPT3(ULONG, value, ULONG, offset, ULONG, count);
void (*b_fwd_move) IPT4(ULONG, offset, ULONG, eas, ULONG, count,
ULONG, src_flag);
void (*b_bwd_move) IPT4(ULONG, offset, ULONG, eas, ULONG, count,
ULONG, src_flag);
void (*w_fwd_move) IPT4(ULONG, offset, ULONG, eas, ULONG, count,
ULONG, src_flag);
void (*w_bwd_move) IPT4(ULONG, offset, ULONG, eas, ULONG, count,
ULONG, src_flag);
#endif /* NO_STRING_OPERATIONS */
} WRT_POINTERS;
typedef struct
{
void (*b_write) IPT2(IU8, eaOff, IU32, eaVal);
void (*w_write) IPT2(IU16, eaOff, IU32, eaVal);
void (*d_write) IPT2(IU32, eaOff, IU32, eaVal);
void (*b_fill) IPT3(IU32, eaOff, IU8, eaVal, IU32, count);
void (*w_fill) IPT3(IU32, eaOff, IU16, eaVal, IU32, count);
void (*d_fill) IPT3(IU32, eaOff, IU32, eaVal, IU32, count);
void (*b_fwd_move) IPT4(IU32, eaVal, IHPE, fromOff, IU32, count, IBOOL, src_flag);
void (*b_bwd_move) IPT4(IU32, eaVal, IHPE, fromOff, IU32, count, IBOOL, src_flag);
void (*w_fwd_move) IPT4(IU32, eaVal, IHPE, fromOff, IU32, count, IBOOL, src_flag);
void (*w_bwd_move) IPT4(IU32, eaVal, IHPE, fromOff, IU32, count, IBOOL, src_flag);
void (*d_fwd_move) IPT4(IU32, eaVal, IHPE, fromOff, IU32, count, IBOOL, src_flag);
void (*d_bwd_move) IPT4(IU32, eaVal, IHPE, fromOff, IU32, count, IBOOL, src_flag);
} EVID_WRT_POINTERS;
typedef struct
{
WRT_POINTERS mode_0[32];
WRT_POINTERS mode_1[2];
WRT_POINTERS mode_2[16];
#ifdef VGG
WRT_POINTERS mode_3[16];
#endif
} CHN_TABLE;
typedef struct
{
CHN_TABLE nch;
#ifdef VGG
CHN_TABLE ch4;
#endif
} MODE_TABLE;
extern MODE_TABLE mode_table;
typedef struct
{
IU32 (*b_read) IPT1(ULONG, offset);
IU32 (*w_read) IPT1(ULONG, offset);
#ifndef NO_STRING_OPERATIONS
void (*str_read) IPT3(IU8 *, dest, ULONG, offset, ULONG, count);
#endif /* NO_STRING_OPERATIONS */
} READ_POINTERS;
typedef struct
{
IU32 (*b_read) IPT1(IU32, eaOff);
IU32 (*w_read) IPT1(IU32, eaOff);
IU32 (*d_read) IPT1(IU32, eaOff);
void (*str_fwd_read) IPT3(IU8 *, dest, IU32, eaOff, IU32, count);
void (*str_bwd_read) IPT3(IU8 *, dest, IU32, eaOff, IU32, count);
} EVID_READ_POINTERS;
extern READ_POINTERS read_pointers;
#ifndef Cpu_set_vid_wrt_ptrs
extern void Cpu_set_vid_wrt_ptrs IPT1( WRT_POINTERS *, ptrs );
extern void Cpu_set_vid_rd_ptrs IPT1( READ_POINTERS *, ptrs );
#endif /* Cpu_set_vid_wrt_ptrs */
#ifndef CPU_40_STYLE
#ifdef A3CPU
#ifdef C_VID
extern WRT_POINTERS Glue_writes;
#endif /* C_VID */
#else /* A3CPU */
#ifdef C_VID
extern MEM_HANDLERS Glue_writes;
#endif /* C_VID */
#endif /* A3CPU */
#endif /* CPU_40_STYLE */
extern WRT_POINTERS simple_writes;
extern WRT_POINTERS dth_md0_writes, dth_md1_writes, dth_md2_writes, dth_md3_writes;
extern WRT_POINTERS ch2_md0, ch2_md1, ch2_md2, ch2_md3, ch2_mdcopy;
extern READ_POINTERS Glue_reads;
extern READ_POINTERS simple_reads, pointers_RAM_off;
extern READ_POINTERS pointers_mode0_nch, pointers_mode0_ch4, pointers_mode0_ch2;
extern READ_POINTERS pointers_mode1_nch, pointers_mode1_ch4, pointers_mode1_ch2;