Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Pinmame Debug OPCODE LIST
09-19-2011, 04:47 PM
Post: #1
Pinmame Debug OPCODE LIST
Hello everybody
I'm trying to find the right opcode list used in PINMAME debug.
I can figure out simple code like STA or LDX
But for some of them I find it difficult to figure out.
Its certainly not the same one as the inel 8086, and I cant find one for the motorola 6802

thanks.
Find all posts by this user
Quote this message in a reply
09-19-2011, 08:30 PM
Post: #2
RE: Pinmame Debug OPCODE LIST
Search for motorola 6802/6800 instruction set you should get lots of data sheets with the info.

Pick up some books on programming this series, too, they're cheap through places like amazon and abebooks.com - no one needs to learn this stuff nowadays. I think I paid about $5 for 2 really good books on programming the 6800. (Same instruction set on the 6802/6808)
Find all posts by this user
Quote this message in a reply
09-20-2011, 03:18 AM
Post: #3
RE: Pinmame Debug OPCODE LIST
I found this website, Its a different chip, but I think its the same opcode and operation.
http://www.physics.mcmaster.ca/tech/HC90...8Intro.htm

and this
http://fr.wikipedia.org/wiki/Motorola_6800
But I dont have the signification of all codes,
But Anyway I think I'll figure them out

I also find a lots of pdf books for the motorolla 6800 series on the net
Find all posts by this user
Quote this message in a reply
09-20-2011, 08:04 AM
Post: #4
RE: Pinmame Debug OPCODE LIST
http://www.compeng.dit.ie/staff/tscarff/...ctions.htm

about as concise as you'd need while still saying what the instructions "are". To go more in depth you'll need one of the books/pdf or otherwise.

I have this sheet printed out for quick reference.

The problem with system 11 is going to be there's no reference sheet for what the WMS codes mean - making it harder to figure out what they were doing. Not all of the code is straight 6800 assembly - they used a proprietary system they called APPL which is a mix of interpreted byte code and inline 6800.
Find all posts by this user
Quote this message in a reply
09-20-2011, 11:06 AM
Post: #5
RE: Pinmame Debug OPCODE LIST
Thats great, that's exactly what I'm searching for
thanks a lot
Find all posts by this user
Quote this message in a reply
09-20-2011, 05:05 PM
Post: #6
RE: Pinmame Debug OPCODE LIST
When going through WPC Code, a lot of the functions take additional parameter bytes. So the disassembly might show a JSR call and then attempt to disassemble the next few bytes after the JSR instruction but in reality the bytes are just data bytes that the function ends up using. With practice you will be able to look at a function, determine how many bytes it pulls from the caller, and then fixup the original function call in your diassembly txt file to indicate which bytes are just data/parameter bytes. Sometimes you have to manually fixup the disassembly after such function call since the pinmame disassembly might have misalligned the disassembly while it (incorrectly) tried to disassemble the bytes following such function call. In the WPC code (which uses Motorola 6809) a function will take the stack pointer, and load bytes from that pointer, increment the pointer, and fixup the stack so when the function returns, it skips over the data bytes. I suspect System 11 will have commonalities (or they could be totally different).

Also, (and obviously) there are data tables and such which pinmame tries to disassemble into executable code but in reality some nearby code just looks up the data and uses it during the execution of a function.

I think this is what Ralph was saying but just in a different way.

Also, keep in mind that they likely use common code amongst all system 11 games so whatever you do can likely be applied to other games. Keep this in mind as you document functions, as later, it'll be easier to copy-paste comments from one diassembly txt file to another.
Find all posts by this user
Quote this message in a reply
09-20-2011, 07:11 PM
Post: #7
RE: Pinmame Debug OPCODE LIST
They're threaded scripts - there's a lot of commands to add/remove threads from a command scripting stack. Technically, yes, they're all functions in 6800 assembly; so it's really just a higher-level language when it comes down to it. Stern, Williams, and Gottlieb all used it to some extent. Bally never did AFAIK. Technically Gottlieb would have used it first with their system 1 games, but Stern had the first full blown multi-threaded system with Meteor. Williams joined that party with Black Knight and system 7.
Find all posts by this user
Quote this message in a reply
09-22-2011, 05:22 PM
Post: #8
RE: Pinmame Debug OPCODE LIST
In the WPC disassembly I have inferred what you said just with different terminology. I see how the code calls a fuction to schedule (my terminology) a function to get called at a later moment. I've encountered this concept in several of the hacks that I've posted here in the tools section of this site. The BOP reset fix was related to a messed up stack pointer when a "scheduled" function starts going. That function was for the scrolling of text on the lower display after somebody scored a billion points. They did some pretty neat stuff with that Motorola.
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)