Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.
Something I thought would be a cool trick:
What if you were able to permanently invert the calculator screen? Obviously, assembly language is required. All functions of the calculator still work, it would just be that all normally off pixels would be on and all normally on pixels would be off. I'm sure this is possible, I just don't know how. It would also be useful if the said program toggled the mode.

There is the code:
AsmPrgm210000115F3FEF5F4DC9
But this will only invert the screen temporarily and as soon as you type a character, it goes away. I'm looking for a program that will keep it that way as the default.
Anyone got any ideas, or done this before?
Note: I'll be running this code on the TI-84 SE. I was pretty sure this was the right place to stick it Smile
iirc, there is a flag to invert the screen and all text typed/printed (ofc the OS may muck with this)

Override the OS's calls for pixel, char, etc. drawing to invert output by rewriting/modding the 8xu manually.
You could do this in software, but it would be messy to try to get everything looking correct.

This is actually a case where a hardware modification might be useful. You could patch a small amount of logic (a few multiplexers and inverters) on to the LCD driver's interface to the rest of the system. Use the driver's D/I input to switch the signal path through or around your inverters, and the /WR signal allows you to determine which direction to translate data in. I suspect this could be synthesized on a small CPLD, even.

Something like this..


To make it programmable, you could add a state machine to it to intercept some normally-unused commands (such as one of the commands that sets test mode). Send that command to the LCD, and this glue logic toggles its inversion mode.
Whoooaaa that's way outside me league Smile I'm sorry, I didn't make this clear....while my school might think of me as a calculator whiz, what you guys talk about is completely outside me. While I understood what you guys were saying, doing so is completely beyond my ability level. XD Flags and flag groups, I can deal with though.
There, indeed, is a flag to invert all text. Afaik it's invtxtflags but I'm not sure.
Indeed, but as AHelper said, textInverse,(iy+TextFlags) will only get you inverted large-font and small-font text, and only until the next time the OS resets the flag (which is often). There's no way to make non-text pixels get inverted for drawing. What Tari has design you there is an intermediate piece of hardware that inverts the data going to the LCD. Tari, I need to map out which pins of the ribbon cable are Gnd/5+, D/I, W/R, CS, D0:7, and Gnd one of these days.
I implemented the piece of hardware above in Verilog, since I wanted to muck with the Xilinx CPLD board I have laying around:
Code:
module main(
    inout [7:0] CALC_DB,
    inout [7:0] LCD_DB,
    input DI,   // D/I
    input WR   // W/R
    );
   
   reg driveDir, invert;
   wire [7:0] extData;
   wire [7:0] driveData;
   
   // Input sampling
   assign extData = driveDir == 1 ? CALC_DB : LCD_DB;
   // Output driving
   assign driveData = invert == 1 ? ~extData : extData;
   assign CALC_DB = driveDir == 0 ? driveData : 8'bzzzzzzzz;
   assign LCD_DB  = driveDir == 1 ? driveData : 8'bzzzzzzzz;
   
   always @ (DI or WR) begin
      if (DI)
         invert = 1;   // Data; do inversion
      else
         invert = 0;   // Instruction
         
      if (WR) begin
         // Write to LCD
         driveDir = 1;
      end else begin
         // Read from LCD
         driveDir = 0;
      end
   end

endmodule
Unfortunately I can't test it nor program it to my board, because Xilinx's timing analyzer does nothing but crash. I'll blame it on incompatibilities with Windows 8 for now. Maybe Altera's tools will work..
I did once got something very similar to this, but it was triggered by a glitch in an app I made, so it was ofcourse very glitchy, but it did permamently invert the full homescreen (Mathprint). I could try to reproduce the glitch if you're interested.
Would it be possible to install an interrupt that complements all the data on the lcd via the driver?

I suppose even if this worked, it might get flickery
I managed to retrigger the glitch, but it doesn't seem to be as permament as I thought it was. Browsing trough menus resets it (while for some reason, the entire top line of the menu is inverted instaed of only the chars of the title), but browsing trough the catalog doesn't reset it. I think that this, in combination with a hook that checks if you are in a menu can make the calc inverted all the time.

EDIT: screenie
How does it work to invert the screen ? Is it a hook, a bit, something ?
  
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 1
» All times are GMT - 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