Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
05/11/07 11:22
Read: times


 
#139045 - Weekend Quiz - easy
Spot the error(s):
   [... UART already initialised...]
ReceiveString:
   mov    r0,#ReceiveBuffer   ;initialize receiver pointer
LoopReceive:
   jnb    ti,$                ;wait until character received
   clr    ti                  
   mov    a,SBUF              ;get the received character
   jb     acc.7,LoopReceive   ;if unprintable (>= 80h), ignore it
   cjne   a,#20h,$+3
   jc     ControlChars        ;if control char (<20h), separate processing
   mov    SBUF,a              ;printable character: echo it
   mov    @r0,a               ;put it into buffer
   inc    r0                  ;bump pointer
   sjmp   LoopReceive         ;and continue receiving
ControlChars:
   cjne   a,#08h,NotBackSpace
   dec    r0                  ;if BackSpace, eat last character from buffer
   cjne   r0,#ReceiveBuffer,LoopReceive  
   inc    r0                  ;if start of buffer, undo the backspace
   sjmp   LoopReceive
NotBackSpace:
   cjne   a,#13h,LoopReceive  ;if not Carriage Return, receive more characters
   [... continue with processing string]

Enjoy!

JW

List of 44 messages in thread
TopicAuthorDate
Weekend Quiz - easy            01/01/70 00:00      
   Dumbbbbbb            01/01/70 00:00      
      I know of 3, and it is \"synthtetic\"...            01/01/70 00:00      
   Hi Jan!            01/01/70 00:00      
      2 out of 3            01/01/70 00:00      
   Comment lies!            01/01/70 00:00      
      that makes 4... embarrassing            01/01/70 00:00      
         #4            01/01/70 00:00      
            N-th            01/01/70 00:00      
               Similar            01/01/70 00:00      
         Thats the one I saw first too !            01/01/70 00:00      
   Another lyin\' comment            01/01/70 00:00      
      Bingo!            01/01/70 00:00      
   seems solved - so now for the equivalent in C?            01/01/70 00:00      
      Oops            01/01/70 00:00      
         Gee ... it was just an 'x' ...            01/01/70 00:00      
            Yup ...            01/01/70 00:00      
            "just" an x ?            01/01/70 00:00      
   writing SBUF without checking?            01/01/70 00:00      
      well...            01/01/70 00:00      
      the REAL mistake is using an HLL rather than ASM            01/01/70 00:00      
         Not so            01/01/70 00:00      
   Shall we continue this???            01/01/70 00:00      
      the spec itself is problematic            01/01/70 00:00      
         How would you fix the spec?            01/01/70 00:00      
            handle DEL (0x7f) and BS?            01/01/70 00:00      
               throwing in something to chew on... :-)            01/01/70 00:00      
               Are DEL and BS equivalent ???            01/01/70 00:00      
                  relax.            01/01/70 00:00      
      ReceiveString, rev.1            01/01/70 00:00      
         ReceiveString, rev. 2            01/01/70 00:00      
            there are many ways...            01/01/70 00:00      
               Comments on comments on ...            01/01/70 00:00      
                  (comments on)^3            01/01/70 00:00      
                  Caller-saves            01/01/70 00:00      
                     Caller-save vs. Callee-save            01/01/70 00:00      
                        Compiler trade-off            01/01/70 00:00      
      ReceiveString, rev. 3            01/01/70 00:00      
   Sunday Challenge (rev 4)            01/01/70 00:00      
      hard to beat...            01/01/70 00:00      
         Just one more byte ...            01/01/70 00:00      
            want to spare bytes?            01/01/70 00:00      
               CALL vs ACALL            01/01/70 00:00      
                  it depends            01/01/70 00:00      

Back to Subject List