home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.whtech.com
/
ftp.whtech.com.tar
/
ftp.whtech.com
/
articles
/
limanews
/
99_4B.TXT
< prev
next >
Wrap
Text File
|
2006-10-19
|
14KB
|
452 lines
ORIGINALLY PUBLISHED IN LIMA
NEWSLETTER FEBRUARY 1991
Mike Wright
45 Centerville Drive,
Salem, New Hampshire 03079,
December 21, 1990.
Dear Charles,
The 99/4 proved to be more elusive
than I had thought. For example, 99'er
only put out one issue before the 4A
was announced. TI chose not to mention
the release of the 4A in its own
newsletter. The resultant material is
thus a bit of a composite picture,
but there is a lot of information
there. I found the end piece on the
99/2 compatibility surprising, to say
the least.
____________________
The end of the 99/4 was signalled by
TI at the Consumer Electronics Show.
The following was extracted from the
"99/4 Home Computer Users-Group
Newsletter", Vol 1 No. 6, August 10,
1981:
"On June 30th Texas Instruments
Consumer Products Div. announced at
the Consumer Electronics Show a
revised 99/4 computer console labeled
the 99/4A. Also T.I. announced another
price reduction in the suggested
retail price of their console at
$525.00." (Note that 99'er Magazine
gives the dates of the show as May 31
through June 3, 1981)
____________________
The differences between the 99/4 and
99/4A were described in 99'er
Magazine, Vol 1 No. 2, p48:
"Enter the 99/4A personal computer --
a new console that retains the same
profile, speech capability, color
graphics and software compatibility of
its predecessor, but replaces the old
40-key calculator-style keyboard with
a standard-configuration, 48-key
typewriter keyboard. This, in itself,
would be quite a welcome improvement;
but take a closer look at the new
keyboard's specifications and you'll
soon discover that it really is a new
keyboard and not just the recipient of
some superficial cosmetic changes.
Witness its impressive array of
features: such niceties as both upper
and lowercase; an ALPHA LOCK key (for
conveniently keeping the keyboard in
uppercase mode); auto repeat (with a
two second time delay) on all keys;
function (FCT'N) and control (CTRL)
[sic] keys (for secondary functions
and telecommunications use); and
finally, a Basic that will accept both
upper and lowercase characters but
displays all reserved words, variable
names, and subprogram names in
capitals for easy identification.
How's that for versatility.
The keyboard action has an excellent
"feel". Although it is still the same
small size as it predecessor, touch
typing on this new keyboard gives you
the illusion of typing on a big
office machine. It seemed quite
capable of keeping up with my
occasional blinding bursts of speed --
something the old keyboard (and quite
a few other microcomputer keyboards as
well) is incapable of doing.
Incidentally, I have been informed by
Texas Instruments that since the
circuit board has been re-designed,
there's no practical way of
retrofitting existing TI-99/4s with
the new keyboard.
In addition to the features I've
mentioned above, there have been some
other changes ... Don't expect the
familiar keyboard overlay to fit this
new machine. Instead, it uses a
two-level strip overlay mounted above
the top row of keys (similar to
supermarket shelf pricing strips and
holders). Also, due to some ROM/GROM
swaps on the new circuit board, the
console now has a built-in "trap"
circuit (that has to be installed in
the old console through a separate
factory modification) for TMS9900
assembly language debugging on the
UCSD Pascal Development System...; in
the process, however, the console lost
its Equation Calculator mode."
____________________
The indifference of TI to the
introduction of the 4A is reflected in
its own newsletter "Texas Instruments
Personal Computer User's Newsletter".
The June 1981 issue only contains
references to the 99/4 computer. Then
in August 1981, on page 4, the
newsletter casually refers to the
"growing list of applications programs
available for the TI-99/4 and TI-99/4A
computers".
There is no official mention of the
end of 99/4 production. My guess is
that TI did not want to upset existing
purchasers, since the 99/4 could not
be upgraded to a 99/4A.
____________________
The following material is taken from
"TI-99/4 and TI-99/4A Personal
Computer System Software,
Comprehensive Specification", dated
February 25, 1983. It illustrates
some of the problems TI had with the
original 99/4 console, and how they
were fixed or affected the 99/4A:
"Section 4. TI-99/4A Keyboard Scan
Routine.
4.1 Introduction.
The TI-99/4A has a 48-key typewriter
style keyboard. In order to support
this new device and maintain
compatibility with existing software,
a rather complex keyboard scan
routine was written. The following
sections explain the various aspects
of this routine.
4.2 State of the Keyboard.
The TI-99/4A keyboard has three
possible states. They are:
1. TI-99/4 Emulator keyboard.
2. Pascal keyboard.
3. Basic keyboard.
Also, to maintain compatibility with
existing software, the scan routine
supports a split keyboard
configuration.
The console software maintains an
internal flag which determines the
state of the keyboard. This flag can
be controlled by any application by
means of the keyboard number parameter
in the GPL status block. The keyboard
number parameter is in CPU RAM
location >8374. The value 0 is used to
scan the keyboard in whatever state
it happens to be. The values 3, 4, and
5 are used to change keyboard states.
The following paragraphs describe each
state of the keyboard and the use of
the keyboard number parameter to
select that state.
4.2.1 TI-99/4 Emulator Keyboard.
The TI-99/4A powers up with the
keyboard in this state. The keyboard
number is set to zero. If an
application needs to return to this
state from some other state, the
keyboard is scanned with keyboard
number set to 3. Scanning keyboard
number three sets the internal state
flag to "99/4 Emulator", resets the
keyboard number parameter to zero,
and performs a keyboard scan in that
state. Thereafter, the keyboard may be
scanned with keyboard number set to 0.
In this state only 99/4 keyboard
values are returned. There are three
exceptions : [, \, and ]. These
characters were built into the 99/4
console but were not implemented on
the keyboard. All other key codes are
ignored and a no key condition is
returned. For example, "CONTROL 1",
which returns the value >B1, is not a
legal 99/4 key. Therefore, the scan
would return "No Key" for "CONTROL 1".
Another result is that in this state
the keyboard is "alpha-locked"
regardless of the state of the ALPHA
LOCK key."
----
"Section 6. TI-99/4A Basic.
6.1 Functional Changes.
The following is a list of the
functional differences between 99/4
Basic and 99/4A Basic:
1. 99/4A Basic uses the "Basic"
version of the keyboard described in
section 4.2.3. The state of the
keyboard can be changed by CALL KEY.
However, the state reverts to "Basic"
whenever Basic returns to the command
level, e.g. at program termination or
on a breakpoint.
2. Both upper and lower case character
definitions are initialized. Since
Basic uses dynamic allocation for the
"graphics" characters, this means that
99/4A Basic powers up with 256 fewer
bytes of free memory than 99/4 Basic
does.
3. Input in the edit mode or in
response to a program INPUT statement
now includes an auto-repeat feature.
A key which is held down for a second
will begin to repeat at a rate of 12
characters per second.
4. The "Equation Calculator" was
removed.
5. Failure of an OLD command no longer
necessarily destroys the program
previously in memory. Since the
current program may or may not be
partially overwritten before the "OLD"
failure, a warning message is
displayed.
6. The cursor was changed to a solid
rectangular box.
6.2 Bug Fixes
The following is a list of bugs in
99/4 Basic which were fixed in 99/4A
Basic:
1. Line numbers listed to a peripheral
device are printed properly at a
record boundary.
2. The POS function will now find
substrings beyond position 127.
3. 255 byte records are now properly
blank-filled.
4. String expressions in CALL SOUND do
not crash the system.
5. User-defined numeric functions with
string parameters will return values
near zero.
6. Programs with breakpoints may be
safely edited.
7. Editing a program followed by
performing an imperative command will
not destroy the program.
8. Multi-line insertions and deletions
do not garbage the margins.
9. Dimension wrap-around at 65536 has
been fixed.
10. Garbage collection lockup when
using files has been fixed.
11. Illegal long constants in INPUT,
READ, etc. generate error messages
rather than crashing system.
12. Illegal uses of UDFs cause error
messages rather than destroying the
program.
Section 7. GPL Interpreter
Modifications.
Three known bugs in the GPL
interpreter were fixed. The bugs and
the fixes are described below.
7.1 CRU IN
The CRU IN portion of the GPL I/O
instruction has never worked. The
interpreter uses the information
provided by the GPL instruction to
create the appropriate 9900 CRU
instruction. The 9900 instruction is
then executed in a register. Because
an increment-by-two instruction was
used in place of an increment
instruction, the original code was not
creating a legal CRU IN instruction.
Changing the increment-by-two to an
increment fixed this bug.
7.2 CASE
The GPL CASE instruction has caused
problems in some application programs.
The problem is one of timing. The
original code repeatedly performs two
successive GROM reads with no time
delay between them. Therefore, some
GROMs which pass virtually every
other test may fail to execute a
particular CASE statement because of
this timing problem. To fix this
problem, a NOP was added between the
GROM reads.
7.3 FETCH
The original GPL FETCH instruction
would not fetch data into VDP RAM. The
source of this problem was a register
conflict. A register containing
certain flags was being used to save
another value during execution of the
FETCH instruction. This bug was fixed
by using a free register to save the
necessary value during FETCH
execution."
----
"Section 9. Other Modifications.
9.1 BREAK Key Routine.
One of the major problems in
converting from the 99/4 keyboard to
the 99/4A keyboard was the location
of the Basic "BREAK" key. On the 99/4
"Shift-C" was used both as the Basic
"BREAK" key and the RS232 "ABORT" key.
Unfortunately the Basic interpreter,
Extended Basic interpreter, and RS232
directly scan the keyboard lines to
check for this key. The problem arises
from the fact that "Function-4",
instead of "Shift-C", is the "BREAK"
key on the 99/4A. Therefore, some
rearranging had to be done on the
99/4A keyboard to insure that
"Function-4" was located in the
keyboard matrix at the same position
as "Shift-C" on the 99/4 keyboard.
To avoid this problem in the future, a
"Check for BREAK key" routine was
added to the console software. This
routine is executed via a BL @@>20
instruction. This routine only
modifies the value of register 12. If
the BREAK key is down, it returns to
the caller with the equal bit set.
Otherwise it returns with the equal
bit reset. All future software which
needs to check for this key must use
this routine rather than testing
keyboard lines directly.
9.2 ROM-Only Applications.
For the 99/4 every SSS command module
application had to have at least one
GROM. The system power up code only
searched the GROMs for applications
programs. The TI-99/4A has the
additional capability of executing
ROM-only applications. The power up
code now checks CPU memory location
>6000 (usually referred to as
ROM-in-GROM) for a valid ROM/GROM
header. It then searches the linked
list of user programs (if any)
indicated by that header. These user
programs are added to the applications
selection list. Some 99/4As have this
capability; others do not.
9.3 New Character Definitions.
The 99/4A keyboard has the capability
of generating the full Ascii character
from 0 to >7F. To further enhance
this capability, definitions for the
complete Ascii printable character
set were added to the console. The
previous 5x6 uppercase character set
was increased in size to 5x7 and
lowercase definitions were added. Due
to software compatibility issues the
console will still power up with the
6x8 uppercase character set and the
character loading routines are as
follows:
1. Console routine >16 loads the 6x8
character set which includes
characters >20 through >5F.
2. Console routine >18 loads the 5x7
uppercase character set which includes
characters >20 through >5F.
3. Console routine >4A loads the 5x7
lowercase character set which includes
characters >60 through >7E.
These routines are executed by storing
the starting VDP RAM address in CPU
RAM location >834A and performing a
GPL CALL instruction to the
appropriate routine."
----
"Appendix B. Compatibility.
In general there will be no designated
compatibility between the TI-99/4 and
any previous computers. There is no
compatibility with products of Texas
Instruments calculator line. The
Basic language is very similar to
other microcomputer Basics, however,
most programs will need some changes
to run on the 99/4. Any programs
which use the graphics capabilities of
other computers will need to be
totally rewritten to run on the 99/4.
The memory format of a Basic program
is unique as are most personal
computers. The image which is
recorded to mass-storage in SAVE
command is this memory image which
limits the capability of transporting
Basic programs to other computers even
if they could read our mass storage
media.
Peripheral devices for the 99/4
including the Mini-floppy Disk and
RS-232 Interface will not work on any
other personal computer. Peripherals
from other computers will not work on
the 99/4 except for those with RS-232
interfaces which can be attached to
our RS-232 peripheral. The media or
other mass storage peripheral (audio
tape or disk) will not be transferable
to the 99/4.
The TI-99/2 Basic program cassette
tapes are compatible with the 99/4,
but the 99/2 is not compatible with
99/4A Solid-State Software, or
vice-versa."
.PL 1