Download TMQ Vol I.iii - tim

Transcript
Volume I.iii
THE MISOSYS QUARTERLY - WINTER 1987
separate control file.
yours.
The choice is
The problems with too many editors is the
reason that CED uses the standard BASIC
editing commands as a foundation. You can
always use any ASCII editor you choose to
use for EnhComp; however, the S mode is
only usable with CED since both the editor
and the compiler need an interface to
operate under S. That can't be done for
any generic editor unless S was completely
redesigned - which we don't plan to do.
I believe that the statement name "EQV"
stands for "equivalence" and the statement
"IMP" stands for "implication". They are
terms arising in the field of logic,
someiimes addressed as philosophy.
Volume I.iii
done.
Now the EnhComp INPUT handler had code to
turn the cursor ON before calling @KEYIN
and code to turn the cursor OFF after
return from @KEYIN. The LINEINPUT handler
did not. Of course, on the Model III, both
routines worked properly because the INPUT
support code was redundant - the ROM
turned the cursor ON then OFF - and
LINEINPUT did not need the code. I missed
this when I ported the compiler over to
the Model 4. Thus, when you use INPUT, the
handler engages the cursor but LINEINPUT
does not. You can circumvent this problem
by surrounding your LINEINPUTs with a
PRINT CHR$(14); and a PRINT CHR$(15);.
PRINT: with EnhCoinp
Here's a
correction to
last issue's
BC62/FIX. It turns out that there was a
mistype for the BC62/FIX when the file was
made up.
The line which started out
"D29,E5=09 25" should actually read
"D29,E5=09 2F" - the second patched byte
should be a "2F" and not a "25". Since my
original test was off a version manually
patched by FED, I didn't "catch" the
error. THE PATCH CORNER in this issue has
the correct fix.
Here's some scoop on the video cursor
while running a program compiled by
EnhComp. EnhComp was developed by Phil
Oliver for the Model III. I ported it to
the Model 4. A big task when I had to
first learn how the compiler worked so I
could port it. Both the INPUT and
LINEINPUT statement handlers
in the
SUPPORT/DAT library use the machine
provided @KEYIN handler. On the Model III,
this is a ROM routine. On the Model 4,
this is a DOS service call. The Model III
and 4 routines behave similarly except for
their handling of the cursor. The Model
III routine ALWAYS turns the cursor ON as
the first thing it does and ALWAYS turns
the cursor OFF as the last thing it does.
It does this regardless of the state of
the cursor upon entry. Thus, if your
program had the cursor OFF, it would be
turned ON after a @KEYIN call. The Model 4
routine was purposely coded to not touch
the cursor. It could have kept the state,
turned it ON, then restored it to the
entry state upon exit - but that wasn't
MISOSYS Products' Tidbits
- 94 -
(Fm:
Hamilton Gaillard) The following
typical statements are commonly used in
interpretive BASIC but are catastrophic
under
PRO-EnhComp,
producing
unintelligable
error
statements
in
numerous and syntactically correct
statements involving strings (but not in
purely numerics).
10 PRINT"MESSAGE" :PRINT :PRINT
20 PRINT"NESSAGE"
Line 10 must read
10 PRINT "ME S SAGE": PRINT" ":PRINT"
You may wish to include an alert in the
README file. It took me an hour or two to
recognize what
was wrong. The clue
actually came
from experience as my
printer will not accept LPRINT without the
quoted blank.
So far, I've tried only one old program
involving a lot of double-precision
arithmetic. It loads and executes very
rapidly, especially loading as it
eliminates load BASIC, load NYPROG, and
RUN.
Documentation is comprehensive and well
organized, but I wouldn't recommend it for
a rank beginner in BASIC.
MISOSYS Products' Tidbits