October 20, 1997:
All addresses up to 0x700000 are addressed by the TI92. RAM is looped from 0x000000 to 0x1FFFFF. ROM is looped from 0x200000 to 0x5FFFFF. I/O is looped from 0x600000 to 0x6FFFFF. Currently, we are planning to put our I/O at 0x700000 to 0x7FFFFF but other locations we are thinking about are 0x300000 and 0x500000. In order to do this, we would have to redirect addressing on the main board of the 92 from ROM. All of our plan so far is based on having 1MB of free addressing space to play with. Another idea is to redirect some addresses from RAM after adding a second 128K. This would not be ideal, since we would have limited space for ROM or RAM for each I/O device. This description assumes that we will address at 0x700000 and this would also work for 0x300000 and 0x500000. If we go with redirecting from RAM, we will have to work with about 16K or so of space instead of 1MB.
Marvin is going to be programmed in TIBASIC and assembly. I/O will be addressed at 0x700000h. A byte will be send over 0x700000h telling which physical port to activate. When that port is active, Marvin will be able to tell which type of device is attached to the physical port and will be able to write or read from the physical port at 0x700004. A PROM can be addressed (depending on the unit) at 0x700000 excluding the first few bytes to make room for the I/O. Extra memory that would be needed by the unit will be maped at 0x780000. This makes enough room for 512K of ROM and 512K of RAM per unit.
Unit identification is stored at 0x700002. Marvin will be able to identify which unit is attached by reading from that port. A summary of that port can be found here. This is being constantly revised and added to. This file is mainly here for the engineers working on Marvin.
Marvin's main program will be in TIBASIC. A command set will be sent to the robot (probably as a data variable) which will run different assembly commands. While running the assembly command, the robot will re-write the command to make up for problems. For example, if we were to tell it to move from point A to point B and there was an object between A and B, it would write a new command set to move point C before it moved to point B so that it would move around the object. Once it reaches point B, it will return to the TIBASIC program and run the next command.
Variables will be sent back and forth from TIBASIC to assembly by using the fargo library VATLIB.
----------
October 26, 1997:
As time goes on, it looks more and more likely that 0x300000 or 0x500000 are the most likely places we will address out I/O. The TI92's we have recieved from TI are internal ROM, so it will be easier to address at those locations. Another possibility is to hack U11 to make the TI "think" that the external ROM is actually an internal ROM. This will have to be done with calcs with an external ROM.
Back to main page
This page hosted by 
Get your own Free Home Page