Compare commits

..

2 Commits

2 changed files with 26 additions and 10 deletions

View File

@@ -25,7 +25,7 @@ int main(void) {
; Copyright (c) 2025 Gale Faraday\n\
; Licensed under MIT\n\
\n\
; This file generated by bbmkcmds.c\n\
; This file generated by bbmkhash.c\n\
\n\
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n\
;;\n\
@@ -40,10 +40,10 @@ int main(void) {
/* Command count.
* NOTE: This is a u16 because it gets emitted into the output assembly. */
uint16_t cCmds = sizeof(s_ppszCmds) / sizeof(char *);
uint16_t cCmds = sizeof(s_ppszCmds) / sizeof(char *);
/* Emit command count */
printf("BBCHTC\n fdb $%.4X\n", cCmds);
printf("BBCHTC\n fdb $%.4X\n", cCmds);
/* Emit table data */
puts("\nBBCHT");

View File

@@ -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