Presentation is loading. Please wait.

Presentation is loading. Please wait.

Calculator 9S12DP256 Lab 2. \ Convert counted string at addr1 to double number ud2 \ ud1 normally zero to begin with \ addr2 points to first invalid character.

Similar presentations


Presentation on theme: "Calculator 9S12DP256 Lab 2. \ Convert counted string at addr1 to double number ud2 \ ud1 normally zero to begin with \ addr2 points to first invalid character."— Presentation transcript:

1 Calculator 9S12DP256 Lab 2

2 \ Convert counted string at addr1 to double number ud2 \ ud1 normally zero to begin with \ addr2 points to first invalid character : >NUMBER ( ud1 addr1 -- ud2 addr2 ) \Calculator (add) LOAD lcd256.whp LOAD keypad12.whp VARIABLE ptr VARIABLE first VARIABLE kbuf 20 ALLOT : init( -- ) kbuf ptr ! SPI.INIT init.key lcd.init TRUE first ! ; kbufptr

3 \ Convert counted string at addr1 to double number ud2 \ ud1 normally zero to begin with \ addr2 points to first invalid character : >NUMBER ( ud1 addr1 -- ud2 addr2 ) kbuf ptr : display( n -- ) first @\ if first digit IF init\ clear display FALSE first ! THEN hex2asc DUP >data8\ display digit 1 ptr +! \ update ptr ptr @ C! ; 31 32 33 Enter decimal number 123

4 \ Convert counted string at addr1 to double number ud2 \ ud1 normally zero to begin with \ addr2 points to first invalid character : >NUMBER ( ud1 addr1 -- ud2 addr2 ) kbuf ptr 31 32 33 : enter( n -- d ) DROP ptr @ kbuf - \ get no. of chars kbuf C!\ make counted string 1 ptr +! 0 ptr @ C!\ make asciiz string 0 0 kbuf \ convert ascii string >NUMBER DROP\ to double number TRUE first ! ; Press E 3 0

5 : add( d1 n -- d2 ) clear.lcd enter D+ 2DUP (D.) type.lcd ; : calc( -- ) init BEGIN wait.for.keyup getkey DUP 14 =\ E key IF enter ELSE DUP 10 =\ A key IF add ELSE DUP 12 =\ C key IF init ELSE display THEN AGAIN ;


Download ppt "Calculator 9S12DP256 Lab 2. \ Convert counted string at addr1 to double number ud2 \ ud1 normally zero to begin with \ addr2 points to first invalid character."

Similar presentations


Ads by Google