|--------------------------------------------------------|
| Name:   Disassembler v1.6                              |
| Author: Jimmy Conner                                   |
| Z80 AC  www.zed80asm.org                               |
|                                                        |
| Email:  TIMagic@yahoo.com      (timagic@goatse.cx)     |
|         www.timagic.cjb.net                            |
|                                                        |
|--------------------------------------------------------|

|-----------|
| Contents: |
|-----------|

 1.  Blank
 2.  Instructions
 3.  Bugs
 4.  History
 5.  Thanks
 6.  Disclosure

|-----------|
|  Blank    |
|-----------|

  This area was intentionally left blank.



|--------------|
| Instructions |
|--------------|

  You may need the Visual Basic 6 DLL's to run this program... get them here http://199.100.71.142/files/VB6DLLs.zip

	Select a file to disassemble (*.83p), change the output names as nessecary, then click "Start".  It will output 2 to 3 files in the directory you chose.  The first is a .z80 file, in which the normal formated source is in .  The other file is a .lst file, which contains the addressing, actual data, then the source.  If the program is squished and you select "Save Squished File" in the menu, then a squished file will be outputted in the directory.  You can change were the origin address thinks it is by changing the HEX number in the box.

	When it is done disassmbling a viewer will pop up and display the current disassembled file, you can switch between the Z80 file and the Lst file by using the menu at the top.

	A high speed mode speeds up the program slightly by only doing a DOEVENTS (Allows the program to update the display, get clicks, ect...) statement every second or so.  This really isn't needed for small programs but it helps when you are disassembling large ones.

	Make sure TASM80.TAB, squish.inc, and ti83asm.inc, and the rest of the include files are in the same directory as this program!!!  Do NOT replace tasm80.tab with your own, it is a modified version and will not work otherwise!!  You can modify these to add different stuff if you need to, but then my program reads the format in a weird way.  Email me if you have trouble adding stuff to the files!



----------------- Menu Reference --------------------
File
	Refresh List			Refreshes the file list
	About				About the Author
	Exit				Exits Disassembler
Options
	High Speed			Faster but less system response
	Save UnSquished File		Save the Unsquished file
	View in Viewer			View in internal viewer
	Data
		Find Data		Search for all data
		Find Strings		Turn Data into Characters if possible
		Print Data as		All 8 bit numbers are printed in
			Hex		Hexadecimal
			Decimal		Decimal (duh)
			Binary		00000000b format
	Use Labels			Print Labels in the Source
	Equates
		82
			None			Don't Use any equates
			Use Eqautes	Use corresponding equate file
		83
			None			Don't Use any equates
			Use "ti83asm.tab"   Use equates from ti83asm.inc
			Use "squish.tab"    Use equates from squish.inc
		83+	
			None			Don't Use any equates
			Use Eqautes	Use corresponding equate file
Z80 AC					Small Promotional Banner (hehe)


|-----------|
|   BUGS    |
|-----------|

	??? What the hell are bugs??

	1.  Disassembles Basic Programs.. damn need to fix that... but is pretty nifty because you can recompile it and it is exactly the same hehe

	2. The List File that is outputted doesnt put the original data for .db statements
	ex:
	9567h	00010102     .db 00h, 01h, 02h
	it does...
	9567h	             .db 00h, 01h, 02h

	This is because of how I output it, there is no easy way to fix this, but there is a way.  Its just that I dont feel that it is that necessry.

|-----------|
|  History  |
|-----------|

---------------- VERSION 1.6                         1/30/2000 
		Converted over to Visual Basic 6 (instead of 2)
		And yet still faster!
		Added 82 Support	(Crash, Ash, and OShell)
			I have only tested it on the shell programs...
			I have no idea what it will do to others (Ash for example)
		Added 83+ Support	(Ion and regular, no flash-apps yet)
					(but I'm working on it :) )
		Fixed a few bugs (small output ones)
		Fixed a few menu options to set the different calcs equate files
			I eventually will have a few other options for the 83+ and 82
			And possibly a user defined one.
		Added some statistics to the footer (total opcodes and data)
		Bigger file size... damn  
			(then you have the 1.4 meg DLL's, damn damn damn)
			(The DLL's are included seperately here)
			http://199.100.71.142/files/VB6DLLs.zip


---------------- VERSION 1.5                         1/19/2000 
	Fixed a small bug concerning Ion Modules (damn .db 2, lol)
	OPTIMIZATIONS!!!!!
		Thanks to Mike Heckenbach for optimizing alot of my
		code, it is nearly 50% faster and you don't even have
		to wait on the text loader anymore!


---------------- VERSION 1.4   (First public release) 1/8/00 (damn bug)
	Made to pick up the new header for Ion Modules
		(Still picks up the old ones too.)



---------------- VERSION 1.3   (RESTRICTED)
	Fixed numerous small bugs
	Added .db statements (strings)
	Slightly faster in some aspects (doesn't load the tab files 
		everytime it checks for duplicate labels)
	Faster from some optimizations!!
	Does 2 passes to add .db statements
	Able to disable the .db statements (fixes zasmload hehe)
	Added a text viewer to save you time!!!!
	Option to disable the viewer
	Added an INI file to save your settings!
	Added a small Promotional (can be disabled hehe)
	Added most of the undocumented opcodes (didn't do any that were
        	like "res r,*,(IX*)" yet)
	Nearly twice as big (because my pic, viewer, ect..)
	Fixed more numerous bugs
	Detects headers for all different "main" shell types
	Labeling is much, much faster now
	Swapped around the data in the TAB files so the most used ones
		are in front (depending on the program, you process
		roughly 100 more bytes per second)
	Included the undefined opcodes (such as ED80)
	Added the ability to disable the equates
	Added the ability to disable the labels
	Fixed a bug that only displayed the relative address for jr's
		when labels are disabled
	Fixed a bug that added an extra "nop" at the end to squished files
	Added a timer!
	Added the ability to disable finding Strings
	Gave strings priority over labels (fixed a few problems)
	Viewing the File is slightly slower but doesn't hog the memory
	Added the ability to select how data is outputted
		(hex, decimal, or binary) Not all data is outputed this
		way, only 8 bit numbers
	Fixed another bug that displayed non-existent labels
	Made a nifty icon for it
	Fixed a few ini errors
	Fixed some display errors


---------------- VERSION 1.2   (RESTRICTED)
	Fixed numerous small bugs
	Fixed an error that wouldn't print all the labels
	Fixed an error that printed labels that weren't there
	Fixed an error that screwed up unsquished programs (damn 3Fh)
	Fixed an error that wouldn't display 16 bit loads
	Fixed an error that wouldn't display  ld (ix*),* right
	Added the "Save the Squished File" Option
	Made it only read *.83p files so you just need the program
	Added a status bar
	Added labels for jr's and djnz's
	Detects if it is an actual 83 program
	Added Percent Done's to everything (except labeling)
	Doesn't Need an include since I now include all the equates
	Detects different types of programs (only detects)
	Made the source more eye pleasing (mainly lower case)
	Ability to switch between using "ti83asm.inc" and "squish.inc"
	Its a tiny bit slower when it has to do labels


---------------- VERSION 1.1   (RESTRICTED)
	Added Labels!!!
	Fixed a lot of opcodes that didn't display right
	Fixed an error that didn't display the last few opcodes
	Fixed an error that wouldn't change the last equate
	Fixed an error that would loop infinitely if it got a weird opcode
	Fixed an error in the Unsquisher (it works 100% now)
	You now enter the .org address in hex instead of decimal
	Its a tiny bit faster
	Added a High Speed Mode to speed it up a little more
		The response time of the computer goes down though

---------------- VERSION 1.0   (RESTRICTED)
	Took me a few hours to get it fully up and running
	Added all (except undocumented) opcodes
	Added all ROM Calls and you can add more in the include
	Can disassemble Squished programs (and Unsquished duh!)
	Allows you to change the PC start (not in hex yet sorry)
	Easy Windows GUI




---------------- FUTURE VERSIONS
	Fix any bugs!!		(duh!)
	Add the rest of the undocumented opcodes (maybe, but who would need it?)
	Use Different equate file for Ion files and modules (ion.inc)
	Do flag equates (easy)
	Select which commands to use to check for strings (a little
		work but easy to integrate)
	Possibly make the viewer edittable (easy) and allow you to
		modify the code and then reassemble it from the viewer
		(but that would be like stealing code).
	85 and 86 calc Support.
		But I need the 85 file format, which I can't find anywhere.
	Anything else I (You) can think of!


|-----------|
|  Thanks   |
|-----------|

	-Z80 AC -
	   They have always been a great help and great support to me!  We
	   coming back stronger than ever.

	-Jack Daniels-
	   If it wasn't for the many, many bottles of this sweet nectar, I
	   wouldn't have ever learned asm in the first place.  

	-83 ASM LIST-
	   I give a big hello out to my friends on the 83 ASM list at
	   ticalc.  Between newbie and AOL bashing we would eventually
           get a few questions answered.

	-Beta Testers-
	   I thank my beta testers for crunching and churning my program
	   to help make it the best it can be.   Without them, I would
	   just be another person releasing bad, untested programs...

	   	BETA TESTERS!!!
			Jimmy Conner (ME!, Hey I tested it too!)
			Cory Derenburger
			Hee Tan
			Frank Schoep
			Devon O Dell
			Rainer Hahnekamp

	-Mike Heckenbach-
	   For optimizating a lot of my crappy code!  I don't see how he
	   could tell up from down in that mess but he did.

	-Frank Schoep-
	   For giving me the idea to build a better mouse trap.  He
	   wrote DeComp83 which was quite buggy (he was working on a
	   new version) and made me want to write a better one.

	-Florent Dhordain-
	   For the 83 file format.

	-Kouri <Kouri@ucdavis.edu>-
	   For the 82 shell headers.

	-Everyone Else-
	   Thank you to all those people who did absolutely nothing
	   while I wrote this program, you are an inspiration to us all!

|------------|
| Disclosure |
|------------|

  This program was written completely by me.  I wrote it to try and disassemble the rom.  The memory addressing is wierd from the rom image though.  The question to whether I got a fully disassembled rom or not is a secret though.

  You are free to use this program as long as you state were you got it from and distribute it with all documents intact.  Please do not use this program for EVIL. I made it to help people learn asm not to steal code.  You can also use it to check if others stole your code (it happens).

  I use slightly modified versions of TASM80.TAB, squish.inc, and ti83asm.inc, I can explain why and how I had to modify them if need be.  The new formats are pretty simple (some switched bytes, ect...)

  Included are also squish.83p and zasmload.83p by Pat Milheron and BATTSAVE.82P by Nicolas Hannebicque - < nhannebi@ireste.fr >.  Squish disassembles flawlessly.  You have to disable .db statements for zasmload to disassemble right... damn.  And BATTSAVE.82P works very well.