some more code optimizations

This commit is contained in:
FeralChild64 committed 2020-07-19 16:15:50 +02:00
1 parent 8826394e80
commit 12abb60d22
6 files changed
+48 -24

No files matched your search

+9 -10
View File
@@ -42,7 +42,12 @@ cmd_print_string:
// Print a string value
// XXX add optimized 46K/50K version
#if CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K
jsr helper_print_string
jmp_8 cmd_print_next_arg
#else // CONFIG_MEMORY_MODEL_38K || CONFIG_MEMORY_MODEL_60K
ldy #$00
!:
@@ -50,23 +55,17 @@ cmd_print_string:
beq cmd_print_next_arg
#if CONFIG_MEMORY_MODEL_60K
ldx #<(__FAC1 + 1)
jsr peek_under_roms
#elif CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K
jsr peek_under_roms_via_FAC1_PLUS_1
#else // CONFIG_MEMORY_MODEL_38K
lda (__FAC1 + 1), y
#endif
jsr JCHROUT
iny
jmp !-
bpl !-
#endif
cmd_print_float:
@@ -0,0 +1,27 @@
// #LAYOUT# STD * #TAKE-HIGH
// #LAYOUT# * BASIC_0 #TAKE-HIGH
// #LAYOUT# * * #IGNORE
// This has to go $E000 or above - routine below banks out the main BASIC ROM!
#if CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K
helper_print_string:
// Unmap BASIC lower ROM
lda #$26
sta CPU_R6510
// Print the string
ldy #$00
!:
cpy __FAC1 + 0
beq_16 remap_BASIC // branch if end of the string
lda (__FAC1 + 1), y
jsr JCHROUT
iny
bpl !-
#endif
@@ -30,6 +30,10 @@ helper_frmevl_strdesccpy:
lda (VARPNT),y
sta __FAC1+2
// FALLTROUGH
remap_BASIC:
// Restore default memory mapping
lda #$27
@@ -26,8 +26,6 @@ assign_variable_TI_string:
// FALLTROUGH
// XXX provide optimized version for memory models 46K/50K
assign_variable_TI_string_loop:
// First fetch the digit
@@ -49,9 +49,6 @@ helper_gc_misc_end:
// Restore default memory mapping
lda #$27
sta CPU_R6510
rts
jmp remap_BASIC
#endif
@@ -21,7 +21,7 @@ peek_under_roms_via_TXTPTR:
// FALLTROUGH
peek_under_roms_finalize:
remap_BASIC_preserve_A:
// Restore memory mapping
@@ -44,7 +44,7 @@ peek_under_roms_via_OLDTXT:
// Retrieve value from under ROMs
lda (OLDTXT), y
jmp_8 peek_under_roms_finalize
jmp_8 remap_BASIC_preserve_A
peek_under_roms_via_VARPNT:
@@ -56,7 +56,7 @@ peek_under_roms_via_VARPNT:
// Retrieve value from under ROMs
lda (VARPNT), y
jmp_8 peek_under_roms_finalize
jmp_8 remap_BASIC_preserve_A
peek_under_roms_via_FAC1_PLUS_1:
@@ -67,9 +67,8 @@ peek_under_roms_via_FAC1_PLUS_1:
// Retrieve value from under ROMs
lda (__FAC1 + 1), y
jmp_8 peek_under_roms_finalize
lda (__FAC1+1), y
jmp_8 remap_BASIC_preserve_A
#if ROM_LAYOUT_M65
@@ -90,7 +89,7 @@ fetch_character:
// Restore memory mapping
bra peek_under_roms_finalize
jmp_8 remap_BASIC_preserve_A
fetch_character_skip_spaces:
@@ -114,7 +113,7 @@ fetch_character_skip_spaces:
// Restore memory mapping
bra peek_under_roms_finalize
jmp_8 remap_BASIC_preserve_A
#endif