home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / os / msdos / programm / 8073 < prev    next >
Encoding:
Internet Message Format  |  1992-07-25  |  4.0 KB

  1. Xref: sparky comp.os.msdos.programmer:8073 news.answers:2260
  2. Newsgroups: comp.os.msdos.programmer,news.answers
  3. Path: sparky!uunet!usc!zaphod.mps.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!ncoast!brown
  4. From: brown@NCoast.ORG (Stan Brown)
  5. Subject: comp.os.msdos.programmer FAQ diff 2 of 4
  6. Expires: Wed, 19 Aug 1992 15:54:15 GMT
  7. Organization: Oak Road Systems, Cleveland Ohio USA
  8. Date: Sat, 25 Jul 1992 15:54:14 GMT
  9. Approved: news-answers-request@MIT.Edu
  10. Message-ID: <1992Jul25.155414.6316@NCoast.ORG>
  11. Followup-To: comp.os.msdos.programmer
  12. References: <1992Jul25.154838.5389@NCoast.ORG>
  13. Lines: 70
  14.  
  15. Archive-name: msdos-programmer-faq/diff2
  16. Last-modified: 21 July 1992
  17.  
  18.  
  19. Please see part 1 for explanations.
  20.  
  21.  
  22. - 12>Last-modified: 25 June 1992
  23. + 12>Last-modified: 19 July 1992
  24.  
  25. + 19>            Copyright (C) 1992  Stan Brown, Oak Road Systems
  26.  
  27. -163>    - large and compact models (data pointers far):  DGROUP holds all
  28. -164>      globals and static variables including string literals.
  29. -166>    - huge model in Microsoft (data pointers far): same as large model.
  30. +164>    - large, compact, and huge models in Microsoft (data pointers far):
  31. +165>      DGROUP holds only initialized globals and static variables
  32. +166>      including string literals, plus the stack and the near heap.
  33. +168>    - large and compact models in Borland (data pointers far): DGROUP
  34. +169>      holds initialized and uninitialized globals and static variables
  35. +170>      including string literals, but not the stack or heap.
  36.  
  37. -181>Q202. How do I fix "stack plus data exceed 64K"?
  38. -183>    This message is a variation of "DGROUP > 64K".  For causes, please
  39. -184>    see the preceding Q.
  40. +185>Q202. How do I fix "automatic data segment exceeds 64K" or "stack plus
  41. +186>      data exceed 64K"?
  42. +188>    These messages are a variation of "DGROUP > 64K".  For causes,
  43. +189>    please see the preceding Q.
  44.  
  45. -189>    you can do.
  46. +194>    you can do.  (This error can't occur in Borland's huge model.)
  47.  
  48. -206>    but it "sets aside [the 64K] limit," according to the BC++ 2.0
  49. -207>    Programmer's Guide.  [...]
  50. +211>    but "sets aside [the 64K] limit" and has no DGROUP group, according
  51. +212>    to the BC++ 2.0 Programmer's Guide.  [...]
  52.  
  53. -217>    The problem is that each compiler uses calls to undocumented
  54. +223>    One problem is that each compiler uses calls to undocumented
  55.  
  56. +232>    Another problem is that Borland's compact, large, and huge models
  57. +233>    don't assume DS=SS, but Microsoft's do.  The -Fs option on the
  58. +234>    Borland compiler, or one of the /A options on Microsoft, should take
  59. +235>    care of this problem.
  60.  
  61. -226>    A vendor can [...]
  62. +237>    A third-party vendor of compiled object libraries can [...]
  63.  
  64. -339>    Ctrl-Break.
  65. +351>    Ctrl-Break.  However, if your program uses normal DOS input, the
  66. +352>    characters ^C will appear on the screen when the user presses Ctrl-C
  67. +353>    or Ctrl-Break.  There are many ways to work around that, including:
  68. +354>    use INT 21 function 7, which allows redirection but doesn't display
  69. +355>    the ^C (or echo any other character, for that matter); or use INT 16
  70. +356>    function 0 or 10; or call _bios_keybrd( ) in MSC or bioskey( ) in
  71. +357>    BC++; or hook INT 9 to discard Ctrl-C and Ctrl-Break before the
  72. +358>    regular BIOS keyboard handler sees them; etc., etc.
  73. +360>    You should be aware that Ctrl-C and Ctrl-Break are processed quite
  74. +361>    differently internally.  Ctrl-Break, like all keystrokes, is
  75. +362>    processed by the BIOS code at INT 9 as soon as the user presses the
  76. +363>    keys, even if earlier keys are still in the keyboard buffer:  by
  77. +364>    default the handler at INT 1B is called.  Ctrl-C is not special to
  78. +365>    the BIOS, nor is it special to DOS functions 6 and 7; it _is_
  79. +366>    special to DOS functions 1 and 8 when at the head of the keyboard
  80. +367>    buffer.  You will need to make sure BREAK is OFF to prevent DOS
  81. +368>    polling the keyboard for Ctrl-C during non-keyboard operations.
  82.  
  83. -- 
  84. Stan Brown, Oak Road Systems                      brown@Ncoast.ORG
  85.