Andrew wrote:Known issue that drives me crazy (Please help with this !)
- Compiled program with QLiberator works on QL, QEmulator and QPC
- Compiled program with Turbo works only on QPC !! On QL and QEmulator it raises error "Not implemented yet"
Can anyone help with this peculiarity ?
I have managed to get this to work with Qemulator. This is how ..
All "GET" and "BGET" commands ( there are about 9 of them ) were converted into their Turbo equivalents.
I then attempted to Turbo Compile within Qemulator. There were 2 reported errors, both for the FMAKE_DIR function.
This function is not available in Qemulator QDOS, as currently there is no support for level 2 device drivers.
If one wants to make a new sub-directory, this has to be done manually in Windows.
To get around this problem, I changed the calls to "our_FMAKE_DIR(subd$)", and wrote one function to cope.
"TURBO_DUMMYF" is used as a substitution, and "DEBUG" is used to avoid the error. Here is my code ..
Code: Select all
DEFine FuNction our_FMAKE_DIR(subd$)
LOCal i, a
i = BASIC_INDEX%("FMAKE_DIR")
IF i > 0
a = BASIC_ADR(i)
IF a > 0
IF 1/3 = 0
POKE_L TURBO_V(TURBO_DUMMYF), a
RETurn TURBO_DUMMYF(subd$)
ELSE
DEBUG 1
RETurn FMAKE_DIR(subd$)
DEBUG 0
END IF
REMark Above will return 0 if successful
END IF
END IF
PRINT #0,"Sorry - No support for level 2 device drivers "
RETurn -19 : REMark not implemented
END DEFine our_FMAKE_DIR
Note that the expression 1/3=0 identifies Turbo, since Turbo will use integer arithmetic where possible.
Details about all this can be found in the Turbo manual turbos4 - search for BASIC_ADR and TURBO_V.
The above now compiles successfuly, and will run in both QPC2 and Qemulator.
In Qemulator, it will not be possible to make a new directory, but it will not abort with an error.
If this ability is really needed, then you can LRESPR SMSQ_GOLD or LRESPR SMSQ_QEM.