Could someone please explain to me what signing and paging are? I'm not familiar with app development, so I'm a little lost on those.
Paging: Every app has a certain amount of pages that can hold code and data. Every page is always 16 KB large. Swapping between the pages can be slightly tricky, and I'm not sure about the details.

Signing: Every app has to be signed using a key (kinda like encryption), otherwise the calc thinks you didn't pay for the app, and in that case the calc will delete the app after a while since it thinks it's a trial app. PC programs like rabbitsign can be used for signing.
Why would you need to sign an OS? If TI-OS isn't around to check the key...
Progbeard wrote:
Why would you need to sign an OS? If TI-OS isn't around to check the key...
An OS? I thought we're talking about apps... Anyway, OSes will also need to be signed. The boot code, which can't be altered, checks if the OS is correctly signed.
Oh, I see. That makes a lot of sense. Is the boot code located in some obscure piece of rom?
Progbeard wrote:
Oh, I see. That makes a lot of sense. Is the boot code located in some obscure piece of rom?
Yes. It's one page on the 83+s and two on the 84+s. Its only purposes are to:

-Launch the OS
-Receive the OS if none is present or the battery+DEL trick is used
-Offer some minor functionality that the OS can use (such as USB)
-Perform a hardware test that will do stuff such as erasing flash
So wait, are we talking about apps or OSes here? Because then, describing pages is totally different. Well, sorta. Like an OS has to have certain pages, apps can only be on certain pages, etc.
We're talking about OSes here. To clarify further about paging, the calculator has a 64KB address space ($0000 through $FFFF) but many 16KB RAM pages and many 16KB ROM page. You map these pages into $0000-$3FFF, $4000-$7FFF, $8000-$BFFF, and $C000-$FFFF in order to execute and access the contents of each page.
I still don't completely understand. Is it like bank switching? If so, why do we use 16-bit addressing? o.o
It is exactly like bank switching, and we use 16-bit addressing as that's all the Z80 gives us.
Why have bank switching when you use 16 bits to address? Doesn't that defeat the purpose of bank switching? So you mean to tell me that we use 16-bits to reference a 12-bit addressable memory region? I don't get it.
Progbeard wrote:
Why have bank switching when you use 16 bits to address? Doesn't that defeat the purpose of bank switching? So you mean to tell me that we use 16-bits to reference a 12-bit addressable memory region? I don't get it.


Because 16 bits aren't enough to address megabytes of flash memory.
16 bits allows you to address up to 64KB memory directly, and the calculator has a lot more than 64KB memory (even the bog standard TI-83+ has 544KB), hence then need to use bank switching.
It just dawned on me that apps are kept in flash. Alright, I understand that, but why is RAM paged as well?
Progbeard wrote:
It just dawned on me that apps are kept in flash. Alright, I understand that, but why is RAM paged as well?


Because there is more than 16kb of RAM as well.
graphmastur, you can address up to 64kb of RAM directly with a 16-bit address. My question is, why is RAM paged 4x16k instead of 1x64k, if that makes sense? And how is RAM paged? I was under the impression all 64k was addressable by a program in memory since you used a 16-bit address.
Because not all calculators have 64+ kb of RAM.
Progbeard wrote:
graphmastur, you can address up to 64kb of RAM directly with a 16-bit address. My question is, why is RAM paged 4x16k instead of 1x64k, if that makes sense? And how is RAM paged? I was under the impression all 64k was addressable by a program in memory since you used a 16-bit address.


There are 32 KB of RAM on a TI-83 Plus. In general, the first page (first 16K) is mapped to $C000-$FFFF, while the other page (last 16K) is mapped to $8000-$BFFF. $4000-$7FFF is what people usually use to swap in flash pages, and $0000-$3FFF is always flash page 0.
Oh, I see. I feel dumb now.
Progbeard wrote:
Oh, I see. I feel dumb now.

Yeah, I think it took Brandonw about 3 days and a little help from Kerm (I don't remember, but I think I asked him more about paging) before I finally understood it.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 2
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement