From 3b4cf3faef72689301dc770115ed64c442afdc1f Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Sun, 19 Jul 2020 10:21:25 +0200 Subject: [PATCH] use pseudocode instead of jmp/bra selection --- src/basic/basic_commands/cmd_run_goto.s | 7 +----- src/basic/basic_commands_CC/cmd_mem.s | 6 +---- src/basic/engine_editor/find_line.s | 10 ++++---- src/basic/engine_editor/tk_shorten.s | 6 +---- src/basic/engine_editor/tokenise_line.s | 6 +---- src/basic/engine_runtime/ad9e.frmevl.s | 6 +---- src/basic/engine_runtime/fetch_uint16.s | 6 +---- src/basic/engine_variables/fetch_variable.s | 12 ++------- src/basic/engine_variables/tmpstr_free.s | 7 ++---- src/basic/engine_variables/varstr_alloc.s | 6 +---- .../memory/under_rom_peek_fetch_46k_50k.s | 21 +++------------- src/basic/memory/under_rom_shift_46k_50k.s | 6 +---- src/basic/print/list_single_line.s | 25 ++++--------------- src/basic/print/print_packed_freq_string.s | 2 +- src/basic/wedge/wedge_dos.s | 12 ++------- src/kernal/keyboard/scnkey.s | 7 ++---- src/kernal/memory/under_rom_46k_50k.s | 12 ++------- 17 files changed, 32 insertions(+), 125 deletions(-) diff --git a/src/basic/basic_commands/cmd_run_goto.s b/src/basic/basic_commands/cmd_run_goto.s index 4f181c7a..043862c3 100644 --- a/src/basic/basic_commands/cmd_run_goto.s +++ b/src/basic/basic_commands/cmd_run_goto.s @@ -49,12 +49,7 @@ cmd_goto: // Else - search from the current line jsr find_line_from_current - -#if HAS_OPCODES_65C02 - bra cmd_goto_check -#else - jmp cmd_goto_check -#endif + jmp_8 cmd_goto_check cmd_goto_direct: diff --git a/src/basic/basic_commands_CC/cmd_mem.s b/src/basic/basic_commands_CC/cmd_mem.s index ee15221c..ded5d334 100644 --- a/src/basic/basic_commands_CC/cmd_mem.s +++ b/src/basic/basic_commands_CC/cmd_mem.s @@ -123,11 +123,7 @@ cmd_mem_loop: bcs !+ lda #$3F jsr JCHROUT -#if HAS_OPCODES_65C02 - bra cmd_mem_next -#else - jmp cmd_mem_next -#endif + jmp_8 cmd_mem_next !: jsr print_integer diff --git a/src/basic/engine_editor/find_line.s b/src/basic/engine_editor/find_line.s index 9487e432..b99f86a2 100644 --- a/src/basic/engine_editor/find_line.s +++ b/src/basic/engine_editor/find_line.s @@ -24,6 +24,8 @@ find_line_from_current: // Fetch the high byte of line number and compare ldy #$03 + // XXX consider optimized 46K/50K version + #if CONFIG_MEMORY_MODEL_60K ldx # $FF jsr varstr_garbage_collect -#if HAS_OPCODES_65C02 - bra varstr_alloc_retry -#else - jmp varstr_alloc_retry -#endif + jmp_8 varstr_alloc_retry diff --git a/src/basic/memory/under_rom_peek_fetch_46k_50k.s b/src/basic/memory/under_rom_peek_fetch_46k_50k.s index 6aedc40d..31368d5e 100644 --- a/src/basic/memory/under_rom_peek_fetch_46k_50k.s +++ b/src/basic/memory/under_rom_peek_fetch_46k_50k.s @@ -44,12 +44,7 @@ peek_under_roms_via_OLDTXT: // Retrieve value from under ROMs lda (OLDTXT), y - -#if HAS_OPCODES_65C02 - bra peek_under_roms_finalize -#else - jmp peek_under_roms_finalize -#endif + jmp_8 peek_under_roms_finalize peek_under_roms_via_VARPNT: @@ -61,12 +56,7 @@ peek_under_roms_via_VARPNT: // Retrieve value from under ROMs lda (VARPNT), y - -#if HAS_OPCODES_65C02 - bra peek_under_roms_finalize -#else - jmp peek_under_roms_finalize -#endif + jmp_8 peek_under_roms_finalize peek_under_roms_via_FAC1_PLUS_1: @@ -78,12 +68,7 @@ peek_under_roms_via_FAC1_PLUS_1: // Retrieve value from under ROMs lda (__FAC1 + 1), y - -#if HAS_OPCODES_65C02 - bra peek_under_roms_finalize -#else - jmp peek_under_roms_finalize -#endif + jmp_8 peek_under_roms_finalize #if ROM_LAYOUT_M65 diff --git a/src/basic/memory/under_rom_shift_46k_50k.s b/src/basic/memory/under_rom_shift_46k_50k.s index 99912589..cd023d33 100644 --- a/src/basic/memory/under_rom_shift_46k_50k.s +++ b/src/basic/memory/under_rom_shift_46k_50k.s @@ -33,11 +33,7 @@ shift_mem_up_internal: dec memmove__size+1 bne !- -#if HAS_OPCODES_65C02 - bra shift_mem_internal_finalize -#else - jmp shift_mem_internal_finalize -#endif + jmp_8 shift_mem_internal_finalize shift_mem_down_internal: diff --git a/src/basic/print/list_single_line.s b/src/basic/print/list_single_line.s index 65581a6e..ac2a4e19 100644 --- a/src/basic/print/list_single_line.s +++ b/src/basic/print/list_single_line.s @@ -127,11 +127,8 @@ list_display_token_CC: // Now ask for it to be printed jsr print_packed_keyword_CC -#if HAS_OPCODES_65C02 - bra list_token_displayed -#else - jmp list_token_displayed -#endif + jmp_8 list_token_displayed + list_display_token_CD: @@ -169,11 +166,7 @@ list_display_token_CD: // Now ask for it to be printed jsr print_packed_keyword_CD -#if HAS_OPCODES_65C02 - bra list_token_displayed -#else - jmp list_token_displayed -#endif + jmp_8 list_token_displayed list_display_token_V2: @@ -242,11 +235,7 @@ list_is_unknown: jsr STROUT ply_trash_a -#if HAS_OPCODES_65C02 - bra !+ -#else - jmp !+ -#endif + jmp_8 !+ list_is_literal_known: @@ -263,10 +252,6 @@ list_display_unknown_token: pla pla -#if HAS_OPCODES_65C02 - bra list_is_unknown -#else - jmp list_is_unknown -#endif + jmp_8 list_is_unknown #endif // ROM layout diff --git a/src/basic/print/print_packed_freq_string.s b/src/basic/print/print_packed_freq_string.s index a936a675..a467b850 100644 --- a/src/basic/print/print_packed_freq_string.s +++ b/src/basic/print/print_packed_freq_string.s @@ -114,7 +114,7 @@ print_freq_packed_string_nibble_hi: tax lda packed_as_1n-1, x - jmp !+ // XXX should be bra on some CPUs + jmp_8 !+ print_freq_packed_string_3n_single: diff --git a/src/basic/wedge/wedge_dos.s b/src/basic/wedge/wedge_dos.s index b1a1a555..ace10a2c 100644 --- a/src/basic/wedge/wedge_dos.s +++ b/src/basic/wedge/wedge_dos.s @@ -216,11 +216,7 @@ wedge_dos_status_get_done: wedge_dos_status: jsr wedge_dos_status_get -#if HAS_OPCODES_65C02 - bra wedge_dos_status_print_no_new_line -#else - jmp wedge_dos_status_print_no_new_line -#endif + jmp_8 wedge_dos_status_print_no_new_line wedge_dos_status_print: @@ -243,11 +239,7 @@ wedge_dos_status_print_no_new_line: !: // Clean-up and exit -#if HAS_OPCODES_65C02 - bra wedge_dos_clean_exit -#else - jmp wedge_dos_clean_exit -#endif + jmp_8 wedge_dos_clean_exit wedge_dos_directory: diff --git a/src/kernal/keyboard/scnkey.s b/src/kernal/keyboard/scnkey.s index cf832bf0..cd0cb7a5 100644 --- a/src/kernal/keyboard/scnkey.s +++ b/src/kernal/keyboard/scnkey.s @@ -150,11 +150,8 @@ scnkey_bucky_loop: lda KEYLOG+1 bne !+ jsr scnkey_set_keytab // KEYLOG routine on zeropage? most likely vector not set -#if HAS_OPCODES_65C02 - bra scnkey_keytab_set_done -#else - jmp scnkey_keytab_set_done -#endif + jmp_8 scnkey_keytab_set_done + !: #if HAS_OPCODES_65CE02 jsr_ind KEYLOG diff --git a/src/kernal/memory/under_rom_46k_50k.s b/src/kernal/memory/under_rom_46k_50k.s index 0db1dc6b..04ef9714 100644 --- a/src/kernal/memory/under_rom_46k_50k.s +++ b/src/kernal/memory/under_rom_46k_50k.s @@ -53,11 +53,7 @@ peek_under_roms_via_FNADDR: // Continue using common code -#if HAS_OPCODES_65C02 - bra peek_under_roms_finalize -#else - jmp peek_under_roms_finalize -#endif + jmp_8 peek_under_roms_finalize peek_under_roms_via_EAL: @@ -75,11 +71,7 @@ peek_under_roms_via_EAL: // Continue using common code -#if HAS_OPCODES_65C02 - bra peek_under_roms_finalize -#else - jmp peek_under_roms_finalize -#endif + jmp_8 peek_under_roms_finalize #endif