diff --git a/src/buzbee.s b/src/buzbee.s index 6625b01..7ecf063 100644 --- a/src/buzbee.s +++ b/src/buzbee.s @@ -40,13 +40,14 @@ BBVAR tagbbvar EXPORT BUZBEE BUZBEE - lbsr NEWLINE ; Setup the new input line and handle display. - bsr INPLOOP ; Fill input buffer. - cmpy #0 ; No data? - beq BUZBEE ; Try again... - lbsr TOKENIZE ; Try to tokenize the input buffer - lbsr RUNIF ; Execute token buffer, handling any errors - bra BUZBEE ; Repeat + lbsr NEWLINE ; Setup the new input line and handle display. + bsr INPLOOP ; Fill input buffer. + cmpy #0 ; No data? + beq BUZBEE ; Try again... + lbsr MKINSENSITIVE ; Make the input buffer case insensitive + lbsr TOKENIZE ; Try to tokenize the input buffer + lbsr RUNIF ; Execute token buffer, handling any errors + bra BUZBEE ; Repeat ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; @@ -127,6 +128,21 @@ NEXT@ ldy #0 ; Reset buffer fill pointer rts +; Makes the input buffer case insensitive +MKINSENSITIVE +NEXTC@ + lda BBVAR.input,x + cmpa #'z ; Is the char outside the lowercase range? + bhi NOTLCASE@ ; Yes? Skip offset part + cmpa #'a ; Again on the other side of the range + blo NOTLCASE@ + anda #$DF ; -32 +NOTLCASE@ + leax 1,x ; Ready next char + cmpx BBVAR.cchinput ; Are we at the end? + bne NEXTC@ ; No? Loop + rts + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; Hex Conversion and Printing Routines