| | Programming in Assembly
|
|
I was interested in writing some assembly code for the lego mindstorm, I don't plan on writing an incredibly complex program though. I am learning asm for the z80 chip so I have a little experience. I only want a single threaded application with one (...) (21 years ago, 16-Jul-03, to lugnet.robotics.rcx, lugnet.robotics.rcx.legos)
|
|
| | Re: Programming in Assembly
|
|
(...) You should look at Kekoa Proudfoots documentation of RCX internals ((URL) and his librcx library to understand the calling convention for the ROM. Then get yourself the H8300 tools (gcc et al) somewhere, this includes assembler and (...) (21 years ago, 16-Jul-03, to lugnet.robotics.rcx, lugnet.robotics.rcx.legos)
|
|
| | Re: Programming in Assembly
|
|
(...) find the old documentation files is a bit tricky, it took me some time to figure them out. Anyway, take a look at: (URL) look at the product list. Regards, Michael (21 years ago, 16-Jul-03, to lugnet.robotics.rcx.legos)
|
|
| | Re: Programming in Assembly
|
|
Here's a more direct link for the H8 docs: (URL) down to the literature section and download the two PDFs. For assembly, I would recommend starting off with an installation of BrickOS and perusing the various source code files for the kernel. You'll (...) (21 years ago, 16-Jul-03, to lugnet.robotics.rcx, lugnet.robotics.rcx.legos)
|
|
| | Re: Programming in Assembly
|
|
Cool, thanks I was able to find the doc here: (URL) post about the motor seems helpful, so if I understand right the way to run motor A forward would be "mov 0x030003,r0h mov 0x80,r0h" and for the motor C the same except 0x06? How does the (...) (21 years ago, 17-Jul-03, to lugnet.robotics.rcx, lugnet.robotics.rcx.legos)
|
|
| | Re: Programming in Assembly
|
|
(...) mentioned previously) that describes the on chip I/O features of the H8 if you plan on doing any work with the sensors. (...) to (...) that (...) To turn on motor C forward you would do this: mov #0x02,r0h mov r0h,@0x80:8 The second (...) (21 years ago, 17-Jul-03, to lugnet.robotics.rcx, lugnet.robotics.rcx.legos)
|
|
| | Re: Programming in Assembly
|
|
A direct link to the page with the documents is (URL) Jürgen Stuber <stuber@loria.fr> (URL) rot 13 "fr" "se" (21 years ago, 17-Jul-03, to lugnet.robotics.rcx.legos)
|
|
| | Re: Programming in Assembly
|
|
Ok, the motor stuff makes sense, I got a little confused with the shift thing. I looked at the proggamming manual some more and it explaned the @ (Register inderect) but I don't see why it is needed, also in you example you specify the data as (...) (21 years ago, 18-Jul-03, to lugnet.robotics.rcx, lugnet.robotics.rcx.legos)
|
|
| | Re: Programming in Assembly
|
|
(...) (how the manual says to do data)? That's because I don't like to type more than is necessary! :-) Take this line for example: mov.b #0x02:8,r0h This line is doubly redundant. The destination operand is an 8-bit register so the other qualifiers (...) (21 years ago, 18-Jul-03, to lugnet.robotics.rcx, lugnet.robotics.rcx.legos)
|