How ironic - me asking about assembler on the Assembler forums! Anyway, I've been doing some 8085 and 8051/ADuC812 assembler in college recently, and was wondering if there's much on the internet about assembler programming for 8-bit consoles/computers - preferably the NES or MSX or something. Are there any windows/DOS programs for assembling/disassembling/compiling/whatever for any of these?
Ah, assembly, the language for the educated gentleman :-D Personally I'm more into asm programming on more modern systems, but here's a few links from the top of my head: http://k2pts.home.comcast.net/gbaguy/nesasm.htm http://www.smspower.org/dev/index.shtml http://map.tni.nl/ http://www.ticalc.org/basics/calculators/ti-83.html#9 Best of luck! If you run into any probs don't hesitate to bug me (oh and we should complete the deal with the 8mb simms, doncha think?)
6502: nes info - http://nesdev.parodius.com/ xgs info - I remember a long time ago the xgs was going to use a 6502 and they had some demos written in 6502 assembly, it's running on some other processor now which after looking at some of the source on the site, seems pretty similar. Very cool if you're new to assembly, or console development. It carries a big price tag, though it comes with a shit load of resources, everything you need to start programming on it. IMO it's not worth it, just because there's already so many resources out there if you're willing to look, and better systems to work on (GBA for example, very active development scene as well) - http://www.xgames3d.com/ Z80: GB info - http://www.devrs.com/ - Jeff Frohwein's site, pretty much the place to go for z80 gb resources. Also might want to check http://www.zophar.net if you need more documentation, they have resources on many consoles there.
6502/65816 is my favorite so far. Then follows 68K. Never tried Z80. As for assembling/disassembling. Don't use NESASM, it's ass. Use DASM (http://www.taswegian.com/TwoHeaded/Atari2600/dasm/), or P65 (http://hkn.eecs.berkeley.edu/~mcmartin/P65/) instead! For disassemblers use NESrev, IDA or better yet, code your own in BASIC or C or something because really they all blow. Hopefully in not too long, Brian Provinciano will release his NESHLA assembler *wink wink* I'm dying for something new! I'm going to start my own interactive NMOS 6502 Assembler/disassembler in python
The 6502 (used in the Commodore 64, NES and countless others) is my favorite as well. From there you can move on to learn the 65816 (SNES) in about a day if you want to. I'm currently having a great time doing some "therapy work" coding a C64 demo. Pointless but fun. I'm just using a text editor (Ultra Edit) and an assembler called ACME (although DASM is suppposedly also very good) to generate the code. The C64 is fun in the way it allows you to be in complete control over what's happening, down to the cycle, and squeeze every last bit of power out of it. It's quite limited though (1 playfield, 16 colors, 8 sprites etc but it's amazing in the way you can make it do stuff it was never intended to do) so if you primarily want to write games there are better alternatives. I think the SNES is really nice machine to work with. Might be your best alternative if you want to write games in assembler. The GBA has a nice active dev scene. Similar to the SNES but with a much faster processor (good if you want to to 3d stuff) and the ability to scale and rotate sprites (SNES only did that on a single playfield background, mode 7). Although you would probably primarily work with C for it (assembler is an option though).
Indeed, most people never even consider assembly, thinking it takes too much work - I think it's not as bad when you get used to it and write your own macro's and utility routines. BTW, for some more fun dev, try the PSX. MIPS asm is g00d :smt045
Never tried MIPS asm. Guess you don't have to struggle with the same kind of problems as on the C64. 63 cycles MAX per raster line (less if you're using sprites, even less if the processor is fetching new characters), instructions taking 2-7 cycles, raster moving 8 pixels per cycle, only 3 registers. AAARGH!
Thanks for the links/advice people! Guess I should start going to my Digital Systems lectures more often then...
Indeed, on the MIPS nearly ALL instructions take 1 cycle to complete, being a RISC processor. And the PSX hardware is very easy to program with on a low level, as it's quite highlevel itself (you can just send polygon coordinates to the GPU, for instance)
If you want a real processor to do assembly on, try the 6809. The 6809 has been proclamed as the most powerful 8bit-processor. These were used in the TRS 80 Color Computer. I know this is not realy the place to explain this, but even today, the CoCo is still being used. Tandy Licenced a True Multitasking Operating system called OS9 by Microware. Microware is still around today, and still suports OS9. It is being used in a lot of set top boxes and such. (UNIX derivative). The lates version of OS9 is called NitOS-9 and has been ported to the Dragon, which was the UK clone of the CoCo. For more information on the CoCo, you can visit my site www.coco.8bit-micro.com or Cloud9 www.cloud9tech.com for more info on NitrOS-9. :-D
Heck, OS9 runs on CD-i systems! Never tried out the 6809 due to lack of hardware though. For some real fun, try SuperH :smt043