en:docs:fapi

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:docs:fapi [2021/10/04 12:27] prokusheven:docs:fapi [2022/02/16 15:02] (current) prokushev
Line 3: Line 3:
 ====== Family API ====== ====== Family API ======
  
-Family API (FAPI) is a subset of [[en:docs:os2:api:cpi|Control Program API]] which can be used to write binary portable applications. Such applications can be run as on OS/2 as on DOS system without any modifications. It is known 2 versions of original Family API 1.00 and 1.10. Also exists side Family API implementation. FAMAPI by Jonathan de Boyne Pollard and HX DOS Extender API by Andreas Grech. Versions up to 1.11 is a original OS/2 Family API. 1.20 and higher is a osFree extensions.+Family API (FAPI) is a subset of [[en:docs:os2:api:cpi|Control Program API]] which can be used to write binary portable applications. Such applications can be run as on OS/2 as on DOS system without any modifications. It is known 2 versions of original Family API 1.00 and 1.10. Also exists side Family API implementation. FAMAPI by Jonathan de Boyne Pollard and HX DOS Extender API by Andreas Grech. Versions up to 1.10 is a original OS/2 Family API. 1.20 and higher is a osFree extensions.
  
 ====== Dual OS applications ====== ====== Dual OS applications ======
Line 19: Line 19:
 [[http://www.edm2.com/index.php/Hints_for_writing_simple_programs_for_both_OS/2_and_DOS]] [[http://www.edm2.com/index.php/Hints_for_writing_simple_programs_for_both_OS/2_and_DOS]]
  
-====== Function Calls ======+====== Documentation ======
  
-OS/2 1.0 introduced around 80-90 function calls (various information sources differ) that could be used in FAPI programs.+[[en:docs:fapi:functions|Function reference]]
  
-^ Name                               ^ Description                                              ^ Module (OS/2) ^ Library (DOS)  ^ Status (OS/2) ^ Status (DOS) ^ FAPI Version ^ +======Compatibility======
-| [[en:docs:fapi:BadDynLink]]        | Terminates execution with error message                  |                  --              | API/FAPI | -- | Done | 1.00 | +
-| [[en:docs:fapi:DosBeep]]           | Generates sound from the speaker                         | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosBufReset]]       | Flushes a file cache buffers                             | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | Done | Done | 1.10 | +
-| [[en:docs:fapi:DosChDir]]          | Defines the current directory for the requesting process | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | Done | Done | 1.00 | +
-| [[en:docs:fapi:DosChgFilePtr]]     | Moves the read/write pointer                             | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | Done | Done | 1.00 | +
-| [[en:docs:fapi:DosClose]]          | Closes a handle to a file, pipe, or device               | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | Done | Done | 1.00 | +
-| [[en:docs:fapi:DosCreateCSAlias]]  | Create CS alias from data segment                        | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosCLIAccess]]      | Request I/O privilege for disabling and enabling interrupts | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosPortAccess]]     | Request or release access to ports for I/O privilege                                                         | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosDelete]]         | Removes a directory entry associated with a file name    | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | Done | Done | 1.00 | +
-| [[en:docs:fapi:DosDevConfig]]      | Return device configuration                              | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosDupHandle]]      | Returns a new file handle for an open file               | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | Done | Done | 1.00 | +
-| [[en:docs:fapi:DosFreeSeg]]        | Deallocates a memory segment                             | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosGetDateTime]]    | Get the current date and time                            | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosGetEnv]]         | Return process environment for the current process       | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosGetHugeShift]]   | Return a shift count used to derive the selectors that address memory allocated with DosAllocHuge | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosGetMachineMode]] | Returns the current mode of the processor                | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | Done | Done | 1.00 | +
-| [[en:docs:fapi:DosGetMessage]]     | Retrieve a message from the specified system message file | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | 1.00 | +
-| [[en:docs:fapi:DosGetVersion]]     | Return the OS version number                             | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | Done | Done | 1.00 | +
-| [[en:docs:fapi:DosInsMessage]]     | Insert variable text string information into the body of a message | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | 1.00 | +
-| [[en:docs:fapi:DosMkDir]]          | Create a subdirectory                                    | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | Done | Done | 1.00 | +
-| [[en:docs:fapi:DosMkDir2]]         | Create a subdirectory with EA                            | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | Done | Done | ???? | +
-| [[en:docs:fapi:DosMove]]           | Move a file object to another location, change its name  | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosNewSize]]        | Changes the size of a file                               | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosPutMessage]]     | Output the message                                       | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | 1.00 | +
-| [[en:docs:fapi:DosQCurDir]]        | Returns the full path name of the current directory      | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosQCurDisk]]       | Determines the current default drive for the requesting process | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosQFileMode]]      | Queries the mode (attribute) of the specified file       | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosQFSInfo]]        | Query file system info                                   | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | |  | 1.00 | +
-| [[en:docs:fapi:DosQVerify]]        | Returns the value of the verify flag                     | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | Done | Done | 1.00 | +
-| [[en:docs:fapi:DosRmDir]]          | Removes a subdirectory from the specified disk           | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | Done | Done | 1.00 | +
-| [[en:docs:fapi:DosSelectDisk]]     | Selects the drive specified as the default drive         | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | Done | Done | 1.00 | +
-| [[en:docs:fapi:DosSetDateTime]]    | Set the date and time                                    | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosSetFileInfo]]    | Set attribute and extended attribute information for a file | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosSetFileMode]]    | Changes the mode (attribute) of the specified file       | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosSetVerify]]      | Sets write verification                                  | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | Done | Done | 1.00 | +
-| [[en:docs:fapi:DosSleep]]          | Suspend the current thread for a specified time          | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosSubAlloc]]       | Suballocate portions of a segment                        | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | 1.00 | +
-| [[en:docs:fapi:DosSubFree]]        | Free memory previously allocated by DosSubAlloc          | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | 1.00 | +
-| [[en:docs:fapi:DosSubSet]]         | Initialize a segment for suballocation                   | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | 1.00 | +
-| [[en:docs:fapi:DosWrite]]          | Write buffer to file                                     | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosAllocHuge]]      | Allocate multiple segments as a huge block of memory     | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosAllocSeg]]       | Allocate a data segment up to 64KB in size               | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosCaseMap]]        | Case mapping on a string                                 | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | 1.10 | +
-| [[en:docs:fapi:DosDevIOCtl]]       | Control functions on a device                            | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | 1.00 | +
-| [[en:docs:fapi:DosDevIOCtl2]]      | Control functions on a device                            | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | ???? | +
-| [[en:docs:fapi:DosError]]          | Receive hard error notification                          | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosErrClass]]       | Receive hard error code information                      | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | 1.10 | +
-| [[en:docs:fapi:DosExecPgm]]        | Execute another program as a child process               | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosExit]]           | End The current thread or process                        | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosFileLocks]]      | Locks and unlock a range in an opened file               | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosFindClose]]      | Finish DosFindFirst or DosFindNext directory search function sequence | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosFindFirst]]      | Finds the first file object or group of file objects whose name(s) match the specification | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosFindFirst2]]     | Finds the first file object or group of file objects whose name(s) match the specification | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | |  | ??? | +
-| [[en:docs:fapi:DosFindNext]]       | Locate the next set of directory entries                 | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosGetCtryInfo]]    | Obtain country-dependent formatting information that resides in the country information file | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | 1.10 | +
-| [[en:docs:fapi:DosGetDBCSEv]]      | Obtain a DBCS (double byte character set) environmental vector that resides in the country information file | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.10 | +
-| [[en:docs:fapi:DosGetCP]]          | Query the current process code page and the prepared system code pages | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.10 | +
-| [[en:docs:fapi:DosSetCP]]          | Set process code page and the session's display code page and keyboard code page | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.10 | +
-| [[en:docs:fapi:DosGetCollate]]     | Obtain a collating sequence table                        | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | 1.10 | +
-| [[en:docs:fapi:DosHoldSignal]]     | Temporarily disable or enable signal processing for the current process | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | 1.00 | +
-| [[en:docs:fapi:DosOpen]]           | Open a file, a named pipe, or a device                   | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosOpen2]]          | Open a file with extended attributes                     | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | ???? | +
-| [[en:docs:fapi:DosQFileInfo]]      | Return information for a specific file                   | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosRead]]           | Read the specified number of bytes from a file, pipe, or device to a buffer location | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosReallocHuge]]    | Change the size of memory originally allocated by DosAllocHuge | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | 1.00 | +
-| [[en:docs:fapi:DosReallocSeg]]     | Reallocate a segment after discard or changes the size of a segment already allocated | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosSetCtryCode]]    |                                                          | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | 1.00 | +
-| [[en:docs:fapi:DosSetFHandState]]  | Set the state of the specified file                      | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | 1.00 | +
-| [[en:docs:fapi:DosSetSigHandler]]  | Set signal handler                                       | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosAllocShrSeg]]    | Allocate a named shared memory segment to a process      | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:DosGetShrSeg]]      | Accesses a shared memory segment previously allocated by another process | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:DosLoadModule]]     | Load a dynamic link module and returns a handle for the module | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:DosFreeModule]]     | Free the reference to a dynamic link module for a process | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:DosQHandType]]      | Get handle type                                          | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosGetProcAddr]]    | Get module procedure address                             | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:DosGetPID]]         | Get process id                                           | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:DosSetMaxFH]]       | Set maximum file handlers                                | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:DosGetModHandle]]   | Get module handle                                        | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:DosQPathInfo]]      | Get path information                                     | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | 1.?? | +
-| [[en:docs:fapi:DosQFSAttach]]      | Query information about an attached file system          | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | | 1.?? | +
-| [[en:docs:fapi:DosQSysInfo]]       | Query system variablies values                           | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:DosMemAvail]]       | Query maximum availabe huge memory block                 | [[en:docs:os2:modules:DOSCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:KbdCharIn]]         | Return a character data record from the keyboard         | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:KbdFlushBuffer]]    | Clear the keystroke buffer                               | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:KbdGetStatus]]      | Get the current state of the keyboard                    | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:KbdSetStatus]]      | Set the characteristics of the keyboard                  | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | | 1.00 | +
-| [[en:docs:fapi:KbdStringIn]]       | Read a character string (character codes only) from the keyboard | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | | 1.00 | +
-| [[en:docs:fapi:KbdPeek]]           | Return any available character data record from the keyboard without removing it from the buffer | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:KbdOpen]]                                                                    | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:KbdClose]]          |                                                          | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:KbdGetFocus]]                                                                | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:KbdFreeFocus]]      |                                                          | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:KbdGetCp]]          |                                                          | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:KbdSetCp]]          |                                                          | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:KbdXlate]]          |                                                          | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:KbdSetCustXt]]      |                                                          | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:KbdGetHWId]]        |                                                          | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:KbdRegister]]                                                                | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:KbdDeRegister]]                                                              | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:MouRegister]]                                                                | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:MouDeRegister]]                                                              | [[en:docs:os2:modules:KBDCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:MouGetNumButtons]]  |                                                          | [[en:docs:os2:modules:MOUCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:MouGetNumMickeys]]  |                                                          | [[en:docs:os2:modules:MOUCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:MouGetDevStatus]]                                                            | [[en:docs:os2:modules:MOUCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:VioGetBuf]]         | Return the address of the logical video buffer (LVB)     | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:VioGetCurPos]]      | Return the coordinates of the cursor                     | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:VioGetCurType]]     | Get cursor type                                          | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:VioGetPhysBuf]]     | Get addressability to the physical display buffer        | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.00 | +
-| [[en:docs:fapi:VioReadCellStr]]    | Read a string of character-attribute pairs from the screen | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:VioReadCharStr]]    | Read a string of characters from the display             | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:VioScrollDn]]       | Scroll the entire display buffer (or area specified within the display buffer) down | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:VioScrollLf]]       | Scroll the entire display buffer (or area specified within the display buffer) to the left | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.00 | +
-| [[en:docs:fapi:VioScrollRt]]       | Scroll the entire display buffer (or area specified within the display buffer) to the right | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.00 | +
-| [[en:docs:fapi:VioScrUnLock]]      | Release ownership of (unlocks) the physical display buffer | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:VioSetCurPos]]      | Set the cursor's coordinates on the screen               | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:VioSetCurType]]     | Set the cursor type                                      | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:VioSetMode]]        | Set the mode of the display                              | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:VioShowBuf]]        | Update the physical display buffer with the logical video buffer (LVB) | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:VioWrtCellStr]]     | Write a string of character-attribute pairs (cells) to the display | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:VioWrtCharStr]]     | Write a character string to the display                  | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:VioWrtCharStrAtt]]  | Write a character string with repeated attribute to the display | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:VioWrtNAttr]]       | Write an attribute to the display a specified number of times | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:VioWrtNCell]]       | Write a cell (character-attribute pair) to the display a specified number of times | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:VioWrtNChar]]       | Write a character to the display a specified number of times | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:VioWrtTTY]]         | Write a character string to the display starting at the current cursor position | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:VioScrLock]]        | Request ownership of (locks) the physical display buffer | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.00 | +
-| [[en:docs:fapi:VioGetMode]]        | Return the mode of the display                           | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:VioGetConfig]]      | Return the video display configuration                   | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.?? | +
-| [[en:docs:fapi:VioGetAnsi]]        | Return the current ANSI status On/Off state              | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:VioSetAnsi]]        | Activate or deactivate ANSI support                      | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:VioScrollUp]]       | Sroll the entire display buffer (or area specified within the display buffer) up | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:VioDeRegister]]     | Deregister alternate video system                        | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:VioRegister]]       | Register alternate video system                          | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | Done | 1.20 | +
-| [[en:docs:fapi:VioGetState]]       | Return the current settings of adapter                   | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.?? | +
-| [[en:docs:fapi:VioSetState]]       | Set the current settings of adapter                      | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.?? | +
-| [[en:docs:fapi:VioGetCP]]          | Query the code page for display                          | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:VioSetCP]]          | Set the code page for display                            | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:VioGetFont]]        | Get current font                                         | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.?? | +
-| [[en:docs:fapi:VioSetFont]]        | Set current font                                         | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.?? | +
-| [[en:docs:fapi:VioModeWait]]       | Notify process about it must restore its video mode      | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:VioModeUndo]]                                                                | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:VioPopUp]]          | Show temporary screen to display message                 | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:VioEndPopUp]]       | Return from temporary screen                             | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:VioSavRedrawWait]]  | Notifies application when it must save/redraw its screen | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:VioSavRedrawUndo]]  |                                                          | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:VioPrtSc]]          | Dump screen to printer                                   | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.20 | +
-| [[en:docs:fapi:VioPrtScToggle]]    | Toggle VioWrtTty also write to printer                   | [[en:docs:os2:modules:VIOCALLS]] | API/FAPI | | | 1.20 |+
  
-======Limitations======+^    Feature          ^ DOS 16-bit Real Mode ^ DOS 16-bit Protected Mode ((Requires DPMI host with 16-bit client support)) ^ OS/2 16-bit Protected Mode ^ 
 +| Max memory          | 640KB                | 16MB  ((Actually depends on DPMI host and current CPU)) |16MB | 
 +| Virtual memory      | No                   | No   | 1Gb | 
 +| Multitasking        | No                   | No   | Yes | 
 +| Multithreading      | No                   | No   | Yes | 
 +| Long filenames      | Yes ((Supported since version 1.20 Requires LFN driver under DOS or run in Windows 9x VDM.))                 | Yes ((Supported since version 1.20 Requires LFN driver under DOS or run in Windows 9x VDM.)) | Yes  ((Starting from OS/2 1.??)) | 
 +| Extended attributes | Yes ((Under OS/2 BOX only))               | Yes ((Under OS/2 BOX only)) | Yes ((Starting from OS/2 1.??)) | 
 +| App EXE name change | Yes ((Under DOS 3 and higher))  | Yes ((Under DOS 3 and higher))   | Yes |
  
-=== DOS Real Mode === 
-  *max. 640K memory 
-  *no virtual address space 
-  *no multitasking 
-  *no undocumented OS services 
-  *If the filename of an executable produced by BIND is changed, then it will not run under DOS 2.1. 
  
-=== OS/2 16-bit Protected Mode === 
  
-  *16 MB memory +====== Remarks ====== 
-  *1GB virtual address space+ 
 +For implementation details refer to [[en:docs:fapi:Implementation details]] section.
  
 ====== Notes ====== ====== Notes ======