code size optimization in BASIC

This commit is contained in:
FeralChild64 committed 2020-07-12 11:45:54 +02:00
1 parent 8b629816d7
commit 7edf26fbb6
11 files changed
+25 -41

No files matched your search

+1 -4
View File
@@ -9,10 +9,7 @@
end_of_statement:
jsr fetch_character
cmp #$20 // check for space
beq end_of_statement
jsr fetch_character_skip_spaces
cmp #$3A // check for colon
beq_16 execute_statements
@@ -9,6 +9,8 @@
end_of_statement_check:
// XXX consider optimized version for 46K/56K memory models
ldy #$00
#if CONFIG_MEMORY_MODEL_60K
+1 -3
View File
@@ -16,9 +16,7 @@ execute_statements:
// Skip over any white spaces and colons (':')
!:
jsr fetch_character
cmp #$20 // space, can be skipped
beq !-
jsr fetch_character_skip_spaces
cmp #$3A // colon, can be skipped
beq !-
@@ -0,0 +1,15 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
//
// Fetches a single character, but skips spaces
//
fetch_character_skip_spaces:
jsr fetch_character
cmp #$20
beq fetch_character_skip_spaces
rts
+1 -3
View File
@@ -18,9 +18,7 @@ fetch_uint16:
// Fetch the first character (skip spaces), check if 0-9
jsr fetch_character
cmp #$20
beq fetch_uint16
jsr fetch_character_skip_spaces
jsr convert_PETSCII_to_digit
bcs fetch_uint16_rts
-1
View File
@@ -16,7 +16,6 @@ fetch_coma_uint8:
fetch_uint8:
jsr injest_spaces
lda #IDX__EV2_0E // 'ILLEGAL QUANTITY ERROR'
jsr fetch_uint16
bcs !+
+1 -4
View File
@@ -11,11 +11,8 @@ fetch_variable:
sta VARNAM+1
// Fetch the first character
!:
jsr fetch_character
cmp #$20 // ignore all the spaces
beq !-
jsr fetch_character_skip_spaces
jsr is_AZ
bcs_16 do_SYNTAX_error
+1 -3
View File
@@ -9,11 +9,9 @@
injest_assign:
jsr fetch_character
jsr fetch_character_skip_spaces
cmp #$B2 // assign operator character
beq injest_assign_found
cmp #$20 // space, can always be skipped
beq injest_assign
// Not found
jsr unconsume_character
-18
View File
@@ -1,18 +0,0 @@
// #LAYOUT# STD * #TAKE
// #LAYOUT# * BASIC_0 #TAKE
// #LAYOUT# * * #IGNORE
//
// Injests all spaces
//
// XXX get rid of this when proper number parsing is implemented
injest_spaces:
jsr fetch_character
cmp #$20 // space, can be skipped
beq injest_spaces
jmp unconsume_character
+1 -2
View File
@@ -37,8 +37,7 @@ wedge_arrow_H:
// Make sure the syntax is correct
jsr injest_spaces
jsr fetch_character
jsr fetch_character_skip_spaces
cmp #$00
bne_16 do_SYNTAX_error
+2 -3
View File
@@ -13,9 +13,8 @@ wedge_tape_prepare_load:
// Make sure the syntax is correct
jsr injest_spaces
jsr fetch_character
jsr fetch_character_skip_spaces
cmp #$00
beq wedge_tape_prepare_load_no_filename // branch if no file name given
cmp #$22