home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.whtech.com
/
ftp.whtech.com.tar
/
ftp.whtech.com
/
Geneve
/
9640news
/
CAT15
/
GRMKRCK.ARK
< prev
next >
Wrap
Text File
|
2006-10-19
|
3KB
|
54 lines
?
GRAM KRACKER Q & A
The following are a few questions we have received about the Gram
Kracker and some of the modules.
HOW DO I GET RID OF THE FOREIGN LANGUAGES OFF OF THE TI-WRITER MENU?
With a normal TI-Writer module or the TIWGRAMDSK version loaded into
the Gram Kracker use the memory editor to edit G6006, in hex. At this
location you will find the value >6010, change it to >60CB and resave your
modified version. If you have moved TI-Writer to Gram 1 the address to edit
is G2006, and the value there will be >2010, change it to >20CB. If it's in
Gram 2 the address will be G4006 and the value will be >4010, change it to
>40CB.
If you look in the Gram Kracker manual on page 51 you will find that
Gx006 contains the pointer to the first application program (menu name). By
changing it from x010 to x0CB we are telling the power up routine that the
first application program is English. Since the English version is the last
one on the list it will be the only one to show up.
HOW DO I MOVE A MODULE TO ANOTHER LOCATION SO I CAN LOAD MORE THAN ONE
MODULE, BESIDES TIW OR E/A?
Moving modules to other locations requires a GPL Disassembler. Both TI-
Writer and Editor Assembler where first disassembled. Next, all of the
ABSOLUTE address references where found and a list of there locations was
generated. In the E/A module this was approx 80 different locations. In the
TIW module this was approx 150-200 locations. After the list was generated
the TIW-MOVER and E/A-MOVER utilities were written. These utilities use
this list of locations as pointers to offset the value in that location
according to the GRAM that you select of the menu.
You cannot just use the memory editor to move a module to another
location and expect it to run. There is too much absolute addressing going
on in these modules.
WHY DON'T YOU WRITE A "UNIVERSAL" MOVER UTILITY?
We took a look at doing just that. However, it would require a program
with a lot of artificial intelligence to accomplish this task. We thought
that if we searched of >05 and >06 (BRANCH and CALL opcodes) and adjust the
address that follows them, that this could be accomplished. WRONG. We
quickly found out that you run into a few problems. The values >05 and >06
can easily be data values and not opcodes. Also >05 or >06 can also be part
of an address (e.g. >7005, >6406 etc.). The next problem came with MOVE
statements that moved blocks of data (PABS, VDP Reg data etc.) to other
locations from GROM. These move statements also use absolute addressing. We
also found numerous locations where the GPL Programmer would store the most
significant byte of an address in a TEMP location and then much later on in
the program he would generate the least significant byte and store it in
TEMP+1 to form the absolute address. So that ended the "UNIVERSAL MOVER"
idea.
--- MG ---
Download complete. Turn off Capture File.