From: Bryan Rittmeyer To: kaus Subject: Re: The E2 Date: Monday, October 12, 1998 12:00 AM Hi, Wow! That is an awesome idea, and I'd be glad to help you in any way I can. Let me try to answer some of your questions now, since I have been very busy lately and will surely be very busy this week. 1. I don't object at all to a PC version of the E2, and may even help you if you chose to build in the ability to transfer PC files directly onto a hardware PC. This would be a fairly useful feature and although I haven't had a chance to code it myself I would definitely like to see it get done. 2. The calculator driver is totally open source and you may use it in any way you wish as long as you include my name, e-mail, and the URL of the E2 site somewhere in the documentation or (preferably) in the program itself. Feel free to modify or optimize it! 3. The $20 port dir command lets you change whether or not each pin of the module port is an input or an output (driving high or low). If you try setting a pin while it is in input mode, it enables a pull-up for that pin. Basically the module port commands let you write to the PORT and DDR registers of the CPU, with one bit masked out for the busy LED. The module port is designed for electronics and code hackers to play with, and you can get a lot more info about how the AVR and thus the E2 handles I/O from the atmel.com datasheets. 4. There are some additional commands not present in the driver. One is an 'Egg'. If you have an E2 and go into RTerm or another terminal program with the E2 connected and powered up, and then type capital C, the E2 will send the calculator a copyright notice. In the first ~5 E2 chips sent out, there was another egg that would display a quote from #ti@EFNet making fun of BlitZBoy or whatever his name is from the ti-files. He's the guy that said 'asm is fast since it is in hexadecimal' These first few chips do not support the C copyright notice egg. 5. Please read the E2 FAQ. I do not plan to make a 1MB or 2MB version any time soon, but 512kb is MORE than enough! 6. Those comments concern starting off an E2 page write at a position other than 0. This again gets into the electrical properties of the memory chip. Basically, the E2 driver ALWAYS writes a full 264 bytes to each page -- if the page in use only needs to hold, say, 100 bytes (the end of a program, possibly) it will pad the rest of the page with 164 $FFs. If it tried writing 100 bytes and didn't pad, the rest of the page's contents would be random (depending on the contents of the memory chip buffers) and that would break the erase code that assumes that if a page contains $FF in the beginning the entire page is erased. Short answer: Only write full pages, and always start at position 0. If you start at byte 5 and write 260 bytes, the first four bytes (my math may be wrong, but you get the idea) will be garbage. I wish you the best of luck and will try to give you any help I can, although I am extremely busy with school and other projects. Thanks a lot, and I will put up a link to your site as soon as possible! Cheers, Bryan kaus wrote: > > Hello Bryan. > I am a person who loves the E2 and the project. IT is a great device. I > have a TI-85, and have read the source code for the driver. I have a few > questions for you: > 1) I am going to try and create a PC version of the E2. This would be an > emulator that would act like an E2. of course, it owuld not have the mod > port, but still. Is this OK? Do you have any objections? > 2) I am a leader in a TI-85 project of major proportions that is going to > try and create an operating system based on your E2. IT is called DHOS, > and to find out more about it, go to http://www.angelfire.com/wi/dh85 This > is the OS infosite. As I have said, I have read your source code, and was > wondering if you would allow us to use the low level (link port routines > and direct e2 command calls) source almost verbatim. It might be slightly > adapted, or optimised, but we would most definetly give you credit for it > (hey, its your expander to begin with!!!) If this is not ok, we will > rewrite the our own driver, so is not that major of a set back. > 3) The $20 command, the module port direction command. What does this > really do? Does this limit the $21 and $22 commands so that only the ones > that allow "out" in the direction can be changed by a mod port write? and > the only ones that are read are the ones marked "in"? or is this almost > purely for show? or is it deeper, more into the electronics of the thing. > Any other information would be appreciated. > 4) Are there any other commands (i found 7 in the driver source) for the > E2 that you have made? I would like to know as many as you can tell me for > purely informational sake. > 5) I had heard you had planned to perhaps make 1meg and 2meg versions of > the e2. How will this be implemented? jsut a dif mem chip? or diff > controller too? Are you still planning on doing this? > 6) Finally, in the source code, you have this: > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > ; Sets up a send / receive... tells firmware how much, what page; > ; and where to start ; > ; (starting at other than 0 when SENDING is HIGHLY problematic! ; > ; Driver never does start at 0, neither should you! ; > ; ; > > What do you mean by the starting at other than 0 is highly problematic, > and then coming back by saying the driver never does start at 0, neither > should you!! > What does that mean? > > Thank you for taking the time to read this, and hopefully answer some of my > questions. > > Thank you, > Jonathan Kaus -- Bryan Rittmeyer mailto:bryanr@flash.net http://www.flash.net/~bryanr/