home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / articles / archives / limanews.exe / 99_4B.TXT < prev    next >
Text File  |  2006-10-19  |  14KB  |  452 lines

  1. ORIGINALLY PUBLISHED IN LIMA
  2. NEWSLETTER FEBRUARY 1991
  3.  
  4.  
  5. Mike Wright 
  6. 45 Centerville Drive,
  7. Salem, New Hampshire 03079, 
  8. December 21, 1990. 
  9.  
  10. Dear Charles, 
  11. The 99/4 proved to be more elusive
  12. than I had thought. For example, 99'er
  13. only put out one issue before the 4A
  14. was announced. TI chose not to mention
  15. the release of the 4A in its own
  16. newsletter. The resultant material is
  17. thus a bit of a composite picture,
  18. but there is a lot of information
  19. there. I found the end piece on the
  20. 99/2 compatibility surprising, to say
  21. the least. 
  22. ____________________ 
  23. The end of the 99/4 was signalled by
  24. TI at the Consumer Electronics Show.
  25. The following was extracted from the
  26. "99/4 Home Computer Users-Group
  27. Newsletter", Vol 1 No. 6, August 10,
  28. 1981: 
  29. "On June 30th Texas Instruments
  30. Consumer Products Div. announced at
  31. the Consumer Electronics Show a
  32. revised 99/4 computer console labeled
  33. the 99/4A. Also T.I. announced another
  34. price reduction in the suggested
  35. retail price of their console at
  36. $525.00." (Note that 99'er Magazine
  37. gives the dates of the show as May 31
  38. through June 3, 1981) 
  39. ____________________ 
  40. The differences between the 99/4 and
  41. 99/4A were described in 99'er
  42. Magazine, Vol 1 No. 2, p48: 
  43. "Enter the 99/4A personal computer --
  44. a new console that retains the same
  45. profile, speech capability, color
  46. graphics and software compatibility of
  47. its predecessor, but replaces the old
  48. 40-key calculator-style keyboard with
  49. a standard-configuration, 48-key
  50. typewriter keyboard. This, in itself,
  51. would be quite a welcome improvement;
  52. but take a closer look at the new
  53. keyboard's specifications and you'll
  54. soon discover that it really is a new
  55. keyboard and not just the recipient of
  56. some superficial cosmetic changes.
  57. Witness its impressive array of
  58. features: such niceties as both upper
  59. and lowercase; an ALPHA LOCK key (for
  60. conveniently keeping the keyboard in
  61. uppercase mode); auto repeat (with a
  62. two second time delay) on all keys;
  63. function (FCT'N) and control (CTRL)
  64. [sic] keys (for secondary functions
  65. and telecommunications use); and
  66. finally, a Basic that will accept both
  67. upper and lowercase characters but
  68. displays all reserved words, variable
  69. names, and subprogram names in
  70. capitals for easy identification.
  71. How's that for versatility. 
  72.  
  73. The keyboard action has an excellent
  74. "feel". Although it is still the same
  75. small size as it predecessor, touch
  76. typing on this new keyboard gives you
  77. the illusion of typing on a big
  78. office machine. It seemed quite
  79. capable of keeping up with my
  80. occasional blinding bursts of speed --
  81. something the old keyboard (and quite
  82. a few other microcomputer keyboards as
  83. well) is incapable of doing.
  84. Incidentally, I have been informed by
  85. Texas Instruments that since the
  86. circuit board has been re-designed,
  87. there's no practical way of
  88. retrofitting existing TI-99/4s with
  89. the new keyboard. 
  90.  
  91. In addition to the features I've
  92. mentioned above, there have been some
  93. other changes ... Don't expect the
  94. familiar keyboard overlay to fit this
  95. new machine. Instead, it uses a
  96. two-level strip overlay mounted above
  97. the top row of keys (similar to
  98. supermarket shelf pricing strips and
  99. holders). Also, due to some ROM/GROM
  100. swaps on the new circuit board, the
  101. console now has a built-in "trap"
  102. circuit (that has to be installed in
  103. the old console through a separate
  104. factory modification) for TMS9900
  105. assembly language debugging on the
  106. UCSD Pascal Development System...; in
  107. the process, however, the console lost
  108. its Equation Calculator mode." 
  109. ____________________ 
  110. The indifference of TI to the
  111. introduction of the 4A is reflected in
  112. its own newsletter "Texas Instruments
  113. Personal Computer User's Newsletter".
  114. The June 1981 issue only contains
  115. references to the 99/4 computer. Then
  116. in August 1981, on page 4, the
  117. newsletter casually refers to the
  118. "growing list of applications programs
  119. available for the TI-99/4 and TI-99/4A
  120. computers". 
  121.  
  122. There is no official mention of the
  123. end of 99/4 production. My guess is
  124. that TI did not want to upset existing
  125. purchasers, since the 99/4 could not
  126. be upgraded to a 99/4A. 
  127. ____________________ 
  128. The following material is taken from
  129. "TI-99/4 and TI-99/4A Personal
  130. Computer System Software,
  131. Comprehensive Specification", dated
  132. February 25, 1983. It illustrates
  133. some of the problems TI had with the
  134. original 99/4 console, and how they
  135. were fixed or affected the 99/4A:  
  136.  
  137. "Section 4. TI-99/4A Keyboard Scan
  138. Routine. 
  139. 4.1 Introduction. 
  140. The TI-99/4A has a 48-key typewriter
  141. style keyboard. In order to support
  142. this new device and maintain
  143. compatibility with existing software,
  144. a rather complex keyboard scan
  145. routine was written. The following
  146. sections explain the various aspects
  147. of this routine. 
  148.  
  149. 4.2 State of the Keyboard. 
  150. The TI-99/4A keyboard has three
  151. possible states. They are: 
  152. 1. TI-99/4 Emulator keyboard. 
  153. 2. Pascal keyboard. 
  154. 3. Basic keyboard. 
  155. Also, to maintain compatibility with
  156. existing software, the scan routine
  157. supports a split keyboard
  158. configuration. 
  159.  
  160. The console software maintains an
  161. internal flag which determines the
  162. state of the keyboard. This flag can
  163. be controlled by any application by
  164. means of the keyboard number parameter
  165. in the GPL status block. The keyboard
  166. number parameter is in CPU RAM
  167. location >8374. The value 0 is used to
  168. scan the keyboard in whatever state
  169. it happens to be. The values 3, 4, and
  170. 5 are used to change keyboard states.
  171. The following paragraphs describe each
  172. state of the keyboard and the use of
  173. the keyboard number parameter to
  174. select that state.   
  175.  
  176. 4.2.1 TI-99/4 Emulator Keyboard. 
  177. The TI-99/4A powers up with the
  178. keyboard in this state. The keyboard
  179. number is set to zero. If an
  180. application needs to return to this
  181. state from some other state, the
  182. keyboard is scanned with keyboard
  183. number set to 3. Scanning keyboard
  184. number three sets the internal state
  185. flag to "99/4 Emulator", resets the
  186. keyboard number parameter to zero,
  187. and performs a keyboard scan in that
  188. state. Thereafter, the keyboard may be
  189. scanned with keyboard number set to 0.   
  190.  
  191. In this state only 99/4 keyboard
  192. values are returned. There are three
  193. exceptions : [, \, and ]. These
  194. characters were built into the 99/4
  195. console but were not implemented on
  196. the keyboard. All other key codes are
  197. ignored and a no key condition is
  198. returned. For example, "CONTROL 1",
  199. which returns the value >B1, is not a
  200. legal 99/4 key. Therefore, the scan
  201. would return "No Key" for "CONTROL 1".
  202. Another result is that in this state
  203. the keyboard is "alpha-locked"
  204. regardless of the state of the ALPHA
  205. LOCK key." 
  206. ---- 
  207. "Section 6. TI-99/4A Basic. 
  208. 6.1 Functional Changes. 
  209. The following is a list of the
  210. functional differences between 99/4
  211. Basic and 99/4A Basic: 
  212.  
  213. 1. 99/4A Basic uses the "Basic"
  214. version of the keyboard described in
  215. section 4.2.3. The state of the
  216. keyboard can be changed by CALL KEY.
  217. However, the state reverts to "Basic"
  218. whenever Basic returns to the command
  219. level, e.g. at program termination or
  220. on a breakpoint. 
  221. 2. Both upper and lower case character
  222. definitions are initialized. Since
  223. Basic uses dynamic allocation for the
  224. "graphics" characters, this means that
  225. 99/4A Basic powers up with 256 fewer
  226. bytes of free memory than 99/4 Basic
  227. does. 
  228. 3. Input in the edit mode or in
  229. response to a program INPUT statement
  230. now includes an auto-repeat feature.
  231. A key which is held down for a second
  232. will begin to repeat at a rate of 12
  233. characters per second. 
  234. 4. The "Equation Calculator" was
  235. removed. 
  236. 5. Failure of an OLD command no longer
  237. necessarily destroys the program
  238. previously in memory. Since the
  239. current program may or may not be
  240. partially overwritten before the "OLD"
  241. failure, a warning message is
  242. displayed. 
  243. 6. The cursor was changed to a solid
  244. rectangular box. 
  245.  
  246. 6.2 Bug Fixes 
  247. The following is a list of bugs in
  248. 99/4 Basic which were fixed in 99/4A
  249. Basic: 
  250. 1. Line numbers listed to a peripheral
  251. device are printed properly at a
  252. record boundary. 
  253. 2. The POS function will now find
  254. substrings beyond position 127. 
  255. 3. 255 byte records are now properly
  256. blank-filled. 
  257. 4. String expressions in CALL SOUND do
  258. not crash the system. 
  259. 5. User-defined numeric functions with
  260. string parameters will return values
  261. near zero. 
  262. 6. Programs with breakpoints may be
  263. safely edited. 
  264. 7. Editing a program followed by
  265. performing an imperative command will
  266. not destroy the program. 
  267. 8. Multi-line insertions and deletions
  268. do not garbage the margins. 
  269. 9. Dimension wrap-around at 65536 has
  270. been fixed. 
  271. 10. Garbage collection lockup when
  272. using files has been fixed. 
  273. 11. Illegal long constants in INPUT,
  274. READ, etc. generate error messages
  275. rather than crashing system. 
  276. 12. Illegal uses of UDFs cause error
  277. messages rather than destroying the
  278. program. 
  279.  
  280. Section 7. GPL Interpreter
  281. Modifications. 
  282. Three known bugs in the GPL
  283. interpreter were fixed. The bugs and
  284. the fixes are described below. 
  285. 7.1 CRU IN 
  286. The CRU IN portion of the GPL I/O
  287. instruction has never worked. The
  288. interpreter uses the information
  289. provided by the GPL instruction to
  290. create the appropriate 9900 CRU
  291. instruction. The 9900 instruction is
  292. then executed in a register. Because
  293. an increment-by-two instruction was
  294. used in place of an increment
  295. instruction, the original code was not
  296. creating a legal CRU IN instruction.
  297. Changing the increment-by-two to an
  298. increment fixed this bug. 
  299.  
  300. 7.2 CASE 
  301. The GPL CASE instruction has caused
  302. problems in some application programs.
  303. The problem is one of timing. The
  304. original code repeatedly performs two
  305. successive GROM reads with no time
  306. delay between them. Therefore, some
  307. GROMs which pass virtually every
  308. other test may fail to execute a
  309. particular CASE statement because of
  310. this timing problem. To fix this
  311. problem, a NOP was added between the
  312. GROM reads. 
  313.  
  314. 7.3 FETCH 
  315. The original GPL FETCH instruction
  316. would not fetch data into VDP RAM. The
  317. source of this problem was a register
  318. conflict. A register containing
  319. certain flags was being used to save
  320. another value during execution of the
  321. FETCH instruction. This bug was fixed
  322. by using a free register to save the
  323. necessary value during FETCH
  324. execution." 
  325. ---- 
  326. "Section 9. Other Modifications. 
  327. 9.1 BREAK Key Routine. 
  328. One of the major problems in
  329. converting from the 99/4 keyboard to
  330. the 99/4A keyboard was the location
  331. of the Basic "BREAK" key. On the 99/4
  332. "Shift-C" was used both as the Basic
  333. "BREAK" key and the RS232 "ABORT" key.
  334. Unfortunately the Basic interpreter,
  335. Extended Basic interpreter, and RS232
  336. directly scan the keyboard lines to
  337. check for this key. The problem arises
  338. from the fact that "Function-4",
  339. instead of "Shift-C", is the "BREAK"
  340. key on the 99/4A. Therefore, some
  341. rearranging had to be done on the
  342. 99/4A keyboard to insure that
  343. "Function-4" was located in the
  344. keyboard matrix at the same position
  345. as "Shift-C" on the 99/4 keyboard. 
  346.  
  347. To avoid this problem in the future, a
  348. "Check for BREAK key" routine was
  349. added to the console software. This
  350. routine is executed via a BL @@>20
  351. instruction. This routine only
  352. modifies the value of register 12. If
  353. the BREAK key is down, it returns to
  354. the caller with the equal bit set.
  355. Otherwise it returns with the equal
  356. bit reset. All future software which
  357. needs to check for this key must use
  358. this routine rather than testing
  359. keyboard lines directly. 
  360.  
  361. 9.2 ROM-Only Applications. 
  362. For the 99/4 every SSS command module
  363. application had to have at least one
  364. GROM. The system power up code only
  365. searched the GROMs for applications
  366. programs. The TI-99/4A has the
  367. additional capability of executing
  368. ROM-only applications. The power up
  369. code now checks CPU memory location
  370. >6000 (usually referred to as
  371. ROM-in-GROM) for a valid ROM/GROM
  372. header. It then searches the linked
  373. list of user programs (if any)
  374. indicated by that header. These user
  375. programs are added to the applications
  376. selection list.  Some 99/4As have this
  377. capability; others do not. 
  378.  
  379. 9.3 New Character Definitions. 
  380. The 99/4A keyboard has the capability
  381. of generating the full Ascii character
  382. from 0 to >7F. To further enhance
  383. this capability, definitions for the
  384. complete Ascii printable character
  385. set were added to the console. The
  386. previous 5x6 uppercase character set
  387. was increased in size to 5x7 and
  388. lowercase definitions were added. Due
  389. to software compatibility issues the
  390. console will still power up with the
  391. 6x8 uppercase character set and the
  392. character loading routines are as
  393. follows: 
  394. 1. Console routine >16 loads the 6x8
  395. character set which includes
  396. characters >20 through >5F. 
  397. 2. Console routine >18 loads the 5x7
  398. uppercase character set which includes
  399. characters >20 through >5F. 
  400. 3. Console routine >4A loads the 5x7
  401. lowercase character set which includes
  402. characters >60 through >7E. 
  403.  
  404. These routines are executed by storing
  405. the starting VDP RAM address in CPU
  406. RAM location >834A and performing a
  407. GPL CALL instruction to the
  408. appropriate routine." 
  409. ---- 
  410. "Appendix B. Compatibility. 
  411. In general there will be no designated
  412. compatibility between the TI-99/4 and
  413. any previous computers. There is no
  414. compatibility with products of Texas
  415. Instruments calculator line. The
  416. Basic language is very similar to
  417. other microcomputer Basics, however,
  418. most programs will need some changes
  419. to run on the 99/4. Any programs
  420. which use the graphics capabilities of
  421. other computers will need to be
  422. totally rewritten to run on the 99/4.
  423. The memory format of a Basic program
  424. is unique as are most personal
  425. computers.  The image which is
  426. recorded to mass-storage in SAVE
  427. command is this memory image which
  428. limits the capability of transporting
  429. Basic programs to other computers even
  430. if they could read our mass storage
  431. media. 
  432.  
  433. Peripheral devices for the 99/4
  434. including the Mini-floppy Disk and
  435. RS-232 Interface will not work on any
  436. other personal computer. Peripherals
  437. from other computers will not work on
  438. the 99/4 except for those with RS-232
  439. interfaces which can be attached to
  440. our RS-232 peripheral. The media or
  441. other mass storage peripheral (audio
  442. tape or disk) will not be transferable
  443. to the 99/4. 
  444.  
  445. The TI-99/2 Basic program cassette
  446. tapes are compatible with the 99/4,
  447. but the 99/2 is not compatible with
  448. 99/4A Solid-State Software, or
  449. vice-versa." 
  450. .PL 1 
  451.  
  452.