Jump to content
tschak909

List of undocumented 6507 opcodes supported by DASM?

Recommended Posts

I am curious to see if there is a list of the undocumented 6507 opcodes supported by DASM, and their function.. I see in a couple of homebrew listings, some interesting opcodes like DCP, and do not know what they do. am trying to learn them so that I can wrap my head around 2600 display kernels (Which I am getting for the most part.)

 

-Thom

Share this post


Link to post
Share on other sites

I am curious to see if there is a list of the undocumented 6507 opcodes supported by DASM, and their function.. I see in a couple of homebrew listings, some interesting opcodes like DCP, and do not know what they do. am trying to learn them so that I can wrap my head around 2600 display kernels (Which I am getting for the most part.)

 

-Thom

As far as I know every useful undocumented opcode is supported by DASM. And if they aren't, you can always just directly put the hex bytes in.

 

Here's a list of undocumented opcodes: http://members.chello.nl/taf.offenga/illopc31.txt

 

There are lots of other lists floating around the net. The most useful for a 2600 kernel will probably be

3-cycle NOP

LAX

DCP

 

Tricksy folks have made use of others as well...

Share this post


Link to post
Share on other sites
Here's a list of undocumented opcodes:http://members.chello.nl/taf.offenga/illopc31.txt

 

Not a terribly good list, though. I like the list at http://www.oxyron.de/html/opcodes02.html better. Note that while the latter list shows an immediate-mode version of LAX which it describes as unstable, DASM doesn't support that one. Just as well, since the opcode is pretty much useless.

 

The most useful opcodes are probably:

 nop zp
 nop #imm
 dcp [any mode but imm]
 isc [any mode but imm]
 lax [any mode but imm]
 sax [any mode but imm]
 sbx #imm (shown on this table as asx)

Share this post


Link to post
Share on other sites

And ASR (tho docs usually refer to it as ALR). I use that one frequently. It eliminates an LSR when AND is going to be used (it does the AND first...so be sure to keep it set one bit higher than what you need).

 

ex:

 

;old

LSR

AND #$03

 

;new

ASR #$06

;...or 7, if you need the carry status. Keeping bit 0 clear in the argument

;would eliminate a following CLC if you've got one (for addition, etc).

Edited by Nukey Shay

Share this post


Link to post
Share on other sites

BTW here's a list I put together that lists the undocumented opcodes with the Dasm-compatable format (and also what you would see using Distella). One of the things that makes working between the 2 programs a pain is that Distella never uses arguments when listing these codes (so the argument will be interpreted as code). This sometimes works fine, if the opcode is being used to skip instructions (as in double or triple NOP's).

 

I preferred to just hack Distella itself and removed the periods in the opcode names (renaming them in some cases)...to make Dasm-compatable lists automatically. I'll post it if anybody else wants a copy.

 

DISCLAIMER:

Use at your own risk. You will be damned by following my example. Nothing is sacred to hackers like me. No deposit, no return. Etc. Etc.

Opcodes.zip

Edited by Nukey Shay

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...