Omnimaga

Calculator Community => TI Calculators => ASM => Topic started by: the_mad_joob on April 22, 2014, 11:53:14 am

Title: 8x+ > ram questions
Post by: the_mad_joob on April 22, 2014, 11:53:14 am
Hey there, it's me, again.
Several questions about ram usage :

1) Are pages $82 to $87 altered by a ram|mem clear ?
Before you ask, yes, i'm lazy to check it by myself XD

2) The following questions will refer to that page : http://wikiti.brandonw.net/index.php?title=83Plus:OS:Ram_Pages
In fact, i need to be 100% sure that non of the TI-OSes (including the later "heavy" ones) use pages $82>$87, even for temporary storage.
I'm specially interested in $4100>$433A on page $83 : which code uses that ? the TI-OS ?
If yes, i'm curious to know why would TI have chosen to use that page instead of $82.

Thx in advance for your time =]
Title: Re: 8x+ > ram questions
Post by: Streetwalrus on April 22, 2014, 01:03:09 pm
1) It shouldn't be affected because Omnicalc uses the extra RAM for the backup feature and it actually survives manual clears and crashes.
Title: Re: 8x+ > ram questions
Post by: the_mad_joob on April 22, 2014, 01:19:20 pm
1) It shouldn't be affected because Omnicalc uses the extra RAM for the backup feature and it actually survives manual clears and crashes.
Yeah, that's what wabbit says, too.
Thx for the reply =]
Title: Re: 8x+ > ram questions
Post by: the_mad_joob on April 23, 2014, 08:24:46 pm
I have a new (maybe dumb) question about the ram pages.
Is there actually a way to unlock execution on pages $80,$82,$84,$86 ?
I mean, the only thing i found on the wiki was that way to modify ram execution upper limit using port $26, but it seems to be "bank-specific".
Help appreciated about that =]
Title: Re: 8x+ > ram questions
Post by: Runer112 on April 23, 2014, 08:33:41 pm
Are ports 25 and 26 actually bank-specific? I don't see that suggested in their WikiTI documentation, and my hunch was that they weren't. The default values of 10h and 20h seem to make sense with what areas are normally executable.
Title: Re: 8x+ > ram questions
Post by: the_mad_joob on April 23, 2014, 09:02:12 pm
Hmm, well, if you're right, meaning there's only the execution lower & upper limits that matter, then i don't understand why mentioning that all odd pages have an execution protection there : http://wikiti.brandonw.net/index.php?title=83Plus:OS:Ram_Pages
I mean, as i understand it, there are 2 types of protections : the pages themselves (only the odd ones it seems), and the mem bank where you decide to run the code.
Would require some little clarifications i guess...

/EDIT : Just noticed that port $21 seems to be involved : http://wikiti.brandonw.net/index.php?title=83Plus:Ports:21
Title: Re: 8x+ > ram questions
Post by: the_mad_joob on April 23, 2014, 09:24:47 pm
Ok, if i understood well, you have to modify ports $21, $25 & $26 to get the full 128k executable.
Title: Re: 8x+ > ram questions
Post by: DrDnar on April 23, 2014, 09:30:09 pm
The high nibble of port 21h specifies the physical size of RAM. The TI-83 Plus SE had an external RAM chip. All shipped units were manufactured with a 128 K chip. The allowed sizes were 32, 64, 128, and 256 K, corresponding to values 0 to 3. You'll note that TI always leaves the high nibble set to 0 (instead of the correct value of 2), so the ASIC always thinks there's 32 K of RAM. That's why odd pages are executable: the ASIC masks execution permission based on the programmed chip size.

Ports 25h and 26h specify the actual execution limits before being masked by port 21h. These ports control permission in increments of 1 K. To make all pages executable, set 25h to 00. Because of the masking effect of port 21h, you don't need to set 26h because it's already high enough, nor do you need to modify port 21h. But if it makes you feel better, you could set 21h to 2x, 25h to 00, and 26h to FF.
Title: Re: 8x+ > ram questions
Post by: the_mad_joob on April 23, 2014, 09:34:47 pm
Nice, one port instead of 3 !
Love you Dnar boy =]