From 363b198a0304ed87dc2533a0f2bf902ea5f4883d Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Tue, 22 Dec 2020 20:45:38 +0100 Subject: [PATCH] addede command for booting --- STATUS.md | 1 + src/,,config_mega65.s | 2 +- src/basic/,imports.s | 1 + src/basic/basic_commands_04/cmd__jumptable_04.s | 6 ++++-- src/kernal/board_m65/mega65_bootcpm.s | 9 +++++++++ src/kernal/jumptable_m65/jbootcpm.s | 10 ++++++++++ tools/generate_strings.cc | 5 +++-- 7 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 src/kernal/board_m65/mega65_bootcpm.s create mode 100644 src/kernal/jumptable_m65/jbootcpm.s diff --git a/STATUS.md b/STATUS.md index ef7fdd6e..c4f1f877 100644 --- a/STATUS.md +++ b/STATUS.md @@ -408,6 +408,7 @@ Note: this is likely to change in the future, possibly in an incompatible way! | Address | Name | Status | Remarks | | :-------: | :------- | :------: | :--------------------------------------------------------------------: | | ? | MONITOR | WIP | launches a machine language monitor | +| ? | BOOTCPM | WIP | launches the CP/M operating system | | ? | PRHEX | DONE | print hex value from .A | | `$FF7D` | PRIMM | DONE | print immediate, address compatible with C128 and C65 ROMs | | `$FFF8` | | DONE | reset vector for usage within hypervisor, starts in legacy mode | diff --git a/src/,,config_mega65.s b/src/,,config_mega65.s index 8c5ea1f7..1c0939e2 100644 --- a/src/,,config_mega65.s +++ b/src/,,config_mega65.s @@ -71,7 +71,7 @@ ;; #CONFIG# KEYCMD_F11 "REM F11" ;; #CONFIG# KEYCMD_F12 "\5FHF" ;; #CONFIG# KEYCMD_F13 "JOYCRSR 2" -;; #CONFIG# KEYCMD_F14 "JOYCRSR 0" +;; #CONFIG# KEYCMD_F14 "BOOTCPM" ; --- Screen editor diff --git a/src/basic/,imports.s b/src/basic/,imports.s index 2e144cc4..9ae7f663 100644 --- a/src/basic/,imports.s +++ b/src/basic/,imports.s @@ -20,6 +20,7 @@ ;; #ALIAS# printf = KERNAL_0.printf ;; #ALIAS# PRIMM = KERNAL_0.PRIMM ;; #ALIAS# MONITOR = KERNAL_0.MONITOR +;; #ALIAS# BOOTCPM = KERNAL_0.BOOTCPM ;; #ALIAS# plot_set = KERNAL_0.plot_set ;; #ALIAS# print_hex_byte = KERNAL_0.print_hex_byte diff --git a/src/basic/basic_commands_04/cmd__jumptable_04.s b/src/basic/basic_commands_04/cmd__jumptable_04.s index cee40047..9fc274ef 100644 --- a/src/basic/basic_commands_04/cmd__jumptable_04.s +++ b/src/basic/basic_commands_04/cmd__jumptable_04.s @@ -6,8 +6,9 @@ ; !set ITEM_01 = cmd_sysinfo -!set ITEM_02 = cmd_joycrsr -!set ITEM_03 = cmd_monitor +!set ITEM_02 = cmd_monitor +!set ITEM_03 = BOOTCPM +!set ITEM_04 = cmd_joycrsr !ifndef HAS_OPCODES_65C02 { @@ -33,4 +34,5 @@ command_04_jumptable: !word ITEM_01 !word ITEM_02 !word ITEM_03 + !word ITEM_04 } diff --git a/src/kernal/board_m65/mega65_bootcpm.s b/src/kernal/board_m65/mega65_bootcpm.s new file mode 100644 index 00000000..8c2f5501 --- /dev/null +++ b/src/kernal/board_m65/mega65_bootcpm.s @@ -0,0 +1,9 @@ +;; #LAYOUT# M65 KERNAL_0 #TAKE +;; #LAYOUT# * * #IGNORE + + +BOOTCPM: + + ; jsr map_MON_1 + ; XXX implement system startupo + jmp BOOTCPM diff --git a/src/kernal/jumptable_m65/jbootcpm.s b/src/kernal/jumptable_m65/jbootcpm.s new file mode 100644 index 00000000..e7c1f269 --- /dev/null +++ b/src/kernal/jumptable_m65/jbootcpm.s @@ -0,0 +1,10 @@ +;; #LAYOUT# M65 KERNAL_0 #TAKE +;; #LAYOUT# * * #IGNORE + + +; Launches the CP/M operating system + + +JBOOTCPM: + + jmp BOOTCPM diff --git a/tools/generate_strings.cc b/tools/generate_strings.cc index 4e23e8a8..835b0b07 100644 --- a/tools/generate_strings.cc +++ b/tools/generate_strings.cc @@ -200,8 +200,9 @@ const StringEntryList GLOBAL_Keywords_04 = { ListType::KEYWORDS, "keywords_04", { // STD CRT M65 U64 X16 { false, false, true, false, false, "K04_01", "SYSINFO", }, // Not present in CBM BASIC dialects, Open ROMs specific - { false, false, true, false, false, "K04_02", "JOYCRSR", }, // Not present in CBM BASIC dialects, Open ROMs specific - { false, false, true, false, false, "K04_03", "MONITOR", }, // Amos Professional Manual, Command Index + { false, false, true, false, false, "K04_02", "MONITOR", }, // Amos Professional Manual, Command Index + { false, false, true, false, false, "K04_03", "BOOTCPM", }, // Not present in CBM BASIC dialects, Open ROMs specific + { false, false, true, false, false, "K04_04", "JOYCRSR", }, // Not present in CBM BASIC dialects, Open ROMs specific } };