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 // 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 ldy #$00
!: !:
@@ -50,23 +55,17 @@ cmd_print_string:
beq cmd_print_next_arg beq cmd_print_next_arg
#if CONFIG_MEMORY_MODEL_60K #if CONFIG_MEMORY_MODEL_60K
ldx #<(__FAC1 + 1) ldx #<(__FAC1 + 1)
jsr peek_under_roms 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 #else // CONFIG_MEMORY_MODEL_38K
lda (__FAC1 + 1), y lda (__FAC1 + 1), y
#endif #endif
jsr JCHROUT jsr JCHROUT
iny iny
jmp !- bpl !-
#endif
cmd_print_float: 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 lda (VARPNT),y
sta __FAC1+2 sta __FAC1+2
// FALLTROUGH
remap_BASIC:
// Restore default memory mapping // Restore default memory mapping
lda #$27 lda #$27
@@ -26,8 +26,6 @@ assign_variable_TI_string:
// FALLTROUGH // FALLTROUGH
// XXX provide optimized version for memory models 46K/50K
assign_variable_TI_string_loop: assign_variable_TI_string_loop:
// First fetch the digit // First fetch the digit
@@ -49,9 +49,6 @@ helper_gc_misc_end:
// Restore default memory mapping // Restore default memory mapping
lda #$27 jmp remap_BASIC
sta CPU_R6510
rts
#endif #endif
@@ -21,7 +21,7 @@ peek_under_roms_via_TXTPTR:
// FALLTROUGH // FALLTROUGH
peek_under_roms_finalize: remap_BASIC_preserve_A:
// Restore memory mapping // Restore memory mapping
@@ -44,7 +44,7 @@ peek_under_roms_via_OLDTXT:
// Retrieve value from under ROMs // Retrieve value from under ROMs
lda (OLDTXT), y lda (OLDTXT), y
jmp_8 peek_under_roms_finalize jmp_8 remap_BASIC_preserve_A
peek_under_roms_via_VARPNT: peek_under_roms_via_VARPNT:
@@ -56,7 +56,7 @@ peek_under_roms_via_VARPNT:
// Retrieve value from under ROMs // Retrieve value from under ROMs
lda (VARPNT), y lda (VARPNT), y
jmp_8 peek_under_roms_finalize jmp_8 remap_BASIC_preserve_A
peek_under_roms_via_FAC1_PLUS_1: peek_under_roms_via_FAC1_PLUS_1:
@@ -67,9 +67,8 @@ peek_under_roms_via_FAC1_PLUS_1:
// Retrieve value from under ROMs // Retrieve value from under ROMs
lda (__FAC1 + 1), y lda (__FAC1+1), y
jmp_8 peek_under_roms_finalize jmp_8 remap_BASIC_preserve_A
#if ROM_LAYOUT_M65 #if ROM_LAYOUT_M65
@@ -90,7 +89,7 @@ fetch_character:
// Restore memory mapping // Restore memory mapping
bra peek_under_roms_finalize jmp_8 remap_BASIC_preserve_A
fetch_character_skip_spaces: fetch_character_skip_spaces:
@@ -114,7 +113,7 @@ fetch_character_skip_spaces:
// Restore memory mapping // Restore memory mapping
bra peek_under_roms_finalize jmp_8 remap_BASIC_preserve_A
#endif #endif