home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / forth / compiler / fpc / doc / f_pcbugs.txt < prev    next >
Text File  |  1991-01-31  |  4KB  |  84 lines

  1. F-PCBUGS.TXT    Known Bugs in F-PC version 3.5          by Tom Zimmer
  2.  
  3.   This file contains a list of the bugs that are known to exist in F-PC. In
  4. some cases they are not really bugs, but peculiarities that may seem like
  5. bugs (did I say feature?).  The bugs are not numbered in order because they
  6. came from a larger list of bugs that have been fixed, and the fixed bugs
  7. have been removed from the list.
  8.  
  9. 7.      Status line peculiarity  01/03/89 15:25:22.20
  10.         It has been reported that if you try to move a filename into
  11.         SEQHANDLE, it gets erased after you move it in. What is
  12.         happening here is that the routine that displays the status
  13.         line looks at the current contents of SEQHANDLE and the >HNDLE
  14.         value is -1 indicating a file has been closed, it reads the
  15.         system directory path into SEQHANDLE and changes the >HNDLE
  16.         value to -2 prior to displaying the status line.
  17.  
  18.         The status line is trying to display either the currently open
  19.         filename and path, or just the path on the current drive. If in
  20.         the proccess of moving a filename into SEQHANDLE, you also call
  21.         HCLOSE to close any file already in SEQHANDLE, then the status
  22.         routine thinks it needs to re-read the drive path from DOS
  23.         into SEQHANDLE.
  24.  
  25.         Normally you would not encounter this since normally you would
  26.         then proceed to open or create the file placed in SEQHANDLE
  27.         prior to returning to the keyboard (which is where STATUS was
  28.         performed); it is normally only a problem while debugging.  To
  29.         prevent this interference by STATUS, you can type STATOFF just
  30.         prior to debugging your program.  STATON can then be used to
  31.         re-enable the status line.
  32.  
  33. 10.     Assembler buglets. If you are typing in CODE definitions from
  34.         the keyboard, and you get an assembly error on an instruction,
  35.         additional instructions typed in will have the same error
  36.         reported even if they are entered correctly. The error
  37.         condition will only be reset by a new CODE word being started.
  38.  
  39.         If you try to use an IN or OUT instruction in the assembler
  40.         with an immediate port number greater than $FF hex, the
  41.         assembler will discard the high byte of the port number and
  42.         compile the instruction as if nothing was wrong.
  43.  
  44.               IN AL, # $115    will assemble as    IN AL, # $015
  45.               OUT # $110 AL    will assemble as    OUT # $010 AL
  46.  
  47.         The 80x6 family does not support immediate port number IN or
  48.         OUT instructions greater than $FF, but the assembler SHOULD
  49.         report the error and does not.
  50.  
  51. 12.     Jack Brown rightly points out that the F-PC documentation
  52.         doesn't specify the machine register usage clearly. Here is an
  53.         excerpt from the ECFB where George Hawkins explained how F-PC
  54.         uses the 80x86 registers.
  55.  
  56.         F-PC MACHINE RESOURCE USAGE:
  57.  
  58.             CS   =  code seg: used for any code definitions (Must be
  59.                     preserved by code word.);
  60.             DS   =  data seg: used for data other than ." strings
  61.                      (NOTE: CS=DS and underlying kernel primitives
  62.                     rely on this correspondence!, also must be
  63.                     preserved by code word.);
  64.             ES   =  extra seg: used as the segment location for the
  65.                     current instruction pointer (IP).  (Must be
  66.                     preserved by code word.);
  67.             SS   =  stack seg: used as the segment location for the
  68.                     current stack pointer (SP).  (Must be preserved
  69.                     by code word.);
  70.             BP   =  Return Pointer (RP).  (Must be preserved by
  71.                     code word.);
  72.             SP   =  Stack Pointer (SP).  (Must be preserved by code
  73.                      word.);
  74.             SI   =  Instruction Pointer (IP).  (Must be preserved by
  75.                     code word.);
  76.             DF   =  Direction Flag.  Assumed to be 0/increment. Some
  77.                     older FF (or before?) words do an initial CLD
  78.                     (e.g., CMOVE), but this shouldn't be necessary.
  79.                     If you specifically need DF=1, then do: STD
  80.                     ...code... CLD;
  81.  
  82.             AX, BX, CX, DX, & DI  :  Have a ball!!
  83.  
  84.