Index for category T - DOS-based task switchers/multitaskers
Table of Contents by Order
11FFFECXFFFE - INT 11 - BACK&FORTH (before v1.62) API
12FFFECXFFFE - INT 12 - Back&Forth v1.62+ - API
1500 - INT 15 - MultiDOS Plus - GIVE UP TIME SLICE
1501 - INT 15 - MultiDOS Plus - REQUEST RESOURCE SEMAPHORE
1502 - INT 15 - MultiDOS Plus - RELEASE RESOURCE SEMAPHORE
1503 - INT 15 - MultiDOS Plus - SUSPEND TASK FOR INTERVAL
1504 - INT 15 - MultiDOS Plus - SEND MESSAGE TO ANOTHER TASK
1505 - INT 15 - MultiDOS Plus - CHECK MAILBOX
1506 - INT 15 - MultiDOS Plus - READ MAILBOX
1507 - INT 15 - MultiDOS Plus - SPAWN INTERNAL TASK (CREATE NEW THREAD)
1508 - INT 15 - MultiDOS Plus - TERMINATE INTERNAL TASK (KILL THREAD)
1509 - INT 15 - MultiDOS Plus - CHANGE TASK'S PRIORITY
150A - INT 15 - MultiDOS Plus - CHANGE TIME SLICE INTERVAL
150B - INT 15 - MultiDOS Plus - FORCE DISPLAY OUTPUT TO PHYSICAL SCREEN MEMORY
150C - INT 15 - MultiDOS Plus - RESTORE OLD VIDEO DISPLAY MEMORY
150D - INT 15 - MultiDOS Plus - DISABLE MULTITASKING
150E - INT 15 - MultiDOS Plus - ENABLE MULTITASKING
150F - INT 15 - MultiDOS Plus - EXECUTE A MULTIDOS PLUS COMMAND
1510 - INT 15 - MultiDOS Plus - TEST RESOURCE SEMAPHORE
1511 - INT 15 - VMiX - "sys_system" - EXECUTE SHELL SYSTEM COMMANDS
1511 - INT 15 - MultiDOS Plus - TURN OFF AltZ TOGGLE
1512 - INT 15 - VMiX - "sys_sleep" - PUT PROCESS TO SLEEP
1512 - INT 15 - MultiDOS Plus - TURN ON AltZ TOGGLE
1513 - INT 15 - VMiX - "sys_wake" - WAKE SLEEPING PROCESS
1513 - INT 15 - MultiDOS Plus - GET TASK CONTROL BLOCK
1514 - INT 15 - VMiX - "sys_clrwindow" - CLEAR WINDOW
1514 - INT 15 - MultiDOS Plus - CHECK IF MultiDOS FOREGROUND OR BACKGROUND
1515 - INT 15 - VMiX - "sys_setbwindow" - SET BANNER WINDOW MESSAGE
1515 - INT 15 - MultiDOS Plus - GET SYSTEM BLOCK
1516 - INT 15 - VMiX - "sys_setwindow" - SET ROOT WINDOW SIZE AND HOME CURSOR
1516 - INT 15 - MultiDOS Plus - INITIALIZATION
1517 - INT 15 - VMiX - "sys_getcolors" - GET CONSOLE WINDOW COLORS
1517 - INT 15 - MultiDOS Plus - MAP IRQ
1518 - INT 15 - VMiX - "sys_setcolors" - SET CONSOLE COLORS
1518 - INT 15 - MultiDOS Plus - UNMAP IRQ
1519 - INT 15 - VMiX v2+ - "sys_setconwn" - SET WINDOW COLORS
1519 - INT 15 - MultiDOS Plus - UNMAP ALL IRQs
151A - INT 15 - VMiX v2+ - "sys_sint" - INVOKE SOFTWARE INTERRUPT
151A - INT 15 - MultiDOS Plus - MAP SEMAPHORE NAME TO NUMBER
151B - INT 15 - VMiX v2+ - "sys_blkmov" - MOVE MEMORY BLOCK
151B - INT 15 - MultiDOS Plus - REQUEST RESOURCE SEMAPHORE BY NAME
151C - INT 15 - VMiX v2+ - "sys_bitblt" - PUT GRAPHICAL OBJECT AT CURSOR POSITION
151C - INT 15 - MultiDOS Plus - RELEASE RESOURCE SEMAPHORE BY NAME
151D - INT 15 - VMiX v2+ - "sys_getfont" - GET CURRENT CONSOLE GRAPHICS FONT
151D - INT 15 - MultiDOS Plus - TEST RESOURCE SEMAPHORE BY NAME
151E - INT 15 - VMiX v2+ - "sys_setfont" - SET CONSOLE GRAPHICS FONT
151E00 - INT 15 - MultiDOS Plus - CLEAR EVENT COUNTER
151E01 - INT 15 - MultiDOS Plus - TRIGGER EVENT
151E02 - INT 15 - MultiDOS Plus - WAIT FOR EVENT
151E08 - INT 15 - MultiDOS Plus 4.01 - SET CONTEXT-SWITCH FUNCTIONS
151F - INT 15 - VMiX v2.???+ - "sys_scrollwin" - SCROLL WINDOW
151F - INT 15 - MultiDOS Plus v4.01 - GET MEMORY PARAMETERS
1520 - INT 15 - MultiDOS Plus v4.01 - CHECK IF MULTITASKING ENABLED
153000 - INT 15 - Object Kernel for DOS - INSTALLATION CHECK
153001 - INT 15 - Object Kernel for DOS - GET STATUS BLOCK
153002 - INT 15 - Object Kernel for DOS - KILL PROCESS
153003 - INT 15 - Object Kernel for DOS - STOP PROCESS
153004 - INT 15 - Object Kernel for DOS - START PROCESS
153005 - INT 15 - Object Kernel for DOS - RESTART PROCESS
153006 - INT 15 - Object Kernel for DOS - EXECUTE PROCESS
153007 - INT 15 - Object Kernel for DOS - LIST PROCESSES
153008 - INT 15 - Object Kernel for DOS - SWITCH ObjectKernel ON/OFF
153009 - INT 15 - Object Kernel for DOS - RESERVED FOR FUTURE USE
1550 - INT 15 - VMIX v2.???+ - "sys_vm_page" - SET NEW VIRTUAL PAGE TABLE
1551 - INT 15 - VMiX v2.???+ - "sys_vm_func" - EXECUTE FUNCTION IN PROTECTED MODE
1552 - INT 15 - VMiX v2.???+ - "sys_vm_init" - INITIALIZE PROTECTED-MODE ENVIRONMENT
155400 - INT 15 C - Omniview Multitasker - INSTALLATION NOTIFICATION
155401 - INT 15 C - Omniview Multitasker - PROCESS CREATION
155402 - INT 15 C - Omniview Multitasker - PROCESS DESTRUCTION
155403 - INT 15 C - Omniview Multitasker - SAVE
155404 - INT 15 C - Omniview Multitasker - RESTORE
155405 - INT 15 C - Omniview Multitasker - SWITCHING TO BACKGROUND
155406 - INT 15 C - Omniview Multitasker - SWITCHING TO FOREGROUND
155407 - INT 15 C - Omniview Multitasker - EXIT NOTIFICATION
16FF80BX0000 - INT 16 U - PC Tools v8+ CPTASK - INSTALLATION CHECK
16FF80BX0001 - INT 16 U - PC Tools v8+ CPTASK - GET ???
16FF80BX0002 - INT 16 U - PC Tools v8+ CPTASK - GET ???
16FF80BX0003 - INT 16 U - PC Tools v8+ CPTASK - GET ??? FLAGS
16FF80BX0004 - INT 16 U - PC Tools v8+ CPTASK - SET ???
16FF80BX0005 - INT 16 U - PC Tools v8+ CPTASK - GET NUMBER OF ACTIVE TASKS???
16FF80BX0006 - INT 16 U - PC Tools v8+ CPTASK - GET AND CLEAR ??? FLAG
16FF80BX0007 - INT 16 U - PC Tools v8+ CPTASK - ???
16FF80BX0008 - INT 16 U - PC Tools v8+ CPTASK - ???
16FF80BX0009 - INT 16 U - PC Tools v8+ CPTASK - GET ???
16FF80BX000A - INT 16 U - PC Tools v9+ CPTASK - SET ???
16FF80BX000B - INT 16 U - PC Tools v9+ CPTASK - SET ???
16FF80BX000C - INT 16 U - PC Tools v9+ CPTASK - SET IDLE??? DELAY
16FF80BX4350 - INT 16 U - PC Tools v8+ CPTASK - UNINSTALL
16FF9C - INT 16 U - PC Tools v8+ CPTASK - SET/CLEAR ??? POINTER
212B01CX5441 - INT 21 - TAME v2.10+ - INSTALLATION CHECK
212D01CX7820 - INT 21 - PC-Mix - INSTALLATION CHECK
213000BX1234 - INT 21 - CTask 2.0+ - INSTALLATION CHECK
21DF00DX534C - INT 21 U - Software Carousel - INSTALLATION CHECK
21DF01 - INT 21 - Software Carousel - SWITCH TO ANOTHER TASK
21DF02 - INT 21 - Software Carousel - KILL PROGRAM IN MEMORY PARTITION
21DF03 - INT 21 - Software Carousel - GET PARTITION SIZE AND PROGRAM STATUS
21DF04 - INT 21 - Software Carousel - GET PARTITION NAME
21DF05 - INT 21 - Software Carousel - CHANGE PARTITION SIZE
21DF06 - INT 21 - Software Carousel - CHANGE PARTITION NAME
21DF07 - INT 21 - Software Carousel - SEND COMMAND TO MEMORY SECTION
21DF08 - INT 21 - Software Carousel - SELECTIVELY ENABLE/DISABLE MENU AND SWITCHING
21DF09 - INT 21 - Software Carousel - BOOT THE SYSTEM
21DF0A - INT 21 - Software Carousel - GET MEMORY SIZE/PARTITION NUMBER OF CURRENT TASK
21DF0B - INT 21 - Software Carousel - SET TASK SWITCH CALLBACK
21DF0C - INT 21 - Software Carousel - ENABLE DOS-CALL SAFETY NOTIFICATION
21E0 - INT 21 - DoubleDOS - MENU CONTROL
21E1 - INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB
21E3 - INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB
21E400 - INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS
21E5 - INT 21 - DoubleDOS - OTHER PROGRAM STATUS
21E8 - INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS
21E9 - INT 21 - DoubleDOS - SET TIMESHARING PRIORITY
21EA - INT 21 - DoubleDOS - TURN OFF TASK SWITCHING
21EB - INT 21 - DoubleDOS - TURN ON TASK SWITCHING
21EC - INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS
21EE - INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS
21F0 - INT 21 - DoubleDOS - MENU CONTROL
21F1 - INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB
21F2 - INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB
21F3 - INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB
21F400 - INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS
21F5 - INT 21 - DoubleDOS - OTHER PROGRAM STATUS
21F8 - INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS
21F9 - INT 21 - DoubleDOS - SET TIMESHARING PRIORITY
21FA - INT 21 - DoubleDOS - TURN OFF TASK SWITCHING
21FB - INT 21 - DoubleDOS - TURN ON TASK SWITCHING
21FC - INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS
21FE - INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS
2F2700 - INT 2F - DR DOS 6.0 TaskMAX - INSTALLATION CHECK
2F2701 - INT 2F - DR DOS 6.0 TaskMAX - GET STATUS
2F2702 - INT 2F - DR DOS 6.0 TaskMAX - GET PER-TASK EMS LIMIT
2F2703 - INT 2F - DR DOS 6.0 TaskMAX - SET PER-TASK EMS LIMIT
2F2704 - INT 2F - DR DOS 6.0 TaskMAX - REGISTER/UNREGISTER TASK MANAGER
2F2705 - INT 2F - DR DOS 6.0 TaskMAX - ENABLE/DISABLE DIRECT SWITCHING
2F2706 - INT 2F - DR DOS 6.0 TaskMAX - SWITCH TO SPECIFIED TASK
2F2707 - INT 2F - DR DOS 6.0 TaskMAX - CREATE NEW TASK
2F2708 - INT 2F - DR DOS 6.0 TaskMAX - DELETE TASK
2F2709 - INT 2F - DR DOS 6.0 TaskMAX - NAME TASK
2F270A - INT 2F - DR DOS 6.0 TaskMAX - CONVERT TASK INDEX TO TASK ID
2F270B - INT 2F - DR DOS 6.0 TaskMAX - CONVERT TASK ID TO TASK INDEX
2F270C - INT 2F - DR DOS 6.0 TaskMAX - CHECK OPEN FILES
2F270D - INT 2F - DR DOS 6.0 TaskMAX - CHECK IF TASK RUNNING PRIMARY COMMAND INTERPRETER
2F270E - INT 2F - DR DOS 6.0 TaskMAX - GET/SET TEXT PASTE LEAD-IN
2F270F - INT 2F - DR DOS 6.0 TaskMAX - GET/SET NUMERIC PASTE LEAD-IN
2F2710 - INT 2F - DR DOS 6.0 TaskMAX - GET/SET PASTE LINE TERMINATOR STRING
2F2711 - INT 2F - DR DOS 6.0 TaskMAX - GET/SET NUMERIC PASTE DECIMAL POINT
2F2712 - INT 2F - DR DOS 6.0 TaskMAX - INITIATE EXPORTING TASK DATA
2F2713 - INT 2F - DR DOS 6.0 TaskMAX - INITIATE PASTE OPERATION
2F2714 - INT 2F - DR DOS 6.0 TaskMAX - GET SWAP SPACE INFO
2F2715 - INT 2F - DR DOS 6.0 TaskMAX - SWITCH TO TASK MANAGER
2F2716 - INT 2F - DR DOS 6.0 TaskMAX - GET PASTE BUFFER STATUS
2F2717 - INT 2F - DR DOS 6.0 TaskMAX - PASTE DATA DIRECTLY TO APPLICATION BUFFER
2F2718 - INT 2F - DR DOS 6.0 TaskMAX - COPY DATA DIRECTLY INTO PASTE BUFFER
2F2719 - INT 2F - Novell DOS 7 TaskMGR - NOP
2F271C - INT 2F U - Novell DOS 7 TaskMGR - ???
2F2781 - INT 2F U - Novell DOS 7 TaskMGR - BEGIN CRITICAL SECTION???
2F2782 - INT 2F U - Novell DOS 7 TaskMGR - END CRITICAL SECTION???
2F278F - INT 2F U - Novell DOS 7 TaskMGR - ??? API
2F4A05 - INT 2F U - DOS 5+ DOSSHELL - TASK SWITCHING API???
2F4B01 - INT 2F C - DOS 5+ TASK SWITCHER - BUILD CALLOUT CHAIN
2F4B02BX0000 - INT 2F - DOS 5+ TASK SWITCHER - INSTALLATION CHECK
2F4B03 - INT 2F - DOS 5+ TASK SWITCHER - ALLOCATE SWITCHER ID
2F4B04 - INT 2F - DOS 5+ TASK SWITCHER - FREE SWITCHER ID
2F4B05 - INT 2F C - DOS 5+ TASK SWITCHER - IDENTIFY INSTANCE DATA
2FD600 - INT 2F U - VEDIT VSWAP - INSTALLATION CHECK
2FD601 - INT 2F U - VEDIT VSWAP - ???
2FD602 - INT 2F U - VEDIT VSWAP - EXEC PROGRAM WITH SWAP
2FF1 - INT 2F U - RTKernel v4.0 - INSTALLATION CHECK
33FFE6 - INT 33 - Switch-It v3.23 - GET ??? PROGRAM
33FFE7 - INT 33 - Switch-It v3.23 - GET ???
33FFE8 - INT 33 - Switch-It v3.23 - ???
33FFE9 - INT 33 - Switch-It v3.23 - SET ???
33FFEA - INT 33 - Switch-It v3.23 - SET ???
33FFEB - INT 33 - Switch-It v3.23 - SET ??? FLAG
33FFEC - INT 33 - Switch-It v3.23 - SET ???
33FFED - INT 33 - Switch-It v3.23 - GET ???
33FFEE - INT 33 - Switch-It v3.23 - GET ???
33FFEF - INT 33 - Switch-It v3.23 - GET ???
33FFF0 - INT 33 - Switch-It v3.23 - SET ???
33FFF1 - INT 33 - Switch-It v3.23 - GET CONFIGURATION FILE
33FFF2 - INT 33 - Switch-It v3.23 - SET ??? FLAG
33FFF3 - INT 33 - Switch-It v3.23 - GET ???
33FFF4 - INT 33 - Switch-It v3.23 - SET ???
33FFF5 - INT 33 - Switch-It v3.23 - GET ???
33FFF6 - INT 33 - Switch-It v3.23 - GET ???
33FFF7 - INT 33 - Switch-It v3.23 - GET ???
33FFF8 - INT 33 - Switch-It v3.23 - ???
33FFF9 - INT 33 - Switch-It v3.23 - NOP
33FFFA - INT 33 - Switch-It v3.23 - SET ???
33FFFB - INT 33 - Switch-It v3.23 - GET ???
33FFFC - INT 33 - Switch-It v3.23 - CLEAR ???
33FFFD - INT 33 - Switch-It v3.23 - GET MEMORY ADDRESSES???
33FFFE - INT 33 - Switch-It v3.23 - INSTALLATION CHECK
33FFFF - INT 33 - Switch-It v3.23 - ???
6201 - INT 62 - Cswitch - GIVE UP REST OF TIME-SLICE
6202 - INT 62 - Cswitch - WAIT FOR SEMAPHORE
6203 - INT 62 - Cswitch - CHECK SEMAPHORE
6204 - INT 62 - Cswitch - TRIGGER SEMAPHORE
6205 - INT 62 - Cswitch - SLEEP
6206 - INT 62 - Cswitch - SUSPEND
6207 - INT 62 - Cswitch - SPAWN
6208 - INT 62 - Cswitch - WAKE UP TASK
6209 - INT 62 - Cswitch - SET PRIORITY
620A - INT 62 - Cswitch - TEST MESSAGE QUEUE
620B - INT 62 - Cswitch - SEND MESSAGE
620C - INT 62 - Cswitch - READ MESSAGE
620D - INT 62 - Cswitch - DON'T ALLOW TASK TO BE SWAPPED OUT
620E - INT 62 - Cswitch - ALLOW TASK TO BE SWAPPED OUT
620F - INT 62 - Cswitch - LOAD AND RUN PROGRAM FROM DISK
6210 - INT 62 - Cswitch - TERMINATE SPAWNED PROGRAM
6211 - INT 62 - Cswitch - GET TCB INFORMATION
6212 - INT 62 - Cswitch - GET TCB ADDRESS
6213 - INT 62 - Cswitch - CHECK STATUS OF PREVIOUS LOAD_TASK
7F00 - INT 7F - MultiLink Advanced v1.0+ - ENQUEUE SYSTEM RESOURCE
7F01 - INT 7F - MultiLink Advanced v1.0+ - DEQUEUE SYSTEM RESOURCE
7F02 - INT 7F - MultiLink Advanced v1.0+ - RELEASE CPU
7F09 - INT 7F - MultiLink Advanced v1.0+ - SET TASK PRIORITY
7F0A - INT 7F - MultiLink Advanced v1.0+ - SET KEYBOARD TEST STATUS
F4 - INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK
F5 - INT F5 - DoubleDOS - ???
F6 - INT F6 - DoubleDOS - ???
F7 - INT F7 - DoubleDOS - ???
F8 - INT F8 - DoubleDOS - ???
F9 - INT F9 - DoubleDOS - ???
FA - INT FA - DoubleDOS - TURN OFF TIMESHARING
FB - INT FB - DoubleDOS - TURN ON TIMESHARING
FC - INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS
FD - INT FD - DoubleDOS - ???
FE - INT FE - DoubleDOS - GIVE UP TIME
INT 11 - BACK&FORTH (before v1.62) API AX = FFFEh CX = FFFEh BX = function 00h installation check Return: AX = installation state 0001h BNFHIGH and BNFLOW both loaded 0003h only BNFHIGH loaded else neither loaded 01h ??? Return: DX:AX -> ??? 02h ??? 03h ??? 04h ??? 05h ??? switches current PSP segment and stack if BNFLOW has not yet announced itself installed 06h ??? Return: AX = ??? SeeAlso: INT 12/AX=FFFEh Index: installation check;BACK&FORTHTop
INT 12 - Back&Forth v1.62+ - API AX = FFFEh CX = FFFEh BX = function 00h installation check Return: AX = 0001h installed else not loaded 01h (reserved) 02h build program ID list (shareware Back&Forth) ES:DI -> buffer of at least 100 bytes, to be filled with words Return: AX = number of programs defined ES:DI buffer filled with AX words 02h get memory statistics (Back&Forth Professional) Return: AX = available swap memory, KBytes BX = maximum task size, KBytes DX = fixed overhead per task, excluding video/macro storage 03h switch to specified task (task need not be open yet) DX = two-letter program ID Return: AX = status 0000h if task undefined 0001h task switch will occur when safe 04h (reserved) 05h (reserved) 06h get version (documented only for Back&Forth Professional) Return: AX = version * 100 (v1.71 = 00ABh) 07h spawn program (Back&Forth Professional only???) ES:DI -> BF_SPAWN record (see #00232) Return: AX = status 0000h if no task handles free 0001h spawn will occur when safe 08h get open tasks (documented only for Back&Forth Professional) ES:DI -> task info buffer (see #00231,#00233) Return: AX = number of open tasks (max 20) Note: the supplied buffer must be large enough to hold 21 task entries 09h (reserved) ---Back&Forth Professional--- 0Ah get active clipboard filename Return: DX:AX -> ASCIZ clipboard filename 0Bh get active task number AX = active task number (00h-13h) BX = number of tasks allocated DX = maximum number of tasks 0Ch (reserved) 0Dh (reserved) 0Eh (reserved) 0Fh stuff string into keyboard buffer ES:DI -> ASCIZ string to be stuffed Return: nothing 10h check if in graphics mode Return: AX = state 0000h color text mode 0004h mono text mode FFFFh graphics mode 11h get Back&Forth Professional user number Return: AX = user number (0000h-00FFh) 12h switch task by task number DX = task number Return: AX = status 0000h attempted to switch to active task 0001h task switch will occur when safe FFFFh invalid task number 13h delete (kill) task DX = task number Return: AX = status 0000h attempted to delete the active task 0001h successfully deleted FFFFh invalid task number Note: the active task number will change if the deleted task was lower in the task list than the active task 14h get next available task handle Return: AX = next available task handle FFFFh if task table is full Program: Back & Forth is a task switcher by Progressive Solutions, Inc. SeeAlso: INT 11/AX=FFFEh Index: installation check;BACK&FORTH Format of Back&Forth task info buffer: Offset Size Description (Table 00231) 00h 21 BYTEs ASCIZ task name 15h BYTE hotkey shift state (as for INT 16/AH=02h) 16h WORD hotkey scan code (see also #00006) 18h WORD program ID Index: hotkeys;Back&Forth SeeAlso: #00232,#00233 Format of Back&Forth Professional BF_SPAWN record: Offset Size Description (Table 00232) 00h 21 BYTEs task description 15h BYTE flag: disable hotkeys 16h WORD environment size in bytes 18h BYTE hotkey shift flags 19h WORD hotkey scancode 1Bh WORD maximum number of EMS pages 1Dh WORD required memory in KBytes 1Fh 3 BYTEs DESQview-style two-letter program ID 22h 13 BYTEs base name of program to be run (no path or extension) 2Fh 66 BYTEs directory from which to start program 71h 66 BYTEs initial current directory for program SeeAlso: #00231,#00233 Format of Back&Forth Professional BF_TASK record: Offset Size Description (Table 00233) 00h DWORD Unix-style task start time (seconds since 1970/1/1) 04h 21 BYTEs task description 19h DWORD elapsed time in task (seconds) 1Dh WORD task ID 1Fh BYTE task hotkey keyboard flags 20h WORD task hotkey scan code (see also #00006) 22h DWORD time task was suspended/exited 26h WORD task handle SeeAlso: #00231,#00232Top
INT 15 - MultiDOS Plus - GIVE UP TIME SLICE AH = 00h Return: nothing Note: if issued by the highest-priority task while MultiDOS is using priority-based rather than round-robin scheduling, control will be returned to the caller immediately SeeAlso: AH=03h"MultiDOS",AX=1000hTop
INT 15 - MultiDOS Plus - REQUEST RESOURCE SEMAPHORE AH = 01h AL = semaphore number (00h-3Fh) Return: AH = status 00h successful 02h invalid semaphore number Notes: if the semaphore is not owned, ownership is assigned to the calling task and the call returns immediately if the semaphore is already owned by another task, the calling task is placed on a queue for the semaphore and suspended until it can become owner of the semaphore semaphore 0 is used internally by MultiDOS to synchronize DOS access SeeAlso: AH=02h"MultiDOS",AH=10h"MultiDOS",AH=1Bh"MultiDOS"Top
INT 15 - MultiDOS Plus - RELEASE RESOURCE SEMAPHORE AH = 02h AL = semaphore number (00h-3Fh) Return: AH = status 00h successful 01h not semaphore owner 02h invalid semaphore number Notes: if any tasks are waiting for the semaphore, the first task on the wait queue will become the new owner and be reawakened do not use within an interrupt handler SeeAlso: AH=01h"MultiDOS",AH=10h"MultiDOS",AH=1Ch"MultiDOS"Top
INT 15 - MultiDOS Plus - SUSPEND TASK FOR INTERVAL AH = 03h DX = number of time slices to remain suspended Return: after specified interval has elapsed Note: when priority-based scheduling is in use, high-priority tasks should use this function to yield the processor SeeAlso: AH=00h"MultiDOS",AH=0Ah"MultiDOS"Top
INT 15 - MultiDOS Plus - SEND MESSAGE TO ANOTHER TASK AH = 04h AL = mailbox number (00h-3Fh) CX = message length in bytes DS:SI -> message Return: AH = status 00h successful 01h out of message memory 02h invalid mailbox number Note: the message is copied into a system buffer; the caller may immediately reuse its buffer SeeAlso: AH=05h"MultiDOS"Top
INT 15 - MultiDOS Plus - CHECK MAILBOX AH = 05h AL = mailbox number (00h-3Fh) Return: AH = status 00h successful DX = length of first message in queue, 0000h if no message 02h invalid mailbox number SeeAlso: AH=04h"MultiDOS",AH=06h"MultiDOS"Top
INT 15 - MultiDOS Plus - READ MAILBOX AH = 06h AL = mailbox number (00h-3Fh) CX = size of buffer in bytes ES:DI -> buffer for message Return: AH = status 00h successful CX = number of bytes copied DX = actual length of message 02h invalid mailbox number Note: if the caller's buffer is not large enough, the message is truncated and the remainder is lost SeeAlso: AH=04h"MultiDOS",AH=05h"MultiDOS"Top
INT 15 - MultiDOS Plus - SPAWN INTERNAL TASK (CREATE NEW THREAD) AH = 07h BX:CX = entry point of new task DX = stack size in paragraphs Return: AH = status 00h successful 01h no free task control blocks 02h no free memory for task's stack Note: execution returns immediately to calling task SeeAlso: AH=08h"MultiDOS",AH=09h"MultiDOS",AH=13h"MultiDOS"Top
INT 15 - MultiDOS Plus - TERMINATE INTERNAL TASK (KILL THREAD) AH = 08h Return: calling task terminated, so execution never returns to caller Notes: an internal task must be terminated with this function rather than a DOS termination function task's stack space is returned to parent task's memory pool SeeAlso: AH=07h"MultiDOS"Top
INT 15 - MultiDOS Plus - CHANGE TASK'S PRIORITY AH = 09h AL = new priority Return: nothing Note: the priority has different meanings depending on whether priority- based or round-robin scheduling is used SeeAlso: AH=07h"MultiDOS"Top
INT 15 - MultiDOS Plus - CHANGE TIME SLICE INTERVAL AH = 0Ah AL = new interval 00h = 55.0 ms (default) 80h = 27.5 ms 40h = 13.75 ms 20h = 6.88 ms 10h = 3.44 ms 08h = 1.72 ms SeeAlso: AH=03h"MultiDOS"Top
INT 15 - MultiDOS Plus - FORCE DISPLAY OUTPUT TO PHYSICAL SCREEN MEMORY AH = 0Bh Return: nothing Notes: sets calling task's screen pointer to actual screen memory; the pointer may be restored with AH=0Ch caller's video mode must be same as foreground task's video mode any text written while in the background will be saved to the foreground task's virtual screen when it switches to the background useful if a background task wants to display a message on the foreground screen SeeAlso: AH=0Ch"MultiDOS"Top
INT 15 - MultiDOS Plus - RESTORE OLD VIDEO DISPLAY MEMORY AH = 0Ch Return: nothing Note: restores task's screen pointer saved by AH=0Bh; must not be called unless AH=0Bh has been called first SeeAlso: AH=0Bh"MultiDOS"Top
INT 15 - MultiDOS Plus - DISABLE MULTITASKING AH = 0Dh Return: nothing Note: calling task receives all time slices until AH=0Eh is called; this allows time-critical events or nonreentrant code to be processed SeeAlso: AH=0Eh"MultiDOS",AH=10h"MultiDOS",AX=101Bh,AH=20h"MultiDOS"Top
INT 15 - MultiDOS Plus - ENABLE MULTITASKING AH = 0Eh Return: nothing SeeAlso: AH=0Dh"MultiDOS",AX=101Ch,AH=20h"MultiDOS"Top
INT 15 - MultiDOS Plus - EXECUTE A MULTIDOS PLUS COMMAND AH = 0Fh DS:BX -> ASCIZ command Return: after command has been processed Notes: specified string is executed as if it had been typed at the MultiDOS command prompt the task is placed on a queue which MultiDOS examines periodically and is suspended until MultiDOS has processed the command all lowercase characters up to the first blank are converted to upper case within the given bufferTop
INT 15 - MultiDOS Plus - TEST RESOURCE SEMAPHORE AH = 10h AL = semaphore number (00h-3Fh) Return: AH = status 00h semaphore not in use 01h semaphore owned by another task 02h invalid semaphore number 03h semaphore owned by caller SeeAlso: AH=02h"MultiDOS",AH=0Dh"MultiDOS",AH=1Dh"MultiDOS"Top
INT 15 - VMiX - "sys_system" - EXECUTE SHELL SYSTEM COMMANDS AH = 11h STACK: DWORD pointer to ASCIZ string containing a VMiX shell request (max len = 127) Return: AX = status (SYS_OK or SYS_ERROR) SeeAlso: AH=0Ch"VMiX"Top
INT 15 - MultiDOS Plus - TURN OFF AltZ TOGGLE AH = 11h Note: disables the Alt-Z MultiDOS command/program-selection hotkey SeeAlso: AH=12h"MultiDOS" Index: hotkeys;MultiDOS PlusTop
INT 15 - VMiX - "sys_sleep" - PUT PROCESS TO SLEEP AH = 12h STACK: WORD process ID Return: AX = status (SYS_OK or SYS_ERROR) SeeAlso: AH=03h"MultiDOS",AX=101Dh,AH=13h"VMiX"Top
INT 15 - MultiDOS Plus - TURN ON AltZ TOGGLE AH = 12h Note: enables the Alt-Z MultiDOS command/program-selection hotkey SeeAlso: AH=11h"MultiDOS" Index: hotkeys;MultiDOS PlusTop
INT 15 - VMiX - "sys_wake" - WAKE SLEEPING PROCESS AH = 13h STACK: WORD process ID Return: AX = status (SYS_OK or SYS_ERROR) SeeAlso: AH=12h"VMiX"Top
INT 15 - MultiDOS Plus - GET TASK CONTROL BLOCK AH = 13h Return: BX:AX -> task control block (see #00456) SeeAlso: AH=15h"MultiDOS" Format of MultiDOS Plus v4.0 task control block: Offset Size Description (Table 00456) 00h DWORD pointer to next TCB 04h 8 BYTEs ASCIZ task name 0Ch 2 BYTEs ??? 0Eh WORD task PSP segment 10h WORD abort/suspend flags 12h WORD current screen segment (see AH=0Bh,AH=0Ch) 14h WORD priority level (0000h-FFFEh) 16h WORD time slice counter 18h 2 BYTEs ??? 1Ah WORD suspend timer value 1Ch WORD stack segment 1Eh WORD stack pointer 20h WORD display type 22h WORD display memory 24h 2 BYTEs ??? 26h WORD termination count 28h WORD equipment flag for BIO10 driver 2Ah BYTE background CRT mode 2Bh WORD screen width in columns 2Dh WORD screen size in bytes 2Fh WORD segment of physical screen memory 31h 16 BYTEs eight cursor positions 41h WORD current cursor shape 43h BYTE active display page 44h WORD CRT controller I/O port base 46h 2 BYTEs ??? 48h WORD foreground task flag 4Ah 6 BYTEs ??? 50h WORD saved video segment (see AH=0Bh,AH=0Ch) 52h DWORD old INT 22 56h DWORD old INT 23 5Ah DWORD old INT 24 5Eh WORD top of memory for task 60h 4 BYTEs ??? 64h WORD DTA segment (see INT 21/AH=1Ah) 66h WORD DTA offset 68h 4 BYTEs ??? 6Ch BYTE current ANSI.SYS attribute 6Dh BYTE current ANSI.SYS column 6Eh BYTE current ANSI.SYS row 6Fh BYTE current ANSI.SYS display state 70h BYTE maximum ANSI.SYS columns 71h BYTE current ANSI.SYS page 72h WORD saved ANSI.SYS cursor position 74h BYTE ANSI.SYS parameter buffer index 75h BYTE current ANSI.SYS screen mode 76h BYTE ANSI.SYS wrap flag 77h 6 BYTEs ANSI.SYS parameter buffer 7Dh BYTE ANSI.SYS keyboard DSR state 7Eh 7 BYTEs ANSI.SYS keyboard DSR buffer 85h 3 BYTEs ??? 88h 16 BYTEs request header for DOS driver calls 98h 14 BYTEs ??? A6h WORD segment of EMS map if EMS task A8h WORD flag: task makes EMS calls AAh WORD EMS handle for task ACh WORD keyboard shift state AEh 12 BYTEs ??? BAh WORD TCB of parent if child task BCh WORD termination code BEh WORD COM port number C0h 4 BYTEs ??? C4h WORD current IRQ number C6h 2 BYTEs ??? C8h WORD miscellaneous flag word CAh 2 BYTEs ??? CCh DWORD old INT 10 D0h WORD EMS alternate map set number D2h 414 BYTEs DOS current disk and directory context (optional)Top
INT 15 - VMiX - "sys_clrwindow" - CLEAR WINDOW AH = 14h STACK: WORD top left corner of window (high byte = row, low = col) WORD bottom right corner of window (high = row, low = col) Return: AX = status (SYS_OK) Note: clears window to color set with "sys_setcolors" (AH=18h) SeeAlso: AH=15h"VMiX",AH=16h"VMiX",AH=18h"VMiX",AH=1Fh"VMiX"Top
INT 15 - MultiDOS Plus - CHECK IF MultiDOS FOREGROUND OR BACKGROUND AH = 14h Return: AX = current state 0000h MultiDOS Plus command prompt is background task 0001h command prompt is foreground task SeeAlso: AH=0Bh"MultiDOS"Top
INT 15 - VMiX - "sys_setbwindow" - SET BANNER WINDOW MESSAGE AH = 15h STACK: DWORD pointer to ASCIZ banner message for top of screen Return: AX = status (SYS_OK) SeeAlso: AH=14h"VMiX",AH=16h"VMiX"Top
INT 15 - MultiDOS Plus - GET SYSTEM BLOCK AH = 15h Return: BX:AX -> system block (see #00457) SeeAlso: AH=13h"MultiDOS" Format of MultiDOS Plus 4.0 system block: Offset Size Description (Table 00457) 00h WORD segment of system control block 02h WORD redirection flag set by /NOREDIRECT 04h WORD no-INT 10 flag set by /NO10 06h DWORD old INT 10 0Ah DWORD new INT 10 0Eh DWORD pointer to WORD with current TCB offset (see #00456) 12h DWORD pointer to WORD with idle task TCB offset 16h DWORD pointer to WORD with foreground TCB offset (see #00456) 1Ah DWORD pointer to WORD with MultiDOS TCB offset (see #00456) 1Eh WORD Task Control Block size 20h WORD number of TCBs 22h WORD flag: EMS present 24h WORD EMS page frame base segment 26h WORD 16K pages in EMS page frame 28h WORD base segment for conventional memory tasks 2Ah WORD conventional memory size in paragraphs 2Ch DWORD pointer to list of queue pointersTop
INT 15 - VMiX - "sys_setwindow" - SET ROOT WINDOW SIZE AND HOME CURSOR AH = 16h STACK: DWORD pointer to I/O Request Packet WORD top left corner of window (high byte = row, low = col) WORD bottom right corner of window (high = row, low = col) Return: AX = status (SYS_OK or SYS_ERROR) SeeAlso: AH=14h"VMiX",AH=17h"VMiX"Top
INT 15 - MultiDOS Plus - INITIALIZATION AH = 16h Note: used internally during initialization; any other calls will cause unpredictable resultsTop
INT 15 - VMiX - "sys_getcolors" - GET CONSOLE WINDOW COLORS AH = 17h Return: AH = foreground color AL = background color SeeAlso: AH=16h"VMiX",AH=18h"VMiX"Top
INT 15 - MultiDOS Plus - MAP IRQ AH = 17h AL = IRQ to map (01h-0Fh) BX = offset of task control block (see #00456) to associate with IRQ Return: AX = status 0000h successful other invalid IRQ Note: the EMS map of the specified TCB is associated with the given interrupt SeeAlso: AH=18h"MultiDOS",AH=19h"MultiDOS"Top
INT 15 - VMiX - "sys_setcolors" - SET CONSOLE COLORS AH = 18h STACK: WORD new background/foreground colors bits 3-0: foreground bits 7-4: background bits 15-8: unused Return: AX = color SeeAlso: AH=14h"VMiX",AH=17h"VMiX",AH=19h"VMiX"Top
INT 15 - MultiDOS Plus - UNMAP IRQ AH = 18h AL = IRQ to unmap (01h-0Fh) Return: AX = status 0000h successful 0001h invalid IRQ Note: results are unpredictable if the IRQ has not been mapped SeeAlso: AH=17h"MultiDOS",AH=19h"MultiDOS"Top
INT 15 - VMiX v2+ - "sys_setconwn" - SET WINDOW COLORS AH = 19h STACK: WORD new background/foreground colors bits 3-0: foreground bits 7-4: background bits 15-8: unused Return: AX = color SeeAlso: AH=18h"VMiX"Top
INT 15 - MultiDOS Plus - UNMAP ALL IRQs AH = 19h Return: AX destroyed Note: for MultiDOS internal use only SeeAlso: AH=17h"MultiDOS",AH=18h"MultiDOS"Top
INT 15 - VMiX v2+ - "sys_sint" - INVOKE SOFTWARE INTERRUPT AH = 1Ah STACK: WORD interrupt number DWORD pointer to register structure Return: AX = returned flagsTop
INT 15 - MultiDOS Plus - MAP SEMAPHORE NAME TO NUMBER AH = 1Ah DS:SI -> 8-byte name Return: AL = status 00h successful AH = semaphore number (20h-3Fh) 04h out of string space Notes: all eight bytes of the name are significant if the name does not already exist, it is added to the name table and associated with a free semaphore number names cannot be destroyed SeeAlso: AH=1Bh"MultiDOS",AH=1Ch"MultiDOS",AH=1Dh"MultiDOS"Top
INT 15 - VMiX v2+ - "sys_blkmov" - MOVE MEMORY BLOCK AH = 1Bh STACK: DWORD source address DWORD destination address WORD number of words to move Return: nothingTop
INT 15 - MultiDOS Plus - REQUEST RESOURCE SEMAPHORE BY NAME AH = 1Bh DS:SI -> 8-byte name Return: AH = status 00h successful 02h invalid semaphore number 03h caller already owns semaphore 04h out of string space Notes: (see AH=01h"MultiDOS") equivalent to AH=1Ah followed by AH=01h SeeAlso: AH=01h"MultiDOS",AH=1Ah"MultiDOS",AH=1Ch"MultiDOS",AH=1Dh"MultiDOS"Top
INT 15 - VMiX v2+ - "sys_bitblt" - PUT GRAPHICAL OBJECT AT CURSOR POSITION AH = 1Ch STACK: WORD AND/OR pixel with background (00h = OR, 01h = AND) DWORD pointer to object bitmap WORD object width in pixels WORD object height in pixels Return: nothing SeeAlso: AH=1Dh"VMiX"Top
INT 15 - MultiDOS Plus - RELEASE RESOURCE SEMAPHORE BY NAME AH = 1Ch DS:SI -> 8-byte name Return: AH = status 00h successful 01h not semaphore owner 02h invalid semaphore number 04h out of string space Notes: (see AH=02h"MultiDOS") equivalent to AH=1Ah followed by AH=02h SeeAlso: AH=02h"MultiDOS",AH=1Ah"MultiDOS",AH=1Bh"MultiDOS",AH=1Dh"MultiDOS"Top
INT 15 - VMiX v2+ - "sys_getfont" - GET CURRENT CONSOLE GRAPHICS FONT AH = 1Dh Return: AX = current font number (00h-03h) SeeAlso: AH=1Ch"VMiX",AH=1Eh"VMiX"Top
INT 15 - MultiDOS Plus - TEST RESOURCE SEMAPHORE BY NAME AH = 1Dh DS:SI -> 8-byte name Return: AH = status 00h semaphore not in use 01h semaphore owned by another task 02h invalid semaphore number 03h caller owns semaphore 04h out of string space Notes: (see AH=10h"MultiDOS") equivalent to AH=1Ah followed by AH=10h SeeAlso: AH=10h"MultiDOS",AH=1Ah"MultiDOS",AH=1Bh"MultiDOS",AH=1Ch"MultiDOS"Top
INT 15 - VMiX v2+ - "sys_setfont" - SET CONSOLE GRAPHICS FONT AH = 1Eh STACK: WORD new font number (00h-03h) Return: AX = current font number (00h-03h) SeeAlso: AH=1Dh"VMiX"Top
INT 15 - MultiDOS Plus - CLEAR EVENT COUNTER AX = 1E00h DX = event/trigger number (00h-3Fh) Return: AH = status 00h successful SeeAlso: AX=1E01h,AX=1E02hTop
INT 15 - MultiDOS Plus - TRIGGER EVENT AX = 1E01h DX = event/trigger number (00h-3Fh) Return: AH = status 00h successful 01h invalid event/trigger number Notes: schedules any task waiting for event; if no task is waiting, the event counter is incremented (and will roll over if it was 65535) may be invoked by interrupt handler SeeAlso: AX=1E00h,AX=1E02hTop
INT 15 - MultiDOS Plus - WAIT FOR EVENT AX = 1E02h DX = event/trigger number (00h-3Fh) Return: AH = status 00h successful 01h invalid event/trigger number Note: if the event counter is zero, the task is suspended until the event is triggered with AX=1E01h; else, the counter is decremented and the call returns immediately SeeAlso: AX=1E00h,AX=1E01hTop
INT 15 - MultiDOS Plus 4.01 - SET CONTEXT-SWITCH FUNCTIONS AX = 1E08h DX:BX -> context save handler (see #00458) DX:CX -> context restore handler (see #00458) Return: nothing Note: handlers may be removed by setting addresses to 0000h:0000h (Table 00458) Values MultiDOS Plus context-switch handlers are called with: ES:BX -> task's TCB Return: all registers preservedTop
INT 15 - VMiX v2.???+ - "sys_scrollwin" - SCROLL WINDOW AH = 1Fh STACK: WORD top left corner of window (high byte = row, low = col) WORD bottom right corner of window Return: AX = status (SYS_OK) SeeAlso: AH=14h"VMiX",AH=18h"VMiX"Top
INT 15 - MultiDOS Plus v4.01 - GET MEMORY PARAMETERS AH = 1Fh Return: BX = first segment of conventional memory DX = first segment of EMS swap frame into which MultiDOS will load programsTop
INT 15 - MultiDOS Plus v4.01 - CHECK IF MULTITASKING ENABLED AH = 20h Return: AX = current state 0000h multitasking enabled other TCB of task that disabled multitasking SeeAlso: AH=0Dh"MultiDOS",AH=13h"MultiDOS"Top
INT 15 - Object Kernel for DOS - INSTALLATION CHECK AX = 3000h Return: AX:BX = 4F42h:4A21h ('OBJ!') if installed CX = resident segment Program: the Object Kernel is a program by M.W. Pieters which is currently under development Note: Central Point's CPBACKUP v9 calls INT 15/AX=3000h at startup, but it may be checking for a different program's presence SeeAlso: AX=3001h,AX=3008hTop
INT 15 - Object Kernel for DOS - GET STATUS BLOCK AX = 3001h Return: AX = FFFFh ES:DI -> status block SeeAlso: AX=3000h,AX=3008hTop
INT 15 - Object Kernel for DOS - KILL PROCESS AX = 3002h (not yet implemented) SeeAlso: AX=3000hTop
INT 15 - Object Kernel for DOS - STOP PROCESS AX = 3003h (not yet implemented) SeeAlso: AX=3000hTop
INT 15 - Object Kernel for DOS - START PROCESS AX = 3004h (not yet implemented) SeeAlso: AX=3000hTop
INT 15 - Object Kernel for DOS - RESTART PROCESS AX = 3005h (not yet implemented) SeeAlso: AX=3000hTop
INT 15 - Object Kernel for DOS - EXECUTE PROCESS AX = 3006h (not yet implemented) SeeAlso: AX=3000hTop
INT 15 - Object Kernel for DOS - LIST PROCESSES AX = 3007h (not yet implemented) SeeAlso: AX=3000hTop
INT 15 - Object Kernel for DOS - SWITCH ObjectKernel ON/OFF AX = 3008h BH = new state (00h disabled, 01h enabled) Return: AX = FFFFh SeeAlso: AX=3000h,AX=3009hTop
INT 15 - Object Kernel for DOS - RESERVED FOR FUTURE USE AX = 3009h to 30FFh SeeAlso: AX=3000h Program: the Object Kernel is a program by M.W. Pieters which is currently under developmentTop
INT 15 - VMIX v2.???+ - "sys_vm_page" - SET NEW VIRTUAL PAGE TABLE AH = 50h BX = segment of page directory table CX = page number of page table SeeAlso: AH=10h"VMiX",AH=51h"VMiX",AH=52h"VMiX"Top
INT 15 - VMiX v2.???+ - "sys_vm_func" - EXECUTE FUNCTION IN PROTECTED MODE AH = 51h STACK: DWORD selector:offset of function Return: registers as returned by function Note: executes function with privilege level 0 (highest privilege) SeeAlso: AH=10h"VMiX",AH=52h"VMiX"Top
INT 15 - VMiX v2.???+ - "sys_vm_init" - INITIALIZE PROTECTED-MODE ENVIRONMENT AH = 52h SeeAlso: AH=50h"VMiX",AH=51h"VMiX"Top
INT 15 C - Omniview Multitasker - INSTALLATION NOTIFICATION AX = 5400h ES:BX -> device information tables DI:DX -> dispatcher entry point Note: called by OmniView to notify programs loaded before OmniView of state changes inside OmniView SeeAlso: AX=5407h,INT 2F/AX=DE00hTop
INT 15 C - Omniview Multitasker - PROCESS CREATION AX = 5401h ES:BX = process handle Note: called by OmniView to notify programs loaded before OmniView of state changes inside OmniView SeeAlso: AX=5402h,INT 2F/AX=DE04hTop
INT 15 C - Omniview Multitasker - PROCESS DESTRUCTION AX = 5402h ES:DX = process handle Note: called by OmniView to notify programs loaded before OmniView of state changes inside OmniView SeeAlso: AX=5401h,INT 2F/AX=DE05hTop
INT 15 C - Omniview Multitasker - SAVE AX = 5403h ES:DX = process swapping out Note: called by OmniView to notify programs loaded before OmniView of state changes inside OmniView SeeAlso: AX=5404h,INT 2F/AX=DE08hTop
INT 15 C - Omniview Multitasker - RESTORE AX = 5404h ES:DX = process swapping in Note: called by OmniView to notify programs loaded before OmniView of state changes inside OmniView SeeAlso: AX=5403h,INT 2F/AX=DE09hTop
INT 15 C - Omniview Multitasker - SWITCHING TO BACKGROUND AX = 5405h ES:DX = process swapping in Note: called by OmniView to notify programs loaded before OmniView of state changes inside OmniView SeeAlso: AX=5406hTop
INT 15 C - Omniview Multitasker - SWITCHING TO FOREGROUND AX = 5406h ES:DX = process swapping in Note: called by OmniView to notify programs loaded before OmniView of state changes inside OmniView SeeAlso: AX=5405hTop
INT 15 C - Omniview Multitasker - EXIT NOTIFICATION AX = 5407h Note: called by OmniView to notify programs loaded before OmniView of state changes inside OmniView SeeAlso: AX=5400h,INT 2F/AX=DE03hTop
INT 16 U - PC Tools v8+ CPTASK - INSTALLATION CHECK AX = FF80h BX = 0000h CX = 0000h DX = 0000h Return: CX = 5555h if installed Program: CPTASK is a task switcher by Central Point SoftwareTop
INT 16 U - PC Tools v8+ CPTASK - GET ??? AX = FF80h BX = 0001h ??? Return: DX:SI -> task list??? (ten entries of 70h bytes in v9.0) BX = ??? (PSP segment of resident code???)Top
INT 16 U - PC Tools v8+ CPTASK - GET ??? AX = FF80h BX = 0002h Return: DX:SI -> ???Top
INT 16 U - PC Tools v8+ CPTASK - GET ??? FLAGS AX = FF80h BX = 0003h Return: AX = flags (see #00617) SeeAlso: AX=FF80h/BX=0004h,AX=FF80h/BX=0006h Bitfields for CPTASK flags: Bit(s) Description (Table 00617) 10 ??? 13 ??? 14 ??? 15 ???Top
INT 16 U - PC Tools v8+ CPTASK - SET ??? AX = FF80h BX = 0004h CX = new value of ??? Return: ??? Note: this function also sets bit 14 of the flags word returned by AX=FF80h/BX=0003hTop
INT 16 U - PC Tools v8+ CPTASK - GET NUMBER OF ACTIVE TASKS??? AX = FF80h BX = 0005h Return: AX = number of active tasks???Top
INT 16 U - PC Tools v8+ CPTASK - GET AND CLEAR ??? FLAG AX = FF80h BX = 0006h Return: AX = old state (0000h clear, 0001h set) Note: the tested flag is bit 13 of the flags returned by AX=FF80h/BX=0003hTop
INT 16 U - PC Tools v8+ CPTASK - ??? AX = FF80h BX = 0007h ES:DI -> ??? ??? Return: ???Top
INT 16 U - PC Tools v8+ CPTASK - ??? AX = FF80h BX = 0008h ??? Return: ???Top
INT 16 U - PC Tools v8+ CPTASK - GET ??? AX = FF80h BX = 0009h Return: CL = ??? CH = ??? (01h or 02h)Top
INT 16 U - PC Tools v9+ CPTASK - SET ??? AX = FF80h BX = 000Ah DS:SI -> 128-byte buffer containing ???Top
INT 16 U - PC Tools v9+ CPTASK - SET ??? AX = FF80h BX = 000Bh DX = index of ??? task (1-10)Top
INT 16 U - PC Tools v9+ CPTASK - SET IDLE??? DELAY AX = FF80h BX = 000Ch CX = new delay time in minutesTop
INT 16 U - PC Tools v8+ CPTASK - UNINSTALL AX = FF80h BX = 4350h ('CP') CX = 5354h ('ST') Return: never returns; terminates all tasks and exits to program originally calling CPTASKTop
INT 16 U - PC Tools v8+ CPTASK - SET/CLEAR ??? POINTER AX = FF9Ch BL = function 00h set ??? pointer DS:SI -> ??? 01h clear pointer to 0000h:0000hTop
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 #01382,#01386,#01388) Program: 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 (Table 01382) 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 interrupts already grabbed by TAME (see #01383) 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 (see #01384) 4Bh BYTE type of task switching selected bit 0: DESQview??? bit 1: DoubleDOS??? bit 2: TopView??? bit 3: KeySwitch bit 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 ??? Bitfields for interrupts already grabbed by TAME: Bit(s) Description (Table 01383) 0 INT 10h 1 INT 14h 2 INT 15h 3 INT 16h 4 INT 17h 5 INT 21h 6 INT 28h (Table 01384) Values for multitasker type: 01h DESQview 02h DoubleDOS 03h TopView 04h OmniView 05h VM/386 Bitfields for type of task switching selected: Bit(s) Description (Table 01385) 0 DESQview 1 DoubleDOS 2 TopView 3 OmniView 4 KeySwitch 5 HLT instruction Format of TAME 2.30 data area: Offset Size Description (Table 01386) 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 interrupts already grabbed by TAME (see #01383) 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 (see #01384) 60h BYTE type of task switching selected (bit flags) (see #01385) 61h BYTE watch_DOS 62h BYTE action flags (see #01387) 63h BYTE old status 64h WORD signature DA34h Bitfields for TAME action flags: Bit(s) Description (Table 01387) 0 TAME enabled 1 /FREQ instead of /MAX (X and Y count fields are per tick) 2 /TIMEPOLL 3 /KEYPOLL 4 inhibit timer 5 enable status monitoring SeeAlso: #01386,#01388 Format of TAME 2.60 data area: Offset Size Description (Table 01388) 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 remaining until next FGONLY DESQview API call 64h WORD multitasker version ??? 66h WORD virtual screen segment 68h BYTE interrupts already grabbed by TAME (see #01383) 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 (see #01384) 6Ch BYTE type of task switching selected (bit flags) (see #01385) 6Dh BYTE watch_DOS 6Eh BYTE action flags (see #01387) 6Fh BYTE old status 70h WORD signature DA34hTop
INT 21 - PC-Mix - INSTALLATION CHECK AX = 2D01h CX = 7820h ('X ') DX = 6D69h ('MI') Return: AL = 00h if installedTop
INT 21 - CTask 2.0+ - INSTALLATION CHECK AX = 3000h BX = 1234h DS:DX -> 8-byte version string (DX < FFF0h) "CTask21",00h for v2.1-2.2 Return: AL = DOS major version AH = DOS minor version CX:BX -> Ctask global data block Program: CTask is a multitasking kernel for C written by Thomas Wagner Note: if first eight bytes of returned data block equal eight bytes passed in, CTask is residentTop
INT 21 U - Software Carousel - INSTALLATION CHECK AX = DF00h DX = 534Ch ("SL") DI = 534Ch ("SL") Return: AX = 00FFh if installed ??? Program: Software Carousel is a task switcher by SoftLogic Solutions, Inc.Top
INT 21 - Software Carousel - SWITCH TO ANOTHER TASK AX = DF01h BL = task number (00h = next task) Return: AL = status 00h Carousel not running 01h successful FFh unsucessful AH = error code (01h,02h) (see #01813) (Table 01813) Values for Software Carousel error code: 00h invalid subfunction in AL 01h invalid task number 02h tried to switch to task with no memory size 03h tried to kill program in partition with no program running 04h tried to change size of an active memory partition 05h invalid memory size 06h tried to send command to task with a pending previous commandTop
INT 21 - Software Carousel - KILL PROGRAM IN MEMORY PARTITION AX = DF02h BL = task number Return: AL = status 00h Carousel not running 01h successful FFh unsucessful AH = error code (01h,03h) (see #01813)Top
INT 21 - Software Carousel - GET PARTITION SIZE AND PROGRAM STATUS AX = DF03h BL = task number Return: AL = status 00h Carousel not running 01h successful BL = partition state (00h no program running, 01h prog running) DX = partition size in KB FFh unsucessful AH = error code (01h) (see #01813) SeeAlso: AX=DF05hTop
INT 21 - Software Carousel - GET PARTITION NAME AX = DF04h BL = task number Return: AL = status 00h Carousel not running 01h successful CX = length of name (00h if default partition name) ES:BX -> partition name (if CX nonzero) FFh unsucessful AH = error code (01h) (see #01813) SeeAlso: AX=DF06hTop
INT 21 - Software Carousel - CHANGE PARTITION SIZE AX = DF05h BL = task number DX = new size in KB Return: AL = status 00h Carousel not running 01h successful FFh unsucessful AH = error code (01h,04h,05h) (see #01813) BX = minimum size allowed CX = maximum size available SeeAlso: AX=DF03hTop
INT 21 - Software Carousel - CHANGE PARTITION NAME AX = DF06h BL = task number CX = length of new name (00h to use default, max 18h) DS:SI -> new name Return: AL = status 00h Carousel not running 01h successful FFh unsucessful AH = error code (01h) (see #01813) SeeAlso: AX=DF04hTop
INT 21 - Software Carousel - SEND COMMAND TO MEMORY SECTION AX = DF07h BL = task number CX = length of command (max 8 chars) DS:SI -> command line Return: AL = status 00h Carousel not running 01h successful FFh unsucessful AH = error code (01h,06h) (see #01813) Note: the maximum length seems too small and may be a typo for 80 charactersTop
INT 21 - Software Carousel - SELECTIVELY ENABLE/DISABLE MENU AND SWITCHING AX = DF08h BL = new state of keyboard (00h disabled, 01h enabled) Return: AL = status 00h Carousel not running 01h successful Program: Software Carousel is a task switcher by SoftLogic Solutions, Inc. Note: when the keyboard is is disabled, the user may neither access the Carousel menu nor switch to another memory sectionTop
INT 21 - Software Carousel - BOOT THE SYSTEM AX = DF09h Return: AL = status 00h Carousel not running FFh unsucessful AH = error code (01h,03h) (see #01813) Note: this function never returns if successfulTop
INT 21 - Software Carousel - GET MEMORY SIZE/PARTITION NUMBER OF CURRENT TASK AX = DF0Ah Return: AL = status 00h Carousel not running 01h successful BL = task number DX = memory size in KB FFh unsucessful AH = error code (01h,03h) (see #01813)Top
INT 21 - Software Carousel - SET TASK SWITCH CALLBACK AX = DF0Bh BH = interrupt number or 00h BL = function number to invoke on partition switch CL = function number to call when it is safe for resident programs to perform DOS calls DS:DX -> FAR function to call if BH=00h Return: AL = status 00h Carousel not running 01h successful FFh unsucessful AH = error code (01h,03h) (see #01813) Notes: the specified interrupt or FAR function is called with AH set to the appropriate one of the values specified in BL and CL, and BL set to the new task number the function specified by CL will not be called until the notification is enabled with AX=DF0Ch SeeAlso: AX=DF0ChTop
INT 21 - Software Carousel - ENABLE DOS-CALL SAFETY NOTIFICATION AX = DF0Ch Return: AL = status 00h Carousel not running 01h successful Program: Software Carousel is a task switcher by SoftLogic Solutions, Inc. SeeAlso: AX=DF0BhTop
INT 21 - DoubleDOS - MENU CONTROL AH = E0h AL = subfunction 01h exchange tasks 73h resume invisible job if suspended 74h kill other job 75h suspend invisible job Note: identical to AH=F0h SeeAlso: AH=F0h"DoubleDOS"Top
INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB AH = E1h SeeAlso: AH=E2h"DoubleDOS",AH=E3h"DoubleDOS",AH=E8h"DoubleDOS" SeeAlso: AH=F1h"DoubleDOS"Top
INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB AH = E3h AL = character Return: AL = status 00h successful 01h buffer full (128 characters) SeeAlso: AH=E1h"DoubleDOS",AH=E2h"DoubleDOS",AH=E8h"DoubleDOS" SeeAlso: AH=F3h"DoubleDOS"Top
INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS AX = E400h Return: AL = program status 00h if DoubleDOS not present 01h if running in visible DoubleDOS partition 02h if running in the invisible DoubleDOS partition SeeAlso: AH=E5h"DoubleDOS",AX=F400hTop
INT 21 - DoubleDOS - OTHER PROGRAM STATUS AH = E5h Return: AL = status 00h no program in other partition 01h program in other partition is running 02h program in other partition is suspended SeeAlso: AX=E400h"DoubleDOS",AH=F5h"DoubleDOS"Top
INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS AH = E8h AL = program for which to set flags (00h this program, 01h other) DX = keyboard control flags (see #02088) Return: DX = previous flags Notes: disabling Ctrl-PrtSc will allow the program to intercept the keystroke; disabling any of the other keystrokes disables them completely identical to AH=F8h SeeAlso: AH=E1h"DoubleDOS",AH=E2h"DoubleDOS",AH=E3h"DoubleDOS" SeeAlso: AH=F8h"DoubleDOS" Bitfields for DoubleDOS keyboard control flags: Bit(s) Description (Table 02088) 0 menu 1 exchange 2 entire keyboard enable/disable 3 Ctrl-C 4 Ctrl-PrtSc 5 Alt/Erase 6 Ctrl-Break 7 Ctrl-NumLock 8 shift-PrtSc 9-13 undefined 14 cancel key (clear keyboard buffer) 15 suspend key Note: setting a enables the corresponding key or operatin, clearing a disables itTop
INT 21 - DoubleDOS - SET TIMESHARING PRIORITY AH = E9h AL = new priority (see #02089) Return: AL = priority setting if AL=05h on entry Note: identical to AH=F9h SeeAlso: AH=EAh"DoubleDOS",AH=EBh"DoubleDOS",AH=F9h"DoubleDOS" (Table 02089) Values for DoubleDOS timesharing priority: 00h visible program gets 70%, invisible gets 30% (default) 01h visible program gets 50%, invisible gets 50% 02h visible program gets 30%, invisible gets 70% 03h Top program gets 70%, bottom program gets 30% 04h Top program gets 30%, bottom program gets 70% 05h get current priorityTop
INT 21 - DoubleDOS - TURN OFF TASK SWITCHING AH = EAh Return: task switching turned off SeeAlso: AH=E9h"DoubleDOS",AH=EBh"DoubleDOS",AH=FAh"DoubleDOS" SeeAlso: INT FA"DoubleDOS"Top
INT 21 - DoubleDOS - TURN ON TASK SWITCHING AH = EBh Return: task switching turned on SeeAlso: AH=E9h"DoubleDOS",AH=EAh"DoubleDOS",AH=FBh"DoubleDOS" SeeAlso: INT FB"DoubleDOS"Top
INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS AH = ECh Return: ES = segment of virtual screen Desc: determine the address of the virtual screen to which the program should write instead of the actual video memory, so that the multitasked programs do not interfere with each other's output Notes: screen address can change if task-switching is on! identical to AH=FCh SeeAlso: INT 10/AH=FEh,AH=FCh"DoubleDOS",INT FC"DoubleDOS"Top
INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS AH = EEh AL = number of 55ms time slices to give away Return: returns after giving away time slices SeeAlso: AH=FEh"DoubleDOS",INT FE"DoubleDOS"Top
INT 21 - DoubleDOS - MENU CONTROL AH = F0h AL = subfunction 01h exchange tasks 73h resume invisible job if suspended 74h kill other job 75h suspend invisible job Note: identical to AH=E0h SeeAlso: AH=E0h"DoubleDOS"Top
INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB AH = F1h SeeAlso: AH=E1h"DoubleDOS",AH=F2h"DoubleDOS",AH=F3h"DoubleDOS" SeeAlso: AH=F8h"DoubleDOS"Top
INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB AH = F2h AL = character Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h) 00h successful 01h buffer full (128 characters) SeeAlso: AH=E2h"DoubleDOS",AH=F1h"DoubleDOS",AH=F3h"DoubleDOS" SeeAlso: AH=F8h"DoubleDOS"Top
INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB AH = F3h AL = character Return: AL = 00h successful 01h buffer full (128 characters) SeeAlso: AH=E3h"DoubleDOS",AH=F1h"DoubleDOS",AH=F2h"DoubleDOS" SeeAlso: AH=F8h"DoubleDOS"Top
INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS AX = F400h Return: AL = program status 00h if DoubleDOS not present 01h if running in visible DoubleDOS partition 02h if running in the invisible DoubleDOS partition SeeAlso: AX=E400h,AH=F5h"DoubleDOS"Top
INT 21 - DoubleDOS - OTHER PROGRAM STATUS AH = F5h Return: AL = program status 00h no program in other partition 01h program in other partition is running 02h program in other partition is suspended SeeAlso: AH=E5h"DoubleDOS",AX=F400h"DoubleDOS"Top
INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS AH = F8h AL = program for which to set flags 00h this program 01h other program DX = keyboard control flags (see #02088 at AH=E8h"DoubleDOS") Return: DX = previous flags Notes: disabling Ctrl-PrtSc will allow the program to intercept the keystroke; disabling any of the other keystrokes disables them completely this function is identical to AH=E8h SeeAlso: AH=E8h"DoubleDOS",AH=F1h"DoubleDOS",AH=F2h"DoubleDOS" SeeAlso: AH=F3h"DoubleDOS"Top
INT 21 - DoubleDOS - SET TIMESHARING PRIORITY AH = F9h AL = priority 00h visible program gets 70%, invisible gets 30% (default) 01h visible program gets 50%, invisible gets 50% 02h visible program gets 30%, invisible gets 70% 03h Top program gets 70%, bottom program gets 30% 04h Top program gets 30%, bottom program gets 70% 05h get current priority Return: AL = priority setting Note: identical to AH=E9h SeeAlso: AH=E9h"DoubleDOS",AH=FAh"DoubleDOS",AH=FBh"DoubleDOS"Top
INT 21 - DoubleDOS - TURN OFF TASK SWITCHING AH = FAh Return: task switching turned off SeeAlso: AH=EAh"DoubleDOS",AH=F9h"DoubleDOS",AH=FBh"DoubleDOS" SeeAlso: INT FA"DoubleDOS"Top
INT 21 - DoubleDOS - TURN ON TASK SWITCHING AH = FBh Return: task switching turned on SeeAlso: AH=EBh"DoubleDOS",AH=F9h"DoubleDOS",AH=FAh"DoubleDOS" SeeAlso: INT FB"DoubleDOS"Top
INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS AH = FCh Return: ES = segment of virtual screen Desc: Determine the address of the virtual screen to which the program should write instead of the actual video memory, so that the multitasked programs do not interfere with each other's output. Notes: screen address can change if task-switching is on! identical to AH=ECh SeeAlso: AH=ECh"DoubleDOS",INT FC"DoubleDOS"Top
INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS AH = FEh AL = number of 55ms time slices to give away Return: returns after giving away time slices SeeAlso: AH=EEh"DoubleDOS",INT FE"DoubleDOS"Top
INT 2F - DR DOS 6.0 TaskMAX - INSTALLATION CHECK AX = 2700h Return: AL = status 00h not installed FFh installed Note: the TaskMAX API is also supported by Novell DOS 7 TASKMGR in both taskswitching and multitasking modesTop
INT 2F - DR DOS 6.0 TaskMAX - GET STATUS AX = 2701h Return: AX = maximum simultaneous tasks BX = index into TASK_IDS of current foreground task CX = currently-active tasks DX = version number (DL = major, DH = minor) (DR DOS 6.0 = 0001h, Novell DOS 7 = 0002h) ES:SI -> TASK_IDS ES:DI -> name table (array of 8-byte names, NUL-terminated if <8 chars) Notes: do not attempt to create a new task if CX == AX the task's index is its position on the task menu, while its ID is the position within the internal task name table SeeAlso: AX=2714h,AX=2716hTop
INT 2F - DR DOS 6.0 TaskMAX - GET PER-TASK EMS LIMIT AX = 2702h Return: DX = maximum pages INT 67/AH=42h will report available Note: TaskMAX does not limit EMS allocations other than by limiting the amount which is reported as being available at a given time SeeAlso: AX=2703h,INT 67/AH=42hTop
INT 2F - DR DOS 6.0 TaskMAX - SET PER-TASK EMS LIMIT AX = 2703h DX = maximum pages INT 67/AH=42h should report available Return: DX = new maximum for reporting Note: the TaskMAX API is also supported by Novell DOS 7 TASKMGR in both taskswitching and multitasking modes SeeAlso: AX=2702h,INT 67/AH=42hTop
INT 2F - DR DOS 6.0 TaskMAX - REGISTER/UNREGISTER TASK MANAGER AX = 2704h DL = subfunction 00h unregister task manager 01h register task manager Return: DL = status 00h registered 01h unregistered Notes: a task manager replaces TaskMAX's menu system with its own user interface; while one is registered, the TaskMAX hotkeys and Ctrl-Alt-Del invoke the manager rather than the built-in menu system unregister the task manager before terminating it SeeAlso: AX=2705h Index: hotkeys;TaskMAXTop
INT 2F - DR DOS 6.0 TaskMAX - ENABLE/DISABLE DIRECT SWITCHING AX = 2705h DL = subfunction 00h disable keystrokes for switching to next/prev/specified task 01h enable Return: nothing Note: should only be called by a registered task manager (see AX=2704h) SeeAlso: AX=2704h,AX=2706hTop
INT 2F - DR DOS 6.0 TaskMAX - SWITCH TO SPECIFIED TASK AX = 2706h DX = task index (see AX=2701h) of task to be activated Return: DX = task index of previously-active task Note: the TaskMAX API is also supported by Novell DOS 7 TASKMGR in both taskswitching and multitasking modes SeeAlso: AX=2705h,AX=2707h,AX=2715hTop
INT 2F - DR DOS 6.0 TaskMAX - CREATE NEW TASK AX = 2707h DS:DX -> ASCIZ pathname of executable ES:BX -> parameter block (see #02738) CX = number of ticks before automatic return to task manager (0000h = run until termination or explicitly switched) Return: DX = new task's task index (FFFFh if task terminated) SeeAlso: AX=2706h,AX=2708h Format of TaskMAX parameter block: Offset Size Description (Table 02738) 00h WORD reserved, should be 0000h 02h DWORD pointer to command tail to be copied into child's PSP 06h DWORD pointer to first FCB to be copied into child's PSP 0Ah DWORD pointer to second FCB to be copied into child's PSPTop
INT 2F - DR DOS 6.0 TaskMAX - DELETE TASK AX = 2708h DX = task index Return: DX = FFFFh (task deleted) Notes: this call should only be used for abnormal task termination, after first checking for open files with AX=270Ch; should not be used with programs that allocate EMS or XMS memory switches to specified task first SeeAlso: AX=2707hTop
INT 2F - DR DOS 6.0 TaskMAX - NAME TASK AX = 2709h DX = task index DS:SI -> 8-byte name (8 NULs = remove name) Return: AL = task flags 00h ID unused or task terminated 01h ID in use, task name table entry valid 81h ID in use, task name fixed BX = task ID ES:DI -> name in task name table (see AX=2701h) Note: the task retains the given name until it terminates or the name is removed by specifying a name of 8 NULs. SeeAlso: AX=2701h,AX=2707hTop
INT 2F - DR DOS 6.0 TaskMAX - CONVERT TASK INDEX TO TASK ID AX = 270Ah DX = task index Return: DX = task ID (FFFFh if index invalid) Note: task IDs stay constant, while indexes can change when other tasks are deleted SeeAlso: AX=2701h,AX=270BhTop
INT 2F - DR DOS 6.0 TaskMAX - CONVERT TASK ID TO TASK INDEX AX = 270Bh DX = task ID Return: DX = task index (FFFFh if task not active) Note: the TaskMAX API is also supported by Novell DOS 7 TASKMGR in both taskswitching and multitasking modes SeeAlso: AX=270AhTop
INT 2F - DR DOS 6.0 TaskMAX - CHECK OPEN FILES AX = 270Ch DX = task index Return: AX = number of files currently open for specified task SeeAlso: AX=2708hTop
INT 2F - DR DOS 6.0 TaskMAX - CHECK IF TASK RUNNING PRIMARY COMMAND INTERPRETER AX = 270Dh DX = task index Return: DX = status 0000h if primary command interpreter (COMMAND.COM, etc.) running 0001h if not in root shell for task Note: TaskMAX will return 0001h if the specified task has spawned another command interpreter with AX=2707h SeeAlso: AX=2707h,AX=270ChTop
INT 2F - DR DOS 6.0 TaskMAX - GET/SET TEXT PASTE LEAD-IN AX = 270Eh CX = length of string (max 15 keystrokes, 0000h to get current string) DS:SI -> pasting lead-in string (character/scan-code pairs) Return: ES:DI -> current lead-in string Note: the specified sequence of keystrokes is sent to the application before every line of a text-mode spreadsheet paste SeeAlso: AX=270Fh,AX=2710h,AX=2713hTop
INT 2F - DR DOS 6.0 TaskMAX - GET/SET NUMERIC PASTE LEAD-IN AX = 270Fh CX = length of string (max 15 keystrokes, 0000h to get current string) DS:SI -> pasting lead-in string (character/scan-code pairs) Return: ES:DI -> current lead-in string Note: the specified sequence of keystrokes is sent to the application before every number in a numeric-mode spreadsheet paste SeeAlso: AX=270Eh,AX=2710h,AX=2711h,AX=2713hTop
INT 2F - DR DOS 6.0 TaskMAX - GET/SET PASTE LINE TERMINATOR STRING AX = 2710h CX = length of string (max 15 keystrokes, 0000h to get current string) DS:SI -> pasting terminator string (character/scan-code pairs) Return: ES:DI -> current terminator string Note: the specified sequence of keystrokes is sent to the application after every line of a spreadsheet paste operation SeeAlso: AX=270Eh,AX=270Fh,AX=2713hTop
INT 2F - DR DOS 6.0 TaskMAX - GET/SET NUMERIC PASTE DECIMAL POINT AX = 2711h DX = ASCII code for separator (FFFFh to get current) Return: DL = current separator character SeeAlso: AX=270FhTop
INT 2F - DR DOS 6.0 TaskMAX - INITIATE EXPORTING TASK DATA AX = 2712h DX = task indexTop
INT 2F - DR DOS 6.0 TaskMAX - INITIATE PASTE OPERATION AX = 2713h DX = task index CX = paste mode 0000h alphanumeric 0001h numeric 0002h text SeeAlso: AX=270Eh,AX=270Fh,AX=2710h,AX=2711hTop
INT 2F - DR DOS 6.0 TaskMAX - GET SWAP SPACE INFO AX = 2714h Return: CX = total KB of swap space DX = available KB of swap space Note: the TaskMAX API is also supported by Novell DOS 7 TASKMGR in both taskswitching and multitasking modes SeeAlso: AX=2701hTop
INT 2F - DR DOS 6.0 TaskMAX - SWITCH TO TASK MANAGER AX = 2715h Return: only after calling task is again selected SeeAlso: AX=2706hTop
INT 2F - DR DOS 6.0 TaskMAX - GET PASTE BUFFER STATUS AX = 2716h Return: AX = 0000h if AX=2716h,AX=2717h,AX=2718h supported CX = bytes in paste buffer DX = current generation number (updated after every copy operation) BUG: Novell DOS 7 TASKMGR returns AX=0000h even though it does not support this call (it does support the remainder of the TaskMAX API) SeeAlso: AX=2701h,AX=2713h,AX=2714h,AX=2717h,AX=2718hTop
INT 2F - DR DOS 6.0 TaskMAX - PASTE DATA DIRECTLY TO APPLICATION BUFFER AX = 2717h CX = bytes in destination buffer ES:DI -> destination buffer Return: AX = 0000h if function supported CX = bytes actually copied (FFFFh if buffer too small) DX = current generation number for paste buffer BUG: Novell DOS 7 TASKMGR returns AX=0000h even though it does not support this call (it does support the remainder of the TaskMAX API) Note: the destination buffer may be too small if another task adds more data to the paste buffer after the AX=2716h call but before this call SeeAlso: AX=2713h,AX=2716h,AX=2718hTop
INT 2F - DR DOS 6.0 TaskMAX - COPY DATA DIRECTLY INTO PASTE BUFFER AX = 2718h CX = bytes in source buffer DS:SI -> source buffer (plain ASCII, lines terminated with CR LF) Return: AX = 0000h if function supported CX = bytes actually copied DX = current generation number for paste buffer BUG: Novell DOS 7 TASKMGR returns AX=0000h even though it does not support this call (it does support the remainder of the TaskMAX API) SeeAlso: AX=2712h,AX=2716h,AX=2717hTop
INT 2F - Novell DOS 7 TaskMGR - NOP AX = 2719h to 271BhTop
INT 2F U - Novell DOS 7 TaskMGR - ??? AX = 271Ch DX = ??? bit 0: ??? Return: ??? ---if DX bit 0 set--- AX = 0031h CX = 0000h BUG: if the task switcher is running, and DX bit 0 is set on call, this function will crash because its exit code attempts to pop several registers which are not pushed when DX bit 0 is setTop
INT 2F U - Novell DOS 7 TaskMGR - BEGIN CRITICAL SECTION??? AX = 2781h Return: ??? SeeAlso: AX=2782hTop
INT 2F U - Novell DOS 7 TaskMGR - END CRITICAL SECTION??? AX = 2782h Return: ??? SeeAlso: AX=2781hTop
INT 2F U - Novell DOS 7 TaskMGR - ??? API AX = 278Fh as for INT 2F/AX=2780h Return: as for INT 2F/AX=2780h Note: Novell DOS 7 TaskMGR passes this call through to INT 2F/AX=2780h without changing any other registers SeeAlso: AX=2780h/CL=01h,AX=2782hTop
INT 2F U - DOS 5+ DOSSHELL - TASK SWITCHING API??? AX = 4A05h SI = function 0000h reset??? 0001h ??? ES:BP -> 80-byte buffer containing ??? 0002h ??? 0003h ??? 0004h ??? BL = ??? 0005h ??? 0006h get ??? Return: ES:SI -> ??? 0007h get ??? Return: AX = ??? 0008h get ??? Return: DX:AX -> ??? (internal control data of some kind) 0009h get ??? Return: ES:SI -> ??? (apparently identical to function 0006h) 000Ah ??? BL = length of buffer ES:BP -> buffer containing ??? 000Bh get ??? Return: AX = ??? 000Ch ??? BL = ??? Return: if BL nonzero on entry DX:AX -> ??? if BL = 00h on entry ES:SI -> ??? Notes: DOSSHELL chains to the previous handler if SI is not one of the values listed above the DOSSWAP.EXE module calls functions 03h,04h,05h,07h,08h,09h,0Ch the Windows 3.1 DSWAP.EXE and WSWAP.EXE task switchers use these calls SeeAlso: AX=4B01hTop
INT 2F C - DOS 5+ TASK SWITCHER - BUILD CALLOUT CHAIN AX = 4B01h CX:DX -> task switcher entry point (see #02819) ES:BX = 0000h:0000h Return: ES:BX -> callback info structure (see #02817) or 0000h:0000h Notes: called by the task switcher this function is hooked by clients which require notification of task switcher activities; the call must first be passed on to the prior handler with registers unchanged using a simulated interrupt. On return, the client must build a callback info structure and store the returned ES:BX in the "next" field, then return the address of its own callback info structure. a client program must add itself to the notification chain if it provides services to other programs; before terminating, it must remove itself from the chain by calling the task switcher's entry point with AX=0005h (see #02819) the task switcher entry point should not be saved, as it is subject to change and will be provided on any notification call the Windows 3.1 Standard Mode supports this API SeeAlso: AX=160Bh,AX=4B02h Format of task switcher callback info structure: Offset Size Description (Table 02817) 00h DWORD pointer to next callback info structure 04h DWORD pointer to notification function (see #02818) 08h DWORD reserved 0Ch DWORD address of zero-terminated list of API info structures (see #02821) (Table 02818) Values task switcher notification function is called with: AX = function 0000h switcher initialization Return: AX = status 0000h if OK to load nonzero to abort task switcher 0001h query suspend BX = session ID Return: AX = status 0000h if OK to switch session 0001h if not 0002h suspend session BX = session ID interrupts disabled Return: AX = 0000h if OK to switch session = 0001h if not 0003h activate session BX = session ID CX = session status flags bit 0: set if first activation of session bits 1-15: reserved (0) interrupts disabled Return: AX = 0000h 0004h session active BX = session ID CX = session status flags bit 0: set if first activation of session bits 1-15: reserved (0) Return: AX = 0000h 0005h create session BX = session ID Return: AX = 0000h if OK to create session = 0001h if not 0006h destroy session BX = session ID Return: AX = 0000h 0007h switcher termination BX = flags bit 0: set if calling switcher is only switcher loaded bits 1-15: reserved (0) Return: AX = 0000h ES:DI -> task switcher entry point (see #02819) Notes: function 0000h is generally called by the program which controls or invokes the task switcher, rather than by the task switcher itself; the entry point supplied to this function is not necessarily the entry point to the task switcher itself, and may be 0000h:0000h. If any client indicates that loading is not possible, all clients will be called with function 0007h; thus it is possible for a client to receive a termination notice without a corresponding initialization notice. except for functions 0002h and 0003h, the notification handler is called with interrupts enabled and may make any INT 21h function call; interrupts must not be enabled in functions 0002h and 0003h function 0007h may be called with ES:DI = 0000h:0000h if the entry point is no longer validTop
INT 2F - DOS 5+ TASK SWITCHER - INSTALLATION CHECK AX = 4B02h BX = 0000h ES:DI = 0000h:0000h Return: ES:DI = 0000h:0000h if task switcher not loaded ES:DI -> task switcher entry point (see #02819) if loaded AX = 0000h Notes: the returned entry point is that for the most-recently loaded task switcher; the entry points for prior task switchers may be determined with the "get version" call (see #02819) this function is supported by PC Tools v8+ CPTASK SeeAlso: AX=4A05h,AX=4B03h (Table 02819) Call task switcher entry point with: AX = 0000h get version Return: CF clear if successful AX = 0000h ES:BX -> task switcher version struct (see #02820) CF set if unsupported function AX = 0001h test memory region ES:DI -> first byte to be tested CX = size of region to test Return: CF clear if successful AX = memory type of tested region 0000h global 0001h global and local 0002h local (replaced on session switch) CF set if unsupported function AX = 0002h suspend switcher ES:DI -> new task switcher's entry point Return: CF clear if successful AX = state 0000h switcher has been suspended 0001h switcher not suspended, new switcher must abort 0002h switcher not suspended, but new switcher may run anyway CF set if unsupported function AX = 0003h resume switcher ES:DI -> new task switcher's entry point Return: CF clear if successful AX = 0000h CF set if unsupported function AX = 0004h hook notification chain ES:DI -> callback info structure to be added to chain (see #02817) Return: CF clear if successful AX = 0000h CF set if unsupported function AX = 0005h unhook notification chain ES:DI -> callback info structure to be removed from chain (see #02817) Return: CF clear if successful AX = 0000h CF set if unsupported function AX = 0006h query API support BX = asynchronous API identifier Return: CF clear if successful AX = 0000h ES:BX -> API info structure (see #02821) for the client which provides the highest level of API support CF set if unsupported function Format of task switcher version structure: Offset Size Description (Table 02820) 00h WORD major version of supported protocol (current protocol is 1.0) 02h WORD minor version of supported protocol 04h WORD major version of task switcher 06h WORD minor version of task switcher 08h WORD task switcher ID (see AX=4B03h) 0Ah WORD operation flags bit 0: set if task switcher disabled bits 1-15: reserved (0) 0Ch DWORD pointer to ASCIZ task switcher name ("MS-DOS Shell Task Switcher" for DOSSHELL task switcher) 10h DWORD pointer to previous task switcher's entry point or 0000h:0000h Format of API info structure: Offset Size Description (Table 02821) 00h WORD size of structure in bytes (000Ah) 02h WORD API identifier 0001h NetBIOS 0002h 802.2 0003h TCP/IP 0004h LAN Manager named pipes 0005h Novell NetWare IPX 04h WORD major version \ of highest version of API for which the support 06h WORD minor version / level specified in the next field is provided 08h WORD support level 0001h minimal support 0002h API-level support 0003h switcher compatibility 0004h seamless compatibilityTop
INT 2F - DOS 5+ TASK SWITCHER - ALLOCATE SWITCHER ID AX = 4B03h ES:DI -> task switcher entry point (see #02819) Return: AX = 0000h BX = switcher ID (0001h-000Fh), or 0000h if no more available Notes: if a task switcher has determined that it is the first to be loaded, it must allocate an identifier for itself and provide this function to all subsequent task switchers; if it is not the first to be loaded, it must call this function to allocate an ID. The switcher ID is used as the high four bits of all session identifiers to ensure unique session IDs. if no more switcher IDs are available, the new task switcher making the call must terminate or disable itself the task switcher providing the identifiers may call the new task switcher's entry point as needed this call is available from within DOSSHELL even if the task switcher is not installed this function is supported by PC Tools v8+ CPTASK, but appears to always return an ID of 0000h SeeAlso: AX=4B02h,AX=4B04hTop
INT 2F - DOS 5+ TASK SWITCHER - FREE SWITCHER ID AX = 4B04h BX = switcher ID ES:DI -> task switcher entry point (see #02819) Return: AX = 0000h BX = status 0000h successful other error (invalid ID or ID not allocated) Notes: called by a task switcher when it exits, unless it was the first loaded and is providing the support for AX=4B03h and AX=4B04h the task switcher providing the identifiers may call the terminating task switcher's entry point as needed this call is available from within DOSSHELL even if the task switcher is not installed this call is supported by PC Tools v8+ CPTASK, but appears to return sucessfully no matter which ID is given SeeAlso: AX=4B02h,AX=4B03hTop
INT 2F C - DOS 5+ TASK SWITCHER - IDENTIFY INSTANCE DATA AX = 4B05h ES:BX = 0000h:0000h CX:DX -> task switcher entry point (see #02819) Return: ES:BX -> startup info structure (see #02822) or 0000h:0000h Notes: called by task switcher clients with instance data should hook this call, pass it through to the previous handler with unchanged registers using a simulated interrupt. On return, the client should create a startup info structure (see #02822), store the returned ES:BX in the "next" field, and return the address of the created structure in ES:BX all MS-DOS function calls are available from within this call this function is supported by Novell DOS 7 DOSKEY, with structure v3.00 SeeAlso: AX=1605h,AX=160Bh,AX=4B02h Format of task switcher startup info structure: Offset Size Description (Table 02822) 00h 2 BYTEs major, minor version of info structure (03h,00h) 02h DWORD pointer to next startup info structure or 0000h:0000h 06h DWORD 0000h:0000h (ignored) 0Ah DWORD ignored 0Eh DWORD pointer to instance data records (see #02823) Format of one instance data record in array: Offset Size Description (Table 02823) 00h DWORD address of instance data (end of array if 0000h:0000h) 04h WORD size of instance dataTop
INT 2F U - VEDIT VSWAP - INSTALLATION CHECK AX = D600h Return: AL = D6h if installed Program: VSWAP is the resident portion of VEDIT's "swapper" capability; VEDIT is a programmer's text editor by Greenview Data. SeeAlso: AX=D601h,AX=D602hTop
INT 2F U - VEDIT VSWAP - ??? AX = D601h BL = subfunction number??? Return: BL = return code ??? ES = resident portion's data??? segment DX = resident portion's code segment SeeAlso: AX=D600h"VSWAP"Top
INT 2F U - VEDIT VSWAP - EXEC PROGRAM WITH SWAP AX = D602h other registers set as for INT 21/AX=4B00h Return: CF set on error AL = error code 82h = failure due to ??? CF clear on success SeeAlso: AX=D600h"VSWAP",INT 21/AH=4Bh"EXEC"Top
INT 2F U - RTKernel v4.0 - INSTALLATION CHECK AH = F1h AL = 00h Return: AX = FFFFh if present CX = 00F1h Program: RTKernel is a DOS preemptive multitasking library for C/Pascal by On Time Informatik GmbHTop
INT 33 - Switch-It v3.23 - GET ??? PROGRAM AX = FFE6h CX = length of buffer ES:DI -> buffer for program name Return: ES:DI buffer filled Program: Switch-It is a task switcher supporting up to 100 programs simultaneously by Better Software Technology, Inc.Top
INT 33 - Switch-It v3.23 - GET ??? AX = FFE7h Return: AX = ???Top
INT 33 - Switch-It v3.23 - ??? AX = FFE8h CX = length of name including terminating NUL DS:SI -> ASCIZ program pathnameTop
INT 33 - Switch-It v3.23 - SET ??? AX = FFE9h BX = ???Top
INT 33 - Switch-It v3.23 - SET ??? AX = FFEAh BL = ???Top
INT 33 - Switch-It v3.23 - SET ??? FLAG AX = FFEBhTop
INT 33 - Switch-It v3.23 - SET ??? AX = FFECh BL = ???Top
INT 33 - Switch-It v3.23 - GET ??? AX = FFEDh Return: AX = ??? (0001h) BX = ??? Program: Switch-It is a task switcher supporting up to 100 programs simultaneously by Better Software Technology, Inc.Top
INT 33 - Switch-It v3.23 - GET ??? AX = FFEEh Return: AX = ???Top
INT 33 - Switch-It v3.23 - GET ??? AX = FFEFh Return: BX:AX -> ???Top
INT 33 - Switch-It v3.23 - SET ??? AX = FFF0h BL = ???Top
INT 33 - Switch-It v3.23 - GET CONFIGURATION FILE AX = FFF1h Return: BX:AX -> ASCIZ pathname of configuration file Program: Switch-It is a task switcher supporting up to 100 programs simultaneously by Better Software Technology, Inc.Top
INT 33 - Switch-It v3.23 - SET ??? FLAG AX = FFF2h Return: AL = 01hTop
INT 33 - Switch-It v3.23 - GET ??? AX = FFF3h Return: AX = ???Top
INT 33 - Switch-It v3.23 - SET ??? AX = FFF4h BX = ??? CX = ???Top
INT 33 - Switch-It v3.23 - GET ??? AX = FFF5h Return: AX = ???Top
INT 33 - Switch-It v3.23 - GET ??? AX = FFF6h Return: AX = ???Top
INT 33 - Switch-It v3.23 - GET ??? AX = FFF7h BX = index of ??? Return: AX = ???Top
INT 33 - Switch-It v3.23 - ??? AX = FFF8h BX = ??? CX = length of program name, including terminating NUL DS:SI -> ASCIZ program pathname Return: ??? Program: Switch-It is a task switcher supporting up to 100 programs simultaneously by Better Software Technology, Inc.Top
INT 33 - Switch-It v3.23 - NOP AX = FFF9hTop
INT 33 - Switch-It v3.23 - SET ??? AX = FFFAh BX = index of program SeeAlso: AX=FFFBh,AX=FFFChTop
INT 33 - Switch-It v3.23 - GET ??? AX = FFFBh BX = index of program Return: AX = ??? (0000h or 0001h) SeeAlso: AX=FFFAh,AX=FFFChTop
INT 33 - Switch-It v3.23 - CLEAR ??? AX = FFFCh BX = index of program SeeAlso: AX=FFFAh,AX=FFFChTop
INT 33 - Switch-It v3.23 - GET MEMORY ADDRESSES??? AX = FFFDh Return: AX = first available segment??? BX = paragraph of top of conventional memory DX = PSP segment of SI.EXETop
INT 33 - Switch-It v3.23 - INSTALLATION CHECK AX = FFFEh Return: BX = ??? DX = 5349h ("SI")Top
INT 33 - Switch-It v3.23 - ??? AX = FFFFh BX = ??? Program: Switch-It is a task switcher supporting up to 100 programs simultaneously by Better Software Technology, Inc.Top
INT 62 - Cswitch - GIVE UP REST OF TIME-SLICE AH = 01h Program: Cswitch is a set of multitasking functions by Herb Rose SeeAlso: AH=05h"Cswitch",AH=06h"Cswitch",INT 15/AX=1000h,INT 2F/AX=1680hTop
INT 62 - Cswitch - WAIT FOR SEMAPHORE AH = 02h DX = semaphore number (0-63) Return: AX = FFFFh bad semaphore number else success SeeAlso: AH=03h"Cswitch",AH=04h"Cswitch"Top
INT 62 - Cswitch - CHECK SEMAPHORE AH = 03h DX = semaphore number (0-63) Return: AX = status FFFFh not owned else owned SeeAlso: AH=02h,AH=04hTop
INT 62 - Cswitch - TRIGGER SEMAPHORE AH = 04h DX = semaphore number (0-63) Return: AX = status FFFFh bad semaphore number else success SeeAlso: AH=02h"Cswitch",AH=03h"Cswitch"Top
INT 62 - Cswitch - SLEEP AH = 05h BX = seconds to sleep SeeAlso: AH=01h"Cswitch",AH=06h"Cswitch",AH=08h"Cswitch"Top
INT 62 - Cswitch - SUSPEND AH = 06h SeeAlso: AH=05h"Cswitch",AH=08h"Cswitch"Top
INT 62 - Cswitch - SPAWN AH = 07h ES:BX -> function address to start executing at CX = priority (1-10) Return: AX = result/status FFFDh no free memory control blocks FFFEh no free task control blocks FFFFh not enough memory to create new task stack >0 the tcb number of the new task, indicating no error SeeAlso: AH=0Fh"Cswitch",AH=10h"Cswitch"Top
INT 62 - Cswitch - WAKE UP TASK AH = 08h BX = tcb identifier SeeAlso: AH=05h,AH=06hTop
INT 62 - Cswitch - SET PRIORITY AH = 09h BX = new base priority (1-10) Note: the lower the priority is numerically, the more often the task will runTop
INT 62 - Cswitch - TEST MESSAGE QUEUE AH = 0Ah DX = queue number (0-63) Return: AX = result/message size 0000h nothing on queue FFFFh bad queue number else number of bytes in first message in queue SeeAlso: AH=0Bh"Cswitch",AH=0Ch"Cswitch"Top
INT 62 - Cswitch - SEND MESSAGE AH = 0Bh CX = number of bytes to write DS:SI -> buffer DX = queue number (0-63) Return: AX = result/message size 0000h no message was on queue FFFEh triggered by something arriving, redo the call FFFFh bad queue number else number of bytes in message SeeAlso: AH=0Ah"Cswitch",AH=0Ch"Cswitch"Top
INT 62 - Cswitch - READ MESSAGE AH = 0Ch CX = number of bytes to read DS:SI -> buffer DX = queue number (0-63) Return: AX = status FFFFh bad queue number else number of bytes transferred SeeAlso: AH=0Ah,AH=0BhTop
INT 62 - Cswitch - DON'T ALLOW TASK TO BE SWAPPED OUT AH = 0Dh SeeAlso: AH=0Eh"Cswitch"Top
INT 62 - Cswitch - ALLOW TASK TO BE SWAPPED OUT AH = 0Eh SeeAlso: AH=0Dh"Cswitch"Top
INT 62 - Cswitch - LOAD AND RUN PROGRAM FROM DISK AH = 0Fh ES:BX -> command line CX = priority (1-10) DX = background flag (nonzero allows loading to EMS) Return: AX = status 0000h task loader queue is full 0001h no error SeeAlso: AH=07h"Cswitch",AH=10h"Cswitch",AH=13h"Cswitch"Top
INT 62 - Cswitch - TERMINATE SPAWNED PROGRAM AH = 10h SeeAlso: AH=07h"Cswitch",AH=0Fh"Cswitch"Top
INT 62 - Cswitch - GET TCB INFORMATION AH = 11h ES:BX -> a pointer which will be set to the tcb address Return: AX = tcb indentifier SeeAlso: AH=12hTop
INT 62 - Cswitch - GET TCB ADDRESS AH = 12h ES:BX -> a pointer which will be set to the tcb table address Return: AX = tcb indentifier SeeAlso: AH=11h"Cswitch"Top
INT 62 - Cswitch - CHECK STATUS OF PREVIOUS LOAD_TASK AH = 13h Return: AX = result FFFCh no Memory Control Blocks available FFFDh no TCBs available FFFEh insufficient memory FFFFh cannot open file 0000h load in progress (not done yet) else tcb indentifier SeeAlso: AH=0FhTop
INT 7F - MultiLink Advanced v1.0+ - ENQUEUE SYSTEM RESOURCE AH = 00h BX = resource identifier AL = wait flag Return: AL = status 00h successful 01h resource not available 02h user error InstallCheck: ensure that the interrupt vector is not pointing at segment 0000h, then test whether the byte at offset 0000h in the interrupt handler's segment is E9h Notes: function will not return until the resource is available if AL is nonzero on entry a maximum of 100 resources may be enqueued at once SeeAlso: AH=01h"MultiLink"Top
INT 7F - MultiLink Advanced v1.0+ - DEQUEUE SYSTEM RESOURCE AH = 01h BX = resource identifier Return: AL = status 00h successful 02h user error Note: the indicated resource may be dequeued even if it was enqueued by another task SeeAlso: AH=00h"MultiLink",AH=02h"MultiLink"Top
INT 7F - MultiLink Advanced v1.0+ - RELEASE CPU AH = 02h Return: ??? Desc: yields CPU to other tasks SeeAlso: AH=00h"MultiLink",AH=09h"MultiLink",INT 15/AX=1000hTop
INT 7F - MultiLink Advanced v1.0+ - SET TASK PRIORITY AH = 09h AL = priority (0-7) Return: nothing InstallCheck: ensure that the interrupt vector is not pointing at segment 0000h, then test whether the byte at offset 0000h in the interrupt handler's segment is E9h Index: installation check;MultiLink Advanced SeeAlso: AH=00h"MultiLink",AH=0Ah"MultiLink"Top
INT 7F - MultiLink Advanced v1.0+ - SET KEYBOARD TEST STATUS AH = 0Ah AL = task-switch status 00h normal (disable task when it repeatedly polls keyboard) 01h disable task until keyboard input available FFh never disable task Return: ??? SeeAlso: AH=09h"MultiLink"Top
INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F5"DoubleDOS",INT FE"DoubleDOS"Top
INT F5 - DoubleDOS - ??? SeeAlso: INT F4"DoubleDOS",INT F6"DoubleDOS"Top
INT F6 - DoubleDOS - ??? SeeAlso: INT F5"DoubleDOS",INT F7"DoubleDOS"Top
INT F7 - DoubleDOS - ??? SeeAlso: INT F6"DoubleDOS"Top
INT F8 - DoubleDOS - ???Top
INT F9 - DoubleDOS - ???Top
INT FA - DoubleDOS - TURN OFF TIMESHARING SeeAlso: INT 21/AH=EAh"DoubleDOS",INT FB"DoubleDOS"Top
INT FB - DoubleDOS - TURN ON TIMESHARING SeeAlso: INT 21/AH=EBh"DoubleDOS",INT FA"DoubleDOS"Top
INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS Return: ES = segment of display buffer Desc: determine the address of the virtual screen to which the program should write instead of the actual video memory, so that the multitasked programs do not interfere with each other's output Note: the display buffer may be moved if multitasking is enabled SeeAlso: INT 21/AH=ECh"DoubleDOS",INT FB"DoubleDOS"Top
INT FD - DoubleDOS - ???Top
INT FE - DoubleDOS - GIVE UP TIME AL = number of 55ms time slices to give away Return: after other program (if active) has run SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F4"DoubleDOS"Top