ARCHIVES


Autre utilitaire
[SRC] GhostBuster 1.00
Taille du fichier : 44.383 Ko
Nombre de téléchargements : 1742
Nombre de vues : 10057
Description rapide : Patcheur de programmes pour les rendre compatibles avec la TI-89Titanium
Auteur de l'archive : ExtendeD
Calculatrices concernées : TI-89Ti
Hardware concernés : HW3
ROMs (AMS) supportés : AMS3.00~3.10
Langage de programmation utilisé : C
Description Complète : =====================================================================
- GhostBuster for TI-89 Titanium by Olivier Armand and Kevin Kofler -
=====================================================================

Copyright and licence
=====================

Copyright (C) 2004 Olivier Armand and Kevin Kofler.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA.

In addition, as a special exception, Olivier Armand and Kevin Kofler give
permission to link the code of this program with the ttunpack decompression
library by the TI-Chess Team, and distribute linked combinations including
the two. You must obey the GNU General Public License in all respects for
all of the code used other than the ttunpack decompression library. If you
modify this program, you may extend this exception to your version of the
program, but you are not obligated to do so. If you do not wish to do so,
delete this exception statement from your version.


What is GhostBuster?
====================

GhostBuster is an automated patcher which patches programs written
and/or compiled before the introduction of the new Hardware 3 to work
with the new hardware changes.

If you want to run a program that crashes or behave weirdly on your
TI-89 Titanium, try GhostBuster on it.


About copyrights and licences
=============================

Before using GhostBuster, first check if the latest version of the
program you want to patch is compatible with the TI-89 Titanium. If it
is not, use GhostBuster and try to contact the author of the program
to ask him to update it if he can.

Please do not distribute any program patched with GhostBuster if the
licence of the original program does not allow the modification and/or
the redistribution of the binary file. Give instead a link to download
GhostBuster (a link to ticalc.org's archives for example).


Using GhostBuster
=================

Send ghostb.89z and the program to patch to your Ti-89 Titanium.
In the Home Screen, type :

ghostb("<infile>","<outfile>") [ENTER]

where <infile> is the path to the program to patch (utils\demo, for
example, but it can also be a single file name), and <outfile> is the
path to the file you want to create.
<outfile> must contain a valid file name, that must not exist on the
calculator. The patched program will be created and stored with this
name.

If <outfile> is "", <infile> will be replaced by the patched version
of the program.

GhostBuster may display that the program doesn't need to be
patched: <outfile> won't be created. If the program cannot be run on
your TI-89 Titanium, the problem is beyond GhostBuster's scope. See
section "Related tools" of this file, or contact the author of the
program at issue.


Patching compressed programs
============================

Many programs are compressed with TI-Chess Team's ExePack
technology. If it is the case, you will find two files in the archive
of the program you want to patch: a launcher (a .89z file) and a
compressed file (a .89y file with a 'ppg' extension on the
calculator).
To patch a compressed program, enter the path to the compressed file
for <infile>, not the path to the launcher!

GhostBuster will automatically decompress your program (in order to be
able to patch it), so you won't need a launcher, you can therefore
delete the launcher.

If you want to compress the patched program, download the compression
kit included in the TIGCC Tools Suite (ttppggen) which can be found on
TICT web site (http://tict.ticalc.org) , and read the documentation.
You won't really need to do this anyway, since the archive memory of
the TI-89 Titanium is huge enough to keep all the programs you use
uncompressed.


Patching kernel-based programs
==============================

Kernel-dependent programs and libraries can be patched by GhostBuster
as well. If the files you want to patch are compressed in PreOs
archive packs, use the PreOs archive pack unpacker (zunpack). You need
to unpack your archive packs with zunpack in order to patch them.

Of course you still need a kernel compatible with the TI-89 Titanium
to run the patched programs (see section "Related tools" of this
file).


GhostBuster's command line options
==================================

An optional third argument of GhostBuster is a string containing one
or more of the following options:

ram: do not archive <outfile>. Without this option, <outfile> will
always be archived if there is enough memory.

all: try to patch all the ASM and PPG files of the
calculator. Arguments <infile> and <outfile> won't be read, you
can put empty strings there.
Programs with a name starting with "_" (for example "_test")
will not be patched (this can be useful if you want to exclude
some programs from a massive patching).

Examples:

GhostBuster("test", "", "ram")
-> program "test" will be replaced by its patched version that
won't be archived.

The two options can be combined with the character '|':
GhostBuster("", "", "ram|all")
-> GhostBuster will try to patch all the programs of the calculator,
replacing each file which can be patched by its patched version in
RAM.

The TI-89 Titanium has a special key for '|' ("with").


Technical details
=================

The fixes done by GhostBuster on the programs it patches are:

* ROM_base computation (incorrect 0x600000 mask, should be 0xE00000)
and assumptions that ROM_base is 0x200000 on all TI-89 variants
(whereas it is actually 0x800000 on the Titanium)

* elimination of all types of 0x40000 ghost space use.


Related tools
=============

The sole task of GhostBuster are described in the previous
section. You will perhaps need other tools to solve all the
compatibility issues that have arisen with the TI-89 Titanium.

To use memory-resident programs (TSRs), programs which depend on
dynamically-linked libraries (DLLs) or use nested function
trampolines, install HW3Patch.
To run kernel-dependent programs, try Iceberg (that also requires
HW3Patch), or the official port of the kernel PreOs for TI-89 Titanium
when it is released.


Contacting the authors
======================

Please ask your questions, report the bugs, list the programs
you have found which can't be patched, or are not patched correctly
by GhostBuster to its authors:

Olivier Armand - <ola dot e-ml at wanadoo dot fr>
Kevin Kofler - <kevin dot kofler at chello dot at>
or <Kevin at tigcc dot ticalc dot org>

Report any programs that still don't work after patching them with
GhostBuster _unless_:
* the crash is a black bar crash with no text in it and you didn't
install HW3Patch. Try again with HW3Patch.
* the program is a kernel-based program and you tried it with
TitaniK. Try again with HW3Patch and Iceberg.


History
=======

2004-08-11 Kevin Kofler:
* Included zunpack in the distribution.
* Rebuilt with TIGCC 0.95 Beta 16. (Saves 6 bytes.)
* Version 1.00.

2004-07-15 Olivier Armand:
* Added a complete documentation.
* Replaced option "replace" by an empty string as outfile.
* Allowed kernel libraries to be patched.
* Changed the copyright notices.

2004-07-14 Kevin Kofler:
* Fixed the offset for the DLL support patch.

2004-07-14 Kevin Kofler:
* Added correct handling of move.l #0x400xx,%an; adda.l %am,%an.
* Widened the range for adda/addi #0x40xxx,%an/%dn from
0x3fffe-0x40010 to 0x40fff.

2004-06-25 Kevin Kofler:
* Added patching of move.l x(%pc),%an; bset.b #2,1(%an) sequences.

2004-06-22 Kevin Kofler:
* Removed infinite loop left from debugging.

2004-06-21 Olivier Armand, Kevin Kofler:
* First release.
Archive mise en ligne par : Flanker
Date de mise en ligne : 11/08/2004 à 19:02:32

- Ti FR v3 - Ce site n'est pas le site officiel de texas instruments. En cas de problèmes techniques sur le site veuillez contacter l'administrateur. Merci de vos visites !
page générée en 2063 ms