Annotation of os232sdk/toolkt20/read.me, revision 1.1.1.1

1.1       root        1: As the SDK represents Beta-level code, there will be bugs
                      2: that we discover as we further test the code prior to
                      3: shipping each release.  Below are the items we have found to
                      4: date.  Also listed is advice on developing applications with
                      5: this release of the SDK.
                      6: 
                      7: SYSTEM CONFIGURATION NOTES:
                      8: 
                      9:      a.  If your system has a secondary partition formatted
                     10:      with HPFS before you install, the System Install does
                     11:      not automatically add the proper support to your disk.
                     12:      You will need to add following line to your CONFIG.SYS
                     13:      (for an HPFS partition "D:"):
                     14: 
                     15:           IFS=C:\OS2\HPFS.IFS /C:64 /AUTOCHECK:D
                     16: 
                     17:      b.  You may notice that the DIR command is slow in this
                     18:      pre-release of the system.  A temporary workaround is
                     19:      to add the following two lines to your CONFIG.SYS:
                     20: 
                     21:           CODEPAGE=437,850
                     22:           DEVINFO=KBD,US,C:\OS2\KEYBOARD.DCP
                     23: 
                     24:      c.  The install process does not automatically
                     25:      configure your system to support XMS extended memory in
                     26:      the DOS boxes.  To add this support, insert this line
                     27:      into your CONFIG.SYS:
                     28: 
                     29:           DEVICE=C:\OS2\MDOS\VXMS.SYS
                     30: 
                     31:      This line must come after the line
                     32: 
                     33:            DEVICE=C:\OS2\MDOS\VEMM.SYS
                     34: 
                     35: 
                     36: NETWORK SUPPORT NOTES:
                     37: 
                     38:      a.  Certain systems configurations and network cards
                     39:      will not work with the SDK.  Configurations that are
                     40:      known to work are:
                     41: 
                     42:      PS/2 Model 80, 3Com EtherlinkMC card, NetBEUI transport
                     43:      Compaq 386/20, 3Com EtherlinkII card, NetBEUI transport
                     44:      Compaq 386/16, Ungermann-Bass 16-bit card, XNS
                     45:           monolithic  transport
                     46:      Compaq 386/20, Ungermann-Bass 8-bit net card, XNS
                     47:      PS/2 Model 80, Ungermann-Bass NUI card, XNS
                     48:      Northgate 33Mhz, Ungermann-Bass 16-bit net card, XNS
                     49:      PS/2 Model 80, IBM Token Ring Adapter A, NetBEUI
                     50: 
                     51:      Configurations that are known to not work are:
                     52: 
                     53:      PS/2 Model 80, Ungermann-Bass NICps/2 card, XNS
                     54:            monolithic transport
                     55:      Compaq 386/20e, 3Com Etherlink II card, XNS NDIS
                     56:            transport
                     57: 
                     58:      For this pre-release, we have not tested a large number
                     59:      of combinations of network cards and server software.
                     60:      If you run into a configuration that you think should
                     61:      be supported but fails, please report the problem via
                     62:      Microsoft Online.
                     63: 
                     64:      b.  The workstation software in this pre-release of the
                     65:      SDK will not communicate with IBM Lan Servers over an
                     66:      IBM Baseband or Broadband network.
                     67: 
                     68:      c.  On machines using the FAT file system, the network
                     69:      support install may set the DISKCACHE at too high a
                     70:      level for your machine, leaving you with too little
                     71:      memory for the OS/2 system.  One symptom is that the
                     72:      NET START WORKSTATION command will fail with an "Access
                     73:      Denied" error.  If you suspect you may be experiencing
                     74:      this error, change the line in CONFIG.SYS to
                     75: 
                     76:           DISKCACHE = 128
                     77: 
                     78:      and try rebooting your system.
                     79: 
                     80: 
                     81: 
                     82: API NOTES:
                     83: 
                     84:      a.  When IMPORTing a system API into your source code,
                     85:      you should do so using only the ORDINAL for the
                     86:      function, not the name.  Ordianals for each API are
                     87:      given in the file BSEORD.H  This rule will be fully
                     88:      enforced in a future release of the SDK.
                     89: 
                     90:      b.  The 32-bit MLE (Multi-Line Edit) APIs are not fully
                     91:      implemented in this release of the SDK.
                     92: 
                     93:      c.  The 32-bit version of the WinAddSwitchEntry API is
                     94:      not working in this release of the SDK.
                     95: 
                     96:      d.  The constants used for the INCL_DOSDEVICES class of
                     97:      API in bsedos.h and bsedos16.h have been changed since
                     98:      the first SDK, as promised in the earlier readme file.
                     99:      The definitions are now equivalent to those used in the
                    100:      OS/2 1.2 Toolkit.
                    101: 
                    102:      e.  If an application is to remain 16-bit, it should be
                    103:      compiled and linked with the 1.2 toolkit header files
                    104:      and libraries.  If it is compiled with a 16-bit
                    105:      compiler (c5.1/c5.2/c6.0) and OS/2 2.0 SDK
                    106:      header files, and linked with the 2.0 SDK's libraries,
                    107:      it is probable that the application will have
                    108:      references to API's that are not in the same system DLL
                    109:      in the 2.0 system that they were in the 1.2 system.
                    110:      This will cause the 1.2 system to refuse to load the
                    111:      application because it is unable to resolve the dynamic
                    112:      links.  
                    113: 
                    114:      f.  The DosQuerySysInfo API is not fully implemented.
                    115:      You cannot get information on shared and private memory
                    116:      available to the calling process.
                    117: 
                    118:      g.  DosStartSession:  if the SessionType field of the
                    119:      STARTDATA structure is 0 for "allow the system to
                    120:      decide", a PM application will not be started
                    121:      correctly.  If it is a 3, specifying a PM app
                    122:      explicitly, the application will start correctly.
                    123: 
                    124: 
                    125: 
                    126: QUICKHELP NOTES:
                    127: 
                    128:      a.  To reduce the number of open file handles in
                    129:      QuickHelp, you can concatenate the files adg20.hlp,
                    130:      api1.hlp, and api2.hlp into a single database called
                    131:      msos20.hlp.  To do so type
                    132: 
                    133:           COPY /B API1.HLP+API2.HLP+ADG20.HLP  MSOS20.HLP
                    134: 
                    135:      b.  We have noticed some errors in accessing option
                    136:      information in the MASM386.HLP database under
                    137:      QuickHelp.  If the topic you are seeking is positioned
                    138:      at the top of the screen when you click on it with the
                    139:      mouse, the reference won't take you to the right spot
                    140:      in the database.  The workaround is to simply position
                    141:      the topic further down on the screen before you click
                    142:      on it.
                    143: 
                    144: 
                    145: 
                    146: CV386 NOTES:
                    147: 
                    148:      a.  Debugging floating point programs on a 386 system
                    149:      without a 387 The system emulator currently does not
                    150:      single-step correctly.  This means that users who are
                    151:      single stepping at assembly level will see more than
                    152:      one instruction executed when they single-step under
                    153:      CV386. More precisely, if the cursor is on a floating
                    154:      point instruction, hitting F8 or F10 to single-step
                    155:      will result in the execution of the current instruction
                    156:      and following until a non floating point instruction is
                    157:      executed and  
                    158: 
                    159:                Cursor->       FADD... 
                    160:                               FSTP... 
                    161:                               MOV       AX,.... 
                    162:                               MOV       DX,....  
                    163: 
                    164:           If you single step at this point on a system
                    165:      without a 387, you will end up on the "mov dx"
                    166:      instruction.  (FADD and FSTP are both floating point
                    167:      instructions.)   
                    168: 
                    169:      b.  If you are single-stepping in assembler mode and
                    170:      execute an instruction which cases a fatal protection
                    171:      fault (gp fault or page fault), the CS:EIP will be off
                    172:      in the exception dispatcher, not in user code.  If the
                    173:      user knows that this has happened, the user can just do
                    174:      a "GO" and CV386 will display a message that
                    175:      a protection fault has occurred and place CS:EIP at the
                    176:      right place.  If the user is single stepping at source
                    177:      level mode, there is no problem.  Another solution
                    178:      besides doing a "GO" is to "View" your previous source
                    179:      code and do a GO UNTIL on the next instruction.  This
                    180:      will get you a proper reporting of the GP fault.
                    181: 
                    182:      Source level single stepping works better:  it reports
                    183:      a GP fault and leave the CS:IP pointing at the
                    184:      offending instruction.
                    185: 
                    186:      c.   If you are debugging an .EXE which is loaded from
                    187:      a floppy, any breakpoints you set will apply to all
                    188:      instances of that program on the system, not just the
                    189:      instance running under CV386.  You may copy the .EXE to
                    190:      your hard disk to avoid this.
                    191: 
                    192:      d.  The Restart command on the Run menu (equivalent to
                    193:      the "l" command) can cause the system to crash.
                    194: 
                    195: 
                    196: 
                    197: UTILITIES NOTES:
                    198: 
                    199:      a.  MEP will not execute background compiles.  We
                    200:      recommend opening a second window and using the command
                    201:      line to execute a compile.  Under certain conditions
                    202:      (such as attempting to execute a background compile)
                    203:      MEP will hang when it runs out of stack space.  To free
                    204:      up stack space, delete or edit out file name entries in
                    205:      the MEP.TMP file.
                    206: 
                    207:      b.  LIB and LINK386 currently do not accept long file
                    208:      names for library files.
                    209: 
                    210:      c.  When LINK386 encounters fixups for a page of code
                    211:      or data that is otherwise unitialized, it writes
                    212:      incorrect fixup information to the executable, which
                    213:      causes fixups for the page to be ignored by the loader.
                    214:      This will only occur in some instances of linking 16-
                    215:      bit object modules in 32-bit EXEs (mixed model
                    216:      programming).
                    217: 
                    218:      If you are using mixed model and suspect this problem,
                    219:      verify by running "exehdr -v <exefile>". If the file
                    220:      contains ZEROED pages with fixups (i.e. if a non-zero
                    221:      physical page number is associated with a ZEROED page),
                    222:      you will see:
                    223: 
                    224:       no. virtual  virtual  page     file     flags
                    225:           address   size    map      pages
                    226: ...
                    227:      0005 00050000 00000002 00000007 00000001 READABLE,
                    228:                                               WRITEABLE,
                    229:                                               NONSHARED,
                    230:                                               LOADONCALL,
                    231:                                               NONRESOURCE,
                    232:                                               DISCARDABLE,
                    233:                                               VALID-PAGES,
                    234:                                               SWAPPABLE,
                    235:                                               16:16 ALIAS,
                    236:                                               16-bit, NOIOPL
                    237: 
                    238:                                    logical  physical flags
                    239:                                    page      page
                    240:                                    00000001 00000008 ZEROED
                    241: 
                    242:      and if the following message appears while dumping
                    243:      fixup records, 
                    244: 
                    245:           EXEHDR: fatal U1140: out of memory
                    246: 
                    247:      then this problem is likely the cause of the failure.
                    248: 
                    249:      Workaround:  Add an assembler module to append some
                    250:      initialized data to the group that defines the ZEROED
                    251:      page (object number 5 in the above example).  Look in
                    252:      the map file to determine the name and class name of
                    253:      the last segment in the group.  Use the below asm file,
                    254:      replacing <segname> and <classname> with the names from
                    255:      the map file, and make sure the alignment (dword) and
                    256:      other attributes (public, use32) are the same as the
                    257:      map file segment.  Link the resulting .obj file with
                    258:      the rest of the objects, by putting the new .obj file
                    259:      at the END of the .obj file list.
                    260: 
                    261:           .386
                    262:           <segname> segment dword public use32 '<classname>'
                    263:           dw  1234h
                    264:           <segname> ends
                    265:           end
                    266: 
                    267: 
                    268:      d.  MKMSGF:   This tool has the following known
                    269:      problems:
                    270: 
                    271:           i. No message text file checking.  MKMSGF used to
                    272:           check for header id, message numbers, out of
                    273:           sequence msg IDs, missing messages, and repeated
                    274:           messages.  With this version, very little if any
                    275:           checking is done.  The user is warned that syntax
                    276:           errors in the input text file most likely will not
                    277:           be found.
                    278: 
                    279:           ii. There is a maximum of about 5000 messages
                    280:           allowed.
                    281: 
                    282:           iii. No checking for naming the same file name for
                    283:           both input and output file.  Using the same name
                    284:           will put the output on top of the input file.
                    285: 
                    286:           iv. The new switches /C,/A, and /I are not
                    287:           supported.
                    288: 
                    289:           v.  The codepage support is not fully active, even
                    290:           though it is listed for MKMSGF /?.
                    291: 
                    292:      e.  H2INC:  This tool has several known limitations
                    293:      which keep it from being a good general-purpose tool
                    294:      for converting C headers to MASM include files.  Its
                    295:      purpose in this SDK is to convert the system headers in
                    296:      the OS2H directory into system include files.  To do
                    297:      so, simply run the MAKEINC command file found in the
                    298:      MASM\OS2INC directory of the Toolkit.
                    299: 
                    300: 
                    301: 
                    302: SYSTEM USER NOTES:
                    303: 
                    304:      a   There is no BOOT command in OS/2 2.0.
                    305: 
                    306:      b.  If you want to create a new DOS session in the Task
                    307:      Manger list, you must code the PATH to be
                    308:      
                    309:           C:\OS2\MDOS\COMMAND.COM
                    310: 
                    311:      This will allow you to select "DOS Window" or "DOS Full
                    312:      Screen" for the Program Type.
                    313: 
                    314:      c.  The OS/2 System Editor ("E") has some known
                    315:      problems in working with this release of the System:
                    316: 
                    317:           i.  If you use the Help buttons on the Find, Set
                    318:           font, or Set colors dialog boxes the editory will
                    319:           GP fault.
                    320: 
                    321:           ii.  The editor will not correctly handle wild
                    322:           card file names when invoked from the command
                    323:           line.
                    324: 
                    325:           iii.  The editor occasionally locks up when
                    326:           accessing files on an HPFS file system.
                    327: 
                    328:      d.  If you RECOVER from diskette a file that has
                    329:      diskette read errors in it, the file will be recovered
                    330:      with the errors.  Normally the recover operation should
                    331:      fail and an error message written to the screen.
                    332: 
                    333:      e.  The SPEEDKEY device driver does not function
                    334:      reliably on this release.
                    335: 
                    336:      f.  When running the system with a BGA (8514A) video
                    337:      driver, the MVDM sessions do not support DOS
                    338:      applications running in BGA mode.  They will run lower-
                    339:      resolution DOS applications.
                    340: 
                    341:      g.  Running programs in several DOS sessions
                    342:      simultaneously can cause hangs in individual DOS
                    343:      sessions.  Printing and using the math coprocessor from
                    344:      the DOS sessions appear to be affected by this bug.
                    345: 
                    346: 
                    347: 
                    348: APPLICATION COMPATIBILITY
                    349: 
                    350:      The OS/2 2.0 system is intended to run all OS/2 1.2
                    351:      applications unmodified.  It is also intended to run
                    352:      all DOS applications with the exception of those which
                    353:      use block device drivers (such as network drivers),
                    354:      those which directly manipulate disk hardware, and
                    355:      those which use DOS extenders other than EMM and XMS.
                    356:      If you discover an application which should run under
                    357:      OS/2 2.0 but doesn't, please report this to Microsoft
                    358:      Product Support Services so we can correct the problem
                    359:      in a future SDK.
                    360: 
                    361: 
                    362: 
                    363: DOCUMENTATION NOTES
                    364: 
                    365:      a.  Writing Mixed Model Programs:  This document
                    366:      contains an error on p. 8, where it states, "you can
                    367:      use link386 to re-link a 16-bit DLL or application
                    368:      without any changes."  If the 16-bit code was compiled
                    369:      with the -Gw switch, then it must be recompiled using
                    370:      the _loadds keyword where appropriate (or use -Au
                    371:      instead).
                    372: 
                    373:      Also in this document, the _far16 code examples should
                    374:      have #define INCL_16 in the sources.  This pulls the
                    375:      right API prototypes from the OS/2 header files.
                    376: 
                    377:      In writing mixed-mode C programs, it is important to
                    378:      initialize a pointer dynamically rather than
                    379:      initializing it when defined:
                    380: 
                    381:           PCH   p = "Hello World"  /*PCH is a pointer type*/
                    382: 
                    383:      will cause a fault in a statement like
                    384: 
                    385:                i = strlen(p);
                    386: 
                    387:      whereas the following code will work:
                    388: 
                    389:           PCH p;
                    390:           ...
                    391:                p = "hello world"
                    392:                i = strlen(p);
                    393: 
                    394:      b.  Language Release Notes: The section on the use of
                    395:      FLAT model in MASM386 should be ammended to say "You
                    396:      should not make direct use of the FS and GS registers,
                    397:      as these are reserved for use by the OS/2 2.0 exception
                    398:      handler.
                    399: 
                    400:      c.  Programming Reference:  The DosQueryProcType API is
                    401:      missing from the printed documentation and the QH
                    402:      database;  it is available in the IPF database.
                    403: 
                    404:      To print from the IPF database, you must individially
                    405:      mark the sections you wish to print.
                    406: 
                    407:      d.  Link386 Online help:  This incorrectly states a
                    408:      maximum stacksize of 64K.  Larger stacksizes can be
                    409:      specified on the LINK386 command line or in the .DEF
                    410:      file;  however, there will be some performance
                    411:      degradation with stacksizes close to or greater than
                    412:      64K.
                    413: 
                    414:      e.  The information provided in this Software
                    415:      Developer's Kit is preliminary and may contain
                    416:      inaccuracies or omissions.  This information is subject
                    417:      to change in both format and content.
                    418: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.