I was given this file a few years ago. I'm sorry, I don't know if it's still accurate. Hope it helps.
Dilwyn Q-EMULATOR TRAP CALL Use Trap #1 with D0.L = -26 to get some emulator info. The trap is designed to be usable by other emulators, but I don't think anybody else is using it, so it works only with Q-emuLator. In systems where the trap is not implemented you will get an error in D0.L (bad parameter, I think), in Q-emuLator you get 0 in D0.L. There are three commands, identified by the value in D1: ================================================================== D1.L = 0 Currently returns 0 in both D1.L and D2.L. I don't remember anymore for sure what the intended meaning was :(. I think D1 was the version of the D0=-26 TRAP implemented by the emulator (for example in the future there might be a version 1 TRAP that returns extra info, or allows more values in D1.L), and D2 is probably reserved for future use. Just ignore D1 and D2 and look only at D0 (0 = trap is supported, error = it is not), or directly call with D1.L = 1 or 2. ====================================================================== D1.L = 1 Returns in D1.L info about the host system: D1.L = $00aabbcc, where aa = host OS 0 = Windows 3 = Mac OS bb = host OS variant (for example, if aa was Unix, bb would identify whether it is BSD, Linux, etc.). Currently always zero. cc = emulator ID 1 = Q-emuLator Returns in D2.L the version of the emulator: D2.L = $xxyyzzww, where xx = major version number yy = middle version number zz = minor version number ww was supposed to be a global incremental number, but a 0-255 range is probably too little, so you can just ignore it. D3.L = type of build 0 = alpha 1 = beta 2 = release For example, D2.L = $02010005 and D3.L = 2 means version 2.1 D2.L = $01030218 and D3.L = 1 means version 1.3.2b ====================================================================== D1.L = 2 A1.L = pointer to memory buffer D2.L = length of buffer Fills the buffer with a short QL string identifying the emulator (for example "Q-emuLator 2.2"). Returns a buffer full error in D0 if the buffer is smaller than the string (and the buffer content is not valid in this case). ====================================================================== Hope this helps. Most of this is untested so you may find some bugs. The only piece of software currently using one of these traps is the Q-emuLator's mouse driver (it refuses to install and prints an error if it's not running in Q-emuLator). On Tue, 19 Mar 2024 at 12:54, desin via Ql-Users <ql-users@lists.q-v-d.com> wrote: > > Hello > how can a basic program check if its running on Q-emulator ? > > Greetings from Switzerland > Markus > _______________________________________________ > QL-Users Mailing List _______________________________________________ QL-Users Mailing List