Oh I'm terribly sorry I didn't notice it was in the Lua section >< just ignore my comment on this then... If the hardware is the same then isn't it pretty much impossible?
If I followed the recent news you can distinguish an ndless capable one from a not ndless capable one by checking it's date stamp, if it says J in it you can't have ndless for now. Other than that there's no difference between nspires afaik. If you're looking for ways to make it obvious it's yours, take a look at some tools for ndless that enable you to use passwords or change the color scheme.
Welcome to my scrapyard. I have not stopped with ARM, I'm just picking up real life again since my study's second year is about to start. Progress will be much slower and updates may become rare(r), so I guessed I'd post what I've done so far. It's not much and by far good, but maybe it's useful to somebody or something.
#include <os.h> @ r0: screen address @ r2: counter @ r3: address of sprite address @ @ main: .global main push {r4-r11, lr}@ push link register on the stack bl lcd_ingray bl clrscr ldr r0, =0xC0000010@ screen address ldr r0, [r0]@ put the address of the screen address in r0 mov r2, #8@ counter adr r1, sprite@ store the address of sprite in r1 adr r4, sprite2 add r0, #200 add r0, #SCREEN_WIDTH/2 * 160 mov r5, #40 draw: ldr r3, [r1], #4@ load whatever is on the address contained in r1 in r3 @ r1 contains the address of sprite, so r3 will contain @ the nth word of sprite data str r3, [r0], #8@ draw a line to the screen ldr r3, [r4], #4 str r3, [r0], #-8 add r0, #SCREEN_WIDTH/2@ move to the next line subs r2, #1@ counter count down bne draw@ if there are lines left, draw the next one bl wait_key_pressed mov r0, #0 pop {r4-r11, pc}@ return 0 and pop everything back sprite: .word 0x00000000, 0x00000000, 0x00FFFF00, 0x00FFFF00, 0x00FFFF00, 0x00FFFF00, 0x00000000, 0x00000000 sprite2: .word 0x00FFFF00, 0x00FFFF00, 0xFF0000FF, 0xFF0000FF, 0xFF0000FF, 0xFF0000FF, 0x00FFFF00, 0x00FFFF00
#include <os.h> @ check http://hackspire.unsads.com/wiki/index.php/Keypads for keypad info main: .global main push {lr} bl lcd_ingray bl clrscr ldr r0, =0x900E0010@ keypad data address check: ldrh r1, [r0, #14]@ load the first half word into r1 tst r1, #1 << 9@ check for a keypress (ctrl here), a keypress clears a bit bne end@ if the bit is not cleared (no keypress) branch to check b check@ else end the program end: mov r0, #0 pop {pc}
Stuff that resembles a program Stone age text editor (most likely written terribly, can throw errors because of this)
@ handle special keys spacekey: adr r0, off ldr r1, [r0] add r1, #4 str r1, [r0]
add r11, #4 bl wait_key_pressed b keycheck delkey: @ set the screen pointer back one step sub r10, #4 sub r11, #4 @ set the offset back one step adr r0, off ldr r1, [r0] cmp r1, #0 subne r1, #4 str r1, [r0]
@ store emptyness at the characters place ldr r0, =0xFFFFFFFF mov r1, #8 drawdel: str r0, [r10] add r10 ,#SCREEN_WIDTH/2 subs r1, #1 bne drawdel bl wait_key_pressed b keycheck enterkey: ldr r0, =SCREEN_WIDTH/2 * 9 ldr r1, off sub r0, r1 add r11, r0
adr r0, off mov r1, #0 str r1, [r0]
bl wait_key_pressed b keycheck ctrlkey: b end end: mov r0, #0 pop {r4-r11, pc}
@ Sprites; pixels go lik 0x78563412 !!!! @ for some reason letter_z only works if it is located above letter_y
I wish I could do that kind of traveling, how was Australia? I hope the spark returns someday, but for now it seems your future is great and I wish you the best of luck with your study and other things
First of all that H should be H+ to correctly balance the equation IIRC Lewis does not apply here because there are no lone pairs. For the acid/base part, you know what an acid does. It donates protons. So you'll have C6H8O6 → C6H6O6 + H+ 2H+ + 2I- → 2 H+I- The acid base pair would be C6H8O6 / C6H6O6 For the report, I can't help with that. I hope I remember this correctly, it's been a while since I've done this so I may be wrong.
I hope that drop will form soon, nSDL is an awesome project Maybe silly question: could someone give an example when you want code to be unable to be interruped?
I'll try that when I go with a serious program. Right now I'm just seeing what I can do and ask some questions I want to have a couple of things done before I start a project, so that I know a bit about it. Though I'll try your suggestion of using ldr instead of adr. Thanks for the help
I'm sure there are cleaner/better ways to do this as I'm only starting 0x900E0010 is the address from where to read for key presses. Putting ALIGN in front gives an error "bad instruction". The 0x400 as a limit makes sense with the error messages, thanks for pointing it out.
A bit later, after I posted this question, I started commenting out the lines it said. If I don't use the letter z it builds and works fine, so I thought it might had something to do with that adr and errors if anything is placed after it. However, it also works fine if I place letter_z anywhere above letter_y, why doesn't it this then also generate an error for the lowest letter (lowest as in las of he sprites)? I'll have a look at macros and see what I can do with them
I've been trying to have some sort of text input with ARM now but I've hit a wall at this point. I've implemented enter/newline continuing at the same x position and also managed to get it back to the start of the line. The problem I have is incorporating the delete/backspace functionality. The code below shows how I imagined it to go, but this makes enter act all funky and weird, offsetting the letters from the right by the amount of characters deleted. When uncommenting the commented code in delkey the program will not even build, resulting in an error message "149: Error: invalid constant (408) after fixup".
@ handle special keys spacekey: adr r0, off ldr r1, [r0] add r1, #4 str r1, [r0]
add r11, #4 bl wait_key_pressed b keycheck delkey: @ set the screen pointer back one step sub r10, #4 sub r11, #4 @ set the offset back one step @adr r0, off @ldr r1, [r0] @cmp r1, #0 @subne r1, #4 @str r1, [r0]
@ store emptyness at the characters place ldr r0, =0xFFFFFFFF mov r1, #8 drawdel: str r0, [r10] add r10 ,#SCREEN_WIDTH/2 subs r1, #1 bne drawdel bl wait_key_pressed b keycheck enterkey: ldr r0, =SCREEN_WIDTH/2 * 9 ldr r1, off sub r0, r1 add r11, r0
adr r0, off mov r1, #0 str r1, [r0]
bl wait_key_pressed b keycheck ctrlkey: b end end: mov r0, #0 pop {r4-r11, pc}