home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / Geneve / 9640news / CAT15 / GRMKRCK.ARK < prev    next >
Text File  |  2006-10-19  |  3KB  |  54 lines

  1. ?
  2.                             GRAM KRACKER Q & A
  3.     The  following  are  a  few  questions  we have received about the Gram
  4. Kracker and some of the modules.
  5.  
  6. HOW DO I GET RID OF THE FOREIGN LANGUAGES OFF OF THE TI-WRITER MENU?
  7.     With  a normal TI-Writer  module or the  TIWGRAMDSK version loaded into
  8. the Gram  Kracker use  the memory  editor to  edit G6006,  in hex.  At this
  9. location you will find the value >6010, change it  to >60CB and resave your
  10. modified version. If you have moved TI-Writer to Gram 1 the address to edit
  11. is G2006, and the value there will be >2010, change it to >20CB. If it's in
  12. Gram 2 the address will be G4006 and the value will be  >4010, change it to
  13. >40CB.
  14.     If you  look in the Gram  Kracker manual on page  51 you will find that
  15. Gx006 contains the pointer to the first application program (menu name). By
  16. changing it  from x010 to x0CB we are telling the power up routine that the
  17. first application program is English. Since the English version is the last
  18. one on the list it will be the only one to show up.
  19.  
  20. HOW DO  I MOVE A  MODULE TO ANOTHER  LOCATION SO I  CAN LOAD MORE  THAN ONE
  21. MODULE, BESIDES TIW OR E/A?
  22.     Moving modules to other locations requires a GPL Disassembler. Both TI-
  23. Writer  and Editor  Assembler where  first disassembled.  Next, all  of the
  24. ABSOLUTE address references where  found and a list of  there locations was
  25. generated. In the E/A module this was approx 80 different locations. In the
  26. TIW module this was  approx 150-200 locations. After the list was generated
  27. the  TIW-MOVER and  E/A-MOVER utilities  were written.  These utilities use
  28. this  list of locations  as pointers to  offset the value  in that location
  29. according to the GRAM that you select of the menu.
  30.     You cannot  just use  the memory  editor to  move a  module to  another
  31. location and expect it to run. There  is too much absolute addressing going
  32. on in these modules.
  33.  
  34. WHY DON'T YOU WRITE A "UNIVERSAL" MOVER UTILITY?
  35.     We took a look at doing just that. However,  it would require a program
  36. with  a lot of artificial intelligence  to accomplish this task. We thought
  37. that if we searched of >05 and >06 (BRANCH and CALL opcodes) and adjust the
  38. address  that  follows  them,  that  this  could be accomplished. WRONG. We
  39. quickly found out that you run into a few problems. The  values >05 and >06
  40. can easily be data values and not opcodes. Also >05 or >06 can also be part
  41. of an  address (e.g. >7005,  >6406 etc.). The  next problem came  with MOVE
  42. statements that moved  blocks of data  (PABS, VDP Reg  data etc.) to  other
  43. locations from GROM. These move statements also use absolute addressing. We
  44. also found numerous locations where the GPL Programmer would store the most
  45. significant byte of an address in a TEMP location and then much later on in
  46. the program  he would generate the  least significant byte and  store it in
  47. TEMP+1 to  form the absolute  address. So that  ended the "UNIVERSAL MOVER"
  48. idea.
  49.                                 --- MG ---
  50.  
  51. Download complete.  Turn off Capture File.
  52.  
  53.  
  54.