[[ header START ]]

Welcome to OS2.GURU site! (eComStation.RU)

Select your language: Russian English Deutch Spanish Italian Portuguese Czech Polish French

Frequently asked questions and answers:
telegram

Форум обсуждение

telegram

Send message

telegram

[ +7-981-8529467 (Санкт-Петербург)

telegram

t.me/os2_guru

eComStation.RU


ru · en · de · es · it · pt · cz · pl · fr
OS/2 is a greatly different operating system for PC (ArcaOS, eComStation, IBM OS/2 Warp)
Applications, news, reviews, support of users, hardware, questions and answers.
 
[What is OS/2?  News  Install  Update  
 
 
Usage  Future  Community  Projects  

How to buy
russian OS/2 apps?

The concept of
OS/2 development

(Map of the site)

 
 
[[ head-3-search ]]

Report: OS/2 compatible hardware

[[ head-3-search END ]]

 
Update

 
Applications

 
Advantages:

 
For developer:

 
(Пайпы программ)

 
Companies:

 
History:

 
(Бонусы)

 
Advice:

 
(Барьеры и решения)

 
Technologies:

 
(Применение в науке, лаборатории, ..)

 

 
Solutions

 
New eComStation:

 
Future:

 
(Ссылки на другие сайты)

 
(Картинка дня)

 
OS/2 artefacts:

 
Gadgets:

eCo Software Developer Connection


About DevCon
Subscription to DevCon
Budget of DevCon
FAQ


Roadmap
eCo Software runtime
eCo Software toolkit
Contacts

  You can sponsor the development of the libraries,
control the expenses

Development of device drivers

Detailed information:

Template of 32-bit driver for eComStation

Download eCo Software simple 32-bit driver.
  • 32-bit driver
  • interaction with ACPI driver

KEE interface

To develop modern drivers you should use DevHlp, KEE interfaces. Read DDK, pddref.inf for details.

Tutorials

Suspend/resume

eCS supports suspend/resume for one-core and multi-core desktops and notebooks. You can use APM interface (read DDK -> in_out.inf, Input/Output Device Driver Reference) or hidden kernel function SaveRestore()

/*
*  Function SaveRestore
* @pkt     standard drivers packet
* @return  None
* Note: This function is undocemmented in pddref.inf
*/
void
SaveRestore(
    PRPSAVERESTORE pkt)
{
    PrintDevCall((PRPH)pkt, "SaveRestore");
    if (PSD)
    {
        PSD->AcpiOsPrintf("APM:SaveRestore - %x\n",(ULONG)pkt->FuncCode);
    }
    pkt->rph.Status |= STDON;

}

 dd    OFFSET FLAT:SaveRestore  ; Command code 20h SaveRestore

 

Please share information with other developers how to:

  • How to process command line parameters?
  • How to gather log, so user can call: copy acpica$ acpi.log
  • How to register driver in resource manager? So users can see it via rmview /IRQ

Programming PCI devices

To create new driver, you need

Wakeup PCI devices

Examples:

  • Wake up sleeping PCI devices at boot time (by Veit) driver, source code
  • Source code of USB drivers (DDK)

Read/write ports from Ring3

Example how to read/write to the ports

Mapping physical memory to linear

Use this method (via SCREEN$) memory mapping via SCREEN$ (thx LightElf)

Driver debugging

if you are going to do driver debugging, a trap dump partition is a must have. It will save you a lot of time. A usable kernel debugger setup will save you a even more time, but this can be problematic on newer systems that lack a serial port.
Read details: OS/2 Diagnostic Tools and Tips by Steven Levine.

Useful links

 

 
For dummies

Database of OS/2 compatible hardware

 
Reviews


     
  Why eComStation?
Features
Advantages
Usage
Clips and screenshots
   eComStation for
for businessmen
for students and engineers
for reselles of computers
community of users
   Developer
Distribute the program
Description of API, libraries
Start new project
Competition
   Applications
On-line catalogue
Select from eCo Market
   Support service
Contact the web-master
Buy eComStation
Frequently asked questions
for Beginners
 
 
© 2001 - 2021 eCo Software, All rights reserved
Сибирский Медведь технологическая компания
eComStation Serenity Systems International • OS/2 Warp IBM Corporation • ArcaOS Arca Noae