 
 
 
 
 
 
 
 
 
                                     OS/2 APPLICATION DEVELOPER SERIES
 
 
 
 
 
 
 
                                                          June 7, 1993
 
 
 
 
 
 
 
 
 
 
------------------------------------------------------------------------------
Contents
 
 
   OS/2 APPLICATION DEVELOPER SERIES   I
     How to Enroll   i
     Cancellations   i
     For More Information   i
     For Up-to-the-Minute Schedules   i
     Trademarks   i
   OS/2 for Software Developers, Version 2.X   i
   OS/2 2.X for 1.X Developers   i
   Building OS/2 Device Drivers   i
   Microsoft Windows for Software Developers   i
   Presentation Manager 2.X for Software Developers   i
   Workplace Shell Programming with SOM   i
   Presentation Manager: Windowing and Graphics   i
   Presentation Manager Device Drivers   1
   OS/2 KERNEL Debugging   1
   OS/2 Problem Diagnosis and Resolution Workshop   1
 
   SCHEDULE OF CLASSES   1
 
 
------------------------------------------------------------------------------
OS/2 Application Developer Series
 
 
   The growing popularity and power of the desktop computer are changing
   the face of the computer industry.  As this trend continues, there
   will be a growing demand for applications to run on these machines.
 
   The OS/2 Application Developer series is designed to help the
   professional application developer meet this demand.  The courses are
   lab intensive, combining theory with practical, hands-on experience so
   that the student leaves the class with the core skills needed to get
   the job done.
 
 
How to Enroll
 
 
   To enroll in any of the courses in this brochure, or for additional
   class schedules, call 1-800-IBM-TEACh (1-800-426-8322).  Give the
   enrollment receptionist the number of the course you are interested in
   and your IBM customer number.  If you do not have an IBM customer
   number, one will be assigned to you.
 
   IBM employees may enroll through the Management System for Education
   (MSE) online enrollment system.
 
 
Cancellations
 
 
   Cancellations or changes may be made 10 or more working days prior to
   the scheduled start date of the class without penalty.  Enrollments
   cancelled fewer than 10 working days prior to the scheduled start date
   of the class are subject to a cancellation charge equal to 25% of the
   full tuition.  Cancellations received on or after the start date, will
   be charged the full tuition.
 
 
For More Information
 
 
   For more information about courses in this brochure and about private
   classes, please contact Bob Rohr at (914) 742-5653 or IIN: USIBMHJN at
   IBMMAIL.  Within IBM, Bob can be contacted on tie line 770-5653 or
   ROHR at DALVM1.
 
 
For Up-to-the-Minute Schedules
 
 
   New classes may be added weekly.  For the most current schedule,
   please call 1-800-IBM-TEACh (1-800-426-8322).  Give the operator the
   5-digit external course number.
 
 
Trademarks
 
 
   The following terms in this publication are trademarks of the IBM
   Corporation in the United States or other countries, or both:
 
       C/2
       IBM
       IIN
       OS/2
       OS/2 32
       Presentation Manager
       Workplace Shell
 
   The following terms in this publication are trademarks of other
   companies:
 
       Microsoft Windows (Microsoft Corporation)
 
 
 
-----------------------------------------
OS/2 for Software Developers, Version 2.X
 
 
   EXTERNAL COURSE NUMBER:  N1740
   INTERNAL COURSE NUMBER:  WTDOS20C
   COURSE LENGTH:  5 DAYS
   TUITION:  $1575
 
   OVERVIEW:  Lectures, demonstrations, and hands-on laboratory exercises
   present the primary functions of the OS/2 kernel.  Daily laboratory
   exercises give you experience in implementing the OS/2 Application
   Programming Interface in C programming language.
 
   AUDIENCE:  Systems programmers and engineers who have experience on
   other platforms, and now wish to use OS/2 2.0 as a base for developing
   hardware and software products.
 
   PREREQUISITE:  NONE
 
   COURSE OUTLINE:
 
   INTRODUCTION TO OS/2
 
   o   Design goals of OS/2
   o   Memory organization
   o   Privilege model
   o   Application Programming Interface
   o   Multitasking hierarchy
 
   OS/2 APPLICATION TYPES
 
   o   OS/2 mode windowed applications
   o   OS/2 mode full-screen applications
   o   DOS/Windows mode applications
 
   PROTECTED MODE
 
   o   General purpose and memory registers
   o   Operating modes
   o   Protection mechanisms
   o   Real mode addressing
   o   Protected mode addressing
   o   Memory exceptions
 
   INTRODUCTION TO OS/2 PROGRAMMING
 
   o   Register-based API
   o   Call-based API
   o   C Program template
   o   Function prototypes
   o   Return codes
 
   ENVIRONMENT STRINGS AND COMMAND LINE ARGUMENTS
 
   o   Obtaining environment and command line pointers
   o   Searching the environment
   o   Environment strings
   o   Command line
   o   C Program entry state
 
   PROGRAM DEVELOPMENT
 
   o   Programming tools
   o   header and include files
   o   Development process
   o   LINK386
   o   NMAKE
 
   LABORATORY EXERCISE 1
 
   o   Introduction to the enhanced editor
   o   Writing an OS/2 program
   o   IBM presentation debugger
   o   System exceptions/faults
   o   Displaying command line arguments
   o   Experimenting with DETACH and START
   o   WorkFrame/2
 
   MEMORY MANAGEMENT
 
   o   OS/2 2.0 memory model
   o   Virtual address space
   o   Memory objects
   o   Memory allocation API's
   o   Memory suballocation API's
 
   INTRODUCTION TO MULTITASKING
 
   o   Serial multitasking
   o   Parallel multitasking
   o   Elements of multitasking (sessions, processes, threads)
 
   THREAD MANAGEMENT
 
   o   Thread hierarchy
   o   Creating threads
   o   Thread states
   o   Thread priority
   o   Configuration parameters
   o   C Programming considerations
 
   LABORATORY EXERCISE 2
 
   o   Building a single-thread OS/2 application
   o   Multitasking using two threads
   o   Thread control
   o   Thread management using C functions
 
   SYNCHRONIZING WITH SEMAPHORES
 
   o   Uses of semaphores
   o   Classes and types of semaphores
   o   Application of OS/2 semaphores
   o   Event semaphore API's
   o   Mutex semaphore API's
   o   MuxWait semaphore API's
 
   OS/2 TIMER SERVICES
 
   o   Synchronous timer API's
   o   Asynchronous timer API's
 
   PROCESS MANAGEMENT
 
   o   Process resources
   o   Creating a process
   o   Process isolation
   o   Testing process status
   o   Controlling process termination
 
   SHARED MEMORY OBJECTS
 
   o   Named shared objects
   o   Unnamed shared objects
   o   Shared memory allocation API's
 
   LABORATORY EXERCISE 3
 
   o   Synchronizing threads with event semaphores
   o   Creating and managing processes
   o   Synchronizing parent/child processes
   o   Exit routines
 
   FILE INPUT/OUTPUT
 
   o   OS/2 file systems
   o   Naming OS/2 files
   o   Opening/creating files
   o   Standard file attributes
   o   Extended file attributes
 
   INTERPROCESS COMMUNICATION USING QUEUES
 
   o   Client/server interprocess communication
   o   Que management API's
 
   DYNAMIC LINK LIBRARIES
 
   o   Static linking
   o   Dynamic linking
   o   Code sharing
   o   Building a DLL
   o   Methods of dynamic linking
   o   DLL initialization
 
   LABORATORY EXERCISE 4
 
   o   Load-time dynamic linking
   o   Updating a DLL
   o   Run-time dynamic linking
   o   DLL initialization
   o   Pipes and queues
 
   EXCEPTION MANAGEMENT
 
   o   System exceptions
   o   Types of exceptions
   o   Exception handlers
   o   Exception management data structures
   o   Exception management API's
 
   SESSION MANAGEMENT
 
   o   Session management components
   o   Session hierarchy
   o   Session management API's
 
   INTERPROCESS COMMUNICATION USING PIPES
 
   o   Standard input/output
   o   Anonymous pipes
   o   Named pipes
 
   LABORATORY EXERCISE COMPLETION
 
   CLASS SCHEDULE:  Call 1-800-IBM-TEACh.
 
 
---------------------------
OS/2 2.X for 1.X Developers
 
 
   EXTERNAL COURSE NUMBER:  N1746
   INTERNAL COURSE NUMBER:  WTDPS25C
   COURSE LENGTH:  5 DAYS
   TUITION:  $1575
 
   OVERVIEW:  If you're an experienced OS/2 developer, this advanced
   course is for you!  You'll explore the new 32-bit OS/2 through
   lectures, demonstrations, and intensive hands-on labs.  You'll learn
   how to design, build, and test applications using the 32-bit version
   of OS/2.  This course does not cover the philosophy of OS/2.  Rather,
   it's designed to introduce the experienced OS/2 1.X programmer to
   version 2.0.
 
   AUDIENCE:  Developer, systems designer, or tester who already
   understands threads, critical sections, suspend/resume, parent/child
   process relationships, named and unnamed shared memory, creation of
   DLL modules, and synchronization using semaphores in the OS/2 1.3
   environment.
 
   PREREQUISITE:  Course number N1740/WTDOS20C, OS/2 for Software
   Developers, Version 2.X, or the equivalent experience, and C language
   experience.
 
   COURSE OUTLINE:
 
   INTRODUCTION AND MEMORY MODELS
 
   o   Introduction to the workshop
   o   Introduction to OS/2 2.0
   o   Review of OS/2 concepts
   o   Memory management in OS/2 2.0
   o   API calls for memory management
   o   Laboratory exercise
       -   16-bit application
       -   Conversion of 16-bit to 32-bit application
       -   Allocation of private memory objects
       -   Allocation of shared memory objects
       -   Accessing shared memory objects
       -   Suballocation
 
   THREADS AND SEMAPHORES
 
   o   Lab review
   o   Thread management
   o   Semaphores
   o   Laboratory exercise
       -   32-bit semaphores, threads, and timers
       -   Thread priority
       -   Thread synchronization
       -   MuxWait semaphore setup
       -   Edge/level operation of event semaphore
 
   IBM C SET/2 COMPILER
 
   o   IBM C Set/2 compiler
   o   Laboratory exercise
 
       -   malloc, _alloca, and DosSubAlloc
 
       -   Conversion of MuxWait semaphore setup to multithread library
 
       -   Buffering of printf
 
 
   QUEUES, SIGNALS, AND EXCEPTIONS
 
   o   Queues
   o   Laboratory exercise
           Data transport through queues
   o   Signals and exceptions
   o   Laboratory exercise
           Signal handling
           Signals for error recovery
           Building a dynamically linked DLL
           Building a statically linked DLL
           Building a subsystem
 
   DYNAMIC LINK LIBRARIES
 
   o   Performance considerations
   o   DLL's and automatic data segments
   o   Exception handlers
 
   CLASS SCHEDULE:  Call 1-800-IBM-TEACh.
 
 
----------------------------
Building OS/2 Device Drivers
 
 
   EXTERNAL COURSE NUMBER:  E4794
   INTERNAL COURSE NUMBER:  WTDOS30C
   COURSE LENGTH:  5 DAYS
   TUITION:  $1575
 
   OVERVIEW:  Learn how to compile, install, and test an OS/2 device
   driver for the 1.3 and 2.0 platforms.
 
   AUDIENCE:  Experienced system programmers and developers.
 
   PREREQUISITE:  Assembler language or C language.  Course number
   N1740/WTDOS20C or equivalent programming experience.  This course is
   intended for experienced systems programmers who will write device
   drivers for OS/2.
 
   COURSE OUTLINE:
 
   DEVICE DRIVER INTRODUCTION
 
   o   dd def PMD's, BDD's, PDD's, VDD's (char vs. block)
   o   Real versus protected
   o   16-bit segmented model - enhanced for OS/2 2.0
 
   OPERATION
 
   o   task time (init)
   o   interrupt time (timer, IRQ's)
 
   STRUCTURE
 
   o   Device header
       -   Device attribute
   o   Strategy entry point
   o   Initialization, command 0 (special case)
       -   Ring 3
       -   Application context
       -   IOPL OK
       -   Some API's available
       -   Some dev hlprs
   o   Sample code fragments
 
   OS/2 STRATEGY COMMANDS
 
   TOOLS
 
   o   MASM
   o   ASDT - demo
   o   ASDTSYM
   o   IBM C/2
   o   LINK 16-bit
   o   Kernel debugger/ASDT
 
   OS/2 DEVICE HELPERS
 
   USING EXTERNAL INTERRUPTS
 
   DESIGNING BLOCK DEVICE DRIVERS
 
   DRIVERS THAT USE ABIOS
 
   o   Device ID
   o   Logical ID
 
   OS/2 32-BIT ENHANCEMENTS
 
   o   Using 32-bit code
   o   Using 32-bit device helpers
 
   DESIGN TIPS
 
   o   Performance
   o   3 MS rule
   o   Interrupt rules
   o   Testing
 
   DEVICE HELPER REFERENCE
 
   DEMO DEVICE DRIVER
 
   DEMO DEVICE DRIVER USING C
 
   APPLICATION/SYSTEM DEBUG TOOL - ASDT REFERENCE
 
   LAB EXERCISES
 
   o   Character driver with initialization context only
   o   Character driver with strategy commands, open, and write
       -   Write under interrupt
       -   Handling multiple overlapping requests
   o   ABIOS with hardware interrupts
 
   CLASS SCHEDULE:  Call 1-800-IBM-TEACh.
 
 
-----------------------------------------
Microsoft Windows for Software Developers
 
 
   EXTERNAL COURSE NUMBER:  N1741
   INTERNAL COURSE NUMBER:  WTDMP80C
   COURSE LENGTH:  5 DAYS
   TUITION:  $1575
 
   OVERVIEW:  The Windows programming environment is a popular
   application base for the 90's.  This intensive, hands-on lab course
   gives you an in-depth introduction to creating applications in this
   domain.
 
   AUDIENCE:  Developers of applications programs.
 
   PREREQUISITE:  Experience with C-language programming.  Familiarity
   with Windows as a user; however, prior Windows programming experience
   is not required.
 
   COURSE OUTLINE:
 
   INTRODUCTION TO WINDOWS
 
   o   Windows overview
   o   Writing Windows applications
   o   Messages
   o   Drawing with GD1
   o   The Windows development process
 
   PROGRAMMING USER INTERFACES
 
   o   Introduction to painting and clipping
   o   Handling user input
   o   Scroll bar programming
   o   Menus and accelerators
   o   Introduction to dialog boxes
   o   Dialog box controls
   o   Advanced dialog topics
 
   MEMORY MANAGEMENT
 
   WRITING DYNAMIC LINK LIBRARIES
 
   FILE INPUT AND OUTPUT
 
   SUBCLASSING
 
   HANDLING LENGTHY PROCESSING
 
   PRINTING
 
   THE CLIPBOARD
 
   THE MULTIPLE DOCUMENT INTERFACE
 
   WINDOWS FUTURE
 
   CLASS SCHEDULE:  This course is scheduled on request.  Please call Bob
   Rohr, 914/742-5653.
 
 
------------------------------------------------
Presentation Manager 2.X for Software Developers
 
 
   EXTERNAL COURSE NUMBER:  N1688
   INTERNAL COURSE NUMBER:  WTDPM00C
   COURSE LENGTH:  5 DAYS
   TUITION:  $1575
 
   OVERVIEW:  Learn how to build an application using the presentation
   manager facilities to handle screen interactions.   You'll also
   discuss creating windows, their attributes, and message processes.
   The course is 50% lecture and 50% hands-on laboratory exercises each
   day.  The exercises will be done in C.
 
   AUDIENCE:  Systems programmers who will use presentation manager for
   developing software products.
 
   PREREQUISITE:  C programming experience is required.  Course number
   N1740/WTDOS20C or OS/2 experience is recommended.
 
   COURSE OUTLINE:
 
   INTRODUCTION TO PRESENTATION MANAGER
 
   o   What is presentation manager?
   o   Goals of presentation manager
 
   WINDOW OVERVIEW
 
   o   What is a window?
   o   Parent and child windows
   o   The standard window
 
   PRESENTATION MANAGER OVERVIEW
 
   o   Application types
   o   Introduction to messages
 
   INTRODUCTION TO PRESENTATION MANAGER PROGRAMMING
 
   o   Presentation manager program boilerplate
 
   MESSAGES
 
   o   Message data structure
   o   Receiving messages
   o   Transmitting messages
 
   THE DEVELOPMENT PROCESS
 
   o   Include files
   o   Building 16- and 32-bit programs
 
   PAINTING AND CLIPPING
 
   o   Presentation manager device architecture
   o   Points, rectangles, and regions
   o   The WM_PAINT message
 
   HANDLING USER INPUT
 
   o   Keyboard messages
   o   Mouse messages
 
   SCROLL BARS
 
   o   Scroll bars in the standard window
   o   Programming vertical scroll bars in a text-based program
 
   MENUS
 
   o   Resource file menus
   o   Menu notification and control messages
   o   Accelerators
 
   INTRODUCTION TO DIALOG BOXES
 
   o   Message boxes
   o   Modal dialogs
 
   DIALOG BOX CONTROLS
 
   o   Radio buttons
   o   Entry fields
   o   List boxes
   o   Combo boxes
   o   Spin buttons
 
   ADVANCED DIALOG TOPICS
 
   o   Keystrokes in dialogs
   o   Modeless dialogs
 
   FONTS
 
   o   Bitmap versus vector fonts
   o   Selecting a bitmap font
 
   PRESENTATION MANAGER MULTITASKING
 
   o   Using background threads
   o   Types of background threads
   o   Communicating between threads
 
   SUBCLASSING AND HOOKS
 
   o   Subclassing windows
   o   Hooking a queue
 
   HELP SYSTEMS
 
   o   Writing help text
   o   Writing help table resources
   o   Modifying application source
 
   2.X STANDARD DIALOGS
 
   o   Standard font dialog
   o   Standard file dialog
 
   WINDOW WORDS
 
   o   System maintained area
   o   Application maintained area
 
   INTRODUCTION TO GRAPHICAL PROGRAM INTERFACE
 
   o   Graphical program interface capabilities
   o   Graphical program interface programming techniques
 
   PRESENTATION SPACES
 
   o   Cached micro presentation spaces
   o   Micro presentation spaces
   o   Normal presentation spaces
 
   DEBUGGING PRESENTATION MANAGER PROGRAMS
 
   o   Codeview for OS/2 1.X
   o   IBM presentation manager debugger for OS/2 2.X
 
   LAB CODE LISTINGS
 
   EDITOR TUTORIAL
 
   CLASS SCHEDULE:  Call 1-800-IBM-TEACh.
 
 
------------------------------------
Workplace Shell Programming with SOM
 
 
   EXTERNAL COURSE NUMBER:  N1745
   INTERNAL COURSE NUMBER:  WTDPM05C
   COURSE LENGTH:  5 DAYS
   TUITION:  $1575
 
   OVERVIEW:  Get first-hand experience of the System Object Model (SOM)
   and workplace programming with lectures and intensive hands-on lab
   exercises.
 
   AUDIENCE:  Application and system programmers that need to understand
   the workings of the OS/2 Version 2 Workplace Shell (WPS) and System
   Object Model (SOM).
 
   PREREQUISITE:  Prior attendance in course number N1688/WTDPM00C,
   Presentation Manager 2.X for Software Developers or equivalent
   experience, and C programming experience is required.  Basic knowledge
   of object-oriented concepts is recommended.
 
   COURSE OUTLINE:
 
   INTRODUCTION TO THE WORKSHOP
 
   INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING
 
   o   Encapsulation
   o   Inheritance
   o   Polymorphism
 
   INTRODUCTION TO SOM
 
   o   Defining a class
   o   C-language bindings
   o   SOM precompiler
   o   Metaclasses
 
   WRITING A SIMPLE SOM CLASS
 
   o   Writing the .CSC file
   o   Accessing methods and data
   o   Writing a client program
 
   SOM INHERITANCE
 
   o   Overriding methods
   o   Public and private methods
   o   Public and private data
 
   METACLASSES
 
   o   Explicit metaclasses
   o   Implicit metaclasses
 
   A COMPLETE .CSC FILE
 
   o   Required sections
   o   Optional sections
 
   THE SOM DEVELOPMENT PROCESS
 
   o   Environment variables
   o   Running the SOM compiler
 
   DEBUGGING SOM APPLICATIONS
 
   o   Using IPMD
   o   Using SOM tracing
 
   EXTENDED FILE ATTRIBUTES
 
   o   Launching an EXE file
 
   INTRODUCTION TO WORKPLACE SHELL
 
   o   Workplace shell objects
   o   Writing a workplace shell application
   o   Object ID's and setup strings
 
   A WORKPLACE SHELL COMPATIBLE APPLICATION
 
   o   Extended attributes and templates
   o   Installing the application
 
   A WORKPLACE SHELL AWARE APPLICATION
 
   o   Writing a WPDataFile subclass
   o   Installing a workplace shell aware application
 
   MORE ON DATE FILE SUBCLASSING
 
   o   Printing
   o   The development cycle
 
   WORKPLACE SHELL IMPLEMENTATION
 
   o   The desktop
   o   OS2.INI and extended attributes
 
   MENU WINDOWS
 
   o   Popup menus
   o   Conditional cascades
 
   MENUS IN A WORKPLACE SHELL OBJECT
 
   o   Standard object popups
   o   Filtering popups
   o   Adding/deleting popups
   o   Processing selections
 
   CONTAINER WINDOW CLASS
 
   o   Views
   o   Notification messages
   o   Record hierarchy
 
   FOLDER WORKPLACE CLASS
 
   o   Instance methods
   o   Writing a folder subclass
 
   NOTEBOOK WINDOWS
 
   o   Notebook window class
   o   Inserting pages
 
   NOTEBOOKS IN WORKPLACE SHELL
 
   o   Setting pages
   o   Adding/deleting pages
   o   Saving instance data
 
   DRAG AND DROP
 
   o   Writing a source EXE or object
   o   Writing a destination EXE or Object
 
   CREATING AN OBJECT'S WINDOW
 
   o   custom open views
   o   The in-use list
 
   CREATING A NEW PROCESS
 
   o   why create a process?
   o   Interprocess communication
 
   CLASS SCHEDULE:  Call 1-800-IBM-TEACh.
 
 
--------------------------------------------
Presentation Manager: Windowing and Graphics
 
 
   EXTERNAL COURSE NUMBER:  N1744
   INTERNAL COURSE NUMBER:  WTDPM10C
   COURSE LENGTH:  5 DAYS
   TUITION:  $1575
 
   OVERVIEW:  Tackle advanced windowing topics like dialog controls and
   graphical program interface (GPI) graphics in this intensive
   machine-lab course.  You'll examine numerous example programs and
   write sophisticated applications to reinforce lecture topics.
 
   AUDIENCE:  Systems programmers using presentation manager for
   developing software products.
 
   PREREQUISITE:  Before taking this class, you should first attend
   course number N1688/WTDPM00C, Presentation Manager for 2.X Software
 
   Developers or have at least year experience writing presentation
   manager programs.
 
   COURSE OUTLINE:
 
   INTRODUCTION TO GRAPHICAL PROGRAM INTERFACE
 
   o   Modal drawing interface
   o   Categories of graphical program interface calls
 
   DEVICE CONTEXTS AND PRESENTATION SPACES
 
   o   Types of device contexts
   o   Types of presentation spaces
   o   Sample usage
 
   INTRODUCTION TO DEVICE INDEPENDENCE
 
   o   Presentation page units
   o   Introduction to coordinate systems
 
   LINES AND BOXES
 
   o   Line and box primitives
   o   Line and box attributes
 
   COLOR AND MIX
 
   o   Logical and physical colors
   o   Color tables
   o   Mix modes
 
   MOUSE MESSAGES
 
   o   Mouse messages
   o   Capturing the mouse
 
   WINDOW WORDS
 
   o   Window-specific data
   o   System usage of window data
 
   SEGMENTS AND RETAINED GRAPHICS
 
   o   Drawing modes
   o   Segment attributes
   o   Setting labels in segments
   o   Editing segments
 
   INTRODUCTION TO TRANSFORMS
 
   o   World coordinates
   o   Matrix arithmetic
   o   Scaling, translating, rotating, and shearing
 
   APPLYING TRANSFORMS
 
   o   Transform API
 
   VECTOR FONTS
 
   o   Bitmap versus vector fonts
   o   Creating a vector font
   o   Transforming vector fonts
   o   Vector font special effects
 
   CORRELATION
 
   o   Setting correlation tags
   o   Correlation API
 
   AREAS
 
   o   Drawing and filling areas
   o   Fill modes
 
   PATHS
 
   o   Geometric lines
   o   Clip paths
 
   ARCS
 
   o   Arc attributes
   o   Full arcs
   o   Three-point and partial arcs
   o   Fillets and splines
 
   BITMAPS
 
   o   Bitmap formats
   o   Creating a bitmap
   o   Bitmap APE
   o   Shadow bitmaps
 
   METAFILES
 
   o   Creating a metafile DC
   o   Playing a metafile
 
   ADVANCED MENUS
 
   o   Menu types and structure
   o   Methods to create menus
   o   System menus
   o   Owner-drawn menus
 
   FRAME WINDOWS
 
   o   Custom frame controls
 
   ADVANCED DIALOG CONTROLS
 
   o   Presentation parameters
   o   User-paint and owner-drawn buttons and list boxes
 
   CUSTOM CONTROL WINDOWS
 
   o   Managing memory
   o   Responding to dialog keystrokes
 
   PROFILES
 
   o   System and application profiles
   o   Profile API
 
   PRINTING
 
   o   Printer DC types
   o   Creating a printer DC
   o   Reading the system profile for printer information
 
   CLIPBOARD
 
   o   Clipboard protocol
   o   Clipboard data formats
   o   Clipboard API
 
   DYNAMIC DATA EXCHANGE
 
   o   DDE protocol
   o   DDE API
 
   LAB EXERCISES:
 
   LAB 1, INTRODUCTION TO GRAPHICAL PROGRAM INTERFACE
 
   o   Introduction to draw lab project
   o   Device independence and window-specific data
   o   Drawing rubber band lines
   o   Drawing rubber band boxes
   o   Fill patterns (optional)
   o   Changing the mouse pointer (optional)
   o   Line styles (optional)
   o   Ignoring the first button one down (optional)
 
   LAB 2, RETAINED GRAPHICS AND VECTOR FONTS
 
   o   Retained graphics
   o   The zooming transform
   o   Graphical text (vector fonts)
   o   Correlation (optional)
 
   LAB 3, ARCS, METAFILES, AND CUSTOM MENUS
 
   o   Arcs
   o   Metafiles
   o   Erasing the current picture (optional)
   o   Areas (optional)
   o   Geometric lines (optional)
   o   Bitmaps as primitives (optional)
 
   CUSTOM FRAME CONTROLS, CUSTOM DIALOG CONTROLS, AND PROFILES
 
   o   Owner-drawn menus
   o   Custom frame controls
   o   Customizing dialog controls
   o   Saving settings in a profile
   o   Printing (optional)
   o   Enhancing the owner-drawn check box
 
   CLASS SCHEDULE:  Call 1-800-IBM-TEACh.
 
 
-----------------------------------
Presentation Manager Device Drivers
 
 
   EXTERNAL COURSE NUMBER:  N1742
   INTERNAL COURSE NUMBER:  WTDPM20C
   COURSE LENGTH:  5 DAYS
   TUITION:  $1575
 
   OVERVIEW:  Master the skill of supporting graphical devices (printers
   and displays) under OS/2 presentation manager.  Lectures and
   laboratory exercise illustrate the main features of a presentation
   driver.
 
   AUDIENCE:  Software developers, designers, and testers working
   directly with presentation drivers.  This is an advanced, hands-on
   course.
 
   PREREQUISITE:  Students are required to have at least 6 months
   experience programming in C and have written non-trivial presentation
   manager application programs or have attended the following courses:
 
       N1740/WTDOS20C, OS/2 for Software Developers, Version 2.X
       N1688/WTDPM00C, Presentation Manager 2.X for Software Developers
 
   COURSE OUTLINE:
 
   THE OS/2 DEVICE MODEL
 
   o   Device independence
   o   Layers of OS/2
   o   Presentation driver components
   o   The print manager
   o   The spooler
 
   INTRODUCTION TO PRINTING
 
   o   Supporting device independent graphics
   o   Presentation spaces
   o   Device contexts
   o   The OS2.INI file
   o   Printing a document
 
   THE BUILD PROCESS
 
   o   Tools and utilities
   o   Module definition file
   o   Debugging
 
   PRESENTATION DRIVER OVERVIEW
 
   o   Entry points
   o   Function classes
   o   Call structure
   o   General considerations
 
   DRIVER INITIALIZATION
 
   o   Enable Subfunctions
   o   Flow of initialization
   o   Flow of termination
   o   Exit list processing
 
   SYSTEM SERVICES AND QUERIES
 
   o   System facilities at ring 2
   o   Query functions
 
   INTRODUCTION TO DRAWING
 
   o   Required functions
   o   Attributes
   o   Text attributes
   o   Text implementation
 
   DRAWING LINES
 
   o   Line types
   o   Line attributes
   o   Line implementation
 
   SIMULATED AND INTERNAL FUNCTIONS
 
   o   Transforms
   o   Clipping
   o   Bounds
   o   Engine internal functions
 
   FONTS
 
   o   Font definitions
   o   Engine and device fonts
   o   Font queries
   o   Realizing fonts
 
   COLOR
 
   o   Color tables
   o   Color mapping
   o   Dithering
   o   Color realization
   o   Mix modes
 
   BITMAPS
 
   o   Bitmap definitions
   o   Working with bitmaps
   o   Bitblts
 
   DISPLAY DRIVERS
 
   o   Resources
   o   Correlation
   o   Drawing to the display
   o   AVIO
 
   PRINTER DRIVERS
 
   o   Spooler
   o   Queued printing
   o   Data formats
   o   Banding
   o   Printer set up
   o   Brute force printing
 
   SOURCE CODE LISTINGS
 
   LAB EXERCISES
 
   CLASS SCHEDULE:  Call 1-800-IBM-TEACh.
 
 
---------------------
OS/2 KERNEL Debugging
 
 
   INTERNAL COURSE NUMBER:  E4781
   EXTERNAL COURSE NUMBER:  WTDPS10C
   COURSE LENGTH:  3 DAYS
   TUITION:  $945
 
   OVERVIEW:  If you're an experienced OS/2 developer, this advanced
   course is for you!  You'll learn how to use the kernel debugger to
   view OS/2 2.0 data structures and applications.  Lectures,
   demonstrations, and lab exercises let you explore the inner workings
   of the OS/2 2.0 Kernel Debugger.  This is an advanced course designed
   for experienced OS/2 developers.  It is not a general overview of OS/2
   Version 2.0.
 
   AUDIENCE:  Developers, system designers, or testers that understand
   the concepts of OS/2 2.0 and who have a need to know how to use it.
 
   PREREQUISITE:  The ability to read assembly language and C language
   source listings, and a basic understanding of OS/2 concepts.
 
   COURSE OUTLINE:
 
   OVERVIEW OF THE KERNEL DEBUGGER
 
   PAGE DEMAND MEMORY MANAGEMENT - CPU PAGE TRANSLATION
 
   SOME API FOR MEMORY MANAGEMENT (FOR ANALYSIS W/ DEBUGGER)
 
   THE LDT AND GDT:  THUNKING AT THE 16-BIT LDT/GDT
 
   INTRODUCTION TO SEMAPHORE API (FOR ANALYSIS W/ DEBUGGER)
 
   KERNEL DEBUGGER LAB EXERCISES
 
   CLASS SCHEDULE:  This course is scheduled on request.  Please call Bob
   Rohr, 914/742-5653.
 
 
----------------------------------------------
OS/2 Problem Diagnosis and Resolution Workshop
 
 
   EXTERNAL COURSE NUMBER:  N1743
   INTERNAL COURSE NUMBER:  WTDPS15C
   COURSE LENGTH:  5 DAYS
   TUITION:  $1575
 
   OVERVIEW:  This 5-day workshop combines lectures, problem analysis,
   and hands-on lab exercises to duplicate real-world field conditions
   and situations.  You'll learn how to identify and quickly resolve
   problems.
 
   As a bonus, you'll receive a FREE OS/2 Survival Kit--a complete set of
   OS/2 diagnostic tools, chosen for their ease-of-use and efficiency.
 
   AUDIENCE:  Systems programmers, software developers, and systems
   engineers.
 
   PREREQUISITE:  Experience installing and using OS/2 program in
   assembler or C.  Programming experience with OS/2 or VM is helpful.
 
   COURSE OUTLINE:
 
   DEBUG METHODOLOGY
 
   o   Problem classifications
           Developer/user
           Static/dynamic
           Onsite/remote debug
 
   OS/2 SPECIFIC ISSUES
 
   o   Installation caveats
   o   Access control boundaries
   o   Address translation mechanisms
   o   Address maps, selector usage
   o   Module isolation - applications/OS/2/libraries/device drivers
 
   PROBLEM SCENARIOS
 
   o   Trap OD, OC
   o   Deadly embraces
   o   Data corruption
   o   Unbalanced priorities
   o   PM collapse/lockup
 
   DEBUG TOOLS
 
   o   IPMD
   o   Dynamic error logging
           Trace - API, protocol, configuration system parameters, OS/2
           internal trace ID's
           Error log - utilities
   o   ASDT, ASDT32
           Installation
           REXX symbol conversion
   o   Kernel debugger (KDB)
           Installation
           Utilities
           Swapper management
           Mapsym
           Profit/extra
   o   Dump formatter
           Onsite procedures
           Remote debug procedures
 
   LAB EXERCISES
 
   CLASS SCHEDULE:  Call 1-800-IBM-TEACh.
 
 
------------------------------------------------------------------------------
Schedule of Classes
 
 
   Additional classes are planned.  For up-to-the-minute schedules, call
   1-800-IBM-TEACh (1-800-426-8322).
 
COURSE TITLE                          CODE       LOCATION          DATES
Building OS/2 Device Drivers          E4794      Charlotte         06/21-06/25
Building OS/2 Device Drivers          E4794      Thornwood         07/12-07/16
Building OS/2 Device Drivers          E4794      Raleigh           07/19-07/23
Building OS/2 Device Drivers          E4794      Santa Teresa(*)   09/20-09/24
Building OS/2 Device Drivers          E4794      Boca Raton        10/18-10/22
 
Microsoft Windows for SW Developers   E4848      Raleigh           06/14-06/18
Microsoft Windows for SW Developers   E4848      Boca Raton        08/09-08/13
Microsoft Windows for SW Developers   E4848      Boca Raton        08/16-08/20
 
OS/2 for SW Developers, V 2.X         E4783      Thornwood         06/28-07/02
OS/2 for SW Developers, V 2.X         E4783      Santa Teresa(*)   07/19-07/23
OS/2 for SW Developers, V 2.X         E4783      Austin            07/19-07/23
OS/2 for SW Developers, V 2.X         E4783      Boca Raton        07/26-07/30
OS/2 for SW Developers, V 2.X         E4783      Charlotte         08/23-08/27
OS/2 for SW Developers, V 2.X         E4783      San Jose          08/23-08/27
OS/2 for SW Developers, V 2.X         E4783      Raleigh           09/13-09/17
OS/2 for SW Developers, V 2.X         E4783      Thornwood         10/11-10/15
OS/2 for SW Developers, V 2.X         E4783      Santa Cruz        10/11-10/15
OS/2 for SW Developers, V 2.X         E4783      Raleigh           12/13-12/17
 
OS/2 KERNEL Debugging                 E4781      Raleigh           08/23-08/27
 
OS/2 Prob Diagnosis & Resolution      E4828      Boca Raton        06/07-06/11
OS/2 Prob Diagnosis & Resolution      E4828      Rockville         06/21-06/25
OS/2 Prob Diagnosis & Resolution      E4828      Dallas            07/12-07/16
 
OS/2 2.X for 1.X Developers           E4784      Santa Teresa(*)   06/14-06/18
OS/2 2.X for 1.X Developers           E4784      Boca Raton        06/28-07/02
OS/2 2.X for 1.X Developers           E4784      Thornwood         06/28-07/02
OS/2 2.X for 1.X Developers           E4784      Raleigh           07/12-07/16
OS/2 2.X for 1.X Developers           E4784      Boca Raton        09/13-09/17
OS/2 2.X for 1.X Developers           E4784      Thornwood         09/20-09/24
OS/2 2.X for 1.X Developers           E4784      Raleigh           10/25-10/29
OS/2 2.X for 1.X Developers           E4784      Thornwood         11/29-12/03
OS/2 2.X for 1.X Developers           E4784      Raleigh           12/06-12/10
 
Pres Mgr Device Drivers               E4809      Charlotte         07/26-07/30
Pres Mgr Device Drivers               E4809      Santa Teresa(*)   08/09-08/13
 
Pres Mgr 2.X for SW Developers        E4785      Thornwood         06/07-06/11
Pres Mgr 2.X for SW Developers        E4785      Raleigh           08/02-08/06
Pres Mgr 2.X for SW Developers        E4785      Boca Raton        08/23-08/27
Pres Mgr 2.X for SW Developers        E4785      Austin            09/13-09/17
Pres Mgr 2.X for SW Developers        E4785      Charlotte         09/20-09/24
Pres Mgr 2.X for SW Developers        E4785      San Jose          09/20-09/24
Pres Mgr 2.X for SW Developers        E4785      Raleigh           10/04-10/08
Pres Mgr 2.X for SW Developers        E4785      Austin            10/18-10/22
Pres Mgr 2.X for SW Developers        E4785      Austin            11/01-11/05
Pres Mgr 2.X for SW Developers        E4785      Santa Cruz        11/08-11/12
Pres Mgr 2.X for SW Developers        E4785      Thornwood         12/13-12/17
Pres Mgr: Windowing/Graphing          E4819      Endicott          07/19-07/23
Pres Mgr: Windowing/Graphing          E4819      Rockville         07/26-07/30
Pres Mgr: Windowing/Graphing          E4819      Charlotte         09/13-09/17
Pres Mgr: Windowing/Graphing          E4819      Austin            09/27-10/01
Pres Mgr: Windowing/Graphing          E4819      Boca Raton        10/04-10/08
Pres Mgr: Windowing/Graphing          E4819      Raleigh           11/15-11/19
Pres Mgr: Windowing/Graphing          E4819      Charlotte         12/06-12/10
 
Workplace Shell Prog with SOM         E4782      Endicott          06/07-06/11
Workplace Shell Prog with SOM         E4782      Santa Teresa(*)   06/21-06/25
Workplace Shell Prog with SOM         E4782      Thornwood         08/09-08/13
Workplace Shell Prog with SOM         E4782      Boca Raton        08/16-08/20
Workplace Shell Prog with SOM         E4782      Santa Teresa(*)   08/23-08/27
Workplace Shell Prog with SOM         E4782      Boca Raton        11/08-11/12
Workplace Shell Prog with SOM         E4782      Charlotte         11/15-11/19
