Nog wrote:
In my quest to get helppc running and working in wine, I noticed that it tries to access the text mode buffer directly (b000, I think). This memory doesn't seem to be emulated in dosmem.c and my exploration into how to implement it were in vein. Could anybody please help?
Anyway on another note, to get the program to exectute this far I had to add a hack to vga.c. What the program was doing, was, it waited until the light pen trigger was set, when it read the light pen trigger set
Err, I mean light pen enable...
(bit 1) from the vga status register (3da) and then it would wait until
and its actually bit 2...
it was unset again. I've attached a patch to solve this problem, but its definatly not the right way of doing it, anyway see what you think.
Index: vga.c
RCS file: /home/wine/wine/msdos/vga.c,v retrieving revision 1.7 diff -u -r1.7 vga.c --- vga.c 2001/06/19 18:14:08 1.7 +++ vga.c 2001/10/04 17:54:02 @@ -31,6 +31,8 @@ typedef HWND WINAPI (*CreateWindowExAProc)(DWORD,LPCSTR,LPCSTR,DWORD,INT,INT, INT,INT,HWND,HMENU,HINSTANCE,LPVOID); static CreateWindowExAProc pCreateWindowExA;
+int pentrigger = 0;
static void VGA_DeinstallTimer(void) { if (poll_timer) { @@ -333,6 +335,15 @@ we need to fake the occurrence of the vertical refresh */ ret=vga_refresh?0x00:0x08; vga_refresh=0;
/* The light pen trigger is a bit tricky, programs want it set first
and then they wait until its unset agian */
if(pentrigger == 1) {
pentrigger = 0;
ret += 0x5;
}
else
pentrigger = 1; break; default: ret=0xff;