Jump to content

Control Program: Difference between revisions

From EDM2
Ak120 (talk | contribs)
mNo edit summary
 
(16 intermediate revisions by 2 users not shown)
Line 1: Line 1:
OS/2's Control Program.
{|align="right" class="wikitable" width=30%
|+Control Program
!colspan=6 style="background-color:#FF0"|Kernel API
|-
!style="background-color:#AF0"|IPC
!style="background-color:#BF0" colspan=2|Tasks & Threads
!style="background-color:#CF0"|Scheduler
!style="background-color:#DF0" colspan=2|File System Router
|-
!style="background-color:#AA0" colspan=2|Memory Management
!style="background-color:#BA0" colspan=2|Interrupt Handling
!style="background-color:#AB0"|FAT
!style="background-color:#BB0"|IFS
|}
The Control Program provides the basic functions of OS/2, including the support for keyboard, mouse, and video input/output.


The API is composed by:
The lowest-level functions supplied by OS/2 are those provided by the kernel and the kernel's subsystems - the control programs of the operating system. The [[Control Program Functions List]] involve the most basic aspects of program execution, such as memory management, file handling, and process, thread, and session management. They also involve more sophisticated programming tasks, such as exception handling and interprocess communications.
* Control Program Functions
* Keyboard Functions
* Mouse Functions
* Video Functions


==Documentation==
==Data types==
* [[OS2 API:CPI|Control Programming Interface API]]
The following data types are defined for the Control Program functions. Many of these types begin with a letter that identifies what the type is used for. For example:
*H - handle
*P - flat pointer
*NP - flat pointer
*U - unsigned variable.
 
List of used data types:
 
[[APIRET]], [[BOOL]], [[BOOL32]], [[BYTE]], [[CHAR]], [[COLOR]], [[COUNTRYCODE]], [[COUNTRYINFO]], [[DATETIME]], DosDebug Buffer Structure, [[EAOP2]], [[ERRORID]], [[EXCEPTIONREGISTRATIONRECORD]], [[EXCEPTIONREPORTRECORD]], [[FDATE]], [[FEA2]], [[FEA2LIST]], [[FILEFINDBUF3]], [[FILEFINDBUF4]], [[FILELOCK]], [[FILESTATUS3]], [[FILESTATUS4]], [[FSQBUFFER2]], [[FTIME]], [[GEA2]], [[GEA2LIST]], [[HDC]], [[HDIR]], [[HEV]], [[HFILE]], [[HMF]], [[HMODULE]], [[HMONITOR]], [[HMTX]], [[HMUX]], [[HPIPE]], [[HPS]], [[HSYSSEM]], [[HQUEUE]], [[HRGN]], [[HSEM]], [[HTIMER]], [[HVDD]], [[HWND]], [[LONG]], [[NID]], [[NPCH]], [[NPFN]], [[NPSZ]], [[PAVAILDATA]], [[PBOOL]], [[PBOOL32]], [[PBYTE]], [[PCHAR]], [[PCOLOR]], [[PCOUNTRYCODE]], [[PCOUNTRYINFO]], [[PDATETIME]], [[PEAOP2]], [[PERRORID]], [[PEXCEPTIONREGISTRATIONRECORD]], [[PEXCEPTIONREPORTRECORD]], [[PFILEFINDBUF3]], [[PFILEFINDBUF4]], [[PFILELOCK]], [[PFN]], [[PFNSIGHANDLER]], [[PFNTHREAD]], [[PFNEXITLIST]], [[PFEA2LIST]], [[PFSQBUFFER2]], [[PGEA2LIST]], [[PHDC]], [[PHDIR]], [[PHEV]], [[PHFILE]], [[PHMF]], [[PHMODULE]], [[PHMONITOR]], [[PHMTX]], [[PHMUX]], [[PHPIPE]], [[PHPS]], [[PHQUEUE]], [[PHRGN]], [[PHSEM]], [[PHTIMER]], [[PHVDD]], [[PIB]], [[PID]], [[PIPESEMSTATE]], [[PLONG]], [[PPIB]], [[PPID]], [[PPIPESEMSTATE]], [[PPPIB]], [[PPTIB]], [[PPVOID]], [[PREQUESTDATA]], [[PRESULTCODES]], [[PSEMRECORD]], [[PSTARTDATA]], [[PSTATUSDATA]], [[PSZ]], [[PTIB]], [[PTIB2]], [[PTID]], [[PULONG]], [[PVOID]], [[REQUESTDATA]], [[RESULTCODES]], [[SEMRECORD]], [[SGID]], [[SHORT]], [[STARTDATA]], [[STATUSDATA]], [[STRUCT]], [[TIB]], [[TIB2]], [[TID]], [[UCHAR]], [[ULONG]], [[USHORT]]


==Files==
==Files==
{| border="1"
{|class="wikitable"
!Directory||Dynamic Link Library||Functions
|-
|-
!Name !!Comments !! Alternative
|rowspan=14|\OS2\DLL||[[ANSICALL.DLL]]||ANSI terminal support
|-
|-
|| [[ANSICALL.DLL]] || ANSI terminal support. || OSFree
|[[BKSCALLS.DLL]]||Base keyboard calls
|-
|-
|| [[BKSCALLS.DLL]] || Base keyboard calls. || OSFree
|[[BMSCALLS.DLL]]||Base monitor calls
|-
|-
|| [[BMSCALLS.DLL]] || Base monitor calls. || OSFree
|[[BVSCALLS.DLL]]||Base Video Subsystem
|-
|-
|| [[BVSCALLS.DLL]] || Base Video Subsystem. || OSFree
|[[DOSCALL1.DLL]]||Base OS calls
|-
|-
|| [[DOSCALL1.DLL]] || DLL that contains entry points for base APIs. ||
|[[KBDCALLS.DLL]]||Keyboards calls
|-
|-
|| [[KBDCALLS.DLL]] || Keyboards calls dynamic link library. || OSFree
|[[MONCALLS.DLL]]||Device monitor calls
|-
|-
|| [[MONCALLS.DLL]] || Monitor API. || OSFree
|[[MOUCALLS.DLL]]||Mouse calls
|-
|-
|| [[MOUCALLS.DLL]] || Dynamic link library for mouse calls. || OSFree
|[[MSG.DLL]]||Messages
|-
|-
|| [[MSG.DLL]] || Message dynamic link library. || OSFree
|[[NLS.DLL]]||National language support
|-
|-
|| [[NLS.DLL]] || National language support dynamic link library. || OSFree
|[[OS2CHAR.DLL]]||OS2 character
|-
|-
|| [[OS2CHAR.DLL]] || OS2 character dynamic link library. || OSFree
|[[QUECALLS.DLL]]||System queue calls
|-
|-
|| [[QUECALLS.DLL]] || System queue calls dynamic link library. || OSFree
|[[SESMGR.DLL]]||Session manager
|-
|-
|| [[SESMGR.DLL]] || Session manager dynamic link library. || OSFree
|[[VIOCALLS.DLL]]||Base video calls
|-
|| [[VIOCALLS.DLL]] || Base video calls dynamic link library. || OSFree
|-
 
|}
|}
==Articles==


==Publications==
==Publications==
* CP1.INF - Control Program Programming Guide and Reference, Part 1 of 3 [http://cyberkinetica.homeunix.net/os2tk45/cp1/]
;IBM
* CP2.INF - Control Program Programming Guide and Reference, Part 2 of 3 [http://cyberkinetica.homeunix.net/os2tk45/cp2/]
*''OS/2 2.0 Control Program Programming Reference'' - S10G-6263-00, 1992 [http://www.os2museum.com/files/docs/os220tl/os2-2.0-cpref-1992.pdf PDF]
* CP3.INF - Control Program Programming Guide and Reference, Part 3 of 3 [http://cyberkinetica.homeunix.net/os2tk45/cp3/]
*''OS/2 2.1 Control Program Programming Reference'' - S10G-6263-01, 1993
* 1992 - OS/2 2.0 Control Program Programming Reference P/N 10G6263, Form # S10G-6263 [http://www.os2museum.com/files/docs/os220tl/os2-2.0-cpref-1992.pdf]
*''OS/2 Warp, Version 3 Control Program Programming Guide'' - G25H-7101-00, Oct 1994
 
*''OS/2 Warp, Version 3 Control Program Reference'' - G25H-7102-00, Oct 1994
==Alternative Versions==
*''[[Control Program Programming Guide and Reference]]'' - Nov 1996, [[Control Program Programming Guide and Reference Errata|Errata]]
* The [[OS2Linux]] (Open Source - Common Public License) tried to clone some of the functions of Control Program to run on the Linux OS. [http://sourceforge.net/projects/os2linux/]
 
* The [http://www.os2world.com/wiki/index.php/OS/4 Phoenix OS/4] is aimed to try to generate an OS/2 kernel clone/replacement. It also included some replacement for the Control Program.
 
* The OSFree Project generated some of the forwarder's DLLs of this component.
 
==Links==


[[Category:Components]]
[[Category:Components]]

Latest revision as of 03:05, 17 November 2018

Control Program
Kernel API
IPC Tasks & Threads Scheduler File System Router
Memory Management Interrupt Handling FAT IFS

The Control Program provides the basic functions of OS/2, including the support for keyboard, mouse, and video input/output.

The lowest-level functions supplied by OS/2 are those provided by the kernel and the kernel's subsystems - the control programs of the operating system. The Control Program Functions List involve the most basic aspects of program execution, such as memory management, file handling, and process, thread, and session management. They also involve more sophisticated programming tasks, such as exception handling and interprocess communications.

Data types

The following data types are defined for the Control Program functions. Many of these types begin with a letter that identifies what the type is used for. For example:

  • H - handle
  • P - flat pointer
  • NP - flat pointer
  • U - unsigned variable.

List of used data types:

APIRET, BOOL, BOOL32, BYTE, CHAR, COLOR, COUNTRYCODE, COUNTRYINFO, DATETIME, DosDebug Buffer Structure, EAOP2, ERRORID, EXCEPTIONREGISTRATIONRECORD, EXCEPTIONREPORTRECORD, FDATE, FEA2, FEA2LIST, FILEFINDBUF3, FILEFINDBUF4, FILELOCK, FILESTATUS3, FILESTATUS4, FSQBUFFER2, FTIME, GEA2, GEA2LIST, HDC, HDIR, HEV, HFILE, HMF, HMODULE, HMONITOR, HMTX, HMUX, HPIPE, HPS, HSYSSEM, HQUEUE, HRGN, HSEM, HTIMER, HVDD, HWND, LONG, NID, NPCH, NPFN, NPSZ, PAVAILDATA, PBOOL, PBOOL32, PBYTE, PCHAR, PCOLOR, PCOUNTRYCODE, PCOUNTRYINFO, PDATETIME, PEAOP2, PERRORID, PEXCEPTIONREGISTRATIONRECORD, PEXCEPTIONREPORTRECORD, PFILEFINDBUF3, PFILEFINDBUF4, PFILELOCK, PFN, PFNSIGHANDLER, PFNTHREAD, PFNEXITLIST, PFEA2LIST, PFSQBUFFER2, PGEA2LIST, PHDC, PHDIR, PHEV, PHFILE, PHMF, PHMODULE, PHMONITOR, PHMTX, PHMUX, PHPIPE, PHPS, PHQUEUE, PHRGN, PHSEM, PHTIMER, PHVDD, PIB, PID, PIPESEMSTATE, PLONG, PPIB, PPID, PPIPESEMSTATE, PPPIB, PPTIB, PPVOID, PREQUESTDATA, PRESULTCODES, PSEMRECORD, PSTARTDATA, PSTATUSDATA, PSZ, PTIB, PTIB2, PTID, PULONG, PVOID, REQUESTDATA, RESULTCODES, SEMRECORD, SGID, SHORT, STARTDATA, STATUSDATA, STRUCT, TIB, TIB2, TID, UCHAR, ULONG, USHORT

Files

Directory Dynamic Link Library Functions
\OS2\DLL ANSICALL.DLL ANSI terminal support
BKSCALLS.DLL Base keyboard calls
BMSCALLS.DLL Base monitor calls
BVSCALLS.DLL Base Video Subsystem
DOSCALL1.DLL Base OS calls
KBDCALLS.DLL Keyboards calls
MONCALLS.DLL Device monitor calls
MOUCALLS.DLL Mouse calls
MSG.DLL Messages
NLS.DLL National language support
OS2CHAR.DLL OS2 character
QUECALLS.DLL System queue calls
SESMGR.DLL Session manager
VIOCALLS.DLL Base video calls

Publications

IBM
  • OS/2 2.0 Control Program Programming Reference - S10G-6263-00, 1992 PDF
  • OS/2 2.1 Control Program Programming Reference - S10G-6263-01, 1993
  • OS/2 Warp, Version 3 Control Program Programming Guide - G25H-7101-00, Oct 1994
  • OS/2 Warp, Version 3 Control Program Reference - G25H-7102-00, Oct 1994
  • Control Program Programming Guide and Reference - Nov 1996, Errata