Jump to content

Control Program: Difference between revisions

From EDM2
Ak120 (talk | contribs)
No edit summary
Ak120 (talk | contribs)
mNo edit summary
 
(10 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 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.


The API is composed by:  
==Data types==
* Control Program Functions
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:
* Keyboard Functions
*H - handle
* Mouse Functions
*P - flat pointer
* Video Functions
*NP - flat pointer
*U - unsigned variable.


==Documentation==
List of used data types:
* [[OS2 API:CPI|Control Programming Interface API]]
 
[[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==
{|class="wikitable"
{|class="wikitable"
!Name||Comments|| Alternative
!Directory||Dynamic Link Library||Functions
|-
|-
|| [[ANSICALL.DLL]] || ANSI terminal support|| OSFree
|rowspan=14|\OS2\DLL||[[ANSICALL.DLL]]||ANSI terminal support
|-
|-
|| [[BKSCALLS.DLL]] || Base keyboard calls|| OSFree
|[[BKSCALLS.DLL]]||Base keyboard calls
|-
|-
|| [[BMSCALLS.DLL]] || Base monitor calls|| OSFree
|[[BMSCALLS.DLL]]||Base monitor calls
|-
|-
|| [[BVSCALLS.DLL]] || Base Video Subsystem|| OSFree
|[[BVSCALLS.DLL]]||Base Video Subsystem
|-
|-
|| [[DOSCALL1.DLL]] || DLL that contains entry points for base APIs||
|[[DOSCALL1.DLL]]||Base OS calls
|-
|-
|| [[KBDCALLS.DLL]] || Keyboards calls dynamic link library|| OSFree
|[[KBDCALLS.DLL]]||Keyboards calls  
|-
|-
|| [[MONCALLS.DLL]] || Monitor API|| OSFree
|[[MONCALLS.DLL]]||Device monitor calls
|-
|-
|| [[MOUCALLS.DLL]] || Dynamic link library for mouse calls|| OSFree
|[[MOUCALLS.DLL]]||Mouse calls
|-
|-
|| [[MSG.DLL]] || Message dynamic link library|| OSFree
|[[MSG.DLL]]||Messages
|-
|-
|| [[NLS.DLL]] || National language support dynamic link library|| OSFree
|[[NLS.DLL]]||National language support
|-
|-
|| [[OS2CHAR.DLL]] || OS2 character dynamic link library|| OSFree
|[[OS2CHAR.DLL]]||OS2 character
|-
|-
|| [[QUECALLS.DLL]] || System queue calls dynamic link library|| OSFree
|[[QUECALLS.DLL]]||System queue calls
|-
|-
|| [[SESMGR.DLL]] || Session manager dynamic link library|| OSFree
|[[SESMGR.DLL]]||Session manager
|-
|-
|| [[VIOCALLS.DLL]] || Base video calls dynamic link library|| OSFree
|[[VIOCALLS.DLL]]||Base video calls
|}
|}


==Publications==
==Publications==
* Control Program Programming Guide and Reference, Consolidated ([https://archive.org/download/ToolkitDocs1/Presentation%20Manager%20Programming%20Guide%20and%20Reference.pdf PDF])
;IBM
* CP1.INF - Control Program Programming Guide and Reference, Part 1 of 3 ([http://cyberkinetica.homeunix.net/os2tk45/cp1/ Web]), ([https://archive.org/download/ToolkitDocs1/Control%20Program%20Programming%20Guide%20and%20Reference%201.inf INF])
*''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]
* CP2.INF - Control Program Programming Guide and Reference, Part 2 of 3 ([http://cyberkinetica.homeunix.net/os2tk45/cp2/ Web]), ([https://archive.org/download/ToolkitDocs1/Control%20Program%20Programming%20Guide%20and%20Reference%202.inf INF])
*''OS/2 2.1 Control Program Programming Reference'' - S10G-6263-01, 1993
* CP3.INF - Control Program Programming Guide and Reference, Part 3 of 3 ([http://cyberkinetica.homeunix.net/os2tk45/cp3/ Web]), ([https://archive.org/download/ToolkitDocs1/Control%20Program%20Programming%20Guide%20and%20Reference%203.inf INF])
*''OS/2 Warp, Version 3 Control Program Programming Guide'' - G25H-7101-00, Oct 1994
* API Addendum Volume 1 (PowerPC Edition) - IBM Tookit 4.5 ([http://cyberkinetica.homeunix.net/os2tk45/apibas/ Web]),
*''OS/2 Warp, Version 3 Control Program Reference'' - G25H-7102-00, Oct 1994
* Legacy OS/2 Programming Reference - IBM Tookit 4.5 ([http://cyberkinetica.homeunix.net/os2tk45/prcp/ Web]),
*''[[Control Program Programming Guide and Reference]]'' - Nov 1996, [[Control Program Programming Guide and Reference Errata|Errata]]
* 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 PDF])
 
==Links==
;Alternative Versions
*OS2Linux (Open Source - Common Public License) tried to clone some of the functions of Control Program to run under Linux. [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.


[[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