Well, here's what the wiki has to say about it..
Quote:

Port Number: 14h

Function: Flash Write-Lock Control

This port controls whether or not the Flash ROM chip will accept write/erase instructions.
[edit]
Read Values

* 83+ Basic only: Reads absolutely nothing of any significance.
* 83+ SE/84+ only: Reads 0 if the flash is locked, 1 if the flash is unlocked.

[edit]
Write Values

* Write 00h to lock the flash. Write 01h to unlock it, but note that writes to this port are only accepted from privileged ROM pages. See Comments for what the privileged pages are.

[edit]
Comments

When the flash chip is locked, then write/erase instructions are rejected. In addition, protected pages cannot be read. There is only one protected page. On the normal 83+, this is page 1Eh. On the normal 84+, it is 3Eh. On the 83+ SE and 84+ SE it is 7Eh. This page holds the certification data, which includes ID number, validation number, application authorizations, public keys, and other related data.

The flash can only be locked and unlocked from privileged ROM pages. The privileged ROM pages are two utility code pages and one or two boot code pages. On the normal 83+ the pages are 1Ch, 1Dh, and 1Fh. On the normal 84+ the pages are 3Ch, 3Dh, and 3Fh. On the 83+ SE the pages are 7Ch, 7Dh, and 7Fh. On the 84+ SE the pages are 6Fh, 7Ch, 7Dh, and 7Fh.

Finally a specific sequence of instructions must be executed (all of them from a privileged page, with no interruptions) before the port will finally listen. The sequence is:

nop
nop
im 1
di

Note: it is still unclear whether all or only part of this sequence is actually required. But since TI uses this exact sequence every time, it is best to play it safe and use the exact sequence.

After this sequence, use out (14h), a to write the port.

Note that as a side effect, interrupts are disabled, and standard interrupt handling (mode 1) is selected. To ensure this sequence runs uninterrupted, however, you should use di prior to executing this sequence. If an interrupt fired in the middle of it, it would mess up the whole thing. Also, the A register must be previously set to the correct value (0 to lock, 1 to unlock).

Side note: TI also adds an additional di after the write. Sources inform me, however, that this is not required.

I'm not sure if that's what you wanted, though.
That's only from a privileged page, though - you have to get on to the page first.
but this time i have proof i have a friend of mine that works for texas instruments and he says that if you do that under certain memory conditions that will cause an variable error and ti-os thinks that you are just updating your flash memory.... now if i only do things up... at least i know how to make them on hardware and how to work with them in software i'm not a noob like most of you that work with steal routines..... And about assembler let's me think humm can you say to me what these code does....
$DDCBnn08
let's see how you work after if you so smart as you think you are....
Rather than this bullshit about you having us prove ourselves to you, how about YOU prove YOURSELF to US and post some actual code rather than just saying "well a friend of my friends roomates sisters second cousine said this works"

No one cares what you think about them, and no one here needs or wants to prove themselves to you. Rather, the opposite is true
this only comes to prove that you don't understan assembler, better than me second the guy i know works for texas and if you do not know in case you do that by that way of unlocking flash maybe on day you will get an Invalid OS feature an check waht you will screw up your flash memory... that's is how noobs work and that's the way you work... first teatch on asm never release a prgm that you know that if under certain conditions can damage your system..... never use things that aren't fully explained.... by the way what that code does is
RRC (IX+nn) & LD B,(IX+nn)
rayden wrote:
but this time i have proof i have a friend of mine that works for texas instruments...
...as a secretary to the guy that goes for coffee. Laughing Or maybe a janitor
I certainly hope rayden isn't a native English speaker.
allynfolksjr wrote:
I certainly hope rayden isn't a native English speaker.
He's Portuguese, so that excuses his lack of eloquence, but what he's saying is still wrong. Smile
kllrnohj brings up a good point. You came to this forum, run by Kerm here, and we wouldn't be here if Kerm didn't show us what he knew. Now we trust him, but someone who is new needs to show us what he is worth before we can trust him. (sorry if this sounds arrogant, but it is how I feel).
first i was not talking about Kerm... second you proof so i is easy i will resent to you or put it here the mail that i have received from him... i was only sayng that if you still unlocking the flash that way you could in some circunstances damage your calculator....
So, rayden, can you POST YOUR CODE? That would be a big help.
i shouldn't do it but i will.... i only have to remade it... in order to post it here
rayden wrote:
this only comes to prove that you don't understan assembler, better than me second the guy i know works for texas and if you do not know in case you do that by that way of unlocking flash maybe on day you will get an Invalid OS feature an check waht you will screw up your flash memory... that's is how noobs work and that's the way you work...


Wow. Really? I don't know "assembler"? Cause like, I never said I did Rolling Eyes In fact, I believe I only have one Z80 ASM program and I believe I openly admit in several threads that I do not know Z80 ASM - BRILLIANT OBSERVATION Neutral (Although I fail to see how my post "proves" that. The only thing that your post did was reinforce everything I said about you Wink )

But I'm a little concerned with the "that's is how noobs work and that's the way you work..." part, as I'm pretty sure I don't randomly scream "Invalid OS!" throughout the day and proceed to faint and regain consciousness. Although I obviously wouldn't be able to remember it if I do, I'm sure someone would have said something to me by now Very Happy
so you don't have said but someone said... it
Quote:

I think BrandonW might know a hair more about ASM than you.
rayden wrote:
this only comes to prove that you don't understan assembler, better than me

..which was preceded by
rayden wrote:
$DDCBnn08

DDCBnn08 is MACHINE CODE, not assembler. People stopped working in machine code when someone invented an assembler, and they did so for a good reason: it's much easier to make sense of the code, and it does the same thing.
That, and just because Kllrnohj doesn't know asm says nothing about everybody else's skills. For example, I'm rather skilled at asm.
I'll say nothing else until you show us some code.
fair enought....
true, just like with web design, you can WYSIWYG or program the page yourself. Both have their advantage, and I shouldn't bash someone on their Dreamweaver knowledge, just like they shouldn't for my lack of it. Two different ways to do the same thing.
Also, there's a reason that $DDCBnn08 is not generally used - it fails to set one of the usual flags; I disremember which.
I'd be interested to know what these "2 mistakes" are with the flash unlocking method on Detached Solutions.

I can understand the reluctance to release a routine that could potentially destroy a calculator, but really, it's already been done. Just look at the Detached Solutions method. These things aren't uuniversal anyway so they won't work on every calculator, so you couldn't release a program or application based on this.

And if you screw up your OS, you could always resend it. And if you screw up the certificate page so that the OS won't boot, you could (on some calculators anyway) load another OS and restore a good backup, then you're all set.

So, please us all and release your routine.
or maybe if you just crew up the boot you may never get code into your calculator again as the boot is loaded at factory time....
  
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 2 of 3
» 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