some more code optimizations
This commit is contained in:
1 parent
8826394e80
commit
12abb60d22
6 files changed
+48
-24
No files matched your search
@@ -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
|
||||||
|
|||||||
Reference in new issue
Block a user