Disassembler

From AtariForumWiki
Jump to navigation Jump to search
                    Disassembler version 2.21
              Main Super Def Coding: AWA from AXE,
              Additional Def Coding: EZ from AXE,
                   Doc by Brainz of Armalyte,
                   Some Ideas by Xelon of AXE,
             Some Small Ideas by Brainz of Armalyte.
               And Of Course We Could Continue For
                 A Long, Long Time, But I Think
                      We'd Better Stop Now              


                  *** Standard Disclaimer ***

If this program ruins your life, then you can't blame me, nor can 
you blame Eazy or AWA! If you still come to me, I'll pat you on 
the back, say I'm very sorry and push you out of my house with 
gentle force. Or: I do not accept *ANY* claims of damage this 
program might do.
Send all angry people to Saddam Hoessein (or Bush, depends on your 
opinion ...).

               *** Usual Commercial Craptalk ***

May I congratulate you with the purchase/download/request/theft/ 
swap/bribe of the AXE disassembler? It is a very powerful tool for
programmers, developers, lamers, shitheads, US Gold coders (huh?), 
and every other ST freak. In this small (I hope it will be small) 
doc I will explain the use of this magnificent program (although 
AWA is a slow coder, and a lazy one, he is a thorough coder ...), 
and I'll try to solve some of your questions.

                  *** How To Disassemble ***

When you have executed the disassembler, you might be presented 
with a fileselector. It is now your job (yes, YOUR job) to 
doubleclick on the program you want to disassemble. An example: 
you want to disassemble Acopy. You double click it. That's all. 
End of example. Go home.
Well, anyway. The program (the disassembler, d*ckhead!) will then 
acces the (hard)disk for a moment, irritate you, and finally 
(sigh) present you with a dialog saying: "Relocate with address:". 
If you want to do so, then type the address from where it should 
be relocated. If you do not know what it does, or if you do not 
need it, click the little and charming '0'. Tadaaaaaaa! The 
disassembler in action (take a picture, you won't be seeing this 
alot from now ...)!
Now, there are two (2) windows, one showing ASCII (the window on 
the RIGHT) and one showing all the mnemonics (the one on the 
LEFT). Nice, you will probably say. But what now? Ah, the 
inevitable question!
Now you must enter the datasections. "WHAT!?". If this was your 
first reaction, then I advise you the f**k off now, because then 
you're either 1) A lamer, or 2) A US Gold coder (probably this 
one). If you didn't react like that, but if there was a slight 
flicker in your eyes, then I'll explain what a datasection is.
In an Assembler program, you can define 'data', like this: "DC.B 
"Hello!",0", or like this: "DC.L 0". The disassembler from AWA is 
as stupid as hell, and it can't sort all those things out by 
itself, so you'll have to do it yourself (>very evil grin<)! In 
fact, that's the only though thing about disassembling ... 
Entering the datasections isn't hard, nor is it very complicated, 
but FINDING them can be quite a nuisance ...
If you have found a datasection, then be sure that either window 
is on the start of it, AND ACTIVE (a small 1 or 2 should be 
present in the upper right corner, respectivly meaning mnemonics 
and ASCII), then press: CTRL-B (this marks the start of a 
datasection). Then go to the end of the datasection, and press 
CTRL-K. If you want to save the block into the datasectionstable 
(funny how strange words can grow with AXE products ...) press 
CTRL-A. There are more ways to do so, I'll talk about them later.
Well ... When you have worked for some time, you will feel like a 
second-hand banana, just like me. If this is the case (it will be,
finally), then you can save your datasectionstable, with the 
option 'Save .DAW file'. The disassembler will ask you for a 
comment (like: "I disassembled this file, asshole, not you!'), and 
it will then save the DAW file. When you want to continue, just 
load the program, then load the DAW and voila! It's there!
After some loooong and sleepless nights you WILL finally manage to 
find all the datasections of the program you so much love(d), and 
you would like to save the file.
Well, this is possible (ofcourse). Choose 'Make Disassembly (or 
something in between (baby you can be a star (ploingploingploing 
ploingploing) baby you can drive ...).), and the program will make
a nice, partially commented, disassemble.
By the way: while saving, the program will say (at a certain
point): 'The EZ Relocate Routine!'. You can click on 'Skip This Part'
most of the time. (=>AWA: I included this option for programs that do
not have a relocation-tab. For example lotsa music routines. If you
have ripped some nice coding from address $78000 and saved it to disk
with a monitor (templemon) you should use the Relocate option with
address $78000 and The EZ Relocate Routine with the address $78000,
$79000 (Length of your ripped coding is then about $1000 bytes).
My Disassembler will then scan the whole program for addresses between
$78000-$79000. If there are any addresses found they will be used as
labels. Try it out to see what happens.)
Now to the menues:

         *** The Menues, And What They (Might) Do ***

The menue consists of 5 titles, which might work according to 
normal GEM rules. The menues are:

Menu ATARI sign:
================
Information    : Info about this program.

Menue File:
===========
Load Program   : This should load a file into memory (old file is
                 cleared and the old DAW too ...)
Load DAW       : This loads a previously saved DAW into memory.
Save DAW       : This saves some hard work to disk, as a DAW file. 
                 THIS IS THE MOST IMPORTANT OPTION! Almost.
Make Disas     : This makes a neat ASM-file from your program. 
Quit           : This firstly tells you how to hardwarescroll, and  
                 then shows a demo incorporating hardwarescrolling and
                 and 92 channel sound  (stereo). In versions above 
                 also three 320x400 sprites are moved (saying 'AXE')..
                 Most important option.
                 
Menue Options:
==============
Show sections  : This shows all the datasections you have defined 
                 till then.
Add sections   : Add a datasection to your collection. You must then 
                 enter: where it starts, where it ends, and enter 
                 it's 'value' (Long,Character, Word or Byte). 
Kill section   : Kill a preciously gathered section.
Clear DAW      : Clear the complete DAW in memory (noooo ...).
Set Address    : Jump to window address xxxx.
Switch Window  : Switch window (TAB does the same thing).
Search         : Search for Mnenonic, ASCII or Hex value ...
Search Next    : Repeats the last search.
Set Options    : This let's you define some options. Check the dialog
                 out and see for yourself.
Relocate       : Relocate the file in memory with address xxxxx.

Menue Special:
==============
Music On/Off   : This turns of the sweet melodies the soundchip 
                 squeezes from itself. Click again to torture 
                 again .......
Music List     : The list of High Quality music, AWA so stylishly     
                 included.
Fd Dta Pointers: This options find all the pointers in the data section.
                 This only works of course if there IS a data-section
                 (Check with [HELP]) and if there are any pointers.
Read Sectors   : You cannot only read programs but also sectors for
                 disassembling. Though the actual program will be lost,
                 and also the DAW file. (So becareful!). There are two
                 ways to read sectors. You can use RWabs or FDC1772.
                 If you want to use the RWabs option you first have to
                 read the BPB of that drive. So if you want to read 
                 sectors from drive A just click first on the little A
                 button. You can use the FDC1772 option for special
                 formatted disk.(=Bootable programs (Demos,Games)). Just
                 fill in the Start/End Track,Sector,Side. You may not
                 exceed the Max Sector Limit, if you do, you will be
                 warned and asked to read sectors again.
                 If sectors are read and an error occurs you MUST read
                 at least one sector before the program will continue.
                 
Menue Help:
===========
Help           : This helps you (a little, if you really need help,
                 you can contact me or EZ) (See below)
Program Info   : Gives you information about the program you are 
                 disassembling at the moment.

                   *** Keyboard Commands ***

Ctrl-B      : Start Of Block: Begin of a data section.
Ctrl-K      : End Of Block: End of a data section.
Ctrl-A      : Add Block: Adds a predefined datasection to the table.
CONTROL-1/0 : Saves the position where you are in the window at the 
              moment.
ALT-1/0     : Retrieves the saved positions.
Clr/Home    : Jump to TOP of window
Shift Clr/H : Jump To Bottom of window
Cursor keys : This scrolls the windows one line/mnemonic.
Shift+Cursor: This scrolls the windows one screen.

               *** Other Things AWA Brainstormed ***

The dialogs are flying, that means, you can click on a dialog, hold
and move it somewhere else. The positions will be saved for one
session.

You can click on an address in window 1: bra R37da. If you click on
'37da' the actual window address will become $37da. (It only works
if the address really exists, so if the $37da is in the BBS section
it won't work, get it?). Ten addresses will be remembered. If you
then click on the right button and left button you jump one address
back.

Datasections are shown as black parts in the mnemonics window. So
you can easy see what is data and text. First you have to add the
datasections yourself. I have added some DAW files, just try them out.
(You should use the right program, else it will probably be one
big mess. So: acopy12p.daw is the daw file for acopy12p.prg)

              *** The 'Where-Should-I-Put-This' Part ***

Not much left to say. Some useful tips, maybe? (Naah..)
With each disassembler version some DAW's are released. It 
shouldn't be hard to understand that these are for your own use, 
but it would be nice if you stated that you got certain routines
by a .DAW file from AWA. Also if you have got any DAW files made
yourself I (AWA) would be very happy if you send them to me. My
address:

        Arjen Wagenaar          or          Arnhem Quick BBS
        Dorpsweg 32a                        085-644262
        1711rj Hensbroek                    My Address For BBS Users:
        02265-1674                                2:281/801.4

Of course you can also contact EZ. He is also a coding maniac from AXE.
His address:

        Erwin Zoer
        Admiraliteitsweg 36
        1601ed Enkhuizen

And we both live in the Netherlands...


P.S. Doc became a little bigger then expected (dumb grin ...).