Jinx wrote: > Isn't it just great when you've got 16k of space in front of you > and you can do pretty much what the heck you want to in terms of > long jumps, reading program memory from any address, play with the > stack etc etc and not have to worry about page wrap-arounds or > looking for registers ? Seriously, I'm wondering how PICs ended up > this way, so very different from any other micro. Anyone know ? Jinx: They ended up that way because they started out that way... Way back in the 70's, when transistors were expensive. The original PIC (very similar to the 16C54, but NMOS of course) had a 12-bit-wide program memory, a 9-bit-wide program memory address bus, and a 5-bit-wide register address bus. There were no paging or banking issues, because there was only one page and only one bank. Those first chips, and the CMOS 16C54, were elegant and very easy to program... And the first 14-bit parts were nice, too, since THEY only had one (larger) page of program memory and one-and-a-half banks of RAM. If those original chips hadn't been so popular, Microchip could've just oboleted them and started over with a new architecture every few years as they needed to make larger chips; that's what many other microcontroller vendors do. Instead, Microchip chose to make new parts that were basically compatible with the old. ALL the paging/banking issues on the larger 12- and 14-bit parts are there because Microchip wanted to add code and/or data space to those initial chips without changing the basic internal architecture. -Andy === Andrew Warren -- aiw@cypress.com === Principal Design Engineer === Cypress Semiconductor Corporation === === Opinions expressed above do not === necessarily represent those of === Cypress Semiconductor Corporation -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! email listserv@mitvma.mit.edu with SET PICList DIGEST in the body