Hi guys, I am new to the PIC and micro-controllers in general. I am currently working on a project of perhaps modest complexity ( very complicated to me ). My dilemma relates to the fact that I am just now getting my feet wet with assembler but I have been using C on the PC platform for years. I am tempted to use C as it would _greatly_ decrease my development time. However, I realize that C can't be totally optimized to assembler and I am concerned that the finished program could grow beyond the confines of the PIC's program space. I thought if I gave you a brief description of my project you might could help me decide whether I should switch to C or stick with assembler. My project is a handheld device that contains the following subsystems : 1) PIC17C44 - 8k memory, USART, 32 mhz 2) 2 meg NVRAM ( max 2 chips for 4 meg ) 3) RS232 communication ( possibly using MAX232 ) 4) 4 x 20 LCD 5) Keypad ( 20 - 30 keys ) 6) Low voltage monitor 7) Possibly a battery charging circuit In addition to the above, I can identify at least two non-trivial tasks that must be handled by the software. First, I plan to implement a very scaled down version of the DOS FAT system in the NVRAM. Master file table, FAT, sectors, and no subdirectories. The user will not be aware of the storage scheme. I want to use it to facilitate memory reuse as data blocks are added, changed, or deleted. Second, the user must be able to search for a "file name". I thought I would take the approach the cell phone manufacturers used. The user enters a few characters from the beginning of the name by way of the numeric keypad and then uses the up and down keys to scroll through the list. This may require maintaining an index in a reserved portion of the NVRAM. Hopefully that's enough information to help you help me . I appreciate any and all comments. Eric Oliver Texas - 33 years young Amateur programmer and electronics hobbyist