home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / protocol / tcpip / ibmpc / 5068 next >
Encoding:
Internet Message Format  |  1992-09-07  |  4.3 KB

  1. Path: sparky!uunet!pmafire!news.dell.com!swrinde!sdd.hp.com!usc!newshub.sdsu.edu!case.sdsu.edu!case
  2. From: case@ucs.sdsu.edu (Steve Case)
  3. Newsgroups: comp.protocols.tcp-ip.ibmpc
  4. Subject: Re: EMM386 Execption Erro #12
  5. Message-ID: <case.26.715638437@ucs.sdsu.edu>
  6. Date: 4 Sep 92 20:27:17 GMT
  7. References: <hippo.38.0@sonoma.edu>
  8. Sender: news@newshub.sdsu.edu
  9. Organization: San Diego State University, Data Communications
  10. Lines: 80
  11. Nntp-Posting-Host: case.sdsu.edu
  12.  
  13. In article <hippo.38.0@sonoma.edu> hippo@sonoma.edu (Michel Davidoff) writes:
  14. >Subject: EMM386 Execption Erro #12
  15. >From: hippo@sonoma.edu (Michel Davidoff)
  16. >Date: 4 Sep 92 08:46:49 PDT
  17. >When I run marknet and relnet I often get the message 
  18. >Emm386 Ececption error # 12 P
  19. >And then my system halts. I think that the p is the begining of 
  20. >a parity error.
  21. >I looked in the DOS 5.0 manual and there is no clue to 
  22. >what the error is.
  23. >Help ????
  24. >
  25. >Michel Davidoff
  26.  
  27. Tried to email you at hippo@sonoma.edu, but it bounced back.
  28.  
  29. Anyways, here's an answer to your query from the Desqview FAQ. Replace QEMM 
  30. with EMM386 in the discussion below. Both are 386 memory mgrs/control 
  31. progs, but QEMM is much better, IMO. Hope this helps.
  32.  
  33. Q15: What are Exceptions 12 and 13?
  34.  
  35. A15: An exception 12 (or 13) is caused by the program you are running doing
  36.      something that it is not allowed to do on a 80386 while in Virtual 8086
  37.      (V86) mode. Since QEMM is the 386 ``control program,'' it can only
  38.      report the error caused by the user program. The main cause is operand
  39.      wrapping past the last address in segment, 65,535 (FFFF in hex)
  40.  
  41.      Note that exceptions are only reported by QEMM, and are not caused by
  42.      either QEMM or DESQview.  They are caused by old programs that assume
  43.      they are running on an 80286 or less; or by a program that ``crashed''.
  44.  
  45.      From the INTEL ``80386 Programmer's Reference Manual,''
  46.           PART III - COMPATIBILITY
  47.                chapter 15, VIRTUAL 8086 MODE
  48.                     Section 15.6 DIFFERENCES FROM 8086
  49.                          Stated ``reasons'' 6, 7 & 8
  50.                               (pages 15-10 & 15-11)  
  51.  
  52.      Quoting from the INTEL manual:  
  53.           15.6 DIFFERENCES FROM 8086    
  54.           In general, V86 mode will correctly execute software designed for
  55.           the 8086, 8088, 80186 and 80188. Following is a list of the minor
  56.           differences between 8086 execution on the 80386 and on an 8086.
  57.  
  58.                ... (only those causing exception 12 or 13 are listed)
  59.  
  60.           6. Redundant prefixes.
  61.           The 80386 sets a limit of 15 bytes on instruction length. The only
  62.           way to violate this limit is by putting redundant prefixes before
  63.           an instruction.  Exception 13 occurs if the limit on instruction
  64.           length is violated. The 8086/8088 has no instruction limit.
  65.  
  66.           7. Operand crossing offset 0 or 65,535.
  67.           On the 8086, an attempt to access a memory operand that crosses
  68.           offset 65,535 (e.g., MOV a word to offset 65,535) or offset 0
  69.           (e.g., PUSH a word when SP = 1) causes the offset to wrap around
  70.           modulo 65,535. The 80386 raises an exception in these cases -
  71.           exception 13 if the data segment (i.e., if CS, DS, ES, FS, or GS is
  72.           being used to address the segment), exception 12 if the segment is
  73.           a stack segment (i.e., if SS is being used.)
  74.  
  75.           8. Sequential execution across offset 65,535.
  76.           On the 8086, if sequence execution of instructions proceeds past
  77.           offset 65,535, the processor fetches the next instruction byte from
  78.           offset 0 of the same segment. On the 80386, the processor raises
  79.           exception 13 in such a case.
  80.  
  81.      In order to fix an Exception 13, you can try to load the program causing
  82.      it into a different area of memory.  To do this, try increasing your
  83.      FILES or BUFFERS, or loading some TSRs low rather than high, etc.
  84.      However, the best solution is to contact the programmer.  Another
  85.      possible solution is to increase the amount of memory specified in
  86.      Change A Program.
  87. --
  88. Steve Case (case@ucs.sdsu.edu) | "Cover for me!"
  89. Data Communications Group      | "Oh, good idea, boss!"
  90. University Computing Services  | "It was like that when I got here."
  91. San Diego State University     | - Homer's standard disclaimers.
  92. San Diego, California 92182    | "My opinions only" - my standard disclaimer
  93.