home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / caway349.zip / BIN / READ.ME < prev    next >
Text File  |  2002-07-18  |  13KB  |  320 lines

  1. Notes On CauseWay for Watcom C++ and Assembly Language
  2. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  3.  
  4. This READ.ME file contains important information about CauseWay
  5. for Watcom C++ and Assembly Language which does not appear in
  6. the CauseWay User's Manual.
  7.  
  8. CauseWay Files
  9. ==============
  10.  
  11. The following files should be on your system disk:
  12.  
  13.     MAKEFILE - Watcom make file for DOS DLL example.
  14.  
  15.     ALIASSEL.ASM - Assembly language example source file using
  16.                    CauseWay services.
  17.  
  18.     CALLBACK.ASM - Assembly language example source file using
  19.                    CauseWay services.
  20.  
  21.     DOSSHELL.ASM - Assembly language example source file using
  22.                    CauseWay services.
  23.  
  24.     INTASM.ASM - Assembly language example source file for calling
  25.                  real mode interrupt that uses segment:offset
  26.                  pointer to a memory buffer.
  27.  
  28.     MULTFLAT.ASM - Flat model source file using CauseWay
  29.                    services.
  30.  
  31.     MULTNEAR.ASM - Near model source file using CauseWay
  32.                    services.
  33.  
  34.     SCREEN32.ASM - Flat or Near model assembly language example
  35.                    source file.
  36.  
  37.     SHOWEVAR.ASM - Assembly language example source file for WARPWRAP.
  38.  
  39.     TIMER.ASM - Assembly language example source file using
  40.                 CauseWay services.
  41.  
  42.     VERSION.ASM - Assembly language example source file using
  43.                   CauseWay services.
  44.  
  45.     VESA.ASM - Source code to Watcom VESA.OBJ VESA support
  46.                module.
  47.  
  48.     _MAYDAY.C - Watcom C source file for SetDump and UserErrTerm
  49.                 example.
  50.  
  51.     CROAK1.C - Watcom C source file for UserDump example.
  52.  
  53.     CROAK2.C - Watcom C source file for UserDump example.
  54.  
  55.     CROAK2.C - Watcom C source file for UserDump example.
  56.  
  57.     DLL.C - Watcom C source file for DOS DLL example.
  58.  
  59.     DLLTEST.C - Watcom C source file for DOS DLL example.
  60.  
  61.     INTC.C - Watcom C example source file for calling real mode
  62.              interrupt that uses segment:offset pointer to a
  63.              memory buffer.
  64.  
  65.     TESTTERM.C - Watcom C source file for SetDump and
  66.                  UserErrTerm example.
  67.  
  68.     WMAPCWD.C - WMAPCWD utility source, WLINK MAP to
  69.                 CWD-readable MAP converter.
  70.  
  71.     CWD.CFG - CWD CauseWay debugger example configuration file.
  72.  
  73.     CWHELP.CFG - Support file for debugging CauseWay with
  74.                  Watcom's WD debugger.
  75.  
  76.     MSLINK.DEF - Example configuration file for WL32.
  77.  
  78.     RTLINK.DEF - Example configuration file for WL32.
  79.  
  80.     WARPLINK.DEF - Example configuration file for WL32.
  81.  
  82.     WARPWRAP.DEF - Example definitions file for WARPWRAP.
  83.  
  84.     CWC.EXE - CauseWay file compressor.
  85.  
  86.     CWD.EXE - CauseWay symbolic debugger startup executable.
  87.  
  88.     CWDSTUB.EXE - Watcom C++ support file for CauseWay DOS DLLs.
  89.  
  90.     CWHELP.EXE - Support file for debugging with Watcom's WD
  91.                  debugger. (Version 11.0+)
  92.  
  93.     CWHELP10.EXE - Support file for debugging with Watcom's WD
  94.                  debugger. (Version 10.6 and less, rename to CWHELP.EXE)
  95.  
  96.     CWSTUB.EXE - Watcom C++ support file for CauseWay.
  97.  
  98.     LE23P.EXE - File converter from Watcom LE-format file to
  99.                 native CauseWay 3P-format file
  100.  
  101.     WL32.EXE - CauseWay protected mode linker.
  102.  
  103.     WMAPCWD.EXE - WMAPCWD utility, WLINK MAP to CWD-readable
  104.                   MAP converter.
  105.  
  106.     WW.EXE - CauseWay environment variable burn-in utility.
  107.  
  108.     DLLFUNC.H - Watcom C++ DOS DLL example header file.
  109.  
  110.     CW.INC - CauseWay assembly language include file containing
  111.              the CauseWay API.
  112.  
  113.     CWSYSTEM.LNK - Watcom C++ linker setup file.
  114.  
  115.     DLLR.LNK - Watcom C++ link file for DOS DLL example.
  116.  
  117.     DLLS.LNK - Watcom C++ link file for DOS DLL example.
  118.  
  119.     DLLTEST.LNK - Watcom C++ link file for DOS DLL example.
  120.  
  121.     READ.ME  - This file.
  122.  
  123.     CWAPI.OBJ - Watcom C++ OBJ file for DOS DLL example.
  124.  
  125.     DLLFUNC.OBJ - Watcom C++ OBJ file for DOS DLL example.
  126.  
  127.     DLLR105A.OBJ - Watcom C++ startup code for DOS DLLs,
  128.                    register-based calling convention, version
  129.                    10.5a and above.
  130.  
  131.     DLLS105A.OBJ - Watcom C++ startup code for DOS DLLs,
  132.                    stack-based calling convention, version
  133.                    10.5a and above.
  134.  
  135.     DLLSTRTR.OBJ - Watcom C++ startup code for DOS DLLs,
  136.                    register-based calling convention, version
  137.                    10.5 and previous.
  138.  
  139.     DLLSTRTS.OBJ - Watcom C++ startup code for DOS DLLs,
  140.                    stack-based calling convention, version
  141.                    10.5 and previous.
  142.  
  143.     KBHITR.OBJ - Watcom optimized kbhit replacement,
  144.                  register-based calling convention.
  145.  
  146.     KBHITS.OBJ - Watcom optimized kbhit replacement,
  147.                  stack-based calling convention.
  148.  
  149.     SHOWEVAR.OBJ - Example binary file for WARPWRAP.
  150.  
  151.     VESA.OBJ - Watcom C++ linkable VESA support module.
  152.  
  153.     CWD.OVL - Support code file for CWD, the CauseWay debugger.
  154.  
  155.     CW.TRP - Support file for debugging with Watcom's WD
  156.              debugger. (Version 11.0+)
  157.  
  158.     CW10.TRP - Support file for debugging with Watcom's WD
  159.              debugger. (Version 10.6 and less, rename to CW.TRP)
  160.  
  161.     VESA.TXT - VESA.OBJ documentation, Watcom C++ VESA support
  162.                using CauseWay.
  163.  
  164.     WMAPCWD.TXT - WMAPCWD utility documentation, WLINK MAP to
  165.                   CWD-readable MAP converter.
  166.  
  167.     DEXDLL.ZIP - Zipped set of files, expanded demonstration of
  168.                      using DOS DLLs with calls to and from the DLL,
  169.                  including variables.
  170.  
  171.     WATSWAP.ZIP - Zipped set of files on optional linkable
  172.                   memory swapper routine, including
  173.                   documentation and demonstration files.
  174.  
  175.  
  176. Feature Additions, Changes, and Corrections
  177. ===========================================
  178.  
  179. December 1999
  180.  
  181. Fixed an error in CauseWay's API for GetMem and GetMem32 and
  182. DPMI emulation when reporting total available memory ([E]CX =
  183. -1) in straight DOS environments.  The return value would be
  184. doubled if no conventional/DOS memory was available, i.e. the
  185. program consumed all conventional memory when loading or all
  186. spare conventional memory was reserved by the SET
  187. CAUSEWAY=LOWMEM:nnn setting.  This only affected the value
  188. reported, the actual value was still used properly by CauseWay
  189. itself.
  190.  
  191. Added support to returning a more accurate total available
  192. memory value when using EMM386 NOVCPI setting in straight DOS
  193. environments.  For reasons known only to Microsoft, EMM386 still
  194. acts as as VCPI host even when NOVCPI is set, although no memory
  195. is then available via that API.  As a result, the total
  196. available memory report was not seeing memory available via XMS
  197. allocations (since VCPI takes precedence).  This problem did not
  198. affect actual CauseWay usage of available memory which still
  199. made XMS allocations where possible, only the available memory
  200. value returned from the total memory call was reduced.
  201.  
  202. Added workaround for weird bug in some machines due to unknown
  203. agent (Windows? AMI BIOS?) where a CauseWay application in
  204. AUTOEXEC.BAT which uses DOS function 8 to get a keystroke when
  205. no other application in AUTOEXEC.BAT gets a keystroke will cause
  206. failure in Windows 95 and 98 after boot-up when subsequently
  207. opening a DOS box.  This is still problematic with
  208. CWC-compressed programs.  The workaround is code added to
  209. CauseWay startup procedure which simply checks for a keystroke
  210. via DOS function 0Bh 127 times and ends out early if a key was
  211. pressed -- the added overhead should be a few milli- or
  212. microseconds.  Honestly, we have no idea why this clears up the
  213. problem, although A20 line or keyboard port influence are
  214. suspects.  CauseWay itself does not process DOS function 8
  215. requests, passing them down to and back up from the real mode
  216. (DOS) handler.
  217.  
  218. October 1999
  219.  
  220. Added internal support for XMS version 3.0 specification to
  221. allow XMS-based environments (i.e. HIMEM.SYS loaded without
  222. EMM386 EMS emulation turned on under pure DOS environments) to
  223. access more than 64M physical memory.
  224.  
  225. Fixed an obscure bug in WL32.EXE that caused a GPF when linking
  226. approximately one in every gazillion times, technically
  227. speaking.
  228.  
  229. February 1999
  230.  
  231. Sybase has provided us with the information and files necessary to support
  232. trap files under version 11.0 of Watcom C/C++, an action we appreciate
  233. and for which we thank them.  Version 11.0 users may use the updated CW.TRP
  234. and CWHELP.EXE file.  Users of versions prior to 11.0 should continue to use
  235. their old version of CW.TRP and CWHELP.EXE, or they can rename the CW10.TRP
  236. and CWHELP10.EXE in this current release of CauseWay to CW.TRP and CWHELP.EXE.
  237.  
  238. Added BIG1 setting support to CAUSEWAY environment variable.  The BIG1
  239. setting forces CauseWay to use an alternate method to determine available
  240. extended memory under RAW memory environments (no DPMI host, no HIMEM.SYS
  241. loaded), allowing CauseWay to see more than 64M of memory on machines
  242. which do not support more than 64M under the original INT 15h method.
  243. This method uses INT 15h function 0e801h to determine available extended
  244. memory, falling back to the original function if 0e801h fails.  Note that
  245. old machines may not support this function and there is a slight chance
  246. that some older machines may not work if the BIG1 setting is used.
  247.  
  248. May 1998
  249.  
  250. An error was uncovered in Windows NT which resulted in
  251. application failure when using the CWSWAPR and CWSWAPS swapper
  252. routines.  NT's implementation of DPMI is faulty (it does not
  253. properly set the FS register on simulate real mode call
  254. function), leading to failure of the swapper code.  New code was
  255. added to swapper routines to work around this NT bug, and the
  256. swapper now works properly under Windows NT.
  257.  
  258. Added a NOEX setting to the CAUSEWAY environment variable, e.g.
  259. SET CAUSEWAY=NOEX.  This parameter forces CauseWay to not patch
  260. the INT 21h, function 4bh (EXEC) vector to turn off CauseWay's
  261. INT 31h extensions when the EXEC function is called.  CauseWay
  262. normally turns off support of its INT 31h extensions on an EXEC
  263. call to be well-behaved and avoid conflicts with other extenders
  264. or programs which may add their own extensions to INT 31h.
  265. However, if your CauseWay-extended application shells out to DOS
  266. and passes the shelled-to application a callback address
  267. pointing to a routine within the parent CauseWay application,
  268. the callback will not work properly if the protected mode code
  269. uses the CauseWay extensions.  With the NOEX setting present,
  270. CauseWay still supports its INT 31h extensions for those
  271. users who need to operate with callbacks in this fashion.  Be
  272. aware that when the NOEX setting is present, CauseWay is less
  273. "well-behaved" about other programs which might add their own
  274. INT 31h extensions.
  275.  
  276. CauseWay properly works with the CAUSEWAY environment variable
  277. NAME parameter even if your temporary directory setting has a
  278. trailing backslash.
  279.  
  280. CWD.OVL adds a setting in the register display window which
  281. displays FPU values, if FPU is present.  Press F5 in the
  282. register display window to toggle FPU display on and off.
  283. CWD.OVL no longer sign-extends 32-bit addresses on the CPU
  284. display.
  285.  
  286.  
  287. Known Problems And Incompatibilities
  288. ====================================
  289.  
  290. Windows 95 network printing under CauseWay may wait until
  291. timeout (generally 60 to 90 seconds) or program exit before
  292. printing.  This is not an issue with Novell's version of the
  293. network printer.  Although Microsoft support states the problem
  294. occurs due to a MS-DOS program which does not release the
  295. printer port, this is not the case with CauseWay which does not
  296. perform printer-specific setup.  The compatibility error lies
  297. somewhere in Microsoft's code conflicting with CauseWay's 32-bit
  298. DOS extender running in protected mode.  However, the posted
  299. Microsoft workaround for programs which do capture the printer
  300. port appears to work with CauseWay.  To implement the
  301. workaround, adding the following lines to the appropriate
  302. sections of the SYSTEM.INI file:
  303.  
  304. [Network]
  305. PrintBufTime=10
  306.  
  307. {IFSMGR]
  308. PrintBufTime=10
  309.  
  310. Add the sections to SYSTEM.INI if they do not already exist.
  311. Setting values are in seconds.  If the settings are too low,
  312. printouts may fail, and you should try increasing the settings
  313. until correct printing again occurs.
  314.  
  315. Another workaround is to simply send  another job to the printer
  316. which simply consists of the printer reset command (or similar
  317. innocuous command).  This flushes the pending job immediately.
  318.  
  319. Last updated 01/09/2000
  320.