00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __SVGA_H
00020 #define __SVGA_H
00021
00022 #include "common/ktypes.h"
00023 #include "common/kconst.h"
00024 #include "core/kasm.h"
00025
00026 typedef struct
00027 {
00028 DB VbeSignature[4];
00029 DW VbeVersion;
00030 DD OemStringPtr;
00031 DB Capabilities[4];
00032 DD VideoModePtr;
00033 DW TotalMemory;
00034 DW OemSoftwareRev;
00035 DD OemVendorNamePtr;
00036 DD OemProductNamePtr;
00037 DD OemProductRevPtr;
00038 DB Reserved[222];
00039 DB OemData[256];
00040 } VBEINFO;
00041
00042 typedef struct {
00043 short ModeAttributes ;
00044 char WinAAttributes ;
00045 char WinBAttributes ;
00046 short WinGranularity ;
00047 short WinSize ;
00048 short WinASegment ;
00049 short WinBSegment ;
00050 void *WinFuncPtr ;
00051 short BytesPerScanLine ;
00052 short XResolution ;
00053 short YResolution ;
00054 char XCharSize ;
00055 char YCharSize ;
00056 char NumberOfPlanes ;
00057 char BitsPerPixel ;
00058 char NumberOfBanks ;
00059 char MemoryModel ;
00060 char BankSize ;
00061 char NumberOfImagePages ;
00062 char res1 ;
00063 char RedMaskSize ;
00064 char RedFieldPosition ;
00065 char GreenMaskSize ;
00066 char GreenFieldPosition ;
00067 char BlueMaskSize ;
00068 char BlueFieldPosition ;
00069 char RsvdMaskSize ;
00070 char RsvdFieldPosition ;
00071 char DirectColorModeInfo ;
00072
00073
00074 long PhysBasePtr;
00075 long OffScreenMemOffset;
00076 short OffScreenMemSize;
00077 char res2[206] ;
00078 }VBE_ModeInfo;
00079
00080 extern VBEINFO* VbeInfoBlock;
00081 extern VBE_ModeInfo vbe_mode;
00082 extern DB vgabios_buffer[0x8000];
00083 extern DB svga_stack[1024];
00084
00085 extern DB BIOSData[0x600];
00086
00087
00088 void PMID_detect();
00089 void VBE_getmodeinfo(unsigned short mode, VBE_ModeInfo *modeinfo);
00090 int init_mode(unsigned short mode);
00091 void setbank(int bank);
00092 void putpixel(short x, short y, char c);
00093
00094 #endif