<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.ninerpedia.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Stephen+Shaw</id>
	<title>Ninerpedia - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://www.ninerpedia.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Stephen+Shaw"/>
	<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/wiki/Special:Contributions/Stephen_Shaw"/>
	<updated>2026-04-24T21:35:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Stainless_Software&amp;diff=50977</id>
		<title>Stainless Software</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Stainless_Software&amp;diff=50977"/>
		<updated>2023-12-16T17:27:21Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: /* LINKS */  change links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Stainless Software&amp;#039;&amp;#039;&amp;#039; was a TI99/4 and 4a specific software publishing and distributing business run by Stephen Shaw from England from 1982 to 1985.&lt;br /&gt;
&lt;br /&gt;
Stainless distributed  software from many prominent American sources (such as [[Not polyoptics|Not Polyoptics]], Maple Leaf, Norton, PS Software and Pewterware) as well as many U K written programs by authors such as Patrick Strassen, Alexander McMath, Roland Trueman, Malcolm Adams and others).&lt;br /&gt;
&lt;br /&gt;
Once TI withdrew from the market and module prices crashed, sales of tape software became difficult and the business somewhat petered out. Towards the end Stainless arranged with UK authors for as many titles as posible to be released to the freeware market and many were sold in America through Texaments.&lt;br /&gt;
&lt;br /&gt;
Only one customer guessed the origin of the trade name used, a long forgotten UK comedian by the name of Stainless Stephen.&lt;br /&gt;
&lt;br /&gt;
==Stainless published programs by==&lt;br /&gt;
* Adams, Malcolm: Breakpoint, Checkers, Galactic Encounter, Secret Agent &lt;br /&gt;
* Akers, P.J: Bouncing Bugs, Quadrablitz&lt;br /&gt;
* Banks, Colin: Astrowars, Battle Tanks, Crash, Lunar Base / Torpedo Fire&lt;br /&gt;
* Bindoff, S: Tank Atak &lt;br /&gt;
* Boothroyd, K: Bag Bounder, Food of the Gods&lt;br /&gt;
* Brooks, Peter: 3D Func, Auto 3D Func, 3D Noughts and Crosses, Designs for Fun, Freeform and Triangles, Hi D Plot, Lines, Dimple, Keyplot, Mosaics &lt;br /&gt;
* Bryer, Russell: Tukoms Kingdom &lt;br /&gt;
* Burmiston, Gary:  H M S Texas&lt;br /&gt;
* Christmas, M: Beetle &lt;br /&gt;
* Curtis, Mike: Q Bono&lt;br /&gt;
* DCR Software: Trogman&lt;br /&gt;
* Dickinson, Paul: Dungeon Gold, Greedy Green Grabbers&lt;br /&gt;
* Hindley, Philip: Death Park &lt;br /&gt;
* Hobbs, Martin: Splodge&lt;br /&gt;
* Kazmer, Ray:  Cannonball Chess, Texas Ranger&lt;br /&gt;
* Marshall, Graham:  Spring Heeled Jack &lt;br /&gt;
* Mcauley, Colin:  Farmer, Invasion &lt;br /&gt;
* McGovern, Tony: Co-List, Tex Bounce (TXB) &lt;br /&gt;
* McKearney, Stephen: Character Creator  &lt;br /&gt;
* McMath, Alistair: Bowls, Fighter Pilot, Golf, Motor Cross, Rally Cross&lt;br /&gt;
* Myers, Andrew: Grail Quest, The Pit &lt;br /&gt;
* Mynard, Stephen: Kamikaze&lt;br /&gt;
* O&amp;#039;Regan, Mike: Pen the Pig, Word Processor&lt;br /&gt;
* Pauline Programs: Radar Defence&lt;br /&gt;
* Pegg, Ian: Battleships, Extended Character Definition, Mining Game, Quicker Qwerty&lt;br /&gt;
* Pincus, Sam:  Disk Utility Program, Mad Scientist, Stoneville Manor &lt;br /&gt;
* Platt, Austin: Aries&lt;br /&gt;
* Richards, P: Global Rescue&lt;br /&gt;
* Rock, Christopher: Martian Monsters&lt;br /&gt;
* Shaw, Stephen: Amazing; Bells, Black Box (legally licensed from the inventor!); Guess, Hexdechex, Hungarian Hex, Hungarian Squares, Imhotep, Ledgers, Music, Pilot (language), Pompeii, Roulette, Snooker, Squares, TV Test Card, Victorian Sewers, Video Titles.&lt;br /&gt;
* SP Software: First and Last, Kong, Mr D, Pengi, Roo, TNT &lt;br /&gt;
* Strassen, Patrick:  3D Race, Man and Monsters, Night Flight, Patscram Mission, Planet Destroyer, Zarquon.&lt;br /&gt;
* Sumner, Mark:  3D Stalkers, Crazy Caver, Keys of the Castle, PS Pesteroids, Space Rescue, Spy&amp;#039;s Demise, Starprobe 99, Wallaby, Wonkapillar, Octal. (Note: In the USA Mark&amp;#039;s programs were published by several software publishers. He was earning money to write books, one of which became a TV series)&lt;br /&gt;
* Taylor, H: Mars Mine Lander&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And programs whose authors I no longer have any record of (sorry): &lt;br /&gt;
* Firelady, Halloween, Load, Mr Frog, Snakes and Ladders&lt;br /&gt;
&lt;br /&gt;
==Stainless sold under licence programs by==&lt;br /&gt;
* Data Systems: Chemtutor 1, Concordia, Life Expectancy&lt;br /&gt;
* DEJ Software: Armada, ASW Tactics 2, Crash Up, Go for the Gold, Nomad&lt;br /&gt;
* FFF Software: FFF Asteroids, Shuttle Command&lt;br /&gt;
* Intersoft: Defend the Cities 1 and 2, Galactic Gunfight, Meteor Storm&lt;br /&gt;
* Kuhl Software:  Assembler Math, Data Rescue, Fish, Scepter of Kzirgla&lt;br /&gt;
* Maple Leaf Microware: Counting with Coins, Devil Craze, Hang Glider Pilot, Happy Math, Math Flash Astronaut, Math Flash Pilot, Sky Diver, Spelling and Phonics, Time Tutor&lt;br /&gt;
* Norton Software: Attack Man, Cross Country Car Rally, Graphics Package, Lunar Lander, Music Synthesiser, Star Trek, Super Frogger, Tank&lt;br /&gt;
* Not Polyoptics: 99 vaders,  Addvance, Ant wars, Backgammon, Bankroll, Cars and Carcasses 2, Crosses, Hordes, Khe Sanh, Laser Tank, Maze of Ariel, Ophyss, Sengoku Jidai, Ships, Starship Pegasus, Tickworld, Tower, Treasure Trap, Waldoball, Winging It&lt;br /&gt;
* Oak Tree Systems Crossums, Display Enhancement Package, Smash&lt;br /&gt;
* Pewterware: Bluegrass Sweepstakes, Challenge P&amp;lt;!-- wiki doesn&amp;#039;t like P-O-K-E-R without interruption --&amp;gt;oker, Decathlon, Fast Frog, Goblins Revenge, Match Wits, Norbert, Tractor Follies, Up Periscope&lt;br /&gt;
* PRP Computergraphics:  5 Card Stud P&amp;lt;!-- wiki doesn&amp;#039;t like P-O-K-E-R --&amp;gt;oker, Biorhythms, Blackjack, Checkerboard Square, Crossword Challenge, Horserace, Scribble &lt;br /&gt;
* Roach Software: Mega Fighter, Outland&lt;br /&gt;
* Timagination:  Walls and Bridges, Zombie Mambo &lt;br /&gt;
* Titan Software: Braintwisters  1 | Braintwisters 2 | Braintwisters 3 | Gopher&lt;br /&gt;
&lt;br /&gt;
==LINKS== &lt;br /&gt;
&amp;quot;http://webspace.webring.com/people/o0/04451/&amp;quot; - Addatex-  Malcolm Adams web page.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;https://stephen.shawweb.co.uk/TI.html&amp;quot; - Stephen Shaw&amp;#039;s TI resources with some programs in emulator format including Stainless catalogue.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;https://stephen.shawweb.co.uk/stainless1.htm&amp;quot; - Complete Illustrated Compendium Stainless Software Catalogue with links to reviews.&lt;br /&gt;
&lt;br /&gt;
[[Category:Companies]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=User:Stephen_Shaw&amp;diff=50976</id>
		<title>User:Stephen Shaw</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=User:Stephen_Shaw&amp;diff=50976"/>
		<updated>2023-12-16T17:25:32Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;One of the first owners of TI-99/4 and then 4a in the UK, author of Getting Started with the TI-99/4a and owner of Stainless Software supporting only the TI-99/4a. One of first members of first UK 99/4 user group and regular contributor to user group magazines for many years.&lt;br /&gt;
&lt;br /&gt;
I have a few web pages dedicated to the TI99/4a including my book, many articles, and the [[Stainless software]] catalogue - special amalgamated edition with everything I could find listed over the lifetime of the business. See [https://stephen.shawweb.co.uk/TI.html stephen.shawweb.co.uk/TI.html]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Frequently_Asked_Questions&amp;diff=50964</id>
		<title>Frequently Asked Questions</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Frequently_Asked_Questions&amp;diff=50964"/>
		<updated>2023-10-19T09:56:45Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: /* What are my best sources for information regarding the TI? */ - Updated URL to book web page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This FAQ page is currently being reorganized after moving from another web site into ninerpedia. Most parts are not properly formatted, duplicated, or need to be put together.&lt;br /&gt;
&lt;br /&gt;
==Getting started==&lt;br /&gt;
&lt;br /&gt;
===How can I expand my TI-99/4a?===&lt;br /&gt;
&lt;br /&gt;
The simplest of expansions included joysticks, the speech synthesiser and the [[cassette]] recorder.&lt;br /&gt;
&lt;br /&gt;
The speech synthesiser, when used with programs that take advantage of it, is used to create/simulate human speech. [[Parsec]] is a very famous program for utilizing the speech synthesiser. The cassette recorder allows you to store and retrieve data from standard audio cassettes. The next major upgrade for the TI-99/4a is the addition of the Peripheral Expansion Box, or PEB for short. This is a large rectangular box that has 8 slots for plug in cards as well as one 5.25&amp;quot; full height drive bay. A standard/stock PEB would have flex-cable to connect to the TI, a 32k memory card for larger programs, a RS232 card for communications, a Disk Controller (DSSD) to access drives and a standard 5.25 SSDD floppy drive (a 180K-drive with a maximum usage of 90K with this controller). There are lots of other additions for the PEB. The following is a run down of the most famous upgrades: &lt;br /&gt;
&lt;br /&gt;
* DSDD Disk Controller - to support DSDD 3.5&amp;quot; or 5.25&amp;quot; drives. &lt;br /&gt;
* DSDD Drives - for the DSDD controllers &lt;br /&gt;
* Corcomp [[Triple Tech]] - a clock, printer buffer and speech synthesiser (all in one) &lt;br /&gt;
* Myarc HFDC - support for an MFM hard drive &lt;br /&gt;
* [[SNUG]] SCSI - support for a SCSI drive&lt;br /&gt;
* Expanded Memory - cards with more than 32K of memory &lt;br /&gt;
* P-Code - support for USCD Pascal &lt;br /&gt;
* Rave99 Speech - allows you to plug in your Speech Synthesiser in the PEB &lt;br /&gt;
* Myarc Geneve - essentially a replacement system&lt;br /&gt;
&lt;br /&gt;
===How do I run programs from a diskette or [[cassette]]?===&lt;br /&gt;
Programs will be either [[TI BASIC]], [[Extended BASIC]] (XB) or Assembly programs. I will talk about Basic/XB programs first.&lt;br /&gt;
&lt;br /&gt;
Whether they are coming off a disk or cassette you are going to have to load them first and then run them. If you are not sure whether or not it is a Basic or XB program, give it a try in Basic first and if that fails switch to XB.&lt;br /&gt;
&lt;br /&gt;
To load a program from a cassette do the following: &lt;br /&gt;
* Rewind/Fast Forward the cassette to the start of the progam. &lt;br /&gt;
* Make sure the cassette player is attached properly to the TI. &lt;br /&gt;
* In TI BASIC, type: &lt;br /&gt;
 OLD CS1 &lt;br /&gt;
* If you are controlling your tape manually then hit play.&lt;br /&gt;
* Once it is loaded stop the cassette player.&lt;br /&gt;
* Type&lt;br /&gt;
 RUN&lt;br /&gt;
* If it doesn&amp;#039;t run then repeat these steps with XB instead.&lt;br /&gt;
&lt;br /&gt;
To load a program from a diskette do the following: &lt;br /&gt;
* Start up the TI into Basic with the PEB on. &lt;br /&gt;
* Insert the diskette into a drive (dsk1). &lt;br /&gt;
* In TI BASIC, type: &lt;br /&gt;
 OLD DKS1.filename &lt;br /&gt;
* Type&lt;br /&gt;
 RUN&lt;br /&gt;
* If it doesn&amp;#039;t run then repeat these steps with XB instead.&lt;br /&gt;
&lt;br /&gt;
Now on to Assembler programs. Since a pre-requisite for E/A on the TI is a disk drive and 32k memory I&amp;#039;m going to assume you have a PEB and this is coming off a diskette.&lt;br /&gt;
&lt;br /&gt;
To run and Assembler program from diskette do the following: &lt;br /&gt;
* Start up the TI with PEB and the E/A cartridge. &lt;br /&gt;
* Insert the diskette into the drive (dsk1). &lt;br /&gt;
* Go into the E/A Module (#2)&lt;br /&gt;
* Choose &amp;quot;Run Program File&amp;quot; (#5) from the menu.&lt;br /&gt;
* Type in the filename: &lt;br /&gt;
 DSK1.filename&lt;br /&gt;
&lt;br /&gt;
Of course there are other ways to get things launched but this covers the basic methods you will need to know.&lt;br /&gt;
&lt;br /&gt;
=== I want more than the minimum TI, what would a more complete system consist of?===&lt;br /&gt;
Here is what I would view as a more functional system. The key part of this system is its ability to connect to a PC so you can transfer files from the Internet, to the PC and then to the TI. &lt;br /&gt;
* TI-99/4a console with power supply &lt;br /&gt;
* TV and RF Modulator or a Composite Monitor and cable &lt;br /&gt;
* PEB with 5.25&amp;quot; floppy, 32K RAM, Disk Controller, Flex Cable&lt;br /&gt;
* Speech Synthesiser &lt;br /&gt;
* Parallel Printer and PIO cable &lt;br /&gt;
* Extended Basic, Editor/Assembler and TI-Writer cartridges&lt;br /&gt;
* Barry Boone&amp;#039;s Archiver program&lt;br /&gt;
* MagicFM transfer program&lt;br /&gt;
* PC with WinTerm and a straight thru serial cable&lt;br /&gt;
&lt;br /&gt;
===What are the minimum components I need to play around with the TI-994a?===&lt;br /&gt;
Luckily enough it has gotten to the point where you do not need any original TI equipment to play around and even develop on the TI-99/4a. You can use emulation software like PC99 or MESS.&lt;br /&gt;
&lt;br /&gt;
Assuming you cannnot or don&amp;#039;t want to use emulation software, you will need the following:&lt;br /&gt;
&lt;br /&gt;
# TI-99/4a console with power supply. &lt;br /&gt;
# A composite video monitor and cable for the TI or the RF Modulator and a TV. &lt;br /&gt;
# TI Cassette recorder and cable - to save and load programs. &lt;br /&gt;
# Some TI cartridges (games, programs and such)&lt;br /&gt;
&lt;br /&gt;
===Why would I even want to use a TI?===&lt;br /&gt;
Most people that are still using TIs are folks that have owned one all along or are coming back to it from days long past. But what about people who never used it before? Is there any value in using it?&lt;br /&gt;
&lt;br /&gt;
Here are some reasons I could imagine the TI being useful:&lt;br /&gt;
&lt;br /&gt;
# Kids and education titles. There are great number of educational cartridges available for the TI that would be great for younger kids.&lt;br /&gt;
# Hardware and low-level programming. If you want to learn about working with hardware or programming at low-levels the TI is a good stepping stone. While not a simple machine it is not too complex when trying to start out learning.&lt;br /&gt;
# Electronics and project work. You can use the TI to teach yourself the fundamentals of electronics includng circuit board design.&lt;br /&gt;
&lt;br /&gt;
While I can&amp;#039;t imagine too many people trying and picking up the TI if they never owned one, it&amp;#039;s still nice to know that there are useful tasks for the TI.&lt;br /&gt;
&lt;br /&gt;
===Can I modify the TI Disk Controller to support 80 tracks?===&lt;br /&gt;
Yes. There are two great sources of information to perform this modification and both are on Mainbyte.com. You can find information on the actual upgrade, including photos and diagrams at the following link: http://mainbyte.com/ti99/upgrade/upgrade.html. If you would like to perform the upgrade and want to purchase the EPROMS, you can get those from Bob Carmany. For more information please visit the following link: http://mainbyte.com/ti99/store.EPROMS.html&lt;br /&gt;
&lt;br /&gt;
===Can I use a Combo 5.25 and 3.5 drive with my TI system?===&lt;br /&gt;
The short answer to this question is no. The longer answer is along the lines that these are both HD drives which are compatible. The drives operate at 360rpm and the TI needs 300rpm. The line that manages the speed is twisted between the drives and this causes complications. Don&amp;amp;#39;t try it, it&amp;amp;#39;s not worth it.&lt;br /&gt;
&lt;br /&gt;
===How do I get a floppy drive for my TI system?===&lt;br /&gt;
The easiest and most common method is to purchase a Peripheral Expansion Box (PEB). The stock PEB comes with a single 5.25&amp;quot; full height drive that holds 90K per diskette (Single Sided). Inside the stock PEB is also a TI Disk Controller card, it supports up to three drives.&lt;br /&gt;
&lt;br /&gt;
If you don&amp;#039;t want a PEB then you could try and find a Disk Controller that came in other side-car formats. TI made an external disk controller that is the roughly the size of the cassette player and plugged into the side port of the TI. Then you would get an external floppy drive to use with it.&lt;br /&gt;
&lt;br /&gt;
===How do I connect a 3.5 drive to my TI?===&lt;br /&gt;
&lt;br /&gt;
*Drive Number&lt;br /&gt;
Modern 3.5 drives do not have a jumper to set the drive number. By default these drives are coded to be B: on PCs which equates to DSK2 on the TI. You can modify a Floppy cable to hardwire and override the drive number.&lt;br /&gt;
&lt;br /&gt;
To make the drive DSK1 you would cross the #10 and #12 wires. To make the drive DSK3 you would route the #14 wire to the #12 pin and drop the original #12 wire.&lt;br /&gt;
&lt;br /&gt;
A picture of this can be found on Ron&amp;amp;#39;s Mainbyte site at: http://www.mainbyte.com/ti99/hardware/cables/35drive.html &lt;br /&gt;
&lt;br /&gt;
*Drive Connector&lt;br /&gt;
The TI disk cables have a card edge connector while 3.5 drives have pin connectors. Purchase a 3.5 to 5.25 adapter kit for cheap off of eBay and make sure it has a card-edge connector. These kits should be less than 5.00.&lt;br /&gt;
&lt;br /&gt;
===What are my options for upgrading the disk drive in my PEB?===&lt;br /&gt;
&lt;br /&gt;
The standard PEB comes with a full height, 180K 5.25&amp;quot; floppy drive. This is a Single Sided, Double Density (SSDD) drive. &lt;br /&gt;
But please be aware: As the original TI disk controller comes with the capability of Double Sided Single Density (DSSD),&lt;br /&gt;
the maximum capacity for this drive here in this combination is 90K (SSSD).&lt;br /&gt;
&lt;br /&gt;
The typical questions are either &amp;quot;can I fit two drives in the system&amp;quot; or &amp;quot;can I use a drive with more capacity&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are three major constraints you have to work with when answer these questions; power, controller, compatibility. Power is important due to what the standard PEB power supply can provide. The controller is important because it has to support large capacity drives. Finally there is compatibility that certain drives have to operate at certain speeds.&lt;br /&gt;
&lt;br /&gt;
On Mainbyte.com there is an upgrade project where you can upgrade the power supply from 12V 1A to 12V - 2A. If you are running into power problems then this is your answer. The upgrades can be found at: http://www.mainbyte.com/ti99/upgrades.asp&lt;br /&gt;
&lt;br /&gt;
To use the higher capacity drives you will need a disk controller that can support it. If you have a Myarc or Corcomp disk controller then you are set. If you have a TI controller then you will either need to replace it or upgrade it. Once again, the upgrade page at Mainbyte.com has information about performing the 80 track upgrade for the TI controller. Also, there is an entry in this FAQ for it as well.&lt;br /&gt;
&lt;br /&gt;
I also started to find drives in older computers systems that had internal floppy drives. For example, I found an old Kaypro 2X which has (2) half-height drives that are 360 or DSDD for about $15.00. It had a broken screen so I gutted it for the drives.&lt;br /&gt;
&lt;br /&gt;
No matter what you choose you will only be able to use either SSDD (180k) or DSDD (360k) drives. Do not even try using a 1.2mb drive, it will not work. Also, you can skip the idea of using a Combo drive that has both a 3.5&amp;quot; and 5.25&amp;quot; drive in it. Combo drives are all 1.2mb and they don&amp;#039;t work with the TI.&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
===Are there any publications for the TI available?===&lt;br /&gt;
I&amp;#039;m not aware of any publication that is available for the TI. Your best source of information will be found on the Internet, user groups and faires.&lt;br /&gt;
&lt;br /&gt;
===I need detailed information regarding the inner-workings of the TI-99/4a for development, where should I go?===&lt;br /&gt;
I will warn that this information source is not meant to teach, it&amp;#039;s meant to present technical facts. If the sight of HEX, pin-outs, memory-address, assembler and other mathematical/technical items is scary then don&amp;#039;t go here! :)&lt;br /&gt;
&lt;br /&gt;
Seriously, Theirry Nouspikel has a great website that details out the inner-inner workings of the TI system and peripherals. If you are thinking of creating devices, coding DSRs and other low-level stuff then this is the place for you.&lt;br /&gt;
&lt;br /&gt;
You can visit the site at: http://www.unige.ch/medecine/nouspikel/ti99/titech.htm&lt;br /&gt;
&lt;br /&gt;
If you want a copy of the entire site you can download the following components that make up the site:&lt;br /&gt;
&lt;br /&gt;
1) Webpages: http://www.unige.ch/medecine/nouspikel/ti99/webpages.zip &lt;br /&gt;
&lt;br /&gt;
2) Software: http://www.unige.ch/medecine/nouspikel/ti99/softs.zip&lt;br /&gt;
&lt;br /&gt;
3) Pictures: http://www.unige.ch/medecine/nouspikel/ti99/pics.zip&lt;br /&gt;
&lt;br /&gt;
If you ever receive a 404 on the above URLs, the website has been archived and can be recovered from   web.archive.org using the site url http://www.unige.ch/medecine/nouspikel/ti99/titech.htm - (for technical reasons, NOT http://www.nouspikel.com/ti99/)&lt;br /&gt;
&lt;br /&gt;
===Is Micropendium still around for the TI?===&lt;br /&gt;
Unfortunately Micropendium, the last printed publication, is no longer being produced. It was produced for 16 years and played a major part in the continued success for the TI-99/4a computer. If you are lucky enough you have some of the issues in your collection to use.&lt;br /&gt;
&lt;br /&gt;
If you don&amp;#039;t then don&amp;#039;t worry, all of the issues have been scanned in and are available online at WHTECH. Of course search for a particular kind of article is hard to do and Mainbyte.com has taken care of that too!&lt;br /&gt;
&lt;br /&gt;
On Mainbyte you can access a searchable database that will return you what issues and articles matched your search criteria. Once you know that then you can go to WHTECH and get the issue and even print it out. To access it just go to the following location:&lt;br /&gt;
&lt;br /&gt;
http://www.mainbyte.com/ti99/micro/micro.html&lt;br /&gt;
&lt;br /&gt;
===What and when is the Chicago TI Faire?===&lt;br /&gt;
The Chicago TI Faire is held annually and is usually on or around the first Saturday in November. The faire is held in Evanston, IL and the Evanston public library and is free of charge.&lt;br /&gt;
&lt;br /&gt;
Beyond meeting some the folks in the TI community it is a great chance to see some demonstrations on current TI topics. In addition to this there are vendors present selling a variety of TI hardware/software that ranges from common cartridges, full systems and such all the way up to rarer items like Geneve cards or SCSI cards.&lt;br /&gt;
&lt;br /&gt;
There is typically a get together dinner the Friday before the faire as well as one after. Evanston is just north of Chicago and it makes for a great trip for the family if they want to see downtown Chicago while you are at the faire.&lt;br /&gt;
&lt;br /&gt;
===What are my best sources for information regarding the TI?===&lt;br /&gt;
Today the Internet is the principal source, it has stored on it many books, articles, magazines, and programs for and about the TI99/4a.&lt;br /&gt;
&lt;br /&gt;
You can find publications, pictures, manuals and software for the TI at https://ftp.whtech.com&lt;br /&gt;
&lt;br /&gt;
Ron Reuter&amp;#039;s http://www.mainbyte.com/ti99/&lt;br /&gt;
 &lt;br /&gt;
Thierry Nouspikel&amp;#039;s http://www.mainbyte.com/ti99/&lt;br /&gt;
&lt;br /&gt;
Stephen Shaw has put his book and a lot of TI articles on the web at http://ftp.whtech.com/Users/stephen/TI.htm&lt;br /&gt;
&lt;br /&gt;
Lots of books to download from http://www.hexbus.com/tibooks/&lt;br /&gt;
&lt;br /&gt;
===What awards are given out in the TI community?===&lt;br /&gt;
There are several awards in the TI community and each one addresses specific contributions. The awards are as follows:&lt;br /&gt;
&lt;br /&gt;
Birdwell Award - a yearly community service award where the plaque is funded by fairware funds from the Birdwell DSKU proceeds.&lt;br /&gt;
&lt;br /&gt;
Jim Peterson Award - covers (4) categories of contribution to the TI community: Community Service, Hardware, Software, Myarc 9640 Geneve.&lt;br /&gt;
&lt;br /&gt;
[[TI99ers Hall of Fame]] (http://ti99ers.org/hof/) - recognizes those who have contributed to the success of the TI. Active since 2004.&lt;br /&gt;
&lt;br /&gt;
[[Rob Tempelmans Plat]] Award - yearly award to honor those with the best website for the TI.&lt;br /&gt;
&lt;br /&gt;
[[Edgar Mauk Awards]] - awarded annually since 2000 by European TI groups at an annual meeting held in a different country each year for services to European TI 99ers.&lt;br /&gt;
&lt;br /&gt;
===What is the best way to store diskette based software for safe keeping and preservation?===&lt;br /&gt;
I treat my diskette and cassette software collection like I would comic books. I store them in acid-free zip-lock baggies. Another step that I take is to put a silica-gel packet in each baggie to absorb moisture.&lt;br /&gt;
&lt;br /&gt;
Everytime I purchase something and it has a silica-gel packet, I save it in seal-tight container. If you need a lot then head on over to eBay. I purchased a bag of 200 for a couple of dollars.&lt;br /&gt;
&lt;br /&gt;
Beyond this, I can&amp;#039;t think of much more you can do besides keeping the stuff in a climate controlled area but that&amp;#039;s a bit overboard for most folks.&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
&lt;br /&gt;
===Is there any software that can help someone learn Morse Code?===&lt;br /&gt;
There is an XB listing of a morse code trainer in Micropendium; April 1990 - Vol 7, Number 3 - Page 14.&lt;br /&gt;
&lt;br /&gt;
The book &amp;quot;Programs for the TI Home Computer&amp;quot; by Steve Davis has a programmed listed on page 72.&lt;br /&gt;
&lt;br /&gt;
The book &amp;quot;Learning TI/994A Home Computer Assembler Language Programming&amp;quot; by Ira McComic has a source listing of a program on page 203.&lt;br /&gt;
&lt;br /&gt;
Answers were pulled from Yahoo List (R.Reuter, J.Groslouis)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Can I use the Course Designer Authoring System without a Video Controller peripheral?===&lt;br /&gt;
Yes. You can actually play around with the software except for funtions that required communication to the Video Controller.&lt;br /&gt;
&lt;br /&gt;
Orginal content from TI Yahoo List (Ben Yates, Bill Gaskill)&lt;br /&gt;
&lt;br /&gt;
===What are ARK files?===&lt;br /&gt;
ARK files are compressed archive files that are like today&amp;#039;s modern ZIP files. They were created by Barry Boone&amp;#039;s ARCHIVER program. You will need this program to create and extract these files.&lt;br /&gt;
&lt;br /&gt;
===What is a DF80 file?===&lt;br /&gt;
&lt;br /&gt;
DF80 is a Display, Fixed length, 80 character file. Display means the characters can be displayed, but does not mean the data is in human readable format. Fixed length means that every line of the file has a set length. 80 means that the set length of every line is 80 characters. Data that does not go up to 80 characters gets padded with blanks or zeros. Random access is faster when working with DF80 files. &lt;br /&gt;
&lt;br /&gt;
===What is a DV80 file?===&lt;br /&gt;
&lt;br /&gt;
DV80 is a Display, Variable length, 80 characater file. Display means the characters can be displayed, but does not mean the data is in human readable format. Variable length means that each line of the file can varying lengths (like a paragraph). 80 means that the maximum size of any line is 80 characters.&lt;br /&gt;
&lt;br /&gt;
===What was the last version of TI-Base?===&lt;br /&gt;
&lt;br /&gt;
As shown in Micropendium, the last version was 3.0.   Version 3.02 is available at whtech&amp;#039;s website.&lt;br /&gt;
&lt;br /&gt;
https://ftp.whtech.com/emulators/pc99/pc99%20dsk%20collection/Vendors/Inscebot/TIB_302.ZIP&lt;br /&gt;
&lt;br /&gt;
==PC Communication==&lt;br /&gt;
&lt;br /&gt;
===What is the &amp;quot;PC Communication&amp;quot; category for?===&lt;br /&gt;
&lt;br /&gt;
This category was added to document questions and answer on how to have your TI computer talk/communicate/transfer information to and from a modern computer. Most of the discussion will revolve around an IBM compatible but references for either Linux or Mac based machines will pointed when applicable. I should point out that this category does not cover Emulators to the PC, only the real TI computer.? Emulators are already running and communicating with your PC.? If there are specific features, like printing to printer and such, they will be describe in the Emulation section.&lt;br /&gt;
&lt;br /&gt;
===Can you connect to the internet with the TI99/4A?===&lt;br /&gt;
Yes - but text only. Lantronix makes a product called the UDS-10 which is a serial to ethernet converter. In short, it allows you to communicate via your RS232 card to your network and out on to the internet.&lt;br /&gt;
&lt;br /&gt;
You can access text only versions of websites or telnet into Internet based BBS that have an open telnet port. A couple of guys on the TI Yahoo mailing list are doing this and can probably help you out.&lt;br /&gt;
&lt;br /&gt;
The interesting question though is why you would want to do this?&lt;br /&gt;
&lt;br /&gt;
===How can I tell if a file on my PC is a TIFILES?===&lt;br /&gt;
Open the file in TextPad, NotePad or some other text utility. It will come up with garbabe but in the the very front of the document you will either see or not see the actual word &amp;quot;TIFILES&amp;quot;. If it is there then it is a TIFILES. If it is not there then it is not.&lt;br /&gt;
&lt;br /&gt;
===How can I transfer files from my PC to the TI?===&lt;br /&gt;
&lt;br /&gt;
This topic is huge! There are a lot of different ways to do this. Some methods are easier then others and some methods require more equipment. I took a stab at this because I need to do it for myself. You can find a complete article about how to do this the forum pages at:&lt;br /&gt;
&lt;br /&gt;
Internet to the TI&lt;br /&gt;
&lt;br /&gt;
===What is &amp;quot;TI Disk Drive&amp;quot; (TIDD)?===&lt;br /&gt;
TI Disk Drive (TIDD) is a PC program that communicates with the TI via the serial port. It allows you to load a program that resides on the PC, into memory on the TI. This subtle tool is great for solving the &amp;quot;bootstrap&amp;quot; problem for the TI.&lt;br /&gt;
&lt;br /&gt;
The bootstrap problem is occurs when you want to download files from the internet to your PC and then transfer them to the TI. If you don&amp;#039;t have the right software on the TI you can&amp;#039;t even transfer the programs that you need.&lt;br /&gt;
&lt;br /&gt;
===What is a &amp;quot;TIFILES&amp;quot; file?===&lt;br /&gt;
If you were to take a file and send it over to a PC or some other computer via a modem or serial cable it would arrive on the other end but lose some information. It would lose information like what kind of file it is, protection status, how large it is, etc. In order not to lose that information, proper communication programs on the TI prepend (stick on the front) a 128 byte header to the file that captures this information. So now when the file arrives on the other computer it is actaully a little bit larger.&lt;br /&gt;
&lt;br /&gt;
When the 128 byte header is prepended to the file it becomes a &amp;quot;TIFILES&amp;quot;. So by definition, a TIFILES file is a regular file with a 128 byte header. Now if you were to send that same program back to the TI, the 128 byte header gets read so the file is created properly on the TI. Of course, the 128 byte header is removed when it is back on the TI. The 128 byte header is small set of information used to properly rebuild the file once sent back to the TI. If you send a NON-TIFILES file (one without the 128 byte header) to the TI it will get built but more than likely it won&amp;#039;t work properly.&lt;br /&gt;
&lt;br /&gt;
===What kind of cable do I need to connect/communicate with a PC?===&lt;br /&gt;
In order to direct connect to a PC you do NOT need a null-modem cable/adapter. The TI-RS232 card already has its pins switched.&lt;br /&gt;
&lt;br /&gt;
If your PC has a DB25 serial port then you will need a 25-pin Male to 25-pin Female cable. If your PC has a DB9 serial port (laptops and modern computers typically do) then you will need a 25-pin Male to 9-pin Female cable.&lt;br /&gt;
&lt;br /&gt;
If you have an older Macintosh computer with the DIN-8 serial connections then you will need a Macintosh Modem Cable with is a 25-pin Male to DIN-8 Male cable.&lt;br /&gt;
&lt;br /&gt;
===What software do I need on my TI to connect to and share files with my PC?===&lt;br /&gt;
&lt;br /&gt;
First and foremost you will need a communication program on the TI that can operate at a decent speed and send/receive files. MagicFM is an easy to find program that does the trick. It allows you to operate at faster speeds and sends/receive files using XModem protocols. All you will need is a straight-thru serial cable and something like HyperTerminal on your PC. If you are using a older Mac then you can use a Mac Modem Cable and something like ZTerm.&lt;br /&gt;
&lt;br /&gt;
A copy of Barry Boone&amp;#039;s Archiver is essential on the TI as well. Many files will come in an ARK package off the net and this utility can open and uncompress them. This is the TI version of a ZIP program. If you have these two programs you are in business and can start to transfer files back and forth. This means you can start to download and use stuff off of WHTECH! :)&lt;br /&gt;
&lt;br /&gt;
==Consoles==&lt;br /&gt;
&lt;br /&gt;
===How do I connect my TI to work on a modern TV with no RF Terminal?===&lt;br /&gt;
You can use a 300 ohm RF to Coaxial adapter along with the TI Video Modulator to accomplish this. Another option is to purchase the TI Video Cable (find them on eBay or 99er.net) and it goes from the TI Video Port to two RCA connectors (mono audio and video) and plug it into the RCA inputs on a TV or Monitor.&lt;br /&gt;
&lt;br /&gt;
NOTE: This refers to an NTSC (American) console. The European model used an unusual YUV colour model for the PAL output requiring complex circuitry and few monitors can handle it. The European PAL RF modulator used a European PAL standard that caused problems with many British tv sets which used a slightly different audio-video spacing.&lt;br /&gt;
&lt;br /&gt;
===How easy is it to open and work with the console?===&lt;br /&gt;
You just need a smaller phillips screw driver and you are on your way. Basic screws are on the bottom and inside where you can fully dis-assemble a console within five minutes. Once again [[Thierry|Thierry&amp;#039;s TI Tech Pages]] and Ron&amp;#039;s Mainbyte site provide excellent information on doing this.&lt;br /&gt;
&lt;br /&gt;
===What are QI consoles?===&lt;br /&gt;
QI stands for &amp;quot;Quality Improved&amp;quot;.? At one point TI redesigned, or improved the motherboard in the TI-99/4a.? Sometimes you will here people refer to these as v2.2 motherboards which is not always the case.? V2.2, which is visible on the TI startup screens, were an attempt by TI to lockout 3rd party cartridges.&lt;br /&gt;
&lt;br /&gt;
For more information regarding QI consoles you can visit Mainbyte.com at the following address:? http://www.mainbyte.com/ti99/computers/ti99qi.html&lt;br /&gt;
&lt;br /&gt;
===What are the specs for the TI-99/4a console (computer)?===&lt;br /&gt;
CPU - TMS9900 (16-bit) Clock - 3.3Mhz RAM - 16K ROM - 26K Video - 256x192 Dot Density - 24 lines with 40 characters each. Video Chip - TMS9918A (the A is where the A in TI-99/4a came from) Sound Chip - TMS9919 Keyboard - 48 key QWERTY Ports - Cartridge, Expansion, Joystick, Video, Cassette, Power&lt;br /&gt;
&lt;br /&gt;
===What are v2.2 consoles?===&lt;br /&gt;
These consoles were created by TI to lock out 3rd party cartridges like Atari. This was very annoying and there were even 3rd party devices sold to circumvent these types of consoles. You can tell if you have a v2.2 type motherboard as it will say it on the startup screen.&lt;br /&gt;
&lt;br /&gt;
===Whats the difference between the Beige and Silver/Black consoles?===&lt;br /&gt;
Functionally they are identical except that there are certain Beige consoles with a 2.0 ROM that does not allow it to run 3rd party cartridges like Atari games. Otherwise the only difference is cosmetic.&lt;br /&gt;
&lt;br /&gt;
TI, based on the prototypes of future systems, were moving toward the Beige color scheme. Whether it was a cosmetic coloring choice or cheaper/easier materials to work I&amp;#039;m not sure but it was going to be the direction until it was pulled from production.&lt;br /&gt;
&lt;br /&gt;
===Where can I get detailed specs on the operations of the TI console like memory mappings and addresses?===&lt;br /&gt;
&lt;br /&gt;
For a detailed technical analysis of the TI Console you should visit the TI Tech pages hosted by Thierry Nouspikel. For a graphical representation of the console, including a great deal of photos, you should visit the Mainbyte website hosted by Ron Reuter.&lt;br /&gt;
&lt;br /&gt;
===Which beige consoles were v2.2 or QI models?===&lt;br /&gt;
&lt;br /&gt;
It seems that there were three major production runs of beige consoles. This does not include the special run that was produced at the very end for Control Data.&lt;br /&gt;
&lt;br /&gt;
The first run of beige consoles were around June 1983 and these were v1.0 OS and NOT QI. The second run of beige consoles were around Aug/Sep 1983 and were v2.2 OS and NOT QI. The third run were created between Oct 1983 and Mar 1984 and these either v1.0 or v2.2 and QI models.&lt;br /&gt;
&lt;br /&gt;
Summary: &lt;br /&gt;
xTA2283-2983 - 1st Run - v1.0 - not QI &lt;br /&gt;
xTA3083-3983 - 2nd Run - v2.2 - not QI &lt;br /&gt;
xTA4083-1384 - 3rd Run - v1.0/v2.2 - QI ** NOTE **: replace &amp;quot;x&amp;quot; with either &amp;#039;L&amp;#039; for Lubbock TX or &amp;#039;A&amp;#039; for Abilene TX.&lt;br /&gt;
&lt;br /&gt;
Not all of the QI models came with QI Power Supplies. If the expansion port on the console has silver colored fingers/grips then it is a QI model. If the power supply has 2-pins then it is QI if it has 4-pins then it is old/regular style. This information was pulled from the Yahoo Mailing List - Bryan Nicalek.&lt;br /&gt;
&lt;br /&gt;
==About this FAQ==&lt;br /&gt;
&lt;br /&gt;
===How can I contribute to this FAQ?===&lt;br /&gt;
Please consider adding information to existing articles or creating new articles. This is a wiki, open to all- just request registration.by going to Special Pages (in the box on the left) and then choose Request Account.&lt;br /&gt;
&lt;br /&gt;
Remember this is a Wiki, so there is no guarantee that your contribution will remain unchanged, especially when it turns out that the content is wrong or otherwise inappropriate.&lt;br /&gt;
&lt;br /&gt;
===How is the FAQ portion of this site related to the rest of ninerpedia?===&lt;br /&gt;
This faq originated elsewhere, when bulletin boards had ever increasing lists of questions and answers. Little by little the contents are being moved into new articles with cross linking between them. This should make information easier to access. Ninerpedia is a wiki intended for users to share  their knowledge with others by means of short but well linked informative articles.&lt;br /&gt;
&lt;br /&gt;
The FAQ is intended to capture brief questions and answers while the rest of ninerpedia is used to capture information and descriptions for specific aspects of the TI and Geneve world. There are some grey areas but for the most part if something needs to be talked about I will put it in the site and leave a reference from here to there.&lt;br /&gt;
&lt;br /&gt;
===Is it possible to get a text download of the FAQ?===&lt;br /&gt;
You can save the page content with your browser.&lt;br /&gt;
&lt;br /&gt;
===Why create another FAQ for the TI-99/4a?===&lt;br /&gt;
As an owner of a TI System I found that locating information about the TI in one central location was tough to do. There is a lot of good information out there but it&amp;#039;s just not captured very well. On a personal note I want to contribute to the longevity that the TI has experienced and this is a great start at doing that!&lt;br /&gt;
&lt;br /&gt;
==Expansion cards==&lt;br /&gt;
&lt;br /&gt;
===[[IDE Project Card]]===&lt;br /&gt;
To read about connecting an IDE hard drive to a TI99/4a see the article [[IDE Project Card]]&lt;br /&gt;
&lt;br /&gt;
===Serial Cards: Can the TI RS232 card handle speeds faster than 9600bps?===&lt;br /&gt;
Yes (mostly). The ROM on the card can be replaced with an EPROM that allows you to have higher speeds like 19.2 and 38.4kbps. Programs like Extended Basic or TI-Writer cannot utilize the newer codes. Programs like Telco, that program the card directly, can take advantage of the new speeds coded into the EPROM. The following link to Mainbyte.com provides information for this and other upgrades. Bob Carmany is still providing these EPROM upgrades for a fair price.&lt;br /&gt;
&lt;br /&gt;
http://mainbyte.com/ti99/store/EPROMS.html&lt;br /&gt;
&lt;br /&gt;
===Serial Cards: Does anyone know of any articles where a TI99/4A was ever used to control a model train setup through its RS232C cards?===&lt;br /&gt;
&lt;br /&gt;
All the equipment can be built in kit form or pre built and ordered from JLC Enterprises, Inc.&lt;br /&gt;
&lt;br /&gt;
http://www.jlcenterprises.net/&lt;br /&gt;
&lt;br /&gt;
I have a copy of the C/MRI User&amp;amp;#39;s Manual V. 3.0 that Dr. Chubb has published. Also in many back issues of Model Railroader Dr. Chubb has written many columns on his interface and how it is so easy to get working.&lt;br /&gt;
&lt;br /&gt;
There are a few articles back in the 80&amp;amp;#39;s that started all this C/MRI and Dr. Chubb had it all working from a Heath kit computer. Also there were versions for all the older computers, C-64, IBM PC, etc.&lt;br /&gt;
&lt;br /&gt;
It is a really neat system. There is even a Java version of it. I hope this points you in the direction you are look for.&lt;br /&gt;
&lt;br /&gt;
Question by Eric Bray and answer by Emory Lehman.&lt;br /&gt;
&lt;br /&gt;
===Memory Cards: Does anyone still repair RAMdisks?===&lt;br /&gt;
Yes. Richard Bell still performs these repairs and if you don&amp;#039;t have an email address you can contact him throught the TI mailing list on Yahoo.&lt;br /&gt;
&lt;br /&gt;
Orginal content from TI Yahoo List (Richard Bell, Hal Shanafield)&lt;br /&gt;
&lt;br /&gt;
===[[SNUG]] Cards: What are SNUG cards?===&lt;br /&gt;
SNUG cards are third party cards created by the System Ninety Niners Users Group (SNUG). This is German based users group that started to make high quality cards for themselves after vendor support disappeared. Some of the cards were variations of existing cards (controllers, memory) but had enhanced features. Other cards were totally different and offered new functionality to TI systems (80 column, SCSI support, advanced CPU, etc).&lt;br /&gt;
&lt;br /&gt;
To see more about these products and what they can do visit the SNUG site at:&lt;br /&gt;
&lt;br /&gt;
http://home.arcor.de/snug-ab/&lt;br /&gt;
&lt;br /&gt;
For a list of SNUG cards please see the article [[SNUG]]&lt;br /&gt;
&lt;br /&gt;
===P-Code: How do I turn on/off the P-Code card?===&lt;br /&gt;
There is a switch on the back of the card that sticks outside the PEB that toggles the card on/off. When the card is off the TI operates as normal. When the card is on it takes control of the TI at startup and places you at a command prompt.&lt;br /&gt;
&lt;br /&gt;
===Other Cards: What is the Myarc 9640/Geneve card?===&lt;br /&gt;
&lt;br /&gt;
Please refer to the article [[Geneve]].&lt;br /&gt;
&lt;br /&gt;
The Geneve computer is a card for the 99/4A Peripheral Expansion Box which replaces the interface card used to connect to a 99/4A console. In its standard configuration, the 9640 comes with 512K of CPU RAM, 128K of video RAM, a battery-backed clock chip, joystick and mouse ports, and an IBM PC/XT keyboard. The video processor provides an 80 column text display, and uses an analog RGB (not VGA) monitor. The native operating system is an MS-DOS clone called MDOS, and 99/4A software is run with an emulation utility called the &amp;quot;GPL Environment&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Original information from comp.sys.ti FAQ by Jim Reiss&lt;br /&gt;
&lt;br /&gt;
===Serial Cards: CorComp and TI RS232 cards?===&lt;br /&gt;
Functionally these cards are equivalent to each other.&lt;br /&gt;
&lt;br /&gt;
===Serial Cards: What do I need to hook up a printer to my TI-99/4a?===&lt;br /&gt;
Refer to article [[Printer]]&lt;br /&gt;
&lt;br /&gt;
===Memory Cards: What is a RAMDISK?===&lt;br /&gt;
See also articles [[Memory Expansion Cards]] regarding the use of general Memory Expansion Cards as ramdisk, and [[Mini Memory]] regarding the use of the module to save programs or data to.&lt;br /&gt;
&lt;br /&gt;
A RAMdisk in the functional equivalent of a physical disk drive without the moving parts. A physical disk drive system stores data on a mylar disk with a coating of iron oxide. The data is retrieved by a read/write head that is controlled by a stepping motor as the disk spins in its protective cover.&lt;br /&gt;
&lt;br /&gt;
A RAMdisk stores data on a series of static RAM chips that have been divided into sectors similar to the arrangement on a physical disk. However, since there are no moving parts, the RAMdisk is much faster than a physical disk drive and the data is available almost instantaneously.&lt;br /&gt;
&lt;br /&gt;
Loading a RAMdisk The two surviving modern RAMdisks (QUEST and HORIZON) are battery-backed to ensure that the data is maintained even after the computer and P-Box are turned off. Each is powered by three 1.25V NI-CAD batteries that charge whenever the computer and P-Box are turned on.&lt;br /&gt;
&lt;br /&gt;
Both come with a software package that allows the user to initialize, partition and assign drive numbers to the RAMdisk. The first step is to load the generic DSR (Device Service Routine) into the RAMdisk. This allows the computer to find the RAMdisk. Each of the configuration program is menu-driven and very easy to follow. The only limitation is that a single disk drive cannot exceed the maximum size of 1600 sectors (ie. 400K). Let&amp;#039;s assume that we have a 512K RAMdisk installed in a system with a TI Disk Controller.&lt;br /&gt;
&lt;br /&gt;
Once the RAMdisk has been initialized, the configuration program will ask for a drive number and size. It is wise to assign a drive number greater than the maximum number of drives that your physical controller can handle (ie. 4-9 for a TI Controller and 5-9 for a Corcomp Controller) to avoid any conflicts.&lt;br /&gt;
&lt;br /&gt;
We can designate part of our RAMdisk as DSK4 (1600 sectors) and the other part as DSK5 (448 sectors) which fill up the entire 512K (512*1024/4 sectors per kilobyte = 2048 sectors).&lt;br /&gt;
&lt;br /&gt;
Each of the RAMdisks come with a menu-type program (MENU for HORIZON and AUTO for QUEST) that are variants of the John Johnson BOOT program. These can be configured to allow for the loading of both XB and A/L programs available when the system first boots. In each case the menu program intercepts the TI startup routine and slaps the user-defined menu in place of the title screen. They come with full instructions.&lt;br /&gt;
&lt;br /&gt;
In addition, there are user defined CALLs that can be invoked to either directly load A/L programs from the command mode or CALL them from a running program. There are simple instructions for there use as well.&lt;br /&gt;
&lt;br /&gt;
When you are through, the generic DSR has been modified to the users configuration and installed into the RAMdisk. It should now be saved to disk under a different name than the original.&lt;br /&gt;
&lt;br /&gt;
At this point, you are ready to load whatever programs you wish into your RAMdisk. This can be done with ANY disk manager program. Oh yes, you can write protect either or both parts of the partitioned RAMdisk and enable or disable the MENU/AUTO program.&lt;br /&gt;
&lt;br /&gt;
Common problems There are two problems that arise with RAMdisks that can be perplexing at times. They are easily curable.&lt;br /&gt;
&lt;br /&gt;
If the RAMdisk will not load programs and a check with a disk manager indicated that the RAMdisk is &amp;quot;not there&amp;quot;, the DSR has been corrupted. The easiest cure is to go back to the configuration program a reload the saved version of your customized DSR.&lt;br /&gt;
&lt;br /&gt;
If the RAMdisk will not hold programs in memory, the problem is with the battery circuit. This can be a loose battery or a cold solder joint or a dead battery. The easiest way to check to with a voltmeter. Check voltage and continuity.&lt;br /&gt;
&lt;br /&gt;
Original information by Bob Carmany. Original listing in TI FAQ by Dan Eicher.&lt;br /&gt;
&lt;br /&gt;
===P-Code: What is the P-Code card?===&lt;br /&gt;
The P-Code card is a card for the PEB that provides and emulation environment to support and run P-Code. When the P-Code is active, via a switch on the back, it takes control of the entire TI environment and replaces it with one to edit, run and assemble P-Code.&lt;br /&gt;
&lt;br /&gt;
The P-Code card along with the documentation and software is more like a environment as opposed to a a piece of software or a peripheral. P-Code software that is developed is transportable to other platforms that support P-Code.&lt;br /&gt;
&lt;br /&gt;
===Rave: What is the Rave99 Speech Adapter?===&lt;br /&gt;
The Rave99 Speech adapter is a half-height card for your PEB box where you can plug your TI Speech Synthesiser into. Basically you take the circuit board out of the synthesiser and plug it into the adapter. The adapter and the circuit board then go into your PEB. There is no software to load or CRU switches for it. You just simply plug and play. The main advantage is you no longer have to have your synthesiser hanging off the side of your TI console. Of course you are taking up 1 of the 8 slots in your PEB but most people have the spare room.&lt;br /&gt;
&lt;br /&gt;
==Not yet categorized==&lt;br /&gt;
&lt;br /&gt;
===Modems===&lt;br /&gt;
&lt;br /&gt;
====Modems: Can I connect to the Internet with my TI and a Modem?====&lt;br /&gt;
Yes, but with some caveats. First and foremost you need an ISP that provides dial-up, shell access. This is basically a UNIX account that you can connect to with a modem and work from the terminal. You can access text based resources like text based email and web browsing. For most people it is not very useful. The problem is finding an ISP that will provide you with this kind of account and then there are the costs.&lt;br /&gt;
&lt;br /&gt;
====Modems: Did TI produce a modem that I can use?====&lt;br /&gt;
Yes. TI produced the &amp;quot;TI Coupler Modem&amp;quot; and it is still usable (not in Europe). The trick is that a coupler modem does not have any dialing mechanics so you have to manuall dial the telephone.&lt;br /&gt;
&lt;br /&gt;
Coupler modems require you use an older handset telephone, the ones with the round mouth and ear pieces. You dial the phone by hand and then you set the handset on the coupler modem which has 2 suction cup like connectors to listen and speak with phone. If you saw the movie War Games, it&amp;#039;s the same type of modem they used.&lt;br /&gt;
&lt;br /&gt;
One thing to note is that the TI modem only operates up to 300bps, which for all intent and purposes is beyond usable. Because of that it is more of a nostalgic piece of equipment.&lt;br /&gt;
&lt;br /&gt;
====Modems: What kind of modem can I use with my TI?====&lt;br /&gt;
This assumes you have an RS232 device to communicate with the modem. These came as side-car peripherals that plugged into the side of the TI or they are card that go into the PEB.&lt;br /&gt;
&lt;br /&gt;
You can use any modem as long as it is Hayes compatible and can operate at a speed your software and the RS232 card supports. The standard TI RS232 card operates at speeds from 110bps up to 9600bps. Terminal Emulator II operates at either 110bps or 300bps. Other emulator programs, like Telco, can operate at higher speeds.&lt;br /&gt;
&lt;br /&gt;
The modem should have a serial connection and typically they are db-25 pin connectors on them. You will need a serial cable to connect the modem to your RS232 device.&lt;br /&gt;
&lt;br /&gt;
===Utility===&lt;br /&gt;
&lt;br /&gt;
====Utility: Can I see the contents of an ARK file on my PC?====&lt;br /&gt;
At first this may seem an odd question for a TI FAQ but it is relevant since most people download files with their PC for either emulation purposes or to transfer to their TI.&lt;br /&gt;
&lt;br /&gt;
Fred Kaal&amp;#039;s [[TiDir]] program will allow you access Archive files (v9t9 format and created with Barry Boones archiver).&lt;br /&gt;
&lt;br /&gt;
====Utility: Is there a way to convert MultiPlan files to MS Excel?====&lt;br /&gt;
&lt;br /&gt;
Yes, you can save a MultiPlan file as SLYK and MS Excel can read and open that.&lt;br /&gt;
&lt;br /&gt;
Question by &amp;amp;#39;Susie and Deck&amp;amp;#39;&amp;amp;#39; and answer by Jacques Groslouis&lt;br /&gt;
&lt;br /&gt;
====Utility: What are ARK files?====&lt;br /&gt;
ARK files are compressed archive files that are like today&amp;#039;s modern ZIP files. They were created by Barry Boone&amp;#039;s [[Archiver|ARCHIVER]] program. You will need this program to create and extract these files.&lt;br /&gt;
&lt;br /&gt;
====Utility: What are the passwords for DU2K?====&lt;br /&gt;
DU2K is Fred Kahl&amp;#039;s program  Diskutilities 2000 to Format and Initialize SCSI, IDE and DSK devices. With the program it is also possible to create a partition table on IDE drives.&lt;br /&gt;
&lt;br /&gt;
DU2K prevents you from accidentally doing something destructive by prompting for a password. There are three operations that require passwords and each one is different. • Partition: SAVEPT • Initialize: INITIALIZE • Format &amp;amp; Initialize: FORMAT&lt;br /&gt;
&lt;br /&gt;
====Utility: What is Funnelweb?====&lt;br /&gt;
[[Funlweb|Funnelweb]] is a descendant of the TI-Writer word processor, but has gone far beyond it. Funnelweb provides a menu-driven environment into which you can integrate all sorts of software. Among the many features of the environment is the ability to catalog a disk without loading a disk manager, the ability to run all sorts of machine language programs with the Extended BASIC cartridge plugged in, and bundled utilities like a disk editor and a disk manager. There are word processing and programming versions of the editor portion, and there is support for 80 column cards. There&amp;#039;s far more to say about Funnelweb than is appropriate for a FAQ, but hopefully this will be enough of an overview to give some idea. Original information from comp.sys.ti FAQ by Jim Reiss&lt;br /&gt;
&lt;br /&gt;
====Utility: What is the latest version of the [[Archiver]] program?====&lt;br /&gt;
3.03G and 4.0 are the latest versions. 3.03G supports both the TI and the GENEVE computers. The &amp;#039;G&amp;#039; was an update to fix a bug when running it on Geneves.&lt;br /&gt;
&lt;br /&gt;
4.0 is an update created by Tim Tesch to handle hard-drive paths. This feature works only for extracting, not creating archives.&lt;br /&gt;
&lt;br /&gt;
Original content from TI Yahoo List (Barry Boone, Ben Yates)&lt;br /&gt;
&lt;br /&gt;
===Buying and Selling: Can I still buy TI related merchandise?===&lt;br /&gt;
&lt;br /&gt;
There are a couple of people who have opened or in the middle of opening TI related shops on the cafepress.com website. The nice thing about CafePress is that it allows individuals to open stores for free and they manage all the production and ordering processes. For the owner it can be as simple as creating some graphics, applying it to stock merchandise and setting prices.&lt;br /&gt;
&lt;br /&gt;
Here are some known TI merchandise stores:&lt;br /&gt;
&lt;br /&gt;
* 994ashop - http://www.cafepress.com/994ashop&lt;br /&gt;
* 994ashop2 - http://www.cafepress.com/994ashop2&lt;br /&gt;
* 994ashop3 - http://www.cafepress.com/994ashop3&lt;br /&gt;
&lt;br /&gt;
===Buying and Selling: How do I make sure that I&amp;#039;m not paying too much for a TI related item?===&lt;br /&gt;
This is subjective and the answer depends on who you talk to. Even then it could change from time to time from the exact same people.&lt;br /&gt;
&lt;br /&gt;
For example, I&amp;#039;m almost done with my Micropendium Collection of magazines. The magazine ran from Feb-84&amp;#039; through Jun-99&amp;#039; and had just over 150 issues. All I have left to collect are the very last two issues and I&amp;#039;m done. If some one said I will sell you the two for $30.00, I would probably buy it just to finsih the collection. While 1 year ago I would only spend $30 bucks for about 30-40 issues.&lt;br /&gt;
&lt;br /&gt;
The change in value and why I&amp;#039;m purchasing has changed. It has gone from buying many to build the collection to very specific and narrow to finish it. The same thing applies to you and your purchases.&lt;br /&gt;
&lt;br /&gt;
Here is what you can do though. Watch eBay and see what things sell for. Ask questions on the Yahoo list and see what people will pay for. Read the collecting lists and information on the forums page of ti-994a.com, it has some good information too. No single source is ever right, look at various sources and try and triangulate a target price. Don&amp;#039;t forget to factor yourself into the equation too. Don&amp;#039;t buy anything unless you are comfortable and feel that you are getting a good deal.&lt;br /&gt;
&lt;br /&gt;
===Buying and Selling: Where do I go to buy/sell TI related equipment?===&lt;br /&gt;
&lt;br /&gt;
There is actually a healthy bit of TI related equipment out there to purchase, you just need to know where. The following are the actual places I go to purchase my TI equipment:&lt;br /&gt;
&lt;br /&gt;
1) eBay - search on &amp;quot;ti99*&amp;quot; or &amp;quot;ti 99*&amp;quot;, you may want to exclude some items as well. For instance, &amp;quot;ti 99*&amp;quot; return items like Nike shoes and such so I use a search string &amp;quot;ti 99* -nike&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2) TI Mailing List on Yahoo - if you haven&amp;#039;t joined, join! If there is something you need just politely ask. In fact, I just purchased some Micropendiums magazines from one of the other members.&lt;br /&gt;
&lt;br /&gt;
3) Chicago TI Faire - I live in Chicago and the faire is hosted on a Saturday each November. Great deals, great prices and some hard to find items. Plus you get to meet some fine folks.&lt;br /&gt;
&lt;br /&gt;
4) There are some folks who supply/sell items on a regular basis. You can find them on the Yahoo list. The following is a list of items I know of, forsale:&lt;br /&gt;
&lt;br /&gt;
* Upgrade Eproms for TI, Myarc and other cards * TI Monitor Cable - connecting TI to a Video Monitor * Console RAM upgrades - put 32K in your console * PC99 Emulation / Cyc CD - Commercial emulator for the TI&lt;br /&gt;
&lt;br /&gt;
5) Rumage, garage and antique sales - this stuff has a habbit of turning up. There are numerous stories of folks finding stock piles of TI stuff from estate sales and such.&lt;br /&gt;
&lt;br /&gt;
In addition to these places there are many other places you will find.? Some of these will only have a couple of items but you never know which one will have something you need.? Check the various TI Websites because some of them have either classified sections or auctions, though a lot of the information is old/stale there some bargains to be had.&lt;br /&gt;
&lt;br /&gt;
===Hardware: Can I use the Rave99 Speech Adapter to plug in other peripherals than the Speech Synthesiser?===&lt;br /&gt;
No. The Rave99 Speech Adapter does not use all connectors and there is specialized PAL for speech access.&lt;br /&gt;
&lt;br /&gt;
Orginal content from TI Yahoo List (Tony Knerr, Ben Yates)&lt;br /&gt;
&lt;br /&gt;
===Hardware: What are the known CRU addresses for the TI and its peripherals?===&lt;br /&gt;
This information was posted by Eric Bray from an article of his from 1990. The following are the assigned CRU adresses used by the TI:&lt;br /&gt;
&lt;br /&gt;
 1000 NOT DEFINED &lt;br /&gt;
 1100 DISK CONTROLLER &lt;br /&gt;
 1200 HOME SECURITY CARD &lt;br /&gt;
 1300 RS232 1ST CARD &lt;br /&gt;
 1400 MODEM CARD &lt;br /&gt;
 1500 RS232 2ND CARD &lt;br /&gt;
 1600 DIGITAL CASSETTE &lt;br /&gt;
 1700 HEX BUS &lt;br /&gt;
 1800 THERMAL PRINTER &lt;br /&gt;
 1900 EPROM CARD &lt;br /&gt;
 1A00 STUDENT TYPING CARD &lt;br /&gt;
 1B00 NOT DEFINED &lt;br /&gt;
 1C00 VIDEO CARD &lt;br /&gt;
 1D00 IEEE CARD &lt;br /&gt;
 1E00 NOT DEFINED &lt;br /&gt;
 1F00 P-CODE CARD&lt;br /&gt;
&lt;br /&gt;
===Hardware: What peripherals were there for the Course Designer Authoring System?===&lt;br /&gt;
The peripherals consisted of a Video Controller unit and a cable to connect it to a VCR/Video unit. The following is a list of the parts and prices:&lt;br /&gt;
&lt;br /&gt;
 PHP1290 Video Controller $399.95&lt;br /&gt;
 PHA2310 Video Cable-Panasonic $99.95&lt;br /&gt;
 PHA2320 Video Cable-Sony $99.95&lt;br /&gt;
 PHA2330 Video Cable-Pioneer $99.95&lt;br /&gt;
&lt;br /&gt;
Orginal content from TI Yahoo List (Bill Gaskill)&lt;br /&gt;
&lt;br /&gt;
===Joysticks: Do I have to use the TI joysticks or can I use some other brand?===&lt;br /&gt;
No but you need an adapter. TI&amp;#039;s wired controllers have the same type of plug as an Atari 2600 joystick. The only difference is the wiring of the pins. If you buy an adapter or build one then you can use any joystick that works with the Atari 2600.&lt;br /&gt;
&lt;br /&gt;
If you can&amp;#039;t locate a joystick adapter and have some basic electronic skills you can build one for yourself. Mainbyte.com has an excellent project page with diagrams to do this. You can find this information at: http://mainbyte.com/ti99/hardware/cables/joystick.html&lt;br /&gt;
&lt;br /&gt;
===Joysticks: I can&amp;#039;t find an Atari adapter, what else can I do?===&lt;br /&gt;
The adapter is a relatively simple device with a couple of d-sub 9 connectors and some diodes. With a quick trip to Radio Shack you can find all the parts. Information about this project can be found on Mainbyte at: http://mainbyte.com/ti99/hardware/cables/joystick.html&lt;br /&gt;
&lt;br /&gt;
===Joysticks: What would you recommend for an Atari based joystick?===&lt;br /&gt;
This is very subjective topic but I can speak from my own experiences. First of all the original Atari 2600 joystick is a lot better than the TI wired controller so you could start with that.&lt;br /&gt;
&lt;br /&gt;
If you don&amp;#039;t like the Atari brand joystick then there are two others I can recommend. First is the Epyx 500XJ for Atari joystick. This is a great joystick because it is ergonomic and fits into the palm of your left hand so you your finger can wrap around it. Your index finger on your left rests comfortably on the fire button. Your right hand, the free one, operates the joystick. The joystick is tactile and clicks.&lt;br /&gt;
&lt;br /&gt;
The second joystick that I would recommend is the Suncom Slik Stick. It is a smaller joystick but it had a great feel with precision for the most complicated of moves. Either of these joysticks are great but the Epyx 500XJ is considered to be the cadillac of Atari type joysticks by many gamers.&lt;br /&gt;
&lt;br /&gt;
===Games: Does anyone know of an editor available for Tunnels of Doom?===&lt;br /&gt;
There is an editor for Tunnels of Doom called the &amp;quot;Tunnels of Doom Editor&amp;quot;. You can find a PC99 image of the diskette on WHTECH at the following link: https://ftp.whtech.com/emulators/pc99/pc99%20dsk%20collection/Vendors/Asgard/TODE-V3.ZIP&lt;br /&gt;
&lt;br /&gt;
If you don&amp;#039;t have PC99, you can use V9T9 and there is a utility program to convert PC99 disk images to V9T9 format.? Both MESS and Win994a use the v9t9 format as well. &lt;br /&gt;
&lt;br /&gt;
This utility can also be found on WHTECH at the following link: &lt;br /&gt;
https://ftp.whtech.com/emulators/v9t9/Convert%20PC99%20disks%20to%20V9T9/&lt;br /&gt;
&lt;br /&gt;
Or you can use the Windows program [[TiDir]]&lt;br /&gt;
&lt;br /&gt;
===System Information: I need detailed information regarding the inner-workings of the TI-99/4a for development, where should I go?===&lt;br /&gt;
&lt;br /&gt;
[[Thierry Nouspikel]] has a great website that details the inner-inner workings of the TI system and peripherals. If you are thinking of creating devices, coding DSRs and other low-level stuff then this is the place for you. If the sight of HEX, pin-outs, memory-address, assembler and other mathematical/technical items is scary then don&amp;#039;t go here! :)&lt;br /&gt;
&lt;br /&gt;
You can visit the site at: http://www.nouspikel.com/ti99/titechpages&lt;br /&gt;
&lt;br /&gt;
If you want a copy of the entire site you can download the following components that make up the site:&lt;br /&gt;
&lt;br /&gt;
1) Webpages: http://www.nouspikel.com/ti99/webpages.zip 2) Software: http://www.nouspikel.com/ti99/softs.zip 3) Pictures: http://www.nouspikel.com/ti99/pics.zip&lt;br /&gt;
&lt;br /&gt;
===System Information: Is the TMS9900 big or little endian?===&lt;br /&gt;
&lt;br /&gt;
The TMS9900 is Big Endian.&lt;br /&gt;
&lt;br /&gt;
===Displays: If I bought an old TI 99/4a monitor, would it use the RF modulator and cable, or was some other cable type used?===&lt;br /&gt;
The TI Monitor does not use the RF Modulator, it is a separate and different cable. The TI Monitor Cable has the same large round 5pin connector as the modulator but ends in two RCA style plugs (like the ones on a stereo).&lt;br /&gt;
&lt;br /&gt;
One RCA plug is for video and the other one is for audio. Please note that the TI Monitor does not have an RCA plug for audio, it has a headphone jack. You will need to go to Radio Shack or other electronics shop and buy an RCA-to-Headphone adapter which is pretty cheap.&lt;br /&gt;
&lt;br /&gt;
===Displays: Is it possible to use a modern LCD monitor with the TI-99/4a?===&lt;br /&gt;
NOTE this answer refers to NTSC USA consoles with analog RGB video output  and does not apply to European PAL consoles which had a YUV video output requiring a very special monitor (although a monochrome monitor could be used fairly easily).&lt;br /&gt;
&lt;br /&gt;
Yes, you can use certain LCD panels with the TI. The trick is finding one that support composite video input or buying a special adapter that converts composite video to VGA.&lt;br /&gt;
&lt;br /&gt;
The Samsung &amp;quot;MP&amp;quot; series of monitors is great for this purpose. Essentially these monitors have the following input connections: Composite Video (RCA), S-Video, VGA and Coaxial (antenna/cable). I have a Samsung 150MP which is a 15&amp;quot; version of this monitor and have a TI coming into it.&lt;br /&gt;
&lt;br /&gt;
===Displays: What are the types of displays I can hook my TI up to? VGA, TV, etc...===&lt;br /&gt;
&lt;br /&gt;
NOTE this answer is about the USA NTSC console which had an RGB video output. In Europe the console output was YUV requiring a very special monitor, or the RF (analog) modulator.&lt;br /&gt;
&lt;br /&gt;
There are essentially two directions you can take with TI, a TV or a composite video display. The TV is a bit easier to tackle so let&amp;#039;s start there first.&lt;br /&gt;
&lt;br /&gt;
Every TI system shipped with an RF Modulator. This modulator allowed you to connect your TI to a television set on a VHF channel. The problem you will run into is that the modulator connects to the older, two screw terminals, that were made for antenna conneciton on older television. Modern televisions will not have these. You can go to Radio Shack and buy an adapter that goes from Coaxial (cable) input to these screw terminals.&lt;br /&gt;
&lt;br /&gt;
TI made two versions of a monitor for the TI-99/4* series of computer. The first one was a repackaged 13&amp;quot; TV modified to accept input via composite connections (RCA plugs). The second one was a 10&amp;quot; color monitor. Any display you own that has composite video inputs (RCA inputs) can be used.&lt;br /&gt;
&lt;br /&gt;
Here is a short list of ways to hook up a TI to different displays. RFM stands for RF Modulator. TVC stands for TI Video Cable.&lt;br /&gt;
&lt;br /&gt;
RFM -&amp;gt; Older TV RFM -&amp;gt; Coaxial Adapter -&amp;gt; Modern TV TVC -&amp;gt; TI Monitor TVC -&amp;gt; Composite Video Monitor TVC -&amp;gt; VCR -&amp;gt; Modern TV TVC -&amp;gt; Composite Video Adapter -&amp;gt; VGA Monitor TVC -&amp;gt; Composite Video Adapter -&amp;gt; LCD Panel TVC -&amp;gt; Composite Video Adapter -&amp;gt; PC TVC -&amp;gt; LCD Panel with built-in Composite&lt;br /&gt;
&lt;br /&gt;
===UDS-10: What is the Lantronix UDS-10 adapter?===&lt;br /&gt;
The UDS-10 allows you to connect a serial device to an ethernet network. This opens up possibilities for equipment that cannot be directly connected to modern networks.&lt;br /&gt;
&lt;br /&gt;
The TI, with an RS232 expansion card/device, can be connected to a UDS-10 and then placed on the network. The result is that the TI can communicate with other devices (like a PC) over the network. In theory you could actually have two TI&amp;#039;s communicating with each other over the Internet as well.&lt;br /&gt;
&lt;br /&gt;
===UDS-10: Where can I get a UDS-10 adapter?===&lt;br /&gt;
You can buy these items new from various companies and they retail for over $100. I found mine on eBay and got it for the low price of $35. So do some hunting and get one for cheap.&lt;br /&gt;
&lt;br /&gt;
===Trivia: What is Black Friday?===&lt;br /&gt;
Black Friday refers to October 28, 1983 when Texas Instruments publically announced that they are leaving the home computer market.&lt;br /&gt;
&lt;br /&gt;
===Trivia: Not Polyoptics Trivia===&lt;br /&gt;
[[Not Polyoptics]] &lt;br /&gt;
Firstly a list of 22 product names and possible descriptions. Now match them up.&lt;br /&gt;
01/06/2007 &lt;br /&gt;
&lt;br /&gt;
Description and product name: &lt;br /&gt;
{|&lt;br /&gt;
| A. 99&amp;amp;#39;Vaders (15)&lt;br /&gt;
| 01. The adventure of CETI&lt;br /&gt;
|-&lt;br /&gt;
| B. Addvance (09)&lt;br /&gt;
| 02. Graphic Adventure Game &lt;br /&gt;
|-&lt;br /&gt;
| C. Ant Wars (06)&lt;br /&gt;
| 03. The Investment Game &lt;br /&gt;
|-&lt;br /&gt;
| D. Bankroll (03)&lt;br /&gt;
| 04. Flight Simulator &lt;br /&gt;
|-&lt;br /&gt;
| E. Cars &amp;amp; Carcasses 2 (20)&lt;br /&gt;
| 05. Air Traffic Controller &lt;br /&gt;
|-&lt;br /&gt;
| F. Cosmolopy (10)&lt;br /&gt;
| 06. Insect World Combat &lt;br /&gt;
|-&lt;br /&gt;
| G. Crosses (17)&lt;br /&gt;
| 07. Guerilla War in Viet Nam&lt;br /&gt;
|-&lt;br /&gt;
| H. Hordes (11)&lt;br /&gt;
| 08. Medieval Japanese Warfare &lt;br /&gt;
|-&lt;br /&gt;
| I. Khe Sanh (07)&lt;br /&gt;
| 09. Computerized Board Game &lt;br /&gt;
|-&lt;br /&gt;
| J. Laser Tank (13)&lt;br /&gt;
| 10. Space War &lt;br /&gt;
|-&lt;br /&gt;
| K. Maze of Ariel (18)&lt;br /&gt;
| 11. Game of Global Conquest &lt;br /&gt;
|-&lt;br /&gt;
| L. Ophyss (12)&lt;br /&gt;
| 12. The Serpent Game &lt;br /&gt;
|-&lt;br /&gt;
| M. Sengoku Jidai (08)&lt;br /&gt;
| 13. CIREV Showdown &lt;br /&gt;
|-&lt;br /&gt;
| N. Ships! (14)&lt;br /&gt;
| 14. Battle for the High Seas &lt;br /&gt;
|-&lt;br /&gt;
| O. Starship Pegasus (01)&lt;br /&gt;
| 15. Kamikaze Aliens &lt;br /&gt;
|-&lt;br /&gt;
| P. T-Shirt (21)&lt;br /&gt;
| 16. Strategy Soccer &lt;br /&gt;
|-&lt;br /&gt;
| Q. Texas Light Shooter (22)&lt;br /&gt;
| 17. Original game of Juxtaposition &lt;br /&gt;
|-&lt;br /&gt;
| R. Tickworld (19)&lt;br /&gt;
| 18. Lantern and Grenades &lt;br /&gt;
|-&lt;br /&gt;
| S. Tower (05)&lt;br /&gt;
| 19. A Forest &lt;br /&gt;
|-&lt;br /&gt;
| T. Treasure Trap (02)&lt;br /&gt;
| 20. City invaded by Monsters &lt;br /&gt;
|-&lt;br /&gt;
| U. Waldoball (16)&lt;br /&gt;
| 21. Navy and yellow on silver grey &lt;br /&gt;
|-&lt;br /&gt;
| V. Winging It (04)&lt;br /&gt;
| 22. Plugs into the Joystick port &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And some open questions, this time with the answers:&lt;br /&gt;
&lt;br /&gt;
01. In which product would you find the use of a &amp;amp;#39;randomized earth simulacrum&amp;amp;#39;? &lt;br /&gt;
A: Winging It &lt;br /&gt;
&lt;br /&gt;
02. Which product required that you specify Civilian or Military in order to use the program? &lt;br /&gt;
A: Tower &lt;br /&gt;
&lt;br /&gt;
03. Which product provided news headlines to help assess the future? &lt;br /&gt;
A: Bankroll by Arthur P. Jacoby. &lt;br /&gt;
&lt;br /&gt;
04. Which product featured the Builders&amp;amp;#39; Planetoid? &lt;br /&gt;
A: Treasure Trap &lt;br /&gt;
&lt;br /&gt;
05. Which product plugged into the joystick port of the 99/4A? &lt;br /&gt;
A: Texas Light Shooter &lt;br /&gt;
&lt;br /&gt;
06. Which product sported navy blue and yellow colors on a silver-grey background? &lt;br /&gt;
A: Not-Polyoptics T-Shirt &lt;br /&gt;
&lt;br /&gt;
07. Not-Polyoptics, founded in 1981, was a division of what Co/Corp? &lt;br /&gt;
A: Syncronet &lt;br /&gt;
&lt;br /&gt;
08. What product had Androids pitted against Robots? &lt;br /&gt;
A: Waldoball. &lt;br /&gt;
&lt;br /&gt;
09. What product was created/programmed by three teenagers from Suffolk County New York and marketed to Not-Polyoptics by Timothy Trapanotto and accepted by Not-Polyoptics under their Author Co-Op Program? &lt;br /&gt;
A: 99&amp;amp;#39;Vaders &lt;br /&gt;
&lt;br /&gt;
10. The names of the three partners in Not-Polyoptics were? &lt;br /&gt;
A: Gene Harter, David Harter, Michael Copobianco&lt;br /&gt;
&lt;br /&gt;
This trivia was created by&lt;br /&gt;
&lt;br /&gt;
computerclassics2000.&lt;br /&gt;
&lt;br /&gt;
===Trivia: What was the most expensive cartridge for the TI?===&lt;br /&gt;
TI LOGO (PHM3040) was offered for $299.95 in the TI 1981 catalog CL581B.? It was on page 6.? This tidbit was provided by Bill Gaskill.&lt;br /&gt;
&lt;br /&gt;
===Trivia: What was the most expensive diskette program for the TI?===&lt;br /&gt;
Course Designer Authoring System (PHD5068) was offered for $199.95 in the TI 1982 catalog 1049706-1.? It was on page 10.? This tidbit was provided by Bill Gaskill.&lt;br /&gt;
&lt;br /&gt;
===Electronics: What are the basic tools I need for any of the projects?===&lt;br /&gt;
&lt;br /&gt;
1) Low wattage / pencil tip soldering iron. 2) Desoldering Pump Iron 3) Various size 60/40 solder (thin, med and thick) 4) Wire cutters (sharp) 5) Wire stripper 6) Various size DIP Sockets 7) 22AWG wire 8) 24AWG wire 9) Electrical Tape 10) Digital Multimeter 11) Helping Hands w/Magnifying Glass 12) Latex gloves 13) Anti-static work mat 14) Various screwdrivers 15) Various small screwdrivers&lt;br /&gt;
&lt;br /&gt;
===Electronics: What kind of EPROM burner can I use to burn chips for the TI?===&lt;br /&gt;
This is not my area of expertise but I have found out that there are two major chips that are used for the TI. The TMS2532 can be used as a replacement for TI Peripheral ROMS and the 2764/27128 can be used for EPROM cartridges.&lt;br /&gt;
&lt;br /&gt;
The standard WILLEM burners (~$35.00) will support the 27xx series of chips. Most burners will support them. The problem one seems to be the 2532. If you are looking at burner be sure to check the device list.&lt;br /&gt;
&lt;br /&gt;
I found a commercial programmer that supports the 2532 is the EETools ChipMax Device Programmer but unfortunately it costs around $300 dollars. If you are technically inclined you may be able to build a burner on your own and save the money.&lt;br /&gt;
&lt;br /&gt;
===Electronics: What other tools beyond the basics are useful for projects?===&lt;br /&gt;
1) Some type of desk/bench dedicated to the work. Sharing a desk with other stuff gets to be a real mess.&lt;br /&gt;
&lt;br /&gt;
2) Storage cabinets. &lt;br /&gt;
&lt;br /&gt;
3) DC Power Supply with variable voltage and current controls.&lt;br /&gt;
&lt;br /&gt;
4) Bread board and wires for prototyping.&lt;br /&gt;
&lt;br /&gt;
5) Digital Multimeter.&lt;br /&gt;
&lt;br /&gt;
6) Books, books and books! &lt;br /&gt;
&lt;br /&gt;
===Communication: What is MagicFM (MFM)?===&lt;br /&gt;
MagicFM (MFM), not to be confused with MFM hard drives, stands for Magic File Manipulator. This is a TI Extended BASIC program that allows you send and receive software via X-Modem protocol. This means you can download a TI file from the internet on to your PC and then transfer it to your TI with this program. On the PC you will need a term program to send the file and HyperTerm comes with Windows and does the trick. If you have a Mac then you will need something like ZTerm or White Knight. Magic FM was shown, including a complete listing, in the Vol 13, No 6 issue of Micropendium. It was pointed out that MagicFM has some embedded Assembly code so you can&amp;amp;#39;t type it in from the listing. You can get a PC99 image from WHTECH at: https://ftp.whtech.com/pc99/micropendium/961112.dsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To speak a phrase such as &amp;quot;that is incorrect&amp;quot;, it needs to be wrapped in hash symbols eg &amp;quot;#THAT IS INCORRECT#&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Speech: What is the Rave99 Speech Adapter?===&lt;br /&gt;
The Rave99 Speech adapter is a half-height card for your PEB box where you can plug your TI Speech Synthesiser into. Basically you take the circuit board out of the synthesiser and plug it into the adapter. The adapter and the circuit board then go into your PEB. There is no software to load or CRU switches for it. You just simply plug and play. The main advantage is you no longer have to have your synthesiser hanging off the side of your TI console. Of course you are taking up 1 of the 8 slots in your PEB but most people have the spare room.&lt;br /&gt;
&lt;br /&gt;
===Speech: Why won&amp;#039;t my Compact Flash Adapter work with the Speech Synthesizer?===&lt;br /&gt;
The CF7 draws its power from the side port and some side peripherals like the Speech Synthesizer block this. If you have a CF7+ with the power plug then you can supply your own power and use it with the Speech Synthesizer.&lt;br /&gt;
&lt;br /&gt;
===CF7+ Compact Flash: Why can I only use half the size of my Flash memory?===&lt;br /&gt;
The compact flash cards are made up of 512 byte sectors. The original TI disk system used 256 byte sectors so half of the sector is unused. This is why you can only use 8mb of a 16mb compact flash card.&lt;br /&gt;
&lt;br /&gt;
===CF7+ Compact Flash: Why won&amp;#039;t my Compact Flash Adapter work with the Speech Synthesizer?===&lt;br /&gt;
The CF7 draws its power from the side port and some side peripherals like the Speech Synthesizer block this. If you have a CF7+ with the power plug then you can supply your own power and use it with the Speech Synthesizer.&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Advertiser&amp;diff=50963</id>
		<title>Advertiser</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Advertiser&amp;diff=50963"/>
		<updated>2023-10-19T09:55:41Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: New url for link to document&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Advertiser or Advertizer was a very early TI module for the TI99/4.  &lt;br /&gt;
&lt;br /&gt;
Code written by TI France in February 1980 is known, but the module has only been seen with a TI label giving a date of 1981.   Only a German language version of the module has been recovered. English documentation from 1981 refers to the German language module which is labelled Advertizer.&lt;br /&gt;
&lt;br /&gt;
The module had only one purpose- to add extra CALLS to TI Basic.  It produced no menu entry and had no program to autostart, just code to load with the power up routine.&lt;br /&gt;
&lt;br /&gt;
Advertiser set aside some VDP RAM for its special requirements.  Because there was no indication the module had initialised VDP ram for itself, the first thing that it did was to turn the borders of the title screen purple to show VDP memory had been reserved.  Later, when a disk system was introduced and set aside some VDP ram for itself, the VDP memory check by Advertiser did not work and if a disk system was attached users had to type CALL FILES(9) followed by NEW to set aside VDP memory.&lt;br /&gt;
&lt;br /&gt;
The module is known to exist only as 8k GPL code, either as 2x4k or 1x8k eprom. Written in GPL it was a very early module written in GPL which had no GROM chips, the auto incrementing mode was handled by additional chips in the module.&lt;br /&gt;
&lt;br /&gt;
All TI Basic programs written for the module had to start CALL AD.&lt;br /&gt;
&lt;br /&gt;
It allowed the use of characters 32-95 for one character set and 96-159 for a different character set, they could also be the same but of differing colours.  Two commands added double height text, either up to 31 different letters using chars 32-95, or unlimited by using all chars 32-159.&lt;br /&gt;
&lt;br /&gt;
Extra commands included the ability to list items with bullet points; display a menu with single key selection, and quickly change colours for a character set.  &lt;br /&gt;
&lt;br /&gt;
It was used eg in conferences and shops to provide an advertising display, which could also be interactive.&lt;br /&gt;
&lt;br /&gt;
A few later modules also extended TI Basic with additional calls, for example the Personal Record Keeping module.&lt;br /&gt;
&lt;br /&gt;
The English documentation which has appeared differs slightly from the module that has been found, as the documentation refers to CALL ACCEPT whereas the module requires CALL A.   &lt;br /&gt;
&lt;br /&gt;
The module image was amended to load easily into the FG99 module by adding a second grom to the image,  containing a menu entry and an autostart jump to the title screen, which caused the power up routine to be called.&lt;br /&gt;
&lt;br /&gt;
Reworked documentation in html format is at http://ftp.whtech.com/Users/stephen/3063.htm&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Stainless_Software&amp;diff=50962</id>
		<title>Stainless Software</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Stainless_Software&amp;diff=50962"/>
		<updated>2023-10-19T09:52:37Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: New URL for website in LINKS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Stainless Software&amp;#039;&amp;#039;&amp;#039; was a TI99/4 and 4a specific software publishing and distributing business run by Stephen Shaw from England from 1982 to 1985.&lt;br /&gt;
&lt;br /&gt;
Stainless distributed  software from many prominent American sources (such as [[Not polyoptics|Not Polyoptics]], Maple Leaf, Norton, PS Software and Pewterware) as well as many U K written programs by authors such as Patrick Strassen, Alexander McMath, Roland Trueman, Malcolm Adams and others).&lt;br /&gt;
&lt;br /&gt;
Once TI withdrew from the market and module prices crashed, sales of tape software became difficult and the business somewhat petered out. Towards the end Stainless arranged with UK authors for as many titles as posible to be released to the freeware market and many were sold in America through Texaments.&lt;br /&gt;
&lt;br /&gt;
Only one customer guessed the origin of the trade name used, a long forgotten UK comedian by the name of Stainless Stephen.&lt;br /&gt;
&lt;br /&gt;
==Stainless published programs by==&lt;br /&gt;
* Adams, Malcolm: Breakpoint, Checkers, Galactic Encounter, Secret Agent &lt;br /&gt;
* Akers, P.J: Bouncing Bugs, Quadrablitz&lt;br /&gt;
* Banks, Colin: Astrowars, Battle Tanks, Crash, Lunar Base / Torpedo Fire&lt;br /&gt;
* Bindoff, S: Tank Atak &lt;br /&gt;
* Boothroyd, K: Bag Bounder, Food of the Gods&lt;br /&gt;
* Brooks, Peter: 3D Func, Auto 3D Func, 3D Noughts and Crosses, Designs for Fun, Freeform and Triangles, Hi D Plot, Lines, Dimple, Keyplot, Mosaics &lt;br /&gt;
* Bryer, Russell: Tukoms Kingdom &lt;br /&gt;
* Burmiston, Gary:  H M S Texas&lt;br /&gt;
* Christmas, M: Beetle &lt;br /&gt;
* Curtis, Mike: Q Bono&lt;br /&gt;
* DCR Software: Trogman&lt;br /&gt;
* Dickinson, Paul: Dungeon Gold, Greedy Green Grabbers&lt;br /&gt;
* Hindley, Philip: Death Park &lt;br /&gt;
* Hobbs, Martin: Splodge&lt;br /&gt;
* Kazmer, Ray:  Cannonball Chess, Texas Ranger&lt;br /&gt;
* Marshall, Graham:  Spring Heeled Jack &lt;br /&gt;
* Mcauley, Colin:  Farmer, Invasion &lt;br /&gt;
* McGovern, Tony: Co-List, Tex Bounce (TXB) &lt;br /&gt;
* McKearney, Stephen: Character Creator  &lt;br /&gt;
* McMath, Alistair: Bowls, Fighter Pilot, Golf, Motor Cross, Rally Cross&lt;br /&gt;
* Myers, Andrew: Grail Quest, The Pit &lt;br /&gt;
* Mynard, Stephen: Kamikaze&lt;br /&gt;
* O&amp;#039;Regan, Mike: Pen the Pig, Word Processor&lt;br /&gt;
* Pauline Programs: Radar Defence&lt;br /&gt;
* Pegg, Ian: Battleships, Extended Character Definition, Mining Game, Quicker Qwerty&lt;br /&gt;
* Pincus, Sam:  Disk Utility Program, Mad Scientist, Stoneville Manor &lt;br /&gt;
* Platt, Austin: Aries&lt;br /&gt;
* Richards, P: Global Rescue&lt;br /&gt;
* Rock, Christopher: Martian Monsters&lt;br /&gt;
* Shaw, Stephen: Amazing; Bells, Black Box (legally licensed from the inventor!); Guess, Hexdechex, Hungarian Hex, Hungarian Squares, Imhotep, Ledgers, Music, Pilot (language), Pompeii, Roulette, Snooker, Squares, TV Test Card, Victorian Sewers, Video Titles.&lt;br /&gt;
* SP Software: First and Last, Kong, Mr D, Pengi, Roo, TNT &lt;br /&gt;
* Strassen, Patrick:  3D Race, Man and Monsters, Night Flight, Patscram Mission, Planet Destroyer, Zarquon.&lt;br /&gt;
* Sumner, Mark:  3D Stalkers, Crazy Caver, Keys of the Castle, PS Pesteroids, Space Rescue, Spy&amp;#039;s Demise, Starprobe 99, Wallaby, Wonkapillar, Octal. (Note: In the USA Mark&amp;#039;s programs were published by several software publishers. He was earning money to write books, one of which became a TV series)&lt;br /&gt;
* Taylor, H: Mars Mine Lander&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And programs whose authors I no longer have any record of (sorry): &lt;br /&gt;
* Firelady, Halloween, Load, Mr Frog, Snakes and Ladders&lt;br /&gt;
&lt;br /&gt;
==Stainless sold under licence programs by==&lt;br /&gt;
* Data Systems: Chemtutor 1, Concordia, Life Expectancy&lt;br /&gt;
* DEJ Software: Armada, ASW Tactics 2, Crash Up, Go for the Gold, Nomad&lt;br /&gt;
* FFF Software: FFF Asteroids, Shuttle Command&lt;br /&gt;
* Intersoft: Defend the Cities 1 and 2, Galactic Gunfight, Meteor Storm&lt;br /&gt;
* Kuhl Software:  Assembler Math, Data Rescue, Fish, Scepter of Kzirgla&lt;br /&gt;
* Maple Leaf Microware: Counting with Coins, Devil Craze, Hang Glider Pilot, Happy Math, Math Flash Astronaut, Math Flash Pilot, Sky Diver, Spelling and Phonics, Time Tutor&lt;br /&gt;
* Norton Software: Attack Man, Cross Country Car Rally, Graphics Package, Lunar Lander, Music Synthesiser, Star Trek, Super Frogger, Tank&lt;br /&gt;
* Not Polyoptics: 99 vaders,  Addvance, Ant wars, Backgammon, Bankroll, Cars and Carcasses 2, Crosses, Hordes, Khe Sanh, Laser Tank, Maze of Ariel, Ophyss, Sengoku Jidai, Ships, Starship Pegasus, Tickworld, Tower, Treasure Trap, Waldoball, Winging It&lt;br /&gt;
* Oak Tree Systems Crossums, Display Enhancement Package, Smash&lt;br /&gt;
* Pewterware: Bluegrass Sweepstakes, Challenge P&amp;lt;!-- wiki doesn&amp;#039;t like P-O-K-E-R without interruption --&amp;gt;oker, Decathlon, Fast Frog, Goblins Revenge, Match Wits, Norbert, Tractor Follies, Up Periscope&lt;br /&gt;
* PRP Computergraphics:  5 Card Stud P&amp;lt;!-- wiki doesn&amp;#039;t like P-O-K-E-R --&amp;gt;oker, Biorhythms, Blackjack, Checkerboard Square, Crossword Challenge, Horserace, Scribble &lt;br /&gt;
* Roach Software: Mega Fighter, Outland&lt;br /&gt;
* Timagination:  Walls and Bridges, Zombie Mambo &lt;br /&gt;
* Titan Software: Braintwisters  1 | Braintwisters 2 | Braintwisters 3 | Gopher&lt;br /&gt;
&lt;br /&gt;
==LINKS== &lt;br /&gt;
&amp;quot;http://webspace.webring.com/people/o0/04451/&amp;quot; - Addatex-  Malcolm Adams web page.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;http://ftp.whtech.com/Users/stephen/TI.htm&amp;quot; - Stephen Shaw&amp;#039;s TI resources with some programs in emulator format including Stainless catalogue.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;http://ftp.whtech.com/Users/stephen/stainless1.htm&amp;quot; - Complete Illustrated Compendium Stainless Software Catalogue with links to reviews.&lt;br /&gt;
&lt;br /&gt;
[[Category:Companies]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Stainless_Software&amp;diff=50961</id>
		<title>Stainless Software</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Stainless_Software&amp;diff=50961"/>
		<updated>2023-10-19T09:51:00Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: New URL for website in Links.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Stainless Software&amp;#039;&amp;#039;&amp;#039; was a TI99/4 and 4a specific software publishing and distributing business run by Stephen Shaw from England from 1982 to 1985.&lt;br /&gt;
&lt;br /&gt;
Stainless distributed  software from many prominent American sources (such as [[Not polyoptics|Not Polyoptics]], Maple Leaf, Norton, PS Software and Pewterware) as well as many U K written programs by authors such as Patrick Strassen, Alexander McMath, Roland Trueman, Malcolm Adams and others).&lt;br /&gt;
&lt;br /&gt;
Once TI withdrew from the market and module prices crashed, sales of tape software became difficult and the business somewhat petered out. Towards the end Stainless arranged with UK authors for as many titles as posible to be released to the freeware market and many were sold in America through Texaments.&lt;br /&gt;
&lt;br /&gt;
Only one customer guessed the origin of the trade name used, a long forgotten UK comedian by the name of Stainless Stephen.&lt;br /&gt;
&lt;br /&gt;
==Stainless published programs by==&lt;br /&gt;
* Adams, Malcolm: Breakpoint, Checkers, Galactic Encounter, Secret Agent &lt;br /&gt;
* Akers, P.J: Bouncing Bugs, Quadrablitz&lt;br /&gt;
* Banks, Colin: Astrowars, Battle Tanks, Crash, Lunar Base / Torpedo Fire&lt;br /&gt;
* Bindoff, S: Tank Atak &lt;br /&gt;
* Boothroyd, K: Bag Bounder, Food of the Gods&lt;br /&gt;
* Brooks, Peter: 3D Func, Auto 3D Func, 3D Noughts and Crosses, Designs for Fun, Freeform and Triangles, Hi D Plot, Lines, Dimple, Keyplot, Mosaics &lt;br /&gt;
* Bryer, Russell: Tukoms Kingdom &lt;br /&gt;
* Burmiston, Gary:  H M S Texas&lt;br /&gt;
* Christmas, M: Beetle &lt;br /&gt;
* Curtis, Mike: Q Bono&lt;br /&gt;
* DCR Software: Trogman&lt;br /&gt;
* Dickinson, Paul: Dungeon Gold, Greedy Green Grabbers&lt;br /&gt;
* Hindley, Philip: Death Park &lt;br /&gt;
* Hobbs, Martin: Splodge&lt;br /&gt;
* Kazmer, Ray:  Cannonball Chess, Texas Ranger&lt;br /&gt;
* Marshall, Graham:  Spring Heeled Jack &lt;br /&gt;
* Mcauley, Colin:  Farmer, Invasion &lt;br /&gt;
* McGovern, Tony: Co-List, Tex Bounce (TXB) &lt;br /&gt;
* McKearney, Stephen: Character Creator  &lt;br /&gt;
* McMath, Alistair: Bowls, Fighter Pilot, Golf, Motor Cross, Rally Cross&lt;br /&gt;
* Myers, Andrew: Grail Quest, The Pit &lt;br /&gt;
* Mynard, Stephen: Kamikaze&lt;br /&gt;
* O&amp;#039;Regan, Mike: Pen the Pig, Word Processor&lt;br /&gt;
* Pauline Programs: Radar Defence&lt;br /&gt;
* Pegg, Ian: Battleships, Extended Character Definition, Mining Game, Quicker Qwerty&lt;br /&gt;
* Pincus, Sam:  Disk Utility Program, Mad Scientist, Stoneville Manor &lt;br /&gt;
* Platt, Austin: Aries&lt;br /&gt;
* Richards, P: Global Rescue&lt;br /&gt;
* Rock, Christopher: Martian Monsters&lt;br /&gt;
* Shaw, Stephen: Amazing; Bells, Black Box (legally licensed from the inventor!); Guess, Hexdechex, Hungarian Hex, Hungarian Squares, Imhotep, Ledgers, Music, Pilot (language), Pompeii, Roulette, Snooker, Squares, TV Test Card, Victorian Sewers, Video Titles.&lt;br /&gt;
* SP Software: First and Last, Kong, Mr D, Pengi, Roo, TNT &lt;br /&gt;
* Strassen, Patrick:  3D Race, Man and Monsters, Night Flight, Patscram Mission, Planet Destroyer, Zarquon.&lt;br /&gt;
* Sumner, Mark:  3D Stalkers, Crazy Caver, Keys of the Castle, PS Pesteroids, Space Rescue, Spy&amp;#039;s Demise, Starprobe 99, Wallaby, Wonkapillar, Octal. (Note: In the USA Mark&amp;#039;s programs were published by several software publishers. He was earning money to write books, one of which became a TV series)&lt;br /&gt;
* Taylor, H: Mars Mine Lander&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And programs whose authors I no longer have any record of (sorry): &lt;br /&gt;
* Firelady, Halloween, Load, Mr Frog, Snakes and Ladders&lt;br /&gt;
&lt;br /&gt;
==Stainless sold under licence programs by==&lt;br /&gt;
* Data Systems: Chemtutor 1, Concordia, Life Expectancy&lt;br /&gt;
* DEJ Software: Armada, ASW Tactics 2, Crash Up, Go for the Gold, Nomad&lt;br /&gt;
* FFF Software: FFF Asteroids, Shuttle Command&lt;br /&gt;
* Intersoft: Defend the Cities 1 and 2, Galactic Gunfight, Meteor Storm&lt;br /&gt;
* Kuhl Software:  Assembler Math, Data Rescue, Fish, Scepter of Kzirgla&lt;br /&gt;
* Maple Leaf Microware: Counting with Coins, Devil Craze, Hang Glider Pilot, Happy Math, Math Flash Astronaut, Math Flash Pilot, Sky Diver, Spelling and Phonics, Time Tutor&lt;br /&gt;
* Norton Software: Attack Man, Cross Country Car Rally, Graphics Package, Lunar Lander, Music Synthesiser, Star Trek, Super Frogger, Tank&lt;br /&gt;
* Not Polyoptics: 99 vaders,  Addvance, Ant wars, Backgammon, Bankroll, Cars and Carcasses 2, Crosses, Hordes, Khe Sanh, Laser Tank, Maze of Ariel, Ophyss, Sengoku Jidai, Ships, Starship Pegasus, Tickworld, Tower, Treasure Trap, Waldoball, Winging It&lt;br /&gt;
* Oak Tree Systems Crossums, Display Enhancement Package, Smash&lt;br /&gt;
* Pewterware: Bluegrass Sweepstakes, Challenge P&amp;lt;!-- wiki doesn&amp;#039;t like P-O-K-E-R without interruption --&amp;gt;oker, Decathlon, Fast Frog, Goblins Revenge, Match Wits, Norbert, Tractor Follies, Up Periscope&lt;br /&gt;
* PRP Computergraphics:  5 Card Stud P&amp;lt;!-- wiki doesn&amp;#039;t like P-O-K-E-R --&amp;gt;oker, Biorhythms, Blackjack, Checkerboard Square, Crossword Challenge, Horserace, Scribble &lt;br /&gt;
* Roach Software: Mega Fighter, Outland&lt;br /&gt;
* Timagination:  Walls and Bridges, Zombie Mambo &lt;br /&gt;
* Titan Software: Braintwisters  1 | Braintwisters 2 | Braintwisters 3 | Gopher&lt;br /&gt;
&lt;br /&gt;
==LINKS== &lt;br /&gt;
&amp;quot;http://webspace.webring.com/people/o0/04451/&amp;quot; - Addatex-  Malcolm Adams web page.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;http://ftp.whtech.com/Users/stephen/TI.htm&amp;quot; - Stephen Shaw&amp;#039;s TI resources with some programs in emulator format including Stainless catalogue.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;http://shawweb.myzen.co.uk/stephen/stainless1.htm&amp;quot; - Complete Illustrated Compendium Stainless Software Catalogue with links to reviews.&lt;br /&gt;
&lt;br /&gt;
[[Category:Companies]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=IF_THEN_ELSE&amp;diff=50715</id>
		<title>IF THEN ELSE</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=IF_THEN_ELSE&amp;diff=50715"/>
		<updated>2023-05-31T20:09:37Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: /* As used in Extended BASIC */ spelling error&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;This is taken from the final issue of the Users Reference Guide:&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==IF-THEN-ELSE==&lt;br /&gt;
&lt;br /&gt;
===As used in [[TI BASIC]]===&lt;br /&gt;
&lt;br /&gt;
The IF-THEN-ELSE statement allows you to change the normal sequence of your program execution by using a conditional branch.&lt;br /&gt;
&lt;br /&gt;
The computer evaluates the expression you have included in the statement, such as A&amp;gt;50. If the&lt;br /&gt;
expression is true, the computer will jump to line-1, which follows the word THEN. If the condition is&lt;br /&gt;
false, the computer will jump to line-2 following the word ELSE. If ELSE is omitted, the computer&lt;br /&gt;
continues with the next program line.&lt;br /&gt;
====The allowable relational operators====&lt;br /&gt;
in TI Basic are:&lt;br /&gt;
* Equal to (=)                                      &lt;br /&gt;
* Not equal to (&amp;lt;&amp;gt;)&lt;br /&gt;
* Less than (&amp;lt;)                                     &lt;br /&gt;
* Less than or equal to (&amp;lt;=)&lt;br /&gt;
* Greater than ( &amp;gt;)                                 &lt;br /&gt;
* Greater than or equal to (&amp;gt;=)&lt;br /&gt;
&lt;br /&gt;
====Some valid relationship tests:====&lt;br /&gt;
*  A&amp;gt;7                                               &lt;br /&gt;
*  CHR$(L)=&amp;quot;A&amp;quot;&lt;br /&gt;
*  A$&amp;lt;&amp;quot;YES&amp;quot;                                          &lt;br /&gt;
*  (A$&amp;amp;C$)&amp;gt;=D$&lt;br /&gt;
*  (A +B)/2&amp;lt;&amp;gt;AVG&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
 100 REM FIND THE LARGEST OF&lt;br /&gt;
   A SET OF NUMBERS&lt;br /&gt;
 110 INPUT &amp;quot;HOW MANY VALUES?&amp;quot;&lt;br /&gt;
   :N &lt;br /&gt;
 120 INPUT &amp;quot;VALUE?&amp;quot;:A&lt;br /&gt;
 130 L=A&lt;br /&gt;
 140 N=N-1&lt;br /&gt;
 150 IF N&amp;lt;=0 THEN 180&lt;br /&gt;
 160 INPUT &amp;quot;VALUE?&amp;quot;:A&lt;br /&gt;
 170 IF L&amp;gt;A THEN 140 ELSE 130&lt;br /&gt;
 180 PRINT L;&amp;quot;IS THE LARGEST&amp;quot;&lt;br /&gt;
 190 END&lt;br /&gt;
 &amp;gt;RUN&lt;br /&gt;
  &lt;br /&gt;
   HOW MANY VALUES?3&lt;br /&gt;
   VALUE?456&lt;br /&gt;
   VALUE?321&lt;br /&gt;
   VALUE?292&lt;br /&gt;
   456 IS THE LARGEST&lt;br /&gt;
   ** DONE **&lt;br /&gt;
&lt;br /&gt;
====Comparisons====&lt;br /&gt;
&lt;br /&gt;
A numeric-expression must be compared to another numeric-expression and a string-expression to another&lt;br /&gt;
string-expression. &lt;br /&gt;
&lt;br /&gt;
Numeric-expressions are compared algebraically. &lt;br /&gt;
&lt;br /&gt;
String-expressions are compared left-to-right, character by character, using the ASCII character codes. A character with a lower ASCII code will he considered less than one with a higher ASCII code. Thus, you can sort strings into numeric or&lt;br /&gt;
alphabetic order. If one string is longer than the other, the comparison is made for each character in the&lt;br /&gt;
shorter string. If there is no difference, the computer considers the longer string to be greater.&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
 &amp;gt;NEW&lt;br /&gt;
 100 INPUT &amp;quot;AS IS &amp;quot;:AS&lt;br /&gt;
 110 INPUT &amp;quot;B$ IS &amp;quot;:B$&lt;br /&gt;
 120 IF A$=B$ THEN 160&lt;br /&gt;
 130 IF A$&amp;amp;lt;B$ THEN 180&lt;br /&gt;
 140 PRINT &amp;quot;B$ IS LESS&amp;quot;&lt;br /&gt;
 150 GOTO 190&lt;br /&gt;
 160 PRINT &amp;quot;A$=B$&amp;quot;&lt;br /&gt;
 170 GOTO 190&lt;br /&gt;
 180 PRINT &amp;quot;B$ IS GREATER&amp;quot;&lt;br /&gt;
 190 END&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt;RUN&lt;br /&gt;
  A$ IS TEXAS&lt;br /&gt;
  B$ IS TEX&lt;br /&gt;
  B$ IS LESS&lt;br /&gt;
 ** DONE **&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;RUN&lt;br /&gt;
  A$ IS TAXES&lt;br /&gt;
  B$ IS TEX&lt;br /&gt;
  B$ IS GREATER&lt;br /&gt;
 ** DONE **&lt;br /&gt;
&lt;br /&gt;
====Using a direct value (0, not 0)====&lt;br /&gt;
An alternative format of the IF-THEN-ELSE statement is to use a numeric-expression with no&lt;br /&gt;
relationship expressed. In the example below, the computer will evaluate the expression A+B. If the result&lt;br /&gt;
is zero, the expression is treated as false. &lt;br /&gt;
&lt;br /&gt;
A non-zero result is treated as true. &lt;br /&gt;
&lt;br /&gt;
This is the same as: IF expression &amp;lt;&amp;gt; 0 THEN line-1&lt;br /&gt;
                                                                                                         &lt;br /&gt;
Example&lt;br /&gt;
 &amp;gt;NEW&lt;br /&gt;
 100 INPUT &amp;quot;A IS &amp;quot;:A&lt;br /&gt;
 110 INPUT &amp;quot;B IS &amp;quot;:B&lt;br /&gt;
 120 IF A+B THEN 150&lt;br /&gt;
 130 PRINT &amp;quot;RESULT IS ZERO,EX&lt;br /&gt;
  PRESSION FALSE&amp;quot;&lt;br /&gt;
 140 GOTO 100&lt;br /&gt;
 150 PRINT &amp;quot;RESULT IS NON-ZER&lt;br /&gt;
  O, EXPRESSION TRUE&amp;quot;&lt;br /&gt;
 160 GO TO 100&lt;br /&gt;
 &amp;gt;RUN&lt;br /&gt;
 &lt;br /&gt;
 A IS 2&lt;br /&gt;
 B IS 3&lt;br /&gt;
 RESULT IS NON-ZERO,EXPRESSIO&lt;br /&gt;
 N TRUE&lt;br /&gt;
 A IS 2&lt;br /&gt;
 B IS -2&lt;br /&gt;
 RESULT IS ZERO,EXPRESSION FA&lt;br /&gt;
 LSE&lt;br /&gt;
&lt;br /&gt;
Press CLEAR to end loop.&lt;br /&gt;
&lt;br /&gt;
===As used in [[Extended BASIC]]===&lt;br /&gt;
(Taken from the Extended Basic Manual)&lt;br /&gt;
&lt;br /&gt;
The above paragraphs on TI Basic use also apply to TI Extended Basic, however Extended Basic increases the functionlity as shown below:&lt;br /&gt;
&lt;br /&gt;
The IF-THEN-ELSE statement allows you to transfer control to line-number1 &amp;#039;&amp;#039;&amp;#039;or to perform statement1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
if relational-expression is true or if numeric-expression is not equal to zero. Otherwise control passes to&lt;br /&gt;
the next statement, or optionally to line-number2 or &amp;#039;&amp;#039;&amp;#039;statement2.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Statement1 and statement2 may each be several statements long, separated by the statement separator&lt;br /&gt;
symbol. They are only executed if the clause immediately before them is executed. &lt;br /&gt;
&lt;br /&gt;
The IF-THEN-ELSE statement cannot contain DATA, DEF, DIM, FOR, NEXT, OPTION BASE, SUB, or SUBEND.&lt;br /&gt;
&lt;br /&gt;
Examples&lt;br /&gt;
&lt;br /&gt;
 IF X&amp;gt;5 THEN GOSUB 300 ELSE X=X+5  &lt;br /&gt;
operates as follows: If X is greater than 5, then GOSUB 300 is executed. &lt;br /&gt;
When the subroutine is ended, control returns to the line following this line. &lt;br /&gt;
&lt;br /&gt;
If X is 5 or less, X is set equal to X+5 and control passes to the next line.&lt;br /&gt;
  &lt;br /&gt;
 IF Q THEN C=C+1::GOTO 500 ELSE L=L/C::GOTO 300 &lt;br /&gt;
operates as follows: If Q is not zero, then C is set equal to C+1 and control is transferred to line 500. If Q is zero, then L is set equal to L/C and control is transferred to line 300.&lt;br /&gt;
&lt;br /&gt;
 IF A&amp;gt;3 THEN 300 ELSE A=0 :: GOTO 10 &lt;br /&gt;
operates as follows: If A is greater than 3, then control is transferred to line 300. Otherwise, A is reset to zero and control is transferred to line 10.&lt;br /&gt;
                                                                                                       109&lt;br /&gt;
 100 IF A$=&amp;quot;Y&amp;quot; THEN COUNT=COU &lt;br /&gt;
 NT+1::DISPLAY AT(24,1):&amp;quot;HERE &lt;br /&gt;
 WE GO AGAIN!&amp;quot;::GOTO 300   &lt;br /&gt;
&lt;br /&gt;
 IF A$=&amp;quot;Y&amp;quot; THEN COUNT=COUNT+1:: DISPLAYAT(24,1):&amp;quot;HERE WE GO  AGAIN!&amp;quot;::GOTO 300 &lt;br /&gt;
operates as follows: &lt;br /&gt;
&lt;br /&gt;
If A$ is not equal to &amp;quot;Y&amp;quot;, then control passes to the next  line. If A$ is equal to &amp;quot;Y&amp;quot;, then COUNT is incremented by 1, a message is displayed, and control is transferred to line 300.&lt;br /&gt;
&lt;br /&gt;
 100 IF HOURS&amp;lt;=40 THEN PAY=HO &lt;br /&gt;
 URS*WAGE ELSE PAY=HOURS*WAGE &lt;br /&gt;
 +.5*WAGE*(HOURS-40) :: OT=1 &lt;br /&gt;
&lt;br /&gt;
 IF HOURS&amp;lt;=40 THEN PAY=HOURS*WAGE ELSE PAY=HOURS*WAGE+.5*WAGE*(HOURS-40) :: OT=1 &lt;br /&gt;
operates as follows: &lt;br /&gt;
&lt;br /&gt;
If HOURS is less than or equal to 40, then PAY is set equal to HOURS*WAGE and control passes to the next line. If HOURS is greater than 40 then PAY is set equal to HOURS*WAGE+.5*WAGE* (HOURS-40), OT is set equal to 1, and control passes to the next line.&lt;br /&gt;
&lt;br /&gt;
 IF A=1 THEN IF B=2 THEN C=3 ELSE D=4 ELSE E=5 &lt;br /&gt;
operates as follows: &lt;br /&gt;
&lt;br /&gt;
If A is not equal  to 1, then E is set equal to 5 and control passes to the next line. If A is equal to 1 and B is not&lt;br /&gt;
 equal to 2, then D is set equal to 4 and control passes to the next line. If A is equal to 1 and B is  equal to 2, then C is set equal to 3 and control passes to the next line.&lt;br /&gt;
                                                                  &lt;br /&gt;
The following program illustrates a use of IF-THEN-ELSE. It accepts up to 1000 numbers and then prints&lt;br /&gt;
them in order from smallest to largest.&lt;br /&gt;
&lt;br /&gt;
 100 CALL CLEAR&lt;br /&gt;
 110 DIM VALUE(1000)&lt;br /&gt;
 120 PRINT &amp;quot;ENTER VALUES TO B&lt;br /&gt;
  E SORTED.&amp;quot;: &amp;quot;ENTER &amp;#039;9999&amp;#039; TO&lt;br /&gt;
  END ENTRY.&amp;quot;&lt;br /&gt;
 130 FOR COUNT=1 TO 1000&lt;br /&gt;
 140 INPUT VALUE(COUNT)&lt;br /&gt;
 150 IF VALUE(COUNT)=9999 THE&lt;br /&gt;
  N 170&lt;br /&gt;
 160 NEXT COUNT&lt;br /&gt;
 170 COUNT=COUNT-1&lt;br /&gt;
 180 PRINT &amp;quot;SORTING.&amp;quot;&lt;br /&gt;
 190 FOR SORT1=1 TO COUNT-1&lt;br /&gt;
 200 FOR SORT2=SORT1+1 TO COU&lt;br /&gt;
  NT&lt;br /&gt;
 210 IF VALUE(SORT1)&amp;gt;VALUE(SO&lt;br /&gt;
  RT2)THEN TEMP=VALUE(SORT1)::&lt;br /&gt;
   VALUE(SORT1)=VALUE(SORT2)::&lt;br /&gt;
   VALUE(SORT2)=TEMP&lt;br /&gt;
 220 NEXT SORT2&lt;br /&gt;
 230 NEXT SORT1&lt;br /&gt;
 240 FOR SORTED=1 TO COUNT&lt;br /&gt;
 250 PRINT VALUE(SORTED)&lt;br /&gt;
 260 NEXT SORTED&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Additional notes on where care is needed&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Look at this listing and consider what result you think the listing will &lt;br /&gt;
produce:&lt;br /&gt;
&lt;br /&gt;
 100 A=7&lt;br /&gt;
 110 IF A=6 THEN B=1 :: IF A=7 THEN B=2&lt;br /&gt;
 120 IF A&amp;lt;7 THEN C=3 :: IF C&amp;lt;1 THEN C=12&lt;br /&gt;
 130 PRINT A,B,C&lt;br /&gt;
&lt;br /&gt;
The second part of line 110 only operates when the IF is satisfied.  If you intend to use it as an alternative you must specify ELSE:&lt;br /&gt;
110 IF A=6 THEN B=1 ELSE IF A=7 THEN B=2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TI Extended Basic requires an explicit ELSE for example:&lt;br /&gt;
 100  A=7&lt;br /&gt;
 110  IF A=6 THEN 200 :: IF A=7 THEN 300&lt;br /&gt;
 120  GOTO 500&lt;br /&gt;
&lt;br /&gt;
Needs to be:&lt;br /&gt;
110 IF A =6 THEN 200 ELSE IF A=7 THEN 300 ELSE 500&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that if the IF is satisfied the following command is also operative- for example:&lt;br /&gt;
 100 A=7&lt;br /&gt;
 110 IF A=7 THEN B=3 :: C=5&lt;br /&gt;
 120 PRINT A;B;C&lt;br /&gt;
&lt;br /&gt;
In this version, in TI Extended Basic:  because A does equal 7, the &lt;br /&gt;
next statement C=5 is used.&lt;br /&gt;
But if in line 100 we set A=5. then in line 110 we do not set C=5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=IF_THEN_ELSE&amp;diff=50714</id>
		<title>IF THEN ELSE</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=IF_THEN_ELSE&amp;diff=50714"/>
		<updated>2023-05-31T20:08:26Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: /* As used in Extended BASIC */  Extended examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;This is taken from the final issue of the Users Reference Guide:&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==IF-THEN-ELSE==&lt;br /&gt;
&lt;br /&gt;
===As used in [[TI BASIC]]===&lt;br /&gt;
&lt;br /&gt;
The IF-THEN-ELSE statement allows you to change the normal sequence of your program execution by using a conditional branch.&lt;br /&gt;
&lt;br /&gt;
The computer evaluates the expression you have included in the statement, such as A&amp;gt;50. If the&lt;br /&gt;
expression is true, the computer will jump to line-1, which follows the word THEN. If the condition is&lt;br /&gt;
false, the computer will jump to line-2 following the word ELSE. If ELSE is omitted, the computer&lt;br /&gt;
continues with the next program line.&lt;br /&gt;
====The allowable relational operators====&lt;br /&gt;
in TI Basic are:&lt;br /&gt;
* Equal to (=)                                      &lt;br /&gt;
* Not equal to (&amp;lt;&amp;gt;)&lt;br /&gt;
* Less than (&amp;lt;)                                     &lt;br /&gt;
* Less than or equal to (&amp;lt;=)&lt;br /&gt;
* Greater than ( &amp;gt;)                                 &lt;br /&gt;
* Greater than or equal to (&amp;gt;=)&lt;br /&gt;
&lt;br /&gt;
====Some valid relationship tests:====&lt;br /&gt;
*  A&amp;gt;7                                               &lt;br /&gt;
*  CHR$(L)=&amp;quot;A&amp;quot;&lt;br /&gt;
*  A$&amp;lt;&amp;quot;YES&amp;quot;                                          &lt;br /&gt;
*  (A$&amp;amp;C$)&amp;gt;=D$&lt;br /&gt;
*  (A +B)/2&amp;lt;&amp;gt;AVG&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
 100 REM FIND THE LARGEST OF&lt;br /&gt;
   A SET OF NUMBERS&lt;br /&gt;
 110 INPUT &amp;quot;HOW MANY VALUES?&amp;quot;&lt;br /&gt;
   :N &lt;br /&gt;
 120 INPUT &amp;quot;VALUE?&amp;quot;:A&lt;br /&gt;
 130 L=A&lt;br /&gt;
 140 N=N-1&lt;br /&gt;
 150 IF N&amp;lt;=0 THEN 180&lt;br /&gt;
 160 INPUT &amp;quot;VALUE?&amp;quot;:A&lt;br /&gt;
 170 IF L&amp;gt;A THEN 140 ELSE 130&lt;br /&gt;
 180 PRINT L;&amp;quot;IS THE LARGEST&amp;quot;&lt;br /&gt;
 190 END&lt;br /&gt;
 &amp;gt;RUN&lt;br /&gt;
  &lt;br /&gt;
   HOW MANY VALUES?3&lt;br /&gt;
   VALUE?456&lt;br /&gt;
   VALUE?321&lt;br /&gt;
   VALUE?292&lt;br /&gt;
   456 IS THE LARGEST&lt;br /&gt;
   ** DONE **&lt;br /&gt;
&lt;br /&gt;
====Comparisons====&lt;br /&gt;
&lt;br /&gt;
A numeric-expression must be compared to another numeric-expression and a string-expression to another&lt;br /&gt;
string-expression. &lt;br /&gt;
&lt;br /&gt;
Numeric-expressions are compared algebraically. &lt;br /&gt;
&lt;br /&gt;
String-expressions are compared left-to-right, character by character, using the ASCII character codes. A character with a lower ASCII code will he considered less than one with a higher ASCII code. Thus, you can sort strings into numeric or&lt;br /&gt;
alphabetic order. If one string is longer than the other, the comparison is made for each character in the&lt;br /&gt;
shorter string. If there is no difference, the computer considers the longer string to be greater.&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
 &amp;gt;NEW&lt;br /&gt;
 100 INPUT &amp;quot;AS IS &amp;quot;:AS&lt;br /&gt;
 110 INPUT &amp;quot;B$ IS &amp;quot;:B$&lt;br /&gt;
 120 IF A$=B$ THEN 160&lt;br /&gt;
 130 IF A$&amp;amp;lt;B$ THEN 180&lt;br /&gt;
 140 PRINT &amp;quot;B$ IS LESS&amp;quot;&lt;br /&gt;
 150 GOTO 190&lt;br /&gt;
 160 PRINT &amp;quot;A$=B$&amp;quot;&lt;br /&gt;
 170 GOTO 190&lt;br /&gt;
 180 PRINT &amp;quot;B$ IS GREATER&amp;quot;&lt;br /&gt;
 190 END&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt;RUN&lt;br /&gt;
  A$ IS TEXAS&lt;br /&gt;
  B$ IS TEX&lt;br /&gt;
  B$ IS LESS&lt;br /&gt;
 ** DONE **&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;RUN&lt;br /&gt;
  A$ IS TAXES&lt;br /&gt;
  B$ IS TEX&lt;br /&gt;
  B$ IS GREATER&lt;br /&gt;
 ** DONE **&lt;br /&gt;
&lt;br /&gt;
====Using a direct value (0, not 0)====&lt;br /&gt;
An alternative format of the IF-THEN-ELSE statement is to use a numeric-expression with no&lt;br /&gt;
relationship expressed. In the example below, the computer will evaluate the expression A+B. If the result&lt;br /&gt;
is zero, the expression is treated as false. &lt;br /&gt;
&lt;br /&gt;
A non-zero result is treated as true. &lt;br /&gt;
&lt;br /&gt;
This is the same as: IF expression &amp;lt;&amp;gt; 0 THEN line-1&lt;br /&gt;
                                                                                                         &lt;br /&gt;
Example&lt;br /&gt;
 &amp;gt;NEW&lt;br /&gt;
 100 INPUT &amp;quot;A IS &amp;quot;:A&lt;br /&gt;
 110 INPUT &amp;quot;B IS &amp;quot;:B&lt;br /&gt;
 120 IF A+B THEN 150&lt;br /&gt;
 130 PRINT &amp;quot;RESULT IS ZERO,EX&lt;br /&gt;
  PRESSION FALSE&amp;quot;&lt;br /&gt;
 140 GOTO 100&lt;br /&gt;
 150 PRINT &amp;quot;RESULT IS NON-ZER&lt;br /&gt;
  O, EXPRESSION TRUE&amp;quot;&lt;br /&gt;
 160 GO TO 100&lt;br /&gt;
 &amp;gt;RUN&lt;br /&gt;
 &lt;br /&gt;
 A IS 2&lt;br /&gt;
 B IS 3&lt;br /&gt;
 RESULT IS NON-ZERO,EXPRESSIO&lt;br /&gt;
 N TRUE&lt;br /&gt;
 A IS 2&lt;br /&gt;
 B IS -2&lt;br /&gt;
 RESULT IS ZERO,EXPRESSION FA&lt;br /&gt;
 LSE&lt;br /&gt;
&lt;br /&gt;
Press CLEAR to end loop.&lt;br /&gt;
&lt;br /&gt;
===As used in [[Extended BASIC]]===&lt;br /&gt;
(Taken from the Extended Basic Manual)&lt;br /&gt;
&lt;br /&gt;
The above paragraphs on TI Basic use also apply to TI Extended Basic, however Extended Basic increases the functionlity as shown below:&lt;br /&gt;
&lt;br /&gt;
The IF-THEN-ELSE statement allows you to transfer control to line-number1 &amp;#039;&amp;#039;&amp;#039;or to perform statement1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
if relational-expression is true or if numeric-expression is not equal to zero. Otherwise control passes to&lt;br /&gt;
the next statement, or optionally to line-number2 or &amp;#039;&amp;#039;&amp;#039;statement2.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Statement1 and statement2 may each be several statements long, separated by the statement separator&lt;br /&gt;
symbol. They are only executed if the clause immediately before them is executed. &lt;br /&gt;
&lt;br /&gt;
The IF-THEN-ELSE statement cannot contain DATA, DEF, DIM, FOR, NEXT, OPTION BASE, SUB, or SUBEND.&lt;br /&gt;
&lt;br /&gt;
Examples&lt;br /&gt;
&lt;br /&gt;
 IF X&amp;gt;5 THEN GOSUB 300 ELSE X=X+5  &lt;br /&gt;
operates as follows: If X is greater than 5, then GOSUB 300 is executed. &lt;br /&gt;
When the subroutine is ended, control returns to the line following this line. &lt;br /&gt;
&lt;br /&gt;
If X is 5 or less, X is set equal to X+5 and control passes to the next line.&lt;br /&gt;
  &lt;br /&gt;
 IF Q THEN C=C+1::GOTO 500 ELSE L=L/C::GOTO 300 &lt;br /&gt;
operates as follows: If Q is not zero, then C is set equal to C+1 and control is transferred to line 500. If Q is zero, then L is set equal to L/C and control is transferred to line 300.&lt;br /&gt;
&lt;br /&gt;
 IF A&amp;gt;3 THEN 300 ELSE A=0 :: GOTO 10 &lt;br /&gt;
operates as follows: If A is greater than 3, then control is transferred to line 300. Otherwise, A is reset to zero and control is transferred to line 10.&lt;br /&gt;
                                                                                                       109&lt;br /&gt;
 100 IF A$=&amp;quot;Y&amp;quot; THEN COUNT=COU &lt;br /&gt;
 NT+1::DISPLAY AT(24,1):&amp;quot;HERE &lt;br /&gt;
 WE GO AGAIN!&amp;quot;::GOTO 300   &lt;br /&gt;
&lt;br /&gt;
 IF A$=&amp;quot;Y&amp;quot; THEN COUNT=COUNT+1:: DISPLAYAT(24,1):&amp;quot;HERE WE GO  AGAIN!&amp;quot;::GOTO 300 &lt;br /&gt;
operates as follows: &lt;br /&gt;
&lt;br /&gt;
If A$ is not equal to &amp;quot;Y&amp;quot;, then control passes to the next  line. If A$ is equal to &amp;quot;Y&amp;quot;, then COUNT is incremented by 1, a message is displayed, and control is transferred to line 300.&lt;br /&gt;
&lt;br /&gt;
 100 IF HOURS&amp;lt;=40 THEN PAY=HO &lt;br /&gt;
 URS*WAGE ELSE PAY=HOURS*WAGE &lt;br /&gt;
 +.5*WAGE*(HOURS-40) :: OT=1 &lt;br /&gt;
&lt;br /&gt;
 IF HOURS&amp;lt;=40 THEN PAY=HOURS*WAGE ELSE PAY=HOURS*WAGE+.5*WAGE*(HOURS-40) :: OT=1 &lt;br /&gt;
operates as follows: &lt;br /&gt;
&lt;br /&gt;
If HOURS is less than or equal to 40, then PAY is set equal to HOURS*WAGE and control passes to the next line. If HOURS is greater than 40 then PAY is set equal to HOURS*WAGE+.5*WAGE* (HOURS-40), OT is set equal to 1, and control passes to the next line.&lt;br /&gt;
&lt;br /&gt;
 IF A=1 THEN IF B=2 THEN C=3 ELSE D=4 ELSE E=5 &lt;br /&gt;
operates as follows: &lt;br /&gt;
&lt;br /&gt;
If A is not equal  to 1, then E is set equal to 5 and control passes to the next line. If A is equal to 1 and B is not&lt;br /&gt;
 equal to 2, then D is set equal to 4 and control passes to the next line. If A is equal to 1 and B is  equal to 2, then C is set equal to 3 and control passes to the next line.&lt;br /&gt;
                                                                  &lt;br /&gt;
The following program illustrates a use of IF-THEN-ELSE. It accepts up to 1000 numbers and then prints&lt;br /&gt;
them in order from smallest to largest.&lt;br /&gt;
&lt;br /&gt;
 100 CALL CLEAR&lt;br /&gt;
 110 DIM VALUE(1000)&lt;br /&gt;
 120 PRINT &amp;quot;ENTER VALUES TO B&lt;br /&gt;
  E SORTED.&amp;quot;: &amp;quot;ENTER &amp;#039;9999&amp;#039; TO&lt;br /&gt;
  END ENTRY.&amp;quot;&lt;br /&gt;
 130 FOR COUNT=1 TO 1000&lt;br /&gt;
 140 INPUT VALUE(COUNT)&lt;br /&gt;
 150 IF VALUE(COUNT)=9999 THE&lt;br /&gt;
  N 170&lt;br /&gt;
 160 NEXT COUNT&lt;br /&gt;
 170 COUNT=COUNT-1&lt;br /&gt;
 180 PRINT &amp;quot;SORTING.&amp;quot;&lt;br /&gt;
 190 FOR SORT1=1 TO COUNT-1&lt;br /&gt;
 200 FOR SORT2=SORT1+1 TO COU&lt;br /&gt;
  NT&lt;br /&gt;
 210 IF VALUE(SORT1)&amp;gt;VALUE(SO&lt;br /&gt;
  RT2)THEN TEMP=VALUE(SORT1)::&lt;br /&gt;
   VALUE(SORT1)=VALUE(SORT2)::&lt;br /&gt;
   VALUE(SORT2)=TEMP&lt;br /&gt;
 220 NEXT SORT2&lt;br /&gt;
 230 NEXT SORT1&lt;br /&gt;
 240 FOR SORTED=1 TO COUNT&lt;br /&gt;
 250 PRINT VALUE(SORTED)&lt;br /&gt;
 260 NEXT SORTED&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Additional notes on where care is needed&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Look at this listing and consider what result you think the listing will &lt;br /&gt;
produce:&lt;br /&gt;
&lt;br /&gt;
 100 A=7&lt;br /&gt;
 110 IF A=6 THEN B=1 :: IF A=7 THEN B=2&lt;br /&gt;
 120 IF A&amp;lt;7 THEN C=3 :: IF C&amp;lt;1 THEN C=12&lt;br /&gt;
 130 PRINT A,B,C&lt;br /&gt;
&lt;br /&gt;
The second part of line 110 only operates when the IF is satisfied.  If you intend to use it as an alterative you must specify ELSE:&lt;br /&gt;
110 IF A=6 THEN B=1 ELSE IF A=7 THEN B=2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TI Extended Basic requires an explicit ELSE for example:&lt;br /&gt;
 100  A=7&lt;br /&gt;
 110  IF A=6 THEN 200 :: IF A=7 THEN 300&lt;br /&gt;
 120  GOTO 500&lt;br /&gt;
&lt;br /&gt;
Needs to be:&lt;br /&gt;
110 IF A =6 THEN 200 ELSE IF A=7 THEN 300 ELSE 500&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that if the IF is satisfied the following command is also operative- for example:&lt;br /&gt;
 100 A=7&lt;br /&gt;
 110 IF A=7 THEN B=3 :: C=5&lt;br /&gt;
 120 PRINT A;B;C&lt;br /&gt;
&lt;br /&gt;
In this version, in TI Extended Basic:  because A does equal 7, the &lt;br /&gt;
next statement C=5 is used.&lt;br /&gt;
But if in line 100 we set A=5. then in line 110 we do not set C=5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Print&amp;diff=50348</id>
		<title>Print</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Print&amp;diff=50348"/>
		<updated>2020-10-20T16:58:44Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: Important difference in PRINT between TIB and ExBas.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The command PRINT is available in TI Basic and TI Extended Basic, but the underlying coding is different the and two BASICs do not quite do the same thing.&lt;br /&gt;
&lt;br /&gt;
This difference is a cause of difficulties with TI Basic games which use CALL HCHAR to place characters on line 24, and then use a PRINT to scroll them up- for example a scrolling skiing game.&lt;br /&gt;
&lt;br /&gt;
In TI Basic, after you place characters on line 24, the PRINT command will scroll everything upwards.    However in Extended Basic the PRINT command FIRST clears line 24 THEN scrolls the screen up- any characters placed on line 24  with CALL HCHAR have been removed.&lt;br /&gt;
&lt;br /&gt;
A further difference is that in TI Basic the scroll affects the &amp;quot;edge characters&amp;quot; at the side while Extended Basic leaves the edge characters where they are,&lt;br /&gt;
&lt;br /&gt;
If you RUN this small program in TI Basic and then in Extended Basic, watch for a different result:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 110 FOR T=65 TO 92 &lt;br /&gt;
 120 CALL HCHAR(24,3,T,20) &lt;br /&gt;
 130 PRINT &lt;br /&gt;
 140 NEXT T&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This difference has caused problems in more recent times as use of a compiler that can use either a TI Basic program or an Extended Basic program makes a possibly harmful choice in some cases and does not do what yuou expect. Not a compiler issue- merely TI changing what a primitive command does.&lt;br /&gt;
&lt;br /&gt;
Now here is a solution for TI Basic and Extended Basic, which uses a &amp;quot;print pending&amp;quot; separator - the PRINT lines in this code have exactly 28 spaces between the quotation marks and a semi colon at the end:&lt;br /&gt;
&lt;br /&gt;
 100 PRINT &amp;quot;                                   &amp;quot;; &lt;br /&gt;
 110 FOR T=65 TO 92 &lt;br /&gt;
 120 CALL HCHAR(24,3,T,20) &lt;br /&gt;
 130 PRINT &amp;quot;                                   &amp;quot;; &lt;br /&gt;
 140 NEXT T&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is also guidance on the use of Extended Basic [[Print Using]].&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=TI_BASIC&amp;diff=50304</id>
		<title>TI BASIC</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=TI_BASIC&amp;diff=50304"/>
		<updated>2020-02-17T11:37:41Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: /* Cassette to Disk */   How to deal with reduced VDP memory&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; (Page requires expansion)&lt;br /&gt;
&lt;br /&gt;
See [[Basic Programs in Memory| How a BASIC program is stored in the computers memory]]&lt;br /&gt;
&lt;br /&gt;
==Color==&lt;br /&gt;
The TI used color codes with CALL COLOR and CALL SCREEN. The 16 colors available included white, black and transparent. Refer to the  [[color| color code chart]] &lt;br /&gt;
&lt;br /&gt;
==AND OR==&lt;br /&gt;
One omission from TI Basic is the lack of logical operators such as AND and OR used for example in expressions such as IF V&amp;lt;8 AND W&amp;gt;4 THEN 120 ELSE 240. TI Basic programmers instead used [[mathematical operators to replace logical operators]].&lt;br /&gt;
&lt;br /&gt;
==LIST to a printer==&lt;br /&gt;
LIST &amp;quot;PIO&amp;quot;:130-240 - will LIST to PIO lines 130 to 240 (inclusive)      &lt;br /&gt;
&lt;br /&gt;
==Reading DATA in a program==&lt;br /&gt;
For example:&lt;br /&gt;
 100 FOR A=1 TO 5&lt;br /&gt;
 110 READ A&lt;br /&gt;
 120 PRINT A&lt;br /&gt;
 130 NEXT A&lt;br /&gt;
 140 DATA 32,45,65,23,4&lt;br /&gt;
 150 END&lt;br /&gt;
It is a peculiarity of the system that when it reaches the last item of data, it takes time out to look to see if there is any more, which can introduce a pause in a long program. A simple solution is to add a couple of dummy DATA items which will never be used, but which will satisfy the computer as to the location of the next data item.&lt;br /&gt;
&lt;br /&gt;
==Line 32767==&lt;br /&gt;
When you have a program with a GOTO or a GOSUB and the line number does not exist - because you have not written it or have deleted it, when you RESequence the program the transfer line will be changed to 32767.  eg you will see GOTO 32767 which you never intended.&lt;br /&gt;
&lt;br /&gt;
==ODD or EVEN?==&lt;br /&gt;
Is variable N odd or even?&lt;br /&gt;
&lt;br /&gt;
You might use:&lt;br /&gt;
 100 X=(N=2*INT(N/2))+1 &lt;br /&gt;
which will set X=0 if N is even, and X=1 if N is odd.&lt;br /&gt;
&lt;br /&gt;
Faster:&lt;br /&gt;
 100 X=N AND 1&lt;br /&gt;
Try it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Check Alpha Lock==&lt;br /&gt;
A program using the joysticks requires the alpha lock is UP, a relic of the TI99/4 days.&lt;br /&gt;
&lt;br /&gt;
If your program requires the alpha lock to be DOWN for input etc you can instruct the console:&lt;br /&gt;
&lt;br /&gt;
Insert a dummy line CALL KEY(3, Z, Z)&lt;br /&gt;
&lt;br /&gt;
The use of key unit 3 tells the computer to treat the alpha lock as if it were down whilst the program is running, unless we reset.  Use of key unit 0 has no effect on alpha lock status. Key unit 5 will reset normal operation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Month number using POS==&lt;br /&gt;
Extract a month number, 1 to 12, when the first three letters of any month are entered. &lt;br /&gt;
&lt;br /&gt;
 100 INPUT &amp;quot;MONTH?&amp;quot;:M$&lt;br /&gt;
 110 M=(POS(&amp;quot;JANFEBMARAPRMAYJ&lt;br /&gt;
 UNJULAUGSEPOCTNOVDEC&amp;quot;,M$,1)+&lt;br /&gt;
 2)/3&lt;br /&gt;
 120 IF M&amp;lt;&amp;gt;INT(M) THEN 100&lt;br /&gt;
 130 PRINT &amp;quot;MONTH NUMBER IS &lt;br /&gt;
 &amp;quot;;M&lt;br /&gt;
&lt;br /&gt;
== Cassette to Disk ==&lt;br /&gt;
If you have a collection of TI Basic programs on tape and wish to move them to tape the easy way is:&lt;br /&gt;
&lt;br /&gt;
 NEW&lt;br /&gt;
 OLD CS1&lt;br /&gt;
 SAVE DSK1.PROGNAME&lt;br /&gt;
&lt;br /&gt;
and it is done.&lt;br /&gt;
&lt;br /&gt;
Unfortunately when you connect a disk system, it will use up around 2k of memory.  Very often you will be able to use the above procedure.&lt;br /&gt;
&lt;br /&gt;
Sometimes if you run the program in TI Basic, it will give you a memory error. This is because TI Basic programs run from VDP memory and you have 2k less with a disk controller attached. You can take advantage of Extended Basic and your expansion memory using the VDP program in the next section. Extended basic runs the programs from a 24k part of the 32k ram.&lt;br /&gt;
&lt;br /&gt;
Some long TI Basic programs create their own problems - they may be too long when you add the vdp routine below, or there are some programs that are too long to be loaded into the VDP and will throw an error when you do the OLD CS1.   This section deals with that problem.&lt;br /&gt;
&lt;br /&gt;
In XB you can use a CALL LOAD to tell your console the disk controller is not attached, this may allow the long TI Basic program to at least be loaded. &lt;br /&gt;
CALL LOAD(-31888,63,255) then NEW&lt;br /&gt;
&lt;br /&gt;
 NB Do not try to use the disk controller after doing this unless you power cycle the console OR use:&lt;br /&gt;
CALL LOAD(-31888,55,255) then NEW&lt;br /&gt;
&lt;br /&gt;
If the CALL LOAD allows you to now load the TI Basic program from tape, you may be able to reduce the size of the program by editing and then SAVE back to tape, then see if it will load with &lt;br /&gt;
CALL FILES(1) &lt;br /&gt;
NEW &lt;br /&gt;
OLD CS1&lt;br /&gt;
to enable you to save it to disk.       OR the really tough way... &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
It may be possible to edit the loaded TI Basic program into two parts (yes it is hard work) and save each part to tape, then  with CALL FILES(1) set, move both parts to DISK.  You can then use Extended Basic&amp;#039;s MERGE facility to get the two parts back together and add the VDP utility found in the next section.   &lt;br /&gt;
&lt;br /&gt;
  set disk drive off with the call load - CALL LOAD(-31888,63,255) then NEW&lt;br /&gt;
  OLD program from tape &lt;br /&gt;
  edit out a hundred or so lines at the end &lt;br /&gt;
  save to another tape &lt;br /&gt;
  reload original program and edit out a hundred or so lines from the start &lt;br /&gt;
  save to another tape &lt;br /&gt;
&lt;br /&gt;
 Switch to Extended Basic, reset the disk controller with CALL LOAD(-31888,55,255) then NEW.  &lt;br /&gt;
If you still need more memory you can now use CALL FILES(1) then NEW which saves about 1k.&lt;br /&gt;
&lt;br /&gt;
Load one of the tapes and save to disk in MERGE format. (SAVE DSK1.PART1,MERGE)&lt;br /&gt;
&lt;br /&gt;
Load the other part of the program and MERGE in the first part and the VDP utility&lt;br /&gt;
(MERGE DSK1.PART1 then MERGE DSK1.VDP).&lt;br /&gt;
&lt;br /&gt;
Don&amp;#039;t forget to save the multi merged program to another disk filename before you turn off.&lt;br /&gt;
&lt;br /&gt;
==In Extended Basic==&lt;br /&gt;
If you have a disk system you may wish for example to use a standard menu loader on each disk to load programs, which may be a mix of TI Basic and Extended Basic.  It is possible to run many TI Basic programs in Extended Basic, but some use the two character sets that Extended Basic has dropped and you receive an error.&lt;br /&gt;
&lt;br /&gt;
It is possible to create a small program on disk in merge format which you can then merge into your TI Basic program and they will run in Extended Basic. This routine requires you have a disk system and 32k expansion ram.&lt;br /&gt;
&lt;br /&gt;
First, in Extended Basic, type this code as shown and SAVE it as for example:&lt;br /&gt;
SAVE DSK1.VDP,MERGE&lt;br /&gt;
which will create a small file on disk in DV 163 format.&lt;br /&gt;
&lt;br /&gt;
1 CALL VDP&lt;br /&gt;
&lt;br /&gt;
32600 SUB VDP :: CALL INIT :: CALL LOAD(8194,37,194,63,240)&lt;br /&gt;
&lt;br /&gt;
32610 CALL LOAD(16368,80,79,67,72,65,82,37,58,80,79,75,69,86,32,37,168)&lt;br /&gt;
&lt;br /&gt;
32620 CALL LOAD(9530,2,224,37,20,3,0,0,0,2,5,48,48,2,6,37,2,205,133,2,134,37,17)&lt;br /&gt;
&lt;br /&gt;
32630 CALL LOAD(9552,17,252,4,192,2,1,0,1,2,2,37,1,2,3,18,0,212,131,4,32,32,20)&lt;br /&gt;
&lt;br /&gt;
32640 CALL LOAD(9574,208,4,9,80,2,32,3,0,2,1,37,2,2,2,0,8,2,7,11,0,2,8,7,0,193)&lt;br /&gt;
&lt;br /&gt;
32650 CALL LOAD(9599,1,192,193,193,180,97,133,145,135,21,1,113,136,6,198,145)&lt;br /&gt;
&lt;br /&gt;
32660 CALL LOAD(9615,135,21,1,113,136,210,70,10,198,177,137,220,198,2,131,37,10)&lt;br /&gt;
&lt;br /&gt;
32670 CALL LOAD(9632,17,240,4,32,32,36,16,6,2,224,37,20,3,0,0,0,4,32,32,32,4)&lt;br /&gt;
&lt;br /&gt;
32680 CALL LOAD(9653,192,216,0,131,124,2,224,131,224,4,96,0,112):: SUBEND&lt;br /&gt;
&lt;br /&gt;
32690 SUB CHAR(A,A$):: CALL LOAD(9500,A):: CALL LINK(&amp;quot;POCHAR&amp;quot;,A$):: SUBEND&lt;br /&gt;
&lt;br /&gt;
32700 SUB COLOR(A,B,C):: CALL LOAD(9492,8,15+A,(B-1)*16+C-1)&lt;br /&gt;
&lt;br /&gt;
32710 CALL LINK(&amp;quot;POKEV&amp;quot;):: SUBEND&lt;br /&gt;
&lt;br /&gt;
32720 END&lt;br /&gt;
&lt;br /&gt;
Now load your TI Basic program, check that it does not use a line number 1 or over 32000.  RESequence if required. If all clear merge in the little routine above:&lt;br /&gt;
&lt;br /&gt;
MERGE DSK1.VDP&lt;br /&gt;
&lt;br /&gt;
which will add the routine to your TI Basic program.  Save to disk (use a different name or disk to preserve the original TI Basic program) eg SAVE DSK1.TIBPROGX&lt;br /&gt;
Your TI Basic program will now run in Extended Basic even if it does use the extra character sets,&lt;br /&gt;
&lt;br /&gt;
==Sprites in TI BASIC==&lt;br /&gt;
You can have sprites if there is a special module inserted such as [[Using VDP with BASIC#Moving sprites in TI BASIC|mini-memory]], but this is how to have NO modules inserted and still have 32 sprites in TI Basic. You will need to use cassette files.&lt;br /&gt;
&lt;br /&gt;
This routine allows you to have 32 sprites in TI Basic, with NO modules or peripherals required. The sprites do not have automatic motion, and there is no CALL COINC, but the routine opens up the 32 graphic planes, and allows a character to be placed with single pixel precision. Sprites can be moved manually to give single pixel movement of characters if required.&lt;br /&gt;
&lt;br /&gt;
Now, with no module in place, we do not have POKEV available, so the puzzle is: how, using TI BASIC, can we change memory?&lt;br /&gt;
&lt;br /&gt;
TI Basic has one easy to use command which can change 8 bytes of memory very quickly... it is called CALL CHAR, and it writes these bytes into any area of VDP RAM mapped as &amp;#039;character definitions&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
[[VDP Registers]] shows how by changing VDP Register FIVE, we can move the SPRITE ATTRIBUTE LIST to any part of VDP RAM, INCLUDING the area the console considers to be the character definition table.&lt;br /&gt;
&lt;br /&gt;
If we can do this, then we can use CALL CHAR to write to VDP RAM in an area considered by the CPU to define characters, AND AT THE SAME TIME, define our sprites.&lt;br /&gt;
&lt;br /&gt;
So, the puzzle becomes one of: How do we change the VDP registers using no modules... CALL PEEKV is not available in ordinary TI BASIC.&lt;br /&gt;
&lt;br /&gt;
When you load a program from cassette, there is a HEADER at the start which tells the computer what you are loading and where to put it. Why don&amp;#039;t we use the header to place a value into VDP RAM to change the VDP REGISTER!!&lt;br /&gt;
&lt;br /&gt;
NB: If you have more than a cassette recorder, disconnect now! This article is for Console and Cassette ONLY. &lt;br /&gt;
&lt;br /&gt;
The first step is to set the VDP Register, and here is a general register changer ....&lt;br /&gt;
&lt;br /&gt;
Type in this program, then RUN it, with a blank tape in the recorder!&lt;br /&gt;
 10 REM FILES GENERATOR&lt;br /&gt;
 20 TO MODIFY VDP REGISTERS&lt;br /&gt;
 30 REM THANKS IT U.G. BOLOGNA, ITALY&lt;br /&gt;
 100 CALL CLEAR&lt;br /&gt;
 110 INPUT &amp;quot;REGISTER # 0-7&amp;quot;:R&lt;br /&gt;
 115 INPUT &amp;quot;VALUE (0-255)&amp;quot;:D `&lt;br /&gt;
 120 A=18429-(256*R+D)&lt;br /&gt;
 130 X$=CHR$(0)&amp;amp;CHR$(O)&amp;amp;CHRS(0)&lt;br /&gt;
 14O OPEN #1:&amp;quot;CS1&amp;quot;,OUTPUT,FIXED&lt;br /&gt;
 150 PRINT #1:X$&amp;amp;X$&amp;amp;CHR$(INT(A/256))&amp;amp;CHR$(A)&lt;br /&gt;
 160 CLOSE #1&lt;br /&gt;
 170 END&lt;br /&gt;
To use the program below, with sprites, you must ENTER the values:&lt;br /&gt;
 REGISTER=5, VALUE=15&lt;br /&gt;
With a value of 15, the sprite table occupies the same memory as the definitions of characters 144 to 159.&lt;br /&gt;
&lt;br /&gt;
If you enter a value of 14, the sprite details are in the same location as characters 128 to 145.&lt;br /&gt;
&lt;br /&gt;
After you have RUN the above program, you will have an odd file on tape.&lt;br /&gt;
&lt;br /&gt;
Do a FULL RESET by typing BYE and reselect TI BASIC.  Now LOAD the tape file as though it was a program, with OLD CS1. After you press ENTER at the end of the load, the screen will misbehave (watch for the colour black).&lt;br /&gt;
 &lt;br /&gt;
Now press an alphabetic key and then press ENTER.  Look .... &amp;quot;MEMORY FULL&amp;quot;!!!&lt;br /&gt;
 Type in NEW.&lt;br /&gt;
 The VDP register is now reset until you QUIT or BYE.&lt;br /&gt;
&lt;br /&gt;
Sprites can be placed on the screen as follows:&lt;br /&gt;
 CALL CHAR(144,&amp;quot;Y1X1F1C1Y2X2F2C2&amp;quot;) &lt;br /&gt;
   where Y1, X1 etc are values - 4 values for each sprite)&lt;br /&gt;
 eg CALL CHAR(144,&amp;quot;04037A0C02057B0B&amp;quot;) &lt;br /&gt;
 (that is 8 values for TWO sprites, TWO numbers per value)&lt;br /&gt;
Where each CALL CHAR carries the four parameters required for two sprites, with each parameter a two digit hexadecimal number.&lt;br /&gt;
 Y=Row (0-191), X=Column(0-255), F=ASCII+96, C=COLOR(0-15)&lt;br /&gt;
&lt;br /&gt;
 What is the HEX for decimal 122?:&lt;br /&gt;
 122/16= 7 remainder 10 (10=&amp;gt;A where &amp;gt; means HEX)&lt;br /&gt;
 7/16= 0 remainder 7 ( 7 = &amp;gt;7 )&lt;br /&gt;
 Therefore 122= &amp;gt;7A&lt;br /&gt;
&lt;br /&gt;
As we are defining two sprites at a time, if you only want one, the final 8 values will be D0000000 to mark the end of the sprite table. If you want two sprites you need to define the next character with a D and 17 zeroes. D0 is the hexadecimal equivalent of 208.&lt;br /&gt;
&lt;br /&gt;
NOTE: As with mini memory, we MUST terminate the sprite table with a value of 208. In other words the final sprite is defined with the values D0000000, &lt;br /&gt;
&lt;br /&gt;
No matter which is the highest value sprite, always end the definition with a hexadecimal equivalent to decimal 208. &lt;br /&gt;
&lt;br /&gt;
The following demo program builds an array H$ such that we can use this to build up the hexadecimal string required.&lt;br /&gt;
 Ready...&lt;br /&gt;
 1 REM IT U.G. BOLOGNA ITALY&lt;br /&gt;
 5 CALL CLEAR&lt;br /&gt;
 10 DIM(A$(16),H$(255)&lt;br /&gt;
 20 FOR P=1 TO 15&lt;br /&gt;
 30 A$(P)=SEG$(&amp;quot;0123456789ABCDEF&amp;quot;,P+1,1)&lt;br /&gt;
 35 NEXT P&lt;br /&gt;
 40 FOR P=0 TO 15&lt;br /&gt;
 45 K=16*P&lt;br /&gt;
 50 FOR J=0 TO 15&lt;br /&gt;
 55 H$(K+J)=A$(P)&amp;amp;A$(J)&lt;br /&gt;
 50 NEXT J&lt;br /&gt;
 65 NEXT P&lt;br /&gt;
 70 REM SPRITE MAGENTA DEMO&lt;br /&gt;
 75 F$=H$(128)&amp;amp;H$(64+96)&lt;br /&gt;
 80 F$=F$&amp;amp;H$(14-1)&amp;amp;H$(208)&lt;br /&gt;
 85 FOR Y=0 TO 191&lt;br /&gt;
 90 CALL HCHAR(12,12,144)&lt;br /&gt;
 95 CALL CHAR(144,H$(Y)&amp;amp;F$)&lt;br /&gt;
 100 NEXT Y&lt;br /&gt;
 105 GOTO 100&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming language]]&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=TI_BASIC&amp;diff=50303</id>
		<title>TI BASIC</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=TI_BASIC&amp;diff=50303"/>
		<updated>2020-02-17T11:05:49Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: start section on tape to disk transfer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; (Page requires expansion)&lt;br /&gt;
&lt;br /&gt;
See [[Basic Programs in Memory| How a BASIC program is stored in the computers memory]]&lt;br /&gt;
&lt;br /&gt;
==Color==&lt;br /&gt;
The TI used color codes with CALL COLOR and CALL SCREEN. The 16 colors available included white, black and transparent. Refer to the  [[color| color code chart]] &lt;br /&gt;
&lt;br /&gt;
==AND OR==&lt;br /&gt;
One omission from TI Basic is the lack of logical operators such as AND and OR used for example in expressions such as IF V&amp;lt;8 AND W&amp;gt;4 THEN 120 ELSE 240. TI Basic programmers instead used [[mathematical operators to replace logical operators]].&lt;br /&gt;
&lt;br /&gt;
==LIST to a printer==&lt;br /&gt;
LIST &amp;quot;PIO&amp;quot;:130-240 - will LIST to PIO lines 130 to 240 (inclusive)      &lt;br /&gt;
&lt;br /&gt;
==Reading DATA in a program==&lt;br /&gt;
For example:&lt;br /&gt;
 100 FOR A=1 TO 5&lt;br /&gt;
 110 READ A&lt;br /&gt;
 120 PRINT A&lt;br /&gt;
 130 NEXT A&lt;br /&gt;
 140 DATA 32,45,65,23,4&lt;br /&gt;
 150 END&lt;br /&gt;
It is a peculiarity of the system that when it reaches the last item of data, it takes time out to look to see if there is any more, which can introduce a pause in a long program. A simple solution is to add a couple of dummy DATA items which will never be used, but which will satisfy the computer as to the location of the next data item.&lt;br /&gt;
&lt;br /&gt;
==Line 32767==&lt;br /&gt;
When you have a program with a GOTO or a GOSUB and the line number does not exist - because you have not written it or have deleted it, when you RESequence the program the transfer line will be changed to 32767.  eg you will see GOTO 32767 which you never intended.&lt;br /&gt;
&lt;br /&gt;
==ODD or EVEN?==&lt;br /&gt;
Is variable N odd or even?&lt;br /&gt;
&lt;br /&gt;
You might use:&lt;br /&gt;
 100 X=(N=2*INT(N/2))+1 &lt;br /&gt;
which will set X=0 if N is even, and X=1 if N is odd.&lt;br /&gt;
&lt;br /&gt;
Faster:&lt;br /&gt;
 100 X=N AND 1&lt;br /&gt;
Try it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Check Alpha Lock==&lt;br /&gt;
A program using the joysticks requires the alpha lock is UP, a relic of the TI99/4 days.&lt;br /&gt;
&lt;br /&gt;
If your program requires the alpha lock to be DOWN for input etc you can instruct the console:&lt;br /&gt;
&lt;br /&gt;
Insert a dummy line CALL KEY(3, Z, Z)&lt;br /&gt;
&lt;br /&gt;
The use of key unit 3 tells the computer to treat the alpha lock as if it were down whilst the program is running, unless we reset.  Use of key unit 0 has no effect on alpha lock status. Key unit 5 will reset normal operation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Month number using POS==&lt;br /&gt;
Extract a month number, 1 to 12, when the first three letters of any month are entered. &lt;br /&gt;
&lt;br /&gt;
 100 INPUT &amp;quot;MONTH?&amp;quot;:M$&lt;br /&gt;
 110 M=(POS(&amp;quot;JANFEBMARAPRMAYJ&lt;br /&gt;
 UNJULAUGSEPOCTNOVDEC&amp;quot;,M$,1)+&lt;br /&gt;
 2)/3&lt;br /&gt;
 120 IF M&amp;lt;&amp;gt;INT(M) THEN 100&lt;br /&gt;
 130 PRINT &amp;quot;MONTH NUMBER IS &lt;br /&gt;
 &amp;quot;;M&lt;br /&gt;
&lt;br /&gt;
== Cassette to Disk ==&lt;br /&gt;
If you have a collection of TI Basic programs on tape and wish to move them to tape the easy way is:&lt;br /&gt;
NEW&lt;br /&gt;
OLD CS1&lt;br /&gt;
SAVE DSK1.PROGNAME&lt;br /&gt;
and it is done.&lt;br /&gt;
&lt;br /&gt;
Unfortunately when you connect a disk system, it will use up around 2k of memory.  Very often you will be able to use the above procedure.&lt;br /&gt;
&lt;br /&gt;
Sometimes if you run the program in TI Basic, it will give you a memory error. This is because TI Basic programs run from VDP memory and you have 2k less with a disk controller attached. You can take advantage of Extended Basic and your expansion memory using the VDP program in the next section. Extended basic runs the programs from a 24k part of the 32k ram.&lt;br /&gt;
&lt;br /&gt;
Some long TI Basic programs create their own problems - they may be too long when you add the vdp routine below, or there are some programs that are too long to be loaded into the VDP and will throw an error when you do the OLD CS1.   This section deals with that problem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==In Extended Basic==&lt;br /&gt;
If you have a disk system you may wish for example to use a standard menu loader on each disk to load programs, which may be a mix of TI Basic and Extended Basic.  It is possible to run many TI Basic programs in Extended Basic, but some use the two character sets that Extended Basic has dropped and you receive an error.&lt;br /&gt;
&lt;br /&gt;
It is possible to create a small program on disk in merge format which you can then merge into your TI Basic program and they will run in Extended Basic. This routine requires you have a disk system and 32k expansion ram.&lt;br /&gt;
&lt;br /&gt;
First, in Extended Basic, type this code as shown and SAVE it as for example:&lt;br /&gt;
SAVE DSK1.VDP,MERGE&lt;br /&gt;
which will create a small file on disk in DV 163 format.&lt;br /&gt;
&lt;br /&gt;
1 CALL VDP&lt;br /&gt;
&lt;br /&gt;
32600 SUB VDP :: CALL INIT :: CALL LOAD(8194,37,194,63,240)&lt;br /&gt;
&lt;br /&gt;
32610 CALL LOAD(16368,80,79,67,72,65,82,37,58,80,79,75,69,86,32,37,168)&lt;br /&gt;
&lt;br /&gt;
32620 CALL LOAD(9530,2,224,37,20,3,0,0,0,2,5,48,48,2,6,37,2,205,133,2,134,37,17)&lt;br /&gt;
&lt;br /&gt;
32630 CALL LOAD(9552,17,252,4,192,2,1,0,1,2,2,37,1,2,3,18,0,212,131,4,32,32,20)&lt;br /&gt;
&lt;br /&gt;
32640 CALL LOAD(9574,208,4,9,80,2,32,3,0,2,1,37,2,2,2,0,8,2,7,11,0,2,8,7,0,193)&lt;br /&gt;
&lt;br /&gt;
32650 CALL LOAD(9599,1,192,193,193,180,97,133,145,135,21,1,113,136,6,198,145)&lt;br /&gt;
&lt;br /&gt;
32660 CALL LOAD(9615,135,21,1,113,136,210,70,10,198,177,137,220,198,2,131,37,10)&lt;br /&gt;
&lt;br /&gt;
32670 CALL LOAD(9632,17,240,4,32,32,36,16,6,2,224,37,20,3,0,0,0,4,32,32,32,4)&lt;br /&gt;
&lt;br /&gt;
32680 CALL LOAD(9653,192,216,0,131,124,2,224,131,224,4,96,0,112):: SUBEND&lt;br /&gt;
&lt;br /&gt;
32690 SUB CHAR(A,A$):: CALL LOAD(9500,A):: CALL LINK(&amp;quot;POCHAR&amp;quot;,A$):: SUBEND&lt;br /&gt;
&lt;br /&gt;
32700 SUB COLOR(A,B,C):: CALL LOAD(9492,8,15+A,(B-1)*16+C-1)&lt;br /&gt;
&lt;br /&gt;
32710 CALL LINK(&amp;quot;POKEV&amp;quot;):: SUBEND&lt;br /&gt;
&lt;br /&gt;
32720 END&lt;br /&gt;
&lt;br /&gt;
Now load your TI Basic program, check that it does not use a line number 1 or over 32000.  RESequence if required. If all clear merge in the little routine above:&lt;br /&gt;
&lt;br /&gt;
MERGE DSK1.VDP&lt;br /&gt;
&lt;br /&gt;
which will add the routine to your TI Basic program.  Save to disk (use a different name or disk to preserve the original TI Basic program) eg SAVE DSK1.TIBPROGX&lt;br /&gt;
Your TI Basic program will now run in Extended Basic even if it does use the extra character sets,&lt;br /&gt;
&lt;br /&gt;
==Sprites in TI BASIC==&lt;br /&gt;
You can have sprites if there is a special module inserted such as [[Using VDP with BASIC#Moving sprites in TI BASIC|mini-memory]], but this is how to have NO modules inserted and still have 32 sprites in TI Basic. You will need to use cassette files.&lt;br /&gt;
&lt;br /&gt;
This routine allows you to have 32 sprites in TI Basic, with NO modules or peripherals required. The sprites do not have automatic motion, and there is no CALL COINC, but the routine opens up the 32 graphic planes, and allows a character to be placed with single pixel precision. Sprites can be moved manually to give single pixel movement of characters if required.&lt;br /&gt;
&lt;br /&gt;
Now, with no module in place, we do not have POKEV available, so the puzzle is: how, using TI BASIC, can we change memory?&lt;br /&gt;
&lt;br /&gt;
TI Basic has one easy to use command which can change 8 bytes of memory very quickly... it is called CALL CHAR, and it writes these bytes into any area of VDP RAM mapped as &amp;#039;character definitions&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
[[VDP Registers]] shows how by changing VDP Register FIVE, we can move the SPRITE ATTRIBUTE LIST to any part of VDP RAM, INCLUDING the area the console considers to be the character definition table.&lt;br /&gt;
&lt;br /&gt;
If we can do this, then we can use CALL CHAR to write to VDP RAM in an area considered by the CPU to define characters, AND AT THE SAME TIME, define our sprites.&lt;br /&gt;
&lt;br /&gt;
So, the puzzle becomes one of: How do we change the VDP registers using no modules... CALL PEEKV is not available in ordinary TI BASIC.&lt;br /&gt;
&lt;br /&gt;
When you load a program from cassette, there is a HEADER at the start which tells the computer what you are loading and where to put it. Why don&amp;#039;t we use the header to place a value into VDP RAM to change the VDP REGISTER!!&lt;br /&gt;
&lt;br /&gt;
NB: If you have more than a cassette recorder, disconnect now! This article is for Console and Cassette ONLY. &lt;br /&gt;
&lt;br /&gt;
The first step is to set the VDP Register, and here is a general register changer ....&lt;br /&gt;
&lt;br /&gt;
Type in this program, then RUN it, with a blank tape in the recorder!&lt;br /&gt;
 10 REM FILES GENERATOR&lt;br /&gt;
 20 TO MODIFY VDP REGISTERS&lt;br /&gt;
 30 REM THANKS IT U.G. BOLOGNA, ITALY&lt;br /&gt;
 100 CALL CLEAR&lt;br /&gt;
 110 INPUT &amp;quot;REGISTER # 0-7&amp;quot;:R&lt;br /&gt;
 115 INPUT &amp;quot;VALUE (0-255)&amp;quot;:D `&lt;br /&gt;
 120 A=18429-(256*R+D)&lt;br /&gt;
 130 X$=CHR$(0)&amp;amp;CHR$(O)&amp;amp;CHRS(0)&lt;br /&gt;
 14O OPEN #1:&amp;quot;CS1&amp;quot;,OUTPUT,FIXED&lt;br /&gt;
 150 PRINT #1:X$&amp;amp;X$&amp;amp;CHR$(INT(A/256))&amp;amp;CHR$(A)&lt;br /&gt;
 160 CLOSE #1&lt;br /&gt;
 170 END&lt;br /&gt;
To use the program below, with sprites, you must ENTER the values:&lt;br /&gt;
 REGISTER=5, VALUE=15&lt;br /&gt;
With a value of 15, the sprite table occupies the same memory as the definitions of characters 144 to 159.&lt;br /&gt;
&lt;br /&gt;
If you enter a value of 14, the sprite details are in the same location as characters 128 to 145.&lt;br /&gt;
&lt;br /&gt;
After you have RUN the above program, you will have an odd file on tape.&lt;br /&gt;
&lt;br /&gt;
Do a FULL RESET by typing BYE and reselect TI BASIC.  Now LOAD the tape file as though it was a program, with OLD CS1. After you press ENTER at the end of the load, the screen will misbehave (watch for the colour black).&lt;br /&gt;
 &lt;br /&gt;
Now press an alphabetic key and then press ENTER.  Look .... &amp;quot;MEMORY FULL&amp;quot;!!!&lt;br /&gt;
 Type in NEW.&lt;br /&gt;
 The VDP register is now reset until you QUIT or BYE.&lt;br /&gt;
&lt;br /&gt;
Sprites can be placed on the screen as follows:&lt;br /&gt;
 CALL CHAR(144,&amp;quot;Y1X1F1C1Y2X2F2C2&amp;quot;) &lt;br /&gt;
   where Y1, X1 etc are values - 4 values for each sprite)&lt;br /&gt;
 eg CALL CHAR(144,&amp;quot;04037A0C02057B0B&amp;quot;) &lt;br /&gt;
 (that is 8 values for TWO sprites, TWO numbers per value)&lt;br /&gt;
Where each CALL CHAR carries the four parameters required for two sprites, with each parameter a two digit hexadecimal number.&lt;br /&gt;
 Y=Row (0-191), X=Column(0-255), F=ASCII+96, C=COLOR(0-15)&lt;br /&gt;
&lt;br /&gt;
 What is the HEX for decimal 122?:&lt;br /&gt;
 122/16= 7 remainder 10 (10=&amp;gt;A where &amp;gt; means HEX)&lt;br /&gt;
 7/16= 0 remainder 7 ( 7 = &amp;gt;7 )&lt;br /&gt;
 Therefore 122= &amp;gt;7A&lt;br /&gt;
&lt;br /&gt;
As we are defining two sprites at a time, if you only want one, the final 8 values will be D0000000 to mark the end of the sprite table. If you want two sprites you need to define the next character with a D and 17 zeroes. D0 is the hexadecimal equivalent of 208.&lt;br /&gt;
&lt;br /&gt;
NOTE: As with mini memory, we MUST terminate the sprite table with a value of 208. In other words the final sprite is defined with the values D0000000, &lt;br /&gt;
&lt;br /&gt;
No matter which is the highest value sprite, always end the definition with a hexadecimal equivalent to decimal 208. &lt;br /&gt;
&lt;br /&gt;
The following demo program builds an array H$ such that we can use this to build up the hexadecimal string required.&lt;br /&gt;
 Ready...&lt;br /&gt;
 1 REM IT U.G. BOLOGNA ITALY&lt;br /&gt;
 5 CALL CLEAR&lt;br /&gt;
 10 DIM(A$(16),H$(255)&lt;br /&gt;
 20 FOR P=1 TO 15&lt;br /&gt;
 30 A$(P)=SEG$(&amp;quot;0123456789ABCDEF&amp;quot;,P+1,1)&lt;br /&gt;
 35 NEXT P&lt;br /&gt;
 40 FOR P=0 TO 15&lt;br /&gt;
 45 K=16*P&lt;br /&gt;
 50 FOR J=0 TO 15&lt;br /&gt;
 55 H$(K+J)=A$(P)&amp;amp;A$(J)&lt;br /&gt;
 50 NEXT J&lt;br /&gt;
 65 NEXT P&lt;br /&gt;
 70 REM SPRITE MAGENTA DEMO&lt;br /&gt;
 75 F$=H$(128)&amp;amp;H$(64+96)&lt;br /&gt;
 80 F$=F$&amp;amp;H$(14-1)&amp;amp;H$(208)&lt;br /&gt;
 85 FOR Y=0 TO 191&lt;br /&gt;
 90 CALL HCHAR(12,12,144)&lt;br /&gt;
 95 CALL CHAR(144,H$(Y)&amp;amp;F$)&lt;br /&gt;
 100 NEXT Y&lt;br /&gt;
 105 GOTO 100&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming language]]&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=TI_BASIC&amp;diff=50302</id>
		<title>TI BASIC</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=TI_BASIC&amp;diff=50302"/>
		<updated>2020-02-17T10:54:53Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: /* In Extended Basic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; (Page requires expansion)&lt;br /&gt;
&lt;br /&gt;
See [[Basic Programs in Memory| How a BASIC program is stored in the computers memory]]&lt;br /&gt;
&lt;br /&gt;
==Color==&lt;br /&gt;
The TI used color codes with CALL COLOR and CALL SCREEN. The 16 colors available included white, black and transparent. Refer to the  [[color| color code chart]] &lt;br /&gt;
&lt;br /&gt;
==AND OR==&lt;br /&gt;
One omission from TI Basic is the lack of logical operators such as AND and OR used for example in expressions such as IF V&amp;lt;8 AND W&amp;gt;4 THEN 120 ELSE 240. TI Basic programmers instead used [[mathematical operators to replace logical operators]].&lt;br /&gt;
&lt;br /&gt;
==LIST to a printer==&lt;br /&gt;
LIST &amp;quot;PIO&amp;quot;:130-240 - will LIST to PIO lines 130 to 240 (inclusive)      &lt;br /&gt;
&lt;br /&gt;
==Reading DATA in a program==&lt;br /&gt;
For example:&lt;br /&gt;
 100 FOR A=1 TO 5&lt;br /&gt;
 110 READ A&lt;br /&gt;
 120 PRINT A&lt;br /&gt;
 130 NEXT A&lt;br /&gt;
 140 DATA 32,45,65,23,4&lt;br /&gt;
 150 END&lt;br /&gt;
It is a peculiarity of the system that when it reaches the last item of data, it takes time out to look to see if there is any more, which can introduce a pause in a long program. A simple solution is to add a couple of dummy DATA items which will never be used, but which will satisfy the computer as to the location of the next data item.&lt;br /&gt;
&lt;br /&gt;
==Line 32767==&lt;br /&gt;
When you have a program with a GOTO or a GOSUB and the line number does not exist - because you have not written it or have deleted it, when you RESequence the program the transfer line will be changed to 32767.  eg you will see GOTO 32767 which you never intended.&lt;br /&gt;
&lt;br /&gt;
==ODD or EVEN?==&lt;br /&gt;
Is variable N odd or even?&lt;br /&gt;
&lt;br /&gt;
You might use:&lt;br /&gt;
 100 X=(N=2*INT(N/2))+1 &lt;br /&gt;
which will set X=0 if N is even, and X=1 if N is odd.&lt;br /&gt;
&lt;br /&gt;
Faster:&lt;br /&gt;
 100 X=N AND 1&lt;br /&gt;
Try it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Check Alpha Lock==&lt;br /&gt;
A program using the joysticks requires the alpha lock is UP, a relic of the TI99/4 days.&lt;br /&gt;
&lt;br /&gt;
If your program requires the alpha lock to be DOWN for input etc you can instruct the console:&lt;br /&gt;
&lt;br /&gt;
Insert a dummy line CALL KEY(3, Z, Z)&lt;br /&gt;
&lt;br /&gt;
The use of key unit 3 tells the computer to treat the alpha lock as if it were down whilst the program is running, unless we reset.  Use of key unit 0 has no effect on alpha lock status. Key unit 5 will reset normal operation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Month number using POS==&lt;br /&gt;
Extract a month number, 1 to 12, when the first three letters of any month are entered. &lt;br /&gt;
&lt;br /&gt;
 100 INPUT &amp;quot;MONTH?&amp;quot;:M$&lt;br /&gt;
 110 M=(POS(&amp;quot;JANFEBMARAPRMAYJ&lt;br /&gt;
 UNJULAUGSEPOCTNOVDEC&amp;quot;,M$,1)+&lt;br /&gt;
 2)/3&lt;br /&gt;
 120 IF M&amp;lt;&amp;gt;INT(M) THEN 100&lt;br /&gt;
 130 PRINT &amp;quot;MONTH NUMBER IS &lt;br /&gt;
 &amp;quot;;M&lt;br /&gt;
&lt;br /&gt;
==In Extended Basic==&lt;br /&gt;
If you have a disk system you may wish for example to use a standard menu loader on each disk to load programs, which may be a mix of TI Basic and Extended Basic.  It is possible to run many TI Basic programs in Extended Basic, but some use the two character sets that Extended Basic has dropped and you receive an error.&lt;br /&gt;
&lt;br /&gt;
It is possible to create a small program on disk in merge format which you can then merge into your TI Basic program and they will run in Extended Basic. This routine requires you have a disk system and 32k expansion ram.&lt;br /&gt;
&lt;br /&gt;
First, in Extended Basic, type this code as shown and SAVE it as for example:&lt;br /&gt;
SAVE DSK1.VDP,MERGE&lt;br /&gt;
which will create a small file on disk in DV 163 format.&lt;br /&gt;
&lt;br /&gt;
1 CALL VDP&lt;br /&gt;
&lt;br /&gt;
32600 SUB VDP :: CALL INIT :: CALL LOAD(8194,37,194,63,240)&lt;br /&gt;
&lt;br /&gt;
32610 CALL LOAD(16368,80,79,67,72,65,82,37,58,80,79,75,69,86,32,37,168)&lt;br /&gt;
&lt;br /&gt;
32620 CALL LOAD(9530,2,224,37,20,3,0,0,0,2,5,48,48,2,6,37,2,205,133,2,134,37,17)&lt;br /&gt;
&lt;br /&gt;
32630 CALL LOAD(9552,17,252,4,192,2,1,0,1,2,2,37,1,2,3,18,0,212,131,4,32,32,20)&lt;br /&gt;
&lt;br /&gt;
32640 CALL LOAD(9574,208,4,9,80,2,32,3,0,2,1,37,2,2,2,0,8,2,7,11,0,2,8,7,0,193)&lt;br /&gt;
&lt;br /&gt;
32650 CALL LOAD(9599,1,192,193,193,180,97,133,145,135,21,1,113,136,6,198,145)&lt;br /&gt;
&lt;br /&gt;
32660 CALL LOAD(9615,135,21,1,113,136,210,70,10,198,177,137,220,198,2,131,37,10)&lt;br /&gt;
&lt;br /&gt;
32670 CALL LOAD(9632,17,240,4,32,32,36,16,6,2,224,37,20,3,0,0,0,4,32,32,32,4)&lt;br /&gt;
&lt;br /&gt;
32680 CALL LOAD(9653,192,216,0,131,124,2,224,131,224,4,96,0,112):: SUBEND&lt;br /&gt;
&lt;br /&gt;
32690 SUB CHAR(A,A$):: CALL LOAD(9500,A):: CALL LINK(&amp;quot;POCHAR&amp;quot;,A$):: SUBEND&lt;br /&gt;
&lt;br /&gt;
32700 SUB COLOR(A,B,C):: CALL LOAD(9492,8,15+A,(B-1)*16+C-1)&lt;br /&gt;
&lt;br /&gt;
32710 CALL LINK(&amp;quot;POKEV&amp;quot;):: SUBEND&lt;br /&gt;
&lt;br /&gt;
32720 END&lt;br /&gt;
&lt;br /&gt;
Now load your TI Basic program, check that it does not use a line number 1 or over 32000.  RESequence if required. If all clear merge in the little routine above:&lt;br /&gt;
&lt;br /&gt;
MERGE DSK1.VDP&lt;br /&gt;
&lt;br /&gt;
which will add the routine to your TI Basic program.  Save to disk (use a different name or disk to preserve the original TI Basic program) eg SAVE DSK1.TIBPROGX&lt;br /&gt;
Your TI Basic program will now run in Extended Basic even if it does use the extra character sets,&lt;br /&gt;
&lt;br /&gt;
==Sprites in TI BASIC==&lt;br /&gt;
You can have sprites if there is a special module inserted such as [[Using VDP with BASIC#Moving sprites in TI BASIC|mini-memory]], but this is how to have NO modules inserted and still have 32 sprites in TI Basic. You will need to use cassette files.&lt;br /&gt;
&lt;br /&gt;
This routine allows you to have 32 sprites in TI Basic, with NO modules or peripherals required. The sprites do not have automatic motion, and there is no CALL COINC, but the routine opens up the 32 graphic planes, and allows a character to be placed with single pixel precision. Sprites can be moved manually to give single pixel movement of characters if required.&lt;br /&gt;
&lt;br /&gt;
Now, with no module in place, we do not have POKEV available, so the puzzle is: how, using TI BASIC, can we change memory?&lt;br /&gt;
&lt;br /&gt;
TI Basic has one easy to use command which can change 8 bytes of memory very quickly... it is called CALL CHAR, and it writes these bytes into any area of VDP RAM mapped as &amp;#039;character definitions&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
[[VDP Registers]] shows how by changing VDP Register FIVE, we can move the SPRITE ATTRIBUTE LIST to any part of VDP RAM, INCLUDING the area the console considers to be the character definition table.&lt;br /&gt;
&lt;br /&gt;
If we can do this, then we can use CALL CHAR to write to VDP RAM in an area considered by the CPU to define characters, AND AT THE SAME TIME, define our sprites.&lt;br /&gt;
&lt;br /&gt;
So, the puzzle becomes one of: How do we change the VDP registers using no modules... CALL PEEKV is not available in ordinary TI BASIC.&lt;br /&gt;
&lt;br /&gt;
When you load a program from cassette, there is a HEADER at the start which tells the computer what you are loading and where to put it. Why don&amp;#039;t we use the header to place a value into VDP RAM to change the VDP REGISTER!!&lt;br /&gt;
&lt;br /&gt;
NB: If you have more than a cassette recorder, disconnect now! This article is for Console and Cassette ONLY. &lt;br /&gt;
&lt;br /&gt;
The first step is to set the VDP Register, and here is a general register changer ....&lt;br /&gt;
&lt;br /&gt;
Type in this program, then RUN it, with a blank tape in the recorder!&lt;br /&gt;
 10 REM FILES GENERATOR&lt;br /&gt;
 20 TO MODIFY VDP REGISTERS&lt;br /&gt;
 30 REM THANKS IT U.G. BOLOGNA, ITALY&lt;br /&gt;
 100 CALL CLEAR&lt;br /&gt;
 110 INPUT &amp;quot;REGISTER # 0-7&amp;quot;:R&lt;br /&gt;
 115 INPUT &amp;quot;VALUE (0-255)&amp;quot;:D `&lt;br /&gt;
 120 A=18429-(256*R+D)&lt;br /&gt;
 130 X$=CHR$(0)&amp;amp;CHR$(O)&amp;amp;CHRS(0)&lt;br /&gt;
 14O OPEN #1:&amp;quot;CS1&amp;quot;,OUTPUT,FIXED&lt;br /&gt;
 150 PRINT #1:X$&amp;amp;X$&amp;amp;CHR$(INT(A/256))&amp;amp;CHR$(A)&lt;br /&gt;
 160 CLOSE #1&lt;br /&gt;
 170 END&lt;br /&gt;
To use the program below, with sprites, you must ENTER the values:&lt;br /&gt;
 REGISTER=5, VALUE=15&lt;br /&gt;
With a value of 15, the sprite table occupies the same memory as the definitions of characters 144 to 159.&lt;br /&gt;
&lt;br /&gt;
If you enter a value of 14, the sprite details are in the same location as characters 128 to 145.&lt;br /&gt;
&lt;br /&gt;
After you have RUN the above program, you will have an odd file on tape.&lt;br /&gt;
&lt;br /&gt;
Do a FULL RESET by typing BYE and reselect TI BASIC.  Now LOAD the tape file as though it was a program, with OLD CS1. After you press ENTER at the end of the load, the screen will misbehave (watch for the colour black).&lt;br /&gt;
 &lt;br /&gt;
Now press an alphabetic key and then press ENTER.  Look .... &amp;quot;MEMORY FULL&amp;quot;!!!&lt;br /&gt;
 Type in NEW.&lt;br /&gt;
 The VDP register is now reset until you QUIT or BYE.&lt;br /&gt;
&lt;br /&gt;
Sprites can be placed on the screen as follows:&lt;br /&gt;
 CALL CHAR(144,&amp;quot;Y1X1F1C1Y2X2F2C2&amp;quot;) &lt;br /&gt;
   where Y1, X1 etc are values - 4 values for each sprite)&lt;br /&gt;
 eg CALL CHAR(144,&amp;quot;04037A0C02057B0B&amp;quot;) &lt;br /&gt;
 (that is 8 values for TWO sprites, TWO numbers per value)&lt;br /&gt;
Where each CALL CHAR carries the four parameters required for two sprites, with each parameter a two digit hexadecimal number.&lt;br /&gt;
 Y=Row (0-191), X=Column(0-255), F=ASCII+96, C=COLOR(0-15)&lt;br /&gt;
&lt;br /&gt;
 What is the HEX for decimal 122?:&lt;br /&gt;
 122/16= 7 remainder 10 (10=&amp;gt;A where &amp;gt; means HEX)&lt;br /&gt;
 7/16= 0 remainder 7 ( 7 = &amp;gt;7 )&lt;br /&gt;
 Therefore 122= &amp;gt;7A&lt;br /&gt;
&lt;br /&gt;
As we are defining two sprites at a time, if you only want one, the final 8 values will be D0000000 to mark the end of the sprite table. If you want two sprites you need to define the next character with a D and 17 zeroes. D0 is the hexadecimal equivalent of 208.&lt;br /&gt;
&lt;br /&gt;
NOTE: As with mini memory, we MUST terminate the sprite table with a value of 208. In other words the final sprite is defined with the values D0000000, &lt;br /&gt;
&lt;br /&gt;
No matter which is the highest value sprite, always end the definition with a hexadecimal equivalent to decimal 208. &lt;br /&gt;
&lt;br /&gt;
The following demo program builds an array H$ such that we can use this to build up the hexadecimal string required.&lt;br /&gt;
 Ready...&lt;br /&gt;
 1 REM IT U.G. BOLOGNA ITALY&lt;br /&gt;
 5 CALL CLEAR&lt;br /&gt;
 10 DIM(A$(16),H$(255)&lt;br /&gt;
 20 FOR P=1 TO 15&lt;br /&gt;
 30 A$(P)=SEG$(&amp;quot;0123456789ABCDEF&amp;quot;,P+1,1)&lt;br /&gt;
 35 NEXT P&lt;br /&gt;
 40 FOR P=0 TO 15&lt;br /&gt;
 45 K=16*P&lt;br /&gt;
 50 FOR J=0 TO 15&lt;br /&gt;
 55 H$(K+J)=A$(P)&amp;amp;A$(J)&lt;br /&gt;
 50 NEXT J&lt;br /&gt;
 65 NEXT P&lt;br /&gt;
 70 REM SPRITE MAGENTA DEMO&lt;br /&gt;
 75 F$=H$(128)&amp;amp;H$(64+96)&lt;br /&gt;
 80 F$=F$&amp;amp;H$(14-1)&amp;amp;H$(208)&lt;br /&gt;
 85 FOR Y=0 TO 191&lt;br /&gt;
 90 CALL HCHAR(12,12,144)&lt;br /&gt;
 95 CALL CHAR(144,H$(Y)&amp;amp;F$)&lt;br /&gt;
 100 NEXT Y&lt;br /&gt;
 105 GOTO 100&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming language]]&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=TI_BASIC&amp;diff=50301</id>
		<title>TI BASIC</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=TI_BASIC&amp;diff=50301"/>
		<updated>2020-02-17T10:53:47Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: How to run TIB progs in XB&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; (Page requires expansion)&lt;br /&gt;
&lt;br /&gt;
See [[Basic Programs in Memory| How a BASIC program is stored in the computers memory]]&lt;br /&gt;
&lt;br /&gt;
==Color==&lt;br /&gt;
The TI used color codes with CALL COLOR and CALL SCREEN. The 16 colors available included white, black and transparent. Refer to the  [[color| color code chart]] &lt;br /&gt;
&lt;br /&gt;
==AND OR==&lt;br /&gt;
One omission from TI Basic is the lack of logical operators such as AND and OR used for example in expressions such as IF V&amp;lt;8 AND W&amp;gt;4 THEN 120 ELSE 240. TI Basic programmers instead used [[mathematical operators to replace logical operators]].&lt;br /&gt;
&lt;br /&gt;
==LIST to a printer==&lt;br /&gt;
LIST &amp;quot;PIO&amp;quot;:130-240 - will LIST to PIO lines 130 to 240 (inclusive)      &lt;br /&gt;
&lt;br /&gt;
==Reading DATA in a program==&lt;br /&gt;
For example:&lt;br /&gt;
 100 FOR A=1 TO 5&lt;br /&gt;
 110 READ A&lt;br /&gt;
 120 PRINT A&lt;br /&gt;
 130 NEXT A&lt;br /&gt;
 140 DATA 32,45,65,23,4&lt;br /&gt;
 150 END&lt;br /&gt;
It is a peculiarity of the system that when it reaches the last item of data, it takes time out to look to see if there is any more, which can introduce a pause in a long program. A simple solution is to add a couple of dummy DATA items which will never be used, but which will satisfy the computer as to the location of the next data item.&lt;br /&gt;
&lt;br /&gt;
==Line 32767==&lt;br /&gt;
When you have a program with a GOTO or a GOSUB and the line number does not exist - because you have not written it or have deleted it, when you RESequence the program the transfer line will be changed to 32767.  eg you will see GOTO 32767 which you never intended.&lt;br /&gt;
&lt;br /&gt;
==ODD or EVEN?==&lt;br /&gt;
Is variable N odd or even?&lt;br /&gt;
&lt;br /&gt;
You might use:&lt;br /&gt;
 100 X=(N=2*INT(N/2))+1 &lt;br /&gt;
which will set X=0 if N is even, and X=1 if N is odd.&lt;br /&gt;
&lt;br /&gt;
Faster:&lt;br /&gt;
 100 X=N AND 1&lt;br /&gt;
Try it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Check Alpha Lock==&lt;br /&gt;
A program using the joysticks requires the alpha lock is UP, a relic of the TI99/4 days.&lt;br /&gt;
&lt;br /&gt;
If your program requires the alpha lock to be DOWN for input etc you can instruct the console:&lt;br /&gt;
&lt;br /&gt;
Insert a dummy line CALL KEY(3, Z, Z)&lt;br /&gt;
&lt;br /&gt;
The use of key unit 3 tells the computer to treat the alpha lock as if it were down whilst the program is running, unless we reset.  Use of key unit 0 has no effect on alpha lock status. Key unit 5 will reset normal operation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Month number using POS==&lt;br /&gt;
Extract a month number, 1 to 12, when the first three letters of any month are entered. &lt;br /&gt;
&lt;br /&gt;
 100 INPUT &amp;quot;MONTH?&amp;quot;:M$&lt;br /&gt;
 110 M=(POS(&amp;quot;JANFEBMARAPRMAYJ&lt;br /&gt;
 UNJULAUGSEPOCTNOVDEC&amp;quot;,M$,1)+&lt;br /&gt;
 2)/3&lt;br /&gt;
 120 IF M&amp;lt;&amp;gt;INT(M) THEN 100&lt;br /&gt;
 130 PRINT &amp;quot;MONTH NUMBER IS &lt;br /&gt;
 &amp;quot;;M&lt;br /&gt;
&lt;br /&gt;
==In Extended Basic==&lt;br /&gt;
If you have a disk system you may wish for example to use a standard menu loader on each disk to load programs, which may be a mix of TI Basic and Extended Basic.  It is possible to run many TI Basic programs in Extended Basic, but some use the two character sets that Extended Basic has dropped and you receive an error.&lt;br /&gt;
&lt;br /&gt;
It is possible to create a small program on disk in merge format which you can then merge into your TI Basic program and they will run in Extended Basic. This routine requires you have a disk system and 32k expansion ram.&lt;br /&gt;
&lt;br /&gt;
First, in Extended Basic, type this code as shown and SAVE is as for example:&lt;br /&gt;
SAVE DSK1.VDP,MERGE&lt;br /&gt;
which will create a small file on disk in DV 163 format.&lt;br /&gt;
&lt;br /&gt;
1 CALL VDP&lt;br /&gt;
&lt;br /&gt;
32600 SUB VDP :: CALL INIT :: CALL LOAD(8194,37,194,63,240)&lt;br /&gt;
&lt;br /&gt;
32610 CALL LOAD(16368,80,79,67,72,65,82,37,58,80,79,75,69,86,32,37,168)&lt;br /&gt;
&lt;br /&gt;
32620 CALL LOAD(9530,2,224,37,20,3,0,0,0,2,5,48,48,2,6,37,2,205,133,2,134,37,17)&lt;br /&gt;
&lt;br /&gt;
32630 CALL LOAD(9552,17,252,4,192,2,1,0,1,2,2,37,1,2,3,18,0,212,131,4,32,32,20)&lt;br /&gt;
&lt;br /&gt;
32640 CALL LOAD(9574,208,4,9,80,2,32,3,0,2,1,37,2,2,2,0,8,2,7,11,0,2,8,7,0,193)&lt;br /&gt;
&lt;br /&gt;
32650 CALL LOAD(9599,1,192,193,193,180,97,133,145,135,21,1,113,136,6,198,145)&lt;br /&gt;
&lt;br /&gt;
32660 CALL LOAD(9615,135,21,1,113,136,210,70,10,198,177,137,220,198,2,131,37,10)&lt;br /&gt;
&lt;br /&gt;
32670 CALL LOAD(9632,17,240,4,32,32,36,16,6,2,224,37,20,3,0,0,0,4,32,32,32,4)&lt;br /&gt;
&lt;br /&gt;
32680 CALL LOAD(9653,192,216,0,131,124,2,224,131,224,4,96,0,112):: SUBEND&lt;br /&gt;
&lt;br /&gt;
32690 SUB CHAR(A,A$):: CALL LOAD(9500,A):: CALL LINK(&amp;quot;POCHAR&amp;quot;,A$):: SUBEND&lt;br /&gt;
&lt;br /&gt;
32700 SUB COLOR(A,B,C):: CALL LOAD(9492,8,15+A,(B-1)*16+C-1)&lt;br /&gt;
&lt;br /&gt;
32710 CALL LINK(&amp;quot;POKEV&amp;quot;):: SUBEND&lt;br /&gt;
&lt;br /&gt;
32720 END&lt;br /&gt;
&lt;br /&gt;
Now load your TI Basic program, check that it does not use a line number 1 or over 32000.  RESequence if required. If all clear merge in the little routine above:&lt;br /&gt;
&lt;br /&gt;
MERGE DSK1.VDP&lt;br /&gt;
&lt;br /&gt;
which will add the routine to your TI Basic program.  Save to disk (use a different name or disk to preserve the original TI Basic program) eg SAVE DSK1.TIBPROGX&lt;br /&gt;
Your TI Basic program will now run in Extended Basic even if it does use the extra character sets,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprites in TI BASIC==&lt;br /&gt;
You can have sprites if there is a special module inserted such as [[Using VDP with BASIC#Moving sprites in TI BASIC|mini-memory]], but this is how to have NO modules inserted and still have 32 sprites in TI Basic. You will need to use cassette files.&lt;br /&gt;
&lt;br /&gt;
This routine allows you to have 32 sprites in TI Basic, with NO modules or peripherals required. The sprites do not have automatic motion, and there is no CALL COINC, but the routine opens up the 32 graphic planes, and allows a character to be placed with single pixel precision. Sprites can be moved manually to give single pixel movement of characters if required.&lt;br /&gt;
&lt;br /&gt;
Now, with no module in place, we do not have POKEV available, so the puzzle is: how, using TI BASIC, can we change memory?&lt;br /&gt;
&lt;br /&gt;
TI Basic has one easy to use command which can change 8 bytes of memory very quickly... it is called CALL CHAR, and it writes these bytes into any area of VDP RAM mapped as &amp;#039;character definitions&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
[[VDP Registers]] shows how by changing VDP Register FIVE, we can move the SPRITE ATTRIBUTE LIST to any part of VDP RAM, INCLUDING the area the console considers to be the character definition table.&lt;br /&gt;
&lt;br /&gt;
If we can do this, then we can use CALL CHAR to write to VDP RAM in an area considered by the CPU to define characters, AND AT THE SAME TIME, define our sprites.&lt;br /&gt;
&lt;br /&gt;
So, the puzzle becomes one of: How do we change the VDP registers using no modules... CALL PEEKV is not available in ordinary TI BASIC.&lt;br /&gt;
&lt;br /&gt;
When you load a program from cassette, there is a HEADER at the start which tells the computer what you are loading and where to put it. Why don&amp;#039;t we use the header to place a value into VDP RAM to change the VDP REGISTER!!&lt;br /&gt;
&lt;br /&gt;
NB: If you have more than a cassette recorder, disconnect now! This article is for Console and Cassette ONLY. &lt;br /&gt;
&lt;br /&gt;
The first step is to set the VDP Register, and here is a general register changer ....&lt;br /&gt;
&lt;br /&gt;
Type in this program, then RUN it, with a blank tape in the recorder!&lt;br /&gt;
 10 REM FILES GENERATOR&lt;br /&gt;
 20 TO MODIFY VDP REGISTERS&lt;br /&gt;
 30 REM THANKS IT U.G. BOLOGNA, ITALY&lt;br /&gt;
 100 CALL CLEAR&lt;br /&gt;
 110 INPUT &amp;quot;REGISTER # 0-7&amp;quot;:R&lt;br /&gt;
 115 INPUT &amp;quot;VALUE (0-255)&amp;quot;:D `&lt;br /&gt;
 120 A=18429-(256*R+D)&lt;br /&gt;
 130 X$=CHR$(0)&amp;amp;CHR$(O)&amp;amp;CHRS(0)&lt;br /&gt;
 14O OPEN #1:&amp;quot;CS1&amp;quot;,OUTPUT,FIXED&lt;br /&gt;
 150 PRINT #1:X$&amp;amp;X$&amp;amp;CHR$(INT(A/256))&amp;amp;CHR$(A)&lt;br /&gt;
 160 CLOSE #1&lt;br /&gt;
 170 END&lt;br /&gt;
To use the program below, with sprites, you must ENTER the values:&lt;br /&gt;
 REGISTER=5, VALUE=15&lt;br /&gt;
With a value of 15, the sprite table occupies the same memory as the definitions of characters 144 to 159.&lt;br /&gt;
&lt;br /&gt;
If you enter a value of 14, the sprite details are in the same location as characters 128 to 145.&lt;br /&gt;
&lt;br /&gt;
After you have RUN the above program, you will have an odd file on tape.&lt;br /&gt;
&lt;br /&gt;
Do a FULL RESET by typing BYE and reselect TI BASIC.  Now LOAD the tape file as though it was a program, with OLD CS1. After you press ENTER at the end of the load, the screen will misbehave (watch for the colour black).&lt;br /&gt;
 &lt;br /&gt;
Now press an alphabetic key and then press ENTER.  Look .... &amp;quot;MEMORY FULL&amp;quot;!!!&lt;br /&gt;
 Type in NEW.&lt;br /&gt;
 The VDP register is now reset until you QUIT or BYE.&lt;br /&gt;
&lt;br /&gt;
Sprites can be placed on the screen as follows:&lt;br /&gt;
 CALL CHAR(144,&amp;quot;Y1X1F1C1Y2X2F2C2&amp;quot;) &lt;br /&gt;
   where Y1, X1 etc are values - 4 values for each sprite)&lt;br /&gt;
 eg CALL CHAR(144,&amp;quot;04037A0C02057B0B&amp;quot;) &lt;br /&gt;
 (that is 8 values for TWO sprites, TWO numbers per value)&lt;br /&gt;
Where each CALL CHAR carries the four parameters required for two sprites, with each parameter a two digit hexadecimal number.&lt;br /&gt;
 Y=Row (0-191), X=Column(0-255), F=ASCII+96, C=COLOR(0-15)&lt;br /&gt;
&lt;br /&gt;
 What is the HEX for decimal 122?:&lt;br /&gt;
 122/16= 7 remainder 10 (10=&amp;gt;A where &amp;gt; means HEX)&lt;br /&gt;
 7/16= 0 remainder 7 ( 7 = &amp;gt;7 )&lt;br /&gt;
 Therefore 122= &amp;gt;7A&lt;br /&gt;
&lt;br /&gt;
As we are defining two sprites at a time, if you only want one, the final 8 values will be D0000000 to mark the end of the sprite table. If you want two sprites you need to define the next character with a D and 17 zeroes. D0 is the hexadecimal equivalent of 208.&lt;br /&gt;
&lt;br /&gt;
NOTE: As with mini memory, we MUST terminate the sprite table with a value of 208. In other words the final sprite is defined with the values D0000000, &lt;br /&gt;
&lt;br /&gt;
No matter which is the highest value sprite, always end the definition with a hexadecimal equivalent to decimal 208. &lt;br /&gt;
&lt;br /&gt;
The following demo program builds an array H$ such that we can use this to build up the hexadecimal string required.&lt;br /&gt;
 Ready...&lt;br /&gt;
 1 REM IT U.G. BOLOGNA ITALY&lt;br /&gt;
 5 CALL CLEAR&lt;br /&gt;
 10 DIM(A$(16),H$(255)&lt;br /&gt;
 20 FOR P=1 TO 15&lt;br /&gt;
 30 A$(P)=SEG$(&amp;quot;0123456789ABCDEF&amp;quot;,P+1,1)&lt;br /&gt;
 35 NEXT P&lt;br /&gt;
 40 FOR P=0 TO 15&lt;br /&gt;
 45 K=16*P&lt;br /&gt;
 50 FOR J=0 TO 15&lt;br /&gt;
 55 H$(K+J)=A$(P)&amp;amp;A$(J)&lt;br /&gt;
 50 NEXT J&lt;br /&gt;
 65 NEXT P&lt;br /&gt;
 70 REM SPRITE MAGENTA DEMO&lt;br /&gt;
 75 F$=H$(128)&amp;amp;H$(64+96)&lt;br /&gt;
 80 F$=F$&amp;amp;H$(14-1)&amp;amp;H$(208)&lt;br /&gt;
 85 FOR Y=0 TO 191&lt;br /&gt;
 90 CALL HCHAR(12,12,144)&lt;br /&gt;
 95 CALL CHAR(144,H$(Y)&amp;amp;F$)&lt;br /&gt;
 100 NEXT Y&lt;br /&gt;
 105 GOTO 100&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming language]]&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Lantern_Software&amp;diff=50244</id>
		<title>Lantern Software</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Lantern_Software&amp;diff=50244"/>
		<updated>2019-06-10T14:40:15Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: add name of proprietor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A UK based TI99/4a softwarehouse run by Simon W Sorsbie, who went on to program for the C64.&lt;br /&gt;
&lt;br /&gt;
Games released on cassette included:&lt;br /&gt;
&lt;br /&gt;
[[Hunchback havoc]]&lt;br /&gt;
&lt;br /&gt;
Battlestar Attack&lt;br /&gt;
&lt;br /&gt;
Black Tower - a text based adventure game&lt;br /&gt;
&lt;br /&gt;
Hop It! - a Frogger clone.&lt;br /&gt;
&lt;br /&gt;
[[Category:Companies]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=User:Stephen_Shaw/sandbox&amp;diff=50212</id>
		<title>User:Stephen Shaw/sandbox</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=User:Stephen_Shaw/sandbox&amp;diff=50212"/>
		<updated>2019-03-09T19:29:00Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: easter egg added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TUNNELS OF DOOM&lt;br /&gt;
&lt;br /&gt;
Tunnels of Doom was a 1982 module made by Texas Instruments for the TI99/4 computer and was created by Kevin Kenney. The module contained code which required the loading of game data from cassette or disk. A sample adventure was sold with the module on disk or tape but subsequent adventure databases were developed by individual users using back-engineered editor programs.&lt;br /&gt;
&lt;br /&gt;
The module did not have an immediately playable game when you plugged it in, it required you to load a database from tape (slow) or from disk which was somewhat expensive (at the time) as  costly peripherals were required which were not widely owned. &lt;br /&gt;
&lt;br /&gt;
A UK computer game magazine was unimpressed and only gave the module three stars out of five, but it has proved popular with TI owners and has remained in play with quite a number of user written adventures being made available. The game has been so popular it has been recreated in java.&lt;br /&gt;
&lt;br /&gt;
Java: Tunnels of Doom Reboot (http://www.dreamcodex.com/todr.php) by Howard Kistler (with Kevin Kenney&amp;#039;s agreement), also has a conversion tool to allow the older third party adventures to be converted. &lt;br /&gt;
&lt;br /&gt;
Main gameplay was through the module, while game items- names, values, powers, graphics - were stored in the external databases and could be edited using verioud programs which were developed by third parties.&lt;br /&gt;
&lt;br /&gt;
An online manual is held by the Museum of Adventure Game History at https://www.mocagh.org/loadpage.php?getgame=tunnelsofdoom (click the pdf icon) with another copy at 99er.net: http://www.99er.net/download2/index.php?act=view&amp;amp;id=155&lt;br /&gt;
&lt;br /&gt;
Although the Wizard character (or equivalent- the name could be amended)  had limited defence capacity, the base coding left a gap for the Wizard - or any other player- to have armour with a rating of up to 37. How to do have increased shield protection...&lt;br /&gt;
&lt;br /&gt;
One player way:&lt;br /&gt;
1. Leave the shop without armour or shields but retain enough cash to buy some!&lt;br /&gt;
2. Go to an empty room (kill enemies, pick up things but if there is armour, go to a different room.&lt;br /&gt;
3. Select T (Trade)and select Opt 4 Shields,  and Who? = self&lt;br /&gt;
4. Congratulations you now have armour with a value of zero&lt;br /&gt;
5. Select T (Trade) Opt 3, Armour and you are about to get rid of armour with a value of zero:&lt;br /&gt;
6. Give to?  Just press ENTER which will drop your armour.&lt;br /&gt;
&lt;br /&gt;
Two ways beckon now:&lt;br /&gt;
Route A: &lt;br /&gt;
i. Who?  Select SELF&lt;br /&gt;
ii. Too much!!! Drop what? The armour with a value of zero.&lt;br /&gt;
iii. Go to the shop and buy any old armour.&lt;br /&gt;
iv. Go back to the room you dropped your worthless armour in.&lt;br /&gt;
&lt;br /&gt;
OR Route B (from 6 above):&lt;br /&gt;
a. T (Trade) shields, Who? Self&lt;br /&gt;
b. You have armour value 0 again and the room has armour value 0.&lt;br /&gt;
c. Leave and reenter.&lt;br /&gt;
&lt;br /&gt;
now from route A or B:&lt;br /&gt;
7. Who? Self&lt;br /&gt;
8. Too much to carry- drop? Drop the armour value 0 or whatever you purchased in Route B&lt;br /&gt;
9. You now carry armour with a value of 32, even if you are a Wizard.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
OR&lt;br /&gt;
Multiple players- say two players A and B.&lt;br /&gt;
1 One player must not purchase armour, the other player should purchase armour in the shop.&lt;br /&gt;
2 Go to empty room (see solo point 2)&lt;br /&gt;
3.both players Trade - Shields- Self&lt;br /&gt;
4.both players Trade - with other player- Armour&lt;br /&gt;
5. Both now have armour=32.&lt;br /&gt;
&lt;br /&gt;
Armour=32 can be increased to 37 using eg Repair Scroll etc.&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=User:Stephen_Shaw/sandbox&amp;diff=50211</id>
		<title>User:Stephen Shaw/sandbox</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=User:Stephen_Shaw/sandbox&amp;diff=50211"/>
		<updated>2019-03-08T14:38:58Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: add 2nd manual source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TUNNELS OF DOOM&lt;br /&gt;
&lt;br /&gt;
Tunnels of Doom was a 1982 module made by Texas Instruments for the TI99/4 computer and was created by Kevin Kenney. The module contained code which required the loading of game data from cassette or disk. A sample adventure was sold with the module on disk or tape but subsequent adventure databases were developed by individual users using back-engineered editor programs.&lt;br /&gt;
&lt;br /&gt;
The module did not have an immediately playable game when you plugged it in, it required you to load a database from tape (slow) or from disk which was somewhat expensive (at the time) as  costly peripherals were required which were not widely owned. &lt;br /&gt;
&lt;br /&gt;
A UK computer game magazine was unimpressed and only gave the module three stars out of five, but it has proved popular with TI owners and has remained in play with quite a number of user written adventures being made available. The game has been so popular it has been recreated in java.&lt;br /&gt;
&lt;br /&gt;
Java: Tunnels of Doom Reboot (http://www.dreamcodex.com/todr.php) by Howard Kistler (with Kevin Kenney&amp;#039;s agreement), also has a conversion tool to allow the older third party adventures to be converted. &lt;br /&gt;
&lt;br /&gt;
Main gameplay was through the module, while game items- names, values, powers, graphics - were stored in the external databases and could be edited using verioud programs which were developed by third parties.&lt;br /&gt;
&lt;br /&gt;
Although the Wizard character (or equivalent- the name could be amended)  had limited defence capacity, the base coding left a gap for the Wizard - or any other player- to have armour with a rating of up to 37.&lt;br /&gt;
&lt;br /&gt;
An online manual is held by the Museum of Adventure Game History at https://www.mocagh.org/loadpage.php?getgame=tunnelsofdoom (click the pdf icon) with another copy at 99er.net: http://www.99er.net/download2/index.php?act=view&amp;amp;id=155&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=User:Stephen_Shaw/sandbox&amp;diff=50210</id>
		<title>User:Stephen Shaw/sandbox</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=User:Stephen_Shaw/sandbox&amp;diff=50210"/>
		<updated>2019-03-08T14:35:43Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: add manual url&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TUNNELS OF DOOM&lt;br /&gt;
&lt;br /&gt;
Tunnels of Doom was a 1982 module made by Texas Instruments for the TI99/4 computer and was created by Kevin Kenney. The module contained code which required the loading of game data from cassette or disk. A sample adventure was sold with the module on disk or tape but subsequent adventure databases were developed by individual users using back-engineered editor programs.&lt;br /&gt;
&lt;br /&gt;
The module did not have an immediately playable game when you plugged it in, it required you to load a database from tape (slow) or from disk which was somewhat expensive (at the time) as  costly peripherals were required which were not widely owned. &lt;br /&gt;
&lt;br /&gt;
A UK computer game magazine was unimpressed and only gave the module three stars out of five, but it has proved popular with TI owners and has remained in play with quite a number of user written adventures being made available. The game has been so popular it has been recreated in java.&lt;br /&gt;
&lt;br /&gt;
Java: Tunnels of Doom Reboot (http://www.dreamcodex.com/todr.php) by Howard Kistler (with Kevin Kenney&amp;#039;s agreement), also has a conversion tool to allow the older third party adventures to be converted. &lt;br /&gt;
&lt;br /&gt;
Main gameplay was through the module, while game items- names, values, powers, graphics - were stored in the external databases and could be edited using verioud programs which were developed by third parties.&lt;br /&gt;
&lt;br /&gt;
Although the Wizard character (or equivalent- the name could be amended)  had limited defence capacity, the base coding left a gap for the Wizard - or any other player- to have armour with a rating of up to 37.&lt;br /&gt;
&lt;br /&gt;
An online manual is held by the Museum of Adventure Game History at https://www.mocagh.org/loadpage.php?getgame=tunnelsofdoom (click the pdf icon)&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=User:Stephen_Shaw/sandbox&amp;diff=50209</id>
		<title>User:Stephen Shaw/sandbox</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=User:Stephen_Shaw/sandbox&amp;diff=50209"/>
		<updated>2019-03-08T14:30:14Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: first draft of new article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TUNNELS OF DOOM&lt;br /&gt;
&lt;br /&gt;
Tunnels of Doom was a 1982 module made by Texas Instruments for the TI99/4 computer and was created by Kevin Kenney. The module contained code which required the loading of game data from cassette or disk. A sample adventure was sold with the module on disk or tape but subsequent adventure databases were developed by individual users using back-engineered editor programs.&lt;br /&gt;
&lt;br /&gt;
The module did not have an immediately playable game when you plugged it in, it required you to load a database from tape (slow) or from disk which was somewhat expensive (at the time) as  costly peripherals were required which were not widely owned. &lt;br /&gt;
&lt;br /&gt;
A UK computer game magazine was unimpressed and only gave the module three stars out of five, but it has proved popular with TI owners and has remained in play with quite a number of user written adventures being made available. The game has been so popular it has been recreated in java.&lt;br /&gt;
&lt;br /&gt;
Java: Tunnels of Doom Reboot (http://www.dreamcodex.com/todr.php) by Howard Kistler (with Kevin Kenney&amp;#039;s agreement), also has a conversion tool to allow the older third party adventures to be converted. &lt;br /&gt;
&lt;br /&gt;
Main gameplay was through the module, while game items- names, values, powers, graphics - were stored in the external databases and could be edited using verioud programs which were developed by third parties.&lt;br /&gt;
&lt;br /&gt;
Although the Wizard character (or equivalent- the name could be amended)  had limited defence capacity, the base coding left a gap for the Wizard - or any other player- to have armour with a rating of up to 37.&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Super_Sketch&amp;diff=50203</id>
		<title>Super Sketch</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Super_Sketch&amp;diff=50203"/>
		<updated>2019-01-25T10:58:17Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: spelling correction&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SUPER SKETCH drawing tablet.&lt;br /&gt;
&lt;br /&gt;
Super Sketch Sketch-Master Model G2400 from Personal Peripherals Inc 1984.&lt;br /&gt;
&lt;br /&gt;
Medium: Cartridge plus tablet. Required: Console only.  The tablet plugs into the module port and has all necessary software in the module.&lt;br /&gt;
&lt;br /&gt;
When graphics tablets can easily cost over GBP 300, you don&amp;#039;t expect too much for GBP 65... in fact SUPERSKETCH is a remarkable product at the price.&lt;br /&gt;
&lt;br /&gt;
[[Image:SKETCH.JPG|250px|right]]&lt;br /&gt;
&lt;br /&gt;
The most significant drawback is a feature of the VDP in our console-  when in bit map mode (hi res graphics), each character on screen is divided into 8 rows of 8 pixels. For each row of 8 pixels, only two colours are permitted. When using SuperSketch, this can cause &amp;quot;bleeding&amp;quot; problems when you try to place three colours in a row. With great care you can reduce the visual effects of this but it is a significant drawback.&lt;br /&gt;
&lt;br /&gt;
SUPERSKETCH uses a movable arm which can be used to trace a drawing, or merely used &amp;#039;freeform&amp;#039;. A full palette of colours is available, and a good choice of &amp;#039;brushes&amp;#039;. As drawing straight lines can be difficult, special facilities are provided to assist you. There is a &amp;quot;fill&amp;quot; command also, but if there is even a one pixel gap in the shape, the ink will run out and fill the screen!&lt;br /&gt;
&lt;br /&gt;
Once created, pictures can be saved to cassette ONLY, not to disk, not to printer, although owners with 32k ram may be able to patch in a screen dump program of their own via an interrupt switch (console mod required).&lt;br /&gt;
&lt;br /&gt;
Essentially a toy, Supersketch is a very interesting peripheral for the 99/4A, and seems strongly enough built to be used by the younger members of the family, who could find it to be a very expressive medium. A colour tv should be considered essential for this item! although it can be used with black and white.&lt;br /&gt;
&lt;br /&gt;
[[Category:Expansion]]&lt;br /&gt;
[[Category:Module]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Advertiser&amp;diff=50173</id>
		<title>Advertiser</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Advertiser&amp;diff=50173"/>
		<updated>2018-12-07T20:35:19Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: add space&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Advertiser or Advertizer was a very early TI module for the TI99/4.  &lt;br /&gt;
&lt;br /&gt;
Code written by TI France in February 1980 is known, but the module has only been seen with a TI label giving a date of 1981.   Only a German language version of the module has been recovered. English documentation from 1981 refers to the German language module which is labelled Advertizer.&lt;br /&gt;
&lt;br /&gt;
The module had only one purpose- to add extra CALLS to TI Basic.  It produced no menu entry and had no program to autostart, just code to load with the power up routine.&lt;br /&gt;
&lt;br /&gt;
Advertiser set aside some VDP RAM for its special requirements.  Because there was no indication the module had initialised VDP ram for itself, the first thing that it did was to turn the borders of the title screen purple to show VDP memory had been reserved.  Later, when a disk system was introduced and set aside some VDP ram for itself, the VDP memory check by Advertiser did not work and if a disk system was attached users had to type CALL FILES(9) followed by NEW to set aside VDP memory.&lt;br /&gt;
&lt;br /&gt;
The module is known to exist only as 8k GPL code, either as 2x4k or 1x8k eprom. Written in GPL it was a very early module written in GPL which had no GROM chips, the auto incrementing mode was handled by additional chips in the module.&lt;br /&gt;
&lt;br /&gt;
All TI Basic programs written for the module had to start CALL AD.&lt;br /&gt;
&lt;br /&gt;
It allowed the use of characters 32-95 for one character set and 96-159 for a different character set, they could also be the same but of differing colours.  Two commands added double height text, either up to 31 different letters using chars 32-95, or unlimited by using all chars 32-159.&lt;br /&gt;
&lt;br /&gt;
Extra commands included the ability to list items with bullet points; display a menu with single key selection, and quickly change colours for a character set.  &lt;br /&gt;
&lt;br /&gt;
It was used eg in conferences and shops to provide an advertising display, which could also be interactive.&lt;br /&gt;
&lt;br /&gt;
A few later modules also extended TI Basic with additional calls, for example the Personal Record Keeping module.&lt;br /&gt;
&lt;br /&gt;
The English documentation which has appeared differs slightly from the module that has been found, as the documentation refers to CALL ACCEPT whereas the module requires CALL A.   &lt;br /&gt;
&lt;br /&gt;
The module image was amended to load easily into the FG99 module by adding a second grom to the image,  containing a menu entry and an autostart jump to the title screen, which caused the power up routine to be called.&lt;br /&gt;
&lt;br /&gt;
Reworked documentation in html format is at http://shawweb.myzen.co.uk/stephen/3063.htm&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Advertiser&amp;diff=50172</id>
		<title>Advertiser</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Advertiser&amp;diff=50172"/>
		<updated>2018-12-07T20:34:58Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: Rephrase&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Advertiser or Advertizer was a very early TI module for the TI99/4.  &lt;br /&gt;
&lt;br /&gt;
Code written by TI France in February 1980 is known, but the module has only been seen with a TI label giving a date of 1981.   Only a German language version of the module has been recovered. English documentation from 1981 refers to the German language module which is labelled Advertizer.&lt;br /&gt;
&lt;br /&gt;
The module had only one purpose- to add extra CALLS to TI Basic.  It produced no menu entry and had no program to autostart, just code to load with the power up routine.&lt;br /&gt;
&lt;br /&gt;
Advertiser set aside some VDP RAM for its special requirements.  Because there was no indication the module had initialised VDP ram for itself, the first thing that it did was to turn the borders of the title screen purple to show VDP memory had been reserved.  Later, when a disk system was introduced and set aside some VDP ram for itself, the VDP memory check by Advertiser did not work and if a disk system was attached users had to type CALL FILES(9) followed by NEW to set aside VDP memory.&lt;br /&gt;
&lt;br /&gt;
The module is known to exist only as 8k GPL code, either as 2x4k or 1x8k eprom. Written in GPL it was a very early module written in GPL which had no GROM chips, the auto incrementing mode was handled by additional chips in the module.&lt;br /&gt;
&lt;br /&gt;
All TI Basic programs written for the module had to start CALL AD.&lt;br /&gt;
&lt;br /&gt;
It allowed the use of characters 32-95 for one character set and 96-159 for a different character set, they could also be the same but of differing colours.  Two commands added double height text, either up to 31 different letters using chars 32-95, or unlimited by using all chars 32-159.&lt;br /&gt;
&lt;br /&gt;
Extra commands included the ability to list items with bullet points; display a menu with single key selection, and quickly change colours for a character set.  &lt;br /&gt;
&lt;br /&gt;
It was used eg in conferences and shops to provide an advertising display, which could also be interactive.&lt;br /&gt;
&lt;br /&gt;
A few later modules also extended TI Basic with additional calls, for example the Personal Record Keeping module.&lt;br /&gt;
&lt;br /&gt;
The English documentation which has appeared differs slightly from the module that has been found, as the documentation refers to CALL ACCEPT whereas the module requires CALL A.   &lt;br /&gt;
&lt;br /&gt;
The module image was amended to load easily into the FG99 module by adding a second grom to the image,  containing a menu entry and an autostart jump to the title screen, which caused the power up routine to be called.&lt;br /&gt;
&lt;br /&gt;
Reworked documentation in html formatis at http://shawweb.myzen.co.uk/stephen/3063.htm&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Advertiser&amp;diff=50171</id>
		<title>Advertiser</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Advertiser&amp;diff=50171"/>
		<updated>2018-12-07T20:34:02Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: add link to Advertiser documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Advertiser or Advertizer was a very early TI module for the TI99/4.  &lt;br /&gt;
&lt;br /&gt;
Code written by TI France in February 1980 is known, but the module has only been seen with a TI label giving a date of 1981.   Only a German language version of the module has been recovered. English documentation from 1981 refers to the German language module which is labelled Advertizer.&lt;br /&gt;
&lt;br /&gt;
The module had only one purpose- to add extra CALLS to TI Basic.  It produced no menu entry and had no program to autostart, just code to load with the power up routine.&lt;br /&gt;
&lt;br /&gt;
Advertiser set aside some VDP RAM for its special requirements.  Because there was no indication the module had initialised VDP ram for itself, the first thing that it did was to turn the borders of the title screen purple to show VDP memory had been reserved.  Later, when a disk system was introduced and set aside some VDP ram for itself, the VDP memory check by Advertiser did not work and if a disk system was attached users had to type CALL FILES(9) followed by NEW to set aside VDP memory.&lt;br /&gt;
&lt;br /&gt;
The module is known to exist only as 8k GPL code, either as 2x4k or 1x8k eprom. Written in GPL it was a very early module written in GPL which had no GROM chips, the auto incrementing mode was handled by additional chips in the module.&lt;br /&gt;
&lt;br /&gt;
All TI Basic programs written for the module had to start CALL AD.&lt;br /&gt;
&lt;br /&gt;
It allowed the use of characters 32-95 for one character set and 96-159 for a different character set, they could also be the same but of differing colours.  Two commands added double height text, either up to 31 different letters using chars 32-95, or unlimited by using all chars 32-159.&lt;br /&gt;
&lt;br /&gt;
Extra commands included the ability to list items with bullet points; display a menu with single key selection, and quickly change colours for a character set.  &lt;br /&gt;
&lt;br /&gt;
It was used eg in conferences and shops to provide an advertising display, which could also be interactive.&lt;br /&gt;
&lt;br /&gt;
A few later modules also extended TI Basic with additional calls, for example the Personal Record Keeping module.&lt;br /&gt;
&lt;br /&gt;
The English documentation which has appeared differs slightly from the module that has been found, as the documentation refers to CALL ACCEPT whereas the module requires CALL A.   &lt;br /&gt;
&lt;br /&gt;
The module image was amended to load easily into the FG99 module by adding a second grom to the image,  containing a menu entry and an autostart jump to the title screen, which caused the power up routine to be called.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a href=&amp;quot;http://shawweb.myzen.co.uk/stephen/3063.htm&amp;gt;Reworked documentation&amp;lt;/a&amp;gt; in html format.&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Advertiser&amp;diff=50170</id>
		<title>Advertiser</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Advertiser&amp;diff=50170"/>
		<updated>2018-11-30T19:29:15Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: Description of very early and rare module.Advertiser&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Advertiser or Advertizer was a very early TI module for the TI99/4.  &lt;br /&gt;
&lt;br /&gt;
Code written by TI France in February 1980 is known, but the module has only been seen with a TI label giving a date of 1981.   Only a German language version of the module has been recovered. English documentation from 1981 refers to the German language module which is labelled Advertizer.&lt;br /&gt;
&lt;br /&gt;
The module had only one purpose- to add extra CALLS to TI Basic.  It produced no menu entry and had no program to autostart, just code to load with the power up routine.&lt;br /&gt;
&lt;br /&gt;
Advertiser set aside some VDP RAM for its special requirements.  Because there was no indication the module had initialised VDP ram for itself, the first thing that it did was to turn the borders of the title screen purple to show VDP memory had been reserved.  Later, when a disk system was introduced and set aside some VDP ram for itself, the VDP memory check by Advertiser did not work and if a disk system was attached users had to type CALL FILES(9) followed by NEW to set aside VDP memory.&lt;br /&gt;
&lt;br /&gt;
The module is known to exist only as 8k GPL code, either as 2x4k or 1x8k eprom. Written in GPL it was a very early module written in GPL which had no GROM chips, the auto incrementing mode was handled by additional chips in the module.&lt;br /&gt;
&lt;br /&gt;
All TI Basic programs written for the module had to start CALL AD.&lt;br /&gt;
&lt;br /&gt;
It allowed the use of characters 32-95 for one character set and 96-159 for a different character set, they could also be the same but of differing colours.  Two commands added double height text, either up to 31 different letters using chars 32-95, or unlimited by using all chars 32-159.&lt;br /&gt;
&lt;br /&gt;
Extra commands included the ability to list items with bullet points; display a menu with single key selection, and quickly change colours for a character set.  &lt;br /&gt;
&lt;br /&gt;
It was used eg in conferences and shops to provide an advertising display, which could also be interactive.&lt;br /&gt;
&lt;br /&gt;
A few later modules also extended TI Basic with additional calls, for example the Personal Record Keeping module.&lt;br /&gt;
&lt;br /&gt;
The English documentation which has appeared differs slightly from the module that has been found, as the documentation refers to CALL ACCEPT whereas the module requires CALL A.   &lt;br /&gt;
&lt;br /&gt;
The module image was amended to load easily into the FG99 module by adding a second grom to the image,  containing a menu entry and an autostart jump to the title screen, which caused the power up routine to be called.&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Newsgroup&amp;diff=50146</id>
		<title>Newsgroup</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Newsgroup&amp;diff=50146"/>
		<updated>2018-06-03T14:37:38Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: Add summary heading&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TI99/4a Newsgroups:&lt;br /&gt;
&lt;br /&gt;
Newsgroups or forums became a principal form of communication between small groups, and were well suited to keep TI99/4a users in touch with each other as it became uneconomic for small user groups to publish regular magazines. Users can advise each other of new developments and discoveries, ask for assistance, and point to stable web resources. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*. net.micro.ti was founded in 1984&lt;br /&gt;
&lt;br /&gt;
*. comp.sys.ti was formed as a part of the reconfiguring of Usenet in 1987&lt;br /&gt;
   now on google.groups, javascript mandatory, &lt;br /&gt;
   In first 5 months of 2018, 13 new topics with 53 posts.&lt;br /&gt;
   https://groups.google.com/forum/#!topic/comp.sys.ti/&lt;br /&gt;
&lt;br /&gt;
*. Tom Wills establishes a listserver @theriver.net in 1996 (which helps drive away traffic during that time from comp.sys.ti)&lt;br /&gt;
&lt;br /&gt;
*. Tom Wills&amp;#039;s hosting provider (The River) wants to start charging more as he&amp;#039;s using up a lot of bandwidth running his listserver, so he joins eGroups in December of 1999 and shifts operations to there&lt;br /&gt;
&lt;br /&gt;
*. eGroups is bought by Yahoo! and becomes Yahoo! Groups in 2000:&lt;br /&gt;
    now a restricted e-mail listserver. No posts visible to me.&lt;br /&gt;
&lt;br /&gt;
*. An AtariAge TI forum is started in 2009 and becomes the main TI hangout up to this date.     &lt;br /&gt;
    Very active, 5000 topics since 2009, 116,000 posts. Over 85 new topics in May 2018 alone.&lt;br /&gt;
    http://atariage.com/forums/forum/164-ti-994a-computers/&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Atariage&amp;diff=50145</id>
		<title>Atariage</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Atariage&amp;diff=50145"/>
		<updated>2018-06-03T14:27:01Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: Redirect atariage to generic Newsgroup page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#Redirect&lt;br /&gt;
[[Newsgroup]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Newsgroup&amp;diff=50144</id>
		<title>Newsgroup</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Newsgroup&amp;diff=50144"/>
		<updated>2018-06-03T14:24:38Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: summary of TI99/4a newsgroups&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TI99/4a Newsgroups:&lt;br /&gt;
&lt;br /&gt;
*. net.micro.ti was founded in 1984&lt;br /&gt;
&lt;br /&gt;
*. comp.sys.ti was formed as a part of the reconfiguring of Usenet in 1987&lt;br /&gt;
   now on google.groups, javascript mandatory, &lt;br /&gt;
   In first 5 months of 2018, 13 new topics with 53 posts.&lt;br /&gt;
   https://groups.google.com/forum/#!topic/comp.sys.ti/&lt;br /&gt;
&lt;br /&gt;
*. Tom Wills establishes a listserver @theriver.net in 1996 (which helps drive away traffic during that time from comp.sys.ti)&lt;br /&gt;
&lt;br /&gt;
*. Tom Wills&amp;#039;s hosting provider (The River) wants to start charging more as he&amp;#039;s using up a lot of bandwidth running his listserver, so he joins eGroups in December of 1999 and shifts operations to there&lt;br /&gt;
&lt;br /&gt;
*. eGroups is bought by Yahoo! and becomes Yahoo! Groups in 2000:&lt;br /&gt;
    now a restricted e-mail listserver. No posts visible to me.&lt;br /&gt;
&lt;br /&gt;
*. An AtariAge TI forum is started in 2009 and becomes the main TI hangout up to this date.     &lt;br /&gt;
    Very active, 5000 topics since 2009, 116,000 posts. Over 85 new topics in May 2018 alone.&lt;br /&gt;
    http://atariage.com/forums/forum/164-ti-994a-computers/&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Basic_Joystick_Programming&amp;diff=50062</id>
		<title>Basic Joystick Programming</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Basic_Joystick_Programming&amp;diff=50062"/>
		<updated>2017-12-24T21:12:20Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: /* Joystick and Keyboard control program */  Explain K+1=1 by reference&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article will demonstrate how to program in TI Basic for using a joystick to move a character, and also demonstrate how a program can take input from either a joystick or the keyboard.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Joystick input==&lt;br /&gt;
The CALL JOYST format is not ideally written for the TI99/4A. The row and column variables are reversed compared to the graphics commands, and the subprogram seems to assume the screen origin is at bottom left (it is actually at top left). &lt;br /&gt;
&lt;br /&gt;
The return variables are placed in the command as follows:&lt;br /&gt;
CALL JOYST(NUMBER,COLRETURN,ROWRETURN) &lt;br /&gt;
&lt;br /&gt;
whereas the graphics commands are in the form:&lt;br /&gt;
CALL HCHAR(ROW,COL,CODE) &lt;br /&gt;
&lt;br /&gt;
To move a character to the screen left, we need to decrease the value of the column. If the joystick is moved to the left, the column return variable is indeed negative, while movement to the right gives a positive return. &lt;br /&gt;
&lt;br /&gt;
However, the top of the screen is Row 1, so to move down the screen the row must be increased : move the joystick down and the row return variable is NEGATIVE. This can cause confusion very easily! The sign has to be changed to make this work! &lt;br /&gt;
&lt;br /&gt;
===Sample code===&lt;br /&gt;
If we wish to amend ROW and COL variables using the joystick, it is necessary to use: &lt;br /&gt;
 &amp;lt;code&amp;gt;100 CALL JOYST(1,COLRET,ROWRET)&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;110 ROW=ROW-ROWRET/4&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;120 COL=COL+COLRET/4&amp;lt;/code&amp;gt;&lt;br /&gt;
                &lt;br /&gt;
Notice the different signs used to amend the row and column variables. We have to divide by four because the CALL JOYST will only return 4, 0, or -4.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Which joystick==&lt;br /&gt;
To use the above in a program leaves one problem: you need to know which is joystick number one! This can be marked, but you can also scan both joysticks:&lt;br /&gt;
 &amp;lt;code&amp;gt;100 CALL JOYST(1,CR,RR)&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;110 CALL JOYST(2,CR2,RR2)&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;120 ROW=ROW-RR/4-RR2/4&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;130 COL=COL+CR/4+CR2/4  &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will take a little longer to process and you will have to see the effect in your program before you decide to use it. &lt;br /&gt;
&lt;br /&gt;
== Remember: the alphalock MUST be up==&lt;br /&gt;
for the joystick to work correctly&lt;br /&gt;
&lt;br /&gt;
== Interference with split keyboard ==&lt;br /&gt;
Common to all forms of Extended Basic I have tried, there is interference with the status returned when using CALL KEY with a split keyboard code together with a CALL JOYST. There is no solution. Here is the troublesome code area:&lt;br /&gt;
&lt;br /&gt;
Type and run this: &lt;br /&gt;
&lt;br /&gt;
100 CALL KEY(3,A,B) :: PRINT B;B;B ::  CALL JOYST(1,X,Y) :: GOTO 100&lt;br /&gt;
&lt;br /&gt;
Now hold down a key on the RIGHT hand side continuously. What you get is a lot of +1&amp;#039;s.. &lt;br /&gt;
&lt;br /&gt;
Using CALL KEY the second value returned tells you if a new key has been pressed. &lt;br /&gt;
&lt;br /&gt;
A +1 means a new key has been pressed. But you have just held the key down continuously, NO new key... &lt;br /&gt;
&lt;br /&gt;
Now instead hold down a key on the LEFT hand side of the keyboard. You MAY get a lot of -1 values, with the odd +1 value. &lt;br /&gt;
&lt;br /&gt;
Break the program and edit it to use JOYST(2, instead of JOYST(1,. Any change when you hold down left or right keys? &lt;br /&gt;
&lt;br /&gt;
These results are NOT what you might expect, and could well cause problems, especially if you use a CALL KEY to scan for the fire button AND check its status as well. &lt;br /&gt;
&lt;br /&gt;
==Joystick status==&lt;br /&gt;
When using CALL KEY there is a status return we can check to see if NO key has been pressed. With joysticks there is no status return, only the return variables. A status return can however be created. &lt;br /&gt;
&lt;br /&gt;
Instead of the CALL KEY &amp;quot;IF ST=0 THEN&amp;quot;, using CALL JOYST(1,X,Y) it is possible to use &amp;quot;IF X+2*Y=0 THEN&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Why multiply the second return by 2? Check through all the possible returns from the joystick and you will see that a simple addition, subtraction or multiplication will not return a unique answer to equate with &amp;quot;joystick central&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Refer to [[#Joystick and Keyboard control program|sample program]] found below.&lt;br /&gt;
&lt;br /&gt;
==Explanation of [[#Joystick and Keyboard control program|sample program]]  below==&lt;br /&gt;
&lt;br /&gt;
Amending the variables ROW and COL and checking to see if they are valid. To use HCHAR etc they must be from 1 to 24 or 32 respectively. Anything else will produce an error message and halt the program. &lt;br /&gt;
&lt;br /&gt;
It is possible to use lots of lines of coding in TI Basic:&lt;br /&gt;
 &amp;lt;code&amp;gt;200 IF ROW&amp;lt;1 THEN 210 ELSE 220&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;210 ROW=1&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;220 IF ROW&amp;gt;24 THEN 230 ELSE 240&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;230 ROW=24.....&amp;lt;/code&amp;gt;&lt;br /&gt;
and so on.&lt;br /&gt;
         &lt;br /&gt;
It is easier however to add to the ROW incremental line a value check which will reverse the increment if it places the value outside the limits.&lt;br /&gt;
&lt;br /&gt;
To do this we need to use the relational expressions.&lt;br /&gt;
&lt;br /&gt;
If a relational expression is TRUE it has a value of -1&lt;br /&gt;
&lt;br /&gt;
If a relational expression is FALSE it has a value of 0 (the computer sees this as &amp;quot;NOT -1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Thus PRINT(2=3) will appear as 0, but PRINT(2=2) will appear as -1.&lt;br /&gt;
                     &lt;br /&gt;
Dealing with the ROW first, if the variable ROW starts with a value of 1, and the joystick is pushed up, we must reverse the reduction of ROW. &lt;br /&gt;
&lt;br /&gt;
There are two expressions which must be true : if both ROW=1 and RR=4 then after we have added 1 to ROW we must deduct it, to leave it set to 1: &lt;br /&gt;
&lt;br /&gt;
ROW=ROW-RR/4+(ROW=1)*(RR=4)&lt;br /&gt;
&lt;br /&gt;
Now it is impossible for ROW to become less than 1.&lt;br /&gt;
&lt;br /&gt;
This has been developed further in the sample program which you will find at the bottom.&lt;br /&gt;
&lt;br /&gt;
A typical use of the joystick is to move a character around the screen, and this is what the sample program will do. To give greater flexibility, this program checks both joysticks, and also checks the keyboard (keys WERSDZXC). &lt;br /&gt;
&lt;br /&gt;
First the screen is cleared and the row and column variables are set to initial values. Our character is placed on screen and the joysticks and keyboard are scanned. &lt;br /&gt;
&lt;br /&gt;
The next line checks to see if an input has been made: if neither joystick nor the keyboard has been used, the program will go back and look at the joysticks/keyboard again. The plus sign between the relational expressions serves as an &amp;#039;OR&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
If the status of one keyboard unit is NOT zero, the program continues. &lt;br /&gt;
&lt;br /&gt;
Now the program is divided into two. If the keyboard has been used, the variable ST will have a non-zero value which causes the program to branch to the keyboard section. Otherwise it continues with the joystick section. &lt;br /&gt;
&lt;br /&gt;
The joystick section is a slight development of what has been discussed above. We are checking for both limits to the row variable. &lt;br /&gt;
&lt;br /&gt;
The keyboard section uses similar principles,but the limit checks are a little different: If the ROW variable has a value of 1, it cannot be decreased as (RW&amp;lt;&amp;gt;1) takes a value 0 (false) and no change is made. &lt;br /&gt;
&lt;br /&gt;
In the sample program a character is moved around the screen, but if you wish to leave a line of characters, just delete the line which places a blank (32) in the old position. &lt;br /&gt;
&lt;br /&gt;
That was quite a complex program to develop, so check it over thoroughly. The use of relational expressions can become quite complex, but they can both speed up execution time and save memory usage. &lt;br /&gt;
&lt;br /&gt;
==Joystick and Keyboard control program== &lt;br /&gt;
 &amp;lt;code&amp;gt;100 CALL CLEAR &amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;110 RW=12&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;120 CL=16&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;130 CALL HCHAR(RW,CL,42)&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;140 CALL KEY(1,K,ST)&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;150 CALL JOYST(1,CR,RR)&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;160 CALL JOYST(2,CR2,RR2)&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;170 IF (CR+2*RR&amp;lt;&amp;gt;0)+(CR2+2*RR2&amp;lt;&amp;gt;0)+(ST&amp;lt;&amp;gt;0)THEN 180 ELSE 140&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;180 IF ST THEN 240&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;190 CALL HCHAR(RW,CL,32)&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;200 RW=RW-RR/4-RR2/4+(RW=1)*((RR=4)+(RR2=4))-(RW=24)*((RR&amp;lt;0)+&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;  (RR2&amp;lt;0))&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;210 CL=CL+CR/4+CR2/4+(CL=1)*((CR&amp;lt;0)+(CR2&amp;lt;2))-(CL=32)*((CR&amp;gt;0)+&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;  (CR2&amp;gt;0))&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;220 CALL HCHAR(RW,CL,42)&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;230 GOTO 140&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;240 CALL HCHAR(RW,CL,32)&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;250 RW=RW-(RW&amp;lt;&amp;gt;1)*((K=5)+(K=4)+(K=6))+(RW&amp;lt;&amp;gt;24)*((K=15)+(K+1=1)+&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;  (K=14))&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;260 CL=CL-(CL&amp;lt;&amp;gt;1)*((K=4)+(K=2)+(K=15))+(CL&amp;lt;&amp;gt;32)*((K=6)+(K=3)+&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt; (K=14))&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;270 CALL HCHAR(RW,CL,42)&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;280 GOTO 140&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
The K+1=1 in line 250 needs to be written this way- see the explanation on the internal representation of  [[zero]]&lt;br /&gt;
when using TI BASIC and testing a split keyboard key value for the down arrow keys X and M.   The bug is not present in Extended Basic.&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Zero&amp;diff=50061</id>
		<title>Zero</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Zero&amp;diff=50061"/>
		<updated>2017-12-24T21:01:44Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: Add note re TI Basic bug when 0 isn&amp;#039;t really 0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Comparing variables against zero (0)==&lt;br /&gt;
&lt;br /&gt;
There is a bug which causes a problem if you program in TI BASIC:&lt;br /&gt;
&lt;br /&gt;
If you use the split keyboard as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
100 CALL KEY(1,A,B)&lt;br /&gt;
110 IF A&amp;lt;&amp;gt;0 THEN 100&lt;br /&gt;
120 PRINT &amp;quot;YOU PRESSED KEY X&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you press key X, using the split keyboard as above (the same is true with keyboard 2 and key M),  you should  expect the value of A to be zero and the program  to go to line 120.&lt;br /&gt;
&lt;br /&gt;
It doesn&amp;#039;t. &lt;br /&gt;
&lt;br /&gt;
To check the value of A really does go to zero try inserting another line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
105 PRINT A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you press X now you see the value zero appear on screen but the comparison still fails.&lt;br /&gt;
&lt;br /&gt;
Now amend line 110 to be:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
100 IF A+1&amp;lt;&amp;gt;1 THEN 100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mathematically the two lines 110 are equivalent, but in TI BASIC they do not behave the same.&lt;br /&gt;
&lt;br /&gt;
This is not a problem in Extended BASIC (any version).&lt;br /&gt;
&lt;br /&gt;
The difficulty is caused by the multiple ways that the radix 100 floating point system can represent a zero value. In particular, internally the comparison to zero (and only zero) should be made with &amp;#039;&amp;#039;only&amp;#039;&amp;#039; the first two bytes of a number. By changing the comparison to be with something other than 0, all bytes are compared and we do not have a problem.&lt;br /&gt;
&lt;br /&gt;
Call it a bug or a feature, but if you program in TI BASIC you need to be aware of this.   It also has the potential to cause a problem if you use radix 100 floating point in any other language.&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=MBX&amp;diff=50059</id>
		<title>MBX</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=MBX&amp;diff=50059"/>
		<updated>2017-11-02T18:02:37Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: correct actual cpu chip used in unit and identify speech chip&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just as TI pulled out of the market, Milton Bradley were producing a peripheral system which supplied a touch pad and a triple access joystick, plus speech recognition, this was the MBX Unit.&lt;br /&gt;
&lt;br /&gt;
MBX SYSTEM:&lt;br /&gt;
&lt;br /&gt;
First the system description, then the modules:&lt;br /&gt;
&lt;br /&gt;
[[Image:MBX.JPG|380px|right]]&lt;br /&gt;
&lt;br /&gt;
The MBX unit is a large box which connects to the console via the joystick socket AND the cassette port. Other connections are: 9v DC power supply. special joystick, and microphone.&lt;br /&gt;
&lt;br /&gt;
Technically the MBX Unit is a computer which uses the TI99/4a for game storage and for video display, the link is a form of serial port, using the TI99/4a&amp;#039;s left side joystick port.  The MBX unit has a 6809 cpu at 6MHz and a General Instrument SP1000 (GI8335) speech chip.  MBX games modules with speech could use speech with either the MBX or without the MBX but with a TI speech synth.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Facilities:&lt;br /&gt;
&lt;br /&gt;
Membrane keyboard on the MBX unit. This is used to control the unit, and in some games, an overlay is used giving various positions certain functions.&lt;br /&gt;
&lt;br /&gt;
Microphone: attached to a comfortable headset unit, this is used for speech recognition, allowing you to direct a program with your hands tied behind your back!&lt;br /&gt;
&lt;br /&gt;
Joystick: Very special joystick: fire button plus 3 control buttons. Analogue joystick...point it in the direction you want to travel: not limited to 8 directions. Also can be used as accelerometer: the faster you move the stick the faster your man moves. Also the &amp;#039;knob’ rotates and can be used to rotate a man or to provide some other input.&lt;br /&gt;
&lt;br /&gt;
None of the cartridges use ALL the MBX facilities and the joystick was never fully utilised. A simplified version later appeared with an Atari badge.&lt;br /&gt;
&lt;br /&gt;
In later years, Barry Boone produced assembly code to allow Extended Basic programmers to access the facilities of the unit using Extended Basic &amp;quot;Call LINKs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The modules for the MBX==&lt;br /&gt;
&lt;br /&gt;
===Modules that REQUIRE the MBX Unit===&lt;br /&gt;
TERRY TURTLES ADVENTURE, I’M HIDING. BASEBALL: REQUIRE the MBX unit to function. The other seven modules may be used on a 4A console without the MBX. although the MBX may add certain features.&lt;br /&gt;
&lt;br /&gt;
===MBX Speech===&lt;br /&gt;
All ten modules have speech output: the MBX can provide this (output via a loudspeaker in the MBX) or if you do not have the MBX. the Speech Synthesiser may be used.&lt;br /&gt;
&lt;br /&gt;
===The modules in detail===&lt;br /&gt;
&lt;br /&gt;
====TERRY TURTLES ADVENTURE====&lt;br /&gt;
Using Speech Recognition. You tell the Turtle where to go. The aim is to get him home before Winter. &lt;br /&gt;
&lt;br /&gt;
Quite easy even with the 3rd (most difficult) screen. &lt;br /&gt;
&lt;br /&gt;
For very young owners. &lt;br /&gt;
&lt;br /&gt;
Directions include Swim. Eat, Climb, Left, Right. 1, 2. and 3. Suggested for age 4 up,.&lt;br /&gt;
&lt;br /&gt;
====I&amp;#039;M HIDING====&lt;br /&gt;
Suggested for age 4 to 7, but some 1 year olds could benefit with supervision. &lt;br /&gt;
&lt;br /&gt;
Uses speech recognition. &lt;br /&gt;
&lt;br /&gt;
A simple game of hide and seek, with two screen layouts of jars. pencils, crayons, and brushes. A cast of very likeable characters. each with its own voice.&lt;br /&gt;
&lt;br /&gt;
Choose a location (type. colour and size) and receive clues such as &amp;#039;nearer&amp;#039; or &amp;#039;farther&amp;#039; or &amp;#039;very close&amp;#039;. Uses bit map mode graphics and very catchy music. &lt;br /&gt;
&lt;br /&gt;
Teaches classification and deduction.&lt;br /&gt;
&lt;br /&gt;
A younger child who may lack voice control can use a keyboard overlay which has pictures on it, to input guesses.&lt;br /&gt;
&lt;br /&gt;
The voice recognition is remarkably accurate by the way, but can be fooled. You first &amp;#039;teach&amp;#039; it your voice, then it compares your input to the taught library, and chooses the closest match.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Honey Hunt====&lt;br /&gt;
Described as for ages 5 to 8.   The only facility is speech synthesis. &lt;br /&gt;
&lt;br /&gt;
Honey Hunt is described as teaching patterning skills.&lt;br /&gt;
&lt;br /&gt;
Like all Milton Bradley educational games, it comes with a manual full of advice on how to use it educationally, and how to relate it to &amp;#039;normal&amp;#039; play activity. &lt;br /&gt;
&lt;br /&gt;
As a bee you have to collect pollen. from flowers which open and close in a pattern, avoiding spiders webs, a dragonfly, a killer bee, and a bear which likes pollen too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Soundtrack Trolley====&lt;br /&gt;
Soundtrack Trolley seems like an interesting variation on the Simon music game.&lt;br /&gt;
&lt;br /&gt;
====CHAMPIONSHIP BASEBALL====&lt;br /&gt;
Uses many of the MBX facilities. &lt;br /&gt;
&lt;br /&gt;
For two players. &lt;br /&gt;
&lt;br /&gt;
One player is pitching: he uses the keyboard to input the type of pitch, and the headset to direct his fielders where to throw the ball. &lt;br /&gt;
&lt;br /&gt;
The other player as batsman uses the joystick. The rotating top gives bat speed (which governs where the ball is likely to land) while the joystick itself directs the man to run. &lt;br /&gt;
&lt;br /&gt;
Baseball is not very well known here, but the module seems faithful to the game.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====SPACE BANDITS====&lt;br /&gt;
A sort of 3D game in which you collect gems and avoid aliens. &lt;br /&gt;
&lt;br /&gt;
The form of input is very difficult, and you may prefer the use of a normal joystick to the MBX. &lt;br /&gt;
&lt;br /&gt;
Voice recognition is available, but a trifle too slow. &lt;br /&gt;
&lt;br /&gt;
There may be a bug in the program, as the man seems to dislike turning one of the corners. &lt;br /&gt;
&lt;br /&gt;
A very difficult game to master, and the layout, being original, may appeal to those who like a challenging arcade game. &lt;br /&gt;
&lt;br /&gt;
The 3d tunnel is wrap around style, so even if the aliens do not shoot you, you could shoot yourself in the back!!! &lt;br /&gt;
Different.&lt;br /&gt;
&lt;br /&gt;
====SEWERMANIA====&lt;br /&gt;
May be best suited to younger players. as there is no urgency in the action. &lt;br /&gt;
&lt;br /&gt;
You must search a sewer for a hidden bomb, avoiding an alligator and rabid rats. &lt;br /&gt;
&lt;br /&gt;
The MBX unit adds speech recognition, which does add to this game. &lt;br /&gt;
&lt;br /&gt;
The MBX joystick is also used.&lt;br /&gt;
&lt;br /&gt;
The speech recognition allows you to &amp;#039;store&amp;#039; a command (&amp;#039;door&amp;#039;) which will be obeyed when possible.&lt;br /&gt;
&lt;br /&gt;
====BIG FOOT==== &lt;br /&gt;
The MBX adds nothing to this game. &lt;br /&gt;
&lt;br /&gt;
Similar to ALPINER, but much better put together. &lt;br /&gt;
&lt;br /&gt;
In Big Foot, you have to climb a mountain, collect treasures, and cage a Bigfoot, who is chucking snowballs at you! There is also an eagle ever ready snatch you from your rope ladder... &lt;br /&gt;
&lt;br /&gt;
You must climb up rope ladders, which you throw, and can climb down them or jump down one level only. You alternate picking up food and gold until all are gone, then head for the mountain top, and once there lower a cage onto BigFoot by moving the joystick forward (or pressing E, keyboard can be used too!), then lift it off screen by pulling back. &lt;br /&gt;
&lt;br /&gt;
You lose a life by being hit by a snowball- you can shelter under some ledges, on a rope if required. &lt;br /&gt;
&lt;br /&gt;
You lose a life by being carried off by an eagle- you can avoid this by noticing that the eagle will carry away the leftmost rope on the level you are on, so just throw up a dummy rope, then another to its right, and use that. &lt;br /&gt;
&lt;br /&gt;
You lose a life by falling more than one level &lt;br /&gt;
&lt;br /&gt;
There are six mountains, each with their own pattern of ledges, offering different strategic problems. Sound effects are good if you have speech synth OR MBX Unit.&lt;br /&gt;
&lt;br /&gt;
Patience has its rewards in this game! Not TOO difficult.&lt;br /&gt;
&lt;br /&gt;
====METEOR BELT====&lt;br /&gt;
The MBX joystick may be found better, but I am happy using an ordinary joystick.&lt;br /&gt;
&lt;br /&gt;
For 1 or 2 players, who must shoot down meteors and satellites and each other. &lt;br /&gt;
&lt;br /&gt;
There are conflicting tasks: to get a high score, or to destroy your opponent. &lt;br /&gt;
&lt;br /&gt;
Playing against the computer, high scores are difficult as the computer can play very aggressively, and once either of you have used up all your ships, its game end.&lt;br /&gt;
&lt;br /&gt;
The confusion of tasks does detract a little, I suggest you forget high scores, and play for who has the highest score at the end of each round.&lt;br /&gt;
&lt;br /&gt;
====SUPERFLY====&lt;br /&gt;
For younger players. &lt;br /&gt;
&lt;br /&gt;
Features speech recognition, and uses the MBX joystick rotating top. (CAN be used with a 4A alone). &lt;br /&gt;
&lt;br /&gt;
Control a fly armed with a deadly laser(?) and control those equally deadly spiders. &lt;br /&gt;
&lt;br /&gt;
Quite a simple game. Most players will reach at least screen 7 on first play!&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
I&amp;#039;m Hiding and Meteor Belt do require a COLOUR display&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Module]]&lt;br /&gt;
[[Category:Expansion]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=MBX&amp;diff=50049</id>
		<title>MBX</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=MBX&amp;diff=50049"/>
		<updated>2017-10-30T11:18:13Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: Add more technical info, note use of MBX in Extended Basic&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just as TI pulled out of the market, Milton Bradley were producing a peripheral system which supplied a touch pad and a triple access joystick, plus speech recognition, this was the MBX Unit.&lt;br /&gt;
&lt;br /&gt;
MBX SYSTEM:&lt;br /&gt;
&lt;br /&gt;
First the system description, then the modules:&lt;br /&gt;
&lt;br /&gt;
[[Image:MBX.JPG|380px|right]]&lt;br /&gt;
&lt;br /&gt;
The MBX unit is a large box which connects to the console via the joystick socket AND the cassette port. Other connections are: 9v DC power supply. special joystick, and microphone.&lt;br /&gt;
&lt;br /&gt;
Technically the MBX Unit is a computer which uses the TI99/4a for game storage and for video display, the link is a form of serial port, using the TI99/4a&amp;#039;s left side joystick port.  The MBX unit has a Z80 at 6MHz and a unique speech chip.  MBX games modules with speech could use speech with either the MBX or without the MBX but with a TI speech synth.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Facilities:&lt;br /&gt;
&lt;br /&gt;
Membrane keyboard on the MBX unit. This is used to control the unit, and in some games, an overlay is used giving various positions certain functions.&lt;br /&gt;
&lt;br /&gt;
Microphone: attached to a comfortable headset unit, this is used for speech recognition, allowing you to direct a program with your hands tied behind your back!&lt;br /&gt;
&lt;br /&gt;
Joystick: Very special joystick: fire button plus 3 control buttons. Analogue joystick...point it in the direction you want to travel: not limited to 8 directions. Also can be used as accelerometer: the faster you move the stick the faster your man moves. Also the &amp;#039;knob’ rotates and can be used to rotate a man or to provide some other input.&lt;br /&gt;
&lt;br /&gt;
None of the cartridges use ALL the MBX facilities and the joystick was never fully utilised. A simplified version later appeared with an Atari badge.&lt;br /&gt;
&lt;br /&gt;
In later years, Barry Boone produced assembly code to allow Extended Basic programmers to access the facilities of the unit using Extended Basic &amp;quot;Call LINKs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The modules for the MBX==&lt;br /&gt;
&lt;br /&gt;
===Modules that REQUIRE the MBX Unit===&lt;br /&gt;
TERRY TURTLES ADVENTURE, I’M HIDING. BASEBALL: REQUIRE the MBX unit to function. The other seven modules may be used on a 4A console without the MBX. although the MBX may add certain features.&lt;br /&gt;
&lt;br /&gt;
===MBX Speech===&lt;br /&gt;
All ten modules have speech output: the MBX can provide this (output via a loudspeaker in the MBX) or if you do not have the MBX. the Speech Synthesiser may be used.&lt;br /&gt;
&lt;br /&gt;
===The modules in detail===&lt;br /&gt;
&lt;br /&gt;
====TERRY TURTLES ADVENTURE====&lt;br /&gt;
Using Speech Recognition. You tell the Turtle where to go. The aim is to get him home before Winter. &lt;br /&gt;
&lt;br /&gt;
Quite easy even with the 3rd (most difficult) screen. &lt;br /&gt;
&lt;br /&gt;
For very young owners. &lt;br /&gt;
&lt;br /&gt;
Directions include Swim. Eat, Climb, Left, Right. 1, 2. and 3. Suggested for age 4 up,.&lt;br /&gt;
&lt;br /&gt;
====I&amp;#039;M HIDING====&lt;br /&gt;
Suggested for age 4 to 7, but some 1 year olds could benefit with supervision. &lt;br /&gt;
&lt;br /&gt;
Uses speech recognition. &lt;br /&gt;
&lt;br /&gt;
A simple game of hide and seek, with two screen layouts of jars. pencils, crayons, and brushes. A cast of very likeable characters. each with its own voice.&lt;br /&gt;
&lt;br /&gt;
Choose a location (type. colour and size) and receive clues such as &amp;#039;nearer&amp;#039; or &amp;#039;farther&amp;#039; or &amp;#039;very close&amp;#039;. Uses bit map mode graphics and very catchy music. &lt;br /&gt;
&lt;br /&gt;
Teaches classification and deduction.&lt;br /&gt;
&lt;br /&gt;
A younger child who may lack voice control can use a keyboard overlay which has pictures on it, to input guesses.&lt;br /&gt;
&lt;br /&gt;
The voice recognition is remarkably accurate by the way, but can be fooled. You first &amp;#039;teach&amp;#039; it your voice, then it compares your input to the taught library, and chooses the closest match.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Honey Hunt====&lt;br /&gt;
Described as for ages 5 to 8.   The only facility is speech synthesis. &lt;br /&gt;
&lt;br /&gt;
Honey Hunt is described as teaching patterning skills.&lt;br /&gt;
&lt;br /&gt;
Like all Milton Bradley educational games, it comes with a manual full of advice on how to use it educationally, and how to relate it to &amp;#039;normal&amp;#039; play activity. &lt;br /&gt;
&lt;br /&gt;
As a bee you have to collect pollen. from flowers which open and close in a pattern, avoiding spiders webs, a dragonfly, a killer bee, and a bear which likes pollen too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Soundtrack Trolley====&lt;br /&gt;
Soundtrack Trolley seems like an interesting variation on the Simon music game.&lt;br /&gt;
&lt;br /&gt;
====CHAMPIONSHIP BASEBALL====&lt;br /&gt;
Uses many of the MBX facilities. &lt;br /&gt;
&lt;br /&gt;
For two players. &lt;br /&gt;
&lt;br /&gt;
One player is pitching: he uses the keyboard to input the type of pitch, and the headset to direct his fielders where to throw the ball. &lt;br /&gt;
&lt;br /&gt;
The other player as batsman uses the joystick. The rotating top gives bat speed (which governs where the ball is likely to land) while the joystick itself directs the man to run. &lt;br /&gt;
&lt;br /&gt;
Baseball is not very well known here, but the module seems faithful to the game.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====SPACE BANDITS====&lt;br /&gt;
A sort of 3D game in which you collect gems and avoid aliens. &lt;br /&gt;
&lt;br /&gt;
The form of input is very difficult, and you may prefer the use of a normal joystick to the MBX. &lt;br /&gt;
&lt;br /&gt;
Voice recognition is available, but a trifle too slow. &lt;br /&gt;
&lt;br /&gt;
There may be a bug in the program, as the man seems to dislike turning one of the corners. &lt;br /&gt;
&lt;br /&gt;
A very difficult game to master, and the layout, being original, may appeal to those who like a challenging arcade game. &lt;br /&gt;
&lt;br /&gt;
The 3d tunnel is wrap around style, so even if the aliens do not shoot you, you could shoot yourself in the back!!! &lt;br /&gt;
Different.&lt;br /&gt;
&lt;br /&gt;
====SEWERMANIA====&lt;br /&gt;
May be best suited to younger players. as there is no urgency in the action. &lt;br /&gt;
&lt;br /&gt;
You must search a sewer for a hidden bomb, avoiding an alligator and rabid rats. &lt;br /&gt;
&lt;br /&gt;
The MBX unit adds speech recognition, which does add to this game. &lt;br /&gt;
&lt;br /&gt;
The MBX joystick is also used.&lt;br /&gt;
&lt;br /&gt;
The speech recognition allows you to &amp;#039;store&amp;#039; a command (&amp;#039;door&amp;#039;) which will be obeyed when possible.&lt;br /&gt;
&lt;br /&gt;
====BIG FOOT==== &lt;br /&gt;
The MBX adds nothing to this game. &lt;br /&gt;
&lt;br /&gt;
Similar to ALPINER, but much better put together. &lt;br /&gt;
&lt;br /&gt;
In Big Foot, you have to climb a mountain, collect treasures, and cage a Bigfoot, who is chucking snowballs at you! There is also an eagle ever ready snatch you from your rope ladder... &lt;br /&gt;
&lt;br /&gt;
You must climb up rope ladders, which you throw, and can climb down them or jump down one level only. You alternate picking up food and gold until all are gone, then head for the mountain top, and once there lower a cage onto BigFoot by moving the joystick forward (or pressing E, keyboard can be used too!), then lift it off screen by pulling back. &lt;br /&gt;
&lt;br /&gt;
You lose a life by being hit by a snowball- you can shelter under some ledges, on a rope if required. &lt;br /&gt;
&lt;br /&gt;
You lose a life by being carried off by an eagle- you can avoid this by noticing that the eagle will carry away the leftmost rope on the level you are on, so just throw up a dummy rope, then another to its right, and use that. &lt;br /&gt;
&lt;br /&gt;
You lose a life by falling more than one level &lt;br /&gt;
&lt;br /&gt;
There are six mountains, each with their own pattern of ledges, offering different strategic problems. Sound effects are good if you have speech synth OR MBX Unit.&lt;br /&gt;
&lt;br /&gt;
Patience has its rewards in this game! Not TOO difficult.&lt;br /&gt;
&lt;br /&gt;
====METEOR BELT====&lt;br /&gt;
The MBX joystick may be found better, but I am happy using an ordinary joystick.&lt;br /&gt;
&lt;br /&gt;
For 1 or 2 players, who must shoot down meteors and satellites and each other. &lt;br /&gt;
&lt;br /&gt;
There are conflicting tasks: to get a high score, or to destroy your opponent. &lt;br /&gt;
&lt;br /&gt;
Playing against the computer, high scores are difficult as the computer can play very aggressively, and once either of you have used up all your ships, its game end.&lt;br /&gt;
&lt;br /&gt;
The confusion of tasks does detract a little, I suggest you forget high scores, and play for who has the highest score at the end of each round.&lt;br /&gt;
&lt;br /&gt;
====SUPERFLY====&lt;br /&gt;
For younger players. &lt;br /&gt;
&lt;br /&gt;
Features speech recognition, and uses the MBX joystick rotating top. (CAN be used with a 4A alone). &lt;br /&gt;
&lt;br /&gt;
Control a fly armed with a deadly laser(?) and control those equally deadly spiders. &lt;br /&gt;
&lt;br /&gt;
Quite a simple game. Most players will reach at least screen 7 on first play!&lt;br /&gt;
&lt;br /&gt;
===Color===&lt;br /&gt;
I&amp;#039;m Hiding and Meteor Belt do require a COLOUR display&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Module]]&lt;br /&gt;
[[Category:Expansion]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=FlashROM99&amp;diff=50034</id>
		<title>FlashROM99</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=FlashROM99&amp;diff=50034"/>
		<updated>2017-09-14T13:00:59Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: add mention of finalgrom&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FlashROM99&lt;br /&gt;
&lt;br /&gt;
Produced in 2016, FlashROM99 was a circuit board designed by Ralph Benzinger which plugged into the cartridge slot on a TI99/4a, and allowed an SDHC memory card to be plugged into it allowing access to up to 171 different modules stored in the SDHC card. Different cards could be inserted so that the 171 limit was not an issue.&lt;br /&gt;
&lt;br /&gt;
A user able to download files and transfer them to the root directory of an SDHC card was able to make an immediate start with no greater knowledge or skill. &lt;br /&gt;
&lt;br /&gt;
To begin, copy up to 171 cartridge image files onto an SD or SDHC card. Switch off the TI 99 and plug in the FlashROM 99, then insert the SD card into the FlashROM 99. Switch on the TI 99 and wait until the activity indicator on the FlashROM 99 is no longer lit.Press any key to bring up the TI menu screen. &lt;br /&gt;
&lt;br /&gt;
Some module dumps made for other purposes could be used but some required modification (a simple inversion using a Python script) and multi-file modules required the parts to be concatenated. A few modules could not operate with the board due to size or various bank switching approaches. The board will not run any Extended Basic but makes available some other languages, although the various forths still require a disk system.&lt;br /&gt;
&lt;br /&gt;
A good collection of the required module images can be found on ftp://ftp.whtech.com/Cartridges/FlashROM99/. These include some newer programs such as Flappy Bird.&lt;br /&gt;
&lt;br /&gt;
The board contained a 32M RAM which permitted module images to run in their normal address space. &lt;br /&gt;
&lt;br /&gt;
Although there is no GRAM in the design, module files modified to run from disk with Editor Assembler loader option 5 (eg program format) could be modified to work with FlashROM99 and stored on the SDHC card, no longer requiring a disk drive - but as they require to work in the address space of the TI 32k ram expansion, that expansion ram must be available for the FlashRAM99 to move the code into.&lt;br /&gt;
&lt;br /&gt;
An initial design incorporated a capacitor/resister on the right hand side of the board which caused difficulties for disk access when using a TI disk controller. Subsequent removal of the 1nF capacitor solved this problem.&lt;br /&gt;
&lt;br /&gt;
The board contains an LED which lit to indicate BUSY or used a flash code to communicate some errors (eg bad SDHC card)  (Do nothing until the LED goes out!) and a reset switch which reloaded the menu and reset on board memory. The instruction was to only use the module reset switch when the TI99/4a master title screen was displayed. &lt;br /&gt;
&lt;br /&gt;
The project was fully described on https://endlos99.github.io/flashrom99/&lt;br /&gt;
&lt;br /&gt;
The board could be fitted into an old TI99/4a Romox module, or 3d printed modules were being produced.&lt;br /&gt;
&lt;br /&gt;
A subsequent project [[FinalGROM]] used emulated grom and a modified  file structure allowing over 171 images per card, but was compatible with the cartridge image files used by FlashROM. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware| ]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=GRAM_Kracker&amp;diff=50033</id>
		<title>GRAM Kracker</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=GRAM_Kracker&amp;diff=50033"/>
		<updated>2017-09-14T12:59:34Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: /* Can I transfer Gram Kracker files into my HSGPL? */  add link to snug article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;#039;&amp;#039;&amp;#039;Gram Kracker&amp;#039;&amp;#039;&amp;#039; is device sold by Miller Graphics that plugs into the cartridge port on your console. The device allows you to dump cartridges to diskette and then load those files into the Gram Kracker. This allows you to run the cartridge without physically using it. Because it is in memory it also allows you to change/modify if you want to.&lt;br /&gt;
&lt;br /&gt;
Please refer to the articles: [[Gram Kracker usage]] and [[GRAM Kracker format]]&lt;br /&gt;
&lt;br /&gt;
The Gram Kracker could also have its memory expanded to 80K and this allows the user to save and load the TI Console GROMS into the GK as well. Not only the regular TI OS but TI BASIC as well. Like the cartridges this means you can change/modify the console GROMs too. One example would be to dump the Cassette recorder routines and add something else.&lt;br /&gt;
&lt;br /&gt;
==Are there any tutorials or how-tos on getting started with a Gram Kracker?==&lt;br /&gt;
&lt;br /&gt;
The [ftp://ftp.whtech.com/datasheets%20and%20manuals/Hardware/Millers%20Graphics/gram%20kracker%20manual.pdf manual] can be found on the FTP server of WHTech.&lt;br /&gt;
&lt;br /&gt;
We have a detailed description how to [[Gram Kracker usage | use the Gram Kracker]] here on ninerpedia.&lt;br /&gt;
&lt;br /&gt;
==Can I modify the contents in my Gram Kracker?==&lt;br /&gt;
Yes, if you have the memory expansion. When you go into the Gram Kracker menu you will see an option 5 for editing memory. You should probably go to the WHTECH site and get the manual for the Gram Kracker on how to use the memory editor.&lt;br /&gt;
&lt;br /&gt;
==Can I still use cartridges with the Gram Kracker?==&lt;br /&gt;
Yes. If you plug a cartridge into the port on the very top/back of the Gram Kracker it will be used rather than the GK memory space. If you insert a cartridge while the console is on just make sure to hit the Reset Switch.&lt;br /&gt;
&lt;br /&gt;
==Can I transfer Gram Kracker files into my HSGPL?==&lt;br /&gt;
Yes. There is a transfer utility provided on the [[SNUG]] website call GKRACK and it will create an HSGPL format file from a Gram Kracker file.&lt;br /&gt;
&lt;br /&gt;
==When I go to load a module into the Gram Kracker I get an error &amp;quot;Write Protect Active&amp;quot;, what should I do?==&lt;br /&gt;
This error comes up when it cannot write to the either Bank 1 or Bank 2. Typically this is either because Switch 4 is not in the appropriate position (Bank 1 or Bank 2), or because a cartridge is plugged into the Gram Kracker. When a cartridge is plugged in then that cartridge is the memory space and not the Gram Kracker.&lt;br /&gt;
&lt;br /&gt;
==When I startup with my Gram Kracker the menu screen has messed up data, what should I do?==&lt;br /&gt;
More than likely the memory space for the cartridges is corrupt. Put the fifth switch into the &amp;quot;Loader On&amp;quot; position and then reset the system. Choose &amp;quot;1 FOR GRAM KRACKER&amp;quot; at the menu. Once in there choose option 3 to &amp;quot;Init Module Space&amp;quot; and follow the instructions. This clears out the module space.&lt;br /&gt;
&lt;br /&gt;
==How can I tell if my Gram Kracker has the memory expansion?==&lt;br /&gt;
The easiest method is to go into the Gram Kracker menu and if you see an option 4 and 5 then you have the memory expansion. Also you could open up the Gram Kracker and see that all the sockets have chips in them.&lt;br /&gt;
&lt;br /&gt;
==How come some of my Gramkracker files cannot be converted for use on the HSGPL?==&lt;br /&gt;
One problem that was identified are with files with the Myarc Backup Bit set. The solution is to run the Myarc Backup Reset program on the GramKracker files and then do the conversion.&lt;br /&gt;
&lt;br /&gt;
==How do I run Plato based software with a GramKracker?==&lt;br /&gt;
Once you have converted the Plato cartridge to disk files (with the GramKracker) you need to use a Sector Editor to search and change some code. In the Sector Editor search for occurences of &amp;quot;020C0F00&amp;quot; and replace it with &amp;quot;020C1000&amp;quot;. You should find a single occurence in two difference files. That&amp;#039;s it!&lt;br /&gt;
&lt;br /&gt;
==How many cartridges will the Gram Kracker hold?==&lt;br /&gt;
The Gram Kracker will hold one cartridge in memory. I tried loading multiple cartridges but they just over-wrote each other.&lt;br /&gt;
&lt;br /&gt;
==I loaded Extended Basic into the Gram Kracker but when I use it my TI locks up, what should I do?==&lt;br /&gt;
There is a problem with running Extended Basic and if you have Switch 4 in either the &amp;quot;Bank 1&amp;quot; or &amp;quot;Bank 2&amp;quot; position. Memory has to be write protected so make sure this switch is in the &amp;quot;W/P&amp;quot; position.&lt;br /&gt;
&lt;br /&gt;
Note: I confirmed this error with my Gram Kracker. I also have a Rave99 Keyboard adapter and my console groms loaded into the GK. My keyboard would not work properly after this error. If you run into this error you should reset and reload your Gram Kracker because I think the memory space gets corrupted.&lt;br /&gt;
&lt;br /&gt;
==I loaded my Gram Kracker but when I come back later it is empty, what is wrong?==&lt;br /&gt;
The Gram Kracker has a battery that provides low power to keep the data in memory. More than likely your batttery is dead. Take off all the screws on the outside of the case and it will come apart. You should see the battery in there and you can simply replace it.&lt;br /&gt;
&lt;br /&gt;
== If I edit the contents of memory in my Gram Kracker can I save it so I don&amp;#039;t lose it?==&lt;br /&gt;
Yes, and you should. If the battery goes dead or anything else corrupts the memory space then you want to have something you can quickly reload.&lt;br /&gt;
&lt;br /&gt;
The same process that you use to save modules or console GROMs can be followed. For cartridges just don&amp;#039;t plug in a cartridge and that way it will take it from the Gram Kracker. For console GROMs, keep Switches 2 or 3 in the &amp;quot;Gram 0&amp;quot; and &amp;quot;Gram 1-2&amp;quot; positions and it will take it from there.&lt;br /&gt;
&lt;br /&gt;
==What can be done with editing the memory space of modules or GROMs?==&lt;br /&gt;
Anything. In short you could completely re-write a program or make modifications to existing ones. For example, Extended Basic has an auto-load feature that spends a couple of seconds search DSK1 for a program with the name &amp;quot;LOAD&amp;quot;. If this is annoying you could disable that feature.&lt;br /&gt;
&lt;br /&gt;
There is document on WHTECH that is about 36 pages long and has some great examples of things done with a Gram Kracker. You can find a copy at the following location:&lt;br /&gt;
&lt;br /&gt;
ftp://ftp.whtech.com/user%20groups/Los%20Angeles%20user%20group/Kracker_Facts.pdf&lt;br /&gt;
&lt;br /&gt;
Thanks to Ernie Pergrem for pointing this out!&lt;br /&gt;
&lt;br /&gt;
== What do the switches on the Gram Kracker do?==&lt;br /&gt;
Switch 1: GK OFF / Normal / Reset This is a simple one. The switch will only rest in the Normal or the GK OFF position. It will not sit in the Reset postion. If you want to use the GK then leave it in the Normal position. If you want to disable the GK then put it in the GK OFF position. If at any time you want to Reset your TI, just press it down and let go.&lt;br /&gt;
&lt;br /&gt;
Switch 2: Gram 0 / OpSys This switch is tell the TI to either load either the internal TI GROMS (OpSys) or to load the GROMS stored in the GK (Gram 0). NOTE: If your GK does not have the memory installed or you have not loaded Gram 0 with data then your TI won&amp;#039;t start properly if it is in the Gram 0 position.&lt;br /&gt;
&lt;br /&gt;
Switch 3: Gram 1-2 / TI Basic This switch is to tell the TI to either load the internal console Basic (TI Basic) or to load the GROMS stored in the GK (Gram 1-2). OTE: If your GK does not have the memory installed or you have not loaded Gram 0 with data then your TI won&amp;#039;t start properly if it is in the Gram 0 position.&lt;br /&gt;
&lt;br /&gt;
Switch 4: Bank 1 / &amp;quot;W/P&amp;quot; / Bank 2 This is the WriteProtect switch for the GK. It is used to make either Bank 1 or Bank 2 of the memory writeable. If it is in the W/P position then they are not writeable. You use this switch when you want to load something into the GK.&lt;br /&gt;
&lt;br /&gt;
Switch 5: Loader On / Loader Off When you turn on the TI with the GK installed you will come to the choice menu. With the GK is in &amp;quot;Loader On&amp;quot; position then you will see Gram Kracker as option 1 in the menu. If the GK is in the &amp;quot;Loader Off&amp;quot; position then you will see TI Basic as option 1. If you are working with the GK to change it or save modules then you want it on. If you are just using your TI then you want it off.&lt;br /&gt;
&lt;br /&gt;
==Are the file formats for the PGram+ card and the MG GramKracker the same?==&lt;br /&gt;
Yes, they are the same. One thing to note is that the MG GramKracker files have extra RAM to override the console GROMS which can&amp;#039;t be done on the PGRAM+.&lt;br /&gt;
&lt;br /&gt;
[[Category:Module]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=MESS_Troubleshooting&amp;diff=50032</id>
		<title>MESS Troubleshooting</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=MESS_Troubleshooting&amp;diff=50032"/>
		<updated>2017-09-14T12:59:06Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: /* Screen is black */  add links to snug article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== On startup ==&lt;br /&gt;
&lt;br /&gt;
=== Error message concerning shared object file (Linux) ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q: When trying to start mess I&amp;#039;m getting an error message &amp;quot;error while loading shared libraries: libSDL_ttf-2.0.so.0: cannot open shared object file: No such file or directory&amp;quot;.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
A: You must install SDL support, in this case the TTF library is missing. Check your software installation and add the required libraries.&lt;br /&gt;
&lt;br /&gt;
=== Screen is black ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q: The system does not start. The screen remains black.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
A1 &amp;#039;&amp;#039;&amp;#039;(GRAMKracker)&amp;#039;&amp;#039;&amp;#039;: You have activated the GRAMKracker support, you have set the GK DIP switches to point to GRAM 0 (instead of OpSys), and you have not inserted the GRAMKracker cartridge, or the cartridge is empty. Please read the GK manual.&lt;br /&gt;
&lt;br /&gt;
A2 &amp;#039;&amp;#039;&amp;#039;(HSGPL)&amp;#039;&amp;#039;&amp;#039;: You switched on the [[HSGPL]] without previously uploading an operating system to the HSGPL. As the HSGPL is always active for the SGCPU, you will encounter the same problem there. &lt;br /&gt;
&lt;br /&gt;
The HSGPL is a buffered memory card which replaces the console&amp;#039;s ROM and GROM content. When you turn it on, MESS automatically unplugs all memory in the console until you turn off the card again. When you buy an HSGPL card you get a preloaded system. To achieve this in MESS, you have to set the HSGPL configuration switch to &amp;quot;Flash&amp;quot;. This allows access to the card but prevents it from taking control. Now you can use a tool like DSRLDR to flash the (emulated) ROMs on the card using a ROM package. When done, you must copy the desired operating system version from the backup positions in the card to the location expected by the system (ROM and GROM). I have written a simple tool to perform this step. Finally, put the switch to the &amp;quot;on&amp;quot; position and reset the emulator.&lt;br /&gt;
&lt;br /&gt;
The HSGPL was sold by the System 99&amp;#039;er User Group ([[SNUG]]), so you should ask them to provide you with a suitable ROM package.&lt;br /&gt;
&lt;br /&gt;
=== Strange error message on startup ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q: Emulator refuses to start, outputs &amp;quot;Could not load controller file &amp;amp;#964;îÇµà«&amp;amp;#964;Ö&amp;amp;#9617;µò&amp;amp;#8976;w%d x %d.cfg&amp;quot;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
A: You have attempted to start an emulation using MESSUI (version 0.142 and higher). There is a bug in MESSUI which causes a corrupted line to be inserted in the configuration file. As it seems this happens when you set the properties in the context menu of the system. To fix this problem, load the configuration file (systemName.ini or mess.ini) into an editor, search for a line starting with &amp;quot;ctrlr&amp;quot; in the configuration files (systemName.ini and mess.ini), remove this line, and save the file again. &lt;br /&gt;
&lt;br /&gt;
There is currently no work-around except to avoid setting properties in MESSUI. It is recommended to use [[Alternative MESS front-ends|another front-end]] instead of MESSUI.&lt;br /&gt;
&lt;br /&gt;
=== Error loading multicart: no pcb found ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q: I&amp;#039;m getting this message on startup.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
A: You seem to have attempted to mount a cartridge using the (long obsoleted) &amp;quot;bin&amp;quot; format. Please use only [[MESS multicart system | RPK packages]] as cartridges. You can find almost all known cartridges on the FTP server of whtech. &lt;br /&gt;
&lt;br /&gt;
== During runtime ==&lt;br /&gt;
&lt;br /&gt;
=== Plugging in a cartridge ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q: When I plug in a cartridge at runtime, the emulator resets, and then no cartridge is shown.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
A: MESS 0.140 saves the currently mounted media to a system-specific ini file. You need to set &amp;#039;&amp;#039;writeconfig&amp;#039;&amp;#039; to 1 in mess.ini. Note that all inserted media will be automounted on subsequent starts. &lt;br /&gt;
&lt;br /&gt;
New releases of MESS may require to recreate the ini file; this is possible with the command line switch &amp;#039;&amp;#039;-createconfig&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== RS232/PIO output hangs ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Q: When I try to output a file through RS232 or PIO, the computer seems to hang.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
A: You have probably forgotten to &amp;quot;insert&amp;quot; an image into the RS232 or PIO device. Check the file manager and define an output file (similar to inserting a disk image into a drive). When printing to PIO or RS232, the contents are appended to the image file.&lt;br /&gt;
&lt;br /&gt;
[[Category:MESS]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=SNUG&amp;diff=50031</id>
		<title>SNUG</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=SNUG&amp;diff=50031"/>
		<updated>2017-09-14T12:55:37Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: amend snug web address&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;system-99 user-group (snug) &lt;br /&gt;
&lt;br /&gt;
Contacts: Harold Becker in Mannheim and [[Harald Glaab]] in Aschaffenburg, both Germany.&lt;br /&gt;
&lt;br /&gt;
Produced hardware (with supporting firmware) for the TI99/4a community.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The products offered are created exclusively in their free time by our Club members and assembled at home and offered at cost.. Because of minimum parts orders, we offer these cards to our members first as needed and any surplus cards are offered to non-members and other users-groups without profit at cost.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
External website of SNUG: New 2017: https://www.s-n-u-g.de/home/index_e.php&lt;br /&gt;
(formerly at http://snug.blogdrive.eu/snug/home/index.htm)&lt;br /&gt;
&lt;br /&gt;
The SNUG external website contains files ending .p99. These are TI Program files. You can download them to your PC and then transfer them with a communication program to your TI. They are &amp;quot;TIFILES&amp;quot; so they will transfer appropriately (preceding sentences taken from FAQ contributed by mizapf 2010). Transfer from the PC through a terminal program, TI-IBM or Magic File Manipulator. By removing the first 128 bytes of the file (for example with Memory Manager 3.0 ) you can run the remaining binary file. (from SNUG website 2014).&lt;br /&gt;
&lt;br /&gt;
Products include:&lt;br /&gt;
&lt;br /&gt;
==ASCSI==&lt;br /&gt;
&lt;br /&gt;
Advanced SCSI Card. Produced 1997, Listed as sold out.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ascsi_pcb.jpg|250px|right]]&lt;br /&gt;
&lt;br /&gt;
* Compatible with the WHTECH SCSI-Controller &lt;br /&gt;
* Up to 7 SCSI-drives is supported, with the actual DSR with a capacity of up to 248MB per drive &lt;br /&gt;
* Other SCSI devices (CD-Rom, Streamer ...) are supported but the actual DSRs are not available. &lt;br /&gt;
* High speeds through P-DMA &lt;br /&gt;
* Easy update of the DSR through FLASH-EPROMS &lt;br /&gt;
* Usable with the original Console or SGCPU&lt;br /&gt;
&lt;br /&gt;
The card was built  around 1997. It was based on the WHTech SCSI card, however,  improved with a MACH circuit and with a revised DSR. This rebuild was also a reaction on delivery delays of the WHTech card to Europe. &lt;br /&gt;
&lt;br /&gt;
The card proved to be very reliable, useable with the TI or the Geneve, and very fast due to its improved DMA performance. It is based on the SCSI controller chip 53C80. &lt;br /&gt;
&lt;br /&gt;
Credits for this card go to &lt;br /&gt;
*Michael Becker (SNUG, hardware design, PLD development, documentation) &lt;br /&gt;
*Jürgen Stelter (TIW, PCB design, component procurement) &lt;br /&gt;
*Götz Feuerstein (Beta tester) &lt;br /&gt;
*Wolfgang Betzl (TI-Club Berlin)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BwG==&lt;br /&gt;
-Diskcontroller. Produced 1990. No longer available due to lack of chipset but second hand may be available.&lt;br /&gt;
&lt;br /&gt;
* Diskette Controller with Double-sided, Double-density capability &lt;br /&gt;
* Supports up to four disk drives &lt;br /&gt;
* Step rate is selectable &lt;br /&gt;
* On-board clock software is compatible with the [[Triple Tech]] Card from CorComp. &lt;br /&gt;
* Time stamp for each file in the FDS. &lt;br /&gt;
* Display of the date and time on the Titlescreen &lt;br /&gt;
* Emulation of the offered DSDD-Formats from Texas Instruments (16 Sectors per track) &lt;br /&gt;
* Usable with the original Console or [[SNUG#SGCPU|SGCPU]]&lt;br /&gt;
&lt;br /&gt;
This was the first major hobbyist-designed card built for the German market, and was developed as a response to the collapse of Atronic as a local source for Double-Density floppy disk controllers. &lt;br /&gt;
&lt;br /&gt;
Both CorComp and Myarc cards were still available at the time, but they were difficult to acquire in Europe. &lt;br /&gt;
&lt;br /&gt;
The card and its DSR were designed by three  individuals: &lt;br /&gt;
*Michael Becker (hardware), &lt;br /&gt;
*Christopher Winter (software), &lt;br /&gt;
*Harald Glaab (Software). &lt;br /&gt;
&lt;br /&gt;
Over 105 of these cards were sold, mostly in Europe, although a few of them were sold to US customers. The cards use the WD1773 FDC chip. &lt;br /&gt;
&lt;br /&gt;
Production of additional units ceased due to lack of sources for additional WD1773 chips&lt;br /&gt;
..&lt;br /&gt;
&lt;br /&gt;
==EVPC==&lt;br /&gt;
* Enhanced Video Processor Card and release 2.&lt;br /&gt;
* Commenced 1995, release two was still listed for sale in 2014.&lt;br /&gt;
* Compatible with the Mechatronic 80-column card &lt;br /&gt;
* Video processor v9938 or v9958 used &lt;br /&gt;
* Simple update of the DSR through Flash-technology &lt;br /&gt;
* Supports all of the graphics modes of the TI99/4A &lt;br /&gt;
* Textmode is 24*80 columns &lt;br /&gt;
* The different graphics modes are 512 * 424 pixels and up to 256 colors and 8 sprites. &lt;br /&gt;
* Mouse support (not with the use of the V9958) &lt;br /&gt;
* No external Interrupt cables necessary when use (REPL99x) in the original Console. &lt;br /&gt;
* Usable with the original Console or SGCPU&lt;br /&gt;
&lt;br /&gt;
The release 2 card requires a monitor to be capable of a horizontal sync as low as 15kHz and there no longer seems to be a monitor capable of this.&lt;br /&gt;
&lt;br /&gt;
==HRD 16==&lt;br /&gt;
High-Speed RAMdisk, produced 1998, listed as sold out.&lt;br /&gt;
&lt;br /&gt;
* Software compatible with the Horizon 4000 (tm) Ramdiskseries. &lt;br /&gt;
* Expandable up to 3 Megabytes (which is more than 9 Ramdisks of 1440 Sectors) &lt;br /&gt;
* In combination with the SGCPU transfer speed is doubled through the 16-bit Bus &lt;br /&gt;
* DSR can be also placed in Eproms (not possible with actual Horizon ROS) &lt;br /&gt;
* Backup power is through a Lithium battery (min. 5 years) &lt;br /&gt;
* Better file security through a new method of reset switching. &lt;br /&gt;
* Usable with the original Console or SGCPU&lt;br /&gt;
&lt;br /&gt;
==HSGPL==&lt;br /&gt;
High Speed Graphics Programming Language Card. Please refer to article [[HSGPL]]&lt;br /&gt;
&lt;br /&gt;
GROM / GRAM - Card with (up to) 18 module pages. Produced 1995, listed as sold out.&lt;br /&gt;
&lt;br /&gt;
* Up to 16 Modules in ROM and 2 Modules in RAM in the Peripheral Expansion Box. &lt;br /&gt;
* Programming the Modules and DSR without removing the Card through Flash-EEPROMS &lt;br /&gt;
* All of the storage area from Grom0 to Grom7 and Rom6000 is on the Card, no original-ROM necessary. &lt;br /&gt;
* 4-time ROM -banking for every existing GROM-Base. &lt;br /&gt;
* No switches needed  Switching from Module to Module is by means of REVIEW MODULE LIBRARY(tm) or through the altered GROM 0 from Winfried Winkler.&lt;br /&gt;
* Usable with the original Console or SGCPU&lt;br /&gt;
* Requirements: 32K Memory and disk system.&lt;br /&gt;
&lt;br /&gt;
==SGCPU== &lt;br /&gt;
Second Generation CPU Card. Produced 1996, listed as sold out. (Also referenced as TI99/4P but lacking TI&amp;#039;s consent).&lt;br /&gt;
&lt;br /&gt;
* Displaces the Console into the Peripheral Expansion Box &lt;br /&gt;
* Keyboard inferface for MF2-keyboards (AT) with hardware reset and load interrupt &lt;br /&gt;
* Joystick and original keyboard over an adapter supported &lt;br /&gt;
* Optional cassette interface planned. &lt;br /&gt;
* Memory expansion of 32 KBytes onboard. &lt;br /&gt;
* [[SuperAMS]] up to 1024 KB is possible &lt;br /&gt;
* All of the memory expansion is on a 16-bit Bus.&lt;br /&gt;
* Support for further 16-bit peripherals is planned. &lt;br /&gt;
* Optional: Support for single-step mode in the TI-Debugger,&lt;br /&gt;
* load-interrupt is synchronized (only 1 pulse) &lt;br /&gt;
* HSGPL and EVPC(2) must be used with the SGCPU as TI99/a is absolutely necessary!&lt;br /&gt;
&lt;br /&gt;
==SPVMC==&lt;br /&gt;
Speech and Voice Memory Card. Produced 1999. Still listed for sale.&lt;br /&gt;
&lt;br /&gt;
* Standalone replacement for the Speech Synthesizer. &lt;br /&gt;
As many as 8 Speech ROMs of 64 Kilobytes each through emulation in Flash-Roms is possible. Switching is through DSR commands. &lt;br /&gt;
* Complete Speech emulation in English from the Terminal Emulator II in DSR has been implemented (Winfried Winkler). &lt;br /&gt;
* Easy update of the DSR and voice memory through FLASH-EPROMS. &lt;br /&gt;
* Usable with the original Console or SGCPU&lt;br /&gt;
&lt;br /&gt;
[[Category:Companies]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=FinalGROM99&amp;diff=50025</id>
		<title>FinalGROM99</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=FinalGROM99&amp;diff=50025"/>
		<updated>2017-08-15T19:47:09Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: redirect from possible other string&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[FinalGROM]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=FinalGROM&amp;diff=50024</id>
		<title>FinalGROM</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=FinalGROM&amp;diff=50024"/>
		<updated>2017-08-15T19:45:10Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: add sub headings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FinalGROM 99 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Produced in 2017, FinalGROM 99 was a circuit board designed by Ralph Benzinger which plugged into the cartridge slot on a TI99/4a, and allowed an SDHC memory card to be plugged into it allowing access to almost unlimited module images including many forms of [[Extended Basic]]. The FinalGROM permitted a file structure on the SDHC card of several folders which could be nested.&lt;br /&gt;
&lt;br /&gt;
A user able to download files and transfer them to  an SDHC card was able to make an immediate start with no greater knowledge or skill. &lt;br /&gt;
&lt;br /&gt;
The FinalGROM99 used a programmable array to emulate TI&amp;#039;s GROM chips, making it possible to run extracted cartridge images which used the GROM technology. This meant that many module images no longer required a separate 32k ram to run in. However the FinalGROM99 was still able to run cartridge programs converted to or in the case of more modern programs, written for EA5 format (eg for [[FlashROM99]]  but then still required the 32k ram to run them in.&lt;br /&gt;
&lt;br /&gt;
==Setting Up==&lt;br /&gt;
To begin, create folders on your SDHC card for your images- for example Games, Educational etc.  Each of these folders may then contain additional subfolders to keep menu lists short- Games for example may be A-M, N-Z and 32k required (to keep separate those program requiring the 32k ram peripheral). Then transfer the .bin images to the folders on the card.&lt;br /&gt;
&lt;br /&gt;
Switch off the TI 99 and plug in the FinalGROM99, then insert the SDHC card into the FinalGROM99. Switch on the TI 99 and wait until the activity indicator on the cartridge is no longer lit. Press any key to bring up the TI menu screen. Select FinalGROM99 for the first folder listing then navigate with alphabetic keys.&lt;br /&gt;
&lt;br /&gt;
Module dumps were still subject to the peripheral limitations of the original modules, so that LOGO required 32k ram and ADVENTURE required disk or cassette operation. And some MBX modules would still refuse to work if they could not find an MBX system.&lt;br /&gt;
&lt;br /&gt;
A good collection of the required module images can be found on ftp://ftp.whtech.com/Cartridges/FinalGROM99/. These include some newer programs.&lt;br /&gt;
&lt;br /&gt;
The board contained  RAM emulating GROM and RAM in the usual module address space,  but if the program was written to use the 32k peripheral address space, that was still required. &lt;br /&gt;
&lt;br /&gt;
The project was fully described on https://endlos99.github.io/finalgrom99/ &lt;br /&gt;
&lt;br /&gt;
The board could be fitted into an old TI99/4a module, or 3d printed modules were being produced.&lt;br /&gt;
&lt;br /&gt;
==Reset switches and LED==&lt;br /&gt;
The FinalGROM99 module has two reset switches.  The right hand button causes the TI console to reset to its title screen, but if you have loaded a TI module it will still be available.  To reload the FinalGROM99 menu list of programs, when the TI is at the title screen (and only then) press the left reset button on the cartridge. Now press a key.&lt;br /&gt;
&lt;br /&gt;
The board contains an LED which lit to indicate BUSY or used a flash code to communicate some errors (eg bad SDHC card) (Do nothing until the LED goes out!)&lt;br /&gt;
&lt;br /&gt;
==AID KEY (FCTN 7)==&lt;br /&gt;
&lt;br /&gt;
The FinalGROM99 module could also use the TI consoles AID key (FCTN 7). When a list of programs was on the TI screen, pressing AID produced a question mark at bottom right. You could then enter a letter corresponding to a program on the list.  IF there was no help text, you returned to the menu.  If there was help text this was displayed and could for example tell you what keys to use, what peripherals were optional or how to play the game.  The text files were added to the folders on the SDHC card, limited to 32 character width and about 150 lines. Long AID files were pages with the usual comma and full stop keys on the TI keyboard.&lt;br /&gt;
&lt;br /&gt;
The rules were that the AID text file:&lt;br /&gt;
Must be in the same folder as the program&lt;br /&gt;
Must have the same filename as the main bin file, defined as:&lt;br /&gt;
i. If there was a Grom file than that file name eg moduleG.bin would have a help file moduleG.txt&lt;br /&gt;
ii If there was no grom file but there was a file ending in C then that filename eg modC.bin to modC.txt&lt;br /&gt;
iii. if the filename was gamemodule.bin then the aid file would be gamemodule.txt&lt;br /&gt;
&lt;br /&gt;
If you needed blank lines in your text file these needed a single space.&lt;br /&gt;
&lt;br /&gt;
==Updating the module OS==&lt;br /&gt;
&lt;br /&gt;
The FinalGROM99 was written to permit its onboard systems to be updated by an undate file on an SDHC card. Using a .pld file update, at worst you would need to redo or go back to an old .pld file. However using the more extreme update using an .avr file, if anything goes wrong, the module can be bricked and require more direct reprogramming using a suitable device. Caution therefore: Never have a file on your SDHC card with a filename finishing with the extension .avr.&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=FinalGROM&amp;diff=50023</id>
		<title>FinalGROM</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=FinalGROM&amp;diff=50023"/>
		<updated>2017-08-15T19:41:46Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: Create new page for FinalGROM99&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FinalGROM 99 &lt;br /&gt;
&lt;br /&gt;
Produced in 2017, FinalGROM 99 was a circuit board designed by Ralph Benzinger which plugged into the cartridge slot on a TI99/4a, and allowed an SDHC memory card to be plugged into it allowing access to almost unlimited module images including many forms of [[Extended Basic]]. The FinalGROM permitted a file structure on the SDHC card of several folders which could be nested.&lt;br /&gt;
&lt;br /&gt;
A user able to download files and transfer them to  an SDHC card was able to make an immediate start with no greater knowledge or skill. &lt;br /&gt;
&lt;br /&gt;
The FinalGROM99 used a programmable array to emulate TI&amp;#039;s GROM chips, making it possible to run extracted cartridge images which used the GROM technology. This meant that many module images no longer required a separate 32k ram to run in. However the FinalGROM99 was still able to run cartridge programs converted to or in the case of more modern programs, written for EA5 format (eg for [[FlashROM99]]  but then still required the 32k ram to run them in.&lt;br /&gt;
&lt;br /&gt;
To begin, create folders on your SDHC card for your images- for example Games, Educational etc.  Each of these folders may then contain additional subfolders to keep menu lists short- Games for example may be A-M, N-Z and 32k required (to keep separate those program requiring the 32k ram peripheral). Then transfer the .bin images to the folders on the card.&lt;br /&gt;
&lt;br /&gt;
Switch off the TI 99 and plug in the FinalGROM99, then insert the SDHC card into the FinalGROM99. Switch on the TI 99 and wait until the activity indicator on the cartridge is no longer lit. Press any key to bring up the TI menu screen. Select FinalGROM99 for the first folder listing then navigate with alphabetic keys.&lt;br /&gt;
&lt;br /&gt;
Module dumps were still subject to the peripheral limitations of the original modules, so that LOGO required 32k ram and ADVENTURE required disk or cassette operation. And some MBX modules would still refuse to work if they could not find an MBX system.&lt;br /&gt;
&lt;br /&gt;
A good collection of the required module images can be found on ftp://ftp.whtech.com/Cartridges/FinalGROM99/. These include some newer programs.&lt;br /&gt;
&lt;br /&gt;
The board contained  RAM emulating GROM and RAM in the usual module address space,  but if the program was written to use the 32k peripheral address space, that was still required. &lt;br /&gt;
&lt;br /&gt;
The FinalGROM99 module has two reset switches.  The right hand button causes the TI console to reset to its title screen, but if you have loaded a TI module it will still be available.  To reload the FinalGROM99 menu list of programs, when the TI is at the title screen (and only then) press the left reset button on the cartridge. Now press a key.&lt;br /&gt;
&lt;br /&gt;
The board contains an LED which lit to indicate BUSY or used a flash code to communicate some errors (eg bad SDHC card) (Do nothing until the LED goes out!)&lt;br /&gt;
&lt;br /&gt;
The project was fully described on https://endlos99.github.io/finalgrom99/ &lt;br /&gt;
&lt;br /&gt;
The board could be fitted into an old TI99/4a module, or 3d printed modules were being produced.&lt;br /&gt;
&lt;br /&gt;
The FinalGROM99 module could also use the TI consoles AID key (FCTN 7). When a list of programs was on the TI screen, pressing AID produced a question mark at bottom right. You could then enter a letter corresponding to a program on the list.  IF there was no help text, you returned to the menu.  If there was help text this was displayed and could for example tell you what keys to use, what peripherals were optional or how to play the game.  The text files were added to the folders on the SDHC card, limited to 32 character width and about 150 lines. Long AID files were pages with the usual comma and full stop keys on the TI keyboard.&lt;br /&gt;
&lt;br /&gt;
The rules were that the AID text file:&lt;br /&gt;
Must be in the same folder as the program&lt;br /&gt;
Must have the same filename as the main bin file, defined as:&lt;br /&gt;
i. If there was a Grom file than that file name eg moduleG.bin would have a help file moduleG.txt&lt;br /&gt;
ii If there was no grom file but there was a file ending in C then that filename eg modC.bin to modC.txt&lt;br /&gt;
iii. if the filename was gamemodule.bin then the aid file would be gamemodule.txt&lt;br /&gt;
&lt;br /&gt;
If you needed blank lines in your text file these needed a single space.&lt;br /&gt;
&lt;br /&gt;
The FinalGROM99 was written to permit its onboard systems to be updated by an undate file on an SDHC card. Using a .pld file update, at worst you would need to redo or go back to an old .pld file. However using the more extreme update using an .avr file, if anything goes wrong, the module can be bricked and require more direct reprogramming using a suitable device. Caution therefore: Never have a file on your SDHC card with a filename finishing with the extension .avr.&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=TIDIR&amp;diff=50008</id>
		<title>TIDIR</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=TIDIR&amp;diff=50008"/>
		<updated>2017-03-13T10:22:41Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: Added direct link to project for anyone using Noscript etc etc.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TI99DIR is a Windows program (built with Windows XP) written by Fred Kaal for use with PC emulators of the TI99/4a. It runs perfectly in Linux with the WINE emulator. Fred released the program for free use by anyone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:tidir.png|400px|thumb|right|screenshot of TI99DIR in action]]&lt;br /&gt;
&lt;br /&gt;
TI99/4a emulators running on a PC can use a PC file to represent a TI file, or to represent a TI disk. There are several formats of TI Disk from single sided single density upwards, but the emulators use basically two different ways of representing TI disks as files.&lt;br /&gt;
&lt;br /&gt;
TI99DIR allows you to create emulated TI disks and move files between them, or convert disk format. It can access files creates with Barry Boone&amp;#039;s [[Archiver]].&lt;br /&gt;
&lt;br /&gt;
TI99DIR directly allows you to examine the contents of an emulated TI disk, including reading DV80 files, listing programs, and since v4.2a viewing TI Artist pictures. &lt;br /&gt;
&lt;br /&gt;
Since v5.2b it has been able to show MyArt images.&lt;br /&gt;
&lt;br /&gt;
Supports compact Flash disk image copying for the nanoPEB and Compact Flash 7 devices.&lt;br /&gt;
&lt;br /&gt;
Fred&amp;#039;s current web page with the current TI DIR (6.2a) is at:&lt;br /&gt;
&lt;br /&gt;
http://www.ti99-geek.nl/    (Projects-&amp;gt; Ti99Dir)&lt;br /&gt;
&lt;br /&gt;
Direct link to project page: http://www.ti99-geek.nl/Projects/ti99dir/ti99dir.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fred was inducted into the TI99ers Hall of Fame on June 24, 2007&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=User_talk:Tim&amp;diff=50007</id>
		<title>User talk:Tim</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=User_talk:Tim&amp;diff=50007"/>
		<updated>2017-03-13T10:19:41Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: reply to comment on renaming&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Welcome to &amp;#039;&amp;#039;Ninerpedia&amp;#039;&amp;#039;!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [[Help:Contents|help pages]].&lt;br /&gt;
Again, welcome and have fun! [[User:NinerAdmin|NinerAdmin]] 19:08, 4 September 2014 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I Have created a new page TI99DIR and redirected it to TIDIR- the least disruptive we are allowed. In theory you can rename a page which creates automatic redirects but that isn&amp;#039;t allowed here.&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=TI99DIR&amp;diff=50006</id>
		<title>TI99DIR</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=TI99DIR&amp;diff=50006"/>
		<updated>2017-03-13T10:14:23Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: add a redirect to TIDIR from TI99DIR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[TIDIR]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=SXB&amp;diff=49989</id>
		<title>SXB</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=SXB&amp;diff=49989"/>
		<updated>2016-10-31T10:44:21Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: /* SXBrief */  amend tense to past tense&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SXB (Super Extended Basic) by J and KH SOFTWARE&lt;br /&gt;
&lt;br /&gt;
Do not confuse with the module from Triton called [[Triton Super Extended BASIC]] - this article refers to a disk based commercial program to extend the facilities of any [[Extended BASIC]].&lt;br /&gt;
&lt;br /&gt;
Media: DISK and Manual. Requires disk system and 32k and Extended BASIC.&lt;br /&gt;
&lt;br /&gt;
SXB is a collection of 100 utilities in machine code, which you can call up in your own Extended Basic programs using CALL LlNK(&amp;quot;NAME&amp;quot;,INPUT/OUTPUT LIST)&lt;br /&gt;
&lt;br /&gt;
==Designed purpose==&lt;br /&gt;
The main use of SXB (and the one which makes it worth the price tag) is to build your own data base program: if you wish, a [[Personal Record Keeping]] Program which does what the module doesn&amp;#039;t, faster, and uses the 24k area of the 32k ~ ram. You can design a general purpose data base or a specialised one, the choice is yours.&lt;br /&gt;
&lt;br /&gt;
==Tools provided==&lt;br /&gt;
The manual is divided into various sections, the first of course dealing with setting up the DATABASE: the actual data is held in a single string array, and various utilities are provided for handling the data in the array. The array is filled in the normal manner, by inputting data, formatting it to fixed length fields (utility provided) and concatenating each &amp;quot;page&amp;quot; of data into one element of the array.&lt;br /&gt;
&lt;br /&gt;
There is a pretty fast sort utility which knocks spots off the PRK module (not difficult!) and utilities to insert, delete, and replace individual items. The general purpose &amp;quot;update&amp;quot; is also available. A utility is provided to build lots of specialised data bases from one general base... all very quickly. &lt;br /&gt;
&lt;br /&gt;
To assist you, there are STRING ARRAY ROUTINES, including encryption routines, and the facility to view on screen the contents of a string array: even after a BREAKpoint. The facility is provided to change characters, eg all dashes to spaces, all lower case A&amp;#039;s to upper case A&amp;#039;s and so on.&lt;br /&gt;
&lt;br /&gt;
There is a group of STRING ROUTINES, very useful in setting up the fixed length fields, or encoding strings of spaces or zeros. There is a more powerful SEG$, and a utility to translate ASCII characters to their HEX values (&amp;quot;A&amp;quot;=&amp;quot;4l&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If memory space is short, there are INTEGER routines which allow you to pack four integers where normally the TI stores one number. This is useful for data packing, but does NOT give the speed increase associated with integer work. Those CALL LlNKs take some time after all!&lt;br /&gt;
&lt;br /&gt;
==VDP Routines==&lt;br /&gt;
Possibly of greatest interest are the VDP routines which are applicable to most ExBas programs. These include windowing commands, the ability to read the screen text 256 characters at a time (a giant ACCEPT AT), various display utilities. You can define (and get to store) up to 3l characters in one fell swoop for really fast game startups. Change colours VERY QUICKLY. And there is a nice true lower case available.&lt;br /&gt;
&lt;br /&gt;
Incidentally, once SXB has been loaded, all these routines are available for any subsequent program you load, OR can be used in direct command mode, so you can type in a program with true lower case on screen.&lt;br /&gt;
&lt;br /&gt;
==Copy Protection==&lt;br /&gt;
The SXB disk is heavily fortified with copy protection devices!&lt;br /&gt;
&lt;br /&gt;
==SXBrief==&lt;br /&gt;
You also received, after registering your purchase, the first six issues of SXBrief (total 24 pages) which mainly gives a disk database program which is not only useful but shows how SXB works. I did not mention above, but there is 256 bytes free for extensions, which are loaded by short and simple ExBas subprograms using CALL LOADs). Although only one can be resident, it takes very little time to load by using for instance CALL MYROUTINE etc.&lt;br /&gt;
&lt;br /&gt;
SXBrief gives some extensions. There are extra display and data handling routines. My favourite routine in this set is a screen dump utility... yes, another screen dump, and not entirely in machine code, but still pretty fast.&lt;br /&gt;
&lt;br /&gt;
Thats not all .... you were also entitled, as a purchaser, to subscribe to further issues of SXBrief, at a cost (to the UK) of US$15 for 12 issues. Examples of what is in issues 7 on: double size bit image screen dump and extra display and data handling routines. The routines are short, but if you wished you could also buy a disk (US$15) which contains the routines in the first 15 issues of SXBrief, in CALL LOAD format (MERGE files), in Source code, and in Object code.&lt;br /&gt;
&lt;br /&gt;
==The Cyc==&lt;br /&gt;
The SXB disks and manuals are available on the [[Cyc]] DVD available from CaDD Electronics (link: http://www.cadd99.com). Although in PC99 format the disk can be converted to [[MESS]] format with [[TIDIR | TI-Dir]]. The Cyc is supplied with emulators for Windows and DOS [[Pc99w | pc99w]] and [[PC99 | pc99 ]]. &lt;br /&gt;
The Cyc easily has enough unique data to make it worthwhile even if you plan to use MESS rather than the dos based PC99 or Windows based pc99w.&lt;br /&gt;
The pc99w suite dvd costs less than the original cost of SXB.&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming language]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=SXB&amp;diff=49988</id>
		<title>SXB</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=SXB&amp;diff=49988"/>
		<updated>2016-10-31T10:42:49Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: /* The Cyc */  amend for different supply for The Cyc.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SXB (Super Extended Basic) by J and KH SOFTWARE&lt;br /&gt;
&lt;br /&gt;
Do not confuse with the module from Triton called [[Triton Super Extended BASIC]] - this article refers to a disk based commercial program to extend the facilities of any [[Extended BASIC]].&lt;br /&gt;
&lt;br /&gt;
Media: DISK and Manual. Requires disk system and 32k and Extended BASIC.&lt;br /&gt;
&lt;br /&gt;
SXB is a collection of 100 utilities in machine code, which you can call up in your own Extended Basic programs using CALL LlNK(&amp;quot;NAME&amp;quot;,INPUT/OUTPUT LIST)&lt;br /&gt;
&lt;br /&gt;
==Designed purpose==&lt;br /&gt;
The main use of SXB (and the one which makes it worth the price tag) is to build your own data base program: if you wish, a [[Personal Record Keeping]] Program which does what the module doesn&amp;#039;t, faster, and uses the 24k area of the 32k ~ ram. You can design a general purpose data base or a specialised one, the choice is yours.&lt;br /&gt;
&lt;br /&gt;
==Tools provided==&lt;br /&gt;
The manual is divided into various sections, the first of course dealing with setting up the DATABASE: the actual data is held in a single string array, and various utilities are provided for handling the data in the array. The array is filled in the normal manner, by inputting data, formatting it to fixed length fields (utility provided) and concatenating each &amp;quot;page&amp;quot; of data into one element of the array.&lt;br /&gt;
&lt;br /&gt;
There is a pretty fast sort utility which knocks spots off the PRK module (not difficult!) and utilities to insert, delete, and replace individual items. The general purpose &amp;quot;update&amp;quot; is also available. A utility is provided to build lots of specialised data bases from one general base... all very quickly. &lt;br /&gt;
&lt;br /&gt;
To assist you, there are STRING ARRAY ROUTINES, including encryption routines, and the facility to view on screen the contents of a string array: even after a BREAKpoint. The facility is provided to change characters, eg all dashes to spaces, all lower case A&amp;#039;s to upper case A&amp;#039;s and so on.&lt;br /&gt;
&lt;br /&gt;
There is a group of STRING ROUTINES, very useful in setting up the fixed length fields, or encoding strings of spaces or zeros. There is a more powerful SEG$, and a utility to translate ASCII characters to their HEX values (&amp;quot;A&amp;quot;=&amp;quot;4l&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If memory space is short, there are INTEGER routines which allow you to pack four integers where normally the TI stores one number. This is useful for data packing, but does NOT give the speed increase associated with integer work. Those CALL LlNKs take some time after all!&lt;br /&gt;
&lt;br /&gt;
==VDP Routines==&lt;br /&gt;
Possibly of greatest interest are the VDP routines which are applicable to most ExBas programs. These include windowing commands, the ability to read the screen text 256 characters at a time (a giant ACCEPT AT), various display utilities. You can define (and get to store) up to 3l characters in one fell swoop for really fast game startups. Change colours VERY QUICKLY. And there is a nice true lower case available.&lt;br /&gt;
&lt;br /&gt;
Incidentally, once SXB has been loaded, all these routines are available for any subsequent program you load, OR can be used in direct command mode, so you can type in a program with true lower case on screen.&lt;br /&gt;
&lt;br /&gt;
==Copy Protection==&lt;br /&gt;
The SXB disk is heavily fortified with copy protection devices!&lt;br /&gt;
&lt;br /&gt;
==SXBrief==&lt;br /&gt;
You also receive, after registering your purchase, the first six issues of SXBrief (total 24 pages) which mainly gives a disk database program which is not only useful but shows how SXB works. I did not mention above, but there is 256 bytes free for extensions, which are loaded by short and simple ExBas subprograms using CALL LOADs). Although only one can be resident, it takes very little time to load by using for instance CALL MYROUTINE etc.&lt;br /&gt;
&lt;br /&gt;
SXBrief gives some extensions. There are extra display and data handling routines. My favourite routine in this set is a screen dump utility... yes, another screen dump, and not entirely in machine code, but still pretty fast.&lt;br /&gt;
&lt;br /&gt;
Thats not all .... you are also entitled, as a purchaser, to subscribe to further issues of SXBrief, at a cost (to the UK) of US$15 for 12 issues. Examples of what is in issues 7 on: double size bit image screen dump and extra display and data handling routines. The routines are short, but if you wish you can also buy a disk (US$l5) which contains the routines in the first 15 issues of SXBrief, in CALL LOAD format (MERGE files), in Source code, and in Object code.&lt;br /&gt;
&lt;br /&gt;
==The Cyc==&lt;br /&gt;
The SXB disks and manuals are available on the [[Cyc]] DVD available from CaDD Electronics (link: http://www.cadd99.com). Although in PC99 format the disk can be converted to [[MESS]] format with [[TIDIR | TI-Dir]]. The Cyc is supplied with emulators for Windows and DOS [[Pc99w | pc99w]] and [[PC99 | pc99 ]]. &lt;br /&gt;
The Cyc easily has enough unique data to make it worthwhile even if you plan to use MESS rather than the dos based PC99 or Windows based pc99w.&lt;br /&gt;
The pc99w suite dvd costs less than the original cost of SXB.&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming language]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Emulators&amp;diff=49987</id>
		<title>Emulators</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Emulators&amp;diff=49987"/>
		<updated>2016-10-31T10:35:19Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: /* What emulators exist for the TI-99/4a? */  update pc99 to pc99w&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An emulator is a program that simulates the components of the real machine as precisely as possible. It contains lots of simulations for the various chips like the processor, the video chip, the sound chip, ROM, RAM, and so on. By connecting all simulated circuits according to the schematics of the real machine, the complete system shows a behaviour that simulates the behaviour of the real machine.&lt;br /&gt;
&lt;br /&gt;
In contrast, a simulator is a program that is designed to function like the original target regardless of how it is implemented underneath the covers of the program. The goal is to provide an application to the user which looks and feels like the real machine it is intended to simulate.&lt;br /&gt;
&lt;br /&gt;
Emulators have to execute the ROM contents of the real machine, so they need dumps from its ROM memories. Simulators can use their own implementations of parts or all of the system behaviour. A simulator is great for running programs that were designed for the system. A simulator is not good for developing low-level applications on since it does fully implement the underlying hardware.&lt;br /&gt;
&lt;br /&gt;
While emulators - if done correctly - are a very precise mapping of the real machine, users may experience a more comfortable handling with simulators. For instance, simulators may provide an access to the host file system and allow the simulated system to load and store files on it. In contrast, emulators usually make use of image files to represent the data medium (like a floppy disk) and make the ROM &amp;quot;believe&amp;quot; it sees the real medium. This requires all operations to be done on images which are usually only readable within the emulator - you cannot use PC tools to edit files. Also, it is difficult to integrate enhancements beyond the features of the real machine.&lt;br /&gt;
&lt;br /&gt;
Win994A is a simulator, while [[MESS]] is an emulator. Classic 99 shows characteristics of both.&lt;br /&gt;
&lt;br /&gt;
===What emulators exist for the TI-99/4a?===&lt;br /&gt;
&lt;br /&gt;
Fortunately there is a variety of emulator that you can use. While most are free, one in particular is commercial and requires payment. Here is a brief summary of the emulators:&lt;br /&gt;
&lt;br /&gt;
* [[Classic99]] - A Windows-based emulator that emulates the TI-99/4A and the TI-99/4. It includes ROMs built-in under license from Texas Instruments and requires minimal setup to get started. It supports a number of add-ons in various states but the prime focus is to aid development of new software on the standard base console with 32K.&lt;br /&gt;
* [[MESS]] - stands for &amp;quot;Multiple Emulator Super System&amp;quot; and not only does it emulate the TI-99/4A, it also includes the TI-99/4, the rare TI-99/8, and the Geneve. Moreover, it also allows the emulation of countless other computer systems outside of the TI world. This a great tool for those that work with multiple types of computers and systems. The focus of MESS is a precise emulation, sometimes at the cost of usage comfort.&lt;br /&gt;
* [[Pc99w | pc99w ]] - it runs in the Windows environment and emulates the TI-99/4A and some peripherals. pc99 is capable of emulating Myarc RAM card and Myarc Extended Basic. The emulation is supplied on dvd or usb stick and includes [[PC99 | pc99dos]] and [[Cyc | The Cyc]]. Released November 2016.  link: http://www.cadd99.com/&lt;br /&gt;
* TI4Amiga - (Add Information Here)&lt;br /&gt;
* [[ti99sim]]  - An emulator for Linux users. Link: http://www.mrousseau.org/programs/ti99sim/&lt;br /&gt;
* TI994W - Link: http://members.ziggo.nl/fgkaal/Software/sw_ti994w.html#ti994w (Add Information Here)&lt;br /&gt;
* V9T9 - is another popular emulator, actually the first one for the TI-99/4A. Many disks and cartridges are in V9T9 format.  For a long time, no new versions were released.  In early 2013, the author Ed Swartz released a new version written in Java and runs on Windows, OSX, and Linux.  It can be downloaded at http://eswartz.github.io/emul/. Also available as MacV9T9. Old version can be found at http://www.99er.net/emul.shtml#V9T9 &lt;br /&gt;
* [[Win994a]] - in some regards can be considered a simulator rather than an emulator. The author acknowledges that they excluded features that are not useful or appear to be rarely used. That said, it is great product and currently is under active development.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;What is the easiest emulator to start out with?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This is a difficult question. Each emulator has its strengths and shortcomings. You should probably not judge the book by its cover, that is, easy installation need not guarantee satisfaction later, as emulators are pretty complex systems. After all, they mimic complete computing systems, including various physical devices. &lt;br /&gt;
&lt;br /&gt;
Many of the emulators are still actively maintained, so you should be able to get in contact with the authors to get support.&lt;br /&gt;
&lt;br /&gt;
You can use more than one emulation, and in most cases module and disk files are more or less interchangeable between emulations, or easily converted.&lt;br /&gt;
&lt;br /&gt;
=== Do these emulators need Windows to run? ===&lt;br /&gt;
&lt;br /&gt;
[[MESS]] is available for Windows, Linux, and the Mac (older and newer). All the TI-99/4, TI-99/4A, TI-99/8, and Geneve systems are properly emulated in all these host operating systems.&lt;br /&gt;
&lt;br /&gt;
Other emulators that are designed to run under Windows may possibly run in a virtual machine environment. Please see the VM options for your operating system. Some emulators have been reported to run under Wine.&lt;br /&gt;
&lt;br /&gt;
PC99 was written for DOS and will run with the Linux utility dosemu which is supplied with most Linux distributions.&lt;br /&gt;
&lt;br /&gt;
=== Emulators and disk images ===&lt;br /&gt;
&lt;br /&gt;
====Which emulators use which types of disk images?====&lt;br /&gt;
This is quick list but it should be sufficient and it covers the most popular emulator:&lt;br /&gt;
&lt;br /&gt;
* V9T9 - [[Sector Dump Format]] (also referred to as &amp;quot;v9t9 format&amp;quot;) (.dsk) &lt;br /&gt;
* PC99 - [[Track Dump Format]] (aka &amp;quot;pc99 format&amp;quot;) (.dsk) &lt;br /&gt;
* MESS - sector dump format (v9t9) (.dsk) and track dump format (pc99) (.dtk or .dsk) &lt;br /&gt;
* Win994a - sector dump format (v9t9) (.TIDisk)&lt;br /&gt;
* Classic99 - sector dump format (v9t9) (.dsk) and track dump format (pc99) (.dtk or .dsk) - read only&lt;br /&gt;
&lt;br /&gt;
==== Is there a way to capture and use cassette tape data with emulators? ====&lt;br /&gt;
&lt;br /&gt;
Yes. &lt;br /&gt;
&lt;br /&gt;
* There is a program out there called CS1er that will take a WAV audio file of a TI Cassette Program and convert it to a FIAD file. FIAD is the native V9T9 file format and many emulators support V9T9 formats. You can find more about CS1er at the following website: http://www.cs1er.com&lt;br /&gt;
&lt;br /&gt;
* [[MESS]] can mount WAV files as cassette media and directly read them. ([[:Image:mess_loads_cassette.png|No kidding]].)&lt;br /&gt;
&lt;br /&gt;
==== How do I convert PC99 format images to V9T9 format? ====&lt;br /&gt;
&lt;br /&gt;
The easiest method, because it is GUI driven, seems to be to use Fred Kaal&amp;#039;s program TiDir.&lt;br /&gt;
&lt;br /&gt;
[[TiDir|Refer to TIDIR article]] for link to Fred&amp;#039;s website and screen grab of TiDir in action.&lt;br /&gt;
&lt;br /&gt;
Here are the basic steps:&lt;br /&gt;
&lt;br /&gt;
# Open TiDir to the directory where you PC99 image file resides. &lt;br /&gt;
# In TiDir select your PC99 image. &lt;br /&gt;
# From the file menu choose &amp;quot;Convert PC99 DSK-file to TI99 DSK-file&amp;quot; &lt;br /&gt;
# TiDir will prompt you for a location and file name to save the file.&lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;TIFILES&amp;quot; file? ====&lt;br /&gt;
&lt;br /&gt;
TIFILES files are individual TI files with a 128 byte header prepended that contains information intended to be used to recreate the TI-specific properties of the file. It was devised for use with XMODEM transfers and is sometimes called &amp;#039;XMODEM&amp;#039; format, but it also permits those files to be stored on foreign filesystems such as a PC and later recreated on a TI (ie: for a BBS).&lt;br /&gt;
&lt;br /&gt;
See the section on [[TIFILES format]].&lt;br /&gt;
&lt;br /&gt;
Classic99 natively reads and writes TIFILES format files, and they can be directly transmitted to a real TI via most XMODEM terminal packages. &lt;br /&gt;
&lt;br /&gt;
==== What is a &amp;quot;FIAD&amp;quot; file? ====&lt;br /&gt;
&lt;br /&gt;
FIAD is the native V9T9 file format, and stands for &amp;quot;Files On A Disk&amp;quot;. It allows storing TI files individually on a PC filesystem like TIFILES, but was devised to allow preserving the TI specific information such as the filename on a PC DOS filesystem.&lt;br /&gt;
&lt;br /&gt;
Classic99 and V9T9 can read and write V9T9 format files, but they must be converted (either to TIFILES or stored on a disk image) before they can be transferred to a real TI.&lt;br /&gt;
&lt;br /&gt;
==== Using an IDE drive ====&lt;br /&gt;
&lt;br /&gt;
Q: &amp;#039;&amp;#039;&amp;#039;Is it possible to load an IDE drive on a PC with information from disk images (V9T9, PC99) and then move it to the TI with an IDE controller for use?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
I don&amp;#039;t believe a tool or program exists to do this. This is speculation here but in order to do this one of the following must ocurr:&lt;br /&gt;
&lt;br /&gt;
# There must be a program written on the PC that understands PC99/V9T9 images and a driver that supports the TI formatted version of an IDE drive (essentially a PC equivalent of the DSR).&lt;br /&gt;
# One of the emulators must be aware and be able to use a TI formated version of an IDE drive which would still require a driver to be written.&lt;br /&gt;
&lt;br /&gt;
So from those two possibilities the need for a driver (DSR like program) for the PC to understand and to be able to work with a TI formated IDE is requried. Also, the driver would have to either work with an TI IDE system based on [[Thierry | Thierry&amp;#039;s]] DSR and/or Fred Kaal&amp;#039;s DSR. All in all this is a big effort.&lt;br /&gt;
&lt;br /&gt;
Original question by: Alfredo Cevolini&lt;br /&gt;
&lt;br /&gt;
=== Exchanging files between host PC and emulated TI ===&lt;br /&gt;
&lt;br /&gt;
==== Can I bring my BASIC programs over to my PC as a text file for viewing? ====&lt;br /&gt;
&lt;br /&gt;
Yes. Fred Kaal has a great program called [[TiDir]] that allows you to view/extract the contents of emulator files and disks. TiDir works with both V9T9 and PC99 format files/disks. Both MESS and Win994a use V9T9 format and PC99 uses PC99 format. The program even allows you to work with ARK files created by Barry Boone&amp;#039;s [[Archiver]]. &lt;br /&gt;
&lt;br /&gt;
Win994a Users: there is a built-in way for Win994a to have output sent to a printer connected to your Windows PC. Another entry in the FAQ explains this in detail and it can be found under: Emulation -&amp;gt; Win994a&lt;br /&gt;
&lt;br /&gt;
MESS Users: there is also a built in way for MESS to print to a text file and then on your PC you can do what you want with it (save it, print it, etc). Another entry in the FAQ explains this in detail and can be found under: Emulation -&amp;gt; MESS&lt;br /&gt;
&lt;br /&gt;
Classic99 Users: Classic99 can directly write Windows text files using either configuration or a special override sequence in the filename. It can also write to the clipboard using the device name &amp;quot;CLIP&amp;quot;, which allows you to simply paste the text into any other editor.&lt;br /&gt;
&lt;br /&gt;
==== How do I move a file from my PC to a emulator images file? ====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Refer also&amp;#039;&amp;#039;&amp;#039; to the article [[TiDir]] with which you can take for example a DV80 TI Writer file from an emulated disk, transfer it to a Windows Text File in a Windows directory and when you have finished editing it, transfer it back to a DV80 file then move the file onto an emulated disk image.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a broad question so let me put some parameters around it. Let&amp;#039;s assume that someone is is looking to move a TI type file (text, basic, archive, etc.) to either a v9t9 or pc99 image. PC99 uses the pc99 image, Win994a and Mess use the v9t9 image type file.&lt;br /&gt;
&lt;br /&gt;
Let me state that there are lots of ways to do this. I could use a serial connection with PC99 or some other craft utility. For simplicity sake I&amp;#039;m going to describe to methods that are easy to use and that anyone with a PC can use.&lt;br /&gt;
&lt;br /&gt;
===== Win994a DiskManager =====&lt;br /&gt;
&lt;br /&gt;
This tool that comes with Win994a is a great utility. You can create a virtual floppy (v9t9 image) or use an existing image. Make sure that you select the image you want to use by clicking on the Browse button in the upper right corner.&lt;br /&gt;
&lt;br /&gt;
With your image selected you can now click on the &amp;quot;Import FIAD File&amp;quot; which will move the file(s) you want to the disk image. IMPORTANT: in the Files Type field change the value to &amp;quot;All Files (*.*)&amp;quot;. You can now browse to files you want to import, select them. That&amp;#039;s it!&lt;br /&gt;
&lt;br /&gt;
===== TI99-PC =====&lt;br /&gt;
&lt;br /&gt;
This is a utility that can do a lot with real TI Disks and virtual disks. The first thing to understand is that there is now a 3rd image format for this program that is called a &amp;quot;TI99-PC Image&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You will want to do this if you want to move a file to PC99 or if you don&amp;#039;t use Win994a. The process is as follows: Import your files to a TI99-PC Image and then import that image to either a PC99 or v9t9 image. Yes it is extra steps but it works.&lt;br /&gt;
&lt;br /&gt;
You can find TI99-PC in the PC Utilities folder on WHTECH. There is a manual to explain all of the details. I&amp;#039;m just going to give you the menu choices here:&lt;br /&gt;
&lt;br /&gt;
1) To import a file from DOS to a TI99-PC image you will choose, from the Main Menu, option #2 and then option #6.&lt;br /&gt;
&lt;br /&gt;
2a) To import a TI99-PC Image file to a PC99 image you will choose, from the Main Menu, option #1 and then option #3.&lt;br /&gt;
&lt;br /&gt;
2b) To import a TI99-PC Image file to a v9t9 image you will choose, from the Main Menu, option #1 and then option #5.&lt;br /&gt;
&lt;br /&gt;
NOTE: Greg McGill had the suggestion of using TI99-PC so credits to him on that!&lt;br /&gt;
&lt;br /&gt;
===== TIImageTool =====&lt;br /&gt;
&lt;br /&gt;
See the section on [[TIImageTool]] for a description.&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=The_Cyc_DVD_Rom&amp;diff=49986</id>
		<title>The Cyc DVD Rom</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=The_Cyc_DVD_Rom&amp;diff=49986"/>
		<updated>2016-10-31T10:30:21Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: note the Cyc is now sold as part of pc99w suite&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[The CyC CDROM]] has now expanded to a DVD Rom and is supplied as part of the [[Pc99w | pc99w]] suite which includes the emulators pc99w and [[PC99 | pc99dos ]]&lt;br /&gt;
(From 1st November 2016)&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=The_Cyc_CDROM&amp;diff=49985</id>
		<title>The Cyc CDROM</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=The_Cyc_CDROM&amp;diff=49985"/>
		<updated>2016-10-31T10:27:47Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: Update for inclusion of The Cyc in pc99w suite.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;quot;Cyc&amp;quot;, as it is known, is a great collection of software and documentation that is meant to complement [[PC99]].&lt;br /&gt;
&lt;br /&gt;
Note- It is now supplied on a DVD Rom as part of the [[Pc99w | pc99w]] suite which includes pc99w,  and [[PC99 | pc99dos]]. Updates at reduced cost are available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Cyc contains the following: &lt;br /&gt;
&lt;br /&gt;
* All TI PHM Modules in PC99 format.&lt;br /&gt;
* All released TI PHD Diskettes in PC99 format.&lt;br /&gt;
* All TI PHM and PHD Manuals in PDF format.&lt;br /&gt;
* Articles by noted TI authors in PDF format.&lt;br /&gt;
* Full text of certain TI books in PDF format.&lt;br /&gt;
* A listing of all books related to the TI.&lt;br /&gt;
* A 1,800 plus page searchable alphabetical List of TI information in PDF format.&lt;br /&gt;
* PHx lists that shows all TI numbered products (PHM modules, PHD disks, PHT cassettes) in PDF format.&lt;br /&gt;
* Many third-party and unreleased TI modules in PC99 format.&lt;br /&gt;
* Indexes to all major TI publications, and full text of selected magazines in PDF format.&lt;br /&gt;
* User group disk and publication collections in PDF and PC99 format.&lt;br /&gt;
* Information, manuals, and disks from TI vendors in PDF and PC99 format.&lt;br /&gt;
* Thousands of other disks in PC99 format. &lt;br /&gt;
&lt;br /&gt;
The advantages of The Cyc are:&lt;br /&gt;
* There is a unified searchable index&lt;br /&gt;
* Text is reformatted in a standard layout and clear fully readable fonts and all articles are searchable.&lt;br /&gt;
* Once purchased, updates are available at a lower cost - and new material is added regularly.&lt;br /&gt;
&lt;br /&gt;
More information about the Cyc and PC99 can be found at: http://www.cadd99.com/&lt;br /&gt;
&lt;br /&gt;
==Sample==&lt;br /&gt;
[[File:Cycsample.png|frame|left|Sample from The Cyc showing clarity and style, taken from an entry for [[LA99er]]s Newsletter.]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Pc99w&amp;diff=49984</id>
		<title>Pc99w</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Pc99w&amp;diff=49984"/>
		<updated>2016-10-31T10:22:55Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: amend link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;pc99w is an emulator of the TI-99/4a written for Windows by Eric Firestone and distributed by CaDD, as a development from the dos emulation [[PC99 | pc99]].&lt;br /&gt;
&lt;br /&gt;
pc99w is sold as a suite on dvd or USB stick and comprises of the emulator pc99w, a configuration program, a utility program (eg for disk control), the original DOS emulation pc99 and the full TI encyclopaedia The [[Cyc]].&lt;br /&gt;
&lt;br /&gt;
pc99w is written in native 32 bit code and &amp;quot;installation&amp;quot; involves only copying files, remembering to set them to read/write if the copying process has also copied the dvd read only flag.  There is a single ini file which controls the emulator and the two utilities.     The two utilities are originally in vb6, and supplied with the required vb6 dll, which is installed with a setup.exe, but transfer to C is a work-to-do.&lt;br /&gt;
&lt;br /&gt;
Module selection is by means of the configuration utility, which can also take care of any disks that the module may require. &lt;br /&gt;
&lt;br /&gt;
As the package includes The Cyc, almost all available modules are included in the package. The TI software has been officially licensed from Texas Instruments. The package also includes the disk software released by TI and many hundreds of disks which were distributed by various user groups.  &lt;br /&gt;
&lt;br /&gt;
pc99w was made available to owners of pc99dos from 1st November 2016 and to new owners from 1st January 2017.&lt;br /&gt;
&lt;br /&gt;
CaDD&amp;#039;s website is at www.cadd99.com&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Pc99w&amp;diff=49983</id>
		<title>Pc99w</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Pc99w&amp;diff=49983"/>
		<updated>2016-10-31T10:22:18Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: amend link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;pc99w is an emulator of the TI-99/4a written for Windows by Eric Firestone and distributed by CaDD, as a development from the dos emulation [[PC99 | pc99]].&lt;br /&gt;
&lt;br /&gt;
pc99w is sold as a suite on dvd or USB stick and comprises of the emulator pc99w, a configuration program, a utility program (eg for disk control), the original DOS emulation pc99 and the full TI encyclopaedia The [[Cyc]].&lt;br /&gt;
&lt;br /&gt;
pc99w is written in native 32 bit code and &amp;quot;installation&amp;quot; involves only copying files, remembering to set them to read/write if the copying process has also copied the dvd read only flag.  There is a single ini file which controls the emulator and the two utilities.     The two utilities are originally in vb6, and supplied with the required vb6 dll, which is installed with a setup.exe, but transfer to C is a work-to-do.&lt;br /&gt;
&lt;br /&gt;
Module selection is by means of the configuration utility, which can also take care of any disks that the module may require. &lt;br /&gt;
&lt;br /&gt;
As the package includes The Cyc, almost all available modules are included in the package. The TI software has been officially licensed from Texas Instruments. The package also includes the disk software released by TI and many hundreds of disks which were distributed by various user groups.  &lt;br /&gt;
&lt;br /&gt;
pc99w was made available to owners of pc99dos from 1st November 2016 and to new owners from 1st January 2017.&lt;br /&gt;
&lt;br /&gt;
CaDD&amp;#039;s website is at www.cad99.com&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=Pc99w&amp;diff=49982</id>
		<title>Pc99w</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=Pc99w&amp;diff=49982"/>
		<updated>2016-10-31T10:21:11Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: first article on the new emulator pc99w&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;pc99w is an emulator of the TI-99/4a written for Windows by Eric Firestone and distributed by CaDD, as a development from the dos emulation [[pc99]].&lt;br /&gt;
&lt;br /&gt;
pc99w is sold as a suite on dvd or USB stick and comprises of the emulator pc99w, a configuration program, a utility program (eg for disk control), the original DOS emulation pc99 and the full TI encyclopaedia The [[Cyc]].&lt;br /&gt;
&lt;br /&gt;
pc99w is written in native 32 bit code and &amp;quot;installation&amp;quot; involves only copying files, remembering to set them to read/write if the copying process has also copied the dvd read only flag.  There is a single ini file which controls the emulator and the two utilities.     The two utilities are originally in vb6, and supplied with the required vb6 dll, which is installed with a setup.exe, but transfer to C is a work-to-do.&lt;br /&gt;
&lt;br /&gt;
Module selection is by means of the configuration utility, which can also take care of any disks that the module may require. &lt;br /&gt;
&lt;br /&gt;
As the package includes The Cyc, almost all available modules are included in the package. The TI software has been officially licensed from Texas Instruments. The package also includes the disk software released by TI and many hundreds of disks which were distributed by various user groups.  &lt;br /&gt;
&lt;br /&gt;
pc99w was made available to owners of pc99dos from 1st November 2016 and to new owners from 1st January 2017.&lt;br /&gt;
&lt;br /&gt;
CaDD&amp;#039;s website is at www.cad99.com&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=PC99&amp;diff=49981</id>
		<title>PC99</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=PC99&amp;diff=49981"/>
		<updated>2016-10-31T10:11:07Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: link to pc99w&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PC99 is a DOS based emulator which can run with most older Windows, or under dosbox or dosemu. It emulates TI hardware and software.  &lt;br /&gt;
&lt;br /&gt;
A new package for Windows pc99w was made available to existing owners from November 2016, and to new users from January 2017.   This article is about the DOS version, which is now supplied with  [[pc99w]].&lt;br /&gt;
&lt;br /&gt;
PC99 is a commercial program, containing legal copies of TI roms and groms, licensed by Texas Instruments, available from [http://www.cadd99.com/ CaDD Electronics].&lt;br /&gt;
&lt;br /&gt;
Owners of PC99 also have access to a vast array of equally legal software (all TI modules), book, magazine and documentation collections of high quality reproduction, fully indexed, in a product called the [[Cyc]], supplied on DVD-R by [http://www.cadd99.com/ CaDD Electronics].&lt;br /&gt;
&lt;br /&gt;
==Choosing a module from an on screen list==&lt;br /&gt;
Use the shareware utility menu.bat from George Shaw- refer to [http://shawweb.myzen.co.uk/stephen/TI.htm#pc99menu PC99 Menu]. This uses the PC99 module listing and therefore can use appropriate disks with modules when required (eg for Editor Assembler etc).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changing disk (eg dsk1) whilst PC99 is running==&lt;br /&gt;
Go to the command prompt with ESC and key in cd 1.&lt;br /&gt;
Now key in the path from where PC99 is to the disk using dos format&lt;br /&gt;
&lt;br /&gt;
eg \pc99\dsk\dosgames.dsk&lt;br /&gt;
&lt;br /&gt;
Note the dos style backslashes.&lt;br /&gt;
&lt;br /&gt;
==Printing to a printer with PC99==&lt;br /&gt;
&lt;br /&gt;
PC99 allows you to talk to your PC&amp;#039;s serial and parallel ports. This means you can actually connect a printer to your PC and print to it.&lt;br /&gt;
&lt;br /&gt;
You may connect a dot matrix printer to Parallel port on the PC and print to it from PC99. The PC99 manual goes into detail about how to configure/map your ports. This is one of the examples of why PC99 is such a good emulator for the TI.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Converting PC99 disk files to and from a real TI console==&lt;br /&gt;
&lt;br /&gt;
PC99 comes with two programs called RSECTOR and WSECTOR. WSECTOR (write) listens for data coming from RSECTOR(read) and then writes it to a disk. If you want to transfer from PC99 to the TI you would run RSECTOR in PC99 and WSECTOR on the TI. If you want to go the other way you would switch.&lt;br /&gt;
&lt;br /&gt;
RSECTOR and WSECTOR communicate via a serial connection. You will need a serial cable that goes from your PC with PC99 to the TI with some kind of RS232 expansion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Converting TI files to and from TI disk files to work with dos/windows programs==&lt;br /&gt;
&lt;br /&gt;
A number of utility programs are supplied with PC99 to give access to TI disks which have been converted to the PC file format (for example basprog.dsk) and to PC format files (eg .txt). &lt;br /&gt;
&lt;br /&gt;
* PC Text files to TI-Writer D/V80 format.  First add a TI File Descriptor Record using ASC2DV80.EXE and then import the amended file to a TI disk using DSKIN.EXE and finally ensure a clean disk bit map by copying with a TI disk manager (file copy).&lt;br /&gt;
* V9T9 File to PC99 format using VF2PC99.EXE&lt;br /&gt;
* V9T9 Disk to PC99 Disk format using VD2PC99.EXE&lt;br /&gt;
* Taking a BAS/XB program and producing a PC text format LIST using BAS2ASC.EXE&lt;br /&gt;
* Taking a TI D/V 80 file and converting it to PC Txt format using DV802ASC.EXE&lt;br /&gt;
and others.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Transferring between TI emulator formats (eg v9t9 disk or file to PC99?)==&lt;br /&gt;
&lt;br /&gt;
PC99 has two utilities to transfer V9T9 files and disks into PC99 format. VF2PC99.EXE is used to convert a V9T9 file image into PC99 format. VD2PC99.EXE is used to convert a V9T9 disk image into PC99 format.&lt;br /&gt;
&lt;br /&gt;
There is also a separate Windows program available called [[TIDIR]]&lt;br /&gt;
&lt;br /&gt;
==Running PC99 with the Linux Operating System==&lt;br /&gt;
see article [[PC99 and Linux]]&lt;br /&gt;
&lt;br /&gt;
==[[TI Writer]] and [[Funnelweb]]==&lt;br /&gt;
PC99 uses keyboard mapping to allow the vast majority of TI99/4a programs to be used easily. There is a small set of keys which is not readily available and just a few not available.  Note that PC99 allows you to change the keyboard mapping yourself.  Programs which take input from left and right hand sides of the keyboard  using the TI&amp;#039;s split keyboard coding may cause problems.&lt;br /&gt;
&lt;br /&gt;
The heading above indicates a particular difficulty with TI Writer (and Funnelweb).&lt;br /&gt;
&lt;br /&gt;
Using CTRL and a key that is not an alphabetical key is not passed by PC99 to the program.&lt;br /&gt;
&lt;br /&gt;
The work around if you need to type CTRL and a number is to use the ALT key as follows.&lt;br /&gt;
&lt;br /&gt;
To pass CTRL 1 to Funnwelweb editor, hold down the ALT key and then press numeric keypad numbers 1 then 3 then 0 and release ALT.&lt;br /&gt;
&lt;br /&gt;
 Thence &lt;br /&gt;
 CTRL 2=ALT 131;  CTRL 3=ALT 132; CTRL 4=ALT 133; CTRL 5=ALT 134&lt;br /&gt;
 CTRL 6=ALT 135;  CTRL 7=ALT 136; CTRL 8=ALT 137; CTRL 9=ALT 138&lt;br /&gt;
 CTRL 0=ALT 139&lt;br /&gt;
and finally to change from upper case to lower case which requires CTRL . use ALT 129.&lt;br /&gt;
&lt;br /&gt;
There does not seem to be a way to key in CTRL ; when using PC99 without changing pc99 keyboard mapping.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulation]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
	<entry>
		<id>http://www.ninerpedia.org/index.php?title=PC99&amp;diff=49980</id>
		<title>PC99</title>
		<link rel="alternate" type="text/html" href="http://www.ninerpedia.org/index.php?title=PC99&amp;diff=49980"/>
		<updated>2016-10-31T10:10:34Z</updated>

		<summary type="html">&lt;p&gt;Stephen Shaw: Add note regarding and link to Windows version pc99w.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PC99 is a DOS based emulator which can run with most older Windows, or under dosbox or dosemu. It emulates TI hardware and software.  &lt;br /&gt;
&lt;br /&gt;
A new package for Windows pc99w was made available to existing owners from November 2016, and to new users from January 2017.   This article is about the DOS version, which is now supplied with  pc99w.&lt;br /&gt;
&lt;br /&gt;
PC99 is a commercial program, containing legal copies of TI roms and groms, licensed by Texas Instruments, available from [http://www.cadd99.com/ CaDD Electronics].&lt;br /&gt;
&lt;br /&gt;
Owners of PC99 also have access to a vast array of equally legal software (all TI modules), book, magazine and documentation collections of high quality reproduction, fully indexed, in a product called the [[Cyc]], supplied on DVD-R by [http://www.cadd99.com/ CaDD Electronics].&lt;br /&gt;
&lt;br /&gt;
==Choosing a module from an on screen list==&lt;br /&gt;
Use the shareware utility menu.bat from George Shaw- refer to [http://shawweb.myzen.co.uk/stephen/TI.htm#pc99menu PC99 Menu]. This uses the PC99 module listing and therefore can use appropriate disks with modules when required (eg for Editor Assembler etc).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changing disk (eg dsk1) whilst PC99 is running==&lt;br /&gt;
Go to the command prompt with ESC and key in cd 1.&lt;br /&gt;
Now key in the path from where PC99 is to the disk using dos format&lt;br /&gt;
&lt;br /&gt;
eg \pc99\dsk\dosgames.dsk&lt;br /&gt;
&lt;br /&gt;
Note the dos style backslashes.&lt;br /&gt;
&lt;br /&gt;
==Printing to a printer with PC99==&lt;br /&gt;
&lt;br /&gt;
PC99 allows you to talk to your PC&amp;#039;s serial and parallel ports. This means you can actually connect a printer to your PC and print to it.&lt;br /&gt;
&lt;br /&gt;
You may connect a dot matrix printer to Parallel port on the PC and print to it from PC99. The PC99 manual goes into detail about how to configure/map your ports. This is one of the examples of why PC99 is such a good emulator for the TI.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Converting PC99 disk files to and from a real TI console==&lt;br /&gt;
&lt;br /&gt;
PC99 comes with two programs called RSECTOR and WSECTOR. WSECTOR (write) listens for data coming from RSECTOR(read) and then writes it to a disk. If you want to transfer from PC99 to the TI you would run RSECTOR in PC99 and WSECTOR on the TI. If you want to go the other way you would switch.&lt;br /&gt;
&lt;br /&gt;
RSECTOR and WSECTOR communicate via a serial connection. You will need a serial cable that goes from your PC with PC99 to the TI with some kind of RS232 expansion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Converting TI files to and from TI disk files to work with dos/windows programs==&lt;br /&gt;
&lt;br /&gt;
A number of utility programs are supplied with PC99 to give access to TI disks which have been converted to the PC file format (for example basprog.dsk) and to PC format files (eg .txt). &lt;br /&gt;
&lt;br /&gt;
* PC Text files to TI-Writer D/V80 format.  First add a TI File Descriptor Record using ASC2DV80.EXE and then import the amended file to a TI disk using DSKIN.EXE and finally ensure a clean disk bit map by copying with a TI disk manager (file copy).&lt;br /&gt;
* V9T9 File to PC99 format using VF2PC99.EXE&lt;br /&gt;
* V9T9 Disk to PC99 Disk format using VD2PC99.EXE&lt;br /&gt;
* Taking a BAS/XB program and producing a PC text format LIST using BAS2ASC.EXE&lt;br /&gt;
* Taking a TI D/V 80 file and converting it to PC Txt format using DV802ASC.EXE&lt;br /&gt;
and others.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Transferring between TI emulator formats (eg v9t9 disk or file to PC99?)==&lt;br /&gt;
&lt;br /&gt;
PC99 has two utilities to transfer V9T9 files and disks into PC99 format. VF2PC99.EXE is used to convert a V9T9 file image into PC99 format. VD2PC99.EXE is used to convert a V9T9 disk image into PC99 format.&lt;br /&gt;
&lt;br /&gt;
There is also a separate Windows program available called [[TIDIR]]&lt;br /&gt;
&lt;br /&gt;
==Running PC99 with the Linux Operating System==&lt;br /&gt;
see article [[PC99 and Linux]]&lt;br /&gt;
&lt;br /&gt;
==[[TI Writer]] and [[Funnelweb]]==&lt;br /&gt;
PC99 uses keyboard mapping to allow the vast majority of TI99/4a programs to be used easily. There is a small set of keys which is not readily available and just a few not available.  Note that PC99 allows you to change the keyboard mapping yourself.  Programs which take input from left and right hand sides of the keyboard  using the TI&amp;#039;s split keyboard coding may cause problems.&lt;br /&gt;
&lt;br /&gt;
The heading above indicates a particular difficulty with TI Writer (and Funnelweb).&lt;br /&gt;
&lt;br /&gt;
Using CTRL and a key that is not an alphabetical key is not passed by PC99 to the program.&lt;br /&gt;
&lt;br /&gt;
The work around if you need to type CTRL and a number is to use the ALT key as follows.&lt;br /&gt;
&lt;br /&gt;
To pass CTRL 1 to Funnwelweb editor, hold down the ALT key and then press numeric keypad numbers 1 then 3 then 0 and release ALT.&lt;br /&gt;
&lt;br /&gt;
 Thence &lt;br /&gt;
 CTRL 2=ALT 131;  CTRL 3=ALT 132; CTRL 4=ALT 133; CTRL 5=ALT 134&lt;br /&gt;
 CTRL 6=ALT 135;  CTRL 7=ALT 136; CTRL 8=ALT 137; CTRL 9=ALT 138&lt;br /&gt;
 CTRL 0=ALT 139&lt;br /&gt;
and finally to change from upper case to lower case which requires CTRL . use ALT 129.&lt;br /&gt;
&lt;br /&gt;
There does not seem to be a way to key in CTRL ; when using PC99 without changing pc99 keyboard mapping.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulation]]&lt;/div&gt;</summary>
		<author><name>Stephen Shaw</name></author>
	</entry>
</feed>