home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.sys.tandy      Life is dandy cuz you're gettin a Tandy!      5,684 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 4,836 of 5,684   
   Michael Black to turnkit   
   Re: Model 1 up and running! - guess what   
   25 Mar 08 18:33:10   
   
   10ae5383   
   From: et472@FreeNet.Carleton.CA   
      
   turnkit (turnkit@gmail.com) writes:   
      
   >> I have been thinking I should make a real good disassembler, one that   
   >> would analyze what is data a and what is code by understanding the Z80   
   >> and know all the ROM and DOS entrypoints and data. But I will probably   
   >> never have the time.   
   >>   
   >> Play CAS is finally finished. I will update my site later today. I'll   
   >> announce it when it is there. :-)   
   >>   
   >> --   
   >> Knut   
   >> (delete 'nogarbage.' for email)   
   >   
   > Have you looked at DISNDATA -- it was distributed by the Alternate   
   > Source Magazine folks.  Very good at seperating data vs. code.  I   
   > didn't know how to use it well because my Z-80 knowledge was (is) so   
   > limited but it was one of the few software purchases I made in high   
   > school and I never regretted it.  Made the code all the much more   
   > interesting to try to understand.  Unfortunately I didn't understand a   
   > lot of the architecture so even with good disassembly I wasn't too   
   > sure what I was looking at.  (For instance, I tried to understand why   
   > the Model 1 game, HEADON/CMD, when played on the Model 3, would never   
   > put out double-score dots like it would when running on the Model 1-   
   > that was beyond me... something in the random number generator I   
   > guessed.)   
      
   I don't know.  Those automated disassemblers do the work, but they   
   still don't tell you what the code does.   
      
   Realistically they make several passes at the raw code, and each iteration   
   provides information to restructure the next results.   
      
   But that's what you do when disassemblying code.  Do it once, and you get   
   a pretty blank picture.  Go through it and pick out the system calls (or   
   calls to ROM), and that helps define the picture.  Find the messages that   
   get sent to the screen, and obviously that can't be code, but it also   
   helps you to define what the code is doing.  If it's a prompt that you   
   get just before a keyboard input, then the following code must be something   
   to do with the keyboard input.   
      
   Those steps are relatively simple, thought tedious.  But they help to   
   define the code.  I actually disassembled something recently for the first   
   time in a long time, and the effort needed to mark the system calls were   
   useful in understanding what the code was supposed to do.  I needed to   
   look them up to figure out what that system call was about, which helps   
   to define the code around it, so having some computer do it for me   
   wouldn't have helped much.   
      
   You could have a really fancy disassembler, and it at best it could   
   only guess at what was going on in the code.  You'd still need to figure   
   that out, so you'd end up with a "perfect" disassembly that you still   
   had to study to figure out the code.   
      
   There was once a "disassembler" that provided a perfect listing of   
   the code, but it was intended for a specific bios or something (I forget)   
   so the comments were hardcoded into the program.  It didn't magically   
   parse the code, someone had done all the work previously and this   
   was a legal workaround to provide a user with a disassembled listing   
   of the code without outright publishing that code.   
      
   Usually, you'd not be so lucky and would still have to spend a lot of   
   time over the code.   
      
   Nowadays, it is helped because one can disassemble to a file, and then   
   work in a text editor.  The time I tried to figure out the model 100   
   program to control the portable floppy drive, I had no choice but to   
   print out the disassembly, go through it by hand, make comments,   
   and then disassemble again with the previous information in hand.  Now,   
   I could just do it with a text editor, and when there are messages just   
   reformat the listing by hand.  A text editor also helps because you can   
   search for specific things, like the system calls and prompt messages, and   
   get those out of the way without spending time scanning the code.   
      
   And of course, why you need to disassemble something comes into play.   
   Other than bragging rights, you rarely need to disassemble everything,   
   you just need enough to do something specific.  I once modified   
   edtasm for the Color Computer so I could print a left margin before   
   the rest of a printout (so I could put the pages in a 3 ring binder),   
   and while I had to get the listing for the full program, I didn't need   
   to figure out every line of code.  I needed to find the part where   
   it prints a new line, and that was fairly easy.   
      
   Even if you need a larger picture, good enough will usually do and   
   getting it all will require quite a bit more work.   
      
     Michael   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca