INT 21 - TAME v2.10+ - INSTALLATION CHECK
AX = 2B01h
CX = 5441h ('TA')
DX = 4D45h ('ME')
---v2.60---
BH = ???
00h skip ???, else do
Return: AL = 02h if installed
ES:DX -> data area in TAME-RES (see below)
Note:   TAME is a shareware program by David G. Thomas which gives up CPU time
to other partitions under a multitasker when the current partition's
program incessantly polls the keyboard or system time

Format of TAME 2.10-2.20 data area:
Offset  Size    Description
00h    BYTE    data structure minor version number (01h in TAME 2.20)
01h    BYTE    data structure major version number (07h in TAME 2.20)
02h    DWORD   number of task switches
06h    DWORD   number of keyboard polls
0Ah    DWORD   number of time polls
0Eh    DWORD   number of times DESQview told program runs only in foreground
12h    DWORD   original INT 10h
16h    DWORD   original INT 14h
1Ah    DWORD   original INT 15h
1Eh    DWORD   original INT 16h
22h    DWORD   original INT 17h
26h    DWORD   original INT 21h
2Ah    DWORD   original INT 28h
2Eh    WORD    offset of TAME INT 10h handler
30h    WORD    offset of TAME INT 14h handler
32h    WORD    offset of TAME INT 15h handler
34h    WORD    offset of TAME INT 16h handler
36h    WORD    offset of TAME INT 17h handler
38h    WORD    offset of TAME INT 21h handler
3Ah    WORD    offset of TAME INT 28h handler
3Ch    WORD    X in /max:X,Y or /freq:X,Y
3Eh    WORD    Y in /max:X,Y or /freq:X,Y
40h    WORD    number of polls remaining before next task switch
42h    WORD    /KEYIDLE value
44h    BYTE    flags for interrupts already grabbed by TAME
bit 0: INT 10h
1: INT 14h
2: INT 15h
3: INT 16h
4: INT 17h
5: INT 21h
6: INT 28h
45h    BYTE    flags for interrupts which may be acted on (same bits as above)
46h    BYTE    TAME enabled (01h) or disabled (00h)
47h    BYTE    /TIMEPOLL (01h) or /NOTIMEPOLL (00h)
48h    BYTE    /NOTIMER (01h) or /TIMER (00h)
49h    BYTE    window or task number for this task
4Ah    BYTE    multitasker type ???
01h DESQview
02h DoubleDOS
03h TopView
???
4Bh    BYTE    type of task switching selected
bit 0: DESQview???
1: DoubleDOS???
2: TopView???
3: KeySwitch
4: HLT instruction
4Ch    BYTE    ???
4Dh    BYTE    flags
bit 1: /FREQ instead of /MAX
4Eh    BYTE    /FG: value
4Fh    BYTE    task switches left until next FGONLY DESQview API call
50h    BYTE    ???

Format of TAME 2.30 data area:
Offset  Size    Description
00h    BYTE    data structure minor version number (02h in TAME 2.30)
01h    BYTE    data structure major version number (0Ah in TAME 2.30)
02h    DWORD   number of task switches
06h    DWORD   number of keyboard polls
0Ah    DWORD   number of time polls
0Eh    DWORD   number of times DESQview told program runs only in foreground
12h    DWORD   time of last /CLEAR or TAME-RES load
16h    DWORD   time yielded
1Ah    DWORD   time spent polling
1Eh    DWORD   time spent waiting on key input with INT 16/AH=01h,11h
22h    DWORD   original INT 10h
26h    DWORD   original INT 14h
2Ah    DWORD   original INT 15h
2Eh    DWORD   original INT 16h
32h    DWORD   original INT 17h
36h    DWORD   original INT 21h
3Ah    DWORD   original INT 28h
3Eh    WORD    offset of TAME INT 10h handler
40h    WORD    offset of TAME INT 14h handler
42h    WORD    offset of TAME INT 15h handler
44h    WORD    offset of TAME INT 16h handler
46h    WORD    offset of TAME INT 17h handler
48h    WORD    offset of TAME INT 21h handler
4Ah    WORD    offset of TAME INT 28h handler
4Ch    WORD    X in /max:X,Y or /freq:X,Y
4Eh    WORD    Y in /max:X,Y or /freq:X,Y
50h    WORD    number of polls remaining before next task switch
52h    WORD    /KEYIDLE value
54h    WORD    /FG: value
56h    WORD    task switches left until next FGONLY DESQview API call
58h    WORD    multitasker version
5Ah    WORD    virtual screen segment
5Ch    BYTE    flags for interrupts already grabbed by TAME
bit 0: INT 10h
1: INT 14h
2: INT 15h
3: INT 16h
4: INT 17h
5: INT 21h
6: INT 28h
5Dh    BYTE    flags for interrupts which may be acted on (same bits as above)
5Eh    BYTE    window or task number for this task
5Fh    BYTE    multitasker type
01h DESQview
02h DoubleDOS
03h TopView
04h OmniView
05h VM/386
60h    BYTE    type of task switching selected (bit flags)
bit 0: DESQview
1: DoubleDOS
2: TopView
3: OmniView
4: KeySwitch
5: HLT instruction
61h    BYTE    watch_DOS
62h    BYTE    bit flags
bit 0: TAME enabled
1: /FREQ instead of /MAX (counts in 3Ch and 3Eh per tick)
2: /TIMEPOLL
3: /KEYPOLL
4: inhibit timer
5: enable status monitoring
63h    BYTE    old status
64h    WORD    signature DA34h

Format of TAME 2.60 data area:
Offset  Size    Description
00h    BYTE    data structure minor version number (02h in TAME 2.60)
01h    BYTE    data structure major version number (0Bh in TAME 2.60)
02h    DWORD   number of task switches
06h    DWORD   number of keyboard polls
0Ah    DWORD   number of time polls
0Eh    DWORD   number of times DESQview told program runs only in foreground
12h    DWORD   time of last /CLEAR or TAME-RES load
16h    DWORD   time yielded
1Ah    DWORD   time spent polling
1Eh    DWORD   time spent waiting on key input with INT 16/AH=01h,11h
22h  4 BYTEs   ???
26h    DWORD   original INT 10h
2Ah    DWORD   original INT 14h
2Eh    DWORD   original INT 15h
32h    DWORD   original INT 16h
36h    DWORD   original INT 17h
3Ah    DWORD   original INT 21h
3Eh    DWORD   original INT 28h
42h    WORD    offset of TAME INT 10h handler
44h    WORD    offset of TAME INT 14h handler
46h    WORD    offset of TAME INT 15h handler
48h    WORD    offset of TAME INT 16h handler
4Ah    WORD    offset of TAME INT 17h handler
4Ch    WORD    offset of TAME INT 21h handler
4Eh    WORD    offset of TAME INT 28h handler
50h    WORD    X in /max:X,Y or /freq:X,Y
52h    WORD    Y in /max:X,Y or /freq:X,Y
54h    WORD    number of polls remaining before next task switch
56h    WORD    /KEYIDLE value
58h  4 BYTEs   ???
5Ch    WORD    X in /boost:X,Y
5Eh    WORD    Y in /boost:X,Y
60h    WORD    /FG: value
62h    WORD    task switches left until next FGONLY DESQview API call
64h    WORD    multitasker version ???
66h    WORD    virtual screen segment
68h    BYTE    flags for interrupts already grabbed by TAME
bit 0: INT 10h
1: INT 14h
2: INT 15h
3: INT 16h
4: INT 17h
5: INT 21h
6: INT 28h
69h    BYTE    flags for interrupts which may be acted on (same bits as above)
6Ah    BYTE    window or task number for this task
6Bh    BYTE    multitasker type
01h DESQview
02h DoubleDOS
03h TopView
04h OmniView
05h VM/386
6Ch    BYTE    type of task switching selected (bit flags)
bit 0: DESQview
1: DoubleDOS
2: TopView
3: OmniView
4: KeySwitch
5: HLT instruction
6Dh    BYTE    watch_DOS
6Eh    BYTE    bit flags
bit 0: TAME enabled
1: /FREQ instead of /MAX (counts in 50h and 52h per tick)
2: /TIMEPOLL
3: /KEYPOLL
4: inhibit timer
5: enable status monitoring
6Fh    BYTE    old status
70h    WORD    signature DA34h


212B01CX5441 - TAME v2.10+ - INSTALLATION CHECK