psuvm%cjs@psuvax.UUCP (01/05/84)
First, the question: Does anyone have information on calling a machine language routine within dBASE II? Page 30 and 31 of the 2.4 manual has information for CP/M. Ashton-Tate's consultants claim no knowledge of PC-DOS or MS-DOS. (Those guys don't even have the source code for dBASE II!) I have been thinking about just poking the code in way up around B000 or C000, but some of the area above DB.COM gets used, and I'd like to have the routine stay around for a while. Would also like to pass the addr of a memory variable in the CALL command, which can be done with CP/M version. Any hints as to where to load and how to call would be appreciated. Now, a patch for version 2.4 (I hate reading queries all the time): (Recall that the line numbers in the SAY command go from 0 to 24 for lines 1 to 25.) Version 2.3D for PC-DOS allowed writing on the bottom (25th) line of the screen. Sure was surprised when my @ 24,0 SAY commands ended up on the 24th line with version 2.4. Didn't look forward to fixing 75 .PRG files. Enter DEBUG! Spent a couple hours looking at all the BIOS video calls 'till I found the right spot. Try it yourself: DEBUG DBASE.COM F 641 L1 19 F 645 L1 18 W This is where he compares the line value with a maximum of 24 and if it is >=, sets it to 23. The patch raises those two values by one. I have been using DBASE.COM with this patch for several months and have had no problems.