Sometimes a phone is just a phone.
Money tiem.
Palm Centro smartphone: ~$25 with "new every two" promotion.
Voice plan: $80/mo for 1400 minutes, extra line, and unlimited calling to 10 numbers. $960/yr
Data plan: $45/mo for unlimited data with secret 5GB cap, +$15/mo to tether to N800. $720/yr
Total: $1,705 for one year.
On the other hand, an equivalent iPhone 3G is $80/mo for voice, $30/mo for data, and a $200 entry fee (even subsidized), so it comes to $1,520/yr. Tethering is currently impossible but we can expect a similar $15 fee, bringing it to $1700/yr. So basically, Verizon is cost-competitive with at&t. I thought I was getting shafted.
T-Mobile's data plan costs $20 less per month, but you only get half the minutes at $80 per month. So basically, phones are expensive. The Palm Centro seems to be a solid choice, given that Verizon has the best coverage.
Well, I guess I might drop the data plan for my phone, which'd save me $60/mo. There's free Wi-Fi most places I need it, so the N800 does pretty well without needing to tether. The Centro is still pretty good at texting, and running Palm apps on it is pretty cool, even offline. I just need to get DosBox working so I can play Prince of Persia. Maybe if I can find a cool Nokia phone that works with Verizon I'll try it out, since they're opening Symbian's source. That'd be nice.
Anyway, end rant. I don't feel as bad about my mobile internet device choices now, at least.
Designing a 4-bit CPU
Yup. I've finally been making some progress on the CPU design front. This all came from a couple of realizations:
1. AND and NAND gates can be used to effectively decode opcodes.
2. AND gates can also be used to activate or deactivate entire subcircuits.
I was hung up before because I couldn't really figure out how to make bits in memory cause the CPU hardware to assume a different state. But... it works! So far, this CPU only has a few opcodes, but I can add numbers together and store arbitrary values into registers. It's far from being Turing complete, but with a little more work I can get it to compute the Fibonacci sequence.
Basically, I need to get it to swap the two main registers and one register with the accumulator. Then I need to figure out how to implement branching. And some logic operations would be nice.
Oh, hey! Turns out there's an IC out there that does exactly what I'm doing with all the AND gates. It's called a demultiplexer. Hooray for parallel invention.
So now I just need to figure out how to do a branch. It's impossible with the simple counter I have - I need to design one that can take input (like a 74193). Yup, that'd do it.