home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
forth
/
compiler
/
fpc
/
doc
/
f_pcbugs.txt
< prev
next >
Wrap
Text File
|
1991-01-31
|
4KB
|
84 lines
F-PCBUGS.TXT Known Bugs in F-PC version 3.5 by Tom Zimmer
This file contains a list of the bugs that are known to exist in F-PC. In
some cases they are not really bugs, but peculiarities that may seem like
bugs (did I say feature?). The bugs are not numbered in order because they
came from a larger list of bugs that have been fixed, and the fixed bugs
have been removed from the list.
7. Status line peculiarity 01/03/89 15:25:22.20
It has been reported that if you try to move a filename into
SEQHANDLE, it gets erased after you move it in. What is
happening here is that the routine that displays the status
line looks at the current contents of SEQHANDLE and the >HNDLE
value is -1 indicating a file has been closed, it reads the
system directory path into SEQHANDLE and changes the >HNDLE
value to -2 prior to displaying the status line.
The status line is trying to display either the currently open
filename and path, or just the path on the current drive. If in
the proccess of moving a filename into SEQHANDLE, you also call
HCLOSE to close any file already in SEQHANDLE, then the status
routine thinks it needs to re-read the drive path from DOS
into SEQHANDLE.
Normally you would not encounter this since normally you would
then proceed to open or create the file placed in SEQHANDLE
prior to returning to the keyboard (which is where STATUS was
performed); it is normally only a problem while debugging. To
prevent this interference by STATUS, you can type STATOFF just
prior to debugging your program. STATON can then be used to
re-enable the status line.
10. Assembler buglets. If you are typing in CODE definitions from
the keyboard, and you get an assembly error on an instruction,
additional instructions typed in will have the same error
reported even if they are entered correctly. The error
condition will only be reset by a new CODE word being started.
If you try to use an IN or OUT instruction in the assembler
with an immediate port number greater than $FF hex, the
assembler will discard the high byte of the port number and
compile the instruction as if nothing was wrong.
IN AL, # $115 will assemble as IN AL, # $015
OUT # $110 AL will assemble as OUT # $010 AL
The 80x6 family does not support immediate port number IN or
OUT instructions greater than $FF, but the assembler SHOULD
report the error and does not.
12. Jack Brown rightly points out that the F-PC documentation
doesn't specify the machine register usage clearly. Here is an
excerpt from the ECFB where George Hawkins explained how F-PC
uses the 80x86 registers.
F-PC MACHINE RESOURCE USAGE:
CS = code seg: used for any code definitions (Must be
preserved by code word.);
DS = data seg: used for data other than ." strings
(NOTE: CS=DS and underlying kernel primitives
rely on this correspondence!, also must be
preserved by code word.);
ES = extra seg: used as the segment location for the
current instruction pointer (IP). (Must be
preserved by code word.);
SS = stack seg: used as the segment location for the
current stack pointer (SP). (Must be preserved
by code word.);
BP = Return Pointer (RP). (Must be preserved by
code word.);
SP = Stack Pointer (SP). (Must be preserved by code
word.);
SI = Instruction Pointer (IP). (Must be preserved by
code word.);
DF = Direction Flag. Assumed to be 0/increment. Some
older FF (or before?) words do an initial CLD
(e.g., CMOVE), but this shouldn't be necessary.
If you specifically need DF=1, then do: STD
...code... CLD;
AX, BX, CX, DX, & DI : Have a ball!!