The first is with command line parameters. There's /E to supposedly put the door driver into EMS, /L for local mode, /D for "drew" which it requires to start normally, /N for the old node system, /P to set the drop file location, and /R to force RIP graphics. Then there's the "NOEMS" parameter, to disable using EMS memory for the overlay, which is actually not documented in the v3.55 LORD.DOC. It's "introduced" as a new feature in LORD v4. Maybe he just forgot to mention it sooner? Or maybe it wasn't ready. Who knows. Without having dug into it too deeply, all I can tell you that it at least acknowledges that you used the switch when you start the game with it.
The other thing related to command line switches is that there's supposed to be a /B to lock the baud rate.
Now on to something else, in a function to pad a string with spaces on the end. You give it the string to pad, and the value for how long the string should be. But it accepts a second numerical value, which apparently has the sole purpose of making the function immediately exit if it's a negative number. If it's 0, though, then it carries on as normal and pads the string. But the interesting thing is that if you send a positive value for that argument, it will apparently just go into a perpetual loop.
I looked at call references to the function, and they almost always passes zero for that argument. But I did notice at least one where it could potentially send a -1. It's after a CWD operation (extends a word into a dword). DX is pushed for the numerical argument for the function, which as a result of CWD means it's always either going to be 0 or -1 depending on the sign of AX. And I think AX was set based on the length of the string about to be passed. All I can gather from that instance is that if the string was going to be longer than 127 characters, it would immediately exit without doing any padding. I'd have to look into it more to really know for sure. Either way, I don't understand the purpose of it even being there.
Anyhow, the thing that stands out about it is simply that the possibility for a perpetual loop exists, even though I doubt that ever actually occurs in the game. And considering the implementation, I can't say with any certainty that Seth actually did it himself this time, or whether it was just a compilation thing.
That's it for today!
No comments:
Post a Comment