> .data
rc> ^^^^^ this simplified directive here expands to:
rc> _DATA SEGMENT WORD PUBLIC USE16 'DATA'
rc> ^^^^ or perhaps PARA
rc> Put in my original code "mov ax, seg _data" (with the leading
rc> underscore)
Ok, that compiles under both Watcom and Borland, but still doesn't
work under Watcom with regards to drawing on the screen. However
it still doesn't work. The C program is trying to use DS values of
6e65 and 5e64 (it flips between them, for some strange reason, as
before). The override of the ds is loading a value of 5e66! Being
different from both other values is someone of a concern!!! However,
I'm going to try to stick with it, and see if it helps if I add the
code you suggested to all of the functions instead of just the one
that the first sign of a problem shows up in. BFN. Paul.
P.S. You asked me what memory model I was using. Large is the
answer.
P.P.S. Well, adding your code fixup to EVERY function in vio.asm
(what a lot of work!) fixed the problem!!!!!!!!!!!!!!!! Now
would you mind telling me what I've done? I actually added the
code to a couple of functions at a time, and it was amazing the
dramatic effect it had! It inspired me to keep going, which
eventually worked. It traps in a different bit of the code in
one of the other message areas, and I will investigate that later,
but that is most likely a different problem. I would like to know
why the hell I had to add all that code!!!
P.P.P.S. YIPPEE!!!! The problem was I hadn't put in the special
prototype (...) to force Watcom to pass parameters on the stack
before calling the assembler version of normalize, and now she's
a little ripper!!!
P.P.P.P.S. If you know of a way of making Watcom (DOS, not OS/2,
and 16-bit, not 32-bit) of passing parameters on the stack instead
of in registers let me know, as I don't like having the watcom
specific stuff in my source code like that.
@EOT:
---
* Origin: P9 - Ten Minute Limit (3:711/934.9)
|