From 6a1070c8ac34a0a59451bbf4073d5ee1e9865726 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Fri, 7 Feb 2020 17:57:46 +0100 Subject: [PATCH] added support for the Commander X16 memory layout --- Makefile | 341 +++++++++++------- c64/,,config_cx16.s | 136 +++++++ c64/aliases/,aliases_config.s | 3 + c64/aliases/,aliases_cpu.s | 4 +- c64/aliases/,aliases_rom_basic.s | 11 + c64/basic/,stubs/a408.reason.s | 1 + c64/basic/,stubs/a453.unknown.s | 1 + c64/basic/,stubs/a483.main.s | 9 +- c64/basic/,stubs/a57c.chrnch.s | 1 + c64/basic/,stubs/a644.new.s | 1 + c64/basic/,stubs/a659.setcharptr.s | 1 + c64/basic/,stubs/a71a.qplop.s | 1 + c64/basic/,stubs/a7e4.gone.s | 1 + c64/basic/,stubs/ad9e.frmevl.s | 1 + c64/basic/,stubs/ae86.eval.s | 1 + .../,stubs_math/a9c4.convert_FAC1_to_INT.s | 1 + c64/basic/,stubs_math/aabc.print_FAC1.s | 1 + c64/basic/,stubs_math/af7b.compute_TI.s | 1 + c64/basic/,stubs_math/af7e.math_stub.s | 1 + c64/basic/,stubs_math/af87.math_stub.s | 1 + c64/basic/,stubs_math/af9a.compute_ST.s | 1 + c64/basic/,stubs_math/b1aa.FACINX.s | 1 + c64/basic/,stubs_math/b391.GIVAYF.s | 1 + .../,stubs_math/b3a2.convert_Y_to_FAC1.s | 1 + .../,stubs_math/b794.convert_A_to_FAC1.s | 1 + c64/basic/,stubs_math/b7b5.STRVAL.s | 1 + .../,stubs_math/b7f7.convert_FAC1_to_ADDR.s | 1 + c64/basic/,stubs_math/b849.add_HALF_FAC1.s | 1 + c64/basic/,stubs_math/b86a.add_FAC2_FAC1.s | 1 + .../,stubs_math/b947.inv_FAC1_mantissa.s | 1 + c64/basic/,stubs_math/b983.MULSHF.s | 1 + c64/basic/,stubs_math/b9ea.log_FAC1.s | 1 + c64/basic/,stubs_math/ba2b.mul_FAC2_FAC1.s | 1 + c64/basic/,stubs_math/ba59.MLTPLY.s | 1 + c64/basic/,stubs_math/bae2.mul10_FAC1.s | 1 + c64/basic/,stubs_math/bafe.div10_FAC1_p.s | 1 + c64/basic/,stubs_math/bb12.div_FAC2_FAC1.s | 1 + c64/basic/,stubs_math/bc2b.sgn_FAC1_A.s | 1 + c64/basic/,stubs_math/bc39.sgn_FAC1.s | 1 + .../,stubs_math/bc3c.convert_A_to_FAC1.s | 1 + .../,stubs_math/bc44.convert_i16_to_FAC1.s | 1 + c64/basic/,stubs_math/bc58.abs_FAC1.s | 1 + c64/basic/,stubs_math/bc5b.FCOMP.s | 1 + c64/basic/,stubs_math/bc9b.QINT.s | 1 + c64/basic/,stubs_math/bccc.int_FAC1.s | 1 + c64/basic/,stubs_math/bcf3.FIN.s | 1 + c64/basic/,stubs_math/bd7e.FINLOG.s | 1 + c64/basic/,stubs_math/bddd.FOUT.s | 1 + c64/basic/,stubs_math/bf71.sqr_FAC1.s | 1 + c64/basic/,stubs_math/bf74.sqr_FAC2.s | 1 + c64/basic/,stubs_math/bf78.FPWR.s | 1 + c64/basic/,stubs_math/bf7b.FPWRT.s | 1 + c64/basic/,stubs_math/bfed.exp_FAC1.s | 1 + c64/basic/a533.linkprg.s | 1 + c64/basic/a68e.runc.s | 1 + c64/basic/a7ae.newstt.s | 1 + c64/basic/ab1e.strout.s | 1 + c64/basic/bdcd.linprt.s | 1 + .../dummy.s => board_m65/mega65_dummy.s} | 2 +- c64/basic/board_x16/cx16_dummy.s | 7 + c64/basic/c000.skip_gap.s | 1 + c64/basic/init/a000.cold_start_vector.s | 1 + c64/basic/init/a002.warm_start_vector.s | 1 + c64/basic/math/b850.sub_MEM_FAC1.s | 1 + c64/basic/math/b853.sub_FAC2_FAC1.s | 1 + c64/basic/math/b862.add_align_exponent.jmp.s | 1 + c64/basic/math/b867.add_MEM_FAC1.s | 1 + c64/basic/math/b8fe.normal_FAC1.jmp.s | 1 + c64/basic/math/ba28.mul_MEM_FAC1.s | 1 + c64/basic/math/ba8c.mov_MEM_FAC2.jmp.s | 1 + c64/basic/math/bb0f.div_MEM_FAC1.s | 1 + c64/basic/math/bba2.mov_MEM_FAC1.jmp.s | 1 + c64/basic/math/bbc7.mov_r_FAC1_TMP2.s | 1 + c64/basic/math/bbca.mov_r_FAC1_TMP1.s | 1 + c64/basic/math/bbd0.mov_r_FAC1_VAR.s | 1 + c64/basic/math/bbd4.mov_r_FAC1_MEM.s | 1 + c64/basic/math/bbfc.mov_FAC2_FAC1.s | 1 + c64/basic/math/bc0c.mov_r_FAC1_FAC2.s | 1 + c64/basic/math/bc0f.mov_FAC1_FAC2.jmp.s | 1 + c64/basic/math/bc1b.round_FAC1.jmp.s | 1 + c64/basic/math/bfb4.toggle_sign_FAC1.s | 1 + c64/basic/math_consts/aea8.const_PI.s | 1 + c64/basic/math_consts/b1a5.const_NEG_32768.s | 1 + c64/basic/math_consts/b9bc.const_ONE.s | 1 + c64/basic/math_consts/b9d6.const_INV_SQR_2.s | 1 + c64/basic/math_consts/b9db.const_SQR_2.s | 1 + c64/basic/math_consts/b9e0.const_NEG_HALF.s | 1 + c64/basic/math_consts/b9e5.const_LOG_2.s | 1 + c64/basic/math_consts/baf9.const_TEN.s | 1 + c64/basic/math_consts/bf11.const_HALF.s | 1 + c64/basic/math_consts/bfbf.const_INV_LOG_2.s | 1 + c64/basic/math_consts/bfe8.const_ONE.s | 1 + c64/basic/rom_revision/a004.identifier.s | 1 + .../rom_revision/bf52.rom_revision_basic.s | 1 + .../{keyboard => assets}/programmable_keys.s | 0 .../{banking => board_m65}/4000.interop | 0 .../4000.mega65_vectable_kernal_1.s | 0 .../{banking => board_m65}/mega65_imports.s | 0 .../mega65_map_helpers.s | 0 .../{banking => board_m65}/mega65_proxies.s | 0 .../mega65_redirect_load_tape.s | 0 .../mega65_tape_normal_byte_store.s} | 0 c64/kernal/board_x16/cx16_dummy.s | 7 + c64/kernal/board_x16/cx16_stubs.s | 44 +++ c64/kernal/iec/iec_wait1ms.s | 1 + c64/kernal/init/e5a0.setup_vicii.s | 1 + c64/kernal/init/fce2.hw_entry_reset.s | 3 + c64/kernal/init/fd50.ramtas.s | 1 + c64/kernal/init/fda3.ioinit.s | 1 + c64/kernal/init/setup_pal_ntsc.s | 1 + .../interrupts/ea31.default_irq_handler.s | 8 + .../ea7e.ack_cia1_return_from_interrupt.s | 1 + .../interrupts/fe66.default_brk_handler.s | 4 + c64/kernal/{screen => iostack}/e50a.interop | 0 c64/kernal/{screen => iostack}/e50a.plot.s | 0 .../pop_keyboard_buffer.s | 0 c64/kernal/keyboard/chrin_keyboard.s | 1 + c64/kernal/keyboard/kb_matrix.s | 1 + c64/kernal/keyboard/kb_matrix_128.s | 1 + c64/kernal/keyboard/kb_matrix_65.s | 1 + c64/kernal/keyboard/kb_matrix_alwaysrepeat.s | 1 + c64/kernal/keyboard/kb_matrix_bucky.s | 1 + c64/kernal/keyboard/kb_matrix_bucky_filter.s | 1 + c64/kernal/keyboard/kb_matrix_joy.s | 1 + c64/kernal/keyboard/kb_matrix_lookup.s | 1 + c64/kernal/keyboard/kb_matrix_lookup_legacy.s | 1 + c64/kernal/keyboard/kb_matrix_row_keys.s | 1 + c64/kernal/keyboard/kb_matrix_row_offsets.s | 1 + c64/kernal/keyboard/keyboard_disconnect.s | 1 + c64/kernal/keyboard/scnkey.s | 1 + c64/kernal/keyboard/scnkey_128.s | 1 + c64/kernal/keyboard/scnkey_65.s | 1 + c64/kernal/keyboard/scnkey_legacy.s | 1 + c64/kernal/keyboard/scnkey_set_keytab.s | 1 + c64/kernal/keyboard/udtim_keyboard.s | 1 + c64/kernal/screen/chrout_screen.s | 1 + c64/kernal/screen/chrout_screen_clr.s | 1 + c64/kernal/screen/chrout_screen_control.s | 1 + c64/kernal/screen/chrout_screen_crsr.s | 1 + c64/kernal/screen/chrout_screen_del.s | 1 + c64/kernal/screen/chrout_screen_gfxtxt.s | 1 + c64/kernal/screen/chrout_screen_home.s | 1 + c64/kernal/screen/chrout_screen_ins.s | 1 + .../screen/chrout_screen_jumptable_codes.s | 1 + c64/kernal/screen/chrout_screen_quote.s | 1 + c64/kernal/screen/chrout_screen_return.s | 1 + c64/kernal/screen/chrout_screen_rvs.s | 1 + c64/kernal/screen/chrout_screen_shift_onoff.s | 1 + c64/kernal/screen/chrout_screen_stop.s | 1 + c64/kernal/screen/chrout_screen_tab.s | 1 + c64/kernal/screen/cursor.s | 1 + c64/kernal/screen/cursor_enable.s | 1 + c64/kernal/screen/cursor_show.s | 1 + c64/kernal/screen/e544.clear_screen.s | 1 + c64/kernal/screen/e566.cursor_home.s | 1 + .../screen/e56c.screen_calculate_pointers.s | 1 + c64/kernal/screen/e8ea.screen_scroll_up.s | 1 + c64/kernal/screen/e9ff.screen_clear_line.s | 1 + c64/kernal/screen/screen.s | 1 + .../screen/screen_advance_to_next_line.s | 1 + c64/kernal/screen/screen_calculate_pnt_user.s | 1 + .../screen/screen_calculate_pntr_lnmx.s | 1 + .../screen/screen_check_space_ends_line.s | 1 + c64/kernal/screen/screen_code_to_petscii.s | 1 + c64/kernal/screen/screen_get_cliped_pntr.s | 1 + .../screen/screen_get_logical_line_end_ptr.s | 1 + c64/kernal/screen/screen_grow_logical_line.s | 1 + c64/kernal/screen/screen_off.s | 1 + c64/kernal/screen/screen_on.s | 1 + c64/kernal/screen/screen_preserve_sal_eal.s | 1 + c64/kernal/screen/screen_restore_sal_eal.s | 1 + doc/Development.md | 16 +- tools/build_segment.cc | 18 +- 173 files changed, 605 insertions(+), 155 deletions(-) create mode 100644 c64/,,config_cx16.s rename c64/basic/{banking/dummy.s => board_m65/mega65_dummy.s} (60%) create mode 100644 c64/basic/board_x16/cx16_dummy.s rename c64/kernal/{keyboard => assets}/programmable_keys.s (100%) rename c64/kernal/{banking => board_m65}/4000.interop (100%) rename c64/kernal/{banking => board_m65}/4000.mega65_vectable_kernal_1.s (100%) rename c64/kernal/{banking => board_m65}/mega65_imports.s (100%) rename c64/kernal/{banking => board_m65}/mega65_map_helpers.s (100%) rename c64/kernal/{banking => board_m65}/mega65_proxies.s (100%) rename c64/kernal/{banking => board_m65}/mega65_redirect_load_tape.s (100%) rename c64/kernal/{tape/tape_normal_byte_store_mega65.s => board_m65/mega65_tape_normal_byte_store.s} (100%) create mode 100644 c64/kernal/board_x16/cx16_dummy.s create mode 100644 c64/kernal/board_x16/cx16_stubs.s rename c64/kernal/{screen => iostack}/e50a.interop (100%) rename c64/kernal/{screen => iostack}/e50a.plot.s (100%) rename c64/kernal/{keyboard => iostack}/pop_keyboard_buffer.s (100%) diff --git a/Makefile b/Makefile index b80ef23f..49f6bd6e 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,8 @@ SRCDIR_BASIC = $(SRCDIR_COMMON) \ c64/basic \ c64/basic/,stubs \ c64/basic/,stubs_math \ - c64/basic/banking \ + c64/basic/board_m65 \ + c64/basic/board_x16 \ c64/basic/commands \ c64/basic/init \ c64/basic/math \ @@ -23,7 +24,8 @@ SRCDIR_KERNAL = $(SRCDIR_COMMON) \ c64/kernal \ c64/kernal/,stubs \ c64/kernal/assets \ - c64/kernal/banking \ + c64/kernal/board_m65 \ + c64/kernal/board_x16 \ c64/kernal/iec \ c64/kernal/iec_fast \ c64/kernal/init \ @@ -50,19 +52,21 @@ GEN_KERNAL = # List of build directories -DIR_CUSTOM = build/target_custom -DIR_GENERIC = build/target_generic -DIR_TESTING = build/target_testing -DIR_MEGA65 = build/target_mega65 -DIR_ULTIMATE64 = build/target_ultimate64 +DIR_CUS = build/target_custom +DIR_GEN = build/target_generic +DIR_TST = build/target_testing +DIR_M65 = build/target_mega65 +DIR_U64 = build/target_ultimate64 +DIR_X16 = build/target_cx16 # List of config files -CFG_CUSTOM = c64/,,config_custom.s -CFG_GENERIC = c64/,,config_generic.s -CFG_TESTING = c64/,,config_testing.s -CFG_MEGA65 = c64/,,config_mega65.s -CFG_ULTIMATE64 = c64/,,config_ultimate64.s +CFG_CUSTOM = c64/,,config_custom.s +CFG_GEN = c64/,,config_generic.s +CFG_TESTING = c64/,,config_testing.s +CFG_M65 = c64/,,config_mega65.s +CFG_U64 = c64/,,config_ultimate64.s +CFG_X16 = c64/,,config_cx16.s # Dependencies - helper variables @@ -84,27 +88,43 @@ TOOLS_LIST = $(pathsubst tools/%,build/tools/%,$(basename $(SRC_TOOLS))) # List of targets -STD_TARGET_LIST_CUSTOM = build/kernal_custom.rom build/basic_custom.rom -STD_TARGET_LIST_GENERIC = build/kernal_generic.rom build/basic_generic.rom -STD_TARGET_LIST_TESTING = build/kernal_testing.rom build/basic_testing.rom -STD_TARGET_LIST_ULTIMATE64 = build/kernal_ultimate64.rom build/basic_ultimate64.rom -STD_TARGET_LIST_MEGA65 = build/mega65.rom +TARGET_CUS_B = build/kernal_custom.rom +TARGET_GEN_B = build/kernal_generic.rom +TARGET_TST_B = build/kernal_testing.rom +TARGET_U64_B = build/kernal_ultimate64.rom -STD_TARGET_LIST = build/chargen.rom \ - $(STD_TARGET_LIST_CUSTOM) \ - $(STD_TARGET_LIST_GENERIC) \ - $(STD_TARGET_LIST_TESTING) \ - $(STD_TARGET_LIST_MEGA65) \ - $(STD_TARGET_LIST_ULTIMATE64) +TARGET_CUS_K = build/kernal_custom.rom +TARGET_GEN_K = build/kernal_generic.rom +TARGET_TST_K = build/kernal_testing.rom +TARGET_U64_K = build/kernal_ultimate64.rom -EXT_TARGET_LIST = build/mega65.rom +TARGET_M65_x = build/mega65.rom +TARGET_X16_x = build/cx16-dummy.rom -SEG_LIST_MEGA65 = $(DIR_MEGA65)/basic.seg_0 \ - $(DIR_MEGA65)/basic.seg_1 \ - $(DIR_MEGA65)/kernal.seg_0 \ - $(DIR_MEGA65)/kernal.seg_1 +TARGET_LIST_CUS = $(TARGET_CUS_B) $(TARGET_CUS_K) +TARGET_LIST_GEN = $(TARGET_GEN_B) $(TARGET_GEN_K) +TARGET_LIST_TST = $(TARGET_TST_B) $(TARGET_TST_K) +TARGET_LIST_U64 = $(TARGET_U64_B) $(TARGET_U64_K) -REL_TARGET_LIST = $(pathsubst build/%,bin/%, $(STD_TARGET_LIST)) +TARGET_LIST = build/chargen.rom \ + $(TARGET_LIST_CUS) \ + $(TARGET_LIST_GEN) \ + $(TARGET_LIST_TST) \ + $(TARGET_M65_x) \ + $(TARGET_LIST_U64) \ + $(TARGET_X16_x) + +SEG_LIST_M65 = $(DIR_M65)/basic.seg_0 \ + $(DIR_M65)/basic.seg_1 \ + $(DIR_M65)/kernal.seg_0 \ + $(DIR_M65)/kernal.seg_1 + +SEG_LIST_X16 = $(DIR_X16)/basic.seg_0 \ + $(DIR_X16)/basic.seg_1 \ + $(DIR_X16)/kernal.seg_0 \ + $(DIR_X16)/kernal.seg_1 + +REL_TARGET_LIST = $(TARGET_LIST_CUS) $(TARGET_LIST_GEN) $(TARGET_LIST_TST) $(TARGET_M65_x) $(TARGET_LIST_U64) # Misc strings @@ -119,14 +139,14 @@ GIT_COMMIT:= $(shell git log -1 --pretty='%h' | tr '[:lower:]' '[:upper:]') .PHONY: all clean updatebin all: - $(MAKE) -j64 --output-sync=target $(STD_TARGET_LIST) $(EXT_TARGET_LIST) + $(MAKE) -j64 --output-sync=target $(TARGET_LIST) $(EXT_TARGET_LIST) clean: @rm -rf build c64/basic/combined.s c64/kernal/combined.s updatebin: - $(MAKE) -j64 --output-sync=target $(STD_TARGET_LIST) $(EXT_TARGET_LIST) $(TOOL_RELEASE) - $(TOOL_RELEASE) -i ./build -o ./bin basic_generic.rom kernal_generic.rom basic_testing.rom kernal_testing.rom basic_ultimate64.rom kernal_ultimate64.rom mega65.rom + $(MAKE) -j64 --output-sync=target $(TARGET_LIST) $(TOOL_RELEASE) + $(TOOL_RELEASE) -i ./build -o ./bin $(pathsubst build/%,./%, $(REL_TARGET_LIST)) cp build/chargen.rom bin/chargen.rom # Rules - tools @@ -154,61 +174,67 @@ build/chargen.rom: $(TOOL_PNGPREPARE) assets/8x8font.png # Dependencies - BASIC and KERNAL -$(DIR_CUSTOM)/OUTB_X.BIN $(DIR_CUSTOM)/BASIC_combined.vs: \ - $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_BASIC) $(CFG_CUSTOM) $(DIR_CUSTOM)/KERNAL_combined.sym -$(DIR_GENERIC)/OUTB_X.BIN $(DIR_GENERIC)/BASIC_combined.vs: \ - $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_BASIC) $(CFG_GENERIC) $(DIR_GENERIC)/KERNAL_combined.sym -$(DIR_TESTING)/OUTB_X.BIN $(DIR_TESTING)/BASIC_combined.vs: \ - $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_BASIC) $(CFG_TESTING) $(DIR_TESTING)/KERNAL_combined.sym -$(DIR_ULTIMATE64)/OUTB_X.BIN $(DIR_ULTIMATE64)/BASIC_combined.vs: \ - $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_BASIC) $(CFG_ULTIMATE64) $(DIR_ULTIMATE64)/KERNAL_combined.sym +$(DIR_CUS)/OUTB_x.BIN $(DIR_CUS)/BASIC_combined.vs: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_BASIC) $(CFG_CUS) $(DIR_CUS)/KERNAL_combined.sym +$(DIR_GEN)/OUTB_x.BIN $(DIR_GEN)/BASIC_combined.vs: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_BASIC) $(CFG_GEN) $(DIR_GEN)/KERNAL_combined.sym +$(DIR_TST)/OUTB_x.BIN $(DIR_TST)/BASIC_combined.vs: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_BASIC) $(CFG_TST) $(DIR_TST)/KERNAL_combined.sym +$(DIR_U64)/OUTB_x.BIN $(DIR_U64)/BASIC_combined.vs: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_BASIC) $(CFG_U64) $(DIR_U64)/KERNAL_combined.sym -$(DIR_CUSTOM)/OUTK_X.BIN $(DIR_CUSTOM)/KERNAL_combined.vs $(DIR_CUSTOM)/KERNAL_combined.sym: \ - $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_KERNAL) $(CFG_CUSTOM) -$(DIR_GENERIC)/OUTK_X.BIN $(DIR_GENERIC)/KERNAL_combined.vs $(DIR_GENERIC)/KERNAL_combined.sym: \ - $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_KERNAL) $(CFG_GENERIC) -$(DIR_TESTING)/OUTK_X.BIN $(DIR_TESTING)KERNAL_combined.vs $(DIR_TESTING)/KERNAL_combined.sym: \ - $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_KERNAL) $(CFG_TESTING) -$(DIR_ULTIMATE64)/OUTK_X.BIN $(DIR_ULTIMATE64)/KERNAL_combined.vs $(DIR_ULTIMATE64)/KERNAL_combined.sym: \ - $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_KERNAL) $(CFG_ULTIMATE64) +$(DIR_CUS)/OUTK_x.BIN $(DIR_CUS)/KERNAL_combined.vs $(DIR_CUS)/KERNAL_combined.sym: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_KERNAL) $(CFG_CUS) +$(DIR_GEN)/OUTK_x.BIN $(DIR_GEN)/KERNAL_combined.vs $(DIR_GEN)/KERNAL_combined.sym: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_KERNAL) $(CFG_GEN) +$(DIR_TST)/OUTK_x.BIN $(DIR_TST)/KERNAL_combined.vs $(DIR_TST)/KERNAL_combined.sym: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_KERNAL) $(CFG_TST) +$(DIR_U64)/OUTK_x.BIN $(DIR_U64)/KERNAL_combined.vs $(DIR_U64)/KERNAL_combined.sym: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_KERNAL) $(CFG_U64) +$(DIR_M65)/OUTB_0.BIN $(DIR_M65)/BASIC_0_combined.vs $(DIR_M65)/BASIC_0_combined.sym: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_BASIC) $(CFG_M65) $(DIR_M65)/KERNAL_0_combined.sym +$(DIR_M65)/OUTK_0.BIN $(DIR_M65)/KERNAL_0_combined.vs $(DIR_M65)/KERNAL_0_combined.sym: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_KERNAL) $(CFG_M65) -$(DIR_MEGA65)/OUTB_0.BIN $(DIR_MEGA65)/BASIC_0_combined.vs $(DIR_MEGA65)/BASIC_0_combined.sym: \ - $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_BASIC) $(CFG_MEGA65) $(DIR_MEGA65)/KERNAL_0_combined.sym -$(DIR_MEGA65)/OUTK_0.BIN $(DIR_MEGA65)/KERNAL_0_combined.vs $(DIR_MEGA65)/KERNAL_0_combined.sym: \ - $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_KERNAL) $(CFG_MEGA65) +$(DIR_X16)/OUTB_0.BIN $(DIR_X16)/BASIC_0_combined.vs $(DIR_X16)/BASIC_0_combined.sym: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_BASIC) $(CFG_X16) $(DIR_X16)/KERNAL_0_combined.sym +$(DIR_X16)/OUTK_0.BIN $(DIR_X16)/KERNAL_0_combined.vs $(DIR_X16)/KERNAL_0_combined.sym: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_KERNAL) $(CFG_X16) -$(DIR_MEGA65)/basic.seg_1 $(DIR_MEGA65)/BASIC_1_combined.vs $(DIR_MEGA65)/BASIC_1_combined.sym: \ - $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_BASIC) $(CFG_MEGA65) $(DIR_MEGA65)/KERNAL_0_combined.sym $(DIR_MEGA65)/BASIC_0_combined.sym -$(DIR_MEGA65)/kernal.seg_1 $(DIR_MEGA65)/KERNAL_1_combined.vs $(DIR_MEGA65)/KERNAL_1_combined.sym: \ - $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_KERNAL) $(CFG_MEGA65) $(DIR_MEGA65)/KERNAL_0_combined.sym +$(DIR_M65)/basic.seg_1 $(DIR_M65)/BASIC_1_combined.vs $(DIR_M65)/BASIC_1_combined.sym: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_BASIC) $(CFG_M65) $(DIR_M65)/KERNAL_0_combined.sym $(DIR_M65)/BASIC_0_combined.sym +$(DIR_M65)/kernal.seg_1 $(DIR_M65)/KERNAL_1_combined.vs $(DIR_M65)/KERNAL_1_combined.sym: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_KERNAL) $(CFG_M65) $(DIR_M65)/KERNAL_0_combined.sym -$(DIR_CUSTOM)/OUTX_X.BIN: $(DIR_CUSTOM)/OUTB_X.BIN $(DIR_CUSTOM)/OUTK_X.BIN -$(DIR_GENERIC)/OUTX_X.BIN: $(DIR_GENERIC)/OUTB_X.BIN $(DIR_GENERIC)/OUTK_X.BIN -$(DIR_TESTING)/OUTX_X.BIN: $(DIR_TESTING)/OUTB_X.BIN $(DIR_TESTING)/OUTK_X.BIN -$(DIR_MEGA65)/OUTX_0.BIN: $(DIR_MEGA65)/OUTB_0.BIN $(DIR_MEGA65)/OUTK_0.BIN -$(DIR_ULTIMATE64)/OUTX_X.BIN: $(DIR_ULTIMATE64)/OUTB_X.BIN $(DIR_ULTIMATE64)/OUTK_X.BIN +$(DIR_X16)/basic.seg_1 $(DIR_X16)/BASIC_1_combined.vs $(DIR_X16)/BASIC_1_combined.sym: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_BASIC) $(CFG_X16) $(DIR_M65)/KERNAL_0_combined.sym $(DIR_X16)/BASIC_0_combined.sym +$(DIR_X16)/kernal.seg_1 $(DIR_X16)/KERNAL_1_combined.vs $(DIR_X16)/KERNAL_1_combined.sym: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_KERNAL) $(CFG_X16) $(DIR_X16)/KERNAL_0_combined.sym -build/kernal_custom.rom: $(DIR_CUSTOM)/OUTX_X.BIN -build/kernal_generic.rom: $(DIR_GENERIC)/OUTX_X.BIN -build/kernal_testing.rom: $(DIR_TESTING)/OUTX_X.BIN -build/kernal_ultimate64.rom: $(DIR_ULTIMATE64)/OUTX_X.BIN +$(DIR_CUS)/OUTx_x.BIN: $(DIR_CUS)/OUTB_x.BIN $(DIR_CUS)/OUTK_x.BIN +$(DIR_GEN)/OUTx_x.BIN: $(DIR_GEN)/OUTB_x.BIN $(DIR_GEN)/OUTK_x.BIN +$(DIR_TST)/OUTx_x.BIN: $(DIR_TST)/OUTB_x.BIN $(DIR_TST)/OUTK_x.BIN +$(DIR_M65)/OUTx_0.BIN: $(DIR_M65)/OUTB_0.BIN $(DIR_M65)/OUTK_0.BIN +$(DIR_U64)/OUTx_x.BIN: $(DIR_U64)/OUTB_x.BIN $(DIR_U64)/OUTK_x.BIN +$(DIR_X16)/OUTx_0.BIN: $(DIR_X16)/OUTB_0.BIN $(DIR_X16)/OUTK_0.BIN -build/basic_custom.rom: $(DIR_CUSTOM)/OUTX_X.BIN -build/basic_generic.rom: $(DIR_GENERIC)/OUTX_X.BIN -build/basic_testing.rom: $(DIR_TESTING)/OUTX_X.BIN -build/basic_ultimate64.rom: $(DIR_ULTIMATE64)/OUTX_X.BIN +$(TARGET_CUS_B): $(DIR_CUS)/OUTx_x.BIN +$(TARGET_GEN_B): $(DIR_GEN)/OUTx_x.BIN +$(TARGET_TST_B): $(DIR_TST)/OUTx_x.BIN +$(TARGET_U64_B): $(DIR_U64)/OUTx_x.BIN -$(DIR_MEGA65)/kernal.seg_0: $(DIR_MEGA65)/OUTX_0.BIN -$(DIR_MEGA65)/basic.seg_0: $(DIR_MEGA65)/OUTX_0.BIN +$(TARGET_CUS_K): $(DIR_CUS)/OUTx_x.BIN +$(TARGET_GEN_K): $(DIR_GEN)/OUTx_x.BIN +$(TARGET_TST_K): $(DIR_TST)/OUTx_x.BIN +$(TARGET_U64_K): $(DIR_U64)/OUTx_x.BIN -build/symbols_custom.vs: $(DIR_CUSTOM)/BASIC_combined.vs $(DIR_CUSTOM)/KERNAL_combined.vs -build/symbols_generic.vs: $(DIR_GENERIC)/BASIC_combined.vs $(DIR_GENERIC)/KERNAL_combined.vs -build/symbols_testing.vs: $(DIR_TESTING)/BASIC_combined.vs $(DIR_TESTING)/KERNAL_combined.vs -build/symbols_mega65_0.vs: $(DIR_MEGA65)/BASIC_0_combined.vs $(DIR_MEGA65)/KERNAL_0_combined.vs -build/symbols_ultimate64.vs: $(DIR_ULTIMATE64)/BASIC_combined.vs $(DIR_ULTIMATE64)/KERNAL_combined.vs +build/symbols_custom.vs: $(DIR_CUS)/BASIC_combined.vs $(DIR_CUS)/KERNAL_combined.vs +build/symbols_generic.vs: $(DIR_GEN)/BASIC_combined.vs $(DIR_GEN)/KERNAL_combined.vs +build/symbols_testing.vs: $(DIR_TST)/BASIC_combined.vs $(DIR_TST)/KERNAL_combined.vs +build/symbols_ultimate64.vs: $(DIR_U64)/BASIC_combined.vs $(DIR_U64)/KERNAL_combined.vs -# Rules - BASIC and KERNAL +# Rules - BASIC and KERNAL intermediate files build/,generated/packed_messages.s: $(TOOL_COMPRESS_TEXT) @mkdir -p build/,generated @@ -218,91 +244,138 @@ build/,generated/float_constants.s: $(TOOL_GENERATE_CONSTANTS) @mkdir -p build/,generated $(TOOL_GENERATE_CONSTANTS) -o build/,generated/float_constants.s -.PRECIOUS: build/target_%/OUTB_X.BIN build/target_%/BASIC_combined.vs -build/target_%/OUTB_X.BIN build/target_%/BASIC_combined.vs: +.PRECIOUS: build/target_%/OUTB_x.BIN build/target_%/BASIC_combined.vs +build/target_%/OUTB_x.BIN build/target_%/BASIC_combined.vs: @mkdir -p build/target_$* @rm -f $@* build/target_$*/BASIC* - @$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r STD -s BASIC -i BASIC-$* -o OUTB_X.BIN -d build/target_$* -l a000 -h e4d2 c64/,,config_$*.s $(SRCDIR_BASIC) $(GEN_BASIC) + @$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r STD -s BASIC -i BASIC-$* -o OUTB_x.BIN -d build/target_$* -l a000 -h e4d2 c64/,,config_$*.s $(SRCDIR_BASIC) $(GEN_BASIC) -.PRECIOUS: build/target_%/OUTK_X.BIN build/target_%/KERNAL_combined.vs build/target_%/KERNAL_combined.sym -build/target_%/OUTK_X.BIN build/target_%/KERNAL_combined.vs build/target_%/KERNAL_combined.sym: +.PRECIOUS: build/target_%/OUTK_x.BIN build/target_%/KERNAL_combined.vs build/target_%/KERNAL_combined.sym +build/target_%/OUTK_x.BIN build/target_%/KERNAL_combined.vs build/target_%/KERNAL_combined.sym: @mkdir -p build/target_$* @rm -f $@* build/target_$*/KERNAL* - @$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r STD -s KERNAL -i KERNAL-$* -o OUTK_X.BIN -d build/target_$* -l e4d3 -h ffff c64/,,config_$*.s $(SRCDIR_KERNAL) $(GEN_KERNAL) + @$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r STD -s KERNAL -i KERNAL-$* -o OUTK_x.BIN -d build/target_$* -l e4d3 -h ffff c64/,,config_$*.s $(SRCDIR_KERNAL) $(GEN_KERNAL) -$(DIR_MEGA65)/OUTB_0.BIN $(DIR_MEGA65)/BASIC_0_combined.vs $(DIR_MEGA65)/BASIC_0_combined.sym: - @mkdir -p $(DIR_MEGA65) - @rm -f $@* $(DIR_MEGA65)/BASIC_0* - @$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r M65 -s BASIC_0 -i BASIC_0-mega65 -o OUTB_0.BIN -d $(DIR_MEGA65) -l a000 -h e4d2 $(CFG_MEGA65) $(SRCDIR_BASIC) $(GEN_BASIC) +# Rules - BASIC and KERNAL intermediate files, for Mega65 -$(DIR_MEGA65)/OUTK_0.BIN $(DIR_MEGA65)/KERNAL_0_combined.vs $(DIR_MEGA65)/KERNAL_0_combined.sym: - @mkdir -p $(DIR_MEGA65) - @rm -f $@* $(DIR_MEGA65)/KERNAL_0* - @$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r M65 -s KERNAL_0 -i KERNAL_0-mega65 -o OUTK_0.BIN -d $(DIR_MEGA65) -l e4d3 -h ffff $(CFG_MEGA65) $(SRCDIR_KERNAL) $(GEN_KERNAL) +$(DIR_M65)/OUTB_0.BIN $(DIR_M65)/BASIC_0_combined.vs $(DIR_M65)/BASIC_0_combined.sym: + @mkdir -p $(DIR_M65) + @rm -f $@* $(DIR_M65)/BASIC_0* + @$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r M65 -s BASIC_0 -i BASIC_0-mega65 -o OUTB_0.BIN -d $(DIR_M65) -l a000 -h e4d2 $(CFG_M65) $(SRCDIR_BASIC) $(GEN_BASIC) -$(DIR_MEGA65)/basic.seg_1 $(DIR_MEGA65)/BASIC_1_combined.vs $(DIR_MEGA65)/BASIC_1_combined.sym: - @mkdir -p $(DIR_MEGA65) - @rm -f $@* $(DIR_MEGA65)/basic.seg_1 $(DIR_MEGA65)/BASIC_1* - @$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r M65 -s BASIC_1 -i BASIC_1-mega65 -o basic.seg_1 -d $(DIR_MEGA65) -l 4000 -h 5fff $(CFG_MEGA65) $(SRCDIR_BASIC) $(GEN_BASIC) +$(DIR_M65)/OUTK_0.BIN $(DIR_M65)/KERNAL_0_combined.vs $(DIR_M65)/KERNAL_0_combined.sym: + @mkdir -p $(DIR_M65) + @rm -f $@* $(DIR_M65)/KERNAL_0* + @$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r M65 -s KERNAL_0 -i KERNAL_0-mega65 -o OUTK_0.BIN -d $(DIR_M65) -l e4d3 -h ffff $(CFG_M65) $(SRCDIR_KERNAL) $(GEN_KERNAL) -$(DIR_MEGA65)/kernal.seg_1 $(DIR_MEGA65)/KERNAL_1_combined.vs $(DIR_MEGA65)/KERNAL_1_combined.sym: - @mkdir -p $(DIR_MEGA65) - @rm -f $@* $(DIR_MEGA65)/kernal.seg_1 $(DIR_MEGA65)/KERNAL_1* - @$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r M65 -s KERNAL_1 -i KERNAL_1-mega65 -o kernal.seg_1 -d $(DIR_MEGA65) -l 4000 -h 5fff $(CFG_MEGA65) $(SRCDIR_KERNAL) $(GEN_KERNAL) +$(DIR_M65)/basic.seg_1 $(DIR_M65)/BASIC_1_combined.vs $(DIR_M65)/BASIC_1_combined.sym: + @mkdir -p $(DIR_M65) + @rm -f $@* $(DIR_M65)/basic.seg_1 $(DIR_M65)/BASIC_1* + @$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r M65 -s BASIC_1 -i BASIC_1-mega65 -o basic.seg_1 -d $(DIR_M65) -l 4000 -h 5fff $(CFG_M65) $(SRCDIR_BASIC) $(GEN_BASIC) -.PRECIOUS: build/target_%/OUTX_X.BIN -build/target_%/OUTX_X.BIN: - cat build/target_$*/OUTB_X.BIN build/target_$*/OUTK_X.BIN > $@ +$(DIR_M65)/kernal.seg_1 $(DIR_M65)/KERNAL_1_combined.vs $(DIR_M65)/KERNAL_1_combined.sym: + @mkdir -p $(DIR_M65) + @rm -f $@* $(DIR_M65)/kernal.seg_1 $(DIR_M65)/KERNAL_1* + @$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r M65 -s KERNAL_1 -i KERNAL_1-mega65 -o kernal.seg_1 -d $(DIR_M65) -l 4000 -h 5fff $(CFG_M65) $(SRCDIR_KERNAL) $(GEN_KERNAL) + +# Rules - BASIC and KERNAL intermediate files, for Commander X16 + +$(DIR_X16)/OUTB_0.BIN $(DIR_X16)/BASIC_0_combined.vs $(DIR_X16)/BASIC_0_combined.sym: + @mkdir -p $(DIR_X16) + @rm -f $@* $(DIR_X16)/BASIC_0* + @$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r X16 -s BASIC_0 -i BASIC_0-mega65 -o OUTB_0.BIN -d $(DIR_X16) -l c000 -h e4d2 $(CFG_X16) $(SRCDIR_BASIC) $(GEN_BASIC) + +$(DIR_X16)/OUTK_0.BIN $(DIR_X16)/KERNAL_0_combined.vs $(DIR_X16)/KERNAL_0_combined.sym: + @mkdir -p $(DIR_X16) + @rm -f $@* $(DIR_X16)/KERNAL_0* + @$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r X16 -s KERNAL_0 -i KERNAL_0-mega65 -o OUTK_0.BIN -d $(DIR_X16) -l e4d3 -h ffff $(CFG_X16) $(SRCDIR_KERNAL) $(GEN_KERNAL) + +$(DIR_X16)/basic.seg_1 $(DIR_X16)/BASIC_1_combined.vs $(DIR_X16)/BASIC_1_combined.sym: + @mkdir -p $(DIR_X16) + @rm -f $@* $(DIR_X16)/basic.seg_1 $(DIR_X16)/BASIC_1* + @$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r X16 -s BASIC_1 -i BASIC_1-mega65 -o basic.seg_1 -d $(DIR_X16) -l a000 -h bfff $(CFG_X16) $(SRCDIR_BASIC) $(GEN_BASIC) + +$(DIR_X16)/kernal.seg_1 $(DIR_X16)/KERNAL_1_combined.vs $(DIR_X16)/KERNAL_1_combined.sym: + @mkdir -p $(DIR_X16) + @rm -f $@* $(DIR_X16)/kernal.seg_1 $(DIR_X16)/KERNAL_1* + @$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r X16 -s KERNAL_1 -i KERNAL_1-mega65 -o kernal.seg_1 -d $(DIR_X16) -l a000 -h bfff $(CFG_X16) $(SRCDIR_KERNAL) $(GEN_KERNAL) + +# Rules - BASIC and KERNAL + +.PRECIOUS: build/target_%/OUTx_x.BIN +build/target_%/OUTx_x.BIN: + cat build/target_$*/OUTB_x.BIN build/target_$*/OUTK_x.BIN > $@ .PRECIOUS: build/kernal_%.rom build/kernal_%.rom: - dd if=build/target_$*/OUTX_X.BIN bs=8192 count=1 skip=2 of=$@ + dd if=build/target_$*/OUTx_x.BIN bs=8192 count=1 skip=2 of=$@ .PRECIOUS: build/basic_%.rom build/basic_%.rom: - dd if=build/target_$*/OUTX_X.BIN bs=8192 count=1 skip=0 of=$@ + dd if=build/target_$*/OUTx_x.BIN bs=8192 count=1 skip=0 of=$@ .PRECIOUS: build/symbols_%.vs build/symbols_%.vs: sort build/target_$*/BASIC_combined.vs build/target_$*/KERNAL_combined.vs | uniq | grep -v "__" > $@ -$(DIR_MEGA65)/OUTX_0.BIN: - cat $(DIR_MEGA65)/OUTB_0.BIN $(DIR_MEGA65)/OUTK_0.BIN > $@ +$(DIR_M65)/OUTx_0.BIN: + cat $(DIR_M65)/OUTB_0.BIN $(DIR_M65)/OUTK_0.BIN > $@ -$(DIR_MEGA65)/kernal.seg_0: - dd if=$(DIR_MEGA65)/OUTX_0.BIN bs=8192 count=1 skip=2 of=$@ +$(DIR_M65)/kernal.seg_0: $(DIR_M65)/OUTx_0.BIN + dd if=$(DIR_M65)/OUTx_0.BIN bs=8192 count=1 skip=2 of=$@ -$(DIR_MEGA65)/basic.seg_0: - dd if=$(DIR_MEGA65)/OUTX_0.BIN bs=8192 count=1 skip=0 of=$@ +$(DIR_M65)/basic.seg_0: $(DIR_M65)/OUTx_0.BIN + dd if=$(DIR_M65)/OUTx_0.BIN bs=8192 count=1 skip=0 of=$@ -build/kernal_hybrid.rom: kernal $(DIR_GENERIC)/OUTK_X.BIN +$(DIR_X16)/OUTx_0.BIN: + cat $(DIR_X16)/OUTB_0.BIN $(DIR_X16)/OUTK_0.BIN > $@ + +$(DIR_X16)/kernal.seg_0: $(DIR_X16)/OUTx_0.BIN + dd if=$(DIR_X16)/OUTx_0.BIN bs=8192 count=1 skip=1 of=$@ + +$(DIR_X16)/basic.seg_0: $(DIR_X16)/OUTx_0.BIN + dd if=$(DIR_X16)/OUTx_0.BIN bs=8192 count=1 skip=0 of=$@ + +build/kernal_hybrid.rom: kernal $(DIR_GEN)/OUTK_x.BIN @echo @echo $(HYBRID_WARNING) @echo (dd if=kernal bs=1140 count=1 skip=0 ; \ echo " > HYBRID ROM, DON'T DISTRIBUTE <" ; \ dd if=kernal bs=1 count=58 skip=1176 ; \ - cat $(DIR_GENERIC)/OUTK_X.BIN) > $@ + cat $(DIR_GEN)/OUTK_x.BIN) > $@ -build/symbols_hybrid.vs: $(DIR_GENERIC)/KERNAL_combined.vs - sort $(DIR_GENERIC)/KERNAL_combined.vs | uniq | grep -v "__" > $@ +build/symbols_hybrid.vs: $(DIR_GEN)/KERNAL_combined.vs + sort $(DIR_GEN)/KERNAL_combined.vs | uniq | grep -v "__" > $@ -# Rules - platform 'Mega 65' specific +# Rules - platform 'Mega65' specific -build/mega65.rom: $(SEG_LIST_MEGA65) build/chargen.rom - dd if=/dev/zero bs=8192 count=1 of=build/padding___08_KB - dd if=/dev/zero bs=8192 count=8 of=build/padding___64_KB - cat build/padding___08_KB > build/mega65.rom - cat build/padding___08_KB >> build/mega65.rom - cat $(DIR_MEGA65)/kernal.seg_1 >> build/mega65.rom - cat $(DIR_MEGA65)/basic.seg_1 >> build/mega65.rom - cat build/padding___08_KB >> build/mega65.rom - cat $(DIR_MEGA65)/basic.seg_0 >> build/mega65.rom - cat build/chargen.rom >> build/mega65.rom - cat build/chargen.rom >> build/mega65.rom - cat $(DIR_MEGA65)/kernal.seg_0 >> build/mega65.rom - cat build/padding___64_KB >> build/mega65.rom - rm -f build/padding___* +$(TARGET_M65_x): $(SEG_LIST_M65) build/chargen.rom + dd if=/dev/zero bs=8192 count=1 of=build/m65_padding_08_KB + dd if=/dev/zero bs=8192 count=8 of=build/m65_padding_64_KB + cat build/m65_padding_08_KB > $(TARGET_M65_x) + cat build/m65_padding_08_KB >> $(TARGET_M65_x) + cat $(DIR_M65)/kernal.seg_1 >> $(TARGET_M65_x) + cat $(DIR_M65)/basic.seg_1 >> $(TARGET_M65_x) + cat build/m65_padding_08_KB >> $(TARGET_M65_x) + cat $(DIR_M65)/basic.seg_0 >> $(TARGET_M65_x) + cat build/chargen.rom >> $(TARGET_M65_x) + cat build/chargen.rom >> $(TARGET_M65_x) + cat $(DIR_M65)/kernal.seg_0 >> $(TARGET_M65_x) + cat build/m65_padding_64_KB >> $(TARGET_M65_x) + rm -f build/m65_padding_* + +# Rules - platform 'Commander X16' specific + +$(TARGET_X16_x): $(SEG_LIST_X16) build/chargen.rom + dd if=/dev/zero bs=8192 count=1 of=build/x16_padding_08_KB + dd if=/dev/zero bs=8192 count=8 of=build/x16_padding_64_KB + cat $(DIR_X16)/basic.seg_0 > $(TARGET_X16_x) + cat $(DIR_X16)/kernal.seg_0 >> $(TARGET_X16_x) + cat build/chargen.rom >> $(TARGET_X16_x) + cat $(DIR_X16)/basic.seg_1 >> $(TARGET_X16_x) + cat $(DIR_X16)/kernal.seg_1 >> $(TARGET_X16_x) + rm -f build/x16_padding_* # Rules - tests @@ -325,8 +398,8 @@ test_generic_x128: build/kernal_generic.rom build/basic_generic.rom build/symbol test_testing: build/kernal_testing.rom build/basic_testing.rom build/symbols_testing.vs x64 -kernal build/kernal_testing.rom -basic build/basic_testing.rom -moncommands build/symbols_testing.vs -1 $(TESTTAPE) -8 $(TESTDISK) -test_mega65: build/mega65.rom - ../xemu/build/bin/xmega65.native -dmarev 2 -forcerom -loadrom build/mega65.rom +test_mega65: $(TARGET_M65_x) + ../xemu/build/bin/xmega65.native -dmarev 2 -forcerom -loadrom $(TARGET_M65_x) test_ultimate64: build/kernal_ultimate64.rom build/basic_ultimate64.rom build/symbols_ultimate64.vs x64 -kernal build/kernal_ultimate64.rom -basic build/basic_ultimate64.rom -moncommands build/symbols_ultimate64.vs -1 $(TESTTAPE) -8 $(TESTDISK) @@ -346,6 +419,6 @@ test_m65: build/mega65.rom testremote: build/kernal_custom.rom build/basic_custom.rom build/symbols_custom.vs x64 -kernal build/kernal_custom.rom -basic build/basic_custom.rom -moncommands build/symbols_custom.vs -remotemonitor -testsimilarity: $(TOOL_SIMILARITY) $(DIR_GENERIC)/OUTX_X.BIN kernal basic - $(TOOL_SIMILARITY) kernal $(DIR_GENERIC)/OUTX_X.BIN - $(TOOL_SIMILARITY) basic $(DIR_GENERIC)/OUTX_X.BIN +testsimilarity: $(TOOL_SIMILARITY) $(DIR_GEN)/OUTx_x.BIN kernal basic + $(TOOL_SIMILARITY) kernal $(DIR_GEN)/OUTx_x.BIN + $(TOOL_SIMILARITY) basic $(DIR_GEN)/OUTx_x.BIN diff --git a/c64/,,config_cx16.s b/c64/,,config_cx16.s new file mode 100644 index 00000000..9b94dcd9 --- /dev/null +++ b/c64/,,config_cx16.s @@ -0,0 +1,136 @@ + +.const CONFIG_ID = $04 // should be 1 byte, different for each config file! +.encoding "petscii_upper" + +// +// Please read CONFIG.md before modifying this file! +// + +// Idea: +// - settings file for the Commander X16 machine + + + +// Hardware platform and brand + +#define CONFIG_PLATFORM_COMMANDER_X16 + +// #define CONFIG_MB_MEGA_65 +// #define CONFIG_MB_ULTIMATE_64 + +#define CONFIG_BRAND_CUSTOM_BUILD +// #define CONFIG_BRAND_GENERIC +// #define CONFIG_BRAND_TESTING +// #define CONFIG_BRAND_MEGA_65 +// #define CONFIG_BRAND_ULTIMATE_64 + +.const CONFIG_CUSTOM_BRAND = @"COMMANDER X16" + + +// Processor instruction set + +// #define CONFIG_CPU_MOS_6502 +#define CONFIG_CPU_WDC_65C02 +// #define CONFIG_CPU_CSG_65CE02 +// #define CONFIG_CPU_M65_45GS02 +// #define CONFIG_CPU_WDC_65816 + + +// Memory model + +#define CONFIG_MEMORY_MODEL_38K +// #define CONFIG_MEMORY_MODEL_60K + + +// I/O devices + +// #define CONFIG_IEC +// #define CONFIG_IEC_DOLPHINDOS +// #define CONFIG_IEC_DOLPHINDOS_FAST +// #define CONFIG_IEC_JIFFYDOS +// #define CONFIG_IEC_JIFFYDOS_BLANK + +// #define CONFIG_TAPE_NORMAL +// #define CONFIG_TAPE_TURBO +// #define CONFIG_TAPE_AUTODETECT +// #define CONFIG_TAPE_NO_KEY_SENSE +// #define CONFIG_TAPE_NO_MOTOR_CONTROL +// #define CONFIG_TAPE_NO_ERROR_CORRECTION + + +// Multiple SID support + +// #define CONFIG_SID_2ND +.const CONFIG_SID_2ND_ADDRESS = $D440 + +// #define CONFIG_SID_3RD +.const CONFIG_SID_3RD_ADDRESS = $D480 + +// #define CONFIG_SID_D4XX +// #define CONFIG_SID_D5XX + + +// Keyboard settings + +// #define CONFIG_LEGACY_SCNKEY +// #define CONFIG_KEYBOARD_C128 +// #define CONFIG_KEYBOARD_C128_CAPS_LOCK +// #define CONFIG_KEYBOARD_C65 // untested +// #define CONFIG_KEYBOARD_C65_CAPS_LOCK // untested +// #define CONFIG_KEY_REPEAT_DEFAULT +// #define CONFIG_KEY_REPEAT_ALWAYS +// #define CONFIG_KEY_FAST_SCAN +// #define CONFIG_JOY1_CURSOR +// #define CONFIG_JOY2_CURSOR + +// #define CONFIG_PROGRAMMABLE_KEYS + +.const CONFIG_KEYCMD_RUN = @"LOAD\"*\"" + +.const CONFIG_KEYCMD_F1 = @"@" +.const CONFIG_KEYCMD_F2 = @"" +.const CONFIG_KEYCMD_F3 = @"RUN:" +.const CONFIG_KEYCMD_F4 = @"" +.const CONFIG_KEYCMD_F5 = @"LOAD" +.const CONFIG_KEYCMD_F6 = @"" +.const CONFIG_KEYCMD_F7 = @"@$" +.const CONFIG_KEYCMD_F8 = @"" + +.const CONFIG_KEYCMD_HELP = @"LIST" + +.const CONFIG_KEYCMD_F9 = @"REM F9" +.const CONFIG_KEYCMD_F10 = @"REM F10" +.const CONFIG_KEYCMD_F11 = @"REM F11" +.const CONFIG_KEYCMD_F12 = @"REM F12" +.const CONFIG_KEYCMD_F13 = @"REM F13" +.const CONFIG_KEYCMD_F14 = @"REM F14" + + +// Screen editor + +// #define CONFIG_EDIT_STOPQUOTE +// #define CONFIG_EDIT_TABULATORS + + +// Software features + +// #define CONFIG_PANIC_SCREEN +// #define CONFIG_DOS_WEDGE +// #define CONFIG_TAPE_WEDGE +#define CONFIG_BCD_SAFE_INTERRUPTS + + +// Eye candy + +// #define CONFIG_COLORS_BRAND +// #define CONFIG_BANNER_SIMPLE +#define CONFIG_BANNER_FANCY +// #define CONFIG_BANNER_BRAND +// #define CONFIG_SHOW_FEATURES +// #define CONFIG_SHOW_PAL_NTSC + + +// Debug options + +// #define CONFIG_DBG_STUBS_BRK +// #define CONFIG_DBG_PRINTF diff --git a/c64/aliases/,aliases_config.s b/c64/aliases/,aliases_config.s index 60bbddc6..57fb1c9f 100644 --- a/c64/aliases/,aliases_config.s +++ b/c64/aliases/,aliases_config.s @@ -14,6 +14,9 @@ #if CONFIG_PLATFORM_COMMODORE_64 .eval selected++ #endif +#if CONFIG_PLATFORM_COMMANDER_X16 + .eval selected++ +#endif .if (selected != 1) .error "Please select exactly one CONFIG_PLATFORM_* option" } diff --git a/c64/aliases/,aliases_cpu.s b/c64/aliases/,aliases_cpu.s index 922a91bc..b45f73f3 100644 --- a/c64/aliases/,aliases_cpu.s +++ b/c64/aliases/,aliases_cpu.s @@ -34,7 +34,7 @@ .pseudocommand panic code { // If case no panic screen is used, we can skip providing error codes within Kernal -#if CONFIG_PANIC_SCREEN || !SEGMENT_KERNAL +#if CONFIG_PANIC_SCREEN lda code #endif jmp ($E4B7) @@ -117,7 +117,7 @@ .pseudocommand lda_zero // WARNING: do not use within interrupts { -#if HAS_OPCODES_65C02 +#if HAS_OPCODES_65CE02 tba #else lda #$00 diff --git a/c64/aliases/,aliases_rom_basic.s b/c64/aliases/,aliases_rom_basic.s index 67aa954d..89963b51 100644 --- a/c64/aliases/,aliases_rom_basic.s +++ b/c64/aliases/,aliases_rom_basic.s @@ -1,4 +1,15 @@ // BASIC startup vectors + + +#if ROM_LAYOUT_X16 + + .label IBASIC_COLD_START = $C000 + .label IBASIC_WARM_START = $C002 + +#else + .label IBASIC_COLD_START = $A000 .label IBASIC_WARM_START = $A002 + +#endif diff --git a/c64/basic/,stubs/a408.reason.s b/c64/basic/,stubs/a408.reason.s index 8bca5016..00e36030 100644 --- a/c64/basic/,stubs/a408.reason.s +++ b/c64/basic/,stubs/a408.reason.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs/a453.unknown.s b/c64/basic/,stubs/a453.unknown.s index 02ae9dac..7a54c8b2 100644 --- a/c64/basic/,stubs/a453.unknown.s +++ b/c64/basic/,stubs/a453.unknown.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs/a483.main.s b/c64/basic/,stubs/a483.main.s index f15fd4d2..9533f2cb 100644 --- a/c64/basic/,stubs/a483.main.s +++ b/c64/basic/,stubs/a483.main.s @@ -1,4 +1,7 @@ -#if ROM_LAYOUT_STD || (ROM_LAYOUT_M65 && SEGMENT_BASIC_0) +// #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 +// #LAYOUT# * BASIC_0 #TAKE +// #LAYOUT# * * #IGNORE // // Official BASIC routine, described in: @@ -9,9 +12,5 @@ // CPU registers that has to be preserved (see [RG64]): XXX // - MAIN: STUB_IMPLEMENTATION() - - -#endif // ROM layout diff --git a/c64/basic/,stubs/a57c.chrnch.s b/c64/basic/,stubs/a57c.chrnch.s index b5e3df12..d320dd69 100644 --- a/c64/basic/,stubs/a57c.chrnch.s +++ b/c64/basic/,stubs/a57c.chrnch.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs/a644.new.s b/c64/basic/,stubs/a644.new.s index 73c8df60..306c8228 100644 --- a/c64/basic/,stubs/a644.new.s +++ b/c64/basic/,stubs/a644.new.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs/a659.setcharptr.s b/c64/basic/,stubs/a659.setcharptr.s index 64a573a3..17f8cef5 100644 --- a/c64/basic/,stubs/a659.setcharptr.s +++ b/c64/basic/,stubs/a659.setcharptr.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs/a71a.qplop.s b/c64/basic/,stubs/a71a.qplop.s index 921a807a..03f00cd3 100644 --- a/c64/basic/,stubs/a71a.qplop.s +++ b/c64/basic/,stubs/a71a.qplop.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs/a7e4.gone.s b/c64/basic/,stubs/a7e4.gone.s index bfbc4435..33b6e87c 100644 --- a/c64/basic/,stubs/a7e4.gone.s +++ b/c64/basic/,stubs/a7e4.gone.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs/ad9e.frmevl.s b/c64/basic/,stubs/ad9e.frmevl.s index 2a246f66..46f275ed 100644 --- a/c64/basic/,stubs/ad9e.frmevl.s +++ b/c64/basic/,stubs/ad9e.frmevl.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs/ae86.eval.s b/c64/basic/,stubs/ae86.eval.s index b8e06255..b790c094 100644 --- a/c64/basic/,stubs/ae86.eval.s +++ b/c64/basic/,stubs/ae86.eval.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/a9c4.convert_FAC1_to_INT.s b/c64/basic/,stubs_math/a9c4.convert_FAC1_to_INT.s index 70e6a741..55b66169 100644 --- a/c64/basic/,stubs_math/a9c4.convert_FAC1_to_INT.s +++ b/c64/basic/,stubs_math/a9c4.convert_FAC1_to_INT.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/aabc.print_FAC1.s b/c64/basic/,stubs_math/aabc.print_FAC1.s index 8bcd6a54..163da77b 100644 --- a/c64/basic/,stubs_math/aabc.print_FAC1.s +++ b/c64/basic/,stubs_math/aabc.print_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/af7b.compute_TI.s b/c64/basic/,stubs_math/af7b.compute_TI.s index 835cc59a..0bd1acfc 100644 --- a/c64/basic/,stubs_math/af7b.compute_TI.s +++ b/c64/basic/,stubs_math/af7b.compute_TI.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/af7e.math_stub.s b/c64/basic/,stubs_math/af7e.math_stub.s index 40a32304..c5eacf46 100644 --- a/c64/basic/,stubs_math/af7e.math_stub.s +++ b/c64/basic/,stubs_math/af7e.math_stub.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/af87.math_stub.s b/c64/basic/,stubs_math/af87.math_stub.s index fc4fae09..25746cdc 100644 --- a/c64/basic/,stubs_math/af87.math_stub.s +++ b/c64/basic/,stubs_math/af87.math_stub.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/af9a.compute_ST.s b/c64/basic/,stubs_math/af9a.compute_ST.s index dca181aa..801fa221 100644 --- a/c64/basic/,stubs_math/af9a.compute_ST.s +++ b/c64/basic/,stubs_math/af9a.compute_ST.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/b1aa.FACINX.s b/c64/basic/,stubs_math/b1aa.FACINX.s index 9769eeea..11ab5ed0 100644 --- a/c64/basic/,stubs_math/b1aa.FACINX.s +++ b/c64/basic/,stubs_math/b1aa.FACINX.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/b391.GIVAYF.s b/c64/basic/,stubs_math/b391.GIVAYF.s index 44650977..982b2262 100644 --- a/c64/basic/,stubs_math/b391.GIVAYF.s +++ b/c64/basic/,stubs_math/b391.GIVAYF.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/b3a2.convert_Y_to_FAC1.s b/c64/basic/,stubs_math/b3a2.convert_Y_to_FAC1.s index 49df4eb6..7ec3f99a 100644 --- a/c64/basic/,stubs_math/b3a2.convert_Y_to_FAC1.s +++ b/c64/basic/,stubs_math/b3a2.convert_Y_to_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/b794.convert_A_to_FAC1.s b/c64/basic/,stubs_math/b794.convert_A_to_FAC1.s index 8a91c04d..c79f363c 100644 --- a/c64/basic/,stubs_math/b794.convert_A_to_FAC1.s +++ b/c64/basic/,stubs_math/b794.convert_A_to_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/b7b5.STRVAL.s b/c64/basic/,stubs_math/b7b5.STRVAL.s index 35ae53d4..f754d8f6 100644 --- a/c64/basic/,stubs_math/b7b5.STRVAL.s +++ b/c64/basic/,stubs_math/b7b5.STRVAL.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/b7f7.convert_FAC1_to_ADDR.s b/c64/basic/,stubs_math/b7f7.convert_FAC1_to_ADDR.s index eaeee7fc..f38d5a98 100644 --- a/c64/basic/,stubs_math/b7f7.convert_FAC1_to_ADDR.s +++ b/c64/basic/,stubs_math/b7f7.convert_FAC1_to_ADDR.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/b849.add_HALF_FAC1.s b/c64/basic/,stubs_math/b849.add_HALF_FAC1.s index 38f14bc2..deac2795 100644 --- a/c64/basic/,stubs_math/b849.add_HALF_FAC1.s +++ b/c64/basic/,stubs_math/b849.add_HALF_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/b86a.add_FAC2_FAC1.s b/c64/basic/,stubs_math/b86a.add_FAC2_FAC1.s index a88305d8..f8aaf267 100644 --- a/c64/basic/,stubs_math/b86a.add_FAC2_FAC1.s +++ b/c64/basic/,stubs_math/b86a.add_FAC2_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/b947.inv_FAC1_mantissa.s b/c64/basic/,stubs_math/b947.inv_FAC1_mantissa.s index aae0f0b2..ceadfe99 100644 --- a/c64/basic/,stubs_math/b947.inv_FAC1_mantissa.s +++ b/c64/basic/,stubs_math/b947.inv_FAC1_mantissa.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/b983.MULSHF.s b/c64/basic/,stubs_math/b983.MULSHF.s index 37a4fc00..b4389b13 100644 --- a/c64/basic/,stubs_math/b983.MULSHF.s +++ b/c64/basic/,stubs_math/b983.MULSHF.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/b9ea.log_FAC1.s b/c64/basic/,stubs_math/b9ea.log_FAC1.s index 295fdf19..2bc2765c 100644 --- a/c64/basic/,stubs_math/b9ea.log_FAC1.s +++ b/c64/basic/,stubs_math/b9ea.log_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/ba2b.mul_FAC2_FAC1.s b/c64/basic/,stubs_math/ba2b.mul_FAC2_FAC1.s index bc78e2fb..f6659b85 100644 --- a/c64/basic/,stubs_math/ba2b.mul_FAC2_FAC1.s +++ b/c64/basic/,stubs_math/ba2b.mul_FAC2_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/ba59.MLTPLY.s b/c64/basic/,stubs_math/ba59.MLTPLY.s index 369eab72..294cd246 100644 --- a/c64/basic/,stubs_math/ba59.MLTPLY.s +++ b/c64/basic/,stubs_math/ba59.MLTPLY.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bae2.mul10_FAC1.s b/c64/basic/,stubs_math/bae2.mul10_FAC1.s index 8413a242..4d6e570d 100644 --- a/c64/basic/,stubs_math/bae2.mul10_FAC1.s +++ b/c64/basic/,stubs_math/bae2.mul10_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bafe.div10_FAC1_p.s b/c64/basic/,stubs_math/bafe.div10_FAC1_p.s index e3cc5252..0be04ac9 100644 --- a/c64/basic/,stubs_math/bafe.div10_FAC1_p.s +++ b/c64/basic/,stubs_math/bafe.div10_FAC1_p.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bb12.div_FAC2_FAC1.s b/c64/basic/,stubs_math/bb12.div_FAC2_FAC1.s index 987eed74..03f5b8db 100644 --- a/c64/basic/,stubs_math/bb12.div_FAC2_FAC1.s +++ b/c64/basic/,stubs_math/bb12.div_FAC2_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bc2b.sgn_FAC1_A.s b/c64/basic/,stubs_math/bc2b.sgn_FAC1_A.s index b5e630c5..866ac209 100644 --- a/c64/basic/,stubs_math/bc2b.sgn_FAC1_A.s +++ b/c64/basic/,stubs_math/bc2b.sgn_FAC1_A.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bc39.sgn_FAC1.s b/c64/basic/,stubs_math/bc39.sgn_FAC1.s index ca081a8e..47af6ee9 100644 --- a/c64/basic/,stubs_math/bc39.sgn_FAC1.s +++ b/c64/basic/,stubs_math/bc39.sgn_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bc3c.convert_A_to_FAC1.s b/c64/basic/,stubs_math/bc3c.convert_A_to_FAC1.s index 7b5c3cc9..9187103d 100644 --- a/c64/basic/,stubs_math/bc3c.convert_A_to_FAC1.s +++ b/c64/basic/,stubs_math/bc3c.convert_A_to_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bc44.convert_i16_to_FAC1.s b/c64/basic/,stubs_math/bc44.convert_i16_to_FAC1.s index 9555a39f..b0e1f2e7 100644 --- a/c64/basic/,stubs_math/bc44.convert_i16_to_FAC1.s +++ b/c64/basic/,stubs_math/bc44.convert_i16_to_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bc58.abs_FAC1.s b/c64/basic/,stubs_math/bc58.abs_FAC1.s index 2d4117c6..919f179a 100644 --- a/c64/basic/,stubs_math/bc58.abs_FAC1.s +++ b/c64/basic/,stubs_math/bc58.abs_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bc5b.FCOMP.s b/c64/basic/,stubs_math/bc5b.FCOMP.s index c73858b7..e0f00777 100644 --- a/c64/basic/,stubs_math/bc5b.FCOMP.s +++ b/c64/basic/,stubs_math/bc5b.FCOMP.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bc9b.QINT.s b/c64/basic/,stubs_math/bc9b.QINT.s index 8414d0bd..26ba5f71 100644 --- a/c64/basic/,stubs_math/bc9b.QINT.s +++ b/c64/basic/,stubs_math/bc9b.QINT.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bccc.int_FAC1.s b/c64/basic/,stubs_math/bccc.int_FAC1.s index ad25b646..4a7c6d47 100644 --- a/c64/basic/,stubs_math/bccc.int_FAC1.s +++ b/c64/basic/,stubs_math/bccc.int_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bcf3.FIN.s b/c64/basic/,stubs_math/bcf3.FIN.s index 2b85c855..f06e63eb 100644 --- a/c64/basic/,stubs_math/bcf3.FIN.s +++ b/c64/basic/,stubs_math/bcf3.FIN.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bd7e.FINLOG.s b/c64/basic/,stubs_math/bd7e.FINLOG.s index 65a18e9a..998ca32b 100644 --- a/c64/basic/,stubs_math/bd7e.FINLOG.s +++ b/c64/basic/,stubs_math/bd7e.FINLOG.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bddd.FOUT.s b/c64/basic/,stubs_math/bddd.FOUT.s index c0597d05..a9b3b2d8 100644 --- a/c64/basic/,stubs_math/bddd.FOUT.s +++ b/c64/basic/,stubs_math/bddd.FOUT.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bf71.sqr_FAC1.s b/c64/basic/,stubs_math/bf71.sqr_FAC1.s index ca2091c3..ac9a07c3 100644 --- a/c64/basic/,stubs_math/bf71.sqr_FAC1.s +++ b/c64/basic/,stubs_math/bf71.sqr_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bf74.sqr_FAC2.s b/c64/basic/,stubs_math/bf74.sqr_FAC2.s index ab99c98f..a0b8a412 100644 --- a/c64/basic/,stubs_math/bf74.sqr_FAC2.s +++ b/c64/basic/,stubs_math/bf74.sqr_FAC2.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bf78.FPWR.s b/c64/basic/,stubs_math/bf78.FPWR.s index 42226482..3225ae9c 100644 --- a/c64/basic/,stubs_math/bf78.FPWR.s +++ b/c64/basic/,stubs_math/bf78.FPWR.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bf7b.FPWRT.s b/c64/basic/,stubs_math/bf7b.FPWRT.s index 5c58e9f1..1bc6264a 100644 --- a/c64/basic/,stubs_math/bf7b.FPWRT.s +++ b/c64/basic/,stubs_math/bf7b.FPWRT.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/,stubs_math/bfed.exp_FAC1.s b/c64/basic/,stubs_math/bfed.exp_FAC1.s index 9e392ad8..296a58a3 100644 --- a/c64/basic/,stubs_math/bfed.exp_FAC1.s +++ b/c64/basic/,stubs_math/bfed.exp_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/a533.linkprg.s b/c64/basic/a533.linkprg.s index 4db59db1..f272bd30 100644 --- a/c64/basic/a533.linkprg.s +++ b/c64/basic/a533.linkprg.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/a68e.runc.s b/c64/basic/a68e.runc.s index f0a8aeb1..bda66edc 100644 --- a/c64/basic/a68e.runc.s +++ b/c64/basic/a68e.runc.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/a7ae.newstt.s b/c64/basic/a7ae.newstt.s index 79aed4d6..069a1276 100644 --- a/c64/basic/a7ae.newstt.s +++ b/c64/basic/a7ae.newstt.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/ab1e.strout.s b/c64/basic/ab1e.strout.s index 0317550a..d067e9e1 100644 --- a/c64/basic/ab1e.strout.s +++ b/c64/basic/ab1e.strout.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/bdcd.linprt.s b/c64/basic/bdcd.linprt.s index 284b626e..5ab2fd47 100644 --- a/c64/basic/bdcd.linprt.s +++ b/c64/basic/bdcd.linprt.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/banking/dummy.s b/c64/basic/board_m65/mega65_dummy.s similarity index 60% rename from c64/basic/banking/dummy.s rename to c64/basic/board_m65/mega65_dummy.s index eea566c2..338a1c16 100644 --- a/c64/basic/banking/dummy.s +++ b/c64/basic/board_m65/mega65_dummy.s @@ -2,6 +2,6 @@ // #LAYOUT# * * #IGNORE -// Dummy, just to have anyything in segment 1 +// Dummy, just to have anything in segment 1 brk diff --git a/c64/basic/board_x16/cx16_dummy.s b/c64/basic/board_x16/cx16_dummy.s new file mode 100644 index 00000000..e1558df9 --- /dev/null +++ b/c64/basic/board_x16/cx16_dummy.s @@ -0,0 +1,7 @@ +// #LAYOUT# X16 BASIC_1 #TAKE +// #LAYOUT# * * #IGNORE + + +// Dummy, just to have anything in segment 1 + + brk diff --git a/c64/basic/c000.skip_gap.s b/c64/basic/c000.skip_gap.s index 9d256aeb..a8d678e6 100644 --- a/c64/basic/c000.skip_gap.s +++ b/c64/basic/c000.skip_gap.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/init/a000.cold_start_vector.s b/c64/basic/init/a000.cold_start_vector.s index 067b0f64..ef12f257 100644 --- a/c64/basic/init/a000.cold_start_vector.s +++ b/c64/basic/init/a000.cold_start_vector.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/init/a002.warm_start_vector.s b/c64/basic/init/a002.warm_start_vector.s index 411e17a5..717c4b2b 100644 --- a/c64/basic/init/a002.warm_start_vector.s +++ b/c64/basic/init/a002.warm_start_vector.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math/b850.sub_MEM_FAC1.s b/c64/basic/math/b850.sub_MEM_FAC1.s index a5f15869..72281c92 100644 --- a/c64/basic/math/b850.sub_MEM_FAC1.s +++ b/c64/basic/math/b850.sub_MEM_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math/b853.sub_FAC2_FAC1.s b/c64/basic/math/b853.sub_FAC2_FAC1.s index 49f699e9..e54a85a9 100644 --- a/c64/basic/math/b853.sub_FAC2_FAC1.s +++ b/c64/basic/math/b853.sub_FAC2_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math/b862.add_align_exponent.jmp.s b/c64/basic/math/b862.add_align_exponent.jmp.s index bcddf0ba..03fef8c3 100644 --- a/c64/basic/math/b862.add_align_exponent.jmp.s +++ b/c64/basic/math/b862.add_align_exponent.jmp.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math/b867.add_MEM_FAC1.s b/c64/basic/math/b867.add_MEM_FAC1.s index 9ed42325..1d948ee0 100644 --- a/c64/basic/math/b867.add_MEM_FAC1.s +++ b/c64/basic/math/b867.add_MEM_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math/b8fe.normal_FAC1.jmp.s b/c64/basic/math/b8fe.normal_FAC1.jmp.s index a9fd1d5c..e40972f8 100644 --- a/c64/basic/math/b8fe.normal_FAC1.jmp.s +++ b/c64/basic/math/b8fe.normal_FAC1.jmp.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math/ba28.mul_MEM_FAC1.s b/c64/basic/math/ba28.mul_MEM_FAC1.s index 3a5c5f08..02a35b91 100644 --- a/c64/basic/math/ba28.mul_MEM_FAC1.s +++ b/c64/basic/math/ba28.mul_MEM_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math/ba8c.mov_MEM_FAC2.jmp.s b/c64/basic/math/ba8c.mov_MEM_FAC2.jmp.s index 2e2bdffc..d556073a 100644 --- a/c64/basic/math/ba8c.mov_MEM_FAC2.jmp.s +++ b/c64/basic/math/ba8c.mov_MEM_FAC2.jmp.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math/bb0f.div_MEM_FAC1.s b/c64/basic/math/bb0f.div_MEM_FAC1.s index 37fc4c6a..2863958a 100644 --- a/c64/basic/math/bb0f.div_MEM_FAC1.s +++ b/c64/basic/math/bb0f.div_MEM_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math/bba2.mov_MEM_FAC1.jmp.s b/c64/basic/math/bba2.mov_MEM_FAC1.jmp.s index 71b6fe4a..21e9f9ca 100644 --- a/c64/basic/math/bba2.mov_MEM_FAC1.jmp.s +++ b/c64/basic/math/bba2.mov_MEM_FAC1.jmp.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math/bbc7.mov_r_FAC1_TMP2.s b/c64/basic/math/bbc7.mov_r_FAC1_TMP2.s index 9fd4c393..a3651fd4 100644 --- a/c64/basic/math/bbc7.mov_r_FAC1_TMP2.s +++ b/c64/basic/math/bbc7.mov_r_FAC1_TMP2.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math/bbca.mov_r_FAC1_TMP1.s b/c64/basic/math/bbca.mov_r_FAC1_TMP1.s index 1b3ed69c..d9993d30 100644 --- a/c64/basic/math/bbca.mov_r_FAC1_TMP1.s +++ b/c64/basic/math/bbca.mov_r_FAC1_TMP1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math/bbd0.mov_r_FAC1_VAR.s b/c64/basic/math/bbd0.mov_r_FAC1_VAR.s index 2d34f663..59ac4b18 100644 --- a/c64/basic/math/bbd0.mov_r_FAC1_VAR.s +++ b/c64/basic/math/bbd0.mov_r_FAC1_VAR.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math/bbd4.mov_r_FAC1_MEM.s b/c64/basic/math/bbd4.mov_r_FAC1_MEM.s index 26f898bd..8bf3182d 100644 --- a/c64/basic/math/bbd4.mov_r_FAC1_MEM.s +++ b/c64/basic/math/bbd4.mov_r_FAC1_MEM.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math/bbfc.mov_FAC2_FAC1.s b/c64/basic/math/bbfc.mov_FAC2_FAC1.s index 509a911a..a59de960 100644 --- a/c64/basic/math/bbfc.mov_FAC2_FAC1.s +++ b/c64/basic/math/bbfc.mov_FAC2_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math/bc0c.mov_r_FAC1_FAC2.s b/c64/basic/math/bc0c.mov_r_FAC1_FAC2.s index 084d7e16..edf6e9cd 100644 --- a/c64/basic/math/bc0c.mov_r_FAC1_FAC2.s +++ b/c64/basic/math/bc0c.mov_r_FAC1_FAC2.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math/bc0f.mov_FAC1_FAC2.jmp.s b/c64/basic/math/bc0f.mov_FAC1_FAC2.jmp.s index dde35453..6cb71a8d 100644 --- a/c64/basic/math/bc0f.mov_FAC1_FAC2.jmp.s +++ b/c64/basic/math/bc0f.mov_FAC1_FAC2.jmp.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math/bc1b.round_FAC1.jmp.s b/c64/basic/math/bc1b.round_FAC1.jmp.s index 1c04b38e..6658d65e 100644 --- a/c64/basic/math/bc1b.round_FAC1.jmp.s +++ b/c64/basic/math/bc1b.round_FAC1.jmp.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math/bfb4.toggle_sign_FAC1.s b/c64/basic/math/bfb4.toggle_sign_FAC1.s index bfa61cc5..c73ed745 100644 --- a/c64/basic/math/bfb4.toggle_sign_FAC1.s +++ b/c64/basic/math/bfb4.toggle_sign_FAC1.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math_consts/aea8.const_PI.s b/c64/basic/math_consts/aea8.const_PI.s index c5d79808..d86c1687 100644 --- a/c64/basic/math_consts/aea8.const_PI.s +++ b/c64/basic/math_consts/aea8.const_PI.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math_consts/b1a5.const_NEG_32768.s b/c64/basic/math_consts/b1a5.const_NEG_32768.s index 2319be90..c45694fa 100644 --- a/c64/basic/math_consts/b1a5.const_NEG_32768.s +++ b/c64/basic/math_consts/b1a5.const_NEG_32768.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math_consts/b9bc.const_ONE.s b/c64/basic/math_consts/b9bc.const_ONE.s index 63e4eab9..38997280 100644 --- a/c64/basic/math_consts/b9bc.const_ONE.s +++ b/c64/basic/math_consts/b9bc.const_ONE.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math_consts/b9d6.const_INV_SQR_2.s b/c64/basic/math_consts/b9d6.const_INV_SQR_2.s index 2bd0db76..e3733683 100644 --- a/c64/basic/math_consts/b9d6.const_INV_SQR_2.s +++ b/c64/basic/math_consts/b9d6.const_INV_SQR_2.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math_consts/b9db.const_SQR_2.s b/c64/basic/math_consts/b9db.const_SQR_2.s index 7a4d3def..ab9d0a51 100644 --- a/c64/basic/math_consts/b9db.const_SQR_2.s +++ b/c64/basic/math_consts/b9db.const_SQR_2.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math_consts/b9e0.const_NEG_HALF.s b/c64/basic/math_consts/b9e0.const_NEG_HALF.s index 08ad27d2..0227e546 100644 --- a/c64/basic/math_consts/b9e0.const_NEG_HALF.s +++ b/c64/basic/math_consts/b9e0.const_NEG_HALF.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math_consts/b9e5.const_LOG_2.s b/c64/basic/math_consts/b9e5.const_LOG_2.s index 1d9286a7..559d1861 100644 --- a/c64/basic/math_consts/b9e5.const_LOG_2.s +++ b/c64/basic/math_consts/b9e5.const_LOG_2.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math_consts/baf9.const_TEN.s b/c64/basic/math_consts/baf9.const_TEN.s index 65c8b61b..e2610722 100644 --- a/c64/basic/math_consts/baf9.const_TEN.s +++ b/c64/basic/math_consts/baf9.const_TEN.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math_consts/bf11.const_HALF.s b/c64/basic/math_consts/bf11.const_HALF.s index 8574ee8b..15e1f801 100644 --- a/c64/basic/math_consts/bf11.const_HALF.s +++ b/c64/basic/math_consts/bf11.const_HALF.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math_consts/bfbf.const_INV_LOG_2.s b/c64/basic/math_consts/bfbf.const_INV_LOG_2.s index 78cf4362..07d97253 100644 --- a/c64/basic/math_consts/bfbf.const_INV_LOG_2.s +++ b/c64/basic/math_consts/bfbf.const_INV_LOG_2.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/math_consts/bfe8.const_ONE.s b/c64/basic/math_consts/bfe8.const_ONE.s index 1f7dab4c..bea746ee 100644 --- a/c64/basic/math_consts/bfe8.const_ONE.s +++ b/c64/basic/math_consts/bfe8.const_ONE.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/rom_revision/a004.identifier.s b/c64/basic/rom_revision/a004.identifier.s index 2edea486..5d780247 100644 --- a/c64/basic/rom_revision/a004.identifier.s +++ b/c64/basic/rom_revision/a004.identifier.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/basic/rom_revision/bf52.rom_revision_basic.s b/c64/basic/rom_revision/bf52.rom_revision_basic.s index 91438dac..c3920eea 100644 --- a/c64/basic/rom_revision/bf52.rom_revision_basic.s +++ b/c64/basic/rom_revision/bf52.rom_revision_basic.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000 // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/programmable_keys.s b/c64/kernal/assets/programmable_keys.s similarity index 100% rename from c64/kernal/keyboard/programmable_keys.s rename to c64/kernal/assets/programmable_keys.s diff --git a/c64/kernal/banking/4000.interop b/c64/kernal/board_m65/4000.interop similarity index 100% rename from c64/kernal/banking/4000.interop rename to c64/kernal/board_m65/4000.interop diff --git a/c64/kernal/banking/4000.mega65_vectable_kernal_1.s b/c64/kernal/board_m65/4000.mega65_vectable_kernal_1.s similarity index 100% rename from c64/kernal/banking/4000.mega65_vectable_kernal_1.s rename to c64/kernal/board_m65/4000.mega65_vectable_kernal_1.s diff --git a/c64/kernal/banking/mega65_imports.s b/c64/kernal/board_m65/mega65_imports.s similarity index 100% rename from c64/kernal/banking/mega65_imports.s rename to c64/kernal/board_m65/mega65_imports.s diff --git a/c64/kernal/banking/mega65_map_helpers.s b/c64/kernal/board_m65/mega65_map_helpers.s similarity index 100% rename from c64/kernal/banking/mega65_map_helpers.s rename to c64/kernal/board_m65/mega65_map_helpers.s diff --git a/c64/kernal/banking/mega65_proxies.s b/c64/kernal/board_m65/mega65_proxies.s similarity index 100% rename from c64/kernal/banking/mega65_proxies.s rename to c64/kernal/board_m65/mega65_proxies.s diff --git a/c64/kernal/banking/mega65_redirect_load_tape.s b/c64/kernal/board_m65/mega65_redirect_load_tape.s similarity index 100% rename from c64/kernal/banking/mega65_redirect_load_tape.s rename to c64/kernal/board_m65/mega65_redirect_load_tape.s diff --git a/c64/kernal/tape/tape_normal_byte_store_mega65.s b/c64/kernal/board_m65/mega65_tape_normal_byte_store.s similarity index 100% rename from c64/kernal/tape/tape_normal_byte_store_mega65.s rename to c64/kernal/board_m65/mega65_tape_normal_byte_store.s diff --git a/c64/kernal/board_x16/cx16_dummy.s b/c64/kernal/board_x16/cx16_dummy.s new file mode 100644 index 00000000..b25fa5cd --- /dev/null +++ b/c64/kernal/board_x16/cx16_dummy.s @@ -0,0 +1,7 @@ +// #LAYOUT# X16 KERNAL_1 #TAKE +// #LAYOUT# * * #IGNORE + + +// Dummy, just to have anything in segment 1 + + brk diff --git a/c64/kernal/board_x16/cx16_stubs.s b/c64/kernal/board_x16/cx16_stubs.s new file mode 100644 index 00000000..da530dd6 --- /dev/null +++ b/c64/kernal/board_x16/cx16_stubs.s @@ -0,0 +1,44 @@ +// #LAYOUT# X16 KERNAL_0 #TAKE +// #LAYOUT# * * #IGNORE + +// Stubs for Commander X16 support + + +scnkey_set_keytab: + STUB_IMPLEMENTATION() + +clear_screen: + STUB_IMPLEMENTATION() + +setup_vicii: + STUB_IMPLEMENTATION() + +cursor_blink: + STUB_IMPLEMENTATION() + +chrin_keyboard: + STUB_IMPLEMENTATION() + +chrout_screen: + STUB_IMPLEMENTATION() + +IOINIT: + STUB_IMPLEMENTATION() + +SCNKEY: + STUB_IMPLEMENTATION() + +SCREEN: + STUB_IMPLEMENTATION() + +screen_calculate_pointers: + STUB_IMPLEMENTATION() + +setup_pal_ntsc: + STUB_IMPLEMENTATION() + +wait_x_bars: + STUB_IMPLEMENTATION() + +udtim_keyboard: + STUB_IMPLEMENTATION() diff --git a/c64/kernal/iec/iec_wait1ms.s b/c64/kernal/iec/iec_wait1ms.s index 2b1452fd..f011c292 100644 --- a/c64/kernal/iec/iec_wait1ms.s +++ b/c64/kernal/iec/iec_wait1ms.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/init/e5a0.setup_vicii.s b/c64/kernal/init/e5a0.setup_vicii.s index 28cc6bf9..93b54949 100644 --- a/c64/kernal/init/e5a0.setup_vicii.s +++ b/c64/kernal/init/e5a0.setup_vicii.s @@ -1,6 +1,7 @@ // #LAYOUT# STD * #TAKE // #LAYOUT# M65 KERNAL_0 #TAKE // #LAYOUT# M65 KERNAL_1 #TAKE-FLOAT +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * * #IGNORE // diff --git a/c64/kernal/init/fce2.hw_entry_reset.s b/c64/kernal/init/fce2.hw_entry_reset.s index dbe2c942..474668f2 100644 --- a/c64/kernal/init/fce2.hw_entry_reset.s +++ b/c64/kernal/init/fce2.hw_entry_reset.s @@ -29,9 +29,12 @@ hw_entry_reset: bne !+ jmp (ICART_COLD_START) !: + +#if CONFIG_PLATFORM_COMMODORE_64 // Disable the screen (and set 40 columns) to prevent visual glitches later ldx #$28 stx VIC_SCROLX +#endif // Initialising IO is obviously required. Also indicated by c64 prg p269. jsr JIOINIT diff --git a/c64/kernal/init/fd50.ramtas.s b/c64/kernal/init/fd50.ramtas.s index 3ef9461b..412797bc 100644 --- a/c64/kernal/init/fd50.ramtas.s +++ b/c64/kernal/init/fd50.ramtas.s @@ -1,6 +1,7 @@ // #LAYOUT# STD * #TAKE // #LAYOUT# M65 KERNAL_0 #TAKE // #LAYOUT# M65 KERNAL_1 #TAKE-FLOAT +// #LAYOUT# X16 KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE // diff --git a/c64/kernal/init/fda3.ioinit.s b/c64/kernal/init/fda3.ioinit.s index 72582f05..35d07223 100644 --- a/c64/kernal/init/fda3.ioinit.s +++ b/c64/kernal/init/fda3.ioinit.s @@ -1,6 +1,7 @@ // #LAYOUT# STD * #TAKE // #LAYOUT# M65 KERNAL_0 #TAKE // #LAYOUT# M65 KERNAL_1 #TAKE-FLOAT +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * * #IGNORE // diff --git a/c64/kernal/init/setup_pal_ntsc.s b/c64/kernal/init/setup_pal_ntsc.s index ebc22052..52845204 100644 --- a/c64/kernal/init/setup_pal_ntsc.s +++ b/c64/kernal/init/setup_pal_ntsc.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/interrupts/ea31.default_irq_handler.s b/c64/kernal/interrupts/ea31.default_irq_handler.s index 671839a3..6793302b 100644 --- a/c64/kernal/interrupts/ea31.default_irq_handler.s +++ b/c64/kernal/interrupts/ea31.default_irq_handler.s @@ -44,5 +44,13 @@ default_irq_handler_end_tape: #endif // CONFIG_TAPE_NORMAL || CONFIG_TAPE_TURBO +#if CONFIG_PLATFORM_COMMODORE_64 + // Acknowledge CIA interrupt and return jmp clear_cia1_interrupt_flag_and_return_from_interrupt + +#else + + jmp return_from_interrupt + +#endif diff --git a/c64/kernal/interrupts/ea7e.ack_cia1_return_from_interrupt.s b/c64/kernal/interrupts/ea7e.ack_cia1_return_from_interrupt.s index 6ba7c968..6d72292d 100644 --- a/c64/kernal/interrupts/ea7e.ack_cia1_return_from_interrupt.s +++ b/c64/kernal/interrupts/ea7e.ack_cia1_return_from_interrupt.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/interrupts/fe66.default_brk_handler.s b/c64/kernal/interrupts/fe66.default_brk_handler.s index bcec92a5..668462f3 100644 --- a/c64/kernal/interrupts/fe66.default_brk_handler.s +++ b/c64/kernal/interrupts/fe66.default_brk_handler.s @@ -9,9 +9,13 @@ default_brk_handler: sei // disable IRQs, to be sure they wont interfere +#if CONFIG_PLATFORM_COMMODORE_64 + ldx #$00 sta VIC_SCROLX // turn the display off - we want as little screen artifacts as possible +#endif + cld // make sure this dangerous flag is disabled jsr JRESTOR diff --git a/c64/kernal/screen/e50a.interop b/c64/kernal/iostack/e50a.interop similarity index 100% rename from c64/kernal/screen/e50a.interop rename to c64/kernal/iostack/e50a.interop diff --git a/c64/kernal/screen/e50a.plot.s b/c64/kernal/iostack/e50a.plot.s similarity index 100% rename from c64/kernal/screen/e50a.plot.s rename to c64/kernal/iostack/e50a.plot.s diff --git a/c64/kernal/keyboard/pop_keyboard_buffer.s b/c64/kernal/iostack/pop_keyboard_buffer.s similarity index 100% rename from c64/kernal/keyboard/pop_keyboard_buffer.s rename to c64/kernal/iostack/pop_keyboard_buffer.s diff --git a/c64/kernal/keyboard/chrin_keyboard.s b/c64/kernal/keyboard/chrin_keyboard.s index afdf4515..6645a9b8 100644 --- a/c64/kernal/keyboard/chrin_keyboard.s +++ b/c64/kernal/keyboard/chrin_keyboard.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/kb_matrix.s b/c64/kernal/keyboard/kb_matrix.s index 57458aae..e194bd95 100644 --- a/c64/kernal/keyboard/kb_matrix.s +++ b/c64/kernal/keyboard/kb_matrix.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/kb_matrix_128.s b/c64/kernal/keyboard/kb_matrix_128.s index 9009f8b9..d6323ba6 100644 --- a/c64/kernal/keyboard/kb_matrix_128.s +++ b/c64/kernal/keyboard/kb_matrix_128.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/kb_matrix_65.s b/c64/kernal/keyboard/kb_matrix_65.s index eb50d79b..a7cd89f5 100644 --- a/c64/kernal/keyboard/kb_matrix_65.s +++ b/c64/kernal/keyboard/kb_matrix_65.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/kb_matrix_alwaysrepeat.s b/c64/kernal/keyboard/kb_matrix_alwaysrepeat.s index b49d4943..9ccf1b16 100644 --- a/c64/kernal/keyboard/kb_matrix_alwaysrepeat.s +++ b/c64/kernal/keyboard/kb_matrix_alwaysrepeat.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/kb_matrix_bucky.s b/c64/kernal/keyboard/kb_matrix_bucky.s index 089ffaef..028721b0 100644 --- a/c64/kernal/keyboard/kb_matrix_bucky.s +++ b/c64/kernal/keyboard/kb_matrix_bucky.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/kb_matrix_bucky_filter.s b/c64/kernal/keyboard/kb_matrix_bucky_filter.s index 0c693c5d..70d7251f 100644 --- a/c64/kernal/keyboard/kb_matrix_bucky_filter.s +++ b/c64/kernal/keyboard/kb_matrix_bucky_filter.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/kb_matrix_joy.s b/c64/kernal/keyboard/kb_matrix_joy.s index d19644f1..754c341f 100644 --- a/c64/kernal/keyboard/kb_matrix_joy.s +++ b/c64/kernal/keyboard/kb_matrix_joy.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/kb_matrix_lookup.s b/c64/kernal/keyboard/kb_matrix_lookup.s index 1d9715fc..bb82cf2c 100644 --- a/c64/kernal/keyboard/kb_matrix_lookup.s +++ b/c64/kernal/keyboard/kb_matrix_lookup.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/kb_matrix_lookup_legacy.s b/c64/kernal/keyboard/kb_matrix_lookup_legacy.s index b628921f..da4df653 100644 --- a/c64/kernal/keyboard/kb_matrix_lookup_legacy.s +++ b/c64/kernal/keyboard/kb_matrix_lookup_legacy.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/kb_matrix_row_keys.s b/c64/kernal/keyboard/kb_matrix_row_keys.s index 21bab4f5..ce225e80 100644 --- a/c64/kernal/keyboard/kb_matrix_row_keys.s +++ b/c64/kernal/keyboard/kb_matrix_row_keys.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/kb_matrix_row_offsets.s b/c64/kernal/keyboard/kb_matrix_row_offsets.s index 8b0b7d5a..314a0852 100644 --- a/c64/kernal/keyboard/kb_matrix_row_offsets.s +++ b/c64/kernal/keyboard/kb_matrix_row_offsets.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/keyboard_disconnect.s b/c64/kernal/keyboard/keyboard_disconnect.s index 5fb2bf73..98c0150b 100644 --- a/c64/kernal/keyboard/keyboard_disconnect.s +++ b/c64/kernal/keyboard/keyboard_disconnect.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/scnkey.s b/c64/kernal/keyboard/scnkey.s index 003b38e5..12161598 100644 --- a/c64/kernal/keyboard/scnkey.s +++ b/c64/kernal/keyboard/scnkey.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/scnkey_128.s b/c64/kernal/keyboard/scnkey_128.s index 48945214..fd00cddc 100644 --- a/c64/kernal/keyboard/scnkey_128.s +++ b/c64/kernal/keyboard/scnkey_128.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/scnkey_65.s b/c64/kernal/keyboard/scnkey_65.s index 34584b72..8518c837 100644 --- a/c64/kernal/keyboard/scnkey_65.s +++ b/c64/kernal/keyboard/scnkey_65.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/scnkey_legacy.s b/c64/kernal/keyboard/scnkey_legacy.s index 42dae86f..d5ab27d2 100644 --- a/c64/kernal/keyboard/scnkey_legacy.s +++ b/c64/kernal/keyboard/scnkey_legacy.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/scnkey_set_keytab.s b/c64/kernal/keyboard/scnkey_set_keytab.s index c1da0a66..77ad45aa 100644 --- a/c64/kernal/keyboard/scnkey_set_keytab.s +++ b/c64/kernal/keyboard/scnkey_set_keytab.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/keyboard/udtim_keyboard.s b/c64/kernal/keyboard/udtim_keyboard.s index 35d6724a..d1c8c74e 100644 --- a/c64/kernal/keyboard/udtim_keyboard.s +++ b/c64/kernal/keyboard/udtim_keyboard.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/chrout_screen.s b/c64/kernal/screen/chrout_screen.s index 356816d0..14c583b5 100644 --- a/c64/kernal/screen/chrout_screen.s +++ b/c64/kernal/screen/chrout_screen.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/chrout_screen_clr.s b/c64/kernal/screen/chrout_screen_clr.s index 7da09ca6..e2860ce5 100644 --- a/c64/kernal/screen/chrout_screen_clr.s +++ b/c64/kernal/screen/chrout_screen_clr.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/chrout_screen_control.s b/c64/kernal/screen/chrout_screen_control.s index 7f93c521..8100db55 100644 --- a/c64/kernal/screen/chrout_screen_control.s +++ b/c64/kernal/screen/chrout_screen_control.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/chrout_screen_crsr.s b/c64/kernal/screen/chrout_screen_crsr.s index cb276f41..819c8a9a 100644 --- a/c64/kernal/screen/chrout_screen_crsr.s +++ b/c64/kernal/screen/chrout_screen_crsr.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/chrout_screen_del.s b/c64/kernal/screen/chrout_screen_del.s index 5cfaaa07..96b8c46b 100644 --- a/c64/kernal/screen/chrout_screen_del.s +++ b/c64/kernal/screen/chrout_screen_del.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/chrout_screen_gfxtxt.s b/c64/kernal/screen/chrout_screen_gfxtxt.s index 9f326e43..04d73c04 100644 --- a/c64/kernal/screen/chrout_screen_gfxtxt.s +++ b/c64/kernal/screen/chrout_screen_gfxtxt.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/chrout_screen_home.s b/c64/kernal/screen/chrout_screen_home.s index 4f0e3d05..353429f4 100644 --- a/c64/kernal/screen/chrout_screen_home.s +++ b/c64/kernal/screen/chrout_screen_home.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/chrout_screen_ins.s b/c64/kernal/screen/chrout_screen_ins.s index 74be6b2a..61ac4211 100644 --- a/c64/kernal/screen/chrout_screen_ins.s +++ b/c64/kernal/screen/chrout_screen_ins.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/chrout_screen_jumptable_codes.s b/c64/kernal/screen/chrout_screen_jumptable_codes.s index a3dc700d..5c959dcd 100644 --- a/c64/kernal/screen/chrout_screen_jumptable_codes.s +++ b/c64/kernal/screen/chrout_screen_jumptable_codes.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/chrout_screen_quote.s b/c64/kernal/screen/chrout_screen_quote.s index 8bbe2440..245450ab 100644 --- a/c64/kernal/screen/chrout_screen_quote.s +++ b/c64/kernal/screen/chrout_screen_quote.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/chrout_screen_return.s b/c64/kernal/screen/chrout_screen_return.s index 4148dda6..5f42ae14 100644 --- a/c64/kernal/screen/chrout_screen_return.s +++ b/c64/kernal/screen/chrout_screen_return.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/chrout_screen_rvs.s b/c64/kernal/screen/chrout_screen_rvs.s index 3cb679ae..47dce95f 100644 --- a/c64/kernal/screen/chrout_screen_rvs.s +++ b/c64/kernal/screen/chrout_screen_rvs.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/chrout_screen_shift_onoff.s b/c64/kernal/screen/chrout_screen_shift_onoff.s index 7ecbbe2a..24369ada 100644 --- a/c64/kernal/screen/chrout_screen_shift_onoff.s +++ b/c64/kernal/screen/chrout_screen_shift_onoff.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/chrout_screen_stop.s b/c64/kernal/screen/chrout_screen_stop.s index 3c638032..d44654f6 100644 --- a/c64/kernal/screen/chrout_screen_stop.s +++ b/c64/kernal/screen/chrout_screen_stop.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/chrout_screen_tab.s b/c64/kernal/screen/chrout_screen_tab.s index 13634dc9..6ca12662 100644 --- a/c64/kernal/screen/chrout_screen_tab.s +++ b/c64/kernal/screen/chrout_screen_tab.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/cursor.s b/c64/kernal/screen/cursor.s index 15b460d2..7021133a 100644 --- a/c64/kernal/screen/cursor.s +++ b/c64/kernal/screen/cursor.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/cursor_enable.s b/c64/kernal/screen/cursor_enable.s index 155f28b4..d5322360 100644 --- a/c64/kernal/screen/cursor_enable.s +++ b/c64/kernal/screen/cursor_enable.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/cursor_show.s b/c64/kernal/screen/cursor_show.s index e96987aa..d700679f 100644 --- a/c64/kernal/screen/cursor_show.s +++ b/c64/kernal/screen/cursor_show.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/e544.clear_screen.s b/c64/kernal/screen/e544.clear_screen.s index e80029ca..7c241c09 100644 --- a/c64/kernal/screen/e544.clear_screen.s +++ b/c64/kernal/screen/e544.clear_screen.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/e566.cursor_home.s b/c64/kernal/screen/e566.cursor_home.s index 0e22fe78..782f5189 100644 --- a/c64/kernal/screen/e566.cursor_home.s +++ b/c64/kernal/screen/e566.cursor_home.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/e56c.screen_calculate_pointers.s b/c64/kernal/screen/e56c.screen_calculate_pointers.s index 591862c6..cb4194b9 100644 --- a/c64/kernal/screen/e56c.screen_calculate_pointers.s +++ b/c64/kernal/screen/e56c.screen_calculate_pointers.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/e8ea.screen_scroll_up.s b/c64/kernal/screen/e8ea.screen_scroll_up.s index fb3f262e..2b11f352 100644 --- a/c64/kernal/screen/e8ea.screen_scroll_up.s +++ b/c64/kernal/screen/e8ea.screen_scroll_up.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/e9ff.screen_clear_line.s b/c64/kernal/screen/e9ff.screen_clear_line.s index 6dc1f915..4611a575 100644 --- a/c64/kernal/screen/e9ff.screen_clear_line.s +++ b/c64/kernal/screen/e9ff.screen_clear_line.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/screen.s b/c64/kernal/screen/screen.s index 2d3611df..6b98bdb3 100644 --- a/c64/kernal/screen/screen.s +++ b/c64/kernal/screen/screen.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/screen_advance_to_next_line.s b/c64/kernal/screen/screen_advance_to_next_line.s index c711e292..eb02bc8b 100644 --- a/c64/kernal/screen/screen_advance_to_next_line.s +++ b/c64/kernal/screen/screen_advance_to_next_line.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/screen_calculate_pnt_user.s b/c64/kernal/screen/screen_calculate_pnt_user.s index ce477aa3..4fc409fa 100644 --- a/c64/kernal/screen/screen_calculate_pnt_user.s +++ b/c64/kernal/screen/screen_calculate_pnt_user.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/screen_calculate_pntr_lnmx.s b/c64/kernal/screen/screen_calculate_pntr_lnmx.s index 7b4e7f5f..b024c448 100644 --- a/c64/kernal/screen/screen_calculate_pntr_lnmx.s +++ b/c64/kernal/screen/screen_calculate_pntr_lnmx.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/screen_check_space_ends_line.s b/c64/kernal/screen/screen_check_space_ends_line.s index a482dc9e..7c1243b5 100644 --- a/c64/kernal/screen/screen_check_space_ends_line.s +++ b/c64/kernal/screen/screen_check_space_ends_line.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/screen_code_to_petscii.s b/c64/kernal/screen/screen_code_to_petscii.s index 7a76aae3..898f2883 100644 --- a/c64/kernal/screen/screen_code_to_petscii.s +++ b/c64/kernal/screen/screen_code_to_petscii.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/screen_get_cliped_pntr.s b/c64/kernal/screen/screen_get_cliped_pntr.s index 761ffd92..355499fb 100644 --- a/c64/kernal/screen/screen_get_cliped_pntr.s +++ b/c64/kernal/screen/screen_get_cliped_pntr.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/screen_get_logical_line_end_ptr.s b/c64/kernal/screen/screen_get_logical_line_end_ptr.s index e54bdd3d..b2bbc293 100644 --- a/c64/kernal/screen/screen_get_logical_line_end_ptr.s +++ b/c64/kernal/screen/screen_get_logical_line_end_ptr.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/screen_grow_logical_line.s b/c64/kernal/screen/screen_grow_logical_line.s index 92654151..96ecac98 100644 --- a/c64/kernal/screen/screen_grow_logical_line.s +++ b/c64/kernal/screen/screen_grow_logical_line.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/screen_off.s b/c64/kernal/screen/screen_off.s index 154ce86f..f7ef6d62 100644 --- a/c64/kernal/screen/screen_off.s +++ b/c64/kernal/screen/screen_off.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/screen_on.s b/c64/kernal/screen/screen_on.s index 24e70a1b..6d49d4a4 100644 --- a/c64/kernal/screen/screen_on.s +++ b/c64/kernal/screen/screen_on.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/screen_preserve_sal_eal.s b/c64/kernal/screen/screen_preserve_sal_eal.s index e4f7f55f..a576cbab 100644 --- a/c64/kernal/screen/screen_preserve_sal_eal.s +++ b/c64/kernal/screen/screen_preserve_sal_eal.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/c64/kernal/screen/screen_restore_sal_eal.s b/c64/kernal/screen/screen_restore_sal_eal.s index fd8648c5..6f10b390 100644 --- a/c64/kernal/screen/screen_restore_sal_eal.s +++ b/c64/kernal/screen/screen_restore_sal_eal.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# X16 * #IGNORE // #LAYOUT# * KERNAL_0 #TAKE // #LAYOUT# * * #IGNORE diff --git a/doc/Development.md b/doc/Development.md index 86c3160d..68cd49c6 100644 --- a/doc/Development.md +++ b/doc/Development.md @@ -85,10 +85,11 @@ List of the most important make targets: ### Code segments and ROM layouts -Currently there are 2 ROM layouts defined: +Currently there are 3 ROM layouts defined: - `STD` - with 2 code segments: `BASIC` (`$A000-$E4D2`, where `$C000-$DFFF` is a skip-gap for RAM and I/O area) and `KERNAL` (`$E4D3 - $FFFF`) - `M65` - where `BASIC` becames `BASIC_0` and `KERNAL` becames `KERNAL_0`, additional segments might be added to the build system in the future; at the moment of writing this document additional 8KB of ROM is defined as `BASIC_1` segment and additional 8KB of ROM is defined as `KERNAL_1` segment +- `X16` - memory layout for the Commander X16 machine To check for current ROM layout or code segment use KickAssembler preprocessor defines, like `ROM_LAYOUT_STD`, `ROM_LAYOUT_M65`, `SEGMENT_BASIC`, `SEGMENT_KERNAL_1`. @@ -107,7 +108,7 @@ File name of the fixed location routine adheres to the scheme: `addr.name.s`, wh For handling different ROM layouts, our build tool provides support for pragma-like comments, in the form: ``` -// #LAYOUT# +// #LAYOUT# ``` where: @@ -117,11 +118,12 @@ where: - `` - `KERNAL`, `BASIC`, `KERNAL_0`, `KERNAL_1`, etc., asterisk symbol can be used to match any segment - `` - what to do when layout and segment match: -| action | description | -| :------------ | :-------------------------------------------- | -| `#IGNORE` | ignore the file completely | -| `#TAKE` | compile the file normally | -| `#TAKE-FLOAT` | compile the file, but force it to be floating | +| action | description | +| :------------- | :----------------------------------------------------------------- | +| `#IGNORE` | ignore the file completely | +| `#TAKE` | compile the file normally | +| `#TAKE-FLOAT` | compile the file, but force it to be floating | +| `#TAKE-OFFSET` | shifts the fixed-location address by hex offset given as parameter | The first match counts, all the remaining ones are dropped. Examples: diff --git a/tools/build_segment.cc b/tools/build_segment.cc index 643da112..422819ef 100644 --- a/tools/build_segment.cc +++ b/tools/build_segment.cc @@ -91,8 +91,8 @@ public: std::vector content; std::string label; - int startAddr; // for fixed (non-floating) routines only - int codeLength; // for both fixed and floating routines + int startAddr; // for fixed (non-floating) routines only + int codeLength; // for both fixed and floating routines int testAddrStart; // start address during test run int testAddrEnd; // end address during test run @@ -170,8 +170,8 @@ void parseCommandLine(int argc, char **argv) case 's': CMD_segName = optarg; break; case 'i': CMD_segInfo = optarg; break; case 'r': CMD_romLayout = optarg; break; - case 'l': CMD_loAddress = strtol(optarg, nullptr ,16); break; - case 'h': CMD_hiAddress = strtol(optarg, nullptr ,16); break; + case 'l': CMD_loAddress = strtol(optarg, nullptr, 16); break; + case 'h': CMD_hiAddress = strtol(optarg, nullptr, 16); break; default: printUsage(); ERROR(); } } @@ -692,6 +692,11 @@ bool SourceFile::preprocessLine(const std::string &line) { floating = true; } + else if (iter->compare("#TAKE-OFFSET") == 0) + { + if (++iter == tokens.end()) ERROR("syntax error, missing parameter for '#TAKE-OFFSET'"); + startAddr += strtol(iter->c_str(), nullptr, 16); + } else if (iter->compare("#TAKE") != 0) { ERROR(std::string("syntax error, unsupported action '") + token + "' in '#LAYOUT#'"); @@ -791,8 +796,9 @@ void BinningProblem::addToProblem(SourceFile *routine) if (!gapFound) { - ERROR(std::string("start address of fixed address file '") + \ - routine->fileName + "' already occupied or out of range"); + ERROR(std::string("start address of fixed address file '") + + routine->fileName + "' (" + std::to_string(routine->startAddr) + + ") already occupied or out of range"); } } }