It's a complex mapping.
DIO1..DIO4 are Arduino digital pins 4..7, are ATmega PORTD pins 4..7, are bits 4..7 in the PORTD I/O register, are 0x10, 0x20, 0x40, 0x80 as bit masks.
AIO1..AIO4 are Arduino analog pins 0..3, are ATmega PORTC pins 0..3, are bits 0..3 in the PORTC I/O register, are 0x01, 0x02, 0x04, 0x08 as bit masks.
These 0x01..0x80 values are not pin numbers but bit masks in the ATmega ports.
As it so happens, these bits all fit together into a single byte. When you take the top 4, you get the bit masks to use for PORTD, while the lower 4 are bit masks for PORTC.
Perhaps this example helps clarify: to set DIO3, you can do "Port(3).digiWrite(1)", which is the same as using Ardiuno's digitalWrite(), i.e. "digitalWrite(6, 1)" since DIO3 is Arduino digital pin 6. Internally, that translates to setting pin 6 of Port D, i.e. "bitSet(PORTD, 6)", which in turn is the same as "PORTD |= bit(6)". That's the same as "PORTD |= 1<<6". Which is also the same as "PORTD |= 0x40". So "DIO3 equates to 0x40" as bit mask, loosely speaking.
Maybe all this just confuses even more. All I can say is: I didn't invent the Arduino pins, I just use them. I want to have 4 equivalent interfaces on a JeeNode, so I assigned one digital and one analog pin to each one (and another digital pin to IRQ, but it's the same pin on all the interfaces). But this means that the Arduino's pin numbering conventions are a bad match for JeeNodes.
Somewhat tangential note: calling those 4 interfaces on the JeeNode "ports" is a bit confusing, given that the ATmega also calls its hardware I/o registers ports. The two are not related.
The reason for all this trickery, is that I can't use digitalWrite() for software PWM on 4 channels, since that would be too slow and cause the LEDs to flicker. Then again, maybe it's more convenient to start off with digitalWrite() anyway, and implement what you need. Once it all works as intended, you can optimize it to get rid of the digitalWrite's. See for one way to do that.