home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional Developers Kit 1992 November / Disc01 / Disc01.mdf / os2bbs / c_set2.cfo < prev    next >
Encoding:
Text File  |  1992-10-31  |  313.6 KB  |  7,660 lines

  1.  
  2.  This forum is supplied for demonstration purposes only and is
  3.  accessible via the IBM OS/2 BBS system.  What you see below is the
  4.  forum as it existed on 10/30/92.  The IBM OS/2 Bulletin Board System
  5.  (BBS) is IBM's new electronic support offering for OS/2 Version 2.0.
  6.  With OS/2 BBS you can electronically review OS/2 technical
  7.  information, submit program defects to IBM, and receive information
  8.  on how to solve problems.  Users of the OS/2 BBS not only include
  9.  OS/2 customers, but the OS/2 expertise of the entire internal IBM
  10.  community worldwide.  OS2BBS makes all this available via a local
  11.  or toll free number in most major cities.
  12.  
  13.  To request a complete OS/2 BBS Information Package detailing
  14.  the OS/2 BBS offering and including pricing and registration/access
  15.  information, please call:  1-800-547-1283.
  16.  
  17. ===== C-SET2 CFORUM created at 17:34:38 on 92/04/07 GMT (by HOPKINS at AUSVM8)
  18.  
  19.                             IBM UNCLASSIFIED
  20.                             ----------------
  21.       The information in this forum is considered by IBM to be
  22.       external and may be shared by everyone who is given access.
  23.       This forum is shared with the internal IBM employee conferences.
  24.  
  25.  Forum: C-SET2 CFORUM
  26.  
  27.  Forum subject: IBM C SET/2 Compiler
  28.  
  29.             This FORUM is provided as a conferencing tool to promote
  30.             discussion of topics pertaining to IBM C SET/2 32 BIT
  31.             compiler, and present issues, questions, and problems
  32.             relating to use of the product.
  33.  
  34. Contributions must not contain confidential or proprietary information.
  35.  
  36. Each contributor agrees, in placing material in this forum, that IBM and
  37. other users are free to prepare derivative works based upon it, and to use,
  38. reproduce, perform, display and distribute inside and outside their company
  39. such material and such derivative works, without obligation or charge.
  40.  
  41. IBM is not responsible or liable for the use, copying, or distribution of
  42. materials placed on this forum, and has therefore no obligation to control
  43. such acts.
  44.  
  45. All subscribers are required to abide at all times by the conference
  46. rules described in the Bulletin Board Rules under "News and Announcements".
  47.  
  48. All IBM personnel are required to abide at all times by the IBMPC RULES
  49. and the IBM Business Conduct Guidelines. IBM personnel will read the
  50. CUSTOMER FORUM RULES in IBMPC RULES before contributing.
  51.  
  52. Contributions violating these rules will be deleted by the CFORUM
  53. Owner or their delegate, and in some cases by an IBM conference
  54. Administrator.
  55.  
  56. The OS2BBS CFORUM is where anyone may raise concerns regarding rules
  57. violations found in this and other CFORUMS.
  58.  
  59.    The IBM Owner of this forum is:
  60.    Name:            Kenneth M. Hopkins, OS/2 Support Services
  61.    Mailing Address: IBM Manufacturing and Development
  62.                     11400 Burnet Road
  63.                     Internal Zip 2900-042/1D003
  64.                     Austin, Texas    78758
  65.    IBM Node/Userid: AUSVM8/HOPKINS
  66.  
  67. ----- C-SET2 CFORUM appended at 17:29:47 on 92/04/10 GMT (by AMELINE at TOROLAB6)
  68. Subject: Who's here
  69.  
  70.    I'll be monitoring this forum for questions, suggestions etc...
  71. There'll likely be others from the development team looking in as well
  72.  
  73. Regards,
  74. Ian Ameline
  75. C-Set/2 Development
  76.  
  77. ----- C-SET2 CFORUM appended at 18:08:18 on 92/04/10 GMT (by XXTCAN06 at TORVMCOP)
  78. Subject: Who's here
  79. Ref:     Append at 17:29:47 on 92/04/10 GMT (by AMELINE at TOROLAB6)
  80.  
  81. Hi!
  82. I guess I'll use this invitation to ask a question:
  83. Why do I have to cast some #defined constants to (ULONG)?  E.g.: SWP_SIZE
  84. SWP_MOVE, SWP_ACTIVATE, SWP_SHOW.  I've used the HELLO.C sample program
  85. as a starting point for PM programming and got some compile warnings on
  86. these defined constants.  I tracked them down to their include file and
  87. found them to be defined along these lines: #define SWP_SIZE 0x0001.
  88. Could you not have a U (or UL) after them in their definition?
  89. The compile warnings complained about the use of bitwise operators on
  90. signed variables.  The expression in "error" was:
  91. SWP_SIZE | SWP_MOVE | SWP_ACTIVATE | SWP_SHOW.
  92. I had to code:
  93. (ULONG)SWP_SIZE | (ULONG)SWP_MOVE | (ULONG)SWP_ACTIVATE | (ULONG)SWP_SHOW
  94. to get rid of the warnings.
  95.  
  96. Pierre Legault.  Transport Canada.  (613)993-7149.
  97.  
  98. ----- C-SET2 CFORUM appended at 18:27:55 on 92/04/10 GMT (by XXNOVA24 at TORVMCOP)
  99. Subject: Who's here
  100. Ref:     Append at 18:08:18 on 92/04/10 GMT (by XXTCAN06 at TORVMCOP)
  101. I think I have a half answer : If you change the header files to the
  102. proper 0x000000010UL , than the RC resource compiler will crashes.
  103. One solution: (This is what I'm doing):
  104. #ifdef RC_INCLUDED
  105.   #define ABC  0x0001
  106. #else
  107.   #define ABC  0x0001u
  108. #endif
  109.  
  110. Only about four areas where you have to change the header files.
  111. Geza Szivos 403-290-6583
  112.  
  113. ----- C-SET2 CFORUM appended at 20:45:26 on 92/04/10 GMT (by AMELINE at TOROLAB6)
  114. Subject: Bitwise operations on signed objects.
  115. Ref:     Append at 18:27:55 on 92/04/10 GMT (by XXNOVA24 at TORVMCOP)
  116.  
  117.    Hello!
  118.  
  119.      I believe that the shortcoming is in the toolkit header files. It
  120. may be that they weren't compiled with the /Kb compiler option. (This
  121. option is the one causing the warnings to be emitted.) These particular
  122. warnings can be ignored if you're not concerned with porting. The result
  123. of the bitwise operators on signed integers is implementation defined --
  124. which is to say that they may change from machine to machine, but will
  125. not change on the same machine.
  126.  
  127.    The best way to get rid of them is to use the + operator instead of
  128. |. Since the values of the #defines are all powers of 2, the same result
  129. will be produced.
  130.  
  131. Regards,
  132. Ian Ameline
  133.  
  134. ----- C-SET2 CFORUM appended at 21:06:12 on 92/04/10 GMT (by XXNOVA24 at TORVMCOP)
  135. Subject: Bitwise operations on signed objects.
  136. Ref:     Append at 20:45:26 on 92/04/10 GMT (by AMELINE at TOROLAB6)
  137. Jou're right. I still prefere to compile with (rearly) all warnings
  138. on. It fixes nearly all the syntax errors.
  139. I'd like to see that the CSET/2 goes to C++.
  140.  
  141. Geza Szivos 403-290-6583
  142.  
  143. ----- C-SET2 CFORUM appended at 21:34:01 on 92/04/10 GMT (by AMELINE at TOROLAB6)
  144. Subject: Bitwise operations on signed objects. C++
  145. Ref:     Append at 21:06:12 on 92/04/10 GMT (by XXNOVA24 at TORVMCOP)
  146.  
  147.    I forgot to mention that if you have the same flag twice in the list,
  148. + gives different results than |. When things are hidden behind #defines,
  149. or possibly several layers of defines, this might cause difficulties.
  150.  
  151.    As for C-Set/2 becoming a C++ compiler, you're not alone. This is a
  152. very popular request. As you may know, IBM just announced a C++ compiler
  153. for the Risc System 6000. This compiler was done here in Toronto. The
  154. development team is just down the hall from the C team. I can't really
  155. say anything more yet, but as soon as an announcement is made, I'll post
  156. the relevant details here.
  157.  
  158. Regards,
  159. dan Ameline
  160.  
  161. ----- C-SET2 CFORUM appended at 21:45:55 on 92/04/10 GMT (by XXNOVA24 at TORVMCOP)
  162. Subject:Competetive upgrade.
  163. Did anyone heard someting from a competetive upgrade( a'la Borland
  164. (The old)) ?
  165. I have M$ C6.0A and I'd like to change, since I can't use it for
  166. 32 bit dev.
  167. To make and OPSYS real popular we should be able to afford the
  168. developement tools. (remember Dos with basic and exe2bin and debug?)
  169. I'd like to go out and purchase a legal copy of CSET/2 for home,
  170. but it is not for home budget.
  171.  
  172. Geza Szivos 403-290-6583
  173.  
  174. ----- C-SET2 CFORUM appended at 14:44:12 on 92/04/14 GMT (by XXMTEL02 at TORVMCOP)
  175. Subject:Static initialization problem
  176.  
  177.    The second pointer pszTextResp in the following code fragment
  178. doesn't get initialized properly.  It ends up pointing to the
  179. same place as pszScn, i.e. to the start of szData instead of
  180. 2000 bytes offset.  If I move the pointer assignments into
  181. executable code, everything works.
  182.    I am running the 304 versions (mid-Feb) of 2.0 base, toolkit,
  183. and C-Set.  (Although eager to move up as soon as all are GA'd.)
  184. Pls  advise  if  more  details  desired....
  185.  
  186. extern struct
  187. {
  188.    short sLen;
  189.    char szDataì20001┘;
  190. } Rspns;
  191. static char *pszScn = Rspns.szData;
  192. static char *pszTextResp = Rspns.szData + 2000;
  193.  
  194. Mike Capern, Maritime Tel, 902-421-5125
  195.  
  196. ----- C-SET2 CFORUM appended at 14:50:16 on 92/04/14 GMT (by MOONEY at TOROLAB6)
  197. Subject: Static initialization problem
  198. Ref:     Append at 14:44:12 on 92/04/14 GMT (by XXMTEL02 at TORVMCOP)
  199.  
  200. That bug looks familiar.  I believe that it was fixed for the GA-level
  201. code.
  202.  
  203. dave
  204.  
  205. ----- C-SET2 CFORUM appended at 22:28:49 on 92/04/14 GMT (by MIKEM at TUCVM8) -
  206. Subject: tzset ?= _tzset
  207.  
  208. In other C compilers I've used, which also claim ANSI compliance, the
  209. function to set time zone information is "tzset".  In C-SET/2, it
  210. appears to be _tzset, so my code, which is working on other compilers
  211. doesn't work any longer under C-SET/2.  Looking through the library
  212. routines listed in the help, it appears that this is true of many
  213. other common library routines as well.  Is there any painless way to
  214. resolve this without keeping two copies of my source, or -Defining
  215. different constants in the various makefiles?
  216.  
  217. Mike McDermott  - GCBS41A on Prodigy
  218. Pennant Systems - an IBM Company
  219.  
  220. ----- C-SET2 CFORUM appended at 22:37:05 on 92/04/14 GMT (by 40953586 at EHONE)
  221. Subject: tzset ?= _tzset
  222. Ref:     Append at 22:28:49 on 92/04/14 GMT (by MIKEM at TUCVM8)
  223. Reply-to: Jurrie Lulofs <LULOFS@UITVM1>
  224.  
  225. The "common" functions to which you refer are not ANSI.
  226.  
  227. To get things to work as you would like simply compile with the
  228. migration switch which will enable macros that map your familiar names
  229. to C Set/2's equivalent functions (ie. tzset() -> _tzset() )
  230.  
  231. jurrie
  232.  
  233. ----- C-SET2 CFORUM appended at 22:55:56 on 92/04/14 GMT (by MIKEM at TUCVM8) -
  234. Subject: tzset ?= _tzset
  235. Ref:     Append at 22:37:05 on 92/04/14 GMT (by 40953586 at EHONE)
  236.  
  237. Thanks, /Sm is exactly what I was looking for!
  238.  
  239. Mike McDermott  - GCBS41A on Prodigy
  240. Pennant Systems - an IBM Company
  241.  
  242. ----- C-SET2 CFORUM appended at 02:09:17 on 92/04/16 GMT (by BIGBILL at TOROLAB6)
  243. Subject: Static initialization problem
  244. Ref:     Append at 14:44:12 on 92/04/14 GMT (by XXMTEL02 at TORVMCOP)
  245.  
  246. By the way, all have GAd now and are available on OS2PROD2.
  247.  
  248. Bill Sarantakos    OS/2 WorkFrame/2 Development      Toronto, Ontario
  249.  
  250. ----- C-SET2 CFORUM appended at 12:09:09 on 92/04/16 GMT (by XXMTEL02 at TORVMCOP)
  251. Subject: Static initialization problem
  252. Ref:     Append at 02:09:17 on 92/04/16 GMT (by BIGBILL at TOROLAB6)
  253.  
  254. Thanks folks, our SE seems to be having some trouble locating it.
  255. I'll pass on the info..  Mike Capern @ Maritime T&T
  256.  
  257. ----- C-SET2 CFORUM appended at 17:28:31 on 92/04/16 GMT (by JELLIOTT at CANVM2)
  258. Subject: Static initialization problem
  259. Ref:     Append at 02:09:17 on 92/04/16 GMT (by BIGBILL at TOROLAB6)
  260.  
  261. Bill:  Please remember this is a CUSTOMER forum.  Only IBM US and IBM
  262. M&D employees have access to OS2PROD2.  IBM Canada M&S (marketing)
  263. employees do not have access.
  264.  
  265. Jim Elliott
  266. National Support Centre, IBM Canada
  267.  
  268. ----- C-SET2 CFORUM appended at 03:48:08 on 92/04/17 GMT (by BIGBILL at TOROLAB6)
  269. Subject: Static initialization problem
  270. Ref:     Append at 17:28:31 on 92/04/16 GMT (by JELLIOTT at CANVM2)
  271.  
  272. Thanks, I know (and have been reminded).  The problem is that there
  273. is a backlog for the tools for OS/2 and if the customers have an
  274. urgent need they can ask their SE's to get them a copy from that
  275. disk.  We're also trying to arrange same for Canadian SE's.  Stay
  276. tuned...
  277.  
  278. Bill Sarantakos    OS/2 WorkFrame/2 Development      Toronto, Ontario
  279.  
  280. ----- C-SET2 CFORUM appended at 13:28:03 on 92/04/20 GMT (by V$IBTIGA at BCRVMPC1)
  281. Subject: Problem with type casting values as pointers
  282.  
  283. A customer discovered a problem with the compiler, running in GA.
  284. The code (listed below) is a test case that takes the address of a
  285. variable and puts it into another integer variable (not a pointer).
  286. Then, the code tries to get that address and assign a value to the
  287. contents of the address, but it is unsuccessful.  If the address of the
  288. variable is assigned to a pointer, it works fine.
  289.  
  290. She is porting code from M'Soft C 6.0 to C-Set/2.  I have tried this with
  291. M'Soft C and it does work.  She says that this is causing a major problem
  292. because her application does copy the contents of addresses to
  293. variables.
  294.  
  295. Are there any work-arounds available?
  296.  
  297. -------------------------------------------------------
  298.  
  299. #include <stdio.h>
  300.  
  301. typedef struct tRB{
  302.         unsigned int XXX;
  303.         int          TDP;
  304. } RB;
  305.  
  306. void main (void);
  307. void main ()
  308. {
  309.     P_RB  rbp;
  310.     int   tint;
  311.     RB    rb;
  312.  
  313.     rbp = &rb;
  314.     printf ("Should change *TDP from 5 to 50\n");
  315.     tint = 5;
  316.  
  317.     /* Copy the address of tint to TDP.  TDP is an integer variable */
  318.     /* that contains the address of tint.                           */
  319.     rbp->TDP = (int) ∭
  320.  
  321.     rbp->XXX = 0x4f4f4f4f;
  322.     printf ("Struct RBP:  XXX=%x  TDP=%x, *TDP=%d\n",
  323.             rbp->XXX, rbp->TDP, *((int *) rbp->TDP));
  324.  
  325.     /* Assign 50 to the contents of the address that is contained */
  326. /* in TDP.  This should be tint.                              */
  327.     *((int *) (rbp->TDP)) = 50;
  328.     printf ("Struct RBP:  XXX=%x  TDP=%x, *TDP=%d\n",
  329.             rbp->XXX, rbp->TDP, *((int *) rbp->TDP));
  330. }
  331.  
  332. The output is as follows:
  333.  
  334.   Should change *TDP from 5 to 50
  335.   Struct RBP: XXX=4f4f4f4f  TDP=61fc4,  *TDP=5
  336.   Struct RBP: XXX=32  TDP=61fc4, *TDP=5
  337.  
  338. On the last line, *TDP should be equal to 50.  Also, why is XXX changed?
  339.  
  340. Larry Moore     PSPC-Boca Tech Interface Group
  341.  
  342. ----- C-SET2 CFORUM appended at 15:31:05 on 92/04/21 GMT (by MOONEY at TOROLAB6)
  343. Subject: Problem with type casting values as pointers
  344. Ref:     Append at 13:28:03 on 92/04/20 GMT (by V$IBTIGA at BCRVMPC1)
  345.  
  346. Strictly speaking, this code is not guaranteed to work, since ANSI
  347. renders casts from ptr to int to be undefined.  Realisticly speaking
  348. though, this should work, and since it doesn't, I would call it a
  349. compiler bug.  I've opened PTR TO04305 against our next release.  If
  350. you want an APAR for this, let Ian know and he'll open one for you.  I
  351. can't think of a workaround for this except to say "Don't do that."
  352.  
  353. dave
  354.  
  355. ----- C-SET2 CFORUM appended at 15:07:15 on 92/04/24 GMT (by WINGERT at BOEVM3)
  356. Subject:differences between IBM C/2 and C-Set2
  357.  
  358. Can someone explain me the result of the following program?
  359. What does the C-Compiler do?What is the difference to the IBM C/2
  360. compiler???
  361.  
  362. #include <stdio.h>
  363.  
  364. void main (void)
  365. {
  366.  int a;
  367.  
  368. //case 1
  369. //output after IBM C/2 compilation: 0 1 2
  370. //output after C-Set2compilation  : 0 1 2
  371.  a=0;
  372.  printf("%d %d %d \n",a,a+1,a+2);
  373.  
  374. //case 2
  375. //output after IBM C/2 compilation: 2 1 0
  376. //output after C-Set2 compilation : 0 1 2
  377.  a=0;
  378.  printf("%d %d %d \n",a++,a++,a++);
  379.  
  380. //case 3
  381. //output after IBM C/2 compilation: 3 2 1
  382. //output after C-Set2 compilation : 3 3 3
  383.  a=0;
  384.  printf("%d %d %d \n",++a,++a,++a);
  385.  
  386. }
  387.  
  388. I've compiled in case of IBM C/2 with Od option and in case of
  389. C-Set2 with O- option.
  390. I understand the result of the IBM C/2 as follows:
  391. -parameters in C-convetion are pushed on the stack from right to left..
  392. -the parameters are poped from the stack vice versa
  393. -therefore a,a+1,a+2 cause an output of 0 1 2
  394. -therefore a++, a++ ,a++ first a=0 will be pushed, then incremented,
  395.  (a is now 1) then a=1 will be pushed on the stack, then incremented
  396.  (a is now 2) then a=2 will be pushed on the stack.
  397.  the result will be: 2 1 0
  398. -similiar the result can be explained with ++a, ++a, ++a.....
  399.  
  400. Can someone tell me what C-Set2 compiler does in contrast to the IBM C/2
  401. compiler ??? and explain the result ????
  402.  
  403. Thanks in advance
  404.  
  405. Harald Boeblingen....
  406.  
  407. ----- C-SET2 CFORUM appended at 15:45:34 on 92/04/24 GMT (by MOONEY at TOROLAB6)
  408. Subject: differences between IBM C/2 and C-Set2
  409. Ref:     Append at 15:07:15 on 92/04/24 GMT (by WINGERT at BOEVM3)
  410.  
  411. Changing the value of a variable more than once in a single function call
  412. has undefined results.  Actually, more precisely, "between the previous
  413. and next sequence point shall have its stored value modified at most once
  414. by the evaluation of an expression."  This means that if you change the
  415. value of an expression more than once in an expression (modulo a couple
  416. of restrictions), the results are undefined.  If you want to see "0 1 2"
  417. printed, then stick with  printf( ..., a, a+1, a+2 ); .
  418.  
  419. (Meta: you've asked this question more than one place.  Tsk tsk.)
  420.  
  421. dave
  422.  
  423. ----- C-SET2 CFORUM appended at 20:07:43 on 92/04/24 GMT (by V$IBTIGA at BCRVMPC1)
  424. Subject: Possible C-Set/2 bug
  425.  
  426. I have received a call from a customer who is getting the following
  427. exception compiling his source code:
  428.  
  429.     #C0000005:98242
  430.  
  431. He gets the exception when he uses the following parameters in
  432. compiling:
  433.  
  434.     /C /Ge- /Gd- /O+ /Se /Sp1 /Re /ss /Gm+ /Kb- /Ti-
  435.  
  436. He says that if he changes O+ to O-, Kb- to Kb+, and Ti- to Ti+, no
  437. exception is generated.
  438.  
  439. He says that he will provide the source code, if needed.  Is this a
  440. known bug?  He says that he has a work around, but wanted to report
  441. this.  If any more info is needed, just let me know.
  442.  
  443. Larry Moore     PSPC-Boca Tech Interface Group
  444.  
  445. ----- C-SET2 CFORUM appended at 21:13:57 on 92/04/24 GMT (by AMELINE at TOROLAB6)
  446. Subject: Possible C-Set/2 bug
  447. Ref:     Append at 20:07:43 on 92/04/24 GMT (by V$IBTIGA at BCRVMPC1)
  448.  
  449.    What version of the compiler is your customer using? (The date on
  450. ICC.EXE will tell me this). We have fixed a bugs with this symptom
  451. between the last beta and the GA level of the code. It is very likely
  452. that the only option change which makes the difference is /O.
  453.  
  454.    It would help us very much to have the pre-processed output for the
  455. file he was compiling. If you could send it to my ID, I'll get on it
  456. right away.
  457.  
  458. Regards,
  459. Ian Ameline
  460.  
  461. ----- C-SET2 CFORUM appended at 18:29:38 on 92/05/04 GMT (by AOI1075 at OS2CUST)
  462. Subject: Floating point argument handling
  463.  
  464. We have a section of code that worked in DOS (compiled under Turbo C), but
  465. gets a floating point exception in C-Set/2.  Problem was that one subroutine
  466. had a whacky call where the last two arguments were odd.  Next to last arg
  467. was a pointer to character string, and last arg was a float.  However, the
  468. way the code was written, only one of the two was valid (that is, the
  469. other arguments indicated which of the last two args to use).  The next
  470. crazy part of this call was that the last two args really were for one
  471. four byte area in memory.  The next code fragment illustrates the call:
  472.  
  473.       union TEMP {
  474.                    char *pch ;
  475.                    float f ;
  476.                  } temp ;
  477.       void func ( int arg1, int arg2, char *pch, float f );
  478.       ....
  479.       i = func( a1, a2, temp.pch, temp.f );
  480.  
  481. Turbo C could handle the case when pch was really a pointer, and so f was
  482. probably garbage.  C-set/2 gets a floating exception in this case.  The
  483. exception occurs as soon as 'func' is entered.  The exception occurs loading
  484. the value from the stack to floating register.  The debugger incorrectly
  485. flags the exception on the first line of code in the subroutine.  I could
  486. not find anything on this in the beta documentation.  This brings up the
  487. question: is this a feature or a flaw?  On the one hand, it is a minor
  488. migration problem, but I do like the validation of floating values in
  489. calls.  Also, the debugger does seem to have a problem flagging the correct
  490. statement when this problem occurs.
  491.  
  492. J.Farmer               Ashland Petroleum
  493.  
  494. ----- C-SET2 CFORUM appended at 13:13:35 on 92/05/05 GMT (by PETT at TOROLAB6)
  495. Subject: Floating point argument handling
  496. Ref:     Append at 18:29:38 on 92/05/04 GMT (by AOI1075 at OS2CUST)
  497.  
  498. Because the argument was declared as "float", the code generation in
  499. the compiler will assume that it is a valid number.  This means that
  500. it is likely to generate FLD and FST instructions for it.  If the
  501. value is garbage is likely to cause floating point exceptions.  There are
  502. two possible solutions:
  503.  
  504. 1. Ensure that the number is a valid floating point value
  505. 2. Make the function take a variable number of arguments, and only
  506.    pass the float argument if it is valid.
  507.  
  508. Roger Pett
  509.  
  510. ----- C-SET2 CFORUM appended at 14:36:37 on 92/05/05 GMT (by SBRZAYD at OS2CUST)
  511. Subject: CALLING 16 BIT DLLS FROM 32 BIT CODE
  512.  
  513. WHERE SHOULD I BE LOOKING FOR INFORMATION ABOUT HEADER MODIFICATIONS, COMPILER
  514. ARGUMENTS, AND LINK OPTIONS WHICH MUST BE USED TO ALLOW NEW 32 BIT APPLICATIONS
  515. TO CALL EXISTING 16 BIT DLLS?
  516.  
  517. ----- C-SET2 CFORUM appended at 17:46:36 on 92/05/05 GMT (by MOONEY at TOROLAB6)
  518. Subject: Calling 16-bit DLLs from 32-bit code
  519. Ref:     Append at 14:36:37 on 92/05/05 GMT (by SBRZAYD at OS2CUST)
  520.  
  521. There's a chapter in the User's Guide which gives the details of how
  522. 32->16 calls work.  Also look at SAMPLE04 which comes from the compiler.
  523. It contains working code which demonstrates 32->16 calls.
  524.  
  525. dave
  526.  
  527. ----- C-SET2 CFORUM appended at 17:54:59 on 92/05/05 GMT (by MOONEY at TOROLAB6)
  528. Subject: Floating point argument handling
  529. Ref:     Append at 18:29:38 on 92/05/04 GMT (by AOI1075 at OS2CUST)
  530.  
  531. By default, the compiler passes floating-point arguments in floating-
  532. point registers.  The 387 chip, though, expects only valid FP values to
  533. be loaded into these registers, and when you try to load random garbage,
  534. the chip hurls.
  535.  
  536. The way that I would fix this (and it's a solution that (a) is backwards
  537. compatible to Borland and (b) will make your code run faster) is to pass
  538. the union as one entity in the function call:
  539.  
  540.   void func ( int arg1, int arg2, union TEMP );
  541.  
  542. If you would rather be able to pass both members separately, prototyping
  543. the function with the _System calling convention will cause the compiler
  544. to pass the FP value on the stack, which means that the 387 won't verify
  545. the value's validity until later.
  546.  
  547.   void _System func ( int arg1, int arg2, char *pch, float f );
  548.  
  549. I would recommend the first solution as the preferable one.
  550.  
  551. dave
  552.  
  553. ------------------------------------------------------------------------
  554. Dave Mooney                                         mooney@vnet.ibm.com
  555. C Set/2 Development, IBM Canada Lab, 844 Don Mills Rd, Toronto, Ontario
  556.                   "Don't ask me, I'm just improvising"
  557.  
  558. ----- C-SET2 CFORUM appended at 23:59:26 on 92/05/05 GMT (by SBRZAYD at OS2CUST)
  559. Subject: Calling 16-bit DLLs from 32-bit code
  560.  
  561. Thanks for the help; it confirmed that I am indeed doing something
  562. wrong but I still don't know what.  I'm getting a "Couldn't d-load
  563. app seg for TEST->_FOO" where foo is the function I'm trying to call
  564. in the 16-bit DLL and its 32-bit prototype is
  565.  
  566.                     extern SHORT _Far16 foo(...)
  567.  
  568. The compiler args I'm using are "ICC     /c /Ss /Ti /W2"
  569. The link args are               "LINK386 /CO /M:FULL /NOP /PM:VIO"
  570.  
  571. I don't know if I really expect anyone to be able to help with this
  572. little information but I thought I'd post here before I put something
  573. on IBMLink (and have to wait for three days).
  574. American Management Systems
  575. Thanks!
  576. Chris C.
  577. American Management Systems
  578.  
  579. ----- C-SET2 CFORUM appended at 00:50:02 on 92/05/06 GMT (by WTRACEY at BETASVM2)
  580. Subject: Calling 16-bit DLLs from 32-bit code
  581. Ref:     Append at 23:59:26 on 92/05/05 GMT (by SBRZAYD at OS2CUST)
  582.  
  583. Is the 16 bit entrypoint Pascal or C calling convention?  If it's
  584. Pascal then you need to add an _Pascal to the extern declaration.
  585.  
  586. If the 16 bit entrypoint is C calling convention then you may need
  587. to add /noi (no ignore case) to the link statement, so it will look
  588. for _foo (not _FOO).
  589.  
  590. Hope this helps,
  591.  
  592. Bill Tracey
  593.  
  594. ----- C-SET2 CFORUM appended at 00:57:27 on 92/05/06 GMT (by V$IPAULD at BCRVMPC1)
  595. Subject: Calling 16-bit DLLs from 32-bit code
  596. Ref:     Append at 23:59:26 on 92/05/05 GMT (by SBRZAYD at OS2CUST)
  597.  
  598. Your application is trying to import function "_FOO" by name from
  599. TEST.DLL ... my guess is that the TEST.DLL does not export the
  600. function as "_FOO". It is perhaps exported as "_foo" or "foo" or
  601. "FOO", none of which match.
  602.  
  603. I suggest you try either HDR.EXE or EXEHDR.EXE (one of which comes
  604. with the OS/2 toolkit) and work out what name the DLL is exporting.
  605. Then you could change the prototype or compile/link options to get a
  606. match.
  607.  
  608. Paul Devriendt
  609.  
  610. ----- C-SET2 CFORUM appended at 10:53:48 on 92/05/06 GMT (by XXPRMN01 at TORVMCOP)
  611. Subject: Calling 16-bit DLLs from 32-bit code
  612. Ref:     Append at 23:59:26 on 92/05/05 GMT (by SBRZAYD at OS2CUST)
  613.  
  614. It looks as though it should be
  615.  
  616. extern SHORT _Pascal _Far16 foo(...)
  617.  
  618. You need the _Pascal keyword since the EXPENTRY in the 16 bit headers
  619. translates to _pascal _loadds
  620.  
  621. Matt Smith, Prominare Inc.
  622.  
  623. ----- C-SET2 CFORUM appended at 12:19:39 on 92/05/06 GMT (by AOI1075 at OS2CUST)
  624. Subject: Floating point argument handling
  625.  
  626. Sorry for the confusion.  I fixed the code as soon as I found the error, and
  627. yes, the floating exception was caused by an FLD at the top of the routine.
  628. I wasn't looking for a fix to the code, but an opinion on the way C-set/2
  629. now handles floating arguments.  Apparently other compilers either don't
  630. touch, or handle arg as string of bytes, until arg is used in floating
  631. computations.  I guess what I'm really getting to would be:ndled in a
  632. different manner from other compilers; is this 'correct'?
  633.  
  634. ----- C-SET2 CFORUM appended at 12:40:04 on 92/05/06 GMT (by MOONEY at TOROLAB6)
  635. Subject: Floating point argument handling
  636. Ref:     Append at 12:19:39 on 92/05/06 GMT (by AOI1075 at OS2CUST)
  637.  
  638. That's right.  We pass FP values in 387 registers by default.  This is
  639. becuase we can get better performance by not moving the values around as
  640. much (we have to load FP values onto the 387 to use them, anyway; why not
  641. put them there in the first place?).  Declaring a function as _System
  642. will cause us to pass the arguments on the stack, just like other
  643. compilers.
  644.  
  645. dave
  646.  
  647. ----- C-SET2 CFORUM appended at 23:09:06 on 92/05/06 GMT (by SBRZAYD at OS2CUST)
  648. Subject: Calling 16-Bit code from 32-Bit code
  649.  
  650. Thanks for everyone who helped me out; those of you who suggested /NOI were
  651. right on target and I am happily writing new 32-bit code to our 16-bit DLLs
  652. now.  Just to take a quick poll out there...
  653.  
  654. Personally, I always viewed functions that were declared pascal or fastpath
  655. as hideously nonstandard.  For all of our work around here we simply use
  656. cdecl (except for EXPENTRY functions, of course).  This works splendidly and
  657. there have been very few problems calling our stuff from new C/Set code.
  658.  
  659. I realize there are performance gains to be made by using fastpath or pascal
  660. but if you are only moderatly concerned about these kinds of thing (I'm not
  661. coding up a communications program, for example) does it REALLY make that
  662. much difference? (I won't even get into C/Set optlink verses system linking
  663. conventions).  In parts of a server I wrote I replaced cdecl calls with pascal
  664. and gained virtually NO speed.  Am I missing something?
  665.  
  666. Chris C.
  667. American Management Systems
  668.  
  669. ----- C-SET2 CFORUM appended at 18:11:37 on 92/05/07 GMT (by MCG1032 at OS2CUST)
  670. Subject: upgrade to c-set2 from os/2 1.3 c/2 compiler
  671.  
  672. I have c/2 version 1.1 compiler for os/2 1.3 and programming tools for
  673. os/2 1.3.  The IBM sales rep cannot tell me whether I can upgrade
  674. to c set/2 compiler.  Please tell me whether I can upgrade the c/2 compiler to
  675. c set/2 without extra cost.  I only purchased the compiler in february 1992.
  676.  
  677. ----- C-SET2 CFORUM appended at 18:15:00 on 92/05/08 GMT (by V$IBTIGA at BCRVMPC1)
  678. Subject: L1108 error
  679.  
  680. I have a customer compiling a large application (greater than 4 meg) on
  681. C- Set/2.  He is using /Ti and linking with /De.  However, during link,
  682. he is getting the following error:
  683.  
  684. L1108 Invalid debugging format
  685.  
  686. When he removes /Ti and /De, it compiles fine.  But he wants to be able
  687. to debug his app.
  688.  
  689. He is using the GA version of C-Set/2, but not the GA for the toolkit.
  690. His linker is version 2.00.000 Feb 25 1992.  I'm assumming that the
  691. might be an incompatibility in the above setup which is causing the
  692. problem.  Am I correct, or is there another problem.  If there is another
  693. problem to this, is there a fix available?  Thanks.
  694.  
  695. Larry Moore     PSPC-Boca Tech Interface Group
  696.  
  697. ----- C-SET2 CFORUM appended at 19:01:05 on 92/05/08 GMT (by AMELINE at TOROLAB6)
  698. Subject: L1108 error
  699. Ref:     Append at 18:15:00 on 92/05/08 GMT (by V$IBTIGA at BCRVMPC1)
  700.  
  701.    Larry, I've seen that one before. It was caused for me by an OBJ
  702. having more than 64K in either the $$SYMBOLS or $$TYPES segments.
  703. Regradless, it is certainly a linker bug. The linker has no business
  704. with the debug information. It just copies those segments into the EXE
  705. after applying fixups to them.
  706.  
  707.    The problem for having >64K in the debug segments did have a fix
  708. developed for it, but I'm not sure if it made it into the GA linker.
  709.  
  710. Regards,
  711. Ian Ameline
  712.  
  713. ----- C-SET2 CFORUM appended at 22:50:35 on 92/05/08 GMT (by FRANCIS at TOROLAB6)
  714. Subject: upgrade to c-set2 from os/2 1.3 c/2 compiler
  715. Ref:     Append at 18:11:37 on 92/05/07 GMT (by MCG1032 at OS2CUST)
  716. From:    Tim Francis -- WorkFrame/2 development
  717.  
  718. There is no upgrade price for the C/2 compiler.  At the OS/2 developers
  719. conference this week it was announced that a promotional price for the
  720. Workset/2 package (consisting of C Set/2, WorkFrame/2 and the 2.0 Toolkit)
  721. of US$295 will be available, subject to the following:
  722.  
  723.  - Promotional period is from May 19 to September 5, 1992
  724.  - This price will only be available via the 1-800-3-IBM-OS2 number
  725.  
  726. It was decided that this will be a promotion available to everyone,
  727. rather than limiting it to an upgrade from other compilers.  Further
  728. details will be available when the "official" announcement comes out next
  729. week.   -tim
  730.  
  731. ----- C-SET2 CFORUM appended at 19:52:16 on 92/05/11 GMT (by V$IBTIGA at BCRVMPC1)
  732. Subject: L1108 error
  733. Ref:     Append at 19:01:05 on 92/05/08 GMT (by AMELINE at TOROLAB6)
  734.  
  735. Ian,
  736.  
  737. Thanks for your help.  The date on my linker is the same as the customer
  738. so he should be using the GA linker.
  739.  
  740. You mentioned a possible fix for this problem.  Is there any way I can
  741. find out if there is a fix and, if so, where is it?
  742.  
  743. Any help you can give me will be appreciated.
  744.  
  745. Larry Moore     PSPC-Boca Tech Interface Group
  746.  
  747. ----- C-SET2 CFORUM appended at 21:30:36 on 92/05/11 GMT (by AMELINE at TOROLAB6)
  748. Subject: L1108 error
  749. Ref:     Append at 19:52:16 on 92/05/11 GMT (by V$IBTIGA at BCRVMPC1)
  750.  
  751.    Larry,
  752.  
  753.    Contact Dave Blaschke in Boca. I believe he either is responsible for
  754. the linker now, or knows who is.
  755.  
  756. Regards,
  757. Ian Ameline
  758.  
  759. ----- C-SET2 CFORUM appended at 14:59:25 on 92/05/13 GMT (by FRANCIS at TOROLAB6)
  760. Subject: IBM C Developer's Workset/2 discount promotion announced
  761. From:    Tim Francis -- WorkFrame/2 development
  762.  
  763. OK, here is the "official" announcement.  (It's also been appended
  764. to the OS2BBS CFORUM, but it's more at home here, and I don't know if
  765. customers can easily handle cross-fora references).   -tim
  766.  
  767. MAY 12, 1992
  768. ------------
  769. IBM today announced a Limited Time Discount Promotion for the IBM
  770. C Developer's WorkSet/2 - the complete 32-bit C application
  771. development package for OS/2 2.0.
  772.  
  773. From May 19, 1992 until September 5, 1992, developers can purchase
  774. WorkSet/2 at a special price of $295 (regularly priced at $895) by
  775. calling 1-800-3IBM-OS2 (1-800-342-6672).
  776.  
  777. The IBM C Developer's WorkSet/2 includes:
  778.  
  779.          o  IBM C Set/2 Version 1.0, a 32-bit C compiler and a full
  780.             function PM Debugger;
  781.  
  782.          o  IBM WorkFrame/2 Version 1.0, an open, configurable,
  783.             project-oriented application development environment;
  784.  
  785.          o  IBM Developer's Toolkit for OS/2 2.0, a comprehensive
  786.             collection of productivity tools and a kernel debugger.
  787.  
  788. In addition, customers who have purchased the following products can
  789. also get the OS/2 2.0 Technical Library for $239 (regularly $299)
  790. and the IBM SAA CUA Controls Library/2 (CCL/2) for $357 (regularly
  791. $595).
  792.  
  793.          * IBM OS/2 Programming Tools and Information Version 1.2/1.3;
  794.  
  795.          * IBM C/2 Version 1.1;
  796.  
  797.          * Microsoft SDK for OS/2 Version 1.2.
  798.  
  799. Orders can be placed between 9 AM and 9 PM Eastern time, effective
  800. May 19, 1992.  Payment is by approved credit card only.  Shipment is
  801. expected to begin on June 5, 1992, or as soon as supply is available.
  802.  
  803. For further details, please refer to IBM Announcement Letter 392-111,
  804. dated 5/12/92.
  805.  
  806. ----- C-SET2 CFORUM appended at 20:42:43 on 92/05/13 GMT (by SBRZAYD at OS2CUST)
  807. Subject: CUA Controls' Library
  808.  
  809. What is the CUA Controls Library?  I've seen it referenced as a separate
  810. item; am I correct in assuming that the new controls (e.g. notebook,
  811. slider, container) do NOT come with the standard 2.0 developers toolkit?
  812.  
  813. If so, WHY?
  814.  
  815. Chris Corry
  816. American Management Systems
  817.  
  818. ----- C-SET2 CFORUM appended at 11:47:21 on 92/05/14 GMT (by HSB1038 at OS2CUST)
  819. Subject: Libraries for Multithreaded APPS
  820.  
  821. I am writing a PM app and am having some problems with trap errors on a
  822. WinCreateStdWindow call.  This code is identical to that in OS/2 v1.3 and
  823. MSC C compiler v6.0.
  824.  
  825.    hWndFrame = WinCreateStdWindow(hWndParent,  /* parent of window         */
  826.                                   lfStyle,     /* frame window style       */
  827.                                   &ctldata,    /* frame flags              */
  828.                                   appname,     /* class name               */
  829.                                   title,       /* window title             */
  830.                                   0L,          /* client window style      */
  831.                                   0,           /* module for resources     */
  832.                                   ResID,       /* resource id              */
  833.                                   hWndClient); /* client handle*/
  834. I think the problem may have something to do with the
  835. particular libraries I am linking in on the link line.  It is as follows:
  836.  
  837. .
  838. .
  839. .
  840. vmisc.obj  /align:16
  841.  
  842. INV.EXE
  843. INV.MAP /NOD
  844. Os2386.lib +
  845. dde4mbs.lib+dde4mbm.lib+e:\SQLLIB\SQL_DYN
  846. INV.DEF
  847.  
  848. Should I be using something other than the dde4mbs and dde4mbm libraries.  I
  849. Kept getting unresolved externals on things like _strdate and _atoi if I did
  850. not include both of them.  The APP does contain multiple threads.  Any thought
  851. would be appreciated.
  852.  
  853. ----- C-SET2 CFORUM appended at 22:11:19 on 92/05/14 GMT (by THRUMD at SYDVM1)
  854. Subject: CUA Controls' Library
  855. Ref:     Append at 20:42:43 on 92/05/13 GMT (by SBRZAYD at OS2CUST)
  856.  
  857. I believe these are versions of the controls for MS Windows so that
  858. people can develop cross-platform apps more easily.  They should
  859. *not* be required for OS/2 2.
  860.  
  861. Dave
  862.  
  863. ----- C-SET2 CFORUM appended at 08:50:10 on 92/05/15 GMT (by 40953586 at EHONE)
  864. Subject: CUA Controls' Library
  865. Ref:     Append at 22:11:19 on 92/05/14 GMT (by THRUMD at SYDVM1)
  866. Reply-to: Jurrie Lulofs <LULOFS@UITVM1>
  867.  
  868. A similar library exists for OS/2 1.3.
  869.  
  870. jurrie
  871.  
  872. ----- C-SET2 CFORUM appended at 12:11:13 on 92/05/15 GMT (by DALNK03 at OS2CUST)
  873. Subject:  Libraries for Multithreaded APPS
  874.  
  875. The last parameter hwndClient should be &hwndClient.  That would cause a trap.
  876.  
  877. ----- C-SET2 CFORUM appended at 13:23:07 on 92/05/15 GMT (by BIGBILL at TOROLAB6)
  878. Subject: CUA Controls' Library
  879. Ref:     Append at 20:42:43 on 92/05/13 GMT (by SBRZAYD at OS2CUST)
  880.  
  881. The CUA Controls Library is a product provided for OS/2 1.3 and
  882. MS Windows for developing code that uses the new controls that were
  883. provided in the base of OS/2 2.0.  It allows programmers to write apps
  884. that look and feel like 2.0 apps without actually having to port to 2.0
  885. right away.
  886.  
  887. Bill Sarantakos    OS/2 WorkFrame/2 Development      Toronto, Ontario
  888.  
  889. ----- C-SET2 CFORUM appended at 13:24:02 on 92/05/15 GMT (by BIGBILL at TOROLAB6)
  890. Subject: Libraries for Multithreaded APPS
  891. Ref:     Append at 12:11:13 on 92/05/15 GMT (by DALNK03 at OS2CUST)
  892.  
  893. That's what I was going to say too.
  894.  
  895. Bill Sarantakos    OS/2 WorkFrame/2 Development      Toronto, Ontario
  896.  
  897. ----- C-SET2 CFORUM appended at 14:45:51 on 92/05/15 GMT (by SBRZAYD at OS2CUST)
  898. Subject: CUA Controls' Library
  899.  
  900. Thanks for the clarification, one and all.
  901.  
  902. I got a copy of an IBM Internal CUA 2.0-syle control set months and months
  903. ago and was rather unimpressed; I fully understand that it was Beta-Beta
  904. code so I really didn't give it much thought. Most of the problems were
  905. CUA based, like confirm buttons with Ok instead of OK (although I've seen
  906. several instances of this particular CUA violation in 2.0 GA), so I wasn't
  907. concerned. I'm assuming that the GA CUA controls are perfect! ( :-> for all
  908. of you on the Extensions Development Team in Cary ).
  909.  
  910. Chris Corry
  911. American Management Systems
  912.  
  913. ----- C-SET2 CFORUM appended at 21:09:35 on 92/05/19 GMT (by UDSS013 at OS2CUST)
  914. Subject: PM/Debugger Doesn't Start Program
  915.  
  916. I just compiled and link'ed a new PM application -- my first for OS/2 v2.0
  917. and C Set, although I have experience with OS/2 v1.3 PM programming.  When
  918. I try to run the program from the command line, it switches the screen
  919. group to PM, so it is getting to the WinInitialize() API.  It then
  920. switches back to command line and terminates.
  921.  
  922. When I try to run the application using the PM debugger, I press OK on the
  923. Startup Information dialog and the Debugger Session Controls dialog fills in
  924. the program parts listbox with the names of my source code.   This is
  925. immediately followed by a message box indicating that the program has
  926. terminated.  I do not get the source window that displays my code.
  927.  
  928. If I issue File/Restart from the Session Controls dialog, I get:
  929.  
  930.        Fatal debugger Internal Error
  931.        Error code: R6.1-242 Please call IBM
  932.        rep. with the error code shown above.
  933.  
  934. I clearly have something strange going on here.  Compiles and links are
  935. clean.  My linker response file looks like:
  936.  
  937.         am1.obj     am1cre.obj  am1dlg.obj am1win.obj +
  938.         am1db.obj   am1mem.obj  am1nwn.obj
  939.         am1.exe
  940.         am1
  941.         b2hilb.lib
  942.         am1.def
  943.  
  944. Any ideas?  I don't have a lot to go on at this point!
  945.  
  946. ----- C-SET2 CFORUM appended at 10:02:05 on 92/05/20 GMT (by LUCYB at MANVM1) -
  947. Subject: CICS OS/2, OS2 2.0 PM, C Set/2 environment
  948.  
  949. We are planning to use the above as our development environment.
  950.  
  951. I would appreciate information on the wisdom or lack there of
  952. this idea.  Yesterday one of the members of our team was told that
  953. CICIS OS/2 had not been tested with C Set/2.
  954.  
  955. Thanks.
  956.  
  957. Lucy Barnhill MANVM1(LUCYB) TL 725-7411
  958.  
  959. ----- C-SET2 CFORUM appended at 13:11:44 on 92/05/20 GMT (by BIGBILL at TOROLAB6)
  960. Subject: PM/Debugger Doesn't Start Program
  961. Ref:     Append at 21:09:35 on 92/05/19 GMT (by UDSS013 at OS2CUST)
  962.  
  963. Check a couple of the standard things like the stack size you have
  964. specified and whether or not either WINDOWAPI was specified in the .DEF
  965. file or /PM:PM was specified during linking.
  966.  
  967. Bill Sarantakos    OS/2 WorkFrame/2 Development      Toronto, Ontario
  968.  
  969. ----- C-SET2 CFORUM appended at 13:32:37 on 92/05/20 GMT (by GERSTLE at LEXVMK)
  970. Subject: PM/Debugger Doesn't Start Program
  971. Ref:     Append at 21:09:35 on 92/05/19 GMT (by UDSS013 at OS2CUST)
  972.  
  973. You are most likely getting an exception during startup.  To debug this
  974. area, use the /i command line option for IPMD (debug application
  975. initialization) and step carefully through the startup process...
  976.  
  977. Pat Gerstle
  978.  
  979. ----- C-SET2 CFORUM appended at 14:50:45 on 92/05/20 GMT (by V$IPAULD at BCRVMPC1)
  980. Subject: CICS OS/2, OS2 2.0 PM, C Set/2 environment
  981. Ref:     Append at 10:02:05 on 92/05/20 GMT (by LUCYB at MANVM1)
  982.  
  983. CICS OS/2 is a 16-bit product. C-Set/2 is a 32-bit compiler. I
  984. suspect that you are going to have a *very* interesting time making
  985. calls to CICS OS/2 from 32-bit C code. It is possible, but may not
  986. be a task for the faint hearted !
  987.  
  988. Paul Devriendt
  989.  
  990. ----- C-SET2 CFORUM appended at 16:47:55 on 92/05/20 GMT (by UDSS013 at OS2CUST)
  991. Subject: PM/Debugger Doesn't Start Program
  992.  
  993. >>> Check a couple of the standard things like the stack size you have
  994. specified and whether or not either WINDOWAPI was specified in the .DEF
  995. file or /PM:PM was specified during linking. <<<
  996.  
  997. Thanks.  I took a look at the .DEF file and WINDOWAPI was specified.  I also
  998. relinked with /PM:PM just for grins and it didn't help.
  999.  
  1000. >>> You are most likely getting an exception during startup.  To debug this
  1001. area, use the /i command line option for IPMD (debug application
  1002. initialization) and step carefully through the startup process... <<<
  1003.  
  1004. Thanks for the info Pat.  I restarted the debugger on my code.  It is
  1005. executing part of the startup code before terminating.  It is getting to
  1006. the 7th line in DOSCALL1.  On the line:
  1007.  
  1008.                      001F:0296  CALL    1CB2H:0000H
  1009.  
  1010. If I press "I" to step into the code, I get the "Program Terminated" dialog.
  1011. I am linking with a .LIB that was created using IMPLIB on the .DEF file. The
  1012. DLL was ported from 16-bit to 32-bit and I got a clean compile and link.
  1013. However, this is the first time I have tried to use the DLL in its 32-bit
  1014. form.  I did compile with the /Ge- on the DLL.
  1015.  
  1016. If I had to venture a guess, I would have to say that my linkage between the
  1017. EXE and the DLL is not correct.
  1018.  
  1019. Thanks for the help.  Any other suggestions.
  1020.  
  1021. ----- C-SET2 CFORUM appended at 17:04:07 on 92/05/20 GMT (by FRANCIS at TOROLAB6)
  1022. Subject: CICS OS/2, OS2 2.0 PM, C Set/2 environment
  1023. Ref:     Append at 14:50:45 on 92/05/20 GMT (by V$IPAULD at BCRVMPC1)
  1024. From:    Tim Francis -- WorkFrame/2 development
  1025.  
  1026. I don't know about the CICS product specifically, but in general not
  1027. only does C Set/2 make it painless to call 16-bit code, it also makes it
  1028. very easy to write callback functions that can be called from 16-bit code.
  1029. -tim
  1030.  
  1031. ----- C-SET2 CFORUM appended at 21:50:16 on 92/05/20 GMT (by PETT at TOROLAB6)
  1032. Subject: CICS OS/2, OS2 2.0 PM, C Set/2 environment
  1033. Ref:     Append at 14:50:45 on 92/05/20 GMT (by V$IPAULD at BCRVMPC1)
  1034.  
  1035. This may not be as difficult as Paul thinks.  C Set/2 can call (and
  1036. be called by) 16 bit code.  There are several 16 bit calling conventions
  1037. supported (cdecl, pascal, and fastcall).  The only limitation is that
  1038. you usually need to dynamically link between 16 and 32 bit code.
  1039. This is required since to allow the runtime libraries to be
  1040. initialized (C Set/2 libraries can be initialized inside a DLL).  The
  1041. a problem with name conflicts between 16 and 32 bit C libraries is
  1042. also resolved if the 32 bit and 16 bit code are in separate DLLs.
  1043.  
  1044. Roger Pett
  1045.  
  1046. ----- C-SET2 CFORUM appended at 23:45:42 on 92/05/20 GMT (by V$IPAULD at BCRVMPC1)
  1047. Subject: CICS OS/2, OS2 2.0 PM, C Set/2 environment
  1048. Ref:     Append at 21:50:16 on 92/05/20 GMT (by PETT at TOROLAB6)
  1049.  
  1050. I wasn't so much thinking of the difficulties of getting between
  1051. 16 and 32 bit code as the C Set/2 compiler is indeed good. I was
  1052. more thinking along the lines of CICS itself - you write
  1053. statements such as
  1054. EXEC CICS DO THIS AND THAT WITH(FRED);
  1055. in your source code, and then run your source code through a
  1056. CICS C translator which writes the C code, then you compile the
  1057. C code. I would guess that you could end up having to hand edit
  1058. the output from the translator to get working 32-bit C code.
  1059.  
  1060. I can only suggest try it and see, unless the CICS OS/2 support
  1061. people can provide any references to someone who has already
  1062. tried it.
  1063.  
  1064. Paul Devriendt
  1065.  
  1066. ----- C-SET2 CFORUM appended at 14:01:10 on 92/05/21 GMT (by UDSS013 at OS2CUST)
  1067. Subject: PM/Debugger Doesn't Start Program
  1068.  
  1069. Me again.  I figured out what my problem was.  Due to an error in my include
  1070. file for NMAKE,  I was compiling with the "/Ge-" for the .EXE
  1071.  
  1072. Thanks for the help.
  1073.  
  1074. ----- C-SET2 CFORUM appended at 13:07:33 on 92/05/25 GMT (by HSB1038 at OS2CUST)
  1075. Subject: C/Set 2 and Database Manager
  1076.  
  1077. Has anyone successfully compiled an y applications using C/Set 2 and DBM.  I am
  1078.  on the GA versions of the compiler,  toolkit,  and DBM.  Whenever my program e
  1079. nters a module that was precompiled by SQLPREP I immediately get a trap error.
  1080.  Are there any special compile switches that I need to set?  How about linker o
  1081. ptions.  This program worked fine under v1.3 but does not under v2.0.  Any help
  1082.  would be appreciated.
  1083.  
  1084. ----- C-SET2 CFORUM appended at 13:43:27 on 92/05/25 GMT (by AMELINE at TOROLAB6)
  1085. Subject: C/Set 2 and Database Manager
  1086. Ref:     Append at 13:07:33 on 92/05/25 GMT (by HSB1038 at OS2CUST)
  1087.  
  1088.    You will have to use the /Sm switch, and /DES32TO16. If this doesn't
  1089. help, please let me know.
  1090.  
  1091. Regards,
  1092. Ian Ameline
  1093.  
  1094. ----- C-SET2 CFORUM appended at 20:58:05 on 92/05/26 GMT (by HSB1038 at OS2CUST)
  1095. Subject: C/Set 2 and Database Manager
  1096. Ref: Append at 13:43:27 on 92/05/25 GMT (by AMELINE at TOROLAB6)
  1097.  
  1098. I am already using both of these switches.  I did have the /Sa switch on as wel
  1099. l.  Should these switches apply to all .C files or only the ones using database
  1100.  manager?
  1101.  
  1102. ----- C-SET2 CFORUM appended at 22:53:02 on 92/05/26 GMT (by MARYAN at TOROLAB3)
  1103. Subject: enum in C/Set 2
  1104. Folks,
  1105.  
  1106. According to ANSI, enum data type should be equivalent to int.
  1107. Why C Set/2 implementation differs from this, even while compiling
  1108. with -Sa option (strict ANSI) ?
  1109.  
  1110. Jacek P. Maryan
  1111.  
  1112. ----- C-SET2 CFORUM appended at 13:39:42 on 92/05/27 GMT (by MOONEY at TOROLAB6)
  1113. Subject: enum in C/Set 2
  1114. Ref:     Append at 22:53:02 on 92/05/26 GMT (by MARYAN at TOROLAB3)
  1115.  
  1116. enum *constants* are of type int.  enum *variables* are of an integral
  1117. type.  (ANSI 3.5.2.2: "The identifiers in an enumerator list are declared
  1118. as constants that have type int..."  "Each enumerated type shall be
  1119. compatible with an integer type; the choice of type is implementation-
  1120. defined.")
  1121.  
  1122. That means that in the following declaration:
  1123.  
  1124.   enum colours { Red, Green, Blue }  col;
  1125.  
  1126. that Red, Green, and Blue are each int constants, and  col  is some
  1127. integral type.  In C Set/2, it is a  char  for this case.  To force this
  1128. enum to be of type int, add a dummy member to the end to force its size
  1129. to be larger:
  1130.  
  1131.   enum colours { Red, Green, Blue, dummy_colour = 65536 }  col;
  1132.  
  1133. dave
  1134.  
  1135. ----- C-SET2 CFORUM appended at 21:09:28 on 92/05/28 GMT (by FRYERK at TOROLAB6)
  1136. Subject: C/Set 2 and Database Manager
  1137. Ref:     Append at 20:58:05 on 92/05/26 GMT (by HSB1038 at OS2CUST)
  1138.  
  1139. /Sm and /Sa both specify the language level, so you can only use one.
  1140. Probably what is happening is that /Sa (which allows only ANSI
  1141. constructs) is overriding the /Sm switch.  Try getting rid of the /Sa
  1142. option and see what happens.
  1143.  
  1144. Kathryn Fryer
  1145. Toronto Information Development
  1146.  
  1147. ----- C-SET2 CFORUM appended at 21:45:13 on 92/05/28 GMT (by SGLIU at RHQVM04)
  1148. Subject: IBM C Developer's WorkSet/2 Promo Available via Purchase Order
  1149.  
  1150. IBM C DEVELOPER'S WORKSET/2 PROMOTION AVAILABLE VIA PURCHASE ORDER
  1151.  
  1152. MAY 28, 1992
  1153.  
  1154. Effective immediately, customers who wish to participate in the IBM
  1155. C Developer's WorkSet/2 Discount Promotion and who require the use
  1156. of Purchase Orders (PO) can do so by calling 1-800-IBM-CALL (1-800-
  1157. 426-2255) and asking for Marisa.  The hours of operation are from
  1158. 8:00 AM - 7:00 PM (Eastern Time).  In addition, orders can be placed
  1159. through FAX: (303) 440-1639 or IBMLink: DAYVM2(IBMCALL).
  1160.  
  1161. From May 19, 1992 until September 5, 1992, ANY developer can purchase
  1162. WorkSet/2 at the special price of $295 (regularly priced at $895), a
  1163. $600 savings!  Credit Card orders will continue to be accepted through
  1164. 1-800-3IBM-OS2 (1-800-342-6672).
  1165.  
  1166. The IBM C Developer's WorkSet/2 includes:
  1167.  
  1168.          o  IBM C Set/2 Version 1.0, a 32-bit C compiler and a full
  1169.             function PM Debugger;
  1170.  
  1171.          o  IBM WorkFrame/2 Version 1.0, an open, configurable,
  1172.             project-oriented application development environment;
  1173.  
  1174.          o  IBM Developer's Toolkit for OS/2 2.0, a comprehensive
  1175.             collection of productivity tools and a kernel debugger.
  1176.  
  1177. Developers who currently own any one (1) of the following three
  1178. products will be eligible for further discounts on the OS/2 2.0
  1179. Technical Library for $239 (regularly $299) and/or the IBM SAA CUA
  1180. Controls Library/2 (CCL/2) for $357 (regularly $595).  CCL/2 provides
  1181. a set of CUA '91 GUI controls for OS/2 1.3 and Microsoft Windows 3.0
  1182. applications.  When implemented, these applications will have a
  1183. similar look-and-feel of OS/2 Version 2.0.
  1184.  
  1185.          * IBM OS/2 Programming Tools and Information Version 1.2/1.3;
  1186.  
  1187.          * IBM C/2 Version 1.1;
  1188.  
  1189.          * Microsoft SDK for OS/2 Version 1.2.
  1190.  
  1191. Shipment is expected to begin on June 5, 1992, or as soon as supply
  1192. is available.  Customers who acquire the IBM C Developer's WorkSet/2
  1193. during this limited-time promotion will receive the OS/2 Developer
  1194. Magazine at no charge.
  1195.  
  1196. For further details, please refer to IBM Announcement Letter 392-111,
  1197. dated 5/12/92.  This promotion is available only in the United States.
  1198.  
  1199. Steve Liu
  1200. IBM PS Product Marketing
  1201. White Plains, New York
  1202.  
  1203. ----- C-SET2 CFORUM appended at 01:38:59 on 92/05/29 GMT (by HSB1038 at OS2CUST)
  1204. Subject: C/Set 2 and Database Manager
  1205. Ref: Append at 21:09:28 on 92/05/28 GMT (by FRYERK at TOROLAB6)
  1206.  
  1207. I did just that . I removed the /Sa switch and there was no difference.  I need
  1208.  to know if anyone has tried this yet or are we just speculating that it should
  1209.  work.  I have heard through other folks that only the Microsoft compiler (16 b
  1210. it) is supported for database manager development.  If anyone has actually gott
  1211. en this to work I'd like to know.  Thanks for helping me out.  There is no othe
  1212. r place to turn!!
  1213.  
  1214. ----- C-SET2 CFORUM appended at 02:22:01 on 92/05/29 GMT (by BIGBILL at TOROLAB6)
  1215. Subject: C/Set 2 and Database Manager
  1216. Ref:     Append at 01:38:59 on 92/05/29 GMT (by HSB1038 at OS2CUST)
  1217.  
  1218. Are you perhaps putting the compile options after the filename on the
  1219. command line?  If so, they are not being used since file specific
  1220. options must precede the filename.
  1221.  
  1222. Bill Sarantakos    OS/2 Compiler Development         Toronto, Ontario
  1223.  
  1224. ----- C-SET2 CFORUM appended at 15:28:33 on 92/05/29 GMT (by WEEKS at AUSVM2) -
  1225. Subject: C/Set 2 and Database Manager
  1226. Ref:     Append at 01:38:59 on 92/05/29 GMT (by HSB1038 at OS2CUST)
  1227.  
  1228. Database Manager definitely supports 32-bit applications.  If you
  1229. will FAX me your compile options and a SMALL piece (if at all
  1230. possible) of failing code I will look into it.  If you have access
  1231. to IBMMAIL you can simply send it to me at USIB3KCP at IBMMAIL.
  1232. My FAX number is 512-823-3047.
  1233.  
  1234. Craig Weeks
  1235. OS/2 Application Development Center
  1236. Austin, Texas
  1237.  
  1238. ----- C-SET2 CFORUM appended at 22:09:13 on 92/05/29 GMT (by HARGRAVE at BCRVMPC1)
  1239. Subject: C/Set 2 optimize option bug
  1240. Ref:     None.
  1241.  
  1242. The following small prog does not work when compiled with /O.
  1243. Am I doing something wrong or is this a C Set/2 bug?
  1244.  
  1245. Below are the compile options. This program works fine
  1246. if I don't use the /O option.
  1247.  
  1248. [E:\test32]icc /O cbug.c
  1249. Licensed Materials - Property of IBM
  1250. IBM C Set/2  Version 1.0
  1251. (C) Copyright IBM Corp. 1991, 1992. All Rights Reserved.
  1252. US Government Users Restricted Rights - Use, duplication or disclosure
  1253. restricted by GSA ADP Schedule Contract with IBM Corp.
  1254.  
  1255. Operating System/2 LX (Linear Executable) Linker
  1256. Version 2.00.000 Feb 25 1992
  1257. Copyright (C) IBM Corporation 1988-1992.
  1258. Copyright (C) Microsoft Corp. 1988-1992.
  1259. All rights reserved.
  1260.  
  1261. Object Modules [.obj]: /pmtype:vio /noi /align:16 /exepack /base:65536 +
  1262. Object Modules [.obj]: cbug.obj
  1263. Run File [cbug.exe]: cbug.exe
  1264. List File [nul.map]:
  1265. Libraries [.lib]:
  1266. Definitions File [nul.def]:
  1267.  
  1268. [E:\test32]cbug
  1269. " 89% 1657" should be printed below
  1270. " 89% 1067"
  1271.  
  1272. [E:\test32]
  1273.  
  1274. -------------------Cut Here---CBUG.C--------------------
  1275. #include        <stdio.h>
  1276. #include        <string.h>
  1277.  
  1278. char szPercent[] = "   %";
  1279. char szTime[] = "    ";
  1280.  
  1281. void main ( void )
  1282.  {
  1283.   unsigned long usage;
  1284.   unsigned long time;
  1285.   long i;
  1286.  
  1287.   usage = 89;
  1288.   time = 1657;
  1289.  
  1290.   printf ("\"%3u%% %4u\" should be printed below\n", usage, time );
  1291.  
  1292.   for ( i = 2; usage && ( i >= 0 ); i-- )
  1293.   {
  1294.     szPercent[i] = (char) ( usage % 10 + '0' );
  1295.     usage /= 10;
  1296.   }
  1297.  
  1298.   for ( i = 3; i >= 0; i-- )
  1299.   {
  1300.     szTime[i] = (char) ( time % 10 + '0' );
  1301.     time /= 10;
  1302.   }
  1303.  
  1304.   printf ( "\"%.4s %.4s\"\n", szPercent, szTime );
  1305. }
  1306. -------------------Cut Here-----------------------------
  1307.  
  1308. BJ Hargrave
  1309.  
  1310. ----- C-SET2 CFORUM appended at 22:47:44 on 92/05/29 GMT (by SC23461 at AUSVM1)
  1311. Subject: C/Set 2 and Database Manager
  1312. Ref:     Append at 15:28:33 on 92/05/29 GMT (by WEEKS at AUSVM2)
  1313.  
  1314. Actually, if you want to send softcopy rather than faxes to Craig, I'm
  1315. right down the hall from him and can forward them to him from IBMLink,
  1316. X400, or InterNet ID's... you can go through X400 or InterNet from MCI,
  1317. CompuServe, etc. ... send to me at:
  1318.  
  1319.    IBMLink: DEV1122  (use % for system)
  1320.    Internet: lwygant@vnet.ibm.com
  1321.    X400: C=US,A=IBMX400,P=IBMMAIL,S=WYGANT,G=WYGAN
  1322.  
  1323. Thanks...
  1324.  
  1325.       L. F. Wygant
  1326.       Key Developer Advocate:  "TLC for the ISV"
  1327.       OS/2 EE/ES/LS Application Developer Technical Support Group
  1328.       Dept. 617, IBM Austin
  1329.  
  1330. ----- C-SET2 CFORUM appended at 16:58:33 on 92/06/01 GMT (by V$IBTIGA at BCRVMPC1)
  1331. Subject: C-Set/2 question
  1332.  
  1333. Is there a function in C-Set/2 that performs just like the IN and OUT
  1334. functions that comes with MS 6.0?  Or do I have to use an API?
  1335.  
  1336. Larry Moore     PSPC-Boca Tech Interface Group
  1337.  
  1338. ----- C-SET2 CFORUM appended at 19:07:08 on 92/06/01 GMT (by VENDENA at DALVM41B)
  1339. Subject: UPM Logon API works in MS C 6.0, but not C Set/2
  1340. Reference: none
  1341.  
  1342.     ****** Warning- Long Append ******
  1343. **************************************
  1344.  
  1345. I have written a program that works when compiled
  1346. and linked with MicroSoft C 6.0, but I get an error
  1347. when I run it after compiling and linking with IBM
  1348. C Set/2.  It is a VERY simple program that calls a
  1349. UPM API.  The API brings up the local logon menu and
  1350. allows the user to type in his/her userid and password.
  1351. The userid and authority is passed back to the program.
  1352. The API is documented in the Extended Services Guide
  1353. to User Profile Mamagement, appendix C.  Has anyone
  1354. gotten ANY of the UPM APIs to work using C Set/2????????
  1355.  
  1356. Here is the program:
  1357. ----------------------------------------
  1358. #include <stdio.h>     /* I/O declarations,definitions   */
  1359. #include <string.h>    /* string functions               */
  1360. #include <upm.h>       /* User Profile Management        */
  1361. #include <os2.h>
  1362.  
  1363. main()
  1364. {
  1365.     unsigned short RC, TYPE;
  1366.     unsigned char USERIDì9┘;
  1367.  
  1368.     printf("\nProgram has begun.\n");
  1369.     RC = upmelocl(USERID,&TYPE);
  1370.     printf("\nAfter logon call.\n");    /** program never gets here **/
  1371.     printf("\n%s",USERID);
  1372.     printf("\n%x",RC);   /* print return code hex value */
  1373.  
  1374. }  /* end main */
  1375.  
  1376. ---------------------------------------
  1377. Here's what happens when I run it:
  1378.  
  1379. Program has begun.
  1380. General Protection Fault exception occurred at EIP = 14972354 on
  1381. thread 0001.
  1382. Register Dump at point of exception:
  1383. EAX = D88E0158    EBX = 00000000  ECX = 000A0200    EDX = 00052C48
  1384. EBP = 00052C2C    EDI = 00000000  ESI = 00000000    ESP = 00052B9C
  1385. ªCS =     005B  CSLIM = 1BFFFFFF   DS =     0053  DSLIM = 1BFFFFFF
  1386. ªES =     0053  ESLIM = 1BFFFFFF   FS =     150B  FSLIM = 00000030
  1387. ªGS =     0000  GSLIM = 00000000   SS =     0053  SSLIM = 1BFFFFFF
  1388. Process terminating.
  1389.  
  1390. --------------------------------------
  1391. I think I'm using the correct compile options:
  1392.  
  1393.    ICC.EXE /DINCL_32 /DES32TO16 /Fl /Ti /Gt /C .\$*.c
  1394.  
  1395. and I am linking to the UPM library.  I used the
  1396. WorkFrame/2 to create my MAKEFILE and MAKEFILE.DEP.
  1397.  
  1398. The assumed include environment variable path in my
  1399. MAKEFILE.DEP is:
  1400.  
  1401. #   E:\TOOLKT20\C\OS2H;
  1402. #   E:\TOOLKT20\ASM\OS2INC;
  1403. #   D:\SQLLIB;
  1404. #   D:\MUGLIB;
  1405.  
  1406. I have written a VERY simple Database Manager program
  1407. and it works fine.  Again, I have no errors during
  1408. compile and link time, only when I run the program.
  1409.  
  1410. Any ideas???  What have I left out?
  1411.  
  1412. Has anyone gotten UPM APIs to work using C Set/2?
  1413.  
  1414. Thanks,
  1415. Dena Laterza
  1416.  
  1417. ----- C-SET2 CFORUM appended at 19:54:38 on 92/06/01 GMT (by WEEKS at AUSVM2) -
  1418. Subject: C/Set 2 and Database Manager
  1419. Ref:     Append at 01:38:59 on 92/05/29 GMT (by HSB1038 at OS2CUST)
  1420.  
  1421. My contact in the development lab says this:
  1422.  
  1423.    The required compile options are listed in the GA version of the
  1424.    Prg.  Guide.  It's very straight forward.  The big change is
  1425.    throwing the /DES32TO16 compile option so that the correct
  1426.    prototypes are used.  The other switches are simply /Sm /Gt.
  1427.  
  1428. This is pretty simple stuff and I'm sure you've already done this
  1429. but I just wanted to be sure.  (This is analogous to those trouble
  1430. shooting guides that come with home appliances.  They always say
  1431. "First, be sure it is plugged in".)
  1432.  
  1433. Craig Weeks
  1434. OS/2 Application Development Center
  1435. Austin, Texas
  1436.  
  1437. ----- C-SET2 CFORUM appended at 12:58:19 on 92/06/02 GMT (by BIGBILL at TOROLAB6)
  1438. Subject: none
  1439. Ref:     Append at 19:07:08 on 92/06/01 GMT (by VENDENA at DALVM41B)
  1440.  
  1441. I just looked at upm.h and it looks like there is a bug in the header
  1442. for 32-bit support.  In my copy, on line 48, LSPAS is defined to
  1443. nothing while on line 53 it is defined to 'pascal' for 16-bit support.
  1444. If it truly is pascal calling convention, you should edit the file
  1445. and define LSPAS to be '_Far16 _Pascal'.  That should get you part/most/
  1446. all of the way there.
  1447.  
  1448. Bill Sarantakos    OS/2 Compiler Development         Toronto, Ontario
  1449.  
  1450. ----- C-SET2 CFORUM appended at 16:28:50 on 92/06/02 GMT (by VENDENA at DALVM41B)
  1451. Subject: none
  1452. Ref:     Append at 12:58:19 on 92/06/02 GMT (by BIGBILL at TOROLAB6)
  1453.  
  1454. Thanks for the hint, you were close.
  1455.  
  1456. I found the problem!
  1457.  
  1458. The GA version of UPM.H has a typo in it.  Line 333 reads:
  1459.     #pragma linkage (UPMELCOL, far16 pascal)
  1460. and should be:
  1461.     #pragma linkage (UPMELOCL, far16 pascal)
  1462.  
  1463. My call to the upmelocl API was not working properly using C Set/2
  1464. because of this typo.
  1465.  
  1466. -Dena Laterza
  1467.  
  1468. ----- C-SET2 CFORUM appended at 13:57:10 on 92/06/03 GMT (by V$IBTIGA at BCRVMPC1)
  1469. Subject: none
  1470.  
  1471. I have a customer who is converting his C code from DOS to OS/2.
  1472. His DOS C code contains the functions INP and OUTP.
  1473.  
  1474. Apparently C Set/2 does not support these functions.  Are there functions
  1475. and/or API's that can be used in place of INP and OUTP?
  1476.  
  1477. Larry Moore     PSPC-Boca Tech Interface Group
  1478.  
  1479. ----- C-SET2 CFORUM appended at 14:20:51 on 92/06/03 GMT (by OCANUC at BETASVM2)
  1480. Subject: none
  1481. Ref:     Append at 13:57:10 on 92/06/03 GMT (by V$IBTIGA at BCRVMPC1)
  1482.  
  1483. I used DosOpen, DosRead, and DosWrite (OS/2 CP API functions)
  1484. to implement RS232 communications just recently.  Worked quite well.
  1485. I just opened "com1" and used it as though it were file.
  1486.  
  1487. Brandon Booth   Advanced Programming - ICSRS
  1488.  
  1489. ----- C-SET2 CFORUM appended at 13:14:30 on 92/06/05 GMT (by EDSIMON at TOROLAB4)
  1490. Subject: Customer visits
  1491. Ref:     None
  1492.  
  1493. Hi,
  1494.  
  1495. We are responsible for the technical information delivered with
  1496. the WorkFrame/2 and C Set/2 products.  That includes
  1497. the online information as well as the hardcopy that goes out with
  1498. the products.
  1499.  
  1500. We would like to visit a customer site.  The purpose of the visit
  1501. would be twofold:  1) you (the customer) can tell us what you like or
  1502. don't like about the product's documentation and 2) we can learn
  1503. how to better design the information so it best suits our customers.
  1504.  
  1505. If you are a customer who has been using the WorkFrame/2
  1506. and/or C Set/2 products for a month or more, and would
  1507. like to show us how you use the product and its information,
  1508. append a note to this forum saying so.
  1509.  
  1510. If you are an IBM customer representative who wants to give your
  1511. customers the chance to talk face to face with someone that
  1512. worked on the product, let me know as well.
  1513.  
  1514. Please let me know by June 15 if you are interested in having us visit
  1515. your site.  I will need to know your name, the name of your company,
  1516. your telephone number, and the city you work in.
  1517.  
  1518. P.S.  While we are eager to hear from as many customers as possible,
  1519. please be aware that we may be limited in the extent of
  1520. visits we can make.
  1521.  
  1522. Regards,
  1523. Ed Simon and Kathryn Fryer
  1524.  
  1525. ----- C-SET2 CFORUM appended at 16:22:23 on 92/06/05 GMT (by XXNOVA24 at TORVMCOP)
  1526. Subject: Customer visits
  1527. Ref:     Append at 13:14:30 on 92/06/05 GMT (by EDSIMON at TOROLAB4)
  1528.  
  1529. Way to go guys!
  1530.     I'm impressed with the offer itself. Just like a costumer driven
  1531. company!
  1532.     unfortunately I'm still using the beta CSET , but with 399CDN I'll
  1533. order it for home.
  1534.  
  1535. Ye, one more thing: What is the Tech Ref books? is it the same than the
  1536. INF files? Its a printed READ/2 document? Is it a tutorial\DEEP reference
  1537. ?
  1538. Geza Szivos
  1539. NOVACOR Chemicals (403)-290-6583
  1540.  
  1541. ----- C-SET2 CFORUM appended at 19:11:08 on 92/06/05 GMT (by UDSS013 at OS2CUST)
  1542. Subject: PM Debugger (IPMD) can't load source code
  1543.  
  1544. I am trying to load the IPMD debugger on my code.  I start the debugger
  1545. and select my program to debug in the Startup Information dialog.  When I
  1546. press OK,  I can see the Threads listbox get initialized.  The Program Parts
  1547. listbox fills with the system DLLs (e.g. DOSCALL1), then I see it fill with the
  1548. names of the source code in my application.  The window to hold the source code
  1549. for the main() opens, but before the source code appears, the window closes
  1550. and IPMD terminates with no error messages, abends or any other kind of
  1551. diagnostic info.
  1552.  
  1553. As far as I can tell, I have specified all of the correct switches for compile
  1554. and link to give me symbolic debugging information.  I am concurrently
  1555. developing this and another PM application.  The other application gets into
  1556. the debugger OK.
  1557.  
  1558. Any ideas?
  1559.  
  1560. ----- C-SET2 CFORUM appended at 21:54:53 on 92/06/05 GMT (by WEEKS at AUSVM2) -
  1561. Subject: PM Debugger (IPMD) can't load source code
  1562. Ref:     Append at 19:11:08 on 92/06/05 GMT (by UDSS013 at OS2CUST)
  1563.  
  1564. I had this happen to me and the fix was a new C Set/2 .DLL file -
  1565. in other words a real bug.  I'll see if it's OK for me to get it
  1566. to you - it's definitely not fully tested, certified, etc. code that
  1567. I'm using.  You might try invoking IPMD from a REXX .CMD file and
  1568. printing out the return code you get from IPMD.  I was getting 99
  1569. as the return code.
  1570.  
  1571. Craig Weeks
  1572. OS/2 Application Development Center
  1573. Austin, Texas
  1574.  
  1575. ----- C-SET2 CFORUM appended at 22:05:01 on 92/06/05 GMT (by XXPRMN01 at TORVMCOP)
  1576. Subject: PM Debugger (IPMD) can't load source code
  1577. Ref:     Append at 19:11:08 on 92/06/05 GMT (by UDSS013 at OS2CUST)
  1578.  
  1579. Are you using the debugger in Async mode?  I have had occasions where
  1580. the debugger would do what you mention when I set the debugger to
  1581. Async mode instead of Sync mode (Aysnc allows messages to still be
  1582. sent when the debugger has control whereas Sync stops all messages except
  1583. for itself)
  1584.  
  1585. Matt Smith, Prominare Inc.
  1586.  
  1587. ----- C-SET2 CFORUM appended at 12:00:34 on 92/06/06 GMT (by HSB1038 at OS2CUST)
  1588. Subject: IPMD crashing whenever I exit
  1589.  
  1590. I finally got my database manager application to work(somewhat).  The problem w
  1591. as with the last parameter of the WinDlgBox function and not the compile option
  1592. s.  But whenever I leave the debugger to try and correct a program error,  or w
  1593. henever I leave the debugger period, my machine is locked up solid with OS/2 te
  1594. lling me that the application I was debugging is notresponding.  When I press <
  1595. Enter> to kill it,  the machine simp¢ly stays in this loop.  Should I be debugg
  1596. ing syncronously or asynchronously??  The debugger did not seem to hang with th
  1597. e sample apps but with mine in particular.  Any thoughts on how to track this d
  1598. own??
  1599.  
  1600. ----- C-SET2 CFORUM appended at 12:02:15 on 92/06/06 GMT (by HSB1038 at OS2CUST)
  1601. Subject: Database manager APP finally works
  1602.  
  1603. Just want to say thanks to those that responded to my question.  The problem wa
  1604. s the WinDlgBox function and not the compile options.  This was a tough one to
  1605. find.
  1606.  
  1607. ----- C-SET2 CFORUM appended at 17:13:26 on 92/06/06 GMT (by BACKER at DFWVM04)
  1608. Subject: EDC0069 & EDC0173 errors on SQL.H and SQLENV.H
  1609. Ref:     NONE
  1610.  
  1611. Can anyone suggest a reason why I'm getting these errors on compile?
  1612. Here's my compiler invocation:
  1613.  
  1614. ICC /Ss /Sm /DES32TO16 /FlDBSERVER /Ls /Li /FoDBSERVER /Gm /Gt
  1615.       /FeDBSERVER DBSERVER.C
  1616.  
  1617. Please help, fairly urgent!
  1618.  
  1619. Thanks!!!
  1620.  
  1621. Warren Backer
  1622.  
  1623. ----- C-SET2 CFORUM appended at 13:26:03 on 92/06/08 GMT (by MOONEY at TOROLAB6)
  1624. Subject: C-Set/2 question
  1625. Ref:     Append at 16:58:33 on 92/06/01 GMT (by V$IBTIGA at BCRVMPC1)
  1626.  
  1627. There isn't a way to do this with C Set/2 yet, but we're fixing that for
  1628. next release.  In the mean time, you'll have to write an external .ASM
  1629. routine to do it for you.
  1630.  
  1631. dave
  1632.  
  1633. ----- C-SET2 CFORUM appended at 13:34:26 on 92/06/08 GMT (by V$IBTIGA at BCRVMPC1)
  1634. Subject: Bug in IPMD?
  1635.  
  1636. A customer brought this to my attention and I wanted to forward this in
  1637. case this is a valid bug.
  1638.  
  1639. For IMPD, the customer was debugging HELLO.EXE, which came with the
  1640. toolkit.  He would press 'O' to step over the functions.  This ran fine
  1641. until he came up to WinRegisterClass, located on line 132.  If he pressed
  1642. 'O', instead of stepping over this API, he would go into it.  The next
  1643. thing he knew, he was looking at assembly code for this API.
  1644.  
  1645. I tried it myself, and I could recreate it.  This is IPMD for OS/2 GA.
  1646. If this is not a bug, why can't one simply step over this API?
  1647.  
  1648. Larry Moore     PSPC-Boca Tech Interface Group
  1649.  
  1650. ----- C-SET2 CFORUM appended at 17:19:27 on 92/06/08 GMT (by AOI1075 at OS2CUST)
  1651. Subject: Syntax for casting a watched variable?
  1652.  
  1653. Allow me to apologize for having to ask this question.  We received the beta
  1654. C-Set/2 compiler, and I cannot find the answer in the beta documentation.
  1655. We await the GA documentation.
  1656.  
  1657. When the debugger cannot resolve the type of a watched variable to a supported
  1658. type, the help documentation says to 'cast the variable to a supported type'.
  1659. I take this to mean that you can specify a cast to the debugger.  If I have
  1660. made a correct assumption, then what syntax must I use?
  1661.  
  1662. J.Farmer    IBMMAIL(USAOIXGW)
  1663.  
  1664. ----- C-SET2 CFORUM appended at 20:14:27 on 92/06/08 GMT (by EDSIMON at TOROLAB4)
  1665. Subject: Customer visits
  1666. Ref:     Append at 16:22:23 on 92/06/05 GMT (by XXNOVA24 at TORVMCOP)
  1667.  
  1668. Thanks for the endorsement.
  1669.  
  1670. I'm not sure what you mean by the "Tech Ref" but I'll make
  1671. a guess that its the OS/2 Toolkit Technical Reference
  1672. you are referring to.
  1673.  
  1674. The OS/2 Toolkit used to come with a large number of books.
  1675. For this version, they have supplied a lot of online reference
  1676. material instead (see the Toolkit Information folder in the
  1677. Toolkit folder).  If you want the info in hardcopy, you order
  1678. it separately.
  1679.  
  1680. The Toolkit info (both online and hardcopy) describes the PM
  1681. function calls, Toolkit utilities, etc.  It contains no additional
  1682. information about the WorkFrame/2 or C Set/2 products that you
  1683. wouldn't find in the information sent out with those products.
  1684.  
  1685. Ed Simon
  1686.  
  1687. ----- C-SET2 CFORUM appended at 20:24:15 on 92/06/08 GMT (by UDSS013 at OS2CUST)
  1688. Subject: PM Debugger (IPMD) can't load source code
  1689. Ref: Append at 21:54:53 on 92/06/05 GMT (by WEEKS at AUSVM2) -
  1690.  
  1691. Thanks for the information.  I was also able to circumvent the problem by
  1692. turning on the option to "Debug application initialization".  I will
  1693. remember the return code suggestion for future problems.
  1694.  
  1695. Gary Murphy
  1696.  
  1697. ----- C-SET2 CFORUM appended at 21:24:41 on 92/06/08 GMT (by XXNOVA24 at TORVMCOP)
  1698. Subject: Customer visits
  1699. Ref:     Append at 20:14:27 on 92/06/08 GMT (by EDSIMON at TOROLAB4)
  1700.  
  1701. Ed,
  1702.    Yes, I meant the 'OS/2 Toolkit Technical Reference' .
  1703. You just saved a tree , and 300$ for me. If you come over to the
  1704. Wild-West, I invite you for an Alberta Steak.
  1705.  
  1706.    I used to be happy with the Online Documentation , I prefere it
  1707. over the printed one. If the 'OS/2 Toolkit Technical Reference' is just
  1708. a printout I don't need it.
  1709. Thanks,
  1710. Geza Szivos
  1711. NOVACOR Chemicals (403)-290-6583
  1712.  
  1713. ----- C-SET2 CFORUM appended at 15:00:39 on 92/06/09 GMT (by GERSTLE at LEXVMK)
  1714. Subject: Syntax for casting a watched variable?
  1715. Ref:     Append at 17:19:27 on 92/06/08 GMT (by AOI1075 at OS2CUST)
  1716.  
  1717. We need to know more details as to how you are getting an unsupported
  1718. type.  This should not be possible for C-Set/2 generated code.  Some
  1719. types are not supported when you are debugging Microsoft generated code
  1720. (bit fields, 16 bit pointers, etc.).  Send me a testcase if you have
  1721. something to demonstrate your problem.
  1722. Pat Gerstle
  1723.  
  1724. ----- C-SET2 CFORUM appended at 15:01:48 on 92/06/09 GMT (by GERSTLE at LEXVMK)
  1725. Subject: Bug in IPMD?
  1726. Ref:     Append at 13:34:26 on 92/06/08 GMT (by V$IBTIGA at BCRVMPC1)
  1727.  
  1728. I have not been able to duplicate this - please send a copy of the files
  1729. for which it fails.
  1730.  
  1731. Pat Gerstle
  1732.  
  1733. ----- C-SET2 CFORUM appended at 15:03:42 on 92/06/09 GMT (by GERSTLE at LEXVMK)
  1734. Subject: IPMD crashing whenever I exit
  1735. Ref:     Append at 12:00:34 on 92/06/06 GMT (by HSB1038 at OS2CUST)
  1736.  
  1737. I am sending you a new debugger DLL which should help with your
  1738. problem.
  1739.  
  1740. Pat Gerstle
  1741.  
  1742. ----- C-SET2 CFORUM appended at 12:16:05 on 92/06/10 GMT (by AOI1075 at OS2CUST)
  1743. Subject: Syntax for casting a watched variable?
  1744. Ref: Append at 15:00:39 on 92/06/09 GMT (by GERSTLE at LEXVMK)
  1745.  
  1746. The fellow that encountered this problem will return from vacation Monday,
  1747. June 15.  I'll see about making a test case then.  The variable that caused
  1748. the trouble was a plain type (the memory is the second thing to go, but I
  1749. believe, after resolving the definitions it was an int).
  1750.  
  1751. J.Farmer    IBMMAIL(USAOIXGW)
  1752.  
  1753. ----- C-SET2 CFORUM appended at 03:18:53 on 92/06/11 GMT (by MARYAN at TOROLAB3)
  1754. Subject: seg16 structure inside structure
  1755.  
  1756. Folks,
  1757.  
  1758. Could somebody explain this to me. Assume declaration as follows:
  1759.  
  1760. struct cat_tag { ... };
  1761. struct dog_tag { ... };
  1762.  
  1763. typedef struct cat_tag { ... } cat16;
  1764. typedef struct cat_tag { ... } cat32;
  1765.  
  1766. typedef struct dog_tag { ... } dog16;
  1767. typedef struct dog_tag { ... } dog32;
  1768.  
  1769. #pragma seg16( cat16 )
  1770. #pragma seg16( dog16 )
  1771.  
  1772. struct pet_tag {
  1773.   cat32 Puffy;
  1774.   cat16 Purr;
  1775.   dog32 Whisky;
  1776.   dog16 Bill;
  1777. } pet;
  1778.  
  1779. How the whole structure is affected ? How particular members are
  1780. affected ? My assumption is that Purr and Bill will be placed the way
  1781. so they will not cross 64k boundary, even if there will be some holes
  1782. in the structure pet.
  1783.  
  1784. Jacek P. Maryan
  1785.  
  1786. ----- C-SET2 CFORUM appended at 11:50:26 on 92/06/11 GMT (by MOONEY at TOROLAB6)
  1787. Subject: seg16 structure inside structure
  1788. Ref:     Append at 03:18:53 on 92/06/11 GMT (by MARYAN at TOROLAB3)
  1789.  
  1790. The compiler can't guarantee that substructs will be laid out so that
  1791. they don't cross 64K boundaries, so it should do the next best thing:
  1792. to ensure that the *entire* struct doesn't cross a 64K boundary.  But O
  1793. Tempora! O Mores!, it doesn't even do that, which I would call a bug.
  1794. I'll open a PTR for next release.  For now, I wouldn't worry about it,
  1795. since OS/2 2.0 lays out *all* variables so that they don't cross 64K
  1796. boundaries, I believe.
  1797.  
  1798. dave
  1799.  
  1800. ----- C-SET2 CFORUM appended at 12:06:39 on 92/06/11 GMT (by KOLSKY at HAIFASC3)
  1801. ..... C-SET2 CFORUM modified at 12:21:51 on 92/06/11 GMT (by KOLSKY at HAIFASC3)
  1802. Subject: 'Arrrgh' or 'Can it be that I've started using C-SET/2?'
  1803. Moved to C-SET2 FORUM by KOLSKY at HAIFASC3
  1804.  
  1805. ----- C-SET2 CFORUM appended at 14:23:39 on 92/06/12 GMT (by ALVIN at TOROLAB3)
  1806. Subject: seg16 structure inside structure
  1807. Ref:     Append at 11:50:26 on 92/06/11 GMT (by MOONEY at TOROLAB6)
  1808.  
  1809. Dave,
  1810.  
  1811. Are you saying that the compiler can not garantee _Seg16 for
  1812. an *entire* structure will work propery?
  1813. Thanks.
  1814.  
  1815. Alvin.
  1816.  
  1817. ----- C-SET2 CFORUM appended at 16:24:52 on 92/06/12 GMT (by MOONEY at TOROLAB6)
  1818. Subject: seg16 structure inside structure
  1819. Ref:     Append at 14:23:39 on 92/06/12 GMT (by ALVIN at TOROLAB3)
  1820.  
  1821. I'm saying that given
  1822.  
  1823.   typedef struct { int a; } s1;
  1824.   #pragma seg16( s1 )
  1825.  
  1826.   struct { int b; s1 s; } s2;
  1827.  
  1828. the compiler can't guarantee that the  s1  inside s2 will be aligned
  1829. properly, so it is supposed to make *all* of  s2  to be aligned properly.
  1830. It doesn't do that right no, and that's a bug.
  1831.  
  1832. dave
  1833.  
  1834. ----- C-SET2 CFORUM appended at 17:25:07 on 92/06/15 GMT (by JSCOTT at CHGVMIC1)
  1835. Subject: 32->16 How to approach the environment.
  1836.  
  1837. I would like some advise on how to code/approch this environment.
  1838.  
  1839. I am writing a 32bit multi-threaded(object windows) PM application
  1840. that needs to call 16 bit database routines.  The first pass at this
  1841. was based on reading everything I could find on the topic of 32/16. In
  1842. a fashion I have made some progress.  But I am curious about what the
  1843. reccommended approach should be.
  1844.  
  1845. Structurally, I have a PM interface thread that uses containers and
  1846. notebooks.  One object window, in a second thread, that make database
  1847. calls using an OEM database product. (?ybase)  This database product
  1848. consists of a OBJECT library, a IMPLIB for it single DLL, and a HEADER
  1849. file.  All components of this library set are 16bit.
  1850.  
  1851. I had thought that I could simply modify their header file to declare
  1852. their function as CDECL16, and any pointers present as _Seg16, etc.  Then
  1853. write little IO modules using C-SET2 that would call those 16bit routines
  1854.  
  1855. To my suprise that approch seemed to work fine, until now.  As I get into
  1856. their more advance routines that apparently do a great deal of internal
  1857. memory allocation, I am having problems.  Using debug I have followed
  1858. a problem three call levels into their code; it finally fails while
  1859. performing what looks like a memcpy.  Before I dig in deeper I thought
  1860. I would ask someone what my options are.
  1861.  
  1862. I USE IBM C-SET/2 WITH STANDARD LIBRARIES, IBM WORKFRAME/2, IBM TOOLKIT/2
  1863.  
  1864. Question 1:
  1865.   Should I be using the Migration Libraries ?
  1866.    - To make calls to 16bit libraries from a 32bit program.
  1867.    - I am using the c-set standard libraries and os2386.lib
  1868.  
  1869. Question 2:
  1870.   Should I place the 32bit (I/O mods) functions that make these 16bit
  1871.   calls in a DLL?
  1872.   A. Does a DLL buy me anything against the 32->16 issue?
  1873.   B. Should these I/O mods be written as 16bit functions, to further
  1874.      isolate the vendors code?  Interfacing to mycode may be easier
  1875.      than interfacing to their code.
  1876.  
  1877.   I realize this is barely enough information to base your reply,
  1878.   but try any way.  Tell me what to tell you if neccasary.  This
  1879.   whole issue seemed simple enough, however I have the feeling I
  1880.   am missing something.  Just knowing what the basic packaging
  1881.   options are would help(32-16DLL, MY16DLL, 32-16EXE(migration),
  1882.   32-16EXE(standard), 32-16EXE(C-lib, OS2386 or OS2286), etc...
  1883.  
  1884. Thanks,
  1885.  James Scott Jr. 8/688-4213
  1886.  
  1887. ----- C-SET2 CFORUM appended at 21:44:02 on 92/06/15 GMT (by OCANUC at BETASVM2)
  1888. Subject: 32->16 How to approach the environment.
  1889. Ref:     Append at 17:25:07 on 92/06/15 GMT (by JSCOTT at CHGVMIC1)
  1890.  
  1891. I did the following (and it worked):
  1892. 1.Used the stack16 pragma.
  1893. 2.Changed APIENTRY (= _System) to APIENTRY16 (= _Far16 _Pascal)
  1894.   on the function prototypes of the 16 bit calls.
  1895. 3.Used /Sm (migration) on the compile.
  1896. 4.Linked in the import library for the DLL containing the 16 bit calls.
  1897. C-Set/2 and the Linker figured everything else out.
  1898. I got this all out of chapter 16 of the C-Set/2 Users Guide.
  1899.  
  1900. Brandon Booth   Advanced Programming - ICSRS
  1901.  
  1902. ----- C-SET2 CFORUM appended at 17:04:59 on 92/06/16 GMT (by AOI1075 at OS2CUST)
  1903. Subject: Syntax for casting a watched variable?
  1904. Ref: Append at 12:16:05 on 92/06/10 GMT (by AOI1075 at OS2CUST)
  1905.  
  1906. OOPS -- I talked with the fellow who had the problem with the 'watch variable'
  1907. problem.  Turns out it was a 16-bit application, done with Microsoft C6.0.
  1908.  
  1909. Sorry for not checking this before I asked the question.
  1910.  
  1911. J.Farmer    IBMMAIL(USAOIXGW)
  1912.  
  1913. ----- C-SET2 CFORUM appended at 20:44:37 on 92/06/16 GMT (by UDSS013 at OS2CUST)
  1914. Subject: IPMD crashing whenever I exit
  1915. Ref: Append at 15:03:42 on 92/06/09 GMT (by GERSTLE at LEXVMK)
  1916.  
  1917. Pat,
  1918.  
  1919. I am also having problems with IPMD locking up the desktop on exit.  Can you
  1920. send me the new DLL as well?
  1921.  
  1922. Thanks.
  1923.  
  1924. Gary Murphy
  1925.  
  1926. ----- C-SET2 CFORUM appended at 12:25:27 on 92/06/17 GMT (by GERSTLE at LEXVMK)
  1927. Subject: IPMD crashing whenever I exit
  1928. Ref:     Append at 20:44:37 on 92/06/16 GMT (by UDSS013 at OS2CUST)
  1929.  
  1930. Gary,
  1931. I am unable to send code updates through this system - send me your
  1932. phone number and I'll contact you concerning getting the update.
  1933. Thanks,
  1934. Pat Gerstle
  1935.  
  1936. ----- C-SET2 CFORUM appended at 13:16:33 on 92/06/17 GMT (by BIGBILL at TOROLAB6)
  1937. Subject: 32->16 How to approach the environment.
  1938. Ref:     Append at 17:25:07 on 92/06/15 GMT (by JSCOTT at CHGVMIC1)
  1939.  
  1940. No and No.  You probably just missed declaring some pointer as
  1941. _Seg16 (actually probably not the pointer but the pointer pointed at
  1942. by another pointer).  You may not have 'tiled' the storage for it
  1943. either.
  1944.  
  1945. Bill Sarantakos    OS/2 Compiler Development         Toronto, Ontario
  1946.  
  1947. ----- C-SET2 CFORUM appended at 13:39:15 on 92/06/17 GMT (by JONATHAN at LEXVMK)
  1948. Subject: Where'd this come from?
  1949. Ref:     None
  1950.  
  1951. I am getting the following run-time error
  1952.  
  1953. run-time error R6000
  1954. - stack overflow
  1955.  
  1956. This doesn't look like a C Set/2 message.  Does anyone recognize it?
  1957.  
  1958. (Background:  my application interfaces with TCP/IP using thunks from
  1959. Yorktown.  Maybe the MS C library routines are complaining about
  1960. something?  I specify /ST:0x10000 or higher when I link, so it's
  1961. very unlikely the stack has actually overflowed...)
  1962.  
  1963. ----- C-SET2 CFORUM appended at 16:09:54 on 92/06/17 GMT (by MOONEY at TOROLAB6)
  1964. Subject: Where'd this come from?
  1965. Ref:     Append at 13:39:15 on 92/06/17 GMT (by JONATHAN at LEXVMK)
  1966.  
  1967. That's a message generated by code compiled with C/2 and/or MSC.  If your
  1968. code is compiled with CSet, then the stack overflow is probably happening
  1969. inside TCP/IP itself.
  1970.  
  1971. dave
  1972.  
  1973. ----- C-SET2 CFORUM appended at 19:38:32 on 92/06/17 GMT (by PETT at TOROLAB6)
  1974. Subject: Where'd this come from?
  1975. Ref:     Append at 13:39:15 on 92/06/17 GMT (by JONATHAN at LEXVMK)
  1976.  
  1977. That looks like a Microsoft Compiler runtime message.  It is generated
  1978. by their runtime when it detects an out-of-stack condition.
  1979.  
  1980. Roger Pett
  1981.  
  1982. ----- C-SET2 CFORUM appended at 20:03:32 on 92/06/17 GMT (by UDSS013 at OS2CUST)
  1983. Subject: IPMD crashing whenever I exit
  1984. Ref: Append at 12:25:27 on 92/06/17 GMT (by GERSTLE at LEXVMK)
  1985.  
  1986. Thanks Pat.  I can be reached at (913) 345-6558.  My mailing address is:
  1987.  
  1988.    Sprint
  1989.     5454 W. 110th St.
  1990.    Overland Park, KS 66211
  1991.    MS: KSOPKR0103
  1992.  
  1993. By the way, is there was way to send private mail to IBM'ers.  It looks like
  1994. the mail on this BBS is limited to customer accounts.  Thanks.
  1995.  
  1996. Gary Murphy
  1997.  
  1998. ----- C-SET2 CFORUM appended at 21:14:15 on 92/06/17 GMT (by SBRZAYD at OS2CUST)
  1999. Subject: IPMD's apparent dislike of MS compiled apps
  2000.  
  2001. I'm having a lot of trouble getting IPMD to view 16-bit MS C 6.0A
  2002. pointers.  I remember reading somewhere (probably this CFORUM) that
  2003. IPMD does not really support 16-bit Microsoft pointers (at least not
  2004. casting them) and I would like a little more information.  This is an
  2005. absolutely intolerable situation, especially considering that our apps
  2006. were originally coded in C/2 but then migrated to MS because C/2 simply
  2007. couldn't do the things that we were asking of it.
  2008.  
  2009. IF I CAN'T USE IPMD, WHAT ARE MY OPTIONS?
  2010.  
  2011. Chris Corry
  2012. American Management Systems
  2013.  
  2014. ----- C-SET2 CFORUM appended at 00:55:54 on 92/06/18 GMT (by SBRZAYD at OS2CUST)
  2015. Subject: Code works standard, but not migration
  2016.  
  2017. I am trying to call a 16-bit function from 32-bit code.  It works using
  2018. standard libraries but when I use the migration libraries the arguments
  2019. are not making it through quite right.  Further investigation reveals
  2020. that the address passed in for the AddofPoint argument described below
  2021. is two bytes less than what it should be.  That is to say, assuming
  2022. a chunk of memory contains (in SD386 dump format)
  2023.  
  2024.                   LOW          HIGH
  2025.                   7F AB EC D0 2F 00
  2026. -----------   What should be
  2027. ===========         What is
  2028.  
  2029. and the address passed in for AddofPoint is supposed to be 002F:D0EC, it
  2030. ends up in the 16-bit DLL as being D0EC:7FAB.
  2031.  
  2032. The substantially abreviated details:
  2033.  
  2034. 32-Bit Compliant Prototypes (found in .H)...
  2035. =======================================================================
  2036.  
  2037. typedef char     STRTYPE1 ìSOME_NUM┘;
  2038. typedef enum     {elem1 = 0, elem2 = 1, elem_dummy = 32767 } MYENUM;
  2039. typedef short    (* _Seg16 _Far16 _Cdecl PROCTYPE) (<some args>);
  2040. typedef LHANDLE  MYHANDLE;
  2041.  
  2042. SHORT  _Far16 _Cdecl  A16BitFunc (STRTYPE1            szFirstArg,
  2043.                                   MYENUM              someElem,
  2044.                                   PROCTYPE            NotifyProc,
  2045.                                   MYHANDLE * _Seg16   AddOfPoint);
  2046.  
  2047. 16-Bit Code definition (found in .C)...
  2048. =======================================================================
  2049.  
  2050. SHORT  cdecl A16BitFunc (STRTYPE1            szFirstArg,
  2051.                          MYENUM              someElem,
  2052.                          PROCTYPE            NotifyProc,
  2053.                          MYHANDLE *          AddOfPoint){ ... }
  2054.  
  2055. The Call
  2056. =======================================================================
  2057.  
  2058. MYHANDLE   AHandle;
  2059.  
  2060. sRc = A16BitFunc ("A short string", elem1, AValidProc, &AHandle);
  2061.  
  2062. I have tried virtually everything (including casting all arguments
  2063. explicitly, etc.) and it still blows up. Is this a bug?  Any help on
  2064. this would be super-cool (I'll E-mail you a Fosters :-> ).
  2065.  
  2066. Chris Corry
  2067. American Management Systems
  2068.  
  2069. ----- C-SET2 CFORUM appended at 05:27:17 on 92/06/18 GMT (by TMTRAN at SFOVMIC1)
  2070. Subject: Memory Allocation Migration
  2071.  
  2072. Hello,
  2073. I have problems migrating DosSubAlloc and MAKEP from C/2 to C SET/2:
  2074. -------------------------------------
  2075.   SEL     sel;
  2076.   USHORT  offset;
  2077.   if (DosSubAlloc(sel, &offset, 1000))
  2078.     return (NULL);
  2079.   else
  2080.      return(MAKEP(sel, offset));
  2081.  
  2082.   --------------------------------------
  2083.  
  2084. Please HELP!
  2085.  
  2086. THANK YOU
  2087. HAVE A GOOD DAY
  2088.  
  2089. ----- C-SET2 CFORUM appended at 12:44:15 on 92/06/18 GMT (by MARYAN at TOROLAB3)
  2090. Subject: #pragma seg16( structure/union tag identifier )
  2091.  
  2092. Hi,
  2093.  
  2094. I would like to suggest that in future release of C Set/2 compiler
  2095. #pragma seg16( ) should also work with structure/union tag identifier.
  2096.  
  2097. This means that:
  2098.  
  2099. typedef struct Puddytat_tag { ... } Puddytat_t;
  2100. #pragma seg16( Puddytat_tag )
  2101. struct Puddytat_tag MyCat;
  2102.  
  2103. or
  2104.  
  2105. typedef struct Puddytat_tag { ... } Puddytat_t;
  2106. #pragma seg16( Puddytat_t )
  2107. Puddytat_t MyCat;
  2108.  
  2109. or
  2110.  
  2111. typedef struct Puddytat_tag { ... } Puddytat_t;
  2112. #pragma seg16( MyCat )
  2113. struct Puddytat_tag MyCat;
  2114.  
  2115. or
  2116.  
  2117. typedef struct Puddytat_tag { ... } Puddytat_t;
  2118. #pragma seg16( MyCat )
  2119. Puddytat_t MyCat;
  2120.  
  2121. will produce the same results, i.e. MyCat will be seg16 object.
  2122.  
  2123. Jacek P. Maryan
  2124.  
  2125. ----- C-SET2 CFORUM appended at 12:50:57 on 92/06/18 GMT (by GERSTLE at LEXVMK)
  2126. Subject: IPMD's apparent dislike of MS compiled apps
  2127. Ref:     Append at 21:14:15 on 92/06/17 GMT (by SBRZAYD at OS2CUST)
  2128.  
  2129. Chris,
  2130.  
  2131. The following is the only "more information" I have been able to
  2132. dig up:
  2133.  
  2134. - IPMD does a fair job of handling MSC far pointers - we can display and
  2135.   dereference them.
  2136.  
  2137. - IPMD does not handle MSC near pointers, primarily because of the time
  2138.   and expense of determining/tracking the segment.  We were simply
  2139.   unable to get this function into the code due to other priorities.
  2140.  
  2141. Pat Gerstle
  2142.  
  2143. ----- C-SET2 CFORUM appended at 13:33:32 on 92/06/18 GMT (by BIGBILL at TOROLAB6)
  2144. Subject: Memory Allocation Migration
  2145. Ref:     Append at 05:27:17 on 92/06/18 GMT (by TMTRAN at SFOVMIC1)
  2146.  
  2147. Unless you have a very specific reason for going to Dos...() APIs for
  2148. memory allocation, I suggest you change your code to use malloc().
  2149. It's a lot better implementation that in the 16-bit world and the
  2150. debug memory allocation routines are provided in the product already.
  2151.  
  2152. Bill Sarantakos    OS/2 Compiler Development         Toronto, Ontario
  2153.  
  2154. ----- C-SET2 CFORUM appended at 14:12:36 on 92/06/18 GMT (by MOONEY at TOROLAB6)
  2155. Subject: Code works standard, but not migration
  2156. Ref:     Append at 00:55:54 on 92/06/18 GMT (by SBRZAYD at OS2CUST)
  2157.  
  2158. The problem is that enum parameter that you are passing.  When compiling
  2159. with -Se, it is of size 2 on both sides of the function call.  When
  2160. compiling with -Sm, it is of size 4 on the 32-bit side and size 2 on the
  2161. 16-bit side.  This gets the stack misaligned, and boom.  If you want to
  2162. stick with -Sm, change your 32-bit prototype to make a someElem a  short
  2163. rather than a  MYENUM .  Would you rather see enum size controlled by a
  2164. separate option (rather than by -Sm)?  (We're trying to decide if this is
  2165. worthwhile for our next release.)
  2166.  
  2167. (And btw, I'm not a big Foster's fan... do you think that you could Email
  2168. me a Smithwick's instead?)
  2169.  
  2170. dave
  2171.  
  2172. ----- C-SET2 CFORUM appended at 14:14:55 on 92/06/18 GMT (by MOONEY at TOROLAB6)
  2173. Subject: Memory Allocation Migration
  2174. Ref:     Append at 05:27:17 on 92/06/18 GMT (by TMTRAN at SFOVMIC1)
  2175.  
  2176. That looks OK to me... how is your testcase failing?  What is the type
  2177. of the value you are returning from the function?  (Ie, what is the
  2178. prototype for the function?)
  2179.  
  2180. dave
  2181.  
  2182. ----- C-SET2 CFORUM appended at 14:28:23 on 92/06/18 GMT (by SBRZAYD at OS2CUST)
  2183. Subject: IPMD's apparent dislike of MS compiled apps
  2184. Ref: Append at 12:50:57 on 92/06/18 GMT (by GERSTLE at LEXVMK)
  2185.  
  2186. Pat,
  2187.  
  2188.    Well thanks for the response, anyway.  I appreciate the fact that there
  2189. are some IBMers who want to help out customers, even when there isn't a
  2190. whole lot that they can do :-).  I have a copy of SD386 now anyway and it
  2191. works great; since SD86 was my debugger under OS/2 1.3 it's like going back
  2192. to an old friend.  Thanks again for your help!!
  2193.  
  2194. Chris Corry
  2195. AMerican Management Systems
  2196.  
  2197. ----- C-SET2 CFORUM appended at 17:35:57 on 92/06/18 GMT (by TMTRAN at SFOVMIC1)
  2198. Subject: Dos...APIs versus Malloc
  2199. Ref:     Append at 18:08:18 on 92/04/10 GMT (by XXTCAN06 at TORVMCOP)
  2200.  
  2201. Hi,
  2202. The reason I want to keep DosSubAlloc instead of malloc is that I can
  2203. DosFreeSeg to free up the allocated memory at once. Are there any
  2204. similar non-DOS...API functions available?
  2205.  
  2206. Tran
  2207.  
  2208. THANK YOU
  2209. HAVE A GOOD DAY
  2210.  
  2211. ----- C-SET2 CFORUM appended at 19:34:28 on 92/06/18 GMT (by BILLH at SBRYVM4)
  2212. Subject: Dos...APIs versus Malloc
  2213. Ref:     Append at 17:35:57 on 92/06/18 GMT (by TMTRAN at SFOVMIC1)
  2214.  
  2215. There are no more selectors in OS/2 2.0. DosAllocSeg has been replaced
  2216. by DosAllocMem. You sub allocate with DosSubAllocMem. You can free it
  2217. all with DosFreeMem. There are a whole bunch of new memory functions.
  2218. If you have the toolkit you can look in the control program reference
  2219. (view guiref20) under memory management. MAKEP is not needed because
  2220. the functions use real pointers rather than selectors.
  2221.  
  2222. ================================================================
  2223. Bill Hegarty  -     BILLH at SBRYVM4
  2224. Emerging Business Systems - ISSC
  2225. Southbury Ct.  203-262-4984    T/L 376-4984
  2226.  
  2227. ----- C-SET2 CFORUM appended at 19:46:01 on 92/06/18 GMT (by SHERRATT at RCHVMP3)
  2228. Subject: OS2.H
  2229.  
  2230. I am just getting started with C-SET.  I am trying to compile one
  2231. of the samples, but OS2.H is nowhere to be found on my system.
  2232. WHERE can I get a copy of this ?
  2233.  
  2234. ----- C-SET2 CFORUM appended at 03:02:08 on 92/06/19 GMT (by BIGBILL at TOROLAB6)
  2235. ..... C-SET2 CFORUM modified at 12:52:42 on 92/06/24 GMT (by BIGBILL at TOROLAB6)
  2236. Subject: Dos...APIs versus Malloc
  2237. Ref:     Append at 17:35:57 on 92/06/18 GMT (by TMTRAN at SFOVMIC1)
  2238.  
  2239. The _heapmin() function is what you want.  However, it tries to return
  2240. all storage that has been free()'d by the user back to the OS.
  2241. As suggested, DosAllocMem() would work too.  I think the problem
  2242. you are having with DosAllocSeg() is that you have to prototype it
  2243. yourself as a 16-bit function AND if you are using os2386.lib to link,
  2244. you need to call Dos16AllocSeg() instead.
  2245.  
  2246. Bill Sarantakos    OS/2 Compiler Development         Toronto, Ontario
  2247.  
  2248. ----- C-SET2 CFORUM appended at 03:02:57 on 92/06/19 GMT (by BIGBILL at TOROLAB6)
  2249. Subject: OS2.H
  2250. Ref:     Append at 19:46:01 on 92/06/18 GMT (by SHERRATT at RCHVMP3)
  2251.  
  2252. It's provided in the toolkit in the \toolkt20\c\os2h subdirectory.
  2253.  
  2254. Bill Sarantakos    OS/2 Compiler Development         Toronto, Ontario
  2255.  
  2256. ----- C-SET2 CFORUM appended at 16:59:02 on 92/06/19 GMT (by V$IBTIGA at BCRVMPC1)
  2257. Subject: max size for STACK and HEAP
  2258.  
  2259. I am just asking for a verification on the following: that the maximum
  2260. stack size is still 64K, but the maximum heap size can be larger than
  2261. 64K, due to the 32-bit addressing.
  2262.  
  2263. Is this true?  If so, how come the stack cannot be greater than 64K?
  2264.  
  2265. Larry Moore     PSPC-Boca Tech Interface Group
  2266.  
  2267. ----- C-SET2 CFORUM appended at 18:47:57 on 92/06/19 GMT (by SBRZAYD at OS2CUST)
  2268. Subject: Code works standard, but not migration
  2269. Ref: Append at 14:12:36 on 92/06/18 GMT (by MOONEY at TOROLAB6)
  2270.  
  2271. Dave,
  2272.  
  2273. THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU
  2274.  
  2275.    That one was really driving my nuts; knowing what I know now I NEVER
  2276. would have figured that out on my own.  The answer to your question is
  2277. YES, the enum size should definitely be setable from the command line
  2278. if the compiler is going to have the ability to change it.
  2279.    One question still kind of bugs me; why is the size of an enum 4-bytes
  2280. when linking with the migration libaries instead of two?  In order to help
  2281. facilitate the calling of 16-bit code doesn't it make more sense
  2282. to keep it at the C/2 size of 2-bytes?
  2283.    Anyway, thank you very much for your response. It was a
  2284. tremendous help.
  2285.  
  2286. Chris Corry
  2287. American Management Systems
  2288.  
  2289. ----- C-SET2 CFORUM appended at 19:05:02 on 92/06/19 GMT (by SBRZAYD at OS2CUST)
  2290. Subject: 16-bit and 32-bit stack sizes
  2291.  
  2292.    I have a mid-size 32-bit application that is calling a large number
  2293. of 16-bit DLLs.  Under 1.3, apps that used these DLLs typically had to
  2294. have a stack size of at least 50K.  True to form, my 32-bit app has
  2295. problems with a stack much smaller than that.  Now the DLLs started
  2296. running out of stack, which required a #pragma stack16() entry in my
  2297. app.  This needs to be set to about 50K or the DLLs will not function.
  2298. However, in this case, then my 32-bit code stops working.  Does 16-bit
  2299. and 32-bit code share the same stack or something?  What is the
  2300. relationship between the two, if any?  Should I be placing multiple
  2301. #pragma stack16()s into my code, instead of one on the first line of
  2302. the program?  Thanks for all the help.
  2303.  
  2304. Chris Corry
  2305. American Management Systems
  2306.  
  2307. ----- C-SET2 CFORUM appended at 19:15:46 on 92/06/19 GMT (by JONATHAN at LEXVMK)
  2308. Subject: max size for STACK and HEAP
  2309. Ref:     Append at 16:59:02 on 92/06/19 GMT (by V$IBTIGA at BCRVMPC1)
  2310.  
  2311. I have successfully linked applications with stacks larger than 64K:
  2312. ICC /B"/ST:0x10000" ...
  2313.  
  2314. ----- C-SET2 CFORUM appended at 19:40:30 on 92/06/19 GMT (by MOONEY at TOROLAB6)
  2315. Subject: max size for STACK and HEAP
  2316. Ref:     Append at 16:59:02 on 92/06/19 GMT (by V$IBTIGA at BCRVMPC1)
  2317.  
  2318. Not true.  The stack can be anywhere up to, and including, (and I'm not
  2319. making this number up,)  one bazillion bytes in size.  The compiler
  2320. itself is built with a 128K stack, so I know that the limit is not 64K.
  2321.  
  2322. dave
  2323.  
  2324. ----- C-SET2 CFORUM appended at 19:48:21 on 92/06/19 GMT (by OCANUC at BETASVM2)
  2325. Subject: max size for STACK and HEAP
  2326. Ref:     Append at 16:59:02 on 92/06/19 GMT (by V$IBTIGA at BCRVMPC1)
  2327.  
  2328. Where did you hear that that stack size is restricted to 64K?
  2329. The linker doc says it can be "any postive number" and in
  2330. particular our software has it set >200K.
  2331.  
  2332. Brandon Booth   Advanced Programming - ICSRS
  2333.  
  2334. ----- C-SET2 CFORUM appended at 19:55:33 on 92/06/19 GMT (by MOONEY at TOROLAB6)
  2335. Subject: 16-bit and 32-bit stack sizes
  2336. Ref:     Append at 19:05:02 on 92/06/19 GMT (by SBRZAYD at OS2CUST)
  2337.  
  2338. You only need to specify one  #pragma stack16()  in your code.  Set it
  2339. as the high water mark for your 16-bit code.  Yes, the 16-bit stack gets
  2340. allocated out of the 32-bit stack.  Before the 16-bit routine gets
  2341. called, the compiler asks
  2342.  
  2343.   Is  stack16size + parameter save area + register save area (used by
  2344.     compiler) >= amount of room left in current 64K block?
  2345.   If yes, then move 16-bit stack area to the beginning of the next 64K
  2346.     block
  2347.  
  2348. The compiler uses the stack16 value you give it part of the calculation
  2349. to ensure that your 16-bit stack will not cross a 64K block.  If you
  2350. set it too high, you won't really lose anything, but you might cause
  2351. yourself to run out of 32-bit stack area a little bit faster.  To
  2352. increase your 32-bit stack, link with  /STACK:0x20000  or so.  (0x20000
  2353. will give you 128K of stack space.)  I believe that when you ask for a
  2354. big stack, the memory doesn't actually get committed, only address
  2355. slots, so you can't really hurt yourself by asking for too big a 32-bit
  2356. stack either.
  2357.  
  2358. dave
  2359.  
  2360. ----- C-SET2 CFORUM appended at 20:44:41 on 92/06/19 GMT (by KURTIS at RCHVMV3)
  2361. Subject: IPMD question
  2362.  
  2363. Will IPMD let me debug programs that can be debugged using CODEVIEW?
  2364. Thanks...
  2365. Kurt Ruby               Rochester, MN
  2366.  
  2367. ----- C-SET2 CFORUM appended at 20:53:36 on 92/06/19 GMT (by SBRZAYD at OS2CUST)
  2368. Subject: 16-bit and 32-bit stack sizes
  2369. Ref: Append at 19:55:33 on 92/06/19 GMT (by MOONEY at TOROLAB6)
  2370.  
  2371. Dave,
  2372.  
  2373.     Daammmmnnn.  You are saving my butt all over the place this week.
  2374. Granted you apparently helped to build the compiler but is that
  2375. support or WHAT.  Thanks again.
  2376.  
  2377. Chris Corry
  2378. American Management Systems
  2379.  
  2380. ----- C-SET2 CFORUM appended at 21:56:47 on 92/06/19 GMT (by OCANUC at BETASVM2)
  2381. Subject: 16-bit and 32-bit stack sizes
  2382. Ref:     Append at 20:53:36 on 92/06/19 GMT (by SBRZAYD at OS2CUST)
  2383.  
  2384. Internally we're fans of dave's as well.
  2385.  
  2386. Brandon Booth   Advanced Programming - ICSRS
  2387.  
  2388. ----- C-SET2 CFORUM appended at 14:07:55 on 92/06/20 GMT (by SBRZAYD at OS2CUST)
  2389. Subject: Passing pointers back to 32-bit code from 16-bit code
  2390.  
  2391.      OK, here's the next one.
  2392.  
  2393. I have a piece of 16-bit code that is sending a message to a window
  2394. procedure in a piece of 32-bit code. Like so...
  2395.  
  2396. WinSendMsg(hwnd, WM_MYMESS, MPFROM2SHORT(num1, num2), (MPARAM) pStuff);
  2397.  
  2398. If, for example, the address of pStuff is 0137:1480 the 32-bit window
  2399. procedure receives mp2 as a 32-bit pointer that points to 01371480.  This
  2400. makes a certain amount of sense but since the pointer is 32-bit it
  2401. (obviously) does not point to the right place.  How do I "unthunk" a
  2402. 16-bit 4-byte pointer value into its true 32-bit counterpart?  Since the
  2403. MPARAM is returned to the 32-bit code through a window proc I can't
  2404. pass a 16/32 _Seg16 pointer into the 16-bit code.  I tried declaring
  2405. a local _Seg16 pointer and then setting mp2 to it and the address of
  2406. the _Seg16 pointer was not 01371480 (it was something like 09E45...) but
  2407. the new address wasn't right either.  Any ideas?
  2408.  
  2409. Chris Corry
  2410. American ManagementSystems
  2411.  
  2412. ----- C-SET2 CFORUM appended at 14:34:03 on 92/06/21 GMT (by KOLSKY at HAIFASC3)
  2413. Subject: Passing pointers back to 32-bit code from 16-bit code
  2414. Ref:     Append at 14:07:55 on 92/06/20 GMT (by SBRZAYD at OS2CUST)
  2415.  
  2416. DosSelToFlat will turn a selector type pointer to a flat address.
  2417. DosFlatToSel will do the opposite.
  2418.  
  2419. Amir Kolsky
  2420.  
  2421. ----- C-SET2 CFORUM appended at 06:14:04 on 92/06/22 GMT (by WITMOND at UITVM1)
  2422. Subject: max size for STACK and HEAP
  2423. Ref:     Append at 19:40:30 on 92/06/19 GMT (by MOONEY at TOROLAB6)
  2424.  
  2425. >          The stack can be anywhere up to, and including, (and I'm not
  2426. > making this number up,)  one bazillion bytes in size.
  2427.  
  2428. Allright, I'll bite. I don't know the word 'bazillion', neither does
  2429. my friendly online dictionary GRAND. Would you care to tell me what it
  2430. is?
  2431.  
  2432. Jeroen Witmond
  2433.  
  2434. ----- C-SET2 CFORUM appended at 13:19:10 on 92/06/22 GMT (by MOONEY at TOROLAB6)
  2435. Subject: max size for STACK and HEAP
  2436. Ref:     Append at 06:14:04 on 92/06/22 GMT (by WITMOND at UITVM1)
  2437.  
  2438. OK, I lied.  I made that number up.  It means "more that a zillion, but
  2439. less than a gargazillion" (also made-up numbers :-).
  2440.  
  2441. dave
  2442.  
  2443. ----- C-SET2 CFORUM appended at 13:30:21 on 92/06/22 GMT (by MOONEY at TOROLAB6)
  2444. Subject: Passing pointers back to 32-bit code from 16-bit code
  2445. Ref:     Append at 14:07:55 on 92/06/20 GMT (by SBRZAYD at OS2CUST)
  2446.  
  2447. You can either use routines supplied by OS/2 (which the compiler uses
  2448. internally):
  2449.  
  2450.   ULONG _Optlink DosSelToFlat( ULONG );
  2451.   ULONG _Optlink DosFlatToSel( ULONG );
  2452.  
  2453. or can use tricky casting to move  pStuff  into a 16-bit pointer
  2454. unmolested:
  2455.  
  2456.   PVOID16 p16Stuff;
  2457.   p16Stuff = (PVOID16)(ULONG)p16Stuff;
  2458.  
  2459. dave
  2460.  
  2461. ----- C-SET2 CFORUM appended at 14:47:41 on 92/06/22 GMT (by EARLY at LEXVM2) -
  2462. Subject: IPMD question
  2463. Ref:     Append at 20:44:41 on 92/06/19 GMT (by KURTIS at RCHVMV3)
  2464.  
  2465. Kurt,
  2466. You should be able to debug programs that you can debug with CODEVIEW.
  2467. We have debugged code generated by IBM C/2 and Microsoft C 6.0.
  2468. Roger
  2469.  
  2470. ----- C-SET2 CFORUM appended at 15:08:21 on 92/06/23 GMT (by SBRZAYD at OS2CUST)
  2471. Subject: VA_ARG 32-BIT TO 16-BIT
  2472.  
  2473. I am calling 16-bit DLL functions from a 32 bit application.  The DLL functions
  2474. accept a variable number of optional parameters.  When I try to pass SHORT, BOO
  2475. LEAN, or ENUMERATED TYPES as a variable arguments, the 32-bit code puts them on
  2476. the stack as four bytes and the 16-bit code is expecting two bytes.  I am not a
  2477. ble to change the DLL because it must support existing 16-bit applications.  Th
  2478. e only way I have found which allows me to pass a two byte parameter is to set
  2479. up a structure with a USHORT in it and then pass this structure.  This is absur
  2480. dly awkward.  How can I pass a two byte optional parameter?
  2481.  
  2482. Michael C. Ryan   American Management Systems
  2483.  
  2484. ----- C-SET2 CFORUM appended at 16:35:46 on 92/06/23 GMT (by AMELINE at TOROLAB6)
  2485. Subject: VA_ARG 32-BIT TO 16-BIT
  2486. Ref:     Append at 15:08:21 on 92/06/23 GMT (by SBRZAYD at OS2CUST)
  2487.  
  2488.     The shorts etc, are being widened using the default widening rules
  2489. which apply to parameters which don't have their types explicitly stated
  2490. in the prototype statement. It could be argued that these widening rules
  2491. should be changed for calls to 16 bit functions, so that they are
  2492. compatible with the rules used by the 16 bit compilers. Unfortunately
  2493. this is working as designed right now. Again unfortunately this isn't
  2494. mentioned in the user's guide, though I do remember this bouncing around
  2495. in my head when I wrote that part of the compiler. I guess I didn't
  2496. speak up loudly enough (or at all) in the reviews of the documention.
  2497.  
  2498.    32 bit va_args functions cannot be called from 16 bit code at all.
  2499. There's no way I know to make this work.
  2500.  
  2501.    Perhaps Dave Mooney would like to comment some more on the widening
  2502. rules.
  2503.  
  2504. Regards,
  2505. Ian Ameline
  2506.  
  2507. ----- C-SET2 CFORUM appended at 13:22:09 on 92/06/24 GMT (by FRYERK at TOROLAB6)
  2508. Subject: Documentation Trends: Online vs Hardcopy
  2509.  
  2510. I would like to get some opinions on the part of you, our customers, on
  2511. the subject of online and hardcopy documentation.  Your input is valuable
  2512. to us, and will be considered as we decide what our documentation
  2513. strategy should be.
  2514.  
  2515. The situation is this: we expect to increase the amount of documentation
  2516. in the future by quite a bit.  Unfortunately, including lots of books
  2517. means higher cost for us, higher cost for customers, a large overhead
  2518. in storage for dealers and customers, and so on, not to mention the
  2519. environmentally unfriendly use of trees.
  2520.  
  2521. To reduce the amount of paper we ship with our product, we are turning
  2522. to online information.  We also feel that information online, in addition
  2523. to allowing for context-sensitive help, is more easily accessible and
  2524. also more usable through its capacities for searching, printing, cut and
  2525. pasting panels, and so on.
  2526.  
  2527. We are hoping to put our tutorials all online to start.  When it comes
  2528. to the other documentation, such as programming guides, language
  2529. references, and so on, we are trying to find the right balance between
  2530. online and hardcopy to suit our customers' needs.  We have envisioned
  2531. several scenarios:
  2532.  
  2533. 1) All information is shipped online only.  Hardcopy books can be ordered
  2534.     separately or as a library (like for the Developer's Toolkit).  All
  2535.     online information is in .INF format (like the current C Set/2 Online
  2536.     Reference).
  2537.  
  2538. 2) All *reference* information (language reference, library functions)
  2539.     is shipped online (.INF) only, with the hardcopy versions separately
  2540.     orderable.  *Guidance* information (Programming Guide, Migration
  2541.     Guide, Debugger Guide) is provided in hardcopy (and the Reference
  2542.     Summary booklet too).
  2543.  
  2544. 3) As in option (1), except that everything is provided in BookManager
  2545.     format.  Reference information would also be available in .INF
  2546.     format to allow for context-sensitive help.  (NOTE: if we decided
  2547.     to go this route we would also provide a means of reading the
  2548.     BookManager books at no extra cost to the customer).
  2549.  
  2550. 4) Provide all information in hardcopy format.  Also provide reference
  2551.     information in .INF format for contextual help.  Virtual bookcases
  2552.     included. :)
  2553.  
  2554. 5) Provide reference information in .INF format and in hardcopy.
  2555.     Provide guidance information online only (in BookManager or .INF
  2556.     format), with hardcopy separately orderable.
  2557.  
  2558. Please help us in our quest to improve our documentation.  What are your
  2559. requirements?  Which of the above scenarios best represents what you
  2560. need?  If the answer is "none", please tell us what you're looking for.
  2561.  
  2562. Please append your answers to this forum.
  2563.  
  2564. Thanks for your help.
  2565. Kathryn Fryer
  2566. Toronto Information Development
  2567.  
  2568. ----- C-SET2 CFORUM appended at 20:43:57 on 92/06/24 GMT (by XXNOVA24 at TORVMCOP)
  2569. Subject: Documentation Trends: Online vs Hardcopy
  2570. Ref:     Append at 13:22:09 on 92/06/24 GMT (by FRYERK at TOROLAB6)
  2571.  
  2572. My choice is (1) everything is on-line, with no more than 10 pages of
  2573. read.me file  AND the proper index files for epm . If anyone needs
  2574. 10 kg of paper, order it for extra costs. The .INF files must be
  2575. complete with the bitmaps or metafiles in it.(Like printed.)
  2576.  
  2577. I never tried the Bookmanager \ Read/2 but if it is provided the
  2578. option (3) is OK to me.
  2579.  
  2580. We can save on printing and on shipping costs.
  2581.  
  2582. Geza Szivos
  2583. NOVACOR Chemicals (403)-290-6583
  2584.  
  2585. ----- C-SET2 CFORUM appended at 14:47:43 on 92/06/25 GMT (by SBRZAYD at OS2CUST)
  2586. Subject: 16-Bit MS DLLs
  2587.  
  2588.       Things are going pretty well and we are getting close to
  2589. turning over our code for GA.  This will be our first release where our
  2590. APIs support 32-bit code and this is LARGELY due to the wonderful
  2591. support we have been able to receive on this BBS. Thanks everyone!!
  2592. (particularly Dave and Ian).  Now to our latest (and hopefully last,
  2593. knock on wood) problem.
  2594.  
  2595.       In this release we have moved our 16-bit DLLs from IBM C/2 to MS
  2596. C 6.0.  We really had little choice in this matter; the C/2 DLLs simply
  2597. could not be called by other systems (Smalltalk, Easel, etc.) without
  2598. blowing up, the MS stuff could be.  However, although the vast majority
  2599. of our stuff is working, we have problems with our MS DLLs blowing up
  2600. in our OWN programs (32-bit & 16-bit) where the older C/2 DLLs would not
  2601. die.  I realize that this is too vague a description to be of any real use
  2602. to anyone so instead my question is: Is thereanything I should be aware
  2603. of when migrating 16-bit C/2 code to 16-bit MS C 6.0?  We are apparently
  2604. having the same problems under 1.3 so this situation is not 2.0
  2605. specific.  Has anyone out there been in the same position as us, or has
  2606. anyone had any aggravatingexperiences that may apply to our situation?
  2607. I'm very tempted to call MS tech support but I've heard that once they
  2608. realize you are coding for OS/2 they clam up and refuse to help!
  2609.  
  2610.      Anyway, thanks one and all, and we VERY MUCH appreciate your help.
  2611.  
  2612. Chris Corry
  2613. American Management Systems
  2614.  
  2615. ----- C-SET2 CFORUM appended at 12:00:51 on 92/06/26 GMT (by SDETWEIL at DETVMIC4)
  2616. Subject: 16-Bit MS DLLs
  2617. Ref:     Append at 14:47:43 on 92/06/25 GMT (by SBRZAYD at OS2CUST)
  2618.  
  2619. I've never had any problems like this and have ported some
  2620. 50 C/2 DLLs to MS C6. Can you tell us anything about the
  2621. kind of problem you're having?
  2622.  
  2623. Are these multi-threaded, DosLoadModuled, etc?
  2624.  
  2625. Sam
  2626.  
  2627. ----- C-SET2 CFORUM appended at 18:40:06 on 92/06/26 GMT (by XXCDSX26 at TORVMCOP)
  2628. Subject: Documentation Trends: Online vs Hardcopy
  2629. Ref:     Append at 13:22:09 on 92/06/24 GMT (by FRYERK at TOROLAB6)
  2630.  
  2631. Unlike Geza, my choice would be for option 2.  I find the PC screen
  2632. very inappropriate for guidance information.  This material I like
  2633. in book format where I can take to the bedroom, on the commuter train,
  2634. etc.  One variant I would like is all the code examples in INF format
  2635. so that I can cut and paste them into my programmes (also, so that
  2636. I don't have all those ridiculous directories strewn across my disk).
  2637. Ideally, I would like sometime like the V2 Master Index where I can
  2638. alphabetically tab through a description before obtaining the example.
  2639.  
  2640. Michael Harper - Cdn Depository for Securities, Ltd
  2641.  
  2642. ----- C-SET2 CFORUM appended at 00:14:54 on 92/06/27 GMT (by SBRZAYD at OS2CUST)
  2643. Subject: 16-Bit MS DLLs
  2644. Ref: Append at 12:00:51 on 92/06/26 GMT (by SDETWEIL at DETVMIC4)
  2645.  
  2646.     What a pain in the butt this has become!
  2647. This is what we've been able to determine, and we have managed to work
  2648. around it.  We have kept our PROGRAMS compiled in IBM C/2 even though we have
  2649. moved all of our DLLS to MS C 6.0.  We have to do this because we have an
  2650. installed base that we told two years ago that if you wanted to develop apps
  2651. for our product the only compiler we would actively support would be C/2.
  2652. We cannot tell the existing installed base that they must all run out and buy
  2653. MS C 6.0 just to take advantage of our next release.
  2654.  
  2655.      What happens is that the C/2 program calls one of our MS API functions
  2656. and registers a callback function with us (note that the callback is in the
  2657. C/2 compiled executable).  Now, when we call the callback function (MS going
  2658. back to C/2) we get into the function fine but when, in the callback handler,
  2659. the program tries to do a sprintf everything blows up.  We have ruled out
  2660. stack problems (we have a 59K stack) and believe that the problem has to do
  2661. with either the fact that we are "mixing" run time libraries or the fact that
  2662. sprintf is not reentrant.  Either way, when we rewrote the sprintf calls to
  2663. use just strcpy and strcat they worked fine.  We are less than pleased with
  2664. having to go to our clients and telling them that they MAY have to re-compile
  2665. and re-link their apps, but its better than telling them that they MUST go
  2666. out and buy MS C 6.0.
  2667.  
  2668. Chris Corry
  2669. American Management Systems
  2670.  
  2671. ----- C-SET2 CFORUM appended at 00:18:04 on 92/06/27 GMT (by SBRZAYD at OS2CUST)
  2672. Subject: Documentation Trends: Online vs Hardcopy
  2673. Ref: Append at 18:40:06 on 92/06/26 GMT (by XXCDSX26 at TORVMCOP)
  2674.  
  2675. I agree with Michael.  The INF stuff is great for on-the-fly reference
  2676. and quick lookups but if I had to go to the online stuff for extended
  2677. examples and explanations I think I would go nuts.
  2678.  
  2679. My 2 cents.
  2680.  
  2681. Chris Corry
  2682. American Management Systems
  2683.  
  2684. ----- C-SET2 CFORUM appended at 15:01:42 on 92/06/28 GMT (by IL78568 at OS2CUST)
  2685. Subject: Documentation Trends: Online vs Hardcopy
  2686. Ref: Append at 00:18:04 on 92/06/27 GMT (by SBRZAYD at OS2CUST)
  2687.  
  2688. Chris,
  2689.  
  2690. I agree with you and Mark that I want to be able to see a lot of
  2691. programming reference and code samples in hard-copy format.  But
  2692. I am assuming that any properly implemented online documentation
  2693. in INF, BookManager, or other format, can be easily printed  for
  2694. off-line perusal.
  2695.  
  2696. I just think so much documentation is NOT read, plus online
  2697. documentation is much easier to update and keep current.
  2698.  
  2699. Brooks McNeely - Martin Marietta Energy Systems, Inc.
  2700.  
  2701. ----- C-SET2 CFORUM appended at 05:32:08 on 92/06/29 GMT (by XXNOVA24 at TORVMCOP)
  2702. Subject: Documentation Trends: Online vs Hardcopy
  2703. Ref:     Append at 15:01:42 on 92/06/28 GMT (by IL78568 at OS2CUST)
  2704.  
  2705. To keep the costs down and save the trees , the printed documentations
  2706. should be optional for extra order and charge (like redbooks.)
  2707. BUT I'd like to see the savings in the price.
  2708.  
  2709. Geza Szivos
  2710. NOVACOR Chemicals (403)-290-6583
  2711.  
  2712. ----- C-SET2 CFORUM appended at 11:57:49 on 92/06/30 GMT (by XXCDSX26 at TORVMCOP)
  2713. Subject: Documentation Trends: Online vs Hardcopy
  2714. Ref:     Append at 05:32:08 on 92/06/29 GMT (by XXNOVA24 at TORVMCOP)
  2715.  
  2716. Geza:
  2717.  
  2718. If C/Set 2 msrp is $100 less than it's competitors I would agree with
  2719. you, i.e. the cost savings is reflected back to the customer.  However
  2720. if the cost savings is just to increase vendors margin then I would
  2721. have a problem.
  2722.  
  2723. Michael Harper - Cdn Depository for Securities, Ltd
  2724.  
  2725. ----- C-SET2 CFORUM appended at 14:38:45 on 92/06/30 GMT (by A157623 at OS2CUST)
  2726. Subject: File Handling Restrictions
  2727.  
  2728. In an old copy of the C Set/2 Migration Guide, dated Aug 8, 1991, it stated
  2729. that spawned programs could NOT inherit the file handles of its parent.  This
  2730. is a major restirction for my application.  Can someonecomment if this is
  2731. still the case?  If so, any plans to correct?
  2732.  
  2733. ----- C-SET2 CFORUM appended at 15:54:23 on 92/06/30 GMT (by CHFAN at DALHQIC2)
  2734. Subject: Global variables
  2735.  
  2736. The sample code "sample04.h" comimg with the TOOLKIT showes that
  2737. a global variable "foo1" is owned by a DLL and shared by an EXE.
  2738.  
  2739. My knowledge may be out of date; however I always think that
  2740. you can't have shared global variables between an EXE and a DLL.
  2741. Pointers are used to overcome this problem...
  2742.  
  2743. Can someone help... Thanks...
  2744.  
  2745. Chung-Ho Fan
  2746.  
  2747. ----- C-SET2 CFORUM appended at 17:17:31 on 92/06/30 GMT (by XXNOVA24 at TORVMCOP)
  2748. Subject: Documentation Trends: Online vs Hardcopy
  2749. Ref:     Append at 11:57:49 on 92/06/30 GMT (by XXCDSX26 at TORVMCOP)
  2750.  
  2751. Agree,
  2752.    I'd like to see the costs saving in my pocket.
  2753.  
  2754. Geza Szivos
  2755. NOVACOR Chemicals (403)-290-6583
  2756.  
  2757. ----- C-SET2 CFORUM appended at 18:23:06 on 92/06/30 GMT (by SDETWEIL at DETVMIC4)
  2758. Subject: Global variables
  2759. Ref:     Append at 15:54:23 on 92/06/30 GMT (by CHFAN at DALHQIC2)
  2760.  
  2761. Things you can export from a DLL are BOTH code AND DATA. Thus
  2762.  
  2763. in your C EXE file
  2764.  
  2765. extern int counter;
  2766.  
  2767. can be located in a DLL.
  2768.  
  2769. C-SET/2 provides a NEW facility along with OS/2 2.0 for this
  2770. very function.
  2771.  
  2772. If you (in 1.x) did this data sharing between an EXE and DLL
  2773. there was NO protection against the EXE writing TO as well as
  2774. READING from the data area. There is a NEW DLL type in C-SET/2
  2775. called Protected (Workframe lists this as one of the options)
  2776.  
  2777. This allows this data sharing to be READ ONLY.
  2778.  
  2779. Thus the only way to UPDATE the field is to
  2780. define a callable API into the DLL...
  2781.  
  2782. Sam
  2783.  
  2784. ----- C-SET2 CFORUM appended at 20:42:24 on 92/06/30 GMT (by MOONEY at TOROLAB6)
  2785. Subject: Global variables
  2786. Ref:     Append at 15:54:23 on 92/06/30 GMT (by CHFAN at DALHQIC2)
  2787.  
  2788. No, it's allowed, all right.  As far as the compiler and linker are
  2789. concerned,  foo1  is just like any old address which needs to be resolved
  2790. from somewhere else.  The linker discovers from the import library that
  2791. the the resolution comes from a dynamic link library which is to be
  2792. resolved at load time.  No problem.
  2793.  
  2794. I don't think, on the other hand, that it is possible to resolve an
  2795. external reference *from* a DLL *to* an EXE.  From an EXE to a DLL is OK,
  2796. but not the other way around.
  2797.  
  2798. dave
  2799.  
  2800. ----- C-SET2 CFORUM appended at 20:54:29 on 92/06/30 GMT (by SBRZAYD at OS2CUST)
  2801. Subject: Freeing a MS halloc in 32-bit code
  2802.  
  2803.      If its not one thing, its another... * SIGH *
  2804.  
  2805.      We are having a number of strange thunking/unthunking problems when
  2806. calling MS 16-bit code that allocates a large block of memory (>64K) with
  2807. halloc and then returns the memory to a 32-bit C Set/2 application.  We
  2808. can get to the memory fine (this might be material for a second post, come
  2809. to think of it) but when we try to free the memory in our 32-bit app
  2810. the walls come crumbling down.
  2811.  
  2812.      As a test, we replaced the MS hallocs with mallocs and made sure that
  2813. the images we were moving around were <64K.  In one case the free worked
  2814. but in the others it PE'd.  Does anyone have any ideas? Since we are
  2815. passing in double pointers to the MS DLL routines that allocate the memory
  2816. (and do a lot of other things) do we need only one level of _Seg16s
  2817. (* _Seg16 *)? Two (* _Seg16 * _Seg16)?  Currently we have one under the
  2818. reasoning that a 16-bit huge pointer is the same as a normal C Set/2
  2819. char pointer.  Is this accurate?
  2820.  
  2821.      As usual, I am deeply thankful for all help.
  2822.  
  2823. Chris Corry
  2824. American Management Systems
  2825.  
  2826. ----- C-SET2 CFORUM appended at 01:14:05 on 92/07/01 GMT (by SDETWEIL at DETVMIC4)
  2827. Subject: Freeing a MS halloc in 32-bit code
  2828. Ref:     Append at 20:54:29 on 92/06/30 GMT (by SBRZAYD at OS2CUST)
  2829.  
  2830. As the memory pool is NOT shared between the EXE and DLL runtime
  2831. environments, one CANNOT malloc() (halloc) in one place and free()
  2832. in another.
  2833.  
  2834. Using MS C, to accomplish this you MUST use the CRTLIB.DLL
  2835. which is the C RunTime DLL and SHARE the SAME runtime
  2836. heap space between EXE and DLL. This requires linking the
  2837. EXE with CRTEXE.OBJ adn the DLL with CRTDLL.OBJ as
  2838. documented in the MS C manuals.
  2839.  
  2840. ONLY EXEs created in this way can access the DLL, period.
  2841.  
  2842. Using C-SET/2 you can do the SAME thing, by using Workframe
  2843. to set DYNAMICALLY linked runtime between the EXE and DLL,
  2844. BUT they BOTH MUST BE C-SET/2, just as MS MUST BE BOTH MS C.
  2845.  
  2846. So, The ONLY way I can think of to FIX this, is provide
  2847. YOUR OWN myfree() api in the DLL that the 32 bit EXE calls
  2848. to actually FREE the memory allocated in the 16 bit DLL..
  2849.  
  2850. Sam
  2851.  
  2852. ----- C-SET2 CFORUM appended at 14:38:26 on 92/07/01 GMT (by PNWB016 at HONE86)
  2853. Subject: File Handling Restrictions
  2854. Ref: Append at 14:38:45 on 92/06/30 GMT (by A157623 at OS2CUST)
  2855.  
  2856. Don't know about the spawn family of functions, but we use the
  2857. DosExecPgm API to start another process where we want it to
  2858. inherit the file handes.
  2859.  
  2860. I just checked in the GA version of the C/Set migration guide and
  2861. here is what I found on page 134....
  2862. "Files that are open when a swpan call is made remain open in the
  2863. child process. In the spawnl, spawnlp, spawnv, and spawnp calls,
  2864. the child process inherits the environment of the parent."
  2865.  
  2866. Is this different from what was said in the prerelease version of
  2867. the migration guide?
  2868.  
  2869. Hope this helps... if the spawn family of C runtime calls isn't
  2870. doing the job for you let me know and I can post a code stub
  2871. we have that uses DosExecPgm.
  2872.  
  2873. Wayne "I hope this helps" Holmes
  2874. U S WEST Communications
  2875.  
  2876. ----- C-SET2 CFORUM appended at 15:23:19 on 92/07/01 GMT (by SC036696 at AUSVM1)
  2877. Subject: Debugging DosExec'd processes with 'ipmd'
  2878. I'm trying to debug into a 'DosExec'd process but am unable to. I cannot
  2879. find reference anywhere to this type of debugging. Has anyone discovered
  2880. how to accomplish this?
  2881.  
  2882. ----- C-SET2 CFORUM appended at 18:38:59 on 92/07/01 GMT (by SC036696 at AUSVM1)
  2883. Subject: C SET/2 DEBUGING OF 'EXECED' PROCESSES
  2884. I AM ATTEMPTING TO DEBUG INTO A PROCESS ASYNCHRONOUSLY INITIATED WITH A
  2885. 'DOSEXECPGM' BUT HAVE BEEN UNSUCCESSFUL AT DOING SO. I CANNOT STOP THE
  2886. ASYNCHRONOUS PROCESS ONCE IT IS EXECED. HAS ANYONE HAD SUCH EXPERIENCE
  2887. USING THE DEBUGGER. THANKS.
  2888.  
  2889. ----- C-SET2 CFORUM appended at 04:26:53 on 92/07/02 GMT (by BIGBILL at TOROLAB6)
  2890. Subject: Freeing a MS halloc in 32-bit code
  2891. Ref:     Append at 20:54:29 on 92/06/30 GMT (by SBRZAYD at OS2CUST)
  2892. Ref:     Append at 01:14:05 on 92/07/01 GMT (by SDETWEIL at DETVMIC4)
  2893.  
  2894. As Sam says, the runtime environment that allocates the memory MUST
  2895. free the memory, unless that runtime environment is shared by the
  2896. EXE and DLL AND is from the same compiler.
  2897.  
  2898. In fact, we ran into this situation in the WorkFrame.  We have an
  2899. API back into the DLL that we pass a pointer to which actually
  2900. frees the allocated structure (it does multiple frees since the
  2901. structure contains multiple allocated objects).
  2902.  
  2903. A 16-bit huge pointer is not the same as a 32-bit char pointer.  They
  2904. may be both 32-bits, but that's were the similarity ends.  I believe
  2905. you need the second level.  If you are passing these pointers through
  2906. a function declared with a 16-bit calling convention, then the
  2907. compiler takes care of the first level of indirection.  So you're
  2908. one level may actually be two (I always forget which side those _Seg16
  2909. things apply to ;-).
  2910.  
  2911. Bill Sarantakos    OS/2 Compiler Development         Toronto, Ontario
  2912.  
  2913. ----- C-SET2 CFORUM appended at 13:39:54 on 92/07/03 GMT (by PETT at TOROLAB6)
  2914. Subject: File Handling Restrictions
  2915. Ref:     Append at 14:38:45 on 92/06/30 GMT (by A157623 at OS2CUST)
  2916.  
  2917. handles are inherited in a spawned program, with one difference
  2918. from the MS compilers.  The handles inherited are the handles in effect
  2919. when the spawning program started.   The effects of the freopen()
  2920. function are not inherited by a spawned program.
  2921.  
  2922. There is a way to redirect standard I/O files, which I described some
  2923. time ago in this forum.  It's a bit messy, but it works.
  2924.  
  2925. Roger Pett
  2926.  
  2927. ----- C-SET2 CFORUM appended at 20:15:54 on 92/07/03 GMT (by XXNOVA24 at TORVMCOP)
  2928. Subject: SOM compiler settings.
  2929.  
  2930. I'm looking for the C-set/2 compiler settings to compile a class
  2931. to a DLL and invoke it from a regular program.
  2932.  
  2933. There is a good article in the Winter 1992 of IBM Personal
  2934. Systems Developer. : Object-Oriented Programming in OS/2 2.0 (p107)
  2935. If I compile the classes to a DLL and using the main.c example:
  2936. I get an error message during execution about the object was NULL (?)
  2937.  
  2938. Does anyone can help me with a compiler-linker options or with a
  2939. make file?
  2940.  
  2941. Geza Szivos
  2942. NOVACOR Chemicals (403)-290-6583
  2943.  
  2944. ----- C-SET2 CFORUM appended at 00:57:04 on 92/07/05 GMT (by U6200 at BTVLABVM)
  2945. Subject: Documentation Trends: Online vs Hardcopy
  2946. Ref:     Append at 05:32:08 on 92/06/29 GMT (by XXNOVA24 at TORVMCOP)
  2947.  
  2948. I'm really an internal but thought I'd express my opinion to.
  2949. I work in a technical environment where I have to keep technical
  2950. manuals around for a lot of different tools/systems.  My office
  2951. just isn't big enough for all the paper manuals.  Documentation
  2952. on some sort of on-line mass storage (CD-Rom?) is the only practical
  2953. solution for my storage requirements.
  2954.  
  2955. Gary Coryer
  2956.  
  2957. ----- C-SET2 CFORUM appended at 13:01:00 on 92/07/06 GMT (by OLEG at YKTVMV) --
  2958. Subject: question from a customer
  2959.  
  2960. I've got a question that I was hoping some other C Set/2 users or perhaps
  2961. some friendly C Set/2 developer could help me with.
  2962.  
  2963. I'm compiling a project using C Set/2 and need to issue IOCtl's to reach
  2964. a 16-bit device driver.  The parameter packets that are passed in to the
  2965. driver can contain either normal values, or pointers to other data.  In
  2966. general, what I've been trying to do is to cast the pointer to the parameter
  2967. structure itself to a _Seg16 pointer, and also define the pointers within
  2968. the structure as _Seg16 pointers, setting them to a value passed in from
  2969. a piece of 32-bit code.
  2970.  
  2971. For example, the calling routine may have:
  2972.  
  2973.         main()
  2974.         {
  2975.            char buffer[100];
  2976.  
  2977.            CallDriver(buffer,sizeof(buffer));
  2978.         }
  2979.  
  2980. and the routine that interfaces with the driver has:
  2981.  
  2982.         CallDriver (char *buffer, int buflen)
  2983.         {
  2984.            struct iobuf {
  2985.               short buflen;             /* 16-bit integer       */
  2986.               char * _Seg16 buf;        /* 16-bit usable buffer */
  2987.            } iobuf;
  2988.  
  2989.            iobuf.buflen = buflen;
  2990.            iobuf.buf    = (char * _Seg16)buffer;
  2991.  
  2992.            DosDevIOCtl(handle,category,func,
  2993.                        (char * _Seg16)&iobuf,parmlen,&parminout,
  2994.                 NULL,datalen,&datainout);
  2995.         }
  2996.  
  2997. The above pseudo-code is pretty simplified, but that's the basic picture.  The
  2998. device driver is not being called from 16-bit code, so C Set/2 is not doing
  2999. any automatic 16-bit manipulation.  I've dumped out the results of casting my
  3000. 32-bit pointers to _Seg16 pointers and it is different than the 32-bit format,
  3001. although I guess I can't guarantee that it's been thunked correctly since I
  3002. don't know what the 16-bit pointers are supposed to look like.  In general, I
  3003. find that the cast value has a different high order 16-bits (I assume segment
  3004. in the _Seg16 value), but the same low order 16-bits.
  3005.  
  3006. Now this is actually the second program of this type I'm trying to build.  The
  3007. first had to do a similar operation (and I was successful building it), but I
  3008. had a fixed data buffer, which I made a global variable and specified in a
  3009. #pragma seg16.  I then set the data pointer (buf) to point to that global
  3010. variable.  This seemed to work fine.  However, in this new program, trying to
  3011. set the data pointer to the pointer supplied to the function (cast to a _Seg16
  3012. pointer) is failing (well, it's hanging my machine in reality - but I presume
  3013. that's because the device driver got a pointer it was unable to use - and it
  3014. doesn't do the most extensive checking the in the world for addressability)
  3015.  
  3016. My question is that why shouldn't the simple cast work.  In general, my
  3017. impression of the #pragma seg16 and _Seg16 keyword was that the _Seg16
  3018. keyword, when used on a 32-bit pointer, thunked that pointer into a value
  3019. that could be used by 16-bit code.  However, if the data the pointer was
  3020. pointing at was originally allocated by 32-bit code, there was no guarantee
  3021. that the thunked pointer could address the entire data block without rolling
  3022. over a 64K boundary.  By defining a variable with #pragma seg16(), the
  3023. initial allocation of that variable would be such that a thunked pointer to
  3024. it would not roll-over (presuming the variable was <64K in size).
  3025.  
  3026. [As an aside - there's no discussion of the scoping of #pragma seg16 - if I
  3027. use it for a variable name, do all such variables (global and local at any
  3028. scope) get tiled?]
  3029.  
  3030. Given this interpretation, I figured that passing a pointer supplied to my
  3031. routine (buffer in the example above) that had been cast to a _Seg16 pointer
  3032. would give the device driver a valid pointer, but there was the possibility
  3033. that it would cross a 64K boundary.  For debugging I've been dumping the
  3034. pointer value, and the low-order 16-bits were never close enough to FFFF to
  3035. require rolling over to address the entire data.  (In fact, my original plan
  3036. was to check for this and if it would roll-over, copy the data into a global
  3037. buffer that had been tiled using #pragma seg16).
  3038.  
  3039. Of course, it doesn't seem to be working out that way, but I'm not sure why.
  3040. Is there something I'm missing in all of this - the few pages in the C Set/2
  3041. User's Guide are useful, but not really as detailed as I'd like, and they
  3042. seems geared to handling calls between 32-bit and 16-bit code with a DLL
  3043. interface in-between, not an IOCtl.  Am I misinterpreting what is happening
  3044. with my cast to a _Seg16 pointer and/or why would things be different if I
  3045. first transfer the data to a global buffer tiled with #pragma seg16, and
  3046. then used the address of that buffer (as a _Seg16 pointer) in the structure?
  3047.  
  3048. Maybe part of my problem is not understanding any manipulations being done
  3049. to the IOCtl parameters on the way to the driver.  I happen to have the driver
  3050. source, but it's not my code and I don't yet have my copy of the device
  3051. driver development guide.  Of course - my previous project made similar
  3052. calls (using the global buffer) and things worked out fine, with the device
  3053. driver having proper addressability to the data pointed to by the field
  3054. within the structure.
  3055.  
  3056. ----- C-SET2 CFORUM appended at 14:52:42 on 92/07/06 GMT (by PNWB016 at HONE85)
  3057. Subject: Debugging DosExec'd processes with 'ipmd'
  3058. Ref: Append at 15:23:19 on 92/07/01 GMT (by SC036696 at AUSVM1)
  3059.  
  3060. I asked this question at the OS/2 Tools Conference. The easiest
  3061. way to accomplish this is to specify a debugging type option
  3062. in your program. When enabled, instead of starting your program
  3063. (call it "FOO.EXE" for the sake of argument) it starts IMPD with
  3064. a parameter of FOO.EXE.
  3065.  
  3066. Personally I don't consider this a very elegant solution, but it
  3067. does work. I would MUCH prefer the ability to set a debugger
  3068. option and directly debug any child processes.
  3069.  
  3070. Wayne Holmes
  3071. U S WEST Communications
  3072.  
  3073. ----- C-SET2 CFORUM appended at 17:31:30 on 92/07/06 GMT (by A157623 at OS2CUST)
  3074. Subject: File Handling Restrictions
  3075.  
  3076. Thanks to Wayne Holmes ("I hope this helps", yes it did).  The beta-release
  3077. migration guide, pg 12, stated C SET/2 could spawn programs but they would NOT
  3078. inherit the file handles of the parent.  Glad the production release fixed it.
  3079.  
  3080. We use a mixture of spawn and DosExecPgm, so any code stubs would be
  3081. appreciated if the behavior has changed.  Thanks in advance.
  3082.  
  3083. Larry Mason
  3084. Texas Instruments
  3085.  
  3086. ----- C-SET2 CFORUM appended at 22:55:26 on 92/07/06 GMT (by MIKEK at DALHQIC2)
  3087. Subject: Coverting Integer to Ascii
  3088.  
  3089. I understand I am supposed to use sprintf to convert integer to ascii.
  3090. My question is how the !@#$%¢&*() do I use it? It returns an int.
  3091. Why isn't there a simple SAA function that looks like this?
  3092.  
  3093.    char * itoa( int )
  3094.  
  3095. Michael Kaply  Team OS/2 Dallas  PRODIGY MVMF10A
  3096.  
  3097. ----- C-SET2 CFORUM appended at 00:40:15 on 92/07/07 GMT (by KEENLEY at TOROLAB6)
  3098. Subject: Coverting Integer to Ascii
  3099. Ref:     Append at 22:55:26 on 92/07/06 GMT (by MIKEK at DALHQIC2)
  3100.  
  3101. Use sprintf( buffer, "%d", someint ) or if you don't care about SAA
  3102. portability you can use _itoa (see stdlib.h).
  3103.  
  3104. John Keenleyside  OS/2 Compiler Dev.
  3105.  
  3106. ----- C-SET2 CFORUM appended at 14:09:22 on 92/07/07 GMT (by PNWB016 at HONE82)
  3107. Subject: Coverting Integer to Ascii
  3108. Ref: Append at 22:55:26 on 92/07/06 GMT (by MIKEK at DALHQIC2)
  3109.  
  3110. Michael: I use _itoa and _ltoa. Is that what you are looking
  3111. for?  (Check the online help for the C/Set.) I STUMBLED across
  3112. these functions a while back.
  3113.  
  3114. Wayne "Still waiting for some fixes" Holmes
  3115. Prodigy: CPJW60A
  3116.  
  3117. ----- C-SET2 CFORUM appended at 16:55:51 on 92/07/07 GMT (by MIKEK at DALHQIC2)
  3118. Subject: Coverting Integer to Ascii
  3119. Ref:     Append at 14:09:22 on 92/07/07 GMT (by PNWB016 at HONE82)
  3120.  
  3121. I saw those Wayne but why the blazes do they take an int value, a
  3122. char string and an int radix?
  3123.  
  3124. Let's say I want to convert the number 6 which is in a variable Num
  3125. to a string in the variable String.
  3126.  
  3127. What does the call look like?
  3128.  
  3129. Michael Kaply  Team OS/2 Dallas  PRODIGY MVMF10A
  3130.  
  3131. ----- C-SET2 CFORUM appended at 21:25:39 on 92/07/07 GMT (by TMTRAN at SFOVMIC1)
  3132. Subject: Stack Segment Problem
  3133.  
  3134. Hello,
  3135. I have migrating a program that works with IBM/C2 compiler, and I get SYS0189
  3136. error when I run it after compiling with IBM C SET/2. Please help!!
  3137.  
  3138. Tran
  3139. THANK YOU
  3140. HAVE A GOOD DAY
  3141.  
  3142. ----- C-SET2 CFORUM appended at 14:30:43 on 92/07/08 GMT (by PNWB016 at HONE82)
  3143. Subject: Coverting Integer to Ascii
  3144. Ref: Append at 16:55:51 on 92/07/07 GMT (by MIKEK at DALHQIC2)
  3145.  
  3146. Michael: Code stub follows:
  3147.  
  3148. {
  3149.    char szWorkì10┘;
  3150.    int  nValue = 4;
  3151.  
  3152.    /*
  3153.       After execution szWork will contain the string "4"
  3154.    */
  3155.    _itoa(nValue,szWork,10);
  3156. }
  3157.  
  3158. The 3rd parameter indicates the base that the string value should
  3159. represent. Normally I use base 10 for numbers I want people to
  3160. understand. If you wanted the hex value you would specify 16 as
  3161. the 3rd argument, for binary you would specify a 2.
  3162.  
  3163. I have no idea what the history is of all the parameters to itoa.
  3164. It probably has something to do with the "dark ages" of C (the
  3165. days before function prototypes were allowed) and has now become
  3166. some kind of standard.
  3167.  
  3168. Wayne "Not a 'C' historian" Holmes
  3169.  
  3170. ----- C-SET2 CFORUM appended at 22:33:02 on 92/07/08 GMT (by MARTZ at GDLVM2) -
  3171. Subject: Bookmanager documentation -- how do customers use it?
  3172.  
  3173. How does a customer go about getting a copy of READ/2 so s/he can use
  3174. the BookManager format documentation provided with Cset/2?
  3175.  
  3176. I'm thinking of a customer who does *NOT* have a marketing rep (and
  3177. never plans to get one either).
  3178.  
  3179. John Martz        "Better products through conferencing!"       MARTZ at GDLVM2
  3180. tie 852-5979                 Prodigy: CCCR60A         Glendale Lab/Endicott, NY
  3181.  
  3182. ----- C-SET2 CFORUM appended at 23:24:52 on 92/07/08 GMT (by BYRNEJ at FSHVMCC)
  3183. Subject:DOS_API
  3184.  
  3185. Can any one tell me where I can get any info on DOS_API calls, if
  3186. there are any. In the DOS settings of OS/2 2.0 there is a setting
  3187. for DPMI_DOS_API, for DOS API translation, does this mean there are
  3188. DOS_API's. Any help would be appreciated
  3189.  
  3190. Joe Byrne
  3191.  
  3192. ----- C-SET2 CFORUM appended at 18:03:27 on 92/07/09 GMT (by WZ00622 at OS2CUST)
  3193. Subject: Calling 16-bit assembly routines from 32-bit C code
  3194.  
  3195. I have a 32-bit program that calls a 16-bit assembly language routine.  If
  3196. the routine is called from the main thread I go through the _EDCThunkProlog
  3197. and execute the routine without any problem.  If I call the routine from
  3198. another thread upon entry to the routine that calls the 16-bit routine I
  3199. get an access violation in the _EDCThunkProlog at the REP MOVSW line in the
  3200. prolog code.  Is there something special I must do to call 16-bit routines
  3201. from threads other then the main thread?  It appears that the prolog code
  3202. is trying to move data onto a non-existent stack area.
  3203.  
  3204. Brad Pollack
  3205.  
  3206. ----- C-SET2 CFORUM appended at 18:34:29 on 92/07/09 GMT (by FRYERK at TOROLAB6)
  3207. Subject: Bookmanager documentation -- how do customers use it?
  3208. Ref:     Append at 22:33:02 on 92/07/08 GMT (by MARTZ at GDLVM2)
  3209.  
  3210. Did s/he try the 1-800 number?  I thought one could order just about
  3211. anything through that.  And if not, they should be able to tell you how
  3212. you can.
  3213.  
  3214. Kathryn Fryer
  3215. Toronto Information Development
  3216.  
  3217. ----- C-SET2 CFORUM appended at 18:59:13 on 92/07/09 GMT (by AMELINE at TOROLAB6)
  3218. Subject: Calling 16-bit assembly routines from 32-bit C code
  3219. Ref:     Append at 18:03:27 on 92/07/09 GMT (by WZ00622 at OS2CUST)
  3220.  
  3221.    How large is the stack on the thread? Remember that the 16 bit stack
  3222. (specified on #pragma stack16 (default 4K)) comes from your 32 bit
  3223. stack. That value must be at least 8K smaller than the thread's stack
  3224. size.
  3225.  
  3226. Regards,
  3227. Ian Ameline
  3228.  
  3229. ----- C-SET2 CFORUM appended at 21:08:16 on 92/07/09 GMT (by WZ00622 at OS2CUST)
  3230. Subject: Calling 16-bit assembly routines from 32-bit C code
  3231. Ref: Append at 18:59:13 on 92/07/09 GMT (by AMELINE at TOROLAB6)
  3232.  
  3233. I increased the threads stack size and is seems to have worked.  I didn't
  3234. realize that the stack had to be 8K larger than the 16-bit stack.  Where
  3235. in the documentation does it say this?
  3236.  
  3237. Thanks for the info.
  3238. Brad Pollack
  3239.  
  3240. Brad Pollack
  3241.  
  3242. ----- C-SET2 CFORUM appended at 21:37:03 on 92/07/09 GMT (by MARTZ at GDLVM2) -
  3243. Subject: Bookmanager documentation -- how do customers use it?
  3244. Ref:     Append at 18:34:29 on 92/07/09 GMT (by FRYERK at TOROLAB6)
  3245.  
  3246. "S/he" did not try 1-800-3IBM-OS2. I just did. The person at the other end was
  3247. very confused by my request for information about BookManager READ/2 (73F6023).
  3248. She suggested I call the number for PS/2 Books (1-800-426-7282). The lady at
  3249. that number suggested I try the Tech Support line (1-800-237-5511).
  3250.  
  3251. At that point, I gave up. The people at Tech Support are too busy for me to
  3252. play the "Can you help me?" game. I guess the answer is you get it through
  3253. your marketing rep or you don't get it. :-(
  3254.  
  3255. John Martz        "Better products through conferencing!"       MARTZ at GDLVM2
  3256. tie 852-5979                 Prodigy: CCCR60A         Glendale Lab/Endicott, NY
  3257.  
  3258. ----- C-SET2 CFORUM appended at 12:45:45 on 92/07/10 GMT (by FRYERK at TOROLAB6)
  3259. Subject: Bookmanager documentation -- how do customers use it?
  3260. Ref:     Append at 21:37:03 on 92/07/09 GMT (by MARTZ at GDLVM2)
  3261.  
  3262. John, I'm looking into it.  Hopefully I can come up with an answer for
  3263. you.  Stay tuned....
  3264.  
  3265. Kathryn Fryer
  3266. Toronto Information Development
  3267.  
  3268. ----- C-SET2 CFORUM appended at 13:41:39 on 92/07/14 GMT (by FRYERK at TOROLAB6)
  3269. Subject: Documentation Trends: Online vs Hardcopy
  3270. Ref:     Append at 13:22:09 on 92/06/24 GMT (by FRYERK at TOROLAB6)
  3271.  
  3272. My thanks to all who responded to my request for views/wants/needs in
  3273. regards to the documentation format.  There were 20 responses in all,
  3274. and so you're not left hanging, here is how they break down:
  3275.  
  3276. Option #1: 3 (all books in .INF format only, hardcopy orderable)
  3277.  
  3278. Option #2: 12 (including one second choice)
  3279. (reference books in .INF format, guidance books hardcopy)
  3280.  
  3281. Option #3: 2 (all books in BookManager format only, hardcopy orderable)
  3282.  
  3283. Option #4: 3 (all books shipped in hardcopy)
  3284.  
  3285. There were also a few suggestions not on the menu, namely:
  3286. a) put all reference material in hardcopy and online, and all other
  3287.     documents online only (2 suggestions)
  3288. b) put everything you need a lot in hardcopy, and things you rarely use
  3289.     (like tutorials) online (1)
  3290. c) pass the savings on to the customer (2)
  3291. d) ship BookManager books on CD-ROM (3)
  3292.  
  3293. You'll notice the total count exceeds 20, but some people had two
  3294. choices, or suggestions in addition to their choice.
  3295.  
  3296. Thank you very much for your participation in our survey.  Your
  3297. preferences and suggestions are very helpful, and we are giving them
  3298. careful consideration.  (Sorry to be so non-committal, but I'd hate to
  3299. promise something now and renege later for some unforeseen reason!)
  3300.  
  3301. Kathryn Fryer
  3302. Toronto Information Development
  3303.  
  3304. ----- C-SET2 CFORUM appended at 21:11:53 on 92/07/15 GMT (by MELGAR at RALYDPD4)
  3305. Subject: Questions
  3306. Ref:     Append at 13:41:39 on 92/07/14 GMT (by FRYERK at TOROLAB6)
  3307.  
  3308. - What routines do you use to work with pipes and named pipes in OS/2?
  3309. Is there a c-set2 library routine for it?
  3310.  
  3311. - Do I really have to install TOOLKIT to be able to develop C programs?
  3312. It seems large.
  3313.  
  3314. Thanks
  3315.  
  3316. David Melgar
  3317.  
  3318. ----- C-SET2 CFORUM appended at 12:49:57 on 92/07/16 GMT (by KOLSKY at HAIFASC3)
  3319. Subject: Questions
  3320. Ref:     Append at 21:11:53 on 92/07/15 GMT (by MELGAR at RALYDPD4)
  3321.  
  3322. If you have the function prototypes you don't need the toolkit.
  3323. It is much better, however, to have the toolkit :-)
  3324.  
  3325. The API is basically for creating the pipe and changing its state.
  3326. The actual manipulation can be done with file I/O (as it was
  3327. designed to be).
  3328.  
  3329. Amir Kolsky
  3330.  
  3331. ----- C-SET2 CFORUM appended at 18:27:12 on 92/07/16 GMT (by FRYERK at TOROLAB6)
  3332. Subject: Bookmanager documentation -- how do customers use it?
  3333. Ref:     Append at 12:45:45 on 92/07/10 GMT (by FRYERK at TOROLAB6)
  3334.  
  3335. My thanks to Tracey Scheyer-Nolander of BookManager Support for
  3336. this answer:
  3337.  
  3338.     BookManager READ/DOS and READ/2 are available to customers
  3339.  through any IBM authorized dealer.  And there are thousands of
  3340.  IBM Authorized Dealers - to find the one closest to you you can
  3341.  call 1-800-IBM-2468.  They will ask for your zip code and then
  3342.  provide you with the list of IBM Authorized dealers closest to your
  3343.  location.
  3344.  
  3345.  The part numbers for BookManager are:
  3346.  
  3347.      BookManager READ/DOS   -   73F6022
  3348.      BookManager READ/2     -   94F0562
  3349.  
  3350.  Or, to order the product internally from an IBM Marketing Rep:
  3351.  
  3352.      BookManager READ/DOS   -   5601-453
  3353.      BookManager READ/2     -   5601-454
  3354.  
  3355.  I hope this clears up the confusion.  We really need to get this
  3356.  word out to our customers.  Not only can they purchase BookManager
  3357.  software from IBM Authorized Dealers, they can purchase any
  3358.  of IBM's workstation hardware and software products as well.
  3359.  
  3360. Kathryn Fryer
  3361. Toronto Information Development
  3362.  
  3363. ----- C-SET2 CFORUM appended at 11:23:43 on 92/07/17 GMT (by JSI at SDFVM1) ---
  3364. Subject: Debug Memory Management Functions
  3365. The Compiler Tool provides a set of functions to find where memory
  3366. is being improperly allocated ( _debug_malloc,...).
  3367. Has anybody tried these functions in a PM application (OS/2 2.0) ?
  3368. I tried the example as described in the book in a normal C - programm
  3369. with success. I got a correct error messgage on the screen.
  3370. But the same example in a PM application has no result.
  3371.  
  3372. Juergen Schimpf
  3373.  
  3374. ----- C-SET2 CFORUM appended at 11:57:34 on 92/07/17 GMT (by KEENLEY at TOROLAB6)
  3375. Subject: Debug Memory Management Functions
  3376. Ref:     Append at 11:23:43 on 92/07/17 GMT (by JSI at SDFVM1)
  3377.  
  3378. The output from the debug memory management functions goes to stderr.
  3379. When using these functions in a PM application you must either redirect
  3380. stderr to a file or use some other tool to pipe the output to a PM
  3381. window.
  3382.  
  3383. John Keenleyside  OS/2 Compiler Dev.
  3384.  
  3385. ----- C-SET2 CFORUM appended at 18:23:08 on 92/07/17 GMT (by WZ00541 at OS2CUST)
  3386. Subject: Link error L2003 with C Set/2
  3387.  
  3388. We are trying to create a 32-bit DLL with 16-bit entry points.  Everything
  3389. seems compile fine, but the linker gives the following error message:
  3390.   DDE4SBS.LIB (EDCMGS.ASM): error L2003: intersegment self-relative fix-up
  3391.   at 16 in segment CODE32.  target external 'DosGetMessage'
  3392.  
  3393. Anybody have any suggestions on this error.
  3394.  
  3395. Thanks,
  3396.  
  3397. Joel Rosenberger, Attachmate Corporation
  3398.  
  3399. ----- C-SET2 CFORUM appended at 19:26:41 on 92/07/17 GMT (by V$IPAULD at BCRVMPC1)
  3400. Subject: Link error L2003 with C Set/2
  3401. Ref:     Append at 18:23:08 on 92/07/17 GMT (by WZ00541 at OS2CUST)
  3402.  
  3403. The message implies that you are trying to the 16-bit DosGetMessage
  3404. from 32-bit code or vice-versa. This can happen depending on
  3405. whether you link with OS2286.LIB or OS2386.LIB - the header files
  3406. help you out with this if you are programming on C by renaming the
  3407. calls to Dos32GetMessage or Dos16GetMessage explicitly, but there
  3408. is no assember support in the include files. Try changing the
  3409. assember source to call Dos16 or Dos32 dependant on your intention.
  3410.  
  3411. Paul Devriendt
  3412.  
  3413. ----- C-SET2 CFORUM appended at 23:44:12 on 92/07/17 GMT (by SHAKOOR at DALHQIC2)
  3414. Subject: EDC0805 and EDC0816
  3415.  
  3416. I have a client who is a bit concerned about these two diagnostics
  3417. in the following scenarios:
  3418.  
  3419. if (( a=func(x) )) cause EDC0816 (assignment found in a control expr)
  3420. while,
  3421. if (( b=func(x) ) > 0) does not.
  3422.  
  3423. EDC0805 (automatic variable set but no reference) is also generated
  3424. if either variables 'a' or 'b' in above examples are not referenced
  3425. anywhere else.  His concern is that the variable is referenced by the
  3426. conditional expression itself, otherwise the compiler has a BIG problem,
  3427. especially in second example if the compiler does NOT reference 'b'
  3428. like it should.
  3429.  
  3430. Any comments from C-SET/2 dev. team ??..
  3431.  
  3432. Thanks!
  3433. Shahab Shakoor.
  3434.  
  3435. ----- C-SET2 CFORUM appended at 07:12:07 on 92/07/20 GMT (by 40953586 at EHONE)
  3436. Subject: EDC0805 and EDC0816
  3437. Ref:     Append at 23:44:12 on 92/07/17 GMT (by SHAKOOR at DALHQIC2)
  3438. Reply-to: Jurrie Lulofs <LULOFS@NLVM1>
  3439.  
  3440. While I'm not a member of the C Set/2 development team, I can provide
  3441. the information that you've requested.
  3442.  
  3443. Please note that both of these messages are warnings that were enabled
  3444. by your client's use of the /Kb option.
  3445.  
  3446. >> if (( a=func(x) ))
  3447.  
  3448. Will cause the EDC0816 message to be generated because the compiler is
  3449. warning you that you may have coded "if (( a=func(x) ))" instead of
  3450. "if (a==func(x))".  If you do intend for the assignment to "a" to take
  3451. place then you can ignore the message.  If you'd like to suppress the
  3452. message then you could code "if (a=func(x) != 0)" instead.
  3453.  
  3454. > if (( b=func(x) ) > 0)
  3455.  
  3456. This will not cause an EDC0816 message to be generated because there
  3457. is an explicit comparison operator used to determine result of the
  3458. expression.  This is different from the case above, where the value
  3459. of 'a' is used (instead of the result of a comparison) to determine
  3460. whether the following code block should be executed or not.
  3461.  
  3462. > EDC0805 (automatic variable set but no reference)
  3463.  
  3464. This message is generated because 'a' or 'b' are not used anywhere
  3465. else in the program/function.  The compiler is merely pointing out that
  3466. since the variable in question is not used anywhere else that you may
  3467. remove the variable altogether if you'd like.
  3468.  
  3469. > His concern is that the variable is referenced by the conditional
  3470. > expression itself, otherwise the compiler has a BIG problem, especially
  3471. > in second example if the compiler does NOT reference 'b' like it should
  3472.  
  3473. Relax, there's no problem here.  The compiler will reference the variable
  3474. in question.
  3475.  
  3476. I'm curious though why your client is concerned about this.  Since his
  3477. program doesn't access the variable anywhere else, it doesn't really
  3478. matter whether the compiler accesses the varariable or not.  In fact, I
  3479. would expect an optimizing compiler to not make the assignment.  I would
  3480. also expect the compiler not to allocate any resources for the variable
  3481. at all.  Why allocate resources and generate instructions for something
  3482. that's not used?
  3483.  
  3484. Let us know if you and/or your client have any further questions.
  3485.  
  3486. jurrie
  3487.  
  3488. ----- C-SET2 CFORUM appended at 15:01:12 on 92/07/20 GMT (by PNWB016 at HONE82)
  3489. Subject: Bookmanager documentation -- how do customers use it?
  3490. Ref: Append at 18:27:12 on 92/07/16 GMT (by FRYERK at TOROLAB6)
  3491.  
  3492. Kathryn: Thanks for the info on Bookmanager. Do you happen to have
  3493. a price handy? I would also be interested in the DSLO cost, as
  3494. well as a Basic License.
  3495.  
  3496. Thanks in advance...
  3497.  
  3498. Wayne Holmes
  3499. U S WEST Communications
  3500.  
  3501. ----- C-SET2 CFORUM appended at 15:39:23 on 92/07/21 GMT (by FRYERK at TOROLAB6)
  3502. Subject: Bookmanager documentation -- how do customers use it?
  3503. Ref:     Append at 15:01:12 on 92/07/20 GMT (by PNWB016 at HONE82)
  3504.  
  3505. The price of BookManager READ/2 is $194 US for the initial license.
  3506. After that, if you want additional licenses for other workstations, the
  3507. cost is $99 apiece (that's for proof-of-license only...the product and
  3508. docs are not reshipped).
  3509.  
  3510. Kathryn Fryer
  3511. Toronto Information Development
  3512.  
  3513. ----- C-SET2 CFORUM appended at 13:10:05 on 92/07/22 GMT (by F065430 at ESONVM1)
  3514. Subject: use ES/2 and DBM with C-SET/2
  3515.  
  3516. I want to migrate an application from OS/2 1.3 to OS/2 2.0.
  3517. My application use Database manager, and C/PM.
  3518.  
  3519. after the command SQLPREP, I compile the file with C-set/2 with
  3520. the declaration ES32TO16, no problem.
  3521. After a link, I have my exe file, no problem too.
  3522.  
  3523. But during the execution of my program, I have a trap ╢D, when I want
  3524. to call a function which call SQL functions.
  3525. If I look, in assembler mode, I trap with the call __EDCThunkProlog
  3526.  
  3527. can anyone help me?? or can anyone send me a sample which use SQL
  3528. and c-set/2
  3529.  
  3530. thanks in advances
  3531.  
  3532. SEMUR Christophe
  3533. Devt DVI - IBM FRANCE
  3534. F065430 at ESONVM1
  3535.  
  3536. ----- C-SET2 CFORUM appended at 14:58:23 on 92/07/22 GMT (by MOONEY at TOROLAB6)
  3537. Subject: use ES/2 and DBM with C-SET/2
  3538. Ref:     Append at 13:10:05 on 92/07/22 GMT (by F065430 at ESONVM1)
  3539.  
  3540. Try increasing the amount of stack which you have, by linking with
  3541. /ST:0x4000 or so.
  3542.  
  3543. dave
  3544.  
  3545. ----- C-SET2 CFORUM appended at 15:32:01 on 92/07/22 GMT (by AMELINE at TOROLAB6)
  3546. Subject: use ES/2 and DBM with C-SET/2
  3547. Ref:     Append at 13:10:05 on 92/07/22 GMT (by F065430 at ESONVM1)
  3548.  
  3549.     Try expanding your stack using the /ST linker option. It should be
  3550. *at least* 12K, or 16K if you call PM API's. If this is on a thread
  3551. other than thread 1, add 4K to those numbers. (If you don't call 16
  3552. bit code, these numbers can be reduced by 4K) Stack size for threads
  3553. other than thread 1 is set on the _beginthread call. Don't use
  3554. DosCreateThread.
  3555.  
  3556. Regards,
  3557. Ian Ameline
  3558.  
  3559. ----- C-SET2 CFORUM appended at 20:33:59 on 92/07/22 GMT (by SBRZAYD at OS2CUST)
  3560. Subject: Multiple possible C/Set2 Bugs
  3561.  
  3562. I have experienced several problems.  I believe they are bugs, but I
  3563. hope I am wrong.
  3564.  
  3565. My compiler switches are as follows:
  3566.  
  3567.      /Sm /Ss /Ti /Gm+ /Ge+ /C /Fd- $*.c
  3568.  
  3569. For DLLs, I use /Ge- instead of /Ge+.
  3570.  
  3571. My only link option is /CO.  I specify my module type in a .def file for
  3572. each EXE or DLL.  In addition, I have been linking explicitly with
  3573. DDE4MBM.lib.
  3574.  
  3575. Problem 1:  strupr () does not capitalize a string, but places a NULL
  3576.      character in the string's first character.
  3577.  
  3578. Problem 2:  I recoded DosGetPID () to call the new OS/2 function
  3579.      DosGetInfoBlocks ().  This way, I didn't have to rewrite code
  3580.      which called DosGetPID ().  When the code DosGetPID () routine
  3581.      appears in the same .c file as the calling routine, it works great..
  3582.      When the DosGetPID () function body is placed within another .c
  3583.      file within the same module, it blows up (protection exception)
  3584.      when the routine calls DosGetInfoBlocks ().
  3585.  
  3586. Problem 3:  One of my programs calls a routine in a DLL that in turn
  3587.      called malloc ().  Malloc () is also called from several places
  3588.      within the code for the EXE and at other points within routines
  3589.      in the DLL.  After several successful calls to malloc (), a
  3590.      particular call causes a protection exception.  The same call
  3591.      blows up at the same point every time, even after several
  3592.      successful calls to malloc () within the EXE and the DLL.  I
  3593.      decided to recode the DLL .c files using the /Ge- option and to
  3594.      statically link in the .obj files rather than link with the DLL's
  3595.      .lib file.  When relinked and rerun without a DLL, the exact
  3596.      same code worked fine.
  3597.  
  3598. Problem 4:  _heap_check () blows up, although I am not sure how to use
  3599.      it.  According to malloc.h, the routine takes no parameters and
  3600.      returns a void.  There is also no documentation for this routine,
  3601.      although I believe it is part of the standard C library.
  3602.  
  3603. Conclusion:  Am I doing something wrong?  If not, is the compiler
  3604.      stable enough to use in a large development project?  Are bug
  3605.      fixes forthcoming?
  3606.  
  3607. For your information, I love the product.  I sincerely hope I am able
  3608. to use it in my project.  Thanks for your support.
  3609.  
  3610. Stuart Hoffman (301-571-2996 ... IBM in Gaithersburg, Maryland)
  3611.  
  3612. ----- C-SET2 CFORUM appended at 21:04:45 on 92/07/22 GMT (by IL13970 at OS2CUST)
  3613. Subject: GPF when _Seg16 pointer used with sprintf
  3614.  
  3615. With a variable declared as char *_Seg16, calling any of the formatted
  3616. print functions results in a General Protection Fault.
  3617.  
  3618.   Example:
  3619.       char *_Seg16 string = "Hello World";
  3620.  
  3621.       printf ("%s\n", string);
  3622.  
  3623.   causes a GPF, terminates the process containing the above statements,
  3624.   and results in a register dump.
  3625.  
  3626. Is the compiler failing to automatically convert the 16-bit segmented
  3627. pointer to a 32-bit near pointer, or is there something else we should
  3628. be doing to make this work?
  3629.  
  3630. Paul Vandenberg
  3631.  
  3632. ----- C-SET2 CFORUM appended at 12:40:28 on 92/07/23 GMT (by MOONEY at TOROLAB6)
  3633. Subject: GPF when _Seg16 pointer used with sprintf
  3634. Ref:     Append at 21:04:45 on 92/07/22 GMT (by IL13970 at OS2CUST)
  3635.  
  3636. The compiler doesn't know if the 16-bit pointer is going to be
  3637. interpreted as 16-bit or 32-bit on the other side of the call, so it just
  3638. leaves it alone.  Do an explicit cast to a 32-bit type on the call:
  3639.  
  3640.   printf ("%s\n", (char *)string);
  3641.  
  3642. dave
  3643.  
  3644. ----- C-SET2 CFORUM appended at 15:28:02 on 92/07/23 GMT (by FRYERK at TOROLAB6)
  3645. Subject: Multiple possible C/Set2 Bugs
  3646. Ref:     Append at 20:33:59 on 92/07/22 GMT (by SBRZAYD at OS2CUST)
  3647.  
  3648. I can help you on problem #4 (_heap_check)...this function is documented
  3649. both in the C Set/2 User's Guide and in the Online Reference in the
  3650. chapter on Debug Memory Management Functions.  In order to use this
  3651. function, you must define the macro __DEBUG_ALLOC__ either on the command
  3652. line or with a #define in your source.
  3653.  
  3654. Sorry I don't have a line on your other problems.
  3655.  
  3656. Kathryn Fryer
  3657. Toronto Information Development
  3658.  
  3659. ----- C-SET2 CFORUM appended at 16:52:20 on 92/07/23 GMT (by OCANUC at BETASVM2)
  3660. Subject: Multiple possible C/Set2 Bugs
  3661. Ref:     Append at 20:33:59 on 92/07/22 GMT (by SBRZAYD at OS2CUST)
  3662.  
  3663. _heap_check() is described in chapter 13 of the c-set/2
  3664. user's guide.
  3665.  
  3666. Brandon Booth   Advanced Programming - ICSRS
  3667.  
  3668. ----- C-SET2 CFORUM appended at 17:22:51 on 92/07/23 GMT (by TCC3824 at OS2CUST)
  3669. Subject: Could not demand load applcn segment
  3670.  
  3671. I have compiled and linked my application with no errors with static link.
  3672. I receive the following error when I run:
  3673.  
  3674. Could not demand load the applications segment.   DDE4SBS.RENAME
  3675.  
  3676. Rename is defined in stdio.h which is included in my code.
  3677.  
  3678. In the listing Rename is    Class = external refernce
  3679.                             type  = _Optlink function returning signed i
  3680.  
  3681. I am stuck.  Any ideas on how to resolve this error??
  3682.  
  3683. Kevin McConnell   512-338-7457  Continuum    Austin Tx
  3684.  
  3685. ----- C-SET2 CFORUM appended at 17:45:32 on 92/07/23 GMT (by WTRACEY at BCRVMPC1)
  3686. ..... C-SET2 CFORUM modified at 18:00:55 on 92/07/23 GMT (by WTRACEY at BCRVMPC1)
  3687. Subject: Could not demand load applcn segment
  3688. Ref:     Append at 17:22:51 on 92/07/23 GMT (by TCC3824 at OS2CUST)
  3689.  
  3690. Are you linking with the /NOI (noignorecase) option?
  3691.  
  3692. Bill Tracey
  3693.  
  3694. ----- C-SET2 CFORUM appended at 21:05:23 on 92/07/23 GMT (by TCC3824 at OS2CUST)
  3695. ..... C-SET2 CFORUM modified at 14:22:04 on 92/07/24 GMT (by TCC3824 at OS2CUST)
  3696. Subject: Could not demand load applcn segment
  3697. This APPEND was deleted at 10:22:03 on 07/24/92 EST.
  3698.  
  3699. ----- C-SET2 CFORUM appended at 16:58:58 on 92/07/24 GMT (by KEENLEY at TOROLAB6)
  3700. Subject: Fixes contained in CSD0008
  3701. Ref:     None.
  3702.  
  3703.                   C SET/2 PROBLEMS FIXED BY CSD0008
  3704.                   _________________________________
  3705.  
  3706. +-----------+---------------------------------------------------------------+
  3707. | APAR      | PROBLEM DESCRIPTION                                           |
  3708. | NUMBER    |                                                               |
  3709. +-----------+---------------------------------------------------------------+
  3710. | PJ03523   | Optimization problem: bad register selection causes general   |
  3711. |           | protection fault at runtime.                                  |
  3712. +-----------+---------------------------------------------------------------+
  3713. | PJ03662   | Optimization problem: bad register selection around a call    |
  3714. |           | causes incorrect output at runtime.                           |
  3715. +-----------+---------------------------------------------------------------+
  3716. | PJ03682   | Optimization problem: tail call optimization was altering a   |
  3717. |           | register erroneously.                                         |
  3718. +-----------+---------------------------------------------------------------+
  3719. | PJ03767   | The compiler could not open files with names containing DBCS  |
  3720. |           | characters where the second byte of the characters was 0x5C.  |
  3721. +-----------+---------------------------------------------------------------+
  3722. | PJ03923   | Optimization problem: generated floating-point code was       |
  3723. |           | causing the floating point register stack to overflow or      |
  3724. |           | underflow.                                                    |
  3725. +-----------+---------------------------------------------------------------+
  3726. | PJ03948   | Optimization problem: multiplying by constant negative        |
  3727. |           | numbers which are powers of 2, or multiplying by constants    |
  3728. |           | that are near powers of 2 will cause incorrect code to be     |
  3729. |           | generated.                                                    |
  3730. +-----------+---------------------------------------------------------------+
  3731. | PJ03957   | Compiler was emitting object records longer than the linker's |
  3732. |           | 1024 byte limit.  This causes the linker to produce the       |
  3733. |           | message "L1057: data record too large".                       |
  3734. +-----------+---------------------------------------------------------------+
  3735.  
  3736. John Keenleyside  OS/2 Compiler Dev.
  3737.  
  3738. ----- C-SET2 CFORUM appended at 18:10:38 on 92/07/24 GMT (by MOONEY at TOROLAB6)
  3739. Subject: Fixes contained in CSD0008
  3740. Ref:     Append at 16:58:58 on 92/07/24 GMT (by KEENLEY at TOROLAB6)
  3741.  
  3742. PJ03923 had a couple of other fixes in it which weren't listed in the
  3743. offical APAR description.  These were various I/O fixes which improved
  3744. compile time by about 10%, and a fix to the problem where the compiler
  3745. was unable to find files in the sys/ directory on LAN drives.
  3746.  
  3747. dave
  3748.  
  3749. ----- C-SET2 CFORUM appended at 19:53:02 on 92/07/24 GMT (by IL62623 at OS2CUST)
  3750. Subject: can I get rid of access violation alert box?
  3751.  
  3752. My application uses DosSetMem to set pages inaccessible, and then
  3753. handles the resulting exceptions in a handler and continues execution.
  3754. Its nearly impossible to debug it with ipmd, since every time one happens
  3755. I get an alert box. Is there any way out?
  3756.  
  3757. ----- C-SET2 CFORUM appended at 02:20:52 on 92/07/26 GMT (by SDETWEIL at DETVMIC4)
  3758. Subject: use ES/2 and DBM with C-SET/2
  3759. Ref:     Append at 13:10:05 on 92/07/22 GMT (by F065430 at ESONVM1)
  3760.  
  3761. You must also use /Sm and /Gt as well as /DES32TO16 for DBM compiles
  3762. in C-SET/2...
  3763.  
  3764. Sam
  3765.  
  3766. ----- C-SET2 CFORUM appended at 17:59:05 on 92/07/27 GMT (by PNWB016 at OS2CUST)
  3767. Subject: Fixes contained in CSD0008
  3768. Ref: Append at 16:58:58 on 92/07/24 GMT (by KEENLEY at TOROLAB6)
  3769.  
  3770. Where can customers get these fixes? I have some code that doesn't work
  3771. when optimization is turned on, and would like to try these fixes before
  3772. I build YATC (Yet Another Test Case) for level 2.
  3773.  
  3774. Thanks!
  3775.  
  3776. Wayne "I have a directory FULL of test cases" Holmes
  3777. U S WEST Communications
  3778.  
  3779. ----- C-SET2 CFORUM appended at 19:13:52 on 92/07/27 GMT (by TCC3824 at OS2CUST)
  3780. Subject: DosStartSession rc=127
  3781.  
  3782. I am receiving this error when trying to start the debugger.
  3783. What is this error and where can I find it defined?
  3784.  
  3785. Kevin McConnell   512-338-7457  Continuum    Austin Tx
  3786.  
  3787. ----- C-SET2 CFORUM appended at 19:37:34 on 92/07/27 GMT (by GERSTLE at LEXVMK)
  3788. Subject: DosStartSession rc=127
  3789. Ref:     Append at 19:13:52 on 92/07/27 GMT (by TCC3824 at OS2CUST)
  3790.  
  3791. Kevin,
  3792. This error means that the debugger can't find one (or more) of
  3793. the DLL's referenced by your program.  Check all your paths, locations
  3794. of DLL's, etc.  If you still can't get it running, send me your phone
  3795. number and we'll pursue further.
  3796. Pat Gerstle <IBM>
  3797.  
  3798. ----- C-SET2 CFORUM appended at 19:55:55 on 92/07/27 GMT (by TCC3824 at OS2CUST)
  3799. Subject: DosStartSession rc=127
  3800. Ref: Append at 19:37:34 on 92/07/27 GMT (by GERSTLE at LEXVMK)
  3801.  
  3802. thanks.  I figured it out. I was not linking in the (dll member).lib
  3803.  
  3804. One more ?
  3805.  
  3806. How do I get the debugger to display the DLL code once it is called from
  3807. the .EXE?
  3808.  
  3809. Kevin McConnell   512-338-7457  Continuum    Austin Tx
  3810.  
  3811. ----- C-SET2 CFORUM appended at 20:12:33 on 92/07/27 GMT (by WEEKS at AUSVM2) -
  3812. Subject: DosStartSession rc=127
  3813. Ref:     Append at 19:13:52 on 92/07/27 GMT (by TCC3824 at OS2CUST)
  3814.  
  3815. It's in the Toolkit header file BSEERR.H.  It means that an
  3816. entry point in a .DLL could not be found.  Have you tried simply
  3817. running the program you are trying to debug to see if the OS/2
  3818. loader will tell you which entry point it can't find?
  3819.  
  3820. Craig Weeks
  3821. LAN Systems Performance (DCE)
  3822. Austin, Texas
  3823.  
  3824. ----- C-SET2 CFORUM appended at 20:24:14 on 92/07/27 GMT (by GERSTLE at LEXVMK)
  3825. Subject: DosStartSession rc=127
  3826. Ref:     Append at 19:55:55 on 92/07/27 GMT (by TCC3824 at OS2CUST)
  3827.  
  3828. When the DLL is loaded, the parts within it will appear in the parts
  3829. box in the Debug Sessions Control window IF the DLL was built with
  3830. debug information.  Then you can select the parts in the DLL, set
  3831. breakpoints in them, etc.
  3832.  
  3833. Pat Gerstle
  3834.  
  3835. ----- C-SET2 CFORUM appended at 21:13:08 on 92/07/27 GMT (by BRENT at DALVM41B)
  3836. Subject: Fixes contained in CSD0008
  3837. Ref: Append at 17:59:05 on 92/07/27 GMT (by PNWB016 at OS2CUST)
  3838.  
  3839. The C Set/2 CSD is now available for download from the OS/2 BBS.
  3840. Look in the Corrective Service Diskette section of the Software Library.
  3841.  
  3842. Please note that there are TWO versions available.  CS00008 is the OFFICIAL
  3843. CSD being shipped by the normal support channels.  Download the appropriate
  3844. disk image file (3.5 or 5.25") and use LOADDSKF to unpack it to diskette.
  3845.  
  3846. Also available now is an interim version of the CSD, CS00009, which is only
  3847. being made available electronically on a "beta" basis.  CS00009 contains all
  3848. of the fixes in CS00008 plus some more, newer fixes.  CS00009 has not been
  3849. fully tested at this time so please use it with caution.  Any questions or
  3850. bugs found with CS00009 should be reported in this forum.
  3851.  
  3852. Brent Allen - IBM OS/2 Base Services Support
  3853.  
  3854. ----- C-SET2 CFORUM appended at 15:35:13 on 92/07/28 GMT (by PNWB016 at HONE84)
  3855. Subject: Fixes contained in CSD0008
  3856. Ref: Append at 21:13:08 on 92/07/27 GMT (by BRENT at DALVM41B)
  3857.  
  3858. Brent: Thanks! I don't know what others think, but having fixes
  3859. quickly available is one of my favorite things about this BBS.
  3860. (It ranks right up there with my constant "whining" about not
  3861. having ENOUGH of the RIGHT fixes.)
  3862.  
  3863. Wayne "Some customers are never satisified" Holmes
  3864.  
  3865. ----- C-SET2 CFORUM appended at 17:48:31 on 92/07/28 GMT (by PNWB016 at HONE82)
  3866. Subject: Fixes contained in CSD0008
  3867. Ref: Append at 21:13:08 on 92/07/27 GMT (by BRENT at DALVM41B)
  3868.  
  3869. Brent: Well, the good news is that I downloaded the fixes and
  3870. got the service disk built. When I run the "Service" program it
  3871. tells me that there is nothing to update on my machine.
  3872.  
  3873. The problem is that the version of the C/Set I want to upgrade
  3874. is on a LAN drive, and the "Drives" option only lists my local
  3875. harddrive.
  3876.  
  3877. Do you, or anyone, know of a way that we can apply the CSD to our
  3878. LAN drives? (We all run the C-Set off a LAN drive due to lack of
  3879. space for the C-Set on our local disks.)
  3880.  
  3881. Wayne "Typing this from a 60meg HD machine" Holmes
  3882. U S WEST Communications
  3883.  
  3884. ----- C-SET2 CFORUM appended at 20:31:24 on 92/07/29 GMT (by CHENJE at SJEVM13)
  3885. Subject: Query Manager Callable Interface and C/Set2
  3886.  
  3887. When compiling a C application program that interacts with Query
  3888. Manager, it gives the following errors:
  3889.  
  3890. "error L2029: '_DSQCIC': unresolved extern"
  3891. "error L2029: '_DSQCICE': unresolved extern"
  3892. "NMAKE: fatal error U1077: 'C:\OS@\CMD.EXE': return code 2"
  3893.  
  3894. I'm compiling with /DES32TO16, /Sm, /Gt options, have linked to
  3895. the dsqci.lib, included the dsqcomm.h header file in the source code
  3896. and it still does not work.  What am I doing wrong???
  3897.  
  3898. Other than DBM Programming Guide and QM Programming Guide, where can
  3899. can I find the explanation for these error messages??
  3900.  
  3901. Jennie Chen (CHENJE at SJEVM13 276-1642)
  3902.  
  3903. ----- C-SET2 CFORUM appended at 15:42:01 on 92/07/30 GMT (by BRENT at DALVM41B)
  3904. Subject: Fixes contained in CSD0008
  3905. Ref: Append at 17:48:31 on 92/07/28 GMT (by PNWB016 at HONE82)
  3906.  
  3907. Wayne, I really don't know about the CSD install on a LAN.  This looks
  3908. like a brand new installation program so I'm not sure what it can or
  3909. can't do.  I haven't even had a chance to try it myself.
  3910.  
  3911. I've forwarded your append to the guy in Toronto who provided me with
  3912. the CSD's.  Maybe he can help us out.  He's been out of the office, but
  3913. I think he's back in today.  We'll see.
  3914.  
  3915. Brent Allen - IBM OS/2 Base Services Support
  3916.  
  3917. ----- C-SET2 CFORUM appended at 15:59:06 on 92/07/30 GMT (by PNWB016 at OS2CUST)
  3918. Subject: Fixes contained in CSD0008
  3919. Ref: Append at 15:42:01 on 92/07/30 GMT (by BRENT at DALVM41B)
  3920.  
  3921. Brent: Thanks for passing on my question. I'm not sure, but I THINK the
  3922. service program is the same one that was used for OS/2 1.3 CSDs.
  3923.  
  3924. I really want to try out these fixes and see if they resolve some code
  3925. problems we are having when optimization is turned on.
  3926.  
  3927. I look forward to a response.
  3928.  
  3929. Wayne "Wanting to install the fixes I have" Holmes
  3930. U S WEST Communications
  3931.  
  3932. ----- C-SET2 CFORUM appended at 17:56:24 on 92/07/30 GMT (by UDSS013 at OS2CUST)
  3933. Subject: Bookmanager documentation -- how do customers use it?
  3934.  
  3935. | Kathryn: Thanks for the info on Bookmanager. Do you happen to have
  3936. | a price handy? I would also be interested in the DSLO cost, as
  3937. | well as a Basic License.
  3938.  
  3939. Wayne,
  3940.  
  3941. We got a deal on a BookManager Starter Kit.  It is a CD-ROM with quite a
  3942. few IBM manuals on it (mainly host-based) and the rights for a corporate
  3943. wide use of the READ/2 product.
  3944.  
  3945. Gary Murphy
  3946.  
  3947. ----- C-SET2 CFORUM appended at 19:29:10 on 92/08/03 GMT (by PNWB016 at OS2CUST)
  3948. Subject: Fixes contained in CSD0008
  3949. Ref: Append at 15:42:01 on 92/07/30 GMT (by BRENT at DALVM41B)
  3950.  
  3951. Brent: Have you heard anything about how to install this CSD to our LAN?
  3952. At this point I would settle for instructions on how to do this by hand.
  3953.  
  3954. Wayne "It's hard to move bits just using your hands" Holmes
  3955. U S WEST Communications
  3956.  
  3957. ----- C-SET2 CFORUM appended at 20:57:00 on 92/08/03 GMT (by BRENT at DALVM41B)
  3958. Subject: Fixes contained in CSD0008
  3959. Ref: Append at 19:29:10 on 92/08/03 GMT (by PNWB016 at OS2CUST)
  3960.  
  3961. Wayne,  I received the following reply....
  3962. ------------------------------------------------------------------------
  3963.    The "service" program is the OS/2 CSD installation utility -- it has
  3964. some problems -- one of them is that it won't install across a LAN.
  3965. it must be run on the machine which has the copy of C-Set on it.
  3966. The files can be manually unpacked using the UNPACK command if
  3967. service.exe is acting up.
  3968. ------------------------------------------------------------------------
  3969.  
  3970. If it helps any, you can use a wildcard with Unpack to speed things up.
  3971. You might want to try:
  3972.  
  3973. UNPACK *.EX@ x:\IBMC\BIN
  3974. UNPACK *.DL@ x:\IBMC\DLL
  3975. UNPACK *.LI@ x:\IBMC\LIB
  3976.  
  3977. At least that will cut it down to only three commands.
  3978.  
  3979. Brent Allen - IBM OS/2 Base Services Support
  3980.  
  3981. ----- C-SET2 CFORUM appended at 14:55:25 on 92/08/04 GMT (by PNWB016 at HONE83)
  3982. Subject: Fixes contained in CSD0008
  3983. Ref: Append at 20:57:00 on 92/08/03 GMT (by BRENT at DALVM41B)
  3984.  
  3985. Brent: Thanks! I have printed your instructions and will get the
  3986. fixes installed today.
  3987.  
  3988. Are there plans to fix this problem? I would like to know if this
  3989. will be a problem with the other software that we have LAN
  3990. available. (Workframe, Toolkit, etc..)
  3991.  
  3992. Wayne "Unpacking" Holmes
  3993. U S WEST Communications
  3994.  
  3995. ----- C-SET2 CFORUM appended at 15:08:21 on 92/08/04 GMT (by BIGBILL at TOROLAB6)
  3996. Subject: Fixes contained in CSD0008
  3997. Ref:     Append at 14:55:25 on 92/08/04 GMT (by PNWB016 at HONE83)
  3998.  
  3999. Any particular reason why you didn't run the CSD on the server
  4000. itself?  I think that one reason for not allowing the LAN update
  4001. to the server is that the file that contains the SYSLEVEL information
  4002. is placed on the boot drive of the system.  If it was allowed, then
  4003. that information would be placed on the requester machine instead of
  4004. the server.
  4005.  
  4006. Bill Sarantakos    OS/2 C Compiler Development     Toronto, Ontario
  4007.  
  4008. ----- C-SET2 CFORUM appended at 18:13:33 on 92/08/04 GMT (by PNWB016 at OS2CUST)
  4009. Subject: Fixes contained in CSD0008
  4010. Ref: Append at 15:08:21 on 92/08/04 GMT (by BIGBILL at TOROLAB6)
  4011.  
  4012. Bill (or is that BIG Bill... what a GREAT ID you have!):
  4013.  
  4014. There are a couple of reasons for not running the CSD on the server.
  4015.  
  4016. 1) The C/Set installation program allows for installation to a LAN
  4017.    redirected drive, so I assumed (silly me) that the service program
  4018.    would allow the same thing.
  4019.  
  4020. 2) I thought about running the SERVICE program on the server, but since
  4021.    our server is still running OS/2 1.3 I didn't want to take the risk
  4022.    of messing up something because I was installing 32-bit "stuff"
  4023.    on a 16-bit machine.
  4024.  
  4025. 3) A more fundamental problem is how do we install service if our server
  4026.    is running NetWare? (Kind of tough to run the "service" program
  4027.    from NetWare. <g>)
  4028.  
  4029. Am I missing something, or is this a "hole" in the service program?
  4030.  
  4031. Thanks for any comments....   Wayne
  4032.  
  4033. ----- C-SET2 CFORUM appended at 20:32:44 on 92/08/04 GMT (by BRENT at DALVM41B)
  4034. Subject: Fixes contained in CSD0008
  4035. Ref: Append at 14:55:25 on 92/08/04 GMT (by PNWB016 at HONE83)
  4036.  
  4037. Wayne: I don't know about any plans for the Service program (I'm just the
  4038. middle man here).  Based on the reply I received from the guy in Development,
  4039. it certainly appeared that they are aware of these sorts of problems but who
  4040. knows what plans there are (if any) to change them.
  4041.  
  4042. Doesn't anyone watching this forum in the Toronto Lab know anything about
  4043. this?
  4044.  
  4045. Brent Allen - IBM OS/2 Base Services Support
  4046.  
  4047. ----- C-SET2 CFORUM appended at 21:33:51 on 92/08/04 GMT (by PNWB016 at OS2CUST)
  4048. Subject: Fixes contained in CSD0008
  4049. Ref: Append at 20:32:44 on 92/08/04 GMT (by BRENT at DALVM41B)
  4050.  
  4051. Brent: The good news is that I did get the C/Set fixes on and they did fix
  4052. some of the problems we were having... the BAD news is that I still have
  4053. a case where the optimizer breaks our code. (Sigh! Looks like I need to
  4054. try and figure out how to build a test case.)
  4055.  
  4056. Wayne "There I go breaking software again" Holmes
  4057.  
  4058. ----- C-SET2 CFORUM appended at 00:41:51 on 92/08/05 GMT (by BIGBILL at TOROLAB6)
  4059. Subject: Fixes contained in CSD0008
  4060. Ref:     Append at 18:13:33 on 92/08/04 GMT (by PNWB016 at OS2CUST)
  4061.  
  4062. I'm not sure how the CSD is packaged, which program it uses to
  4063. update, etc.  I just wanted to get a little more info so that maybe
  4064. I could offer some advice.  Guess its time to start talking to some
  4065. people around here to see what can be done.
  4066.  
  4067. I don't see that running NetWare would cause a problem since the
  4068. 'service' program is actually on the diskette (or at least should be).
  4069.  
  4070. Bill Sarantakos    OS/2 C Compiler Development     Toronto, Ontario
  4071.  
  4072. ----- C-SET2 CFORUM appended at 15:02:33 on 92/08/05 GMT (by PNWB016 at HONE85)
  4073. Subject: Fixes contained in CSD0008
  4074. Ref: Append at 00:41:51 on 92/08/05 GMT (by BIGBILL at TOROLAB6)
  4075.  
  4076. Bill: You would not be able to "boot up" the service program on the
  4077. server since the file formats between NetWare and OS/2 are incompatible.
  4078. (This is normally handled by the redirector.)
  4079.  
  4080. Personally I find it mildly amusing that the C/Set installation program
  4081. seems to understand LANs just fine, but the service program does not.
  4082.  
  4083. BTW... I unpacked the fixes on CSD0008 and the compiler looks real good.
  4084. I still have a problem when optimization is turned on. I was looking in
  4085. IBMLink and found that APAR PJ03952 hasn't been picked up yet. Do you
  4086. happen to have more info on what type of code causes the problem
  4087. described in PJ03952? The problem I'm seeing is when an EXPENTRY
  4088. receives a WM_COMMAND, I pass the command to a subroutine and then try
  4089. to use the COMMNDMSG macro to extract the command id. (The value
  4090. extracted is invalid when optimization is turned on.)
  4091.  
  4092. Wayne
  4093.  
  4094. ----- C-SET2 CFORUM appended at 02:34:41 on 92/08/06 GMT (by BIGBILL at TOROLAB6)
  4095. ..... C-SET2 CFORUM modified at 15:26:05 on 92/08/06 GMT (by BIGBILL at TOROLAB6)
  4096. Subject: Fixes contained in CSD0008
  4097. Ref:     Append at 15:02:33 on 92/08/05 GMT (by PNWB016 at HONE85)
  4098.  
  4099. Wayne,
  4100.  
  4101. I found out that the 'service' program is a common program used to
  4102. ship all CSDs.  Unfortunately, we here in Toronto didn't write the
  4103. program, but we are trying to get the people who did write it to
  4104. make some fixes.  We may even update our install program to allow
  4105. it to install fixes (and therefore be able to work across the LAN).
  4106.  
  4107. I can't help you with the APAR stuff, but I hope someone that can
  4108. is watching (knudge, knudge).
  4109.  
  4110. Bill Sarantakos    OS/2 C Compiler Development     Toronto, Ontario
  4111.  
  4112. ----- C-SET2 CFORUM appended at 14:05:41 on 92/08/06 GMT (by V$IBTIGA at BCRVMPC1)
  4113. Subject: IOPL question in C Set/2
  4114.  
  4115. I have a customer using a C app that calls an assembler routine.  He says
  4116. that everything compiles and links fine, but when he runs the app, he
  4117. a system error at OUTDX, saying that it is a priveleged instruction.
  4118. Both the assembler and C code is very basic.  All the C code does is call
  4119. the assembler code to send a character out, and all the assembler code
  4120. does is use OUTDX to send the character out.
  4121.  
  4122. Below is some excerpts from various files:
  4123.  
  4124. CONFIG.SYS:
  4125.  
  4126.   IOPL=YES
  4127.  
  4128. ASM file:
  4129.  
  4130.   SEGMENTS  TextA  PUBLIC
  4131.   MOV DX
  4132.   MOV AL
  4133.   OUTDX
  4134.  
  4135. DEF file:
  4136.  
  4137.   SEGMENTS  _TextA  IOPL
  4138.  
  4139.   STACKSIZE 8192
  4140.  
  4141. From the above information, is he doing anything wrong, or is there a
  4142. bug?  If you need more info, let me know and I'll get it.
  4143.  
  4144. Larry Moore     PSPC-Boca Tech Interface Group
  4145.  
  4146. ----- C-SET2 CFORUM appended at 14:10:53 on 92/08/06 GMT (by KEENLEY at TOROLAB6)
  4147. Subject: IOPL question in C Set/2
  4148. Ref:     Append at 14:05:41 on 92/08/06 GMT (by V$IBTIGA at BCRVMPC1)
  4149.  
  4150. You should check with the developers in BOCA but I think instructions
  4151. requiring IOPL must be run at ring 0 on OS/2 2.0.
  4152.  
  4153. John Keenleyside  OS/2 Compiler Dev.
  4154.  
  4155. ----- C-SET2 CFORUM appended at 16:26:38 on 92/08/06 GMT (by WEEKS at AUSVM2) -
  4156. Subject: IOPL question in C Set/2
  4157. Ref:     Append at 14:05:41 on 92/08/06 GMT (by V$IBTIGA at BCRVMPC1)
  4158.  
  4159. At the risk of showing my ignorance:  what about that underscore
  4160. character in the definitions file?  C Set/2 does not prepend an
  4161. underscore to global variables like MS C 6.00 does.  Ask the customer to
  4162. make the name in the .C, .DEF and .ASM files match precisely to
  4163. see if that helps.
  4164.  
  4165. Craig Weeks
  4166. LAN Systems Performance (DCE)
  4167. Austin, Texas
  4168.  
  4169. ----- C-SET2 CFORUM appended at 19:45:01 on 92/08/06 GMT (by V$IBITG7 at BCRVMPC1)
  4170. Subject: System Hangs
  4171.  
  4172. I am working with a developer that is using a Data World Notebook
  4173. computer.  He is using C-SET/2 and notices that if he does a compile
  4174. and then opens and closes DOS and OS/2 sessions running apps. After
  4175. opening 3 or 4 sessions the machine will hang with an hour glass trying
  4176. to start an application.He has 8 meg of memory and sufficient harddisk.
  4177.  
  4178. He only sees the problem if he runs C-SET/2.  Are you aware of any
  4179. problems that could cause this?(he is using OS/2 GA and C-SET/2 GA)
  4180. Thanks,
  4181.  
  4182. Mike Jasinski   PSPC-Boca Tech Interface Group
  4183.  
  4184. ----- C-SET2 CFORUM appended at 21:18:25 on 92/08/06 GMT (by MOONEY at TOROLAB6)
  4185. Subject: System Hangs
  4186. Ref:     Append at 19:45:01 on 92/08/06 GMT (by V$IBITG7 at BCRVMPC1)
  4187.  
  4188. C Set/2 uses a *lot* of memory and is very CPU-intensive.  C Set's
  4189. resource requirements probably hose the OS/2 scheduler.
  4190.  
  4191. dave
  4192.  
  4193. ----- C-SET2 CFORUM appended at 21:26:57 on 92/08/06 GMT (by PNWB016 at OS2CUST)
  4194. Subject: Fixes contained in CSD0008
  4195. Ref: Append at 02:34:41 on 92/08/06 GMT (by BIGBILL at TOROLAB6)
  4196.  
  4197. Bill: Thanks for checking on the SERVICE problem. Looks like it is time to
  4198. WYAPASR (Write Yet Another PASR).
  4199.  
  4200. Wayne "Now where did I put that form?" Holmes
  4201. U S WEST Communications
  4202.  
  4203. ----- C-SET2 CFORUM appended at 21:29:01 on 92/08/06 GMT (by PNWB016 at OS2CUST)
  4204. Subject: Fixes contained in CSD0008
  4205. Ref: Append at 02:34:41 on 92/08/06 GMT (by BIGBILL at TOROLAB6)
  4206.  
  4207. Bill: I just noticed that your tagline says "OS/2 C++ Compiler Development"...
  4208. is this an announcement? <grin>
  4209.  
  4210. Wayne "A 'C' programmer who want an OS/2 'C++' compiler" Holmes
  4211.  
  4212. ----- C-SET2 CFORUM appended at 22:20:41 on 92/08/06 GMT (by XXNOVA24 at TORVMCOP)
  4213. Subject: Fixes contained in CSD0008
  4214. Ref:     Append at 21:29:01 on 92/08/06 GMT (by PNWB016 at OS2CUST)
  4215.  
  4216. OK. How do I obtain the C-Set /2 CSD ? Is there any special phone
  4217. lines?
  4218.  
  4219. Geza Szivos
  4220. NOVACOR Chemicals (403)-290-6583
  4221. NHO-32 801-7th Ave Calgary, Alberta, CANADA  T2P 2N6
  4222.  
  4223. ----- C-SET2 CFORUM appended at 02:20:16 on 92/08/07 GMT (by BIGBILL at TOROLAB6)
  4224. Subject: IOPL question in C Set/2
  4225. Ref:     Append at 16:26:38 on 92/08/06 GMT (by WEEKS at AUSVM2)
  4226.  
  4227. You may be able to do the following:
  4228. 1)  Put your assembler code in a unique segment.
  4229. 2)  Using a .DEF file, specify that that segment should have IOPL
  4230.     priviledge.
  4231. 3)  Link with the above .DEF file.
  4232.  
  4233. This should put the asm code in a segment that has IOPL priviledge
  4234. but I haven't done this so I can't say for sure.  I do recall that
  4235. Ring 2 was removed (the minimum level in 1.X where you could have IOPL
  4236. priviledge), however, 2.0 only has levels 0 and 3.  So as John
  4237. stated you would need Ring 0 code which you can do only in a device
  4238. driver.
  4239.  
  4240. Bill Sarantakos    OS/2 C Compiler Development     Toronto, Ontario
  4241.  
  4242. ----- C-SET2 CFORUM appended at 02:30:53 on 92/08/07 GMT (by BIGBILL at TOROLAB6)
  4243. Subject: Fixes contained in CSD0008
  4244. Ref:     Append at 21:29:01 on 92/08/06 GMT (by PNWB016 at OS2CUST)
  4245.  
  4246. What tag line?  No.  ;-)
  4247.  
  4248. Bill Sarantakos    OS/2 C Compiler Development     Toronto, Ontario
  4249.  
  4250. ----- C-SET2 CFORUM appended at 11:33:56 on 92/08/07 GMT (by XXCDSX26 at TORVMCOP)
  4251. Subject: Fixes contained in CSD0008
  4252. Ref:     Append at 22:20:41 on 92/08/06 GMT (by XXNOVA24 at TORVMCOP)
  4253.  
  4254. Geza:
  4255.  
  4256. I hate to say this but Iam Ameline has just posted CS0011 on
  4257. Compuserve ....
  4258.  
  4259. Michael Harper - Cdn Depository for Securities, Ltd
  4260.  
  4261. ----- C-SET2 CFORUM appended at 13:20:04 on 92/08/07 GMT (by V$IPAULD at BCRVMPC1)
  4262. Subject: IOPL question in C Set/2
  4263. Ref:     Append at 02:20:16 on 92/08/07 GMT (by BIGBILL at TOROLAB6)
  4264.  
  4265. OS/2 2.0 does have ring 2 - you need to be at ring 2 or ring 0
  4266. to use IOPL instructions. I don't think that the C compiler will
  4267. assist with getting to ring 2 as you need to go through a call
  4268. gate (ie change to a ring 2 CS). You should be able to do these
  4269. bits in assembler without difficulty.
  4270.  
  4271. Paul Devriendt
  4272.  
  4273. ----- C-SET2 CFORUM appended at 13:50:25 on 92/08/07 GMT (by XXSUNL45 at TORVMCOP)
  4274. Subject: Fixes contained in CSD0008
  4275. Ref:     Append at 22:20:41 on 92/08/06 GMT (by XXNOVA24 at TORVMCOP)
  4276.  
  4277. Try calling the IBM Canada BBS @ (416)946-4244 (14.4 HST DS modem).
  4278. This is a Toronto number, but still cheaper than C$.  There's a
  4279. Vancouver node too but I don't know its number.
  4280.  
  4281. regards,
  4282. Wilf Lee
  4283.  
  4284. ----- C-SET2 CFORUM appended at 21:21:08 on 92/08/07 GMT (by PNWB016 at OS2CUST)
  4285. Subject: Fixes contained in CSD0008
  4286. Ref: Append at 22:20:41 on 92/08/06 GMT (by XXNOVA24 at TORVMCOP)
  4287.  
  4288. CSD0008 is available on this BBS. (That is where I got it.)
  4289.  
  4290. Now it looks like I CSD0008 is already out of date... hopefully it will
  4291. be made available here as well as CIS and the Toronto BBS.
  4292.  
  4293. Wayne "How fast can YOU put on fixes! Hey, but at least we are GETTING them
  4294.        for C/Set! :-)" Holmes
  4295.  
  4296. ----- C-SET2 CFORUM appended at 23:13:16 on 92/08/07 GMT (by BRENT at DALVM41B)
  4297. Subject: Fixes contained in CSD0008
  4298. Ref: Append at 21:21:08 on 92/08/07 GMT (by PNWB016 at OS2CUST)
  4299.  
  4300. CSD00011 is now available for download.  This is another one of the interim
  4301. CSD versions that Toronto is making available.
  4302.  
  4303. Have fun Wayne :-)
  4304.  
  4305. Brent Allen - IBM OS/2 Base Services Support
  4306.  
  4307. ----- C-SET2 CFORUM appended at 13:08:22 on 92/08/10 GMT (by BIGBILL at TOROLAB6)
  4308. Subject: IOPL question in C Set/2
  4309. Ref:     Append at 13:20:04 on 92/08/07 GMT (by V$IPAULD at BCRVMPC1)
  4310.  
  4311. Are you sure that a 32-bit app can do this?  I'm sure ring 2 is there
  4312. for 16-bit apps for compatability, but unless things have changed from
  4313. early on (which they have for many other things) I don't think that
  4314. this has continued for 32-bit mode.
  4315.  
  4316. Bill Sarantakos    OS/2 C Compiler Development     Toronto, Ontario
  4317.  
  4318. ----- C-SET2 CFORUM appended at 14:49:01 on 92/08/10 GMT (by PNWB016 at HONE82)
  4319. Subject: Fixes contained in CSD0008
  4320. Ref: Append at 23:13:16 on 92/08/07 GMT (by BRENT at DALVM41B)
  4321.  
  4322. Brent: Thanks!  ... and speaking of fixes <grin> how about the one for
  4323. PJ03080. The APAR says that the module will be make available on some
  4324. internal disk... can that be "legally" made available here?
  4325.  
  4326. Wayne "PJ03080 is one of my MANY 2.0 fixes I need" Holmes
  4327.  
  4328. ----- C-SET2 CFORUM appended at 18:30:06 on 92/08/10 GMT (by IL22868 at OS2CUST)
  4329. Subject: C Set/2 Optimization GOTCHA!
  4330.  
  4331. Here's a C Set/2 Optimization (/O Option) GOTCHA:
  4332.  
  4333. ULONG counter;
  4334. BOOL  running;
  4335.  
  4336. void _Optlink Thread (void * arg)
  4337.   {
  4338.   while (running)
  4339.     counter++
  4340.   _endthread();
  4341.   }
  4342.  
  4343. main()
  4344.   {
  4345.   SHORT i;
  4346.   running = TRUE;
  4347.   counter = 0L;
  4348.   _beginthread (Thread, NULL, 8192, NULL);
  4349.   for (i=0; i<60; i++)
  4350.     {
  4351.     DosSleep (1000L);
  4352.     printf ("Counter=%lu", counter);
  4353.     }
  4354.   running = FALSE;
  4355.   }
  4356.  
  4357. The printed value of counter will never change from 0.  Why?  Because
  4358. the optimization figures "counter" in the Thread "while" loop will
  4359. never be used until the "while" loop completes, hence the counter
  4360. is incremented in a register (EDX) and only is stored in "counter"
  4361. when the loop is exited (when "running" becomes FALSE).
  4362.  
  4363. The optimization was "fooled" (to do what was needed) by creating
  4364. a (local) variable "ulCounter" and changing the "counter++;" line
  4365. to: "counter = ++ulCounter".
  4366.  
  4367. Ken Singer, Shell Oil, Houston
  4368.  
  4369. ----- C-SET2 CFORUM appended at 18:31:23 on 92/08/10 GMT (by BRENT at DALVM41B)
  4370. Subject: Fixes contained in CSD0008
  4371. Ref: Append at 14:49:01 on 92/08/10 GMT (by PNWB016 at HONE82)
  4372.  
  4373. Hmmmm.  The OS2CSD disk is where the selective fixes are kept for internal
  4374. users.  ALL of the fixes available on OS2CSD are on the BBS (none are being
  4375. held back).  My guess is that the APAR was written up with the anticipation
  4376. that a selective fix would be made available sometime in the future.
  4377. The APAR was last changed on 08/06 so perhaps there is a little delay for
  4378. testing or something.  Anyway, I haven't seen this one yet but if I do it will
  4379. certainly be made available.
  4380.  
  4381. Brent Allen - IBM OS/2 Base Services Support
  4382.  
  4383. ----- C-SET2 CFORUM appended at 18:40:03 on 92/08/10 GMT (by MOONEY at TOROLAB6)
  4384. Subject: C Set/2 Optimization GOTCHA!
  4385. Ref:     Append at 18:30:06 on 92/08/10 GMT (by IL22868 at OS2CUST)
  4386.  
  4387. Declare counter as
  4388.  
  4389.   volatile ULONG counter;
  4390.  
  4391. and it should get reloaded every time through the loop.
  4392.  
  4393. dave
  4394.  
  4395. ----- C-SET2 CFORUM appended at 18:55:11 on 92/08/10 GMT (by 40953586 at EHONE)
  4396. Subject: C Set/2 Optimization GOTCHA!
  4397. Ref:     Append at 18:30:06 on 92/08/10 GMT (by IL22868 at OS2CUST)
  4398. Reply-to: Jurrie Lulofs <LULOFS@NLVM1>
  4399.  
  4400. Have you tried making counter volatile?
  4401.  
  4402. jurrie
  4403.  
  4404. ----- C-SET2 CFORUM appended at 21:14:19 on 92/08/10 GMT (by IL22868 at OS2CUST)
  4405. Subject: C Set/2 Optimization GOTCHA!
  4406. Ref: Append at 18:40:03 on 92/08/10 GMT (by MOONEY at TOROLAB6)
  4407.  
  4408. Many thanks.  Guess I'd better read the manual some more!
  4409.  
  4410. Ken Singer, Shell Oil, Houston
  4411.  
  4412. ----- C-SET2 CFORUM appended at 18:08:35 on 92/08/11 GMT (by PNWB016 at HONE86)
  4413. Subject: Fixes contained in CSD0008
  4414. Ref: Append at 18:31:23 on 92/08/10 GMT (by BRENT at DALVM41B)
  4415.  
  4416. Brent: OK... I will TRY and be patient. <grin>
  4417.  
  4418. Wayne "Patience is not one of character attributes :-)" Holmes
  4419.  
  4420. ----- C-SET2 CFORUM appended at 14:45:55 on 92/08/12 GMT (by RGREEN at DETVMIC6)
  4421. Subject: LINK386 ERROR
  4422.  
  4423. I am migrating a microsoft 6.00 16-bit application.  During the link, I get
  4424. a link error as follows:
  4425.  
  4426. LINK386:error L2050:use16/use32 attribute conflict -
  4427. segment:_DATA in group:DGROUP
  4428.  
  4429. LINK386:error L2050:use16/use32 attribute conflict -
  4430. segment:CONST in group: DGROUP
  4431.  
  4432. LINK386:error L2050:use16/use32 attribute conflict -
  4433. segment:_BSS in group: DGROUP
  4434.  
  4435. Is there a compile or link flag that I am missing?
  4436.  
  4437. Rob Green           8/652-7689
  4438. Services and Solutions
  4439. Cleveland, Ohio
  4440.  
  4441. ----- C-SET2 CFORUM appended at 13:10:27 on 92/08/13 GMT (by BIGBILL at TOROLAB6)
  4442. Subject: LINK386 ERROR
  4443. Ref:     Append at 14:45:55 on 92/08/12 GMT (by RGREEN at DETVMIC6)
  4444.  
  4445. Your trying to link 16-bit objects and 32-bit objects in the same
  4446. module.  If you still need to have the 16-bit objects, put them in
  4447. a DLL separately.
  4448.  
  4449. Bill Sarantakos    OS/2 C Compiler Development     Toronto, Ontario
  4450.  
  4451. ----- C-SET2 CFORUM appended at 14:11:14 on 92/08/13 GMT (by A157623 at OS2CUST)
  4452. Subject: Code Behavior
  4453.  
  4454. I hope this is simple.  I need to know if the debugger can process/debug a
  4455. child task of the one I first startde debugging.  So I wrote a simple task X
  4456. that spawns task Y.  In task Y I simply print "Hello world".  A no-brainer.
  4457. Before I start the debugger I verify the programs work.  Well no output appears
  4458. on the screen|  Executing Y directly does produce output.  Hmmm.  So I start
  4459. the debugger on X and step over the code, all one line of it.  And what to my
  4460. wonderous eyes appear, but the output from Y|  Yikes, the programs work with
  4461. the debugger mode but not without it|  Does this make any sense to anyone?
  4462. I have the GA version of the toolkit and compiler.  And the bigger question,
  4463. how can I debug the child task?  Our PM application is made up of several
  4464. executables as well as DLLs are started from a single EXE.  These other tasks
  4465. are started and finish according to what needs to be done.  A particular child
  4466. task may be started several times during the normal course of work but is
  4467. never executing in memory more than once at a time.  This is CRITICAL for us.
  4468.  
  4469. Thanks in advance.
  4470.  
  4471. Larry Mason
  4472. Texas Instruments
  4473.  
  4474. ----- C-SET2 CFORUM appended at 14:53:36 on 92/08/13 GMT (by GERSTLE at LEXVMK)
  4475. Subject: Code Behavior
  4476. Ref:     Append at 14:11:14 on 92/08/13 GMT (by A157623 at OS2CUST)
  4477.  
  4478. Debugging child processes:
  4479.  
  4480. This is not a directly supported function but it can be done (and a lot
  4481. of users have done it).  Change your code which starts the child process
  4482. to start the debugger with the child process as the parameter to the
  4483. debugger. In other words, change "DosExecPgm <child name>" to
  4484. "DosExecPgm ipmd <child name>".
  4485.  
  4486. I don't have any ideas as to why your code only seems to work when
  4487. executed in the debugger - anyone else?
  4488.  
  4489. Pat Gerstle
  4490.  
  4491. ----- C-SET2 CFORUM appended at 19:34:27 on 92/08/14 GMT (by PENNING at DALVM41B)
  4492. Subject: LINKER Error L2012
  4493.  
  4494. Once again, I seem to have encountered a problem linking code to
  4495. static libraries.  We are receiving error L2012 when linking against
  4496. a .LIB (static, not import) of 368k or so.  The text of the error
  4497. message is "ERROR L2012 @BSS321 array element size mismatch.
  4498.             Objet file offset: 1ef12 Record Type:b0"
  4499. Record type B0 is a communal definition record, and in this case
  4500. contains an array of pointers to pointers to structures that we have
  4501. declared in our application. @BSS321 appears to be a compiler (CSET)
  4502. generated variable that has been placed in our array, at the end.  I
  4503. have not been able to determine exactly what @BSS321 contains, but
  4504. it appears to be 18 bytes long (determined from .MAP file).  We're
  4505. stumped, and stopped dead until we can find a solution or work-
  4506. around to this one.  Not quite sure where to take problem isolation
  4507. next, please call, send the mounties, or at least the boy scouts.
  4508.  
  4509. Dave Raymer, Suite Software, (214)980-9900.
  4510.  
  4511. Addendum:  Error occurs with both IBM LIB.EXE and MS 32bit LIB.EXE
  4512. from MASM 6.0.  Library source is entirely C.
  4513.  
  4514. ----- C-SET2 CFORUM appended at 14:46:47 on 92/08/16 GMT (by BIGBILL at TOROLAB6)
  4515. Subject: Code Behavior
  4516. Ref:     Append at 14:11:14 on 92/08/13 GMT (by A157623 at OS2CUST)
  4517.  
  4518. I assume that the main EXE is a PM program.  If so, PM is not
  4519. opening or 'stealing' the std* streams from your program since it is
  4520. started in the PM session and is a child of a PM program.  Might
  4521. want to use DosStartSession instead.  However, since your only
  4522. interested in debugging the app (not it output to stdout, right?),
  4523. use Pat's suggested method.  You could also pipe/redirect the output
  4524. of the program to a file.
  4525.  
  4526. Bill Sarantakos    OS/2 C Compiler Development     Toronto, Ontario
  4527.  
  4528. ----- C-SET2 CFORUM appended at 15:03:37 on 92/08/17 GMT (by IL03484 at OS2CUST)
  4529. Subject: Migrating from MSC 6.0 with respect to Library
  4530.  
  4531. Once again, we are posting this to find out how to migrate a user library to C
  4532. set/2.  Previously we used the lib util provided by MSC 6.0 and now are wonderi
  4533. ng what to do in C set/2.  In the doc's I haven't found anything to assist me i
  4534. n this change.
  4535.  
  4536.                                       Any help would be appreciated
  4537.  
  4538. Tom Hobbs Bituminous Insurance Co.
  4539.  
  4540. ----- C-SET2 CFORUM appended at 16:26:14 on 92/08/17 GMT (by MOONEY at TOROLAB6)
  4541. Subject: Migrating from MSC 6.0 with respect to Library
  4542. Ref:     Append at 15:03:37 on 92/08/17 GMT (by IL03484 at OS2CUST)
  4543.  
  4544. The LIB utility comes with WorkFrame/2.
  4545.  
  4546. dave
  4547.  
  4548. ----- C-SET2 CFORUM appended at 16:43:36 on 92/08/17 GMT (by PETT at TOROLAB6)
  4549. Subject: Migrating from MSC 6.0 with respect to Library
  4550. Ref:     Append at 15:03:37 on 92/08/17 GMT (by IL03484 at OS2CUST)
  4551.  
  4552. The LIB utility is part of Workframe/2.
  4553.  
  4554. Roger Pett
  4555.  
  4556. ----- C-SET2 CFORUM appended at 16:59:04 on 92/08/17 GMT (by JYFREEMA at ATLVMIC1)
  4557. Subject: printf() discussion
  4558. Ref: None
  4559.  
  4560. Where do I find a discussion of printf that explains that <\n> is
  4561. required at end of each string.  I have experienced odd behavior
  4562. with the function when not including the newline character.  Now I
  4563. would like an explanation of why? Neither the online doc nor C-set
  4564. user guide offers any insight.
  4565.  
  4566. Jennifer Y. Freeman
  4567. NSC Mktg Support Rep
  4568. Networking Unit
  4569.  
  4570. ----- C-SET2 CFORUM appended at 18:19:07 on 92/08/17 GMT (by A157623 at OS2CUST)
  4571. Subject: Code Behavior
  4572.  
  4573. I don't really want to change the code at all and printf statements are not an
  4574. option to re-introduce into a several hundred thousand line system|  What we
  4575. expect is functionality similar to Codeview.  I have brought my system to its
  4576. knees running one debug session, can I really afford to start a new debug
  4577. session for each child task under my main (several are started)?
  4578.  
  4579. As for the callee-caller problem, these are simple spawn and printf programs -
  4580. a single line of code each, no PM involved.  Under the debugger I can see the
  4581. output of the called task but not if executed from the command line.  Perhaps
  4582. the CSD would help.  How can I get it sent to me?
  4583.  
  4584. Larry Mason
  4585. Texas Instruments
  4586.  
  4587. ----- C-SET2 CFORUM appended at 23:24:03 on 92/08/17 GMT (by BIGBILL at TOROLAB6)
  4588. Subject: printf() discussion
  4589. Ref:     Append at 16:59:04 on 92/08/17 GMT (by JYFREEMA at ATLVMIC1)
  4590.  
  4591. It's not really odd behaviour, look for something about 'buffering'
  4592. in the library section.  In particular, the setbuf() and setvbuf()
  4593. functions.
  4594.  
  4595. Bill Sarantakos    OS/2 C Compiler Development     Toronto, Ontario
  4596.  
  4597. ----- C-SET2 CFORUM appended at 15:09:28 on 92/08/18 GMT (by GERSTLE at LEXVMK)
  4598. Subject: Code Behavior
  4599. Ref:     Append at 18:19:07 on 92/08/17 GMT (by A157623 at OS2CUST)
  4600.  
  4601. Larry,
  4602. Send me your phone number and we can pursue this a little more directly
  4603. (and hopefully more efficiently).
  4604. Pat Gerstle
  4605.  
  4606. ----- C-SET2 CFORUM appended at 17:22:55 on 92/08/18 GMT (by PNWB016 at HONE84)
  4607. Subject: _msize
  4608.  
  4609. Is there a function in C/Set equilivant to the _msize function in
  4610. Microsoft C 6.0? (For those who don't know, _msize returns the
  4611. size of a malloced area.)
  4612.  
  4613. Thanks in advance.
  4614.  
  4615. Wayne Holmes
  4616. U S WEST Communications
  4617.  
  4618. ----- C-SET2 CFORUM appended at 19:16:32 on 92/08/18 GMT (by WZ00533 at OS2CUST)
  4619. Subject: Setting the time
  4620.  
  4621. Is there a function call in C that will allow me to set the system time and
  4622. date?
  4623.  
  4624. Thanks,
  4625.  
  4626. Dave Ferrey - Bethlehem Steel Corp - Bethlehem PA
  4627.  
  4628. ----- C-SET2 CFORUM appended at 22:26:58 on 92/08/18 GMT (by TCSC086 at OS2CUST)
  4629. Subject: SOM compiler settings.
  4630. Ref: Append at 20:15:54 on 92/07/03 GMT (by XXNOVA24 at TORVMCOP)
  4631.  
  4632. Was scanning the forum and ran across this thread:
  4633.  
  4634. IS there a RECOMMENDED profile for the creation of SOM Classes??
  4635. How about Som applications?
  4636.  
  4637. Better yet, how about Workplace Profile Options??
  4638.  
  4639. I pieced mine together from the examples. I also spent an inordinate amount
  4640. of time attempting to compile the Redbook SOM example (PWFolder). I finally
  4641. just threw it away and started from scratch. Highly recommended.
  4642.  
  4643. EVEN BETTER: How about SOMe PROFILES placed here on the forum?? Stumbling
  4644. around in the darkness is fun until you see a deadline approaching fast.
  4645.  
  4646. Ideally, profiles for SOM Class, SOM Dll, WPShell Class, SQL/DBM compilation,
  4647. etc.
  4648.  
  4649. It seems I run my code (SOM, DBM, COMMangler) through so many PREcompilers
  4650. -- it looks a bit worn by the time it makes it to C!
  4651.  
  4652. Dan Lundy          Time Customer Service, Inc.                      Tampa, Fl
  4653.  
  4654. ----- C-SET2 CFORUM appended at 22:28:59 on 92/08/18 GMT (by TCSC086 at OS2CUST)
  4655. Subject: CSD 11
  4656.  
  4657. Has anyone here USED it???
  4658.  
  4659. Dan Lundy          Time Customer Service, Inc.                      Tampa, Fl
  4660.  
  4661. ----- C-SET2 CFORUM appended at 12:27:06 on 92/08/19 GMT (by MOONEY at TOROLAB6)
  4662. ..... C-SET2 CFORUM modified at 13:00:04 on 92/08/20 GMT (by MOONEY at TOROLAB6)
  4663. Subject: _msize
  4664. Ref:     Append at 17:22:55 on 92/08/18 GMT (by PNWB016 at HONE84)
  4665.  
  4666. | Bzzzzt, but thanks for playing, dave.  Wrong:
  4667.  
  4668. #define _msize(p)  ((unsigned)((char *)(p)-16))
  4669.  
  4670. | Right:
  4671. |
  4672. |  #define _msize(p) (*((unsigned *)p - 4))
  4673.  
  4674. dave
  4675.  
  4676. ----- C-SET2 CFORUM appended at 14:09:31 on 92/08/19 GMT (by PNWB016 at HONE85)
  4677. Subject: CSD 11
  4678. Ref: Append at 22:28:59 on 92/08/18 GMT (by TCSC086 at OS2CUST)
  4679.  
  4680. Dan: We have it installed here... so far it SEEMS to be working
  4681. fine. (At least all the bugs we have found so far have been bugs
  4682. in our code, not in the compiler.)
  4683.  
  4684. Wayne "But we keep a copy of the origional C/Set just in case"
  4685. Holmes
  4686.  
  4687. ----- C-SET2 CFORUM appended at 14:09:58 on 92/08/19 GMT (by PNWB016 at HONE85)
  4688. Subject: _msize
  4689. Ref: Append at 12:27:06 on 92/08/19 GMT (by MOONEY at TOROLAB6)
  4690.  
  4691. Dave: Thanks! I forwarded your message to the programmer who asked
  4692. the question and he is VERY grateful.
  4693.  
  4694. Wayne "Chalk up another one for the OS2BBS" Holmes
  4695. U S WEST Communications
  4696.  
  4697. ----- C-SET2 CFORUM appended at 15:57:09 on 92/08/19 GMT (by AMELINE at TOROLAB6)
  4698. Subject: CSD 11
  4699. Ref:     Append at 14:09:31 on 92/08/19 GMT (by PNWB016 at HONE85)
  4700.  
  4701.    We're *very* careful about what changes to the code go into the CSD.
  4702. Every change has to be inspected by at least 2 other developers before
  4703. it gets integrated. The resulting compiler then undergoes quite extensive
  4704. testing. We have a 30 step checklist to make sure that we don't forget
  4705. anything.
  4706.  
  4707.    We want to be as sure as we can that a CSD will not cause any new
  4708. bugs.
  4709.  
  4710. Regards,
  4711. Ian Ameline
  4712.  
  4713. ----- C-SET2 CFORUM appended at 16:36:18 on 92/08/19 GMT (by TCSC086 at OS2CUST)
  4714. Subject: CSD 11
  4715. Ref: Append at 15:57:09 on 92/08/19 GMT (by AMELINE at TOROLAB6)
  4716.  
  4717. Ian,
  4718.  I DO appreciate the care and attention devoted to the CSDs. I intend to
  4719. apply #11 but, like Wayne, KEEP a previous version safely tucked away.
  4720.  
  4721. I think the word BETA had its desired effect on me: caution!
  4722.  
  4723. Dan Lundy          Time Customer Service, Inc.                      Tampa, Fl
  4724.  
  4725. ----- C-SET2 CFORUM appended at 21:57:22 on 92/08/19 GMT (by XXPRMN01 at TORVMCOP)
  4726. Subject: CSD 11
  4727. Ref:     Append at 16:36:18 on 92/08/19 GMT (by TCSC086 at OS2CUST)
  4728.  
  4729. Yep, applied it last week and have run close to 250,000 lines of code
  4730. through it without problem.  In fact the last couple of CSD's have
  4731. resulted in the code coming in exactly at the same size with just a
  4732. run through which tends to indicate that the stuff that was working
  4733. correctly before didn't break.  Hope this helps alleviate some fears.
  4734. And, the C Set crew is pretty ruthless when it comes to clean builds
  4735. and tight code.  It is an attitude that is pretty amazing.
  4736.  
  4737. Matt Smith, Prominare Inc.
  4738.  
  4739. ----- C-SET2 CFORUM appended at 00:08:27 on 92/08/21 GMT (by UDSS013 at OS2CUST)
  4740. Subject: Setting the time
  4741.  
  4742. |  Is there a function call in C that will allow me to set the system time a |
  4743. |  date?                                                                     |
  4744. |                                                                            |
  4745. |  Thanks,                                                                   |
  4746.  
  4747. The OS/2 API DosSetDateTime will do the trick.  Note that this isn't a C
  4748. library call, but is part of the OS/2 API that is callable from C.  Perhaps
  4749. I'm picking nits, but it will make a difference when looking for the
  4750.  
  4751. Gary Murphy
  4752.  
  4753. ----- C-SET2 CFORUM appended at 14:50:16 on 92/08/24 GMT (by WZ00533 at OS2CUST)
  4754. Subject: Setting the time
  4755. Ref: Append at 00:08:27 on 92/08/21 GMT (by UDSS013 at OS2CUST)
  4756.  
  4757. Thanks for the tip, I just found DosSetDateTime in the referecnce.
  4758. Thanks again.
  4759.  
  4760. ----- C-SET2 CFORUM appended at 15:33:17 on 92/08/25 GMT (by A157623 at OS2CUST)
  4761. Subject: Code Behavior
  4762.  
  4763. Has anyone had problems with scanf?  I have tried fscanf and sscanf with
  4764. the first format being %s.  The resultant variable contains 2 nulls at the
  4765. beginning and then the rest of the data (ie, the first 2 bytes are nulled
  4766. out).  Consistent and predictable.
  4767.  
  4768. For Pat Gerstle : (214)575-2483
  4769.  
  4770. Larry Mason
  4771. Texas Instruments
  4772.  
  4773. ----- C-SET2 CFORUM appended at 18:10:38 on 92/08/25 GMT (by PRCI041 at OS2CUST)
  4774. Subject: Service not recogizing LAN Drives
  4775.  
  4776. I just attempted to install the 8B CSD to my copy of C Set/2 that is installed
  4777. on my T: LAN drive.  The drive itself is private to me and C Set/2 installed
  4778. on it very nicely.  However when I run A:\Service to install the CSD, it finds
  4779. only my C: D: and E: drives.  As a result, it states that there is nothing
  4780. to Service.  (I am logged on to the LAN have have access to the T:\IBMC
  4781. directory.)  I checked the os2.ini file and found an entry for IBMCINST.  The
  4782. value for DIR is T:\IBMC.
  4783.  
  4784. One other thing.  I originally had the compiler on S:\IBMC and recently moved
  4785. it to T:.  I updated os2.ini to reflect this.  Are there other install files
  4786. or logs that need to be updated?   The file SYSLEVEL.CS2 is located in the
  4787. T:\IBMC directory.
  4788.  
  4789. Will Service support LAN drives?  It seems it ought to for this type of
  4790. product.
  4791.  
  4792. Mark Polly - Progressive Insurance
  4793.  
  4794. ----- C-SET2 CFORUM appended at 18:32:09 on 92/08/25 GMT (by SDETWEIL at DETVMIC4)
  4795. Subject: Migrating from MSC 6.0 with respect to Library
  4796. Ref:     Append at 15:03:37 on 92/08/17 GMT (by IL03484 at OS2CUST)
  4797.  
  4798. LIB is there in IBMWF/BIN just like always..
  4799.  
  4800. Sam
  4801.  
  4802. ----- C-SET2 CFORUM appended at 20:06:08 on 92/08/25 GMT (by PNWB016 at HONE84)
  4803. Subject: Service not recogizing LAN Drives
  4804. Ref: Append at 18:10:38 on 92/08/25 GMT (by PRCI041 at OS2CUST)
  4805.  
  4806. Mark: I ran into the same thing... the current word is that
  4807. the "service" program does NOT support LAN drives. I wrote up
  4808. a PASR and had my SE submit it. If we are lucky this will be
  4809. fixed before the next century. <g>
  4810.  
  4811. Wayne "Are PASRs just a way for customers to take out their
  4812. frustrations?" Holmes
  4813.  
  4814. ----- C-SET2 CFORUM appended at 20:12:28 on 92/08/25 GMT (by V$I33246 at AUSVMV)
  4815. Subject: MKTEMP???
  4816.  
  4817. In C/2, there was the mktemp function, which would create a unique
  4818. filename from a given template.  Is there anything like that available
  4819. in C-Set or OS/2?  Or does someone have an routine that does this?
  4820. Tmpnam anf tempnam are not acceptable; the file needs to be permanent
  4821. instead of temporary.
  4822.  
  4823. Mike Zrubek    Austin, Texas
  4824.  
  4825. ----- C-SET2 CFORUM appended at 21:01:04 on 92/08/25 GMT (by FWBROWN at CARVM3)
  4826. Subject: C Set/2 Installation
  4827.  
  4828. I got the CSETA PACKAGE from the OS2PROD2 disk a couple of weeks ago
  4829. and just had the opportunity to unpack the files and install it today.
  4830. When I ran INSTALL.EXE, a message box was displayed on the screen with
  4831. the following message:
  4832.  
  4833.      No files were found for the option
  4834.      <A:\INCLUDE.1>, or the files cannot
  4835.      be decompressed with this version
  4836.      of UNPACK.EXE, UNPACK.EXE
  4837.      return code = 1.
  4838.  
  4839. There is no INCLUDE.1 file on my diskette, so either that file was
  4840. omitted or is not being unpacked from one of the other files.  If it
  4841. is the latter, can anyone tell me where to get the appropriate version
  4842. of UNPACK.EXE?  Thanks for any help you can provide.
  4843.  
  4844. Regards, Fred Brown
  4845. Cary ID
  4846.  
  4847. ----- C-SET2 CFORUM appended at 02:40:48 on 92/08/26 GMT (by BIGBILL at TOROLAB6)
  4848. Subject: C Set/2 Installation
  4849. Ref:     Append at 21:01:04 on 92/08/25 GMT (by FWBROWN at CARVM3)
  4850.  
  4851. Please (re)read the package file, you forgot the -d option when creating
  4852. the diskettes.
  4853.  
  4854. Bill Sarantakos    OS/2 C Compiler Development     Toronto, Ontario
  4855.  
  4856. ----- C-SET2 CFORUM appended at 14:15:34 on 92/08/28 GMT (by MIKEK at DALHQIC2)
  4857. Subject: Customer testimonials
  4858.  
  4859. I need testimonials from people who use OS/2 as a development platform.
  4860. I would like to hear from people who program for DOS, Windows, and OS/2
  4861. and why they use OS/2 2.0 as their platform of choice.
  4862. Customer or IBMer testimonials are welcome.
  4863.  
  4864. Please append the information on to the forum or send it directly to
  4865. me if you can.
  4866.  
  4867. Thanks a lot.
  4868.  
  4869. Michael Kaply  Team OS/2 Dallas  PRODIGY MVMF10A
  4870.  
  4871. ----- C-SET2 CFORUM appended at 14:46:48 on 92/08/28 GMT (by SC036696 at AUSVM1)
  4872. Subject: Kernel scheduling problems maybe
  4873. I have developed a DLL which acts as a server, processing messages passed
  4874. from one or more client processes which attach themselves to this DLL.
  4875. This DLL initialization routine creates two queues for each process which
  4876. attaches itself to this. As one can imagine, one queue receives trans-
  4877. action messages from the client process; the second returns transaction
  4878. result messages to that respective process. I have been performing ex-
  4879. haustive testing against this DLL, using various distributions and so to
  4880. simulate read-world conditions. All tests allow multiple processes to
  4881. simultaneously use the DLL. My second to last test simply floods the
  4882. DLL with messages, one after the other, with a 'DosSleep (1)' spacing
  4883. out time between each transaction being sent by each client. Everything
  4884. works fine. When I remove this sleep statement, the test fails. I have
  4885. experienced similar problems when starting multiple processes in a tight
  4886. loop. Things work fine when the loop is slowed down by a DosSleep, if
  4887. even for a single clock tick. But remove the sleep and things are un-
  4888. predictable. I have been unable to find anything I am doing incorrectly,
  4889. which doesn't necessarily mean anything, but is there something I am
  4890. missing. Thanks for any response.
  4891.  
  4892. ----- C-SET2 CFORUM appended at 17:38:53 on 92/08/28 GMT (by IL53645 at OS2CUST)
  4893. Subject: Minimum Install Size
  4894.  
  4895. What is the smallest amount of disk space used to install the Workframe 2 envir
  4896. onment with C/2?  I need to compile a small model short C program for OS/2.  I
  4897. am about out of disk space as I am running OS/2 V2.0, Extended Services, PC Sup
  4898. port (AS400 connectivity), 5250 Emulation, Lan Server, and TCP/IP.  I have the
  4899. old C2 V1.10, Quick C 2.5 and Turbo C++ V3.0 along with the Workframe.
  4900.   Incidently, are there any CSD's out against C2 V1.10 that any one might know
  4901. about?
  4902.  
  4903. ----- C-SET2 CFORUM appended at 18:50:46 on 92/08/28 GMT (by FRANCIS at TOROLAB6)
  4904. Subject: Minimum Install Size
  4905. Ref:     Append at 17:38:53 on 92/08/28 GMT (by IL53645 at OS2CUST)
  4906. From:    Tim Francis -- WorkFrame/2 development
  4907.  
  4908. The recommended minimum disk space for installing WorkFrame is 2 MB.
  4909. (That doesn't include space for the compiler, but assuming you have
  4910. the compiler already loaded a new language profile is only 100 bytes
  4911. or so).  I'm not aware of any CSDs for the old C/2.  -tim
  4912.  
  4913. ----- C-SET2 CFORUM appended at 19:19:25 on 92/08/28 GMT (by WEEKS at AUSVM2) -
  4914. Subject: CSDs for C/2 1.1
  4915. Ref:     Append at 17:38:53 on 92/08/28 GMT (by IL53645 at OS2CUST)
  4916.  
  4917. It is my understanding that C/2 has alway been as ASIS product,
  4918. no support supplied or planned (from the very beginning).
  4919.  
  4920. Craig Weeks
  4921. LAN Systems Performance (DCE)
  4922. Austin, Texas
  4923.  
  4924. ----- C-SET2 CFORUM appended at 20:11:30 on 92/08/28 GMT (by UDSS013 at OS2CUST)
  4925. Subject: MKTEMP???
  4926.  
  4927. |  In C/2, there was the mktemp function, which would create a unique        |
  4928. |  filename from a given template.  Is there anything like that available    |
  4929. |  in C-Set or OS/2?  Or does someone have an routine that does this?        |
  4930.  
  4931. Take a look at the OS/2 API 'DosEditName'.
  4932.  
  4933. Gary Murphy
  4934.  
  4935. ----- C-SET2 CFORUM appended at 22:20:16 on 92/08/28 GMT (by XXNOVA24 at TORVMCOP)
  4936. Subject: MKTEMP???
  4937. Ref:     Append at 20:11:30 on 92/08/28 GMT (by UDSS013 at OS2CUST)
  4938.  
  4939. Use the'tmpnam' from the <stdio.h>
  4940. It is an SAA Level 2 function.
  4941.  
  4942. Geza Szivos
  4943. NOVACOR Chemicals (403)-290-6583
  4944. NHO-32 801-7th Ave Calgary, Alberta, CANADA  T2P 2N6
  4945.  
  4946. ----- C-SET2 CFORUM appended at 04:23:16 on 92/08/29 GMT (by SDETWEIL at DETVMIC4)
  4947. Subject: Kernel scheduling problems maybe
  4948. Ref:     Append at 14:46:48 on 92/08/28 GMT (by SC036696 at AUSVM1)
  4949.  
  4950. What do you mean by "doesn't work", what are the symptoms of the
  4951. problem?
  4952.  
  4953. Sam
  4954.  
  4955. ----- C-SET2 CFORUM appended at 15:46:46 on 92/08/29 GMT (by TCSC086 at OS2CUST)
  4956. Subject: CSDs for C-SET2 Redux
  4957.  
  4958. I recently grabbed the (BETA) CSD11 from the library. However, there is
  4959. a CSD13 on Compuserve. Did I miss something or am I just confusing the
  4960. various products and their CSDs???
  4961.  
  4962. C-S-D  (Confusing Software Developers #xx)<g>!
  4963.  
  4964. Dan Lundy          Time Customer Service, Inc.                      Tampa, Fl
  4965.  
  4966. ----- C-SET2 CFORUM appended at 16:18:13 on 92/08/29 GMT (by BIGBILL at TOROLAB6)
  4967. Subject: CSDs for C-SET2 Redux
  4968. Ref:     Append at 15:46:46 on 92/08/29 GMT (by TCSC086 at OS2CUST)
  4969.  
  4970. I know they've been trying to get CSD013 out recently, so it sounds
  4971. like it was put out there between the time you got 11 and when you
  4972. checked on Compuserve.
  4973.  
  4974. Bill Sarantakos    OS/2 C Compiler Development     Toronto, Ontario
  4975.  
  4976. ----- C-SET2 CFORUM appended at 11:44:13 on 92/08/31 GMT (by XXCDSX26 at TORVMCOP)
  4977. Subject: CSDs for C-SET2 Redux
  4978. Ref:     Append at 15:46:46 on 92/08/29 GMT (by TCSC086 at OS2CUST)
  4979.  
  4980. Dan:
  4981.  
  4982. Nope, you are not confusing products.
  4983.  
  4984. BTW, CSD13 never made it to Compuserve, but CS0014 will be there
  4985. tomorrow.
  4986.  
  4987. Michael Harper - Cdn Depository for Securities, Ltd
  4988.  
  4989. ----- C-SET2 CFORUM appended at 15:28:39 on 92/08/31 GMT (by XXNOVA24 at TORVMCOP)
  4990. Subject: CSDs for C-SET2 Redux
  4991. Ref:     Append at 11:44:13 on 92/08/31 GMT (by XXCDSX26 at TORVMCOP)
  4992.  
  4993. Would it be possible to post the fixed bugs here with every upload,
  4994. than we can save some time and money by downloading only the
  4995. important CSD-s?
  4996.  
  4997. PS: at least the Toronto guys are posting CSD-s . wouls be nice to
  4998. see this from other teams too.
  4999.  
  5000. Geza Szivos
  5001. NHO-32 801-7th Ave Calgary, Alberta, CANADA  T2P 2N6
  5002.  
  5003. ----- C-SET2 CFORUM appended at 18:58:30 on 92/08/31 GMT (by BRENT at DALVM41B)
  5004. Subject: CSD0014
  5005. Ref: Append at 15:28:39 on 92/08/31 GMT (by XXNOVA24 at TORVMCOP)
  5006.  
  5007. C Set/2 CSD0014 is now available on the OS/2 BBS for download.  This version
  5008. includes fixes for the following APAR's (list taken from CSDFIXES.LST file on
  5009. disk #1):
  5010.  
  5011.   C SET/2 RELEASE 1.0 FIXES
  5012.   _________________________
  5013.  
  5014.   +-----------+---------------------------------------------------------------+
  5015.   | APAR      | PROBLEM DESCRIPTION                                           |
  5016.   | NUMBER    |                                                               |
  5017.   +-----------+---------------------------------------------------------------+
  5018.   | PJ03523   | Optimization problem: bad register selection causes general   |
  5019.   |           | protection fault at runtime.                                  |
  5020.   +-----------+---------------------------------------------------------------+
  5021.   | PJ03662   | Optimization problem: bad register selection around a call    |
  5022.   |           | causes incorrect output at runtime.                           |
  5023.   +-----------+---------------------------------------------------------------+
  5024.   | PJ03682   | Optimization problem: tail call optimization was altering a   |
  5025.   |           | register erroneously.                                         |
  5026.   +-----------+---------------------------------------------------------------+
  5027.   | PJ03767   | The compiler could not open files with names containing DBCS  |
  5028.   |           | characters where the second byte of the characters was 0x5C.  |
  5029.   +-----------+---------------------------------------------------------------+
  5030.   | PJ03923   | Optimization problem: generated floating-point code was       |
  5031.   |           | causing the floating point register stack to overflow or      |
  5032.   |           | underflow.                                                    |
  5033.   +-----------+---------------------------------------------------------------+
  5034.   | PJ03948   | Optimization problem: multiplying by constant negative        |
  5035.   |           | numbers which are powers of 2 was causing incorrect code to   |
  5036.   |           | be generated.                                                 |
  5037.   +-----------+---------------------------------------------------------------+
  5038.   | PJ03952   | Optimization problem: multiplying by constants that are near  |
  5039.   |           | powers of 2 was causing incorrect code to be generated.       |
  5040.   +-----------+---------------------------------------------------------------+
  5041.   | PJ03957   | Compiler was emitting object records longer than the linker's |
  5042.   |           | 1024 byte limit.  This causes the linker to produce the       |
  5043.   |           | message "L1057: data record too large".  NOTE: There is more  |
  5044.   |           | than one cause for this symptom and there is another fix      |
  5045.   |           | coming soon.                                                  |
  5046.   +-----------+---------------------------------------------------------------+
  5047.   | NOAPAR    | Compile time performance was improved.                        |
  5048.   +-----------+---------------------------------------------------------------+
  5049.   | NOAPAR    | The compiler was unable to find files in a subdirectory on a  |
  5050.   |           | LAN drive.                                                    |
  5051.   +-----------+---------------------------------------------------------------+
  5052.   | NOTE:  The fixes listed above were included in CSD0008.                   |
  5053.   +-----------+---------------------------------------------------------------+
  5054.   | PJ04295   | The kbhit library function was not working.                   |
  5055.   +-----------+---------------------------------------------------------------+
  5056.   | NOTE:  The fixes listed above were included in CSD0009.                   |
  5057.   +-----------+---------------------------------------------------------------+
  5058.   | PJ04465   | The cprintf, fprintf, printf, and sprintf functions were not  |
  5059.   |           | printing floating-point values between 0.5 and 1.0 correctly  |
  5060.   |           | when zero precision was specified.                            |
  5061.   +-----------+---------------------------------------------------------------+
  5062.   | NOTE:  The fixes listed above were included in CSD0010.                   |
  5063.   +-----------+---------------------------------------------------------------+
  5064.   | PJ04602   | Optimization problem: simple loops with induction variable    |
  5065.   |           | increments greater than one were being incorrectly turned     |
  5066.   |           | into memset or memcpy builtin function calls.                 |
  5067.   +-----------+---------------------------------------------------------------+
  5068.   | PJ04604   | When the compiler turned switch statements into jump tables,  |
  5069.   |           | the default code segment was always being referenced even if  |
  5070.   |           | the function containing the switch statement was specified in |
  5071.   |           | an alloc_text pragma.                                         |
  5072.   +-----------+---------------------------------------------------------------+
  5073.   | PJ04652   | Optimization problem: the stack pointer was not being decre-  |
  5074.   |           | mented before an indirect _Optlink call where the return      |
  5075.   |           | value was being used as a parameter to a tail call.           |
  5076.   +-----------+---------------------------------------------------------------+
  5077.   | PJ04674   | When #pragma handler was specified for a 32-bit callback      |
  5078.   |           | function the compiler generated bad code for copying the      |
  5079.   |           | parameters from the 16-bit stack to the 32-bit stack.         |
  5080.   +-----------+---------------------------------------------------------------+
  5081.   | NOTE:  The fixes listed above were included in CSD0011.                   |
  5082.   +-----------+---------------------------------------------------------------+
  5083.   | PJ04811   | Incorrect code was being generated for a complicated          |
  5084.   |           | expression where a short variable was being added to the      |
  5085.   |           | address of an element of an array of structures.              |
  5086.   +-----------+---------------------------------------------------------------+
  5087.   | PJ05088   | Optimization problem: the compiler was trapping when opti-    |
  5088.   |           | mizing a loop containing a divide and modulo operation with   |
  5089.   |           | the same operands.                                            |
  5090.   +-----------+---------------------------------------------------------------+
  5091.   | PJ05100   | Optimization problem: incorrect code was being generated for  |
  5092.   |           | a switch statement containing a case zero where the switch    |
  5093.   |           | variable had to be converted to an int from an unsigned char. |
  5094.   +-----------+---------------------------------------------------------------+
  5095.   | PJ05124   | Incorrect code was being generated when the result of com-    |
  5096.   |           | paring two shorts with less than or greater than operators    |
  5097.   |           | was stored into an integer variable.                          |
  5098.   +-----------+---------------------------------------------------------------+
  5099.   | PJ05140   | Incorrect code was being generated for _Optlink functions     |
  5100.   |           | that have a number of floating-point or aggregate parameters  |
  5101.   |           | followed by integer parameters.                               |
  5102.   +-----------+---------------------------------------------------------------+
  5103.   | NOTE:  The fixes listed above were included in CSD0012.                   |
  5104.   +-----------+---------------------------------------------------------------+
  5105.   | PJ05013   | The compiler was trapping when trying to compile a compli-    |
  5106.   |           | cated expression where the address of an element of an array  |
  5107.   |           | of structures was indexed and then a member of the structure  |
  5108.   |           | was accessed.                                                 |
  5109.   +-----------+---------------------------------------------------------------+
  5110.   | PJ04674   | The problem with #pragma handler on callback functions was    |
  5111.   |           | really only a problem with _Far16 _Cdecl callback functions.  |
  5112.   |           | So the fix in CSD0011 broke the case where #pragma handler    |
  5113.   |           | was used on a _Far16 _Pascal callback function.  Now both     |
  5114.   |           | work.                                                         |
  5115.   +-----------+---------------------------------------------------------------+
  5116.   | PJ04390   | The C runtime termination routine was not freeing all storage |
  5117.   |           | allocated during initialization.                              |
  5118.   +-----------+---------------------------------------------------------------+
  5119.   | PJ05087   | Partial static initialization of a structure containing a     |
  5120.   |           | union containing a structure containing bitfields was not     |
  5121.   |           | working.                                                      |
  5122.   +-----------+---------------------------------------------------------------+
  5123.   | NOAPAR    | Some enhancements were made to the compiler to reduce memory  |
  5124.   |           | usage during compilation and therefore reduce compile times.  |
  5125.   +-----------+---------------------------------------------------------------+
  5126.   | NOTE:  The fixes listed above were included in CSD0013.                   |
  5127.   +-----------+---------------------------------------------------------------+
  5128.   | PJ05087   | The assembler listing was incorrect after the real problem    |
  5129.   |           | was fixed in CSD0013.                                         |
  5130.   +-----------+---------------------------------------------------------------+
  5131.   | PJ05225   | Optimization problem: the compiler was trapping when opti-    |
  5132.   |           | mizing a procedure containing a loop nested within another    |
  5133.   |           | loop where an invariant in the inner loop was an induction    |
  5134.   |           | variable for the outer loop.                                  |
  5135.   +-----------+---------------------------------------------------------------+
  5136.   | PJ05230   | Optimization problem: incorrect code was generated for an     |
  5137.   |           | _Optlink function containing a loop where an invariant was a  |
  5138.   |           | register parameter and it was used in a conditional           |
  5139.   |           | expression within the loop.                                   |
  5140.   +-----------+---------------------------------------------------------------+
  5141.   | PJ05393   | Optimization problem: the compiler was trapping when com-     |
  5142.   |           | piling code with consecutive calls to strcat with the same    |
  5143.   |           | first parameter.                                              |
  5144.   +-----------+---------------------------------------------------------------+
  5145.   | PJ05431   | Optimization problem: the compiler was incorrectly removing a |
  5146.   |           | store to a local variable before a loop.                      |
  5147.   +-----------+---------------------------------------------------------------+
  5148.   | PJ05450   | The thunk prolog routine was using 64K too much stack in      |
  5149.   |           | certain situations, and missing a stack probe in certain      |
  5150.   |           | situations.                                                   |
  5151.   +-----------+---------------------------------------------------------------+
  5152.   | NOTE:  The fixes listed above were included in CSD0014.                   |
  5153.   +---------------------------------------------------------------------------+
  5154.  
  5155. Brent Allen - IBM OS/2 Base Services Support
  5156.  
  5157. ----- C-SET2 CFORUM appended at 21:33:01 on 92/08/31 GMT (by XXNOVA24 at TORVMCOP)
  5158. Subject: CSD0014
  5159. Ref:     Append at 18:58:30 on 92/08/31 GMT (by BRENT at DALVM41B)
  5160.  
  5161. Thank you.
  5162.    I'll download it. this listing shows that They are working
  5163. hard to fix them all.
  5164.  
  5165. Just one more question. How the CSD-s are organized? Is it still
  5166. like in the old way that appending one after the other? I mean
  5167. if I have the CSD0011, (one and half disk) is it enough to down-
  5168. load the second part since they just appending more and more?
  5169.  
  5170. Geza Szivos
  5171. NOVACOR Chemicals (403)-290-6583
  5172. NHO-32 801-7th Ave Calgary, Alberta, CANADA  T2P 2N6
  5173.  
  5174. ----- C-SET2 CFORUM appended at 21:42:16 on 92/08/31 GMT (by AMELINE at TOROLAB6)
  5175. Subject: CSD0014
  5176. Ref:     Append at 21:33:01 on 92/08/31 GMT (by XXNOVA24 at TORVMCOP)
  5177.  
  5178.    No. We completely rebuild the compiler, and all modules which have
  5179. changed are put on the CSD. In this case, you need the complete CSD.
  5180. In any case, taking parts from one CSD and mixing them with parts from
  5181. others is unsupported.
  5182.  
  5183. Ian Ameline
  5184.  
  5185. ----- C-SET2 CFORUM appended at 21:59:38 on 92/08/31 GMT (by XXNOVA24 at TORVMCOP)
  5186. Subject: CSD0014
  5187. Ref:     Append at 21:42:16 on 92/08/31 GMT (by AMELINE at TOROLAB6)
  5188.  
  5189. Thanks, I keep this in mind.
  5190.  
  5191. Geza Szivos
  5192. NOVACOR Chemicals (403)-290-6583
  5193. NHO-32 801-7th Ave Calgary, Alberta, CANADA  T2P 2N6
  5194.  
  5195. ----- C-SET2 CFORUM appended at 13:15:26 on 92/09/02 GMT (by WZ00545 at OS2CUST)
  5196. Subject: CSD0014 PROBLEM
  5197.  
  5198. When attempting to apply csd0014 the service program rejects the
  5199. second disk. It is looking for csd00013 vol 2, the CSF$DISK file on
  5200. volume 2 says it's CS00014 but Volume 1 say CS00013.  I now have a
  5201. machine stuck halfway through the install and nowhere to
  5202. go.............HELP!!!!!
  5203.  
  5204. BRIAN K. SPEARS - KONICA BUSINESS MACHINES USA. INC.
  5205.  
  5206. ----- C-SET2 CFORUM appended at 13:19:46 on 92/09/02 GMT (by IL54396 at OS2CUST)
  5207. ..... C-SET2 CFORUM modified at 13:29:24 on 92/09/02 GMT (by IL54396 at OS2CUST)
  5208. Subject: _msize
  5209. This APPEND was deleted at 09:29:24 on 09/02/92 EST.
  5210.  
  5211. ----- C-SET2 CFORUM appended at 14:59:15 on 92/09/03 GMT (by XXSUNL45 at TORVMCOP)
  5212. Subject: Customer testimonials
  5213. Ref:     Append at 14:15:34 on 92/08/28 GMT (by MIKEK at DALHQIC2)
  5214.  
  5215. I maintain a PC front end of a host based E-Mail system.  The program is
  5216. written in assembler and C for DOS.  It communicates with PC/3270 v2
  5217. through HLLAPI and runs in various environments including Software
  5218. Carousel.
  5219.  
  5220. Reason why I'm using OS/2 is because it runs MSC 6.00AX without a
  5221. problem and program bugs that used to hang the system don't.  I'm also
  5222. able to simulate various environments the program runs in without the
  5223. need to reboot the machine to load new environments.  It's like having
  5224. multiple PCs in one.  A great time saver.
  5225.  
  5226. regards,
  5227. Wilf Lee
  5228.  
  5229. ----- C-SET2 CFORUM appended at 15:06:39 on 92/09/03 GMT (by XXSUNL45 at TORVMCOP)
  5230. Subject: CSD availability
  5231.  
  5232. How about the Toronto C team also post CSD on the Toronto IBM BBS?
  5233.  
  5234. Wilf Lee
  5235.  
  5236. ----- C-SET2 CFORUM appended at 18:04:37 on 92/09/03 GMT (by V$IBTIGA at BCRVMPC1)
  5237. Subject: Multiple symbols
  5238.  
  5239. I have a customer who is creating some functions that have the same name
  5240. as some of the OS/2 APIs.  For example, he is creating his own function
  5241. called DosOpen.  During link, he is naturally getting an L2025 error
  5242. (multiple symbols).
  5243.  
  5244. He is aware why he is getting the error and he wouldn't tell me why he
  5245. needs to name his functions the same as the APIs.  He has used /NOI /NOD
  5246. and /NOE, but with no success.  Is there any way to tell the linker to
  5247. ignore the APIs in the library if his function uses the same name?
  5248.  
  5249. Larry Moore     PSPC-Boca Tech Interface Group
  5250.  
  5251. ----- C-SET2 CFORUM appended at 21:35:53 on 92/09/03 GMT (by XXBCTE25 at TORVMCOP)
  5252. Subject: C Set/2 special price?
  5253. Is there any plan to re-introduce or extend the special offer for the
  5254. OS/2 tools? I thought IBM Canada was offering more or less the same deal
  5255. as the U.S., but was informed that the offer expired 3 days ago! The
  5256. amount being charged for the whole package would require I submit a
  5257. business case, which means I can't get it.  Under the special offer I
  5258. would have been able to expense it.
  5259.  
  5260. Claude Biron
  5261.  
  5262. ----- C-SET2 CFORUM appended at 11:38:18 on 92/09/04 GMT (by WRL0001 at OS2CUST)
  5263. Subject: Documentation Trends: Online vs Hardcopy
  5264. Ref: Append at 13:22:09 on 92/06/24 GMT (by FRYERK at TOROLAB6)
  5265.  
  5266. Obviously there are times for hardcopy documentation and times for online.
  5267.  
  5268. For normal working conditions, when I need specific information about an API
  5269. call, a standard function, or point of language, thoroughly cross-referenced
  5270. (!!!) online help is a great time saver.
  5271.  
  5272. The BIG advantage of hardcopy documentation is that it is so much more amenable
  5273. to browsing.  I find it very valuable to be able to flip through a book now
  5274. and then.  It allows me to become aware of issues, options, and features that
  5275. I would otherwise not think of looking for.
  5276.  
  5277. I think that you can accomplish your documentation goals by providing all of it
  5278. (except instructions on how to get to it initially!) online with the hardcopy
  5279. being available as an option.  This puts the choice where it belongs -- with
  5280. the person who has to use it in order to use your product effectively.  The
  5281. only caveat I offer is that it would be important to make the manner and the
  5282. terms on which the documentation is offered ABSOLUTELY clear UP FRONT -- BEFORE
  5283. the user gets the package in the front door and tries to implement it.  If he
  5284. finds out that there is an additional, unexpected step needed to put the
  5285. product into service he will probably not be a happy customer.
  5286.  
  5287. Buzz Cruise - Western Reserve Life
  5288.  
  5289. ----- C-SET2 CFORUM appended at 15:40:24 on 92/09/04 GMT (by PNWB016 at OS2CUST)
  5290. Subject: Documentation Trends: Online vs Hardcopy
  5291. Ref: Append at 11:38:18 on 92/09/04 GMT (by WRL0001 at OS2CUST)
  5292.  
  5293. Buzz: What would you think if IBM gave the the documentation in "softcopy"
  5294. and then delivered the ability to print out an EXACT copy of the manual?
  5295. (This facility should support LAN attached laser printers for the "little
  5296. iron" installation and AFP printers for the "big iron" shops.)
  5297.  
  5298. I have been talking with some of our accounts IBMers about this idea.
  5299. It has the advantage of taking the burden off of IBM of having to deal
  5300. with paper manuals, and makes the customer responsible for keeping all
  5301. the "paper stuff" up to date. (The customer can also make as many copies
  5302. as they want, as long as they are willing to pay for the paper and don't
  5303. violate the copyright laws.)
  5304.  
  5305. The problem for IBM is that they would need to develop a ROBUST printing
  5306. ability for the BookManager .BOO files... something similar to the printing
  5307. that IPF in OS/2 2.0 has. (The IPF printouts are good on an impact printer
  5308. and BEAUTIFUL on a laser.)
  5309.  
  5310. Wayne "Floating a trial balloon" Holmes
  5311. U S WEST Communications
  5312.  
  5313. ----- C-SET2 CFORUM appended at 22:39:23 on 92/09/06 GMT (by THRUMD at SYDVM1)
  5314. Subject: Documentation Trends: Online vs Hardcopy
  5315. Ref:     Append at 15:40:24 on 92/09/04 GMT (by PNWB016 at OS2CUST)
  5316.  
  5317. Yes!
  5318. Dave
  5319.  
  5320. ----- C-SET2 CFORUM appended at 13:04:11 on 92/09/08 GMT (by FRYERK at TOROLAB6)
  5321. Subject: Documentation Trends: Online vs Hardcopy
  5322. Ref:     Append at 15:40:24 on 92/09/04 GMT (by PNWB016 at OS2CUST)
  5323.  
  5324. Actually, the online documentation will be in IPF format, to allow
  5325. contextual help through the EPM interface.  (BookManager format will
  5326. also be available.)  Are you saying that IPF, as it is today,
  5327. prints well enough on most printers to create a decent hardcopy version?
  5328. (That's not disbelief in my "voice"...but I have heard some comments to
  5329. the contrary.)
  5330.  
  5331. What about time?  Some of the documents are quite large (300 pages), and
  5332. would take some time to print.  Would this be a problem for you?
  5333.  
  5334. Thanks for your input.
  5335.  
  5336. Kathryn Fryer
  5337. Toronto Information Development
  5338.  
  5339. ----- C-SET2 CFORUM appended at 14:24:27 on 92/09/08 GMT (by PNWB016 at HONE81)
  5340. Subject: Documentation Trends: Online vs Hardcopy
  5341. Ref: Append at 13:04:11 on 92/09/08 GMT (by FRYERK at TOROLAB6)
  5342.  
  5343. Kathryn: For printing out a couple of pages the IPF print format
  5344. seems fine. We have never printed an entire document, so I can't
  5345. speak for that. (Normally we just print out a couple of pages of
  5346. one of the reference manuals.)
  5347.  
  5348. The problem with IPF is that it isn't "what you see is what you
  5349. get" when printing. OTOH, the documents themselves look very nice
  5350. when they are printed. (Read/2 appears to do the OS/2 equilivant
  5351. of an IEBGENER to the printer. <g>)
  5352.  
  5353. Wayne "I want it all" Holmes
  5354.  
  5355. ----- C-SET2 CFORUM appended at 14:43:49 on 92/09/08 GMT (by PETT at TOROLAB6)
  5356. Subject: Multiple symbols
  5357. Ref:     Append at 18:04:37 on 92/09/03 GMT (by V$IBTIGA at BCRVMPC1)
  5358.  
  5359. Assuming that there is no need to call the OS/2 API's from user code,
  5360. the only way to avoid name conflicts with the API names is to put the
  5361. C Set/2 runtime library into a DLL.
  5362.  
  5363. Roger Pett
  5364.  
  5365. ----- C-SET2 CFORUM appended at 14:58:23 on 92/09/08 GMT (by XXCDSX26 at TORVMCOP)
  5366. Subject: Documentation Trends: Online vs Hardcopy
  5367. Ref:     Append at 13:04:11 on 92/09/08 GMT (by FRYERK at TOROLAB6)
  5368.  
  5369. Kathryn:
  5370.  
  5371. On a laser print the V2.0 IPF does a wonderful job on text.  Try
  5372. it you might like it.
  5373.  
  5374. Michael Harper - Cdn Depository for Securities, Ltd
  5375.  
  5376. ----- C-SET2 CFORUM appended at 15:07:33 on 92/09/08 GMT (by XXNOVA24 at TORVMCOP)
  5377. Subject: Documentation Trends: Online vs Hardcopy
  5378. Ref:     Append at 13:04:11 on 92/09/08 GMT (by FRYERK at TOROLAB6)
  5379.  
  5380. I'm satisfied with the quality of IPF printing too. I never measured
  5381. the time ,or printed anything more than ten pages.
  5382.  
  5383. Geza Szivos
  5384. NOVACOR Chemicals (403)-290-6583
  5385. NHO-32 801-7th Ave Calgary, Alberta, CANADA  T2P 2N6
  5386.  
  5387. ----- C-SET2 CFORUM appended at 21:19:02 on 92/09/08 GMT (by THRUMD at SYDVM1)
  5388. Subject: Documentation Trends: Online vs Hardcopy
  5389. Ref:     Append at 14:58:23 on 92/09/08 GMT (by XXCDSX26 at TORVMCOP)
  5390.  
  5391. IPF prints nice headings, but still uses fixed pitch font (courier)
  5392. for the body text.  Use of a proportional font (preferably user
  5393. selectable typeface and size) would save a lot of paper.
  5394.  
  5395. Dave
  5396.  
  5397. ----- C-SET2 CFORUM appended at 02:59:39 on 92/09/09 GMT (by WZ00730 at OS2CUST)
  5398. Subject: DO I NEED CSD's
  5399.  
  5400. 09/08/92
  5401.  
  5402. WorkFrame/2 1.0 just arrived from the factory.  Does this version
  5403. require any fixes (ie CS00008) ?
  5404.  
  5405. A. Pechinski
  5406. CTA, Inc.
  5407.  
  5408. ----- C-SET2 CFORUM appended at 06:10:48 on 92/09/09 GMT (by XXNOVA24 at TORVMCOP)
  5409. Subject: DO I NEED CSD's
  5410. Ref:     Append at 02:59:39 on 92/09/09 GMT (by WZ00730 at OS2CUST)
  5411.  
  5412. CSD-s are released to the C-set/2 only.
  5413. (CSD0014 is the latest what I knew.)
  5414.  
  5415. Geza Szivos
  5416. NOVACOR Chemicals (403)-290-6583
  5417. NHO-32 801-7th Ave Calgary, Alberta, CANADA  T2P 2N6
  5418.  
  5419. ----- C-SET2 CFORUM appended at 17:00:56 on 92/09/09 GMT (by IL53645 at OS2CUST)
  5420. Subject: AS400 Install
  5421.  
  5422. Has anyone installed the Workframe product on an AS400 using the PC Support
  5423. product for OS2 (also DOS)?
  5424.   I have Workframe and would like to put it over on the AS400 where there is en
  5425. ough disk space.  I already have C/2 and Turbo C++ 3.0 installed there, and whi
  5426. le performance is a little slow, the extra disk space and a 16 MHz token ring h
  5427. elp the speed.
  5428.   I am currently trying to install Microsoft C(++) V7.0, but the token ring con
  5429. nection drops when I get about half way through.  IBM says it might have a prob
  5430. lem with the micro code in the token ring cards at 16 MHz on the AS400.
  5431.   Thanks.
  5432.  
  5433. ----- C-SET2 CFORUM appended at 18:12:13 on 92/09/09 GMT (by FORD at BCRVMPC1)
  5434. Subject: Documentation Trends: Online vs Hardcopy
  5435. Ref:     Append at 14:24:27 on 92/09/08 GMT (by PNWB016 at HONE81)
  5436.  
  5437. Wayne,
  5438.  
  5439. Why do you say that IPFs printing is not WYSIWYG?  That is EXACTLY
  5440. what it is designed to be.
  5441.  
  5442. Ann Ford
  5443. IPF Development
  5444.  
  5445. ----- C-SET2 CFORUM appended at 18:16:23 on 92/09/09 GMT (by FORD at BCRVMPC1)
  5446. Subject: Documentation Trends: Online vs Hardcopy
  5447. Ref:     Append at 21:19:02 on 92/09/08 GMT (by THRUMD at SYDVM1)
  5448.  
  5449. Dave,
  5450.  
  5451. IPF uses the "default font" to display and/or print normal text.
  5452. We have to let the printer define what is its own default font and
  5453. use that.   Your results will vary depending on the printer.
  5454.  
  5455. Choosing fonts for each every printer is a very difficult task.
  5456.  
  5457. Ann Ford
  5458.  
  5459. ----- C-SET2 CFORUM appended at 19:28:16 on 92/09/09 GMT (by V$IRUSSB at BCRVMPC1)
  5460. Subject: Multiple symbols
  5461. Ref:     Append at 18:04:37 on 92/09/03 GMT (by V$IBTIGA at BCRVMPC1)
  5462.  
  5463. First, within the include files that come with the toolkit the OS/2
  5464. functions are already defined.  This alone will cause you problems
  5465. when compiling (unless you avoid including the header files that
  5466. define functions that you are re-defining).  If you get beyond that,
  5467. then you can specify the /NOD (for no Default Library search) option to
  5468. the linker, and then include your own library specification before the
  5469. OS2386.LIB Library.  This should allow you to have your version of system
  5470. functions used instead of those provided with OS/2.
  5471. -Russ
  5472.  
  5473. ----- C-SET2 CFORUM appended at 22:26:48 on 92/09/09 GMT (by THRUMD at SYDVM1)
  5474. Subject: Documentation Trends: Online vs Hardcopy
  5475. Ref:     Append at 18:16:23 on 92/09/09 GMT (by FORD at BCRVMPC1)
  5476.  
  5477. Ann,
  5478. Thanks for the clarification.  That explains why the body text that
  5479. I get is fixed pitch (?courier), but IPF must do something else to
  5480. choose a proportional font (Times Roman for me) for the headings.
  5481. Nevertherless, the next question is how to define the default printer
  5482. font - I have hunted through the printer settings without success.
  5483.  
  5484. (Whoops, apologies for getting off the forum subject)
  5485.  
  5486. Dave
  5487.  
  5488. ----- C-SET2 CFORUM appended at 01:15:00 on 92/09/10 GMT (by PNWB016 at OS2CUST)
  5489. Subject: Documentation Trends: Online vs Hardcopy
  5490. Ref: Append at 18:12:13 on 92/09/09 GMT (by FORD at BCRVMPC1)
  5491.  
  5492. The "problem" (and not a bit one at that) is that the :h1 and :h2 type
  5493. headers are not displayed in the same font as when they are printed.
  5494. (To be honest they look NICER when they are printed, especially with the
  5495. nice BIG font used for the :h1 tags with the underline separator.)
  5496. Additionally the words in the body text flow around the visible help
  5497. window then flow differently when printed.
  5498.  
  5499. Again... these are NOT complaints, my point is that IPF is not WYSIWYG
  5500. like a DeScribe word processor... and I DO NOT expect it to be. OTOH,
  5501. a product that is used to view books SHOULD display those books in
  5502. EXACTLY the format the author intended and then print them in that SAME
  5503. format.
  5504.  
  5505. Does this make more sense? Sorry for any confusion.
  5506.  
  5507. Wayne "IPF ALMOST makes it fun to write application help" Holmes
  5508. U S WEST Communications
  5509.  
  5510. ----- C-SET2 CFORUM appended at 12:36:31 on 92/09/11 GMT (by FORD at BCRVMPC1)
  5511. Subject: Documentation Trends: Online vs Hardcopy
  5512. Ref:     Append at 22:26:48 on 92/09/09 GMT (by THRUMD at SYDVM1)
  5513.  
  5514. Sorry, but I don't know any way for the end user to alter the font.
  5515. I'm not a printer person so I can't answer for how to change the
  5516. printer fonts - maybe someone more knowledgable with that aspect
  5517. can answer it for you.
  5518.  
  5519. Ann Ford
  5520.  
  5521. ----- C-SET2 CFORUM appended at 12:44:23 on 92/09/11 GMT (by FORD at BCRVMPC1)
  5522. Subject: Documentation Trends: Online vs Hardcopy
  5523. Ref:     Append at 01:15:00 on 92/09/10 GMT (by PNWB016 at OS2CUST)
  5524.  
  5525. Yes, Wayne, given that definition of WYSIWYG I have to agree with
  5526. you.  I believe that is what they call "true print fidelity".
  5527.  
  5528. I labeled it WYSIWYG because it now shows all the font changes and the
  5529. pictures (which it didn't before), BUT it doesn't do full book print
  5530. formatting, like paginiation, page numbering, headers and footers,
  5531. etc.
  5532.  
  5533. OTOH, I see what IPF does as an advantage - it formats the information
  5534. for the device it is displaying on - i.e. it reflows the text depending
  5535. on the visible width of the display window, or the printer, rather than
  5536. truncating the text on a printer that is not wide enough, or not filling
  5537. the page on a printer that is wider than the 40 column help window.
  5538. This is what it used to do.  It has always had the facility to
  5539. reflow the text when the window is resized and I see this as a strong
  5540. advantage.
  5541.  
  5542. Anyway, thanks for your input and your support.
  5543.  
  5544. Ann Ford
  5545. IPF Development.
  5546.  
  5547. ----- C-SET2 CFORUM appended at 15:02:26 on 92/09/11 GMT (by TCSC086 at OS2CUST)
  5548. Subject: Documentation Trends: Online vs Hardcopy
  5549. Ref: Append at 01:15:00 on 92/09/10 GMT (by PNWB016 at OS2CUST)
  5550.  
  5551. Okay Wayne,
  5552.  
  5553. >>>
  5554.  a product that is used to view books SHOULD display those books in
  5555.  EXACTLY the format the author intended and then print them in that SAME
  5556.  format.
  5557. >>>
  5558.  
  5559. You get the credit. I believe that your statement above is the first
  5560. formal insistence on the workstation industry's equivalent of :
  5561.  
  5562. THE LETTERBOX ARGUMENT
  5563.  
  5564. It had to happen. Hollywood has been making noises for years about
  5565. LETTERBOX format (you know, the image on the tv that has black at the
  5566. top and bottom) because is allows the viewer to see the movie the
  5567. way the Director/Author desired!!!!
  5568.  
  5569. And, OF COURSE, we all know that IPF documents are MUCH better on
  5570. Laser Disk/CD Rom than Tape/Diskette!!!
  5571.  
  5572. <Poke Poke Grin!!>
  5573.  
  5574. "This document has NOT been colorized so as to preserve the quality
  5575. and richness of the original Sepia(phosphor) tones"!!!
  5576.  
  5577. Dan Lundy          Time Customer Service, Inc.                      Tampa, Fl
  5578.  
  5579. ----- C-SET2 CFORUM appended at 19:17:38 on 92/09/11 GMT (by CHERNOCK at FSHVMX)
  5580. ..... C-SET2 CFORUM modified at 19:26:16 on 92/09/11 GMT (by CHERNOCK at FSHVMX)
  5581. Subject: _beginthread and ACCESS VIOLATION
  5582.  
  5583. | OOPS - meant to go into C-SET2 FORUM
  5584.  
  5585.    Rich
  5586.  
  5587. ----- C-SET2 CFORUM appended at 15:00:03 on 92/09/14 GMT (by UNMT067 at OS2CUST)
  5588. Subject: CSD0014 PROBLEM
  5589. Ref: Append at 13:15:26 on 92/09/02 GMT (by WZ00545 at OS2CUST)
  5590.  
  5591.  (no text entered)
  5592.  
  5593. ----- C-SET2 CFORUM appended at 15:10:09 on 92/09/14 GMT (by UNMT067 at OS2CUST)
  5594. Subject: CSD0014 PROBLEM
  5595. Ref: Append at 13:15:26 on 92/09/02 GMT (by WZ00545 at OS2CUST)
  5596.  
  5597. I think IBM blew it on the CSD #14.  It looks like CSD #14 made no
  5598. changes to the first diskette of CSD #13, so they left the disk id as
  5599. CSD00013.  If you type the files CSF$DISK on both diskettes you will
  5600. see that one is labeled CSD00013 and the other is CSD00014.   You can
  5601. use something like Norton Utilities to updated the "CSF$DISK" file on
  5602. diskette 1 to CSD00014 and the CSD will apply fine.
  5603.  
  5604. Mack McDowell, Unum Life Insurance Co of America
  5605.  
  5606. ----- C-SET2 CFORUM appended at 18:48:02 on 92/09/14 GMT (by PNWB016 at HONE85)
  5607. Subject: Documentation Trends: Online vs Hardcopy
  5608. Ref: Append at 12:44:23 on 92/09/11 GMT (by FORD at BCRVMPC1)
  5609.  
  5610. Ann: Glad my message came through. I REALLY like IPF, and it seems
  5611. that my positive experience with IPF set some VERY high
  5612. expectations for BookManager. To be fair the BM people have the
  5613. cross-platform issue, but at the same time I'm sure every user
  5614. wants BM to exploit their specific platform "to the max".
  5615.  
  5616. Wayne
  5617.  
  5618. ----- C-SET2 CFORUM appended at 18:48:28 on 92/09/14 GMT (by PNWB016 at HONE85)
  5619. Subject: Documentation Trends: Online vs Hardcopy
  5620. Ref: Append at 15:02:26 on 92/09/11 GMT (by TCSC086 at OS2CUST)
  5621.  
  5622. Ready for a TOTAL tangent???? Speaking of "letterboxing", I took
  5623. my 9 year old son to see the origional Star Wars movie in 70 MM
  5624. about a month ago (it was a 1 week limited release at a HUGE
  5625. theater in Seattle with GREAT picture and sound.) He really
  5626. didn't want to go, since he had "seen" the movie lots of time
  5627. on our 19 inch TV with a 1 inch speaker.
  5628.  
  5629. Right after the scene when the star destroyer rolled onto the
  5630. screen (about 30 seconds after the credits end) he leaned over
  5631. and said "This is COOL!".  He sat MOTIONLESS for the rest of
  5632. the movie.
  5633.  
  5634. Wayne "I had forgotten how GREAT Star Wars was" Holmes
  5635.  
  5636. ----- C-SET2 CFORUM appended at 18:48:53 on 92/09/14 GMT (by PNWB016 at HONE85)
  5637. Subject: CSD0014 PROBLEM
  5638. Ref: Append at 15:10:09 on 92/09/14 GMT (by UNMT067 at OS2CUST)
  5639.  
  5640. Mack: Apparently the ones on CIS were messed up too. Does anyone
  5641. know if this is going to be fixed on this BBS? (Lots cheaper to
  5642. download here than off of CIS.)
  5643.  
  5644. Wayne
  5645.  
  5646. ----- C-SET2 CFORUM appended at 21:34:12 on 92/09/14 GMT (by IL41468 at OS2CUST)
  5647. Subject: CSD0014 PROBLEM
  5648. Ref: Append at 18:48:53 on 92/09/14 GMT (by PNWB016 at HONE85)
  5649.  
  5650. I download the csd00014 3.5 diskettes date 92/8/31 a couple of days ago and
  5651. applied the service to my C Set/2 with no problem. Do you need 5.25 could
  5652. the problem only be there? If not 5.25 why don't you just retransmit the
  5653. CSD00014
  5654.  
  5655. John M. Schaeffer (AIMS - Sandy, Utah)
  5656.  
  5657. ----- C-SET2 CFORUM appended at 22:26:12 on 92/09/14 GMT (by TCSC086 at OS2CUST)
  5658. Subject: Documentation Trends: Online vs Hardcopy
  5659. Ref: Append at 18:48:28 on 92/09/14 GMT (by PNWB016 at HONE85)
  5660.  
  5661. Wayne,
  5662.  
  5663.  This is highly appropriate since you have screamed about messages
  5664. and appends not appearing as well.
  5665.  
  5666. You replied to my "Letterbox post" which was (inserting copy...)
  5667.  
  5668.  Ref: Append at 15:02:26 on 92/09/11 GMT (by TCSC086 at OS2CUST)
  5669.  
  5670. Welllll....guess what. I can't find it now! Along with several other
  5671. suspected missing posts of mine...this one you actually responded to
  5672. and I CAN'T FIND IT!
  5673.  
  5674. Would you please scan back through the forum and see if YOU can find it.
  5675. This would confirm my "personal pointers" idea about how messages keep
  5676. having problems (especially MINE! Paranoia again....<G>)
  5677.  
  5678. The Letterbox post was IMHO rather distinct....and now EXTINCT!
  5679.  
  5680. Let me know...I'll go gripe on the "about this BBS forum"
  5681.  
  5682. Dan "They keep eating my posts" Lundy
  5683.  
  5684. Dan Lundy          Time Customer Service, Inc.                      Tampa, Fl
  5685.  
  5686. ----- C-SET2 CFORUM appended at 22:27:32 on 92/09/14 GMT (by TCSC086 at OS2CUST)
  5687. Subject: Documentation Trends: Online vs Hardcopy
  5688. Ref: Append at 18:48:28 on 92/09/14 GMT (by PNWB016 at HONE85)
  5689.  
  5690. BTW, a motionless 9 year old??! Amazing.....
  5691.  
  5692. The BIG SCREEN is awesome. I want one at home <G!!>
  5693.  
  5694. Dan
  5695.  
  5696. Dan Lundy          Time Customer Service, Inc.                      Tampa, Fl
  5697.  
  5698. ----- C-SET2 CFORUM appended at 23:22:06 on 92/09/14 GMT (by AMELINE at TOROLAB6)
  5699. Subject: CSD0014 PROBLEM
  5700. Ref:     Append at 15:10:09 on 92/09/14 GMT (by UNMT067 at OS2CUST)
  5701.  
  5702.    Well, *I* blew it. I packed the wrong disk. (There were several
  5703. in the pile, and I could have sworn I picked up Disk 1 of CSD 14, but
  5704. I picked up Disk 1 of CSD 13 instead.)
  5705.  
  5706.    This situation should be corrected as of a few days ago.
  5707.  
  5708.    The bungle on CIS was a different thing altogether -- I left out an
  5709. EXE which hadn't changed since the first CSD. I test installed it on
  5710. a system which already had a CSD on it. This worked fine -- If I had
  5711. tested it on a GA level C-Set, I would have caught it.
  5712.  
  5713.    Just used up my annual quota of stupid mistakes in 1 day.
  5714.  
  5715. Regards,
  5716. Ian Ameline
  5717.  
  5718. ----- C-SET2 CFORUM appended at 03:52:47 on 92/09/15 GMT (by PNWB016 at OS2CUST)
  5719. Subject: CSD0014 PROBLEM
  5720. Ref: Append at 23:22:06 on 92/09/14 GMT (by AMELINE at TOROLAB6)
  5721.  
  5722. Ian: Thanks for the clarification.  I have NO PROBLEM with this kind of
  5723. mixup... especially since it is VERY apparent that your working hard to
  5724. get the fixes for the C-Set out as quickly as possible.
  5725.  
  5726. I applied the CSD to our system by directly unpacking the files onto
  5727. our LAN drives (per our earlier conversation the SERVICE program doesn't
  5728. deal with LAN drives), so I didn't realize this was a problem until we
  5729. applied the CSD to some additional standalone machines we have the C Set
  5730. on.
  5731.  
  5732. BTW... I wrote up a PASR on the SERVICE problem and had my SE submit it
  5733. to the black hole that all such requirements enter. Hopefully this will
  5734. be fixed sometime before I retire. <grin>
  5735.  
  5736. Thanks again for a GREAT product and a COMMITMENT to providing service.
  5737.  
  5738. Wayne "See, I really CAN be resonable <g>" Holmes
  5739.  
  5740. ----- C-SET2 CFORUM appended at 04:00:33 on 92/09/15 GMT (by PNWB016 at OS2CUST)
  5741. Subject: Documentation Trends: Online vs Hardcopy
  5742. Ref: Append at 22:26:12 on 92/09/14 GMT (by TCSC086 at OS2CUST)
  5743.  
  5744. Dan: I can't see your append when I look on the OS2BBS. The only way I know
  5745. that you DID send the message is because I am testing some software that
  5746. keeps a copy of the appends on my PC.
  5747.  
  5748. Humm... maybe some editing software put the kibosh on your post for being
  5749. "off topic".  <<<< GRIN >>>>> Of course if talking about "Star Wars" in
  5750. the IBM C Set/2 forum isn't off topic I'm not sure what is!  :-)
  5751.  
  5752. Seriously, maybe your append being lost was associated with the system
  5753. being down for most of Friday, all weekend and part of Monday. You should
  5754. probably send a message to Brent on OS2BBS... especially since I have PROOF
  5755. that your not going crazy.
  5756.  
  5757. Wayne
  5758.  
  5759. ----- C-SET2 CFORUM appended at 05:34:27 on 92/09/15 GMT (by XXNOVA24 at TORVMCOP)
  5760. Subject: CSD0014 PROBLEM
  5761. Ref:     Append at 23:22:06 on 92/09/14 GMT (by AMELINE at TOROLAB6)
  5762.  
  5763. Don't worry Ian, you at least distributing CSD-s. and since you admitted
  5764. the error, you corrected it.
  5765. You've got another half years quota.<g>
  5766.  
  5767. Geza Szivos
  5768. NOVACOR Chemicals (403)-290-6583
  5769. NHO-32 801-7th Ave Calgary, Alberta, CANADA  T2P 2N6
  5770.  
  5771. ----- C-SET2 CFORUM appended at 20:21:09 on 92/09/16 GMT (by V$IBTIGA at BCRVMPC1)
  5772. Subject: comments
  5773.  
  5774. NOTE:  LONG APPEND
  5775.  
  5776. Can anybody comment on this?
  5777.  
  5778. -----------------------------------------------------------------------
  5779.  
  5780.  SIGBREAK and SIGINT should not have a default handler
  5781.  
  5782.  1. SIGBREAK and SIGINT should not have any default handler.
  5783.  
  5784.  I notice that programs compiled with CSet/2 always install their own default
  5785.  handlers for SIGBREAK and SIGINT.  This is very bad idea, given OS/2 simplistic
  5786.  stack-oriented interrupt handling in a text window.  What happens is that the
  5787.  last guy to register an interrupt handler gets the signal.  So you can get
  5788.  bizarre results with pipes, e.g.,
  5789.  
  5790.     a ┘ b
  5791.  
  5792.  Depending on the order in which they're started (which might not be the same fo
  5793.  all command processors) a ^C will be delivered to either a or b but never both.
  5794.  The other may eventually notice that the pipe has broken, but that could be
  5795.  several seconds or more.  (And even then, if it's a that got the signal and
  5796.  died, b's response would not be to exit unless that's its normal response to
  5797.  reaching end-of-file.)  To kill the whole pipe, you have to type ^C twice (or
  5798.  even more if it's a pipeline of more stages).
  5799.  
  5800.  Another problem with these default handlers is that it makes it difficult to
  5801.  "put them in the background" in UNIX terms.  Under my C shell, for example, it'
  5802.  convenient to start a simple that might take a while such a utility to copy a
  5803.  whole directory with an ampersand at the end of the line meaning start the thin
  5804.  going but don't wait for it to complete before prompting for the next command.
  5805.  Here's an example of what that might look like:
  5806.  
  5807.          cp \doug a: &
  5808.  
  5809.  Stdout & stderr would still be tied to that same text window so (by design) if
  5810.  that background app produced any output, it would show up intermixed on the
  5811.  screen with any other output.  (Again, that's by design and, even if it sounds
  5812.  strange, believe me, it is what people who use this facility do want.)  But
  5813.  these background children should definitely not be responding to ^C.
  5814.  
  5815.  The convention established (albeit never well-documented) under OS/2 1.x was
  5816.  that "simple" applications should not establish signal handlers, thus allowing
  5817.  ^C to be delivered to the command processor, which would then walk down the lis
  5818.  of its children, killing them all.  Doing it that way ensures that ^C works as
  5819.  expected.  It also, from a practical standpoint, makes UNIX-style background
  5820.  operations possible since the C shell simply skips any of those children when i
  5821.  walks down it's list in response to a ^C.  (Obviously, if the background child
  5822.  did register a signal handler, we're back to the same problem but since most of
  5823.  the kinds of things people do in the background are relatively simple and do no
  5824.  have signal handlers, this is not a frequent problem in practical terms.)
  5825.  
  5826.  2. Exit codes 99 and 3 already have defined meanings.
  5827.  
  5828.  The default signal handlers cause exits with code 3 (SIGABRT) and code 99
  5829.  (SIBBREAK, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM).  This usage conflicts wit
  5830.  other assignments as documented in bseerr.h:
  5831.  
  5832.      #define ERROR_PATH_NOT_FOUND      3
  5833.      #define ERROR_DEVICE_IN_USE      99
  5834.  
  5835.  Please, let's try to follow the conventions, can we?  E.g., there already *are*
  5836.  a couple appropriate definitions:
  5837.  
  5838.      #define ERROR_INTERRUPT          95   /* SIGBREAK or SIGINT */
  5839.      #define ERROR_INVALID_ADDRESS   487   /* SIGSEGV */
  5840.  
  5841.  I admit I don't see any right off for SIGABRT, SIGFPE, SIGILL or SIGTERM, but
  5842.  you could define some, adding them to bseerr.h or adding them to the
  5843.  ERROR_USER_DEFINED_BASE value.
  5844.  
  5845.  3. There's really no reason for those silly "Process was terminated by SIGxxx"
  5846.  messages.
  5847.  
  5848.  Regards,
  5849.  Doug Hamilton
  5850.  
  5851. Larry Moore     PSPC-Boca Tech Interface Group
  5852.  
  5853. ----- C-SET2 CFORUM appended at 03:44:59 on 92/09/17 GMT (by HNDERSON at AUSVM8)
  5854. Subject: CSD0014 PROBLEM
  5855. Ref:     Append at 15:10:09 on 92/09/14 GMT (by UNMT067 at OS2CUST)
  5856. Mack, the problem has been fixed, the correct files have been reloaded to
  5857. the various BBS.  We are sorry that it occurred.  We are working to make
  5858. sure that it will not happen again.
  5859.  __   __      ___      __  __   _   _
  5860. |  |_|  |    /   \    |  \|  | | |./ / Hank Henderson HNDERSON at AUSVM8
  5861. |   _   |   / _~_ \  Sincerely |  . < Staff OSS to OS/2 BBS (TEAMOS2)
  5862. |__| |__|  /_/   \_\  |__|\__| |_| \_\ Tie:8-793-8647  Austin, Texas
  5863.                                        LNK1SM7 @ IBMLINK - OS/2 BBS
  5864.  
  5865. ----- C-SET2 CFORUM appended at 17:42:25 on 92/09/18 GMT (by PNWB016 at OS2CUST)
  5866. Subject: CSD0014 PROBLEM
  5867. Ref: Append at 03:44:59 on 92/09/17 GMT (by HNDERSON at AUSVM8)
  5868.  
  5869. Hank: A couple of questions to make sure I'm understanding what is going
  5870. on.
  5871.  
  5872. 1) Was CSD14 EVER incorrect on the OS2BBS? (I downloaded it from here, but
  5873.    couldn't use the service program to install it... as a result I didn't
  5874.    see the problem others were reporting.)
  5875.  
  5876. 2) If the answer to #1 is YES, then have the images on the OS2BBS indeed
  5877.    been updated? (The reason I ask is that the menu when you go into the
  5878.    CSD section indicates an update in the last couple of days, but CSD14
  5879.    still shows its origional date.... and no file in the CSD section
  5880.    has an update date that matches the date on the "files" screen.)
  5881.  
  5882. Thanks in advance... I just want to make ABSOLUTELY SURE that we are
  5883. running with the "right" fixes to the C Set.
  5884.  
  5885. Wayne "I'm glad its Friday" Holmes
  5886.  
  5887. ----- C-SET2 CFORUM appended at 14:56:00 on 92/09/19 GMT (by HNDERSON at AUSVM8)
  5888. Subject: CSD0014 PROBLEM
  5889. Ref:     Append at 17:42:25 on 92/09/18 GMT (by PNWB016 at OS2CUST)
  5890. Hi Wayne,
  5891. When I first read about this I went and checked the 2 diskettes, of
  5892. course I wasn't (red face on) pulling them from same source
  5893. and they were ok. I pulled them from the BBS and found the problem
  5894. (red face off).  One of my co-horts showed me my error.  Just goes to
  5895. show the young can teach a old dogs a thing or two.  (Thanks Ryan).
  5896. Anyway the right ones on on the BBS, I goofed, they threaten me with
  5897. not being able to signon to the BBS if I did it again, and I couldn't
  5898. handle that, its kinda like a habit you know.  So I promise to not
  5899. repeat that goof for awhile.
  5900.  
  5901.  __   __      ___      __  __   _   _
  5902. |  |_|  |    /   \    |  \|  | | |./ / Hank Henderson HNDERSON at AUSVM8
  5903. |   _   |   / _~_ \  Sincerely |  . < Staff OSS to OS/2 BBS (TEAMOS2)
  5904. |__| |__|  /_/   \_\  |__|\__| |_| \_\ Tie:8-793-8647  Austin, Texas
  5905.                                        LNK1SM7 @ IBMLINK - OS/2 BBS
  5906.  
  5907. ----- C-SET2 CFORUM appended at 22:48:29 on 92/09/19 GMT (by HNDERSON at AUSVM8)
  5908. Subject: IBM partication in the CFROUM
  5909. Ref:  Various appends by IBMer
  5910.  
  5911. I strongly recommend that all IBMer take time to READ THE HEADERS of
  5912. THIS AND ALL OTHER CFORUMs.
  5913.  
  5914. This Cforum and all other Cforums are for Customers to ask questions
  5915. offer views, suggestion, etc. TO other customers, and to IBMers.
  5916.  
  5917. They are NOT TO CONTAIN references to IBM Internal USE Only products.
  5918.  
  5919. They are not to reference IBM INTERNAL minidisk that are not available
  5920. to customers.
  5921.  
  5922. They are not to contain reference to unannounced products.
  5923.  __   __      ___      __  __   _   _
  5924. |  |_|  |    /   \    |  \|  | | |./ / Hank Henderson HNDERSON at AUSVM8
  5925. |   _   |   / _~_ \  Sincerely |  . < Staff OSS to OS/2 BBS (TEAMOS2)
  5926. |__| |__|  /_/   \_\  |__|\__| |_| \_\ Tie:8-793-8647  Austin, Texas
  5927.                                        LNK1SM7 @ IBMLINK - OS/2 BBS
  5928.  
  5929. ----- C-SET2 CFORUM appended at 00:23:49 on 92/09/20 GMT (by PNWB016 at OS2CUST)
  5930. Subject: CSD0014 PROBLEM
  5931. Ref: Append at 14:56:00 on 92/09/19 GMT (by HNDERSON at AUSVM8)
  5932.  
  5933. Hank: No problem... I will download the images and reapply the fixes to
  5934. our system.
  5935.  
  5936. Thanks for checking this out.
  5937.  
  5938. Wayne
  5939.  
  5940. ----- C-SET2 CFORUM appended at 03:24:55 on 92/09/20 GMT (by UNMT067 at OS2CUST)
  5941. Subject: CSD0014 PROBLEM
  5942. Ref: Append at 03:44:59 on 92/09/17 GMT (by HNDERSON at AUSVM8)
  5943.  
  5944. Hank, thanks for your quick response.  Since I have made similar mistakes
  5945. many times before, I can definitely understand how it can happen. I will
  5946. download the new images and apply them.
  5947.  
  5948. Mack McDowell, Unum Life Insurance Co of America
  5949.  
  5950. ----- C-SET2 CFORUM appended at 13:47:02 on 92/09/21 GMT (by N$DEANS at RALVM29)
  5951. Subject: CSD0014 PROBLEM
  5952. Ref:     Append at 03:24:55 on 92/09/20 GMT (by UNMT067 at OS2CUST)
  5953.  
  5954. I'm compiling and linking 19 files into one DLL.  Everything
  5955. compiles OK, but when LINK386 steps in, I get the following error:
  5956.  
  5957.       Operating System/2 LX (Linear Executable) Linker
  5958.       Version 2.00.000 Feb 25 1992
  5959.       Copyright (C) IBM Corporation 1988-1992.
  5960.       Copyright (C) Microsoft Corp. 1988-1992.
  5961.       All rights reserved.
  5962.  
  5963.       LINK386 : fatal error L1022: response line too long
  5964.  
  5965. I'm defining three lists of object files in the following format:
  5966.  
  5967.       obj1   =  <filename.obj>  \
  5968.                 <filename.obj>  \
  5969.                 <filename.obj>
  5970.  
  5971.       obj2   =  <filename.obj>  \
  5972.                 <filename.obj>  \
  5973.                 <filename.obj>
  5974.  
  5975.       obj3   =  <filename.obj>  \
  5976.                 <filename.obj>  \
  5977.                 <filename.obj>
  5978.  
  5979. and I'm using these compile and link options:
  5980.  
  5981.       #--------------------------------------------------------------
  5982.       # set link options:
  5983.       #          /NOL         no logo
  5984.       #          /NOI         preserve case sensitivity on external names
  5985.       #          /NOE         no extended dictionary search
  5986.       #--------------------------------------------------------------
  5987.       lOPTS   = /NOL /NOI /NOE
  5988.  
  5989.       cOPTS   = /Ss /Q /Ge- /Gd- /C /Ms /Rn
  5990.  
  5991. My LINK386 line looks like this:
  5992.  
  5993.       LINK386 $(lOPTS) \
  5994.           $(obj1)+ $(obj2)+ $(obj3), \
  5995.           <my dll filename>,   \
  5996.                   , \
  5997.           $(lLIBS),\
  5998.           <my def file>;
  5999.  
  6000. When I reduce the number of files that I'm linking together, it seems
  6001. to work.  However, I need to be able to link ALL of these files (and
  6002. probably more).  Does anyone know how I can link everything without
  6003. this error?
  6004.  
  6005. ----- C-SET2 CFORUM appended at 14:04:20 on 92/09/21 GMT (by 86672308 at WARVM2)
  6006. Subject: CSD0014 PROBLEM
  6007. Ref:     Append at 13:47:02 on 92/09/21 GMT (by N$DEANS at RALVM29)
  6008.  
  6009. You could change your link line in your makefile to look like this:
  6010.  
  6011.    link386 @<<
  6012. ¢(OBJ)
  6013. est2pmw.exe /align:4 /exepack /base:65536 /De
  6014. est2pmw.map /NOI
  6015. y:\lib2\libsmall.lib
  6016. est2pmw.def
  6017. <<
  6018.  
  6019. This will cause MAKE to create a temporary response file that the
  6020. linker reads.
  6021.  
  6022.   Cheers, Graham Perks - UK - graham@vnet.ibm.com
  6023.  
  6024. ----- C-SET2 CFORUM appended at 03:33:37 on 92/09/23 GMT (by WZ00574 at OS2CUST)
  6025. Subject: Problems with NMAKE (new version)
  6026.  
  6027. Had been using old MS C6.0 NMAKE, so don't know if this is a new problem.  The
  6028. current problem occurs in Mar 27 version of NMAKE.  Makefiles showing problem:
  6029.  
  6030. /incl/mystuff.h mystuff.h
  6031.       copy mystuff.h \incl\mystuff.h
  6032.  
  6033. Fixes needed:ncl\mystuff.h prog.c
  6034.    1. NMAKE should consider target/dependents equal dates as up-to-date.
  6035.    2. After executing the commands, NMAKE should query from disk the new
  6036.       modify date of the target, not assume that it is the current time.ng the
  6037.                                                                    the file
  6038. Does anyone have an idea for a workaround to this problem for here and now.  I
  6039. I've been using old MS C6.0 NMAKE, so I don't know if this is a new problem.
  6040. Cow, every target depending on \incl\mystuff.h get rExample makefile is:
  6041.  
  6042. When NMAKE runs, it sees the dates of mystuff.h and \incl\mystuff.h
  6043. as identical.  This should be okay, but NMAKE calls target out of
  6044. date and executes the copy.  No problem with an extra copy at every
  6045. make, but internally NMAKE appears to set the date of \incl\mystuff.h
  6046. as the current time anddate, not the date on the file after the copy.
  6047.  By making
  6048.  
  6049. Michael Thompson - Cornell University
  6050.  
  6051. ----- C-SET2 CFORUM appended at 14:16:59 on 92/09/23 GMT (by DEV0159 at OS2CUST)
  6052. Subject: C Set/2 and Link386 problems
  6053.  
  6054. We have a very large application that we are migrating to C Set/2.
  6055. We have observed the following problems:
  6056.  
  6057. 1) Link386 L1108 invalid debug format error
  6058.  
  6059.   As far as we can tell, there is a fix available.  How do we get a hold of it?
  6060.  
  6061. 2) We have had certain global and static variables getting improperly
  6062. initialized.
  6063.  
  6064.   What is the problem and is there a fix for it?
  6065.  
  6066. Thank you.
  6067.  
  6068. Dmitry Farberov
  6069.  
  6070. ----- C-SET2 CFORUM appended at 17:38:44 on 92/09/23 GMT (by AMELINE at TOROLAB6)
  6071. ..... C-SET2 CFORUM modified at 02:51:08 on 92/09/25 GMT (by HOPKINS at AUSVM8)
  6072. Subject: C Set/2 and Link386 problems
  6073. Ref:     Append at 14:16:59 on 92/09/23 GMT (by DEV0159 at OS2CUST)
  6074.  
  6075.    Those are APARs PJ05162 (initialize variables to 0 doesn't always
  6076. work) and PJ04741 (Linker can't handle >64K debug info in an OBJ)
  6077.  
  6078.    Both are bugs in LINK386.EXE, and fixes should be available for
  6079. both. If you call 1-800-237-5511, identify yourself as a C-Set/2 user,
  6080. and tell them the APAR numbers,they should ship the fixed linker to you.
  6081. > To save time, OS2BBS folks may also use the IBM Support option from the
  6082. > from the Main Menu to request the fixes electronically. We can only
  6083. > send the fixes directly to a HONE ID, but not yet to a BBS ID (WZ, etc)
  6084. > either way, we'll get the fixes to you.
  6085. > Ken Hopkins, OS/2 Software Service and Support
  6086. Ian Ameline
  6087.  
  6088. ----- C-SET2 CFORUM appended at 20:48:41 on 92/09/24 GMT (by PNWB016 at OS2CUST)
  6089. Subject: Static vs. Dynamic linking of Runtime
  6090.  
  6091. We have an application that we are considering converting to use the dynamic
  6092. linking runtime.  We understand that the NEGATIVE of the dynamic link
  6093. runtime is the DLL overhead on every call, and the POSITIVE is that the
  6094. runtime is only loaded once for the entire system.
  6095.  
  6096. Our application consists of about 15 EXE files that communicate with
  6097. various OS/2 CM components and between themselves (using DDE, shared
  6098. memory and every other API we found <grin>).
  6099.  
  6100. My question is are there any guidelines on when the tradeoff between the
  6101. dynamic runtime and the static runtime occurs? (We currently link using
  6102. the static multithreaded library.)
  6103.  
  6104. Also... if we use the dynamic runtime can we ship the DLL as part of our
  6105. product? (Which DLL is required, assuming we are using the multithreaded
  6106. dynamic linking runtime.)
  6107.  
  6108. Thanks for any advice. The manual goes over HOW this is done, but really
  6109. doesn't make any recommendations.
  6110.  
  6111. Wayne "Trying to reduce our working set" Holmes
  6112.  
  6113. ----- C-SET2 CFORUM appended at 11:30:25 on 92/09/25 GMT (by KEENLEY at TOROLAB6)
  6114. Subject: Static vs. Dynamic linking of Runtime
  6115. Ref:     Append at 20:48:41 on 92/09/24 GMT (by PNWB016 at OS2CUST)
  6116.  
  6117. No you cannot ship the runtime DLLs we ship with C Set/2 (the lawyers
  6118. said so).  That is why we provide the instructions in the manual and
  6119. in this forum on how to build your own runtime DLL.
  6120.  
  6121. I don't understand your comment about there being an overhead on
  6122. every call to the DLL.  Once the DLL is loaded and initialized, it's
  6123. as if the runtime were statically linked.  The benefit of having one
  6124. instance of the runtime per process instead of 15 will far outweigh
  6125. the loading and initializing cost of the runtime DLL.
  6126.  
  6127. John Keenleyside  OS/2 Compiler Dev.
  6128.  
  6129. ----- C-SET2 CFORUM appended at 15:09:04 on 92/09/25 GMT (by PNWB016 at HONE86)
  6130. Subject: Static vs. Dynamic linking of Runtime
  6131. Ref: Append at 11:30:25 on 92/09/25 GMT (by KEENLEY at TOROLAB6)
  6132.  
  6133. John: Thanks for the info... I figured I couldn't ship the IBM C Runtime, and it
  6134. looks like I totally missed the part of the manual that talks about how to build
  6135. a C runtime DLL from  the IBM runtime. (Another case of me looking in the wrong
  6136. place in the manual.)
  6137.  
  6138. Now for a couple of questions...
  6139.  
  6140. 1) You mentioned that the instructions on how to build your own runtime DLL were in
  6141. this forum. Were you specifically talking about how to build a runtime DLL from the
  6142. IBM  supplied library? (I'm at home today and don't have my paper documentation with
  6143. me.) I looked in the online reference, but can't find anything significant when I search on DLL.
  6144.  
  6145. 2) My question about DLL overhead had to do with any performance penalty associated
  6146. with calling a DLL (which I understand goes through a call gate) vs directly calling
  6147. the library routine conventionally. There are several places in our code where we
  6148. very rapidly call various functions that are NOT inlined when optimization is turned on. My question boils down to "Does anybody have figures on any performance penalty
  6149. associated with going through the call gate to a DLL vs. calling a subroutine
  6150. conventionally?" (Maybe this isn't an issue in OS/2 2.0, but it was in 1.3 due to
  6151. extra segment setups that needed to be done.)
  6152.  
  6153. Thanks for you patience....
  6154.  
  6155. Wayne "Always more to learn" Holmes
  6156. U S WEST Communications
  6157.  
  6158. ----- C-SET2 CFORUM appended at 17:06:11 on 92/09/25 GMT (by KEENLEY at TOROLAB6)
  6159. Subject: Static vs. Dynamic linking of Runtime
  6160. Ref:     Append at 15:09:04 on 92/09/25 GMT (by PNWB016 at HONE86)
  6161.  
  6162. Sorry, I got confused about the instructions.  I actually appended
  6163. them in the internal forum but you can get them from the end of
  6164. Chapter 15 of the user's guide.
  6165.  
  6166. I can assure you that when a call is made to the runtime DLL it is not
  6167. going through a call gate.
  6168.  
  6169. John Keenleyside  OS/2 Compiler Dev.
  6170.  
  6171. ----- C-SET2 CFORUM appended at 17:12:38 on 92/09/25 GMT (by PNWB016 at OS2CUST)
  6172. Subject: Static vs. Dynamic linking of Runtime
  6173. Ref: Append at 17:06:11 on 92/09/25 GMT (by KEENLEY at TOROLAB6)
  6174.  
  6175. John: NEAT! Looks like I will be reading up in Chapter 15.
  6176.  
  6177. Thanks.
  6178.  
  6179. Wayne "Off to read the RIGHT chapter this time" Holmes
  6180. U S WEST Communications
  6181.  
  6182. ----- C-SET2 CFORUM appended at 16:36:58 on 92/09/26 GMT (by WZ00574 at OS2CUST)
  6183. Subject: Problem with NMAKE (readable)
  6184.  
  6185. #1 Clearly I need to figure out how to use this editor - no instructions.
  6186. Is behavior of (1) identifying identical dates as out-of-date and (2) setting
  6187. modify date to current rather than actual file timestamp correct.  No UNIX
  6188. systems have exhibited this behavior in makefiles.
  6189.      cp mystuff.h
  6190.  
  6191. \incl\mystuff.h
  6192.  
  6193. myprog.obj : myprog.c \incl\mystuff.h \incl\morestuff.h
  6194.      icc .....
  6195.  
  6196. When NMAKE runs, even if mystuff.h and \incl\mystuff.h are identical, the
  6197. same date is taken to be out-of-date and the copy is executed.  Internally,
  6198. NMAKE then marks the date of \incl\mystuff.h as the current time/date rather
  6199. than the actual date of the file.  This causes all other routines depending on
  6200. \incl\mystuff.h to be considered out-of-date also, and are remade.  I could
  6201. touch \incl\mystuff.h after copying, but I am reluctant to show the files as
  6202. different dates since they are really identical.
  6203.  
  6204. Michael Thompson - Cornell University
  6205.  
  6206. ----- C-SET2 CFORUM appended at 18:38:01 on 92/09/28 GMT (by N$DEANS at RALVM29)
  6207. Subject: Unresolved external with ceil()
  6208.  
  6209. I'm using the ceil() function from <math.h>, but LINK386 complains
  6210. that it is an unresolved external reference at the end of linking.
  6211.  
  6212. I'm compiling with system linkage, and ceil() wants _Optlink linkage.
  6213. I've tried :
  6214.  
  6215.          #pragma linkage (ceil, optlink)
  6216.  
  6217. but it still complains.  I am #including <math.h>.
  6218.  
  6219. What am I missing?  Do I have to link with a particular library to use
  6220. the math functions?
  6221.  
  6222. Scott Deans
  6223.  
  6224. ----- C-SET2 CFORUM appended at 20:21:51 on 92/09/28 GMT (by PETT at TOROLAB6)
  6225. Subject: Unresolved external with ceil()
  6226. Ref:     Append at 18:38:01 on 92/09/28 GMT (by N$DEANS at RALVM29)
  6227.  
  6228. ceil() is present in the standard libraries (DDE4SBS.LIB and
  6229. DDE4MBS.LIB).  It is not present in the subsystems programming
  6230. library (DDE4NBS.LIB).  Are you compiling with the /Rn switch?  If so,
  6231. either remove it, or find some way not to use the ceil() function.
  6232.  
  6233. Roger Pett
  6234.  
  6235. ----- C-SET2 CFORUM appended at 20:43:44 on 92/09/28 GMT (by N$DEANS at RALVM29)
  6236. Subject: Unresolved external with ceil()
  6237. Ref:     Append at 20:21:51 on 92/09/28 GMT (by PETT at TOROLAB6)
  6238.  
  6239. Thanks for your reply.  The answer does pose a problem for us, however.
  6240. Our code needs the /Rn switch (to generate a subsystem), but I also
  6241. need the ceil() function for an important calculation.
  6242.  
  6243. Is there any way around this?  Could our group obtain a copy of the
  6244. source code for ceil() (or a DLL to link in) to solve this problem?
  6245.  
  6246. Scott Deans
  6247. MWave Audio, Video, and Speech
  6248. RTP, NC
  6249. N$DEANS at RALVM29
  6250.  
  6251. ----- C-SET2 CFORUM appended at 00:16:28 on 92/09/29 GMT (by PNWB016 at HONE84)
  6252. Subject: Static vs. Dynamic linking of Runtime
  6253. Ref: Append at 17:06:11 on 92/09/25 GMT (by KEENLEY at TOROLAB6)
  6254.  
  6255. John: Wanted to let you know that I dug through Chapter 15 and
  6256. we now have our runtime in a DLL.
  6257.  
  6258. Thanks for pointing me in the right direction!
  6259.  
  6260. Wayne "It is amazing how an EXE will shrink when it doesn't
  6261.   have to include any C runtime" Holmes
  6262.  
  6263. ----- C-SET2 CFORUM appended at 05:32:34 on 92/09/29 GMT (by DEV3543 at HONE81)
  6264. Subject: C Set/2 and Link386 problems
  6265. Ref: Append at 17:38:44 on 92/09/23 GMT (by AMELINE at TOROLAB6)
  6266.  
  6267. Hi there!
  6268.  
  6269. And you thought you could hide over on this side of the World!
  6270.  
  6271. If I get this software setup, I might be using this a lot more, glad that you
  6272. are here already, I don't have to whine to John Soyring about support for the
  6273. C Set/2 on here...<g>
  6274.  
  6275. Alan DuBoff - Bunker Hill Software
  6276.  
  6277. ----- C-SET2 CFORUM appended at 13:09:46 on 92/09/29 GMT (by PETT at TOROLAB6)
  6278. Subject: Unresolved external with ceil()
  6279. Ref:     Append at 20:43:44 on 92/09/28 GMT (by N$DEANS at RALVM29)
  6280.  
  6281. If you know that the number in question will fit into an integer, the
  6282. following macro should do what you want:
  6283.  
  6284. #define ceil(x)   ((double)(1 + (int)(x)))
  6285.  
  6286. If not - contact me offline, and we'll see if we can get you the
  6287. library code.
  6288.  
  6289. Roger Pett
  6290.  
  6291. ----- C-SET2 CFORUM appended at 18:53:03 on 92/09/29 GMT (by AMELINE at TOROLAB6)
  6292. Subject: C Set/2 and Link386 problems
  6293. Ref:     Append at 05:32:34 on 92/09/29 GMT (by DEV3543 at HONE81)
  6294.  
  6295.    Alan,
  6296.  
  6297.    Good to see you here -- as you can see, the entire development team
  6298. has access here -- if the node is TOROLAB6, chances are good that the
  6299. person is on the team.
  6300.  
  6301. Regards,
  6302. Ian Ameline
  6303.  
  6304. ----- C-SET2 CFORUM appended at 00:24:30 on 92/09/30 GMT (by XXPRMN01 at TORVMCOP)
  6305. Subject: Variable list arguments
  6306.  
  6307. Ian, I am wondering if the va_arg features are working properly.
  6308. Consider the following:
  6309.  
  6310. VOID WriteData(PSZ pszFmt, ...)
  6311. {
  6312. va_list arglist;
  6313. CHAR szBuffer[512];
  6314. ULONG cb;
  6315.  
  6316. va_start(pszFmt, arglist);
  6317.  
  6318. DosWrite(hpWrite, (PVOID)szBuffer,
  6319.          sprintf(szBuffer, pszFmt, arglist), &cb);
  6320.  
  6321. va_end(arglist);
  6322. }
  6323.  
  6324. if you call the function as thus:
  6325.  
  6326. WriteData("Hello %s", "Ian");
  6327.  
  6328. it don't wanna work!!  This is also a multithreaded app and it is
  6329. running in thread 3 (as reported by IPMD).  Even if I try to grab
  6330. the argument like in the online example, nada, still don't get the
  6331. address of the "Ian" argument.  Wadda ya think??
  6332.  
  6333. Matt Smith, Prominare Inc.
  6334.  
  6335. ----- C-SET2 CFORUM appended at 04:34:19 on 92/09/30 GMT (by BIGBILL at TOROLAB6)
  6336. Subject: Variable list arguments
  6337. Ref:     Append at 00:24:30 on 92/09/30 GMT (by XXPRMN01 at TORVMCOP)
  6338.  
  6339. Try vsprintf().  ;-)
  6340.  
  6341. Bill Sarantakos    OS/2 C++ Compiler Development     Toronto, Ontario
  6342.  
  6343. ----- C-SET2 CFORUM appended at 05:14:55 on 92/09/30 GMT (by DEV3543 at HONE83)
  6344. Subject: C Set/2 and Link386 problems
  6345. Ref: Append at 18:53:03 on 92/09/29 GMT (by AMELINE at TOROLAB6)
  6346.  
  6347. >   Good to see you here -- as you can see, the entire development team
  6348. >has access here -- if the node is TOROLAB6, chances are good that the
  6349. >person is on the team.
  6350.  
  6351. I'm glad to be here, now that you guys have some software to accesss with <g>
  6352.  
  6353. Seriously, I'm am very happy to see decent software to access IBMLink with,
  6354. you probably know that I have beat up on Lee Reiswig and John Soyring several
  6355. times because the support for developers has been very poor with IBMLink up
  6356. until now.
  6357.  
  6358. I plan to use IBMLink more and CI$ less, was just concerned that support
  6359. wouldn't be a good over here, it's finally getting good on CI$. I can assume
  6360. from your message that support for C Set/2 will be good and I assume C++ will
  6361. be handled here also. Really looking forward to seeing your C++ compiler, I
  6362. have already seen some of the competition and had luke warm feelings towards
  6363. it. I am waiting to see the type of support you add in the classes, one of the
  6364. competition didn't have SOM yet, and won't comment on it. I just got a BETA of
  6365. ObjectPM that looks pretty good.
  6366.  
  6367. Hey, I am going to get to do a project in C in a few weeks. It is only a 2 or
  6368. 3 week project, but I hear it is in OS/2 2.0 and it is in C. It is for the
  6369. Vancouver Police. I guess I'm going to write a prototype for something. I
  6370. would like to fly up there, but it sounds like I'm going to be working down in
  6371. L.A. for this project. I have to work in EASEL til the end of November which
  6372. is when a large OS/2 project is coming up. I pi$$ and moan so much they are
  6373. throwing this C project to me...<g> I just tell them like it is, EASEL is the
  6374. absolute worst development environment I have ever worked in for my entire
  6375. career in OS/2, I was on the verge of leaving the company over it...<g> then I
  6376. would get more time for Bunker Hill...:-)
  6377.  
  6378. Alan DuBoff - Bunker Hill Software
  6379.  
  6380. ----- C-SET2 CFORUM appended at 05:16:02 on 92/09/30 GMT (by DEV3543 at HONE83)
  6381. Subject: Variable list arguments
  6382. Ref: Append at 04:34:19 on 92/09/30 GMT (by BIGBILL at TOROLAB6)
  6383.  
  6384. >Bill Sarantakos    OS/2 C++ Compiler Development     Toronto, Ontario
  6385.  
  6386. Yes, glad to see you here. I'm waiting for your C++ compiler, and don't think
  6387. for one minute that I'm patient to get it...<g>
  6388.  
  6389. Will C++ support be done on this forum as well (I hope, since C Set/2 would be
  6390. a subset of C++ I imagine) ?
  6391.  
  6392. Alan DuBoff - Bunker Hill Software
  6393.  
  6394. ----- C-SET2 CFORUM appended at 12:43:35 on 92/09/30 GMT (by NR28045 at ATLVM2)
  6395. Subject: Variable list arguments
  6396. Ref:     Append at 00:24:30 on 92/09/30 GMT (by XXPRMN01 at TORVMCOP)
  6397.  
  6398. > va_start(pszFmt, arglist);
  6399.  
  6400. > DosWrite(hpWrite, (PVOID)szBuffer,
  6401. >          sprintf(szBuffer, pszFmt, arglist), &cb);
  6402.  
  6403. > va_end(arglist);
  6404. > }
  6405.  
  6406. > if you call the function as thus:
  6407.  
  6408. > WriteData("Hello %s", "Ian");
  6409.  
  6410. Shouldn't va_start(pszFmt, arglist) be va_start(arglist, pszFmt)?
  6411. Also, don't you need to use va_arg() to pull in the next argument
  6412. from the args passed to WriteData?
  6413.  
  6414. Sudy
  6415.  
  6416. ----- C-SET2 CFORUM appended at 13:25:01 on 92/09/30 GMT (by BIGBILL at TOROLAB6)
  6417. Subject: Variable list arguments
  6418. Ref:     Append at 05:16:02 on 92/09/30 GMT (by DEV3543 at HONE83)
  6419.  
  6420. More than likely, it will be a different forum to separate it from the
  6421. product that is already available (since it'll be a beta).
  6422.  
  6423. Bill Sarantakos    OS/2 C++ Compiler Development     Toronto, Ontario
  6424.  
  6425. ----- C-SET2 CFORUM appended at 20:17:20 on 92/09/30 GMT (by IL54396 at HONE82)
  6426. Subject: Unresolved external with ceil()
  6427. Ref: Append at 20:43:44 on 92/09/28 GMT (by N$DEANS at RALVM29)
  6428.  
  6429. If you need source code for ceil() or any other C run time library function I strongly suggest the book _The_Standard_C_Library_ by P.J. Plauger.  P.J. Plauger chaired the Library Subcomittee of X3J11 (ANSI C), so if anyone knows ANSI C, it should be him.
  6430.  The book contains the complete ANSI document on the Library, plain english translations and sample code for the entire library.  I have to say that this book is the best investment in a computer book I have ever made.  The pertinent facts are
  6431.  
  6432. Title: _The_Standard_C_Library_
  6433. Author: P.J. Plauger
  6434. Publishers: Prentice Hall
  6435. Price: forgotten, but believe it was app. $35 US
  6436.  
  6437. Chris Breisch, Pritsker Corp.
  6438.  
  6439. ----- C-SET2 CFORUM appended at 04:48:02 on 92/10/01 GMT (by DEV3543 at HONE83)
  6440. Subject: Variable list arguments
  6441. Ref: Append at 13:25:01 on 92/09/30 GMT (by BIGBILL at TOROLAB6)
  6442.  
  6443. BigBill,
  6444.  
  6445. I'll be in that forum when it starts, you can be sure of that.
  6446.  
  6447. I'm anxiously waiting for Comdex...
  6448.  
  6449. Alan DuBoff - Bunker Hill Software
  6450.  
  6451. ----- C-SET2 CFORUM appended at 18:37:30 on 92/10/01 GMT (by IL43706 at OS2CUST)
  6452. Subject: SYS3171 ERROR
  6453.  
  6454. I am trying to convert an OS/2 1.3 16 bit program that we have written to an
  6455. OS/2 2.0 32 bit program.  I keep geting a sys3171 error at a number of places
  6456. when running the program.
  6457.  
  6458. The program consists of 4 dll's and a number of exe's:
  6459.  
  6460.     mdicore.dll - handles putting up screens and displaying the data.
  6461.     mdislq.dll  - handles getting data from the database.  It makes 16 bit
  6462.                   calls to MS_SQL routines.  These routines are declared as
  6463.                   as _Far16 _Cdecl and pointers are passed as _Seg16 pointers.
  6464.     ccap.dll    - has code for customizing the behavior of each exe.
  6465.     ccapsql.dll - has code for getting custom data for each exe using rountines
  6466.                   in mdisql.dll.
  6467.     *.exe       - The exe consists of one function call to mdicore.dll that
  6468.                   starts an application and a number of include files that
  6469.                   contain tables that the various exe's run off of.
  6470.  
  6471. I keep getting sys3171 errors when some functions are called.  The error
  6472. doesn't happen every time the function is called but only after a certain
  6473. sequence of events.  I have looked at the registers for one of these functions
  6474. just before it executes both when it succeeds and when it fails.  Below are the
  6475.  
  6476. contents of the registers that are different between the two instances of one
  6477. of these function calls:
  6478.  
  6479.           WORKS                                   FAILS
  6480. EAX     00451B02                               00441B02
  6481. EDX     00451002                               00441002
  6482. ESP     00451B24                               00441B24
  6483. EBP     00451B30                               00441B30
  6484. ESI     00450000                               00440000
  6485. EDI     00450000                               00440000
  6486.  
  6487. The above error occurs when a call is made to a mdisql.dll function that makes
  6488. a 16 bit MS_SQL call.  The debugger breaks in _EDCThunkProlog at the start of
  6489. the mdisql function.
  6490.  
  6491. I also get sys3171 error after certain sequences of events after making calls
  6492. to WinSetFocus and WinCreateWindow.
  6493.  
  6494. I am compiling with C/SET2 with CSD000014. The Linker is link386.exe dated
  6495.  
  6496. 3/30/92.  The stack size for the applications is set to 125K and the stack
  6497. for the 16 bit calls is set by #pragma stack16(51200) in the module that
  6498. makes the 16 bit calls.  I have tried changing the value in the #pragma stack16
  6499.  but this doesn't seem to make nay difference.
  6500.  
  6501. If anyone can see a pattern in this info or can point at something else to
  6502. look at I would appreciate it.
  6503.  
  6504. Dan Paulson --- CCAP.
  6505.  
  6506. ----- C-SET2 CFORUM appended at 19:27:49 on 92/10/01 GMT (by POSTER at LSAVMIC1)
  6507. Subject:  Problem using fopen function
  6508.  
  6509. I am converting a multithreaded program that was developed using C/2
  6510. under OS/2 1.3 to C-Set/2 under OS/2 2.0.  A problem occurs when
  6511. opening a stream uning the fopen function in a thread other than
  6512. thread one.  The error message that appears in the OS/2 window is:
  6513.  
  6514.   General protection fault exception occurred at EIP=000154F3 on
  6515. thread 0003.
  6516.  
  6517. The error message that comes up in the dialog box is: SYS3175
  6518.  
  6519. I called the same fopen library function successfully in thread one.
  6520.  
  6521. Any suggestions?  Any help would be greatly appreciated.
  6522. Pam Osterhout.
  6523.  
  6524. ----- C-SET2 CFORUM appended at 21:52:41 on 92/10/01 GMT (by PNWB016 at HONE83)
  6525. Subject: Problem using fopen function
  6526. Ref: Append at 19:27:49 on 92/10/01 GMT (by POSTER at LSAVMIC1)
  6527.  
  6528. Pam: Are you linking with the multithreaded library support? (I
  6529. got caught by this one when converting our MSC 6.0 programs to
  6530. C Set/2.)
  6531.  
  6532. Wayne "Now using the Workframe to prevent this type of error" Holmes
  6533.  
  6534. ----- C-SET2 CFORUM appended at 16:16:20 on 92/10/02 GMT (by KILLBECK at HOUVMSCC)
  6535. Subject: Unresolved external with ceil()
  6536. Ref:     Append at 13:09:46 on 92/09/29 GMT (by PETT at TOROLAB6)
  6537.  
  6538. Doesn't that fail if x has a fraction part of zero?  E.g., it would give
  6539. ceil(1.0) ==> 2.0 instead of 1.0.
  6540.  
  6541. Lynn Killingbeck
  6542.  
  6543. ----- C-SET2 CFORUM appended at 19:54:51 on 92/10/05 GMT (by IL48672 at HONE82)
  6544. Subject: Function prototyping w/ coercion
  6545.  
  6546. Given:
  6547.  
  6548.     double foo (char);    /* function prototype */
  6549.  
  6550.     double bar;        /* variable declaration */
  6551.  
  6552.     bar = foo (0.0);    /* Is this legal? */
  6553.  
  6554. C Set/2 sems to think that this is legal, even at /W3.  If you add
  6555. the /Ka option you get something to the effect of "Precision may
  6556. be lost".
  6557.  
  6558. Now, according to K&R Second Edition, function coercion is performed
  6559. on prototyped function calls.  The example given in the book, seems
  6560. fairly reasonable:
  6561.  
  6562.     double sqrt(double);
  6563.  
  6564.     double root2;
  6565.  
  6566.     root2 = sqrt(2);
  6567.  
  6568. The argument 2 can be promoted from an int to a double.  But, as in
  6569. my first example, should a double be DEmoted to a char?  The entire
  6570. practice seems dubious at best, but I would be interested in knowing
  6571. what the ANSI Standard and the C Set/2 development team has to
  6572. say about it.
  6573.  
  6574. Chris Breisch
  6575. NT means Not Tested
  6576. Pritsker Corporation
  6577.  
  6578. ----- C-SET2 CFORUM appended at 20:07:24 on 92/10/05 GMT (by MCCRADY at TOROLAB6)
  6579. Subject: Function prototyping w/ coercion
  6580. Ref:     Append at 19:54:51 on 92/10/05 GMT (by IL48672 at HONE82)
  6581.  
  6582. A character and a double are both arithmetic types (ANSI 3.1.2.5,
  6583. "Types", which states
  6584.  
  6585.       The type char, the signed and unsigned integer types, and the
  6586.       enumerated types are collectively called integral types.  ...
  6587.  
  6588.       Integral and floating types are collectively called arithmetic
  6589.       types.
  6590.  
  6591. The rules for argument/parameter compatibility are the same as for the
  6592. assignment operator, as stated by ANSI 3.3.2.2 (Function Calls):
  6593.  
  6594.       If the expression that denotes the called function has a type
  6595.       that includes a prototype, the arguments are implicitely
  6596.       converted, _as if by assignment_, to the types of the
  6597.       corresponding parameters.
  6598.  
  6599. (Highlighting is mine).
  6600.  
  6601. The type compatibility rules for the assignment operator are in ANSI
  6602. 3.3.16.1, which states
  6603.  
  6604.       One of the following shall hold:
  6605.  
  6606.       - the left operand has qualified or unqualified arithmetic
  6607.         type and the right has arithmetic type.
  6608.  
  6609.       - etc...
  6610.  
  6611. Thus, assignment to and from char and double is allowed (although
  6612. dubious when going from double to char, as you pointed out).  That's
  6613. why C Set/2 gives a warning when truncation occurs; it can't be a
  6614. severe error, since ANSI requires this to be legal.
  6615.  
  6616. ++don;
  6617.  
  6618. ----- C-SET2 CFORUM appended at 21:58:58 on 92/10/06 GMT (by AMELINE at TOROLAB6)
  6619. Subject: Prices.
  6620. Ref:     None
  6621.  
  6622. ABSTRACT:  For a limited time only, all customers can acquire IBM
  6623.    Developer's WorkSet/2 (10G2995) (3.5-inch); (10G3363) (5.25-inch) for
  6624.    a one-time charge of only $375 -- a $520 savings off the normal $895
  6625.    one-time charge.
  6626.       Orders must be placed on or before April 6, 1993, if using a
  6627.    credit card by calling 1-800-3IBM-OS2 (9 a.m. to 9 p.m. Eastern
  6628.    time).  Orders must be placed on or after October 13, 1992, but no
  6629.    later than April 6, 1993, if using a purchase order by calling
  6630.    1-800-IBM-CALL (6 a.m. to 5 p.m. Mountain time).
  6631.    This discount cannot be combined with any other promotions.
  6632.    IBM reserves the right to modify or withdraw this promotion at any
  6633.    time.
  6634.  
  6635. Regards,
  6636. Ian Ameline
  6637.  
  6638. ----- C-SET2 CFORUM appended at 23:56:33 on 92/10/06 GMT (by MOONEY at TOROLAB6)
  6639. Subject: Prices.
  6640. Ref:     Append at 21:58:58 on 92/10/06 GMT (by AMELINE at TOROLAB6)
  6641.  
  6642. Canadian customers can call 1-800-465-7999.  The price is CDN$ 445.  Buy
  6643. early and buy often.
  6644.  
  6645. dave
  6646.  
  6647. ----- C-SET2 CFORUM appended at 17:55:48 on 92/10/08 GMT (by XXWESB07 at TORVMCOP)
  6648. Subject: No machine-state dump on access violation
  6649.  
  6650. According to chapter 9 of the C Set/2 User's Guide, when a C program
  6651. causes an access violation exception, the run-time library maps this
  6652. to the SIGSEGV signal. The default behavior for this is to produce a
  6653. machine-state dump and exit with code 99. I do not use any signal
  6654. handlers or use the raise() function yet I rarely get this machine-state
  6655. dump (I assume this to mean the PM window with the register dump). My
  6656. program just terminates on an access violation. At least IPMD is able
  6657. to catch the access violation. I am using CSD00014. My programs are
  6658. single or multiple threaded PM applications. Is there something I should
  6659. be doing in these PM programs to get the machine-state dump or do I have
  6660. to set up signal handers and do it myself?
  6661.  
  6662. Craig Knelsen, Information Systems Management Corp. (ISM)
  6663. One Research Drive, Regina, SK Canada S4S 7H1    (306) 781-5320
  6664.  
  6665. ----- C-SET2 CFORUM appended at 21:44:46 on 92/10/08 GMT (by BRENT at DALVM41B)
  6666. Subject: C Set/2 CSD00022
  6667.  
  6668. The latest C Set/2 CSD00022 is now available in 3.5" format for download from
  6669. the OS/2 BBS.  The 5.25" disk images are not available yet but I expect to get
  6670. them soon.  The following APARS have been added since the previous CSD00014.
  6671. (Diskette 1 contains the complete list of all APARS in the file CSDFIXES.LST)
  6672.  
  6673.   +-----------+---------------------------------------------------------------+
  6674.   | APAR      | PROBLEM DESCRIPTION                                           |
  6675.   | NUMBER    |                                                               |
  6676.   +-----------+---------------------------------------------------------------+
  6677.   | PJ05225   | The original fix for this problem may have caused other opti- |
  6678.   |           | mization problems.  Now we believe that we have a complete    |
  6679.   |           | fix for this problem.                                         |
  6680.   +-----------+---------------------------------------------------------------+
  6681.   | PJ05303   | Optimization problem: a parameter in an _Optlink function     |
  6682.   |           | that was assigned to a global register was not being kept     |
  6683.   |           | alive long enough.                                            |
  6684.   +-----------+---------------------------------------------------------------+
  6685.   | PJ05737   | A "data record too large" message from the linker was being   |
  6686.   |           | generated when a union where the first member was more than   |
  6687.   |           | 1024 bytes smaller than another member was being initialized  |
  6688.   |           | OR when an aggregate within a user data segment was unini-    |
  6689.   |           | tialized.                                                     |
  6690.   +-----------+---------------------------------------------------------------+
  6691.   | PJ05722   | The compiler was generating an IMUL instruction with an       |
  6692.   |           | operand size prefix but the constant was 32 bits long instead |
  6693.   |           | of 16-bits long.                                              |
  6694.   +-----------+---------------------------------------------------------------+
  6695.   | PJ05723   | Optimization problem: the compiler was trapping when trying   |
  6696.   |           | to optimize a floating-point intensive procedure where        |
  6697.   |           | floating-point spills and reloads were necessary.             |
  6698.   +-----------+---------------------------------------------------------------+
  6699.   | PJ05716   | The compiler was emitting stack probes when the size of all   |
  6700.   |           | local variables was greater than 4K instead of when the size  |
  6701.   |           | is greater than 2K.  In some cases, stack probes were being   |
  6702.   |           | emitted in the wrong place as well.  This would cause strange |
  6703.   |           | traps to occur in multi-threaded programs.                    |
  6704.   +-----------+---------------------------------------------------------------+
  6705.   | PJ05728   | Stack probes were not enabled during compilation of multi-    |
  6706.   |           | threaded runtime library code.                                |
  6707.   +-----------+---------------------------------------------------------------+
  6708.   | PJ05556   | The runtime library termination routine was not checking to   |
  6709.   |           | make sure runtime initialization had completed.               |
  6710.   +-----------+---------------------------------------------------------------+
  6711.   | NOAPAR    | Provides a means to set the number of spaces to be inserted   |
  6712.   |           | when tabs are encountered in the source file.  The default    |
  6713.   |           | tab expansion is 8 spaces, as it was in the original IPMD.  A |
  6714.   |           | new environment variable, PMDTAB, is now available to cus-    |
  6715.   |           | tomize the tab expansion constant.  For example, "SET         |
  6716.   |           | PMDTAB=5" causes 5 spaces to be inserted for every tab.       |
  6717.   +-----------+---------------------------------------------------------------+
  6718.   | PJ05863   | In multithreaded applications, the debugger would perform a   |
  6719.   |           | "Run" when a "Step over" or a "Step debug" was requested.     |
  6720.   +-----------+---------------------------------------------------------------+
  6721.   | PJ05148   | Internal debugger errors were sometimes reported when per-    |
  6722.   |           | forming a "Find" and when scrolling the source view.          |
  6723.   +-----------+---------------------------------------------------------------+
  6724.   | PJ05117   | Occasionally the debugger would automatically shut itself     |
  6725.   |           | down when creating or scrolling a source view.  Included in   |
  6726.   |           | this APAR is a problem in which the application is left       |
  6727.   |           | active when the debugger terminates after an exception.       |
  6728.   +-----------+---------------------------------------------------------------+
  6729.   | NOAPAR    | General internal PM debugging enhancements                    |
  6730.   +-----------+---------------------------------------------------------------+
  6731.   | NOAPAR    | General internal storage window enhancements                  |
  6732.   +-----------+---------------------------------------------------------------+
  6733.   | NOAPAR    | The name displayed for a subscripted array (i.e., x(i)) is    |
  6734.   |           | not always updated - if the value remains the same while the  |
  6735.   |           | name changes, the name is not updated.                        |
  6736.   +-----------+---------------------------------------------------------------+
  6737.   | NOAPAR    | If the stack window is open and data is entered in the appli- |
  6738.   |           | cation window, the stack view can display the wrong part name |
  6739.   |           | for a function name.  This can also cause the debugger to     |
  6740.   |           | crash if the focus is changed between the source, the stack,  |
  6741.   |           | and the application several times.                            |
  6742.   +-----------+---------------------------------------------------------------+
  6743.   | NOTE:  The fixes listed above were included in CSD0022.                   |
  6744.   +---------------------------------------------------------------------------+
  6745.  
  6746. Brent Allen - IBM LAN Systems Integration Services   Southlake, TX
  6747.  
  6748. ----- C-SET2 CFORUM appended at 22:31:21 on 92/10/08 GMT (by KUO at MANVM1) ---
  6749. Subject: MAKE file document
  6750.  
  6751. Hi.  Does anbody have document on how to prepare the input file for
  6752. NMAKE utility ?
  6753.  
  6754. thanks so much.
  6755.  
  6756. Shu-Rong Kuo  MANVMD1(KUO)
  6757.  
  6758. ----- C-SET2 CFORUM appended at 13:07:56 on 92/10/09 GMT (by BIGBILL at TOROLAB6)
  6759. Subject: No machine-state dump on access violation
  6760. Ref:     Append at 17:55:48 on 92/10/08 GMT (by XXWESB07 at TORVMCOP)
  6761.  
  6762. The dump is written to stderr, which for a PM program is by default
  6763. the great bit-bucket (to be recycled of course!).  Redirect stderr to
  6764. a file when starting the app, you should then see the dump.
  6765.  
  6766. Bill Sarantakos    OS/2 C++ Compiler Development     Toronto, Ontario
  6767.  
  6768. ----- C-SET2 CFORUM appended at 15:14:05 on 92/10/09 GMT (by PNWB016 at HONE82)
  6769. Subject: C Set/2 CSD00022
  6770. Ref: Append at 21:44:46 on 92/10/08 GMT (by BRENT at DALVM41B)
  6771.  
  6772. Brent: Thank-you! Hopefully this CSD will help with some of the
  6773. problems we are seeing running IPMD.
  6774.  
  6775. Wayne "Time to do a download" Holmes
  6776.  
  6777. ----- C-SET2 CFORUM appended at 17:32:53 on 92/10/09 GMT (by IL53645 at OS2CUST)
  6778. ..... C-SET2 CFORUM modified at 21:22:05 on 92/10/09 GMT (by IL53645 at OS2CUST)
  6779. Subject: TCP/IP Support
  6780.  
  6781. I am on a crusade to find some IBM supported C Compiler which will compile the
  6782. programs in the TCP/IP pgmmrs toolkit ($500).  I have C/2 V1.1, Workset/2, MS C
  6783. /C++ V7.0, Turbo C++, Quick C 2.5..............  IBM requires Microsoft C Versi
  6784. on 6.0a (not a current release) in order to compile the programs.  I bought bot
  6785. h programmers toolkits ($500 per pop) for OS/2 and DOS because I need socket pr
  6786. ograms on both ends.  Originally I bought C/2 V1.1 because it develops programs
  6787. for both platforms.  How about some support here for an unnecessary limitation?
  6788. This is a very interesting portability issue, when a particular downlevel compi
  6789. ler is required and is no longer available.
  6790.  
  6791.   + 2 hours later......
  6792.  
  6793. After opening a PMR, the Level II support guy gave me an APAR number dealing
  6794. with MS C/C++ V7.0.  For those using this see 'PJ04082'
  6795.  
  6796. ----- C-SET2 CFORUM appended at 14:38:50 on 92/10/11 GMT (by PETT at TOROLAB6)
  6797. Subject: No machine-state dump on access violation
  6798. Ref:     Append at 17:55:48 on 92/10/08 GMT (by XXWESB07 at TORVMCOP)
  6799.  
  6800. Dirty tricks to get the C Set/2 dump from a PM program; invoke the PM
  6801. program, and redirect handle 2 to a file, like this:
  6802.  
  6803. pmprgm 2> dump.log
  6804.  
  6805. Your C Set/2 termination dump will be left in dump.log.  You can do the
  6806. same thing from within the program by forcing file handle 2 to point to
  6807. a dump file.  A simple way to do this is as follows:
  6808.  
  6809.    int handle = open("dump.log", O_WRONLY | O_CREAT, S_IREAD | S_IWRITE);
  6810.    if (handle != -1 && 2 != handle) {
  6811.       dup2(handle,2);
  6812.       close(handle);
  6813.    }
  6814.  
  6815.    '{' and '}' are open and close braces respectively.
  6816.  
  6817. Roger Pett
  6818.  
  6819. ----- C-SET2 CFORUM appended at 12:33:09 on 92/10/12 GMT (by HARGRAVE at BCRVMPC1)
  6820. Subject: TCP/IP Support
  6821. Ref:     Append at 17:32:53 on 92/10/09 GMT (by IL53645 at OS2CUST)
  6822.  
  6823. Although I am not a TCP/IP expert, the OS/2 TCP/IP 1.2 libraries are
  6824. built with MS C 6.0 (and for some reason the stack probe calls were left
  6825. in.) If you use IBM C/2 1.1 (not C Set/2) to build your TCP/IP app then
  6826. the name of the stack probe routine is different than MS C 6.0.
  6827.  
  6828. The following assembly routine I wrote,
  6829. when assembled and linked in, will allow
  6830. an IBM C/2 1.1 program to use the static OS/2 TCP/IP 1.2 libraries.
  6831. (This is for the large code models only.)
  6832.  
  6833. EXTRN   __chkstk:FAR
  6834. _TEXT   SEGMENT WORD PUBLIC 'CODE'
  6835.         ASSUME  CS: _TEXT
  6836.         PUBLIC  __aFchkstk
  6837. __aFchkstk PROC FAR
  6838.         jmp     FAR PTR __chkstk
  6839. __aFchkstk ENDP
  6840. _TEXT   ENDS
  6841. END
  6842.  
  6843. I hope this solves your problem.
  6844.  
  6845. BJ Hargrave
  6846.  
  6847. ----- C-SET2 CFORUM appended at 18:11:43 on 92/10/12 GMT (by IL03421 at OS2CUST)
  6848. Subject: C Set/2 CSD CS00022 Installation Problem
  6849.  
  6850. I downloaded C Set/2 CSD CS00022 from this BBS and tried to run the
  6851. SERVICE.EXE program.  The program then started the PM screen and
  6852. prompted me to insert CSD 00013 Disk 2.  I inserted the second disk
  6853. and it gave me the same message.  Is this the right CSD or is there
  6854. some mixup with the SERVICE.EXE parameters?  What is the recommened
  6855. method for installing CS00022?
  6856.  
  6857. ----- C-SET2 CFORUM appended at 21:25:21 on 92/10/12 GMT (by BRENT at DALVM41B)
  6858. Subject: C Set/2 CSD CS00022 Installation Problem
  6859. Ref: Append at 18:11:43 on 92/10/12 GMT (by IL03421 at OS2CUST)
  6860.  
  6861. Sounds like computer gremlins.  The files on the BBS and running SERVICE
  6862. should work. I'm not sure what the problem might be other than a bad
  6863. diskette or something like that.  I've installed this CSD myself and I also
  6864. re-downloaded the files to verify that they are correct on the BBS.  About
  6865. the only thing I could suggest is that you reformat those diskettes (make
  6866. sure you don't have any bad sectors) then rebuild the disks.
  6867.  
  6868. Brent Allen - IBM LAN Systems Integration Services     Southlake, TX
  6869.  
  6870. ----- C-SET2 CFORUM appended at 21:48:51 on 92/10/12 GMT (by CRUISE at YKTVMH)
  6871. Subject: C Set/2 CSD CS00022 Installation Problem
  6872. Ref:     Append at 21:25:21 on 92/10/12 GMT (by BRENT at DALVM41B)
  6873.  
  6874. Did you run service. or A:\service. If the first you could
  6875. have gotten an old copy of service and if this was the one for
  6876. cs00013. Gotcha!!!
  6877. Anth
  6878.  
  6879. ----- C-SET2 CFORUM appended at 22:44:58 on 92/10/12 GMT (by BIGBILL at TOROLAB6)
  6880. Subject: C Set/2 CSD CS00022 Installation Problem
  6881. Ref:     Append at 21:48:51 on 92/10/12 GMT (by CRUISE at YKTVMH)
  6882.  
  6883. ...or thought you wrote CSD 22 over disk 1 of CSD 13 but didn't (for
  6884. any number of reasons).
  6885.  
  6886. Bill Sarantakos    OS/2 C++ Compiler Development     Toronto, Ontario
  6887.  
  6888. ----- C-SET2 CFORUM appended at 15:46:24 on 92/10/14 GMT (by IL03421 at OS2CUST)
  6889. Subject: C Set/2 CSD CS00022 Install Problems
  6890.  
  6891. I read all the messages and decided to re-download.  This is what I did:
  6892.  
  6893.   o  Loged on to the OS2BBS via my IIN modem connection to IBMLink
  6894.   o  Moved to the corrective service library
  6895.   o  Selected the C Set/2 CSD file CS00022
  6896.   o  Selected the fist and second 3.5inch disks for downloading
  6897.   o  Selected download selected items and proceeded with the download
  6898.   o  Opened an OS/2 window and recieved the SHOWTOPC.CMD file into
  6899.      a new empty directory
  6900.   o  Once recieved the SHOWTOPC.CMD needs to be edited to remove the
  6901.      main frame drive specification A: (I have not been able to recieve
  6902.      a file without doing this)
  6903.   o  executed the SHOWTOPC.CMD from the new directory and waited for
  6904.      the download to complete (in my case this is nearly eight hours)
  6905.   o  The two files were recieved and compared to the original download
  6906.      and found to be the same name and size
  6907.              CSET2CB1.DSK  1470049
  6908.              CSET2CB2.DSK  1306721
  6909.   o  I noticed that the files were not the size indicated on the OS2BBS
  6910.      download screens (1470139 and 1306801 respectively)
  6911.  
  6912.   o  I then rebuilt the disk images using the LOADDSKF.EXE utility
  6913.   o  The root directory of disk 1 was the same
  6914.   o  I made sure I was loged off the network and ran SERVICE by
  6915.      typing at A:¢ >A:¢SERVICE.EXE
  6916.   o  The program jumped to the PM screen as before and gave the
  6917.      same message to remove the disk from drive A and insert the
  6918.      IBM  C Set/2 Corrective Service Level #CS00013 Diskett 2 into
  6919.      Drive A.
  6920.  
  6921. I can only conclude that somehow I am getting the wrong files.  This has
  6922. now cost our company a great deal of time and money.  I would appreciate a
  6923. phone call to help clear up this problem.  I can be reached at my desk
  6924. at (414) 673-8733 7:30a to 5:00p central time.  I need theses fixes and
  6925. I need them now!
  6926.  
  6927. ----- C-SET2 CFORUM appended at 17:04:27 on 92/10/14 GMT (by KDDD7A4 at OS2CUST)
  6928. Subject: C Set/2 Debugger and DLLs
  6929.  
  6930. I have written a REXX function in a DLL using IBM C SET/2.  How do I debug
  6931. the DLL with the Debugger facility?
  6932.  
  6933. Kevin D. Doglio
  6934.  
  6935. ----- C-SET2 CFORUM appended at 19:15:48 on 92/10/14 GMT (by BRENT at DALVM41B)
  6936. Subject: C Set/2 CSD CS00022 Install Problems
  6937. Ref: Append at 15:46:24 on 92/10/14 GMT (by IL03421 at OS2CUST)
  6938.  
  6939. It sounds like you've done everything correctly and the file sizes you
  6940. report are correct.  The file size listed on the Tagged Items Screen is
  6941. just a close approximation based on the record length and number of records
  6942. in the file as it exists on the VM system (the Package Description screen
  6943. lists the actual PC file size).
  6944.  
  6945. The only suggestion I have would be to call the Support Center at
  6946. 1-800-237-5511.  They could contact the appropriate developers to have the
  6947. problem looked at.  Sorry I don't have a better answer for you.
  6948.  
  6949. Brent Allen - IBM LAN Systems Integration Services     Southlake, TX
  6950.  
  6951. ----- C-SET2 CFORUM appended at 00:17:07 on 92/10/16 GMT (by NAAO3IY at HONE82)
  6952. Subject: C Set/2 DDE4SBS missing stuff?
  6953. Ref: Append at 19:15:48 on 92/10/14 GMT (by BRENT at DALVM41B)
  6954.  
  6955. I'm just beginning to learn how to use C Set/2, and I seem to
  6956. have a problem -- if I compile with /Gd+, I frequently get an
  6957. EXE that will not load because it wants something (_matherr and exit
  6958. are examples) not in DDE4SBS.DLL.  SYS127.  CS00022 is on.
  6959.  
  6960. John Kennedy, Hoechst Celanese (The OS/2 Hobbit)
  6961.  
  6962. ----- C-SET2 CFORUM appended at 11:58:46 on 92/10/16 GMT (by KEENLEY at TOROLAB6)
  6963. Subject: C Set/2 DDE4SBS missing stuff?
  6964. Ref:     Append at 00:17:07 on 92/10/16 GMT (by NAAO3IY at HONE82)
  6965.  
  6966. Please make sure you link with /NOI when you dynamically link the
  6967. C runtime.  If you don't the linker converts everything to upper case.
  6968.  
  6969. John Keenleyside  OS/2 Compiler Dev.
  6970.  
  6971. ----- C-SET2 CFORUM appended at 16:22:28 on 92/10/16 GMT (by IL03421 at OS2CUST)
  6972. Subject: CSD CS00022 Install Fix
  6973.  
  6974. Thanks to an OS/2 user I resolved my installation problem.  It turns out
  6975. that SERVICE.EXE builds a temp file on the root directory of the hard disk
  6976. that was left there because the CSD 13 install failed.  When the CSD 13
  6977. install failed I got the files off Compuserv and installed them with the
  6978. PKUnzip and XCOPY.  The temp file was never deleted.
  6979.  
  6980. To solve the problem delete the file namedCSF$_SEL.000 in the root
  6981. directory of the hard disk. The SERVICE.EXE and install for CSD 22 then
  6982. ran fine.
  6983.  
  6984. To IBM SERVICE.EXE developers:
  6985. The SERVICE.EXE program should check to see if the temp file is still there
  6986. and if a CSD install is not complete, but since all CSD are accumulative,
  6987. give the user the option to ignore the old CSD and install the new one.
  6988.  
  6989. ----- C-SET2 CFORUM appended at 16:39:28 on 92/10/16 GMT (by V2TE4RP at POKVMCP2)
  6990. Subject: L2029 Error
  6991. From: Roy R. Pineda(V2TE4RP at POKVMCP2,Tieline 532-5635)
  6992.  
  6993. I am compiling and linking a program that calls
  6994. a PS+ API.  I received this error:
  6995. Testlog.obj(Testlog.c) : error L2029 : 'ALOGOn' : unresolved external
  6996.  
  6997. When I compile and link this same program on my
  6998. co-worker's machine it compiles and links correctly. I have copied his
  6999. config.sys file, and I have created the same directories as him.
  7000. We have compared the ALOGON.DLL & ALOGON.LIB files, and they both
  7001. are the same. We also use the same exact makefile.
  7002.  
  7003. Please, tell me what is going on and how it can be resolved???
  7004. I would like to use C-SET2 as soon as possible...
  7005.  
  7006. Anxiously Awaiting,
  7007. Roy                                                                      
  7008.  
  7009. ----- C-SET2 CFORUM appended at 16:51:17 on 92/10/16 GMT (by IL02075 at OS2CUST)
  7010. Subject: LINK386 & 16 Bit API's
  7011.  
  7012. > I posted this item on the toolkit forum but it does not seem to be
  7013. > getting much response so I am posting it here also.
  7014. Subject: Link386 W/ 16Bit API
  7015.  
  7016.   I am creating a DLL to access a set of 16 bit API's (Database Manager
  7017. mostly but some others).
  7018.   I allways receive the Link386 Message L4008about 25 times for
  7019. the first function declared APIENTRY16. Subsequent functionsdeclared
  7020. as APIENTRY16 do not generate these messages.
  7021. The MAP file indicates that the function that generated this message
  7022. is placed in its own segment called SEG16T_funcname type CODE 16 Bit.
  7023. All other functions appear to be placed in SEG16T_funcname also.
  7024. The CODE16 Segment contains only EDC3216.ASM.
  7025. Another problem is that as the DLL gets large the APIENTRY16 functions
  7026. towards the and cause an abend. (I imagine this is because the
  7027. SEG16T_funcname segment is growing over the segment boundary).
  7028.   I have tried explicitly placingfunctions in separate segments
  7029. but the documentation is sketchy. I tried #pragma alloc_text
  7030. but this only creates 32bit Segments. I tried creating SEGMENT(S)
  7031. in my module definition file but I can't find documentation
  7032. to explicitly create a 16bit CODE segment (CLASS Code 16BIT).
  7033.  
  7034. Thanks
  7035.  
  7036. > I have discovered that the number of times I recieve the message
  7037. > is the same as the number of functions declared as APIENTRY16
  7038. > within the object module I am trying to link.
  7039.  
  7040. Mike Rowan, Mainline Information Systems  Tallahassee Fl
  7041.  
  7042. ----- C-SET2 CFORUM appended at 19:29:54 on 92/10/16 GMT (by NAAO3IY at HONE85)
  7043. Subject: C Set/2 DDE4SBS missing stuff?
  7044. Ref: Append at 11:58:46 on 92/10/16 GMT (by KEENLEY at TOROLAB6)
  7045.  
  7046. Yup, /NOI did it.  I bet that's an RTFM, huh?  (As it happens, just
  7047. at the moment the manuals are in one place and I'm in another....)
  7048.  
  7049. Thanx.
  7050.  
  7051. John Kennedy, Hoechst Celanese (The OS/2 Hobbit)
  7052.  
  7053. ----- C-SET2 CFORUM appended at 20:23:25 on 92/10/16 GMT (by NAAO3IY at HONE85)
  7054. Subject: 66 Lines
  7055.  
  7056. I give up -- where in the world did you find printers that conveniently print
  7057. 66 real lines to the page?  It didn't take me long to whip together a REXX
  7058. procedure to copy xxxxxxxx.lst files to our 4029 with an appropriately-scaled
  7059. Courier font, and I suppose LaserJet III users could do the same, but WHY 66?
  7060. Enquiring minds want to know!
  7061.  
  7062. John Kennedy, Hoechst Celanese (The OS/2 Hobbit)
  7063.  
  7064. ----- C-SET2 CFORUM appended at 20:51:28 on 92/10/16 GMT (by 40953586 at EHONE70)
  7065. Subject: 66 Lines
  7066. Ref:     Append at 20:23:25 on 92/10/16 GMT (by NAAO3IY at HONE85)
  7067. Reply-to: Jurrie Lulofs <LULOFS@NLVM1>
  7068.  
  7069. Take an 8.5 x 11 inch sheet of paper, print at 6 lines per inch
  7070. and you get 66 lines.
  7071.  
  7072. You can use the /Lp<lines> compiler option to have C Set/2 use the
  7073. lines-per-page setting of your choice (ie. /Lp80 to get 80 lines per
  7074. page).
  7075.  
  7076. jurrie
  7077.  
  7078. ----- C-SET2 CFORUM appended at 20:36:54 on 92/10/17 GMT (by SBRZAYD at OS2CUST)
  7079. Subject: Moving process into thread dies
  7080.  
  7081. I have a C Set PM program which calls a function that does a lot of
  7082. heavy duty processing by calling 16-bit DLL entry points. This all
  7083. works fine. However, when I put this processing function into a thread,
  7084. it blows up in the 16-bit code everytime, although in different places.
  7085.  
  7086. It appears that there is a stack overflow happening (though I'm not
  7087. positive). I though that this was impossible in threads 2 through n.
  7088. (although I realize that this is not necessarily true for 16-bit code).
  7089.  
  7090. My #pragma stack16 is set to 45K, and I'm passing in a stacksize of
  7091. 50K on the call to _beginthread. The main program has a total
  7092. preallocated stack of 100K. Bumping the various values up does nothing.
  7093. It goes without saying that I'm compiling with /Gm+.
  7094.  
  7095. HELP! I'm losing my mind very quickly on this one...
  7096.  
  7097. Chris Corry
  7098. American Management Systems
  7099.  
  7100. ----- C-SET2 CFORUM appended at 19:41:26 on 92/10/18 GMT (by AMELINE at TOROLAB6)
  7101. Subject: Moving process into thread dies
  7102. Ref:     Append at 20:36:54 on 92/10/17 GMT (by SBRZAYD at OS2CUST)
  7103.  
  7104. Chris,
  7105.  
  7106.    Make sure you have CSD 22. A few fixes to stack probes, and the code
  7107. that calls 16 bit code may solve the problems. Make sure also that
  7108. you're not disabling stack probes. AS an experiment, try bumping the
  7109. stack in the _beginthread to 256K, and see if the problem goes away.
  7110. (Remember that since the stack is sparse, you won't actually use 256K
  7111. unless your program actually needs it -- stacks on threads you start
  7112. up are almost free.)
  7113.  
  7114. Regards,
  7115. Ian Ameline
  7116.  
  7117. ----- C-SET2 CFORUM appended at 21:14:29 on 92/10/18 GMT (by SBRZAYD at OS2CUST)
  7118. Subject: Moving process into thread dies
  7119. Ref: Append at 19:41:26 on 92/10/18 GMT (by AMELINE at TOROLAB6)
  7120.  
  7121. Ian's in on the weekend; there is a God!
  7122.  
  7123. I got the CSD's yesterday thinking that they might help but they
  7124. haven't. Bumping the thread's stack to 256K doesn't help either.
  7125.  
  7126. I walked all the way into the code today (it's doing OCR and the code
  7127. is pretty hairy so I did this only as a last resort). I followed SP down
  7128. to the 16-bit calls, it made it into the first function fine. (Aside:
  7129. SP radically changed when I was in the 16-bit code. Running SP through
  7130. CRMA didn't give me an address that was in the thread's stack as returned
  7131. by DosGetInfoBlocks()... at least I'm pretty sure that it wasn't... I
  7132. kinda forget. I know that the 16-bit stack comes out of the 32-bit stack
  7133. but is this the stack of the main thread or my second one?) I was able to
  7134. follow it several levels down; it crashed on the actual call to a function
  7135. called Derive(). SD386 stepped into the { of the Derive function but when
  7136. I tried to go one more step it died. Derive has tons of local vars, so
  7137. that puts a lot on the stack but not THAT much... Ideas?
  7138.  
  7139. Suggestions always greatly appreciated,
  7140.  
  7141. Chris Corry
  7142. American Management Systems
  7143.  
  7144. PS I was about to ask this one up on CS. I seem to see you up there a
  7145.    lot more often than here... 8-)
  7146.  
  7147. ----- C-SET2 CFORUM appended at 02:54:35 on 92/10/19 GMT (by DEV2081 at OS2CUST)
  7148. Subject: Moving process into thread dies
  7149. Ref: Append at 21:14:29 on 92/10/18 GMT (by SBRZAYD at OS2CUST)
  7150.  
  7151. I don't know anything about what type of program your code is for, but
  7152. if it just crunches on its own data, then for the same input data a stack
  7153. overflow would always occur at the same place.
  7154.  
  7155. Often with multi-threaded programs, unpredictable (often inexplicable)
  7156. crashes are due to unprotected shared data getting trashed.  Things
  7157. like assuming that a global unprotected variable will retain a set value,
  7158. or that a pointer will remain valid, etc. etc.
  7159.  
  7160. To test for this you can run the threads synchronously--waiting for a thread
  7161. to die, using dosentercriticalsection, posting event sems, etc.
  7162.  
  7163. Also if you have more than 16 megs of mem  I think you have to use tiled
  7164. memory.  But I don't have more than 16 megs so I've tested this one out.
  7165.  
  7166. -Gary
  7167.  
  7168. ----- C-SET2 CFORUM appended at 07:56:56 on 92/10/19 GMT (by DEV3543 at HONE83)
  7169. Subject: C Set/2 CSD CS00022 Installation Problem
  7170. Ref: Append at 22:44:58 on 92/10/12 GMT (by BIGBILL at TOROLAB6)
  7171.  
  7172. BigBill,
  7173.  
  7174. Can you help me out ?
  7175.  
  7176. I know somebody that got the C++ compiler (I assume on floppies) and I would
  7177. like to get it myself. Is there any way that I could get the BETA of whatever
  7178. is available at this time ?
  7179.  
  7180. The reason that I ask is that I don't have a job right now and wanted to start
  7181. writing some code with the compiler.  If you can help me out, you know *I*
  7182. would appreciate it...  I'll leave you my phone number just in case...
  7183. (818) 989-4423
  7184.  
  7185. Is there anyway for me to send you Email on here ? I tried to use Email on the
  7186. OS2BBS but it couldn't find you. It seems that only mortals outside of IBM can
  7187. be reached by my ID.
  7188.  
  7189. Alan <praying that your from the *NEW* IBM> DuBoff - Bunker Hill Software
  7190.  
  7191. ----- C-SET2 CFORUM appended at 15:33:33 on 92/10/19 GMT (by AMELINE at TOROLAB6)
  7192. Subject: Moving process into thread dies
  7193. Ref:     Append at 21:14:29 on 92/10/18 GMT (by SBRZAYD at OS2CUST)
  7194.  
  7195.    Make sure that you're using /Gt. To see if it's a stack probe
  7196. problem, try calling the following routine right as your thread starts
  7197. up:
  7198.  
  7199. void probe(int stacksize)
  7200. {
  7201.    char *p = _alloca(stacksize);
  7202.  
  7203.    while (stacksize > 0)
  7204.       *(p+(stacksize-=2048)) = 0;
  7205. }
  7206.  
  7207.    That will cause the stack to be probed properly, and make sure you're
  7208. not falling into that hole.
  7209.  
  7210.    Note that the compiler doesn't use CRMA to convert the pointers
  7211. to 16 bit -- it uses DosFlatToSel instead. It is possible that it's
  7212. not working as it should.
  7213.  
  7214. Regards,
  7215. Ian Ameline
  7216.  
  7217. ----- C-SET2 CFORUM appended at 22:04:27 on 92/10/19 GMT (by MJDAVID at SFOVMIC1)
  7218. Subject: C-Set/2 fixes
  7219. I downloaded the latest fixes for C Set/2 and tried to apply them to my system.
  7220. The problem that I ran into is that the fix install program would not let me
  7221. apply the fixes to a Bernoulli drive; which is where the code is located.  I
  7222. then decided to manually unpack the files and install them in the proper dir..
  7223. After doing this I tried to compile a couple of programs and kept getting error
  7224. s that Drive F (Bernoulli drive) was not functioning.  I reinstalled the
  7225. original GA code and tried to compile again and everything worked fine.
  7226.  
  7227. My concern is that if the original code can be installed on the Ber. Drv. then
  7228. one should be able to apply fixes also. I do not know if I messed somthing up
  7229. when I manually installed the fixes or if with them the compiler will nolonger
  7230. function when installed on a Bernoulli.
  7231.  
  7232. If you would like a more detailed description of the problem please let me
  7233. know what type of info you want.  I am willing to reinstall the fixes to try
  7234. to replicate the problem.
  7235.  
  7236. Dave Mook
  7237.  
  7238. ----- C-SET2 CFORUM appended at 23:31:40 on 92/10/19 GMT (by MOONEY at TOROLAB6)
  7239. Subject: C Set/2 CSD CS00022 Installation Problem
  7240. Ref:     Append at 07:56:56 on 92/10/19 GMT (by DEV3543 at HONE83)
  7241.  
  7242. The only people outside of IBM who should have copies of the C++ beta
  7243. have signed in blood and promised their firstborn, etc.  We want to keep
  7244. it that way until we are certain that the code is robust enough to go
  7245. into the hands of people out in the Real World.  We're not at that point
  7246. yet, but we should be Real Soon Now.  To get your name on the waiting
  7247. list, join the DAP.  To join, call (407) 982-6408.  You'll get a CD ROM
  7248. with the code on it when it's ready.  I can't say precisely when that
  7249. will be, but we'd *really* love to have it at that little show in the
  7250. city where all the Elvis impersonators are...
  7251.  
  7252. dave
  7253.  
  7254. ----- C-SET2 CFORUM appended at 06:44:32 on 92/10/20 GMT (by DEV3543 at HONE85)
  7255. Subject: C Set/2 CSD CS00022 Installation Problem
  7256. Ref: Append at 23:31:40 on 92/10/19 GMT (by MOONEY at TOROLAB6)
  7257.  
  7258. Dave,
  7259.  
  7260. =====>
  7261. The only people outside of IBM who should have copies of the C++ beta
  7262. have signed in blood and promised their firstborn, etc.
  7263. <=====
  7264.  
  7265. Well, it's too late for my firstborn cause he was taken already from another
  7266. vendor...you guys are tough...<g>
  7267.  
  7268. =====>
  7269. We want to keep it that way until we are certain that the code is robust
  7270. enough to go into the hands of people out in the Real World.  We're not at
  7271. that point yet, but we should be Real Soon Now.  To get your name on the
  7272. waiting list, join the DAP.  To join, call (407) 982-6408.  You'll get a CD
  7273. ROM with the code on it when it's ready.  I can't say precisely when that will
  7274. be, but we'd *really* love to have it at that little show in the city where
  7275. all the Elvis impersonators are...
  7276. <=====
  7277.  
  7278. I figured that you must be getting it wrapped up if you expect to get it
  7279. pressed on the CDROM for the show...
  7280.  
  7281. I am on DAP already, and would have like to get it sooner. I wouldn't care if
  7282. it crashed my system on me, I'll give it it's own partition with own OS.
  7283.  
  7284. I can wait a couple weeks, but it's right at this moment now that I don't have
  7285. work...<sigh...> Oh well, I have another competitor's C++ compiler that is in
  7286. BETA, I just don't like it...(but I do have ObjectPM BETA also which looks
  7287. pretty strong). I'm looking more to use IBM C++ with ObjectPM though...
  7288.  
  7289. Alan DuBoff - Bunker Hill Software
  7290.  
  7291. ----- C-SET2 CFORUM appended at 13:58:39 on 92/10/21 GMT (by SBRZAYD at HONE81)
  7292. Subject: Moving process into thread dies
  7293. Ref: Append at 15:33:33 on 92/10/19 GMT (by AMELINE at TOROLAB6)
  7294.  
  7295. Well, it usually only takes one good idea to fix even the most vicious of
  7296. bugs... unfortunately (and despite many good suggestions) I still haven't
  7297. been able to figure out what's going on here.
  7298.  
  7299. Ian, I tried the little code bite that you posted and it hosed the
  7300. entire machine (or at least PM). I'm not really sure what the code you
  7301. posted is trying to do, although it looks like it will generate a guard
  7302. page fault and force the stack probes to enlarge the stack. Since memory
  7303. allocated with _alloca is never tiled isn't there a conflict with using
  7304. the /Gt switch? (or perhaps that is the whole point of using _alloca...?)
  7305.  
  7306. Gary, you are absolutely right. For the same set of inputs a "static"
  7307. set of routines that just crunches data should fault at the same place
  7308. everytime. A little bit of investigation reveals that my earlier comments
  7309. were in error, and that it IS blowing up in the same place (namely the
  7310. call to the Derive() routine mentioned in previous posts). Since the
  7311. thread is autonomous and does not share any variables with the main
  7312. thread (well, it does but the main thread doesn't touch them) I don't
  7313. think that anything is getting stepped on by main.
  7314.  
  7315. Just to veryify that I'm not doing anything stupid I'm going to post
  7316. my compile and link switches:
  7317.    ICC      /c /Ss /Gm+ /Gt /Ti /W2 $(INCDIRS) .\$*.c
  7318.    LINK386  /CO /NOP /NOI /ST:0x19000 /NOE /PM:PM
  7319.  
  7320. I'm tempted to rewrite the program as 16-bit and see if I run into the
  7321. same problems, but this is a real hassle and I _very much_ want to
  7322. avoid doing it. I'm also wondering if maybe the Service Pack might have
  7323. some effect...
  7324.  
  7325. As always, all comments and advice are greatly appreciated.
  7326.  
  7327. Chris Corry
  7328. American Management Systems
  7329.  
  7330. ----- C-SET2 CFORUM appended at 14:00:24 on 92/10/21 GMT (by TCC3824 at OS2CUST)
  7331. Subject: LINK386 & 16 Bit API's
  7332. Ref: Append at 16:51:17 on 92/10/16 GMT (by IL02075 at OS2CUST)
  7333.  
  7334. I posted this question on IBMLINK and got this response.
  7335. My code is working, However, all I am doing is calling a batch job and passing
  7336. it parms.  I do not return anything to the client pgm.
  7337.  
  7338.   Abstract: OS/2 DBM ARI APPLICATION AND C SET/2 WARNING MESSAGE
  7339.             L4008.
  7340.  
  7341.  I have used the sample ARI code (make file, and top of server
  7342.  procedure) from the Client Server book 2nd Ed (pg 805 & 849)
  7343.  and have placed the examples in my code.  Every thing works fine
  7344.  but I am getting one warning message that I have been unable to
  7345.  resolve.  It reads
  7346.  mdl.obj(MDL.c) : Warning L4008: aliased fix-up to non-alias object
  7347.  near 2 in object SEG16T_MDL.
  7348.  
  7349.  The explaination of the error does not mean anything to me.  Can
  7350.  you give me a better expaination and what I need to do to eliminate
  7351.  it.
  7352.  
  7353.  thanks, Kevin
  7354.  R:
  7355.  I have sent this problem to some development people to find out
  7356.  if they have seen this before, because no one here has encountered it.
  7357.  
  7358.  Thanks for your patience.
  7359.  
  7360.  =-=-=-=> 10/19/92 <=-=> 14:55:58 <=-=> MLG/DSC       <=-=-=-=
  7361.  
  7362.  R: Kevin, I found out that the linker generates this message for
  7363.  no discernible reason.  It occurs whenever you have code with a 16-bit
  7364.  entyr point, like :
  7365.  
  7366.             void_Far16 foo() {}
  7367.  
  7368.  Just ignore the message. The said 99 out of 100 times its useless. Thanks
  7369.  
  7370.  =-=-=-=> 10/20/92 <=-=> 13:30:54 <=-=> MLG/DSC       <=-=-=-=
  7371.  
  7372. Kevin McConnell   512-338-7457  Continuum    Austin Tx
  7373.  
  7374. ----- C-SET2 CFORUM appended at 14:36:46 on 92/10/21 GMT (by MOONEY at TOROLAB6)
  7375. Subject: LINK386 & 16 Bit API's
  7376. Ref:     Append at 14:00:24 on 92/10/21 GMT (by TCC3824 at OS2CUST)
  7377.  
  7378. Yikes!  Beware that that is an answer given by me, a compiler person, to
  7379. describe the behaviour of the linker.  Don't take it as the authoritative
  7380. word on the matter, only as a little bit of wisdom passed on as the
  7381. result of having seen the error message many times myself.  Please
  7382. recommend to the IBMLink person that he go to the linker developers to
  7383. get a more authoritative response.
  7384.  
  7385. dave
  7386.  
  7387. ----- C-SET2 CFORUM appended at 14:43:48 on 92/10/21 GMT (by IL02075 at OS2CUST)
  7388. Subject: LINK386 & 16 Bit API's
  7389. Ref: Append at 14:00:24 on 92/10/21 GMT (by TCC3824 at OS2CUST)
  7390.  
  7391.  I am not so worried about this error message because I now have
  7392. my DLL's working/limping. I had to split them up because the
  7393. SEG16T_function Code segment was growing beyond addressable bounds.
  7394.  The problem I believe stems from poor 16bit code/data support
  7395. by LINK386. The module definition file statements CODE and DATA
  7396. seem only to work for 32 bit segments. The same goes for
  7397. the #pragma statements I mentioned in the original append.
  7398.  There may be a way to explicitly lay out your 16 bit code
  7399. and data segments but the documentation included with the
  7400. toolkt20 does not mention it.
  7401.  Is there a more comprehensive LINK386 manual?
  7402.   Also did you use SQLZ_HOLD_PROC or SQLZ_DISCONNECT_PROC
  7403. to return from your ARI procedure. I am having trouble with
  7404. this (please see my append 'DARI...' on the Database Manager
  7405. forum.
  7406.        Thanks
  7407.  
  7408. Mike Rowan, Mainline Information Systems  Tallahassee Fl
  7409.  
  7410. ----- C-SET2 CFORUM appended at 22:08:59 on 92/10/22 GMT (by NAAO3IY at HONE85)
  7411. Subject: 66 Lines
  7412. Ref: Append at 20:51:28 on 92/10/16 GMT (by 40953586 at EHONE70)
  7413.  
  7414. >Take an 8.5 x 11 inch sheet of paper, print at 6 lines per inch
  7415. >and you get 66 lines.
  7416.  
  7417. Sure -- but the effect is unsightly, because it leaves no margins, and
  7418. doesn't work at all on laser printers, which require margins.
  7419.  
  7420. >You can use the /Lp<lines> compiler option to have C Set/2 use the
  7421. >lines-per-page setting of your choice (ie. /Lp80 to get 80 lines per
  7422. >page).
  7423.  
  7424. Again, yes, but why the default at 66?
  7425.  
  7426. John Kennedy, Hoechst Celanese (The OS/2 Hobbit)
  7427.  
  7428. ----- C-SET2 CFORUM appended at 15:48:24 on 92/10/23 GMT (by MOONEY at TOROLAB6)
  7429. Subject: 66 Lines
  7430. Ref:     Append at 22:08:59 on 92/10/22 GMT (by NAAO3IY at HONE85)
  7431.  
  7432. Because we had to make the default *something*.  I don't mean to be glib,
  7433. but there is no value which makes sense for all printers.  So we chose
  7434. the value which makes sense for continuous-feed printers, namely 66.  If
  7435. this doesn't work for your printer, use -Lp to change it.
  7436.  
  7437. dave
  7438.  
  7439. ----- C-SET2 CFORUM appended at 16:41:31 on 92/10/23 GMT (by NAAO3IY at HONE81)
  7440. Subject: 66 Lines
  7441. Ref: Append at 15:48:24 on 92/10/23 GMT (by MOONEY at TOROLAB6)
  7442.  
  7443. Actually, for me it's easier to use a scalable font than to change -Lp,
  7444. now that I've got the REXX procedure to do so anyway, and since WorkFrame
  7445. doesn't have permanent settings.
  7446.  
  7447. But surely people who A) do OS/2 development and B) print their compiler
  7448. listings mostly have laser printers?
  7449.  
  7450. Or am I just displaying my mainframe background?
  7451.  
  7452. John Kennedy, Hoechst Celanese (The OS/2 Hobbit)
  7453.  
  7454. ----- C-SET2 CFORUM appended at 18:46:27 on 92/10/23 GMT (by MOONEY at TOROLAB6)
  7455. Subject: 66 Lines
  7456. Ref:     Append at 16:41:31 on 92/10/23 GMT (by NAAO3IY at HONE81)
  7457.  
  7458. I was afraid that *I* was betraying C Set/2's mainframe heritage by
  7459. mentioning continuous-feed printers.  Surely everybody here has a 1974-
  7460. vintage printer cranking out reams of listings on 132-column green-and-
  7461. white lined paper?
  7462.  
  7463. dave.. No I don't have an 18-year-old printer, and don't call me Shirley
  7464.  
  7465. ----- C-SET2 CFORUM appended at 22:30:21 on 92/10/23 GMT (by DEV3543 at HONE83)
  7466. Subject: 66 Lines
  7467. Ref: Append at 16:41:31 on 92/10/23 GMT (by NAAO3IY at HONE81)
  7468.  
  7469. John,
  7470.  
  7471. >But surely people who A) do OS/2 development and B) print their compiler
  7472. >listings mostly have laser printers?
  7473.  
  7474. I wouldn't assume that. While I have a laser printer I wouldn't expect all to
  7475. have one. I also have postscript in my laser, and wouldn't expect anyone to
  7476. have that either. This printer is an IBM 4216 Personal Page Printer II (a
  7477. Rico in disguise and possibly the only IBM product with an apple port on it).
  7478.  
  7479. I also have an Epson LQ-850 which I rarely use (mostly for printing labels).
  7480. This is the type of printer that I would expect most "developers" to have.
  7481.  
  7482. I don't want any assumptions about what hardware I have, and why should it
  7483. matter to me, it's in the driver (or should be) ? What happens to me when I
  7484. run out of toner in my laser and don't have another one to put in, I'll throw
  7485. the Epson on and use the IBMNULL driver. I think IBM did the correct thing in
  7486. using 66 as default, it has ALWAYS been the default on the PC. Sure, it is a
  7487. problem with an HP LJ, cause they are usually set to 60...it should be in the
  7488. driver though IMHO.
  7489.  
  7490. I use the Text-or-PS from the files here and it will print 4 pages on one
  7491. postscript page, it is a great way to save trees!
  7492.  
  7493. Alan DuBoff - Bunker Hill Software
  7494.  
  7495. ----- C-SET2 CFORUM appended at 22:01:32 on 92/10/26 GMT (by NAAO3IY at HONE83)
  7496. Subject: 66 Lines
  7497. Ref: Append at 18:46:27 on 92/10/23 GMT (by MOONEY at TOROLAB6)
  7498.  
  7499. Ah, but you can't print 66 lines on a 1403, because you have
  7500. to have the paper aligned so that the asterisks in the output
  7501. separator will print on the perforations, so the operators
  7502. can tear the jobs apart.  That leaves only 65 lines.  Gotcha!
  7503.  
  7504. John Kennedy, Hoechst Celanese (The OS/2 (OS/360?) Hobbit)
  7505.  
  7506. ----- C-SET2 CFORUM appended at 22:07:21 on 92/10/26 GMT (by NAAO3IY at HONE83)
  7507. Subject: Function prototyping w/ coercion
  7508. Ref: Append at 17:31:31 on 92/10/26 GMT (by FRMLSPA at HONE85)
  7509.  
  7510. I wouldn't expect to see this.  If you take a good look
  7511. at 386 32-bit assembler, you will see that it is really very
  7512. different from 286 assembler.  Attempting to combine the
  7513. two into one compiler would only create a slower, buggier
  7514. compiler with poorer object code.
  7515.  
  7516. In addition, there are quite a few points where MSC6 is supposed
  7517. to be ANSI-compliant and isn't, so the compiler must not only
  7518. create different object code, but implement a somewhat different
  7519. source language.  It just isn't worthwhile changing a program
  7520. that processes A into X so that it can also process B into Y.
  7521.  
  7522. Mind you, I don't work for IBM, so technically I'm just guessing.
  7523.  
  7524. John Kennedy, Hoechst Celanese (The OS/2 Hobbit)
  7525.  
  7526. ----- C-SET2 CFORUM appended at 20:14:49 on 92/10/27 GMT (by WZ00813 at LINK21)
  7527. Subject: 32/16 pointer conversion on calls
  7528.  
  7529. I believe this is a bug, but I may be wrong.  Stated briefly:
  7530.  
  7531. When calling a 16-bit API function (in this case, DosWriteMailslot) from 32-bit code, passing an argument which 1) is a three-dimensional array of type char and 2) has 2 indices specified, one of which is calculated in the call, the pointer is not converte
  7532. d to 16:16 form.
  7533.  
  7534. If I modify the code such that the calculation of the index is a separate line of code, the conversion is performed correctly.
  7535.  
  7536. Example:
  7537.  
  7538. /* These are global    */
  7539. CHAR    achMSNames¢MAX_CMPTR|¢2|¢80|;
  7540. char    bufMS¢MSBUFSIZE|;
  7541.  
  7542. /* These are arguments    */
  7543. int   model, slot;
  7544. SHORT sNum;
  7545.  
  7546. /* These are local    */
  7547. int    i, j;
  7548.  
  7549.   i = mdSched¢model|.lCmptr;
  7550.   ulRet = DosWriteMailslot(achMSNames¢i|¢slot - 1|,
  7551.       bufMSCB, sNum * sizeof(CBREQ) + 8,
  7552.       slot, 1, 1000);
  7553.  
  7554. When I compile this, I get the following .ASM output for these two lines:
  7555.  
  7556. ;***** 90     i = mdSched¢model|.lCmptr;
  7557.     MOV    EAX,¢EBP+0cH|;    model
  7558.     IMUL    EAX,0150H
  7559.     MOV    EAX,DWORD PTR ¢EAX+ mdSched+014cH|
  7560.     MOV    ¢EBP-06cH|,EAX;    i
  7561.  
  7562. ;***** 91     ulRet = DosWriteMailslot(achMSNames¢i|¢slot - 1|, bufMSCB, sNum * sizeof(CBREQ) + 8,
  7563.     SUB    ESP,03aH
  7564.     MOV    EAX,¢EBP-06cH|;    i
  7565.     IMUL    EAX,0a0H
  7566.     MOV    ECX,¢EBP+010H|;    slot
  7567.     IMUL    ECX,050H
  7568.     LEA    EAX,DWORD PTR ¢EAX+ECX+achMSNames|
  7569.     SUB    EAX,050H
  7570.     PUSH    EAX
  7571.     MOV    EAX,OFFSET FLAT: bufMSCB
  7572.     OR    EAX,EAX
  7573.     JE    BLBL40
  7574.     CALL    _DosFlatToSel
  7575. BLBL40:
  7576.     PUSH    EAX
  7577.     MOVSX    EAX,WORD PTR ¢EBP+014H|;    sNum
  7578.     SAL    EAX,03H
  7579.     ADD    EAX,08H
  7580.     PUSH    AX
  7581.     etc.
  7582.  
  7583. Notice there is no call to _DosFlatToSel for the achMSNames pointer.  If I modify the code as follows:
  7584.  
  7585.     i = mdSched¢model|.lCmptr;
  7586.     j = slot - 1;
  7587.     ulRet = DosWriteMailslot(achMSNames¢i|¢j|,
  7588.         bufMSCB, sNum * sizeof(CBREQ) + 8,
  7589.         slot, 1, 1000);
  7590.  
  7591. and re-compile, I get the following .ASM output:
  7592.  
  7593. ;***** 90     i = mdSched¢model|.lCmptr;
  7594.     MOV    EAX,¢EBP+0cH|;    model
  7595.     IMUL    EAX,0150H
  7596.     MOV    EAX,DWORD PTR ¢EAX+ mdSched+014cH|
  7597.     MOV    ¢EBP-06cH|,EAX;    i
  7598.  
  7599. ;***** 91     j = slot - 1;
  7600.     MOV    EAX,¢EBP+010H|;    slot
  7601.     DEC    EAX
  7602.     MOV    ¢EBP-070H|,EAX;    j
  7603.  
  7604. ;***** 92     ulRet = DosWriteMailslot(achMSNames¢i|¢j|, bufMSCB, sNum * sizeof(CBREQ) + 8,
  7605.     SUB    ESP,03aH
  7606.     MOV    EAX,¢EBP-06cH|;    i
  7607.     IMUL    EAX,0a0H
  7608.     MOV    ECX,¢EBP-070H|;    j
  7609.     IMUL    ECX,050H
  7610.     LEA    EAX,DWORD PTR ¢EAX+ECX+achMSNames|
  7611.     OR    EAX,EAX
  7612.     JE    BLBL40
  7613.     PUSH    OFFSET CODE32:+0370H
  7614.     JMP    _DosFlatToSel
  7615.     ALIGN 010H
  7616. BLBL40:
  7617.     PUSH    EAX
  7618.     MOV    EAX,OFFSET FLAT: bufMSCB
  7619.     OR    EAX,EAX
  7620.     JE    BLBL41
  7621.     CALL    _DosFlatToSel
  7622. BLBL41:
  7623.     PUSH    EAX
  7624.     MOVSX    EAX,WORD PTR ¢EBP+014H|;    sNum
  7625.     SAL    EAX,03H
  7626.     ADD    EAX,08H
  7627.     PUSH    AX
  7628.     etc.
  7629.  
  7630. Voila!  The magic call to _DosFlatToSel (actually a jump) appears!
  7631.  
  7632. Ross D. Schaack
  7633.  
  7634. ----- C-SET2 CFORUM appended at 22:33:34 on 92/10/29 GMT (by MAAV7IB at HONE84)
  7635. Subject: Will the Debugger work with 16-bit MS C 6.0 code
  7636.  
  7637. We intend on moving our AM (Application Manager) 3 and MS C 6.0 code from
  7638. OS/2 1.3 to OS/2 2.0.  Some AM "interface" code will need to be rewritten and
  7639. linked with AM 4.  Will the C-Set/2 debugger allow me to debug the 16-bit
  7640. MS C 6.0 code, the 32-bit C-Set/2 code code, and the AM code?  Our biggest
  7641. concern with moving the code to OS/2 2.0 is supporting it in it's present
  7642. (16-bit) state (until it requires re-writing).
  7643.  
  7644. Thanks in advance.
  7645.  
  7646. Kevin Miller, The Capital Group, Inc. (USCAPFAB at IBMMAIL)
  7647.  
  7648. ----- C-SET2 CFORUM appended at 22:34:01 on 92/10/29 GMT (by MAAV7IB at HONE84)
  7649. Subject: Kernel Debugger and XR06055
  7650.  
  7651. I'm a little hazy on the debugger.  If I want to use the debugger, is it
  7652. necessary to install the replacement OS2KRNL?
  7653.  
  7654. If I send away for the new OS2KRNL mentioned in the XR06055 service pack,
  7655. will they return my 'Proof of License' with it?  Are there any other
  7656. mechanisms in place for receiving the replacement OS2KRNL (e.g. my CE)?
  7657.  
  7658. Kevin Miller, The Capital Group, Inc. (USCAPFAB at IBMMAIL)
  7659.  
  7660.