Quote:
How exactly am i suppose to execute an instruction from the obj file produced by the nes assembler when it looks like that? Am i missing a step in this process?
I'm not familiar with the NES assembler, but I would not expect actual code (as opposed to the display strings) in a .obj file to show as text that you could read with a text editor. For example, the LDA# op code, $A9, is not a text character. Even in ANSI characters, it looks like the top-left corner of a box. If you have a programmer's text editor like MultiEdit, there should be a hex mode though, which, on the left side of the screen, shows the pairs of hex digits to interpret even the unreadable characters, and on the right side of the screen, lines of what you showed, which won't be readable except when there's a string in the code like your first line has.
There should also be a .lst file output which is basically your source text file with the macros expanded out, and to the left of each line, the addresses and exact bytes (in readable hex-digits, 0-F) that the assembler lays down for that line of source code.
If you make the assembler produce something like an Intel hex or Motorola S19 file which an EPROM programmer would use, that is all readable text of the assembled code (with no source code showing), although lacking spaces between pairs of digits, and having the housekeeping bytes at the beginning and ends of the lines for telling the EPROM programmer what the beginning address of each line is and for error-checking. Intel Hex looks like:
Code:
:10800000A9608D0040A9FF8D1302A2FF9A203AD3E8
:108010002091AC2016A90C30312F30322F3930206E
The colon signals the beginning of a new line, the 10 means there are ten data bytes in the line, the 8000 (8010 in the second line) is the line's starting address in the target computer's memory (in this case, our ROM started at $8000), then 00 means it's actual data to put in the ROM, and then you'll recognize LDA#$60, STA$4000, LDA#$FF etc.. The E8 at the end of the first line and 6E at the end of the second are checksum bytes.