[gambit-list] Strange Gambit error problems DS

Andrew Lentvorski bsder at allcaps.org
Tue Oct 24 18:13:48 EDT 2006


Marc Feeley wrote:

> That's great!  It makes me want to buy a Nintendo DS just to try it 
> out!  3MB seems a bit big though.  Did you try any of my suggestions to 
> cut down on code size?

Well, the system does a strip automatically when preparing the nds 
image.  I haven't tried any of the other things because I wanted as much 
as possible available when I tried networking.

At some point, I'll have to post a binary somewhere for people to try. 
Especially since it works under the emulators.

> This is normal because your "stdin" is directly reading from the 
> keyboard, and the "read" procedure will know the expression is complete 
> when it reads the closing parenthesis or the whitespace after a symbol, 
> number, etc.

Ah.  Fine then.  I'll leave it alone.

> Where does the output of the "console" go?  Does it go to the screen?  
> Does it support cursor movement and xterm/vt100 escape codes?  If not 
> you have to complete the implementation of the function 
> lineeditor_output_terminal_op in lib/os_tty.c .

It goes to the screen.  The screen does support ANSI escape codes. 
However, I'll probably ignore that for now.

> I assume you know about DS Wifi (http://akkit.org/dswifi/) and lwIP 
> (http://masscat.afraid.org/ninds/lwip.php).

Yes, the lwIP implementation isn't completed and DS Wifi has its own 
somewhat quirky TCP system.  I really wish he had used lwIP instead.

> For the threading system to work, you will need a heartbeat interrupt 
> (complete the implementation of setup_heartbeat_interrupt_handling and 
> friends in lib/os_time.c)

Heartbeat interrupt.  On the DS that's *really* easy.  I'll set one of 
the timers to fire at once every couple of seconds initially.  With all 
the debug logging going to flash it's slowing the system down pretty 
dramatically.

> and non-blocking I/O, at least for networking

Okay, that can be done, but it needs to use the ioctl calls instead of 
the the fcntl calls.

> (I think lwIP support non-blocking sockets).  You will have to "#define 
> USE_NETWORKING" in lib/os.h and complete the implementation of the 
> sections "TCP client stream device" and "TCP server device" in 
> lib/os_io.c .

Got it.

> This is not an easy task but I can help you figure out what needs to be 
> done.  In the interest of keeping the mailing-list traffic down I will 
> stop cross-posting to the mailing-list.

Unless you really don't want me to, I'd like to keep crossposting. 
Having this discussion in a publicly available archive for the next 
person who wants to port Gambit to something else would be very useful.

-a



More information about the Gambit-list mailing list