implemented 'GO' BASIC command, started work on native MEGA65 mode
This commit is contained in:
1 parent
6eb78f9bb4
commit
b235db4cd0
7 files changed
+238
-19
No files matched your search
@@ -51,3 +51,11 @@
|
||||
#endif
|
||||
|
||||
.label filename_any = KERNAL().filename_any
|
||||
|
||||
#if ROM_LAYOUT_M65
|
||||
.label M65_JMODE64 = KERNAL().M65_JMODE64
|
||||
.label M65_JMODE65 = KERNAL().M65_JMODE65
|
||||
.label M65_JISMODE65 = KERNAL().M65_JISMODE65
|
||||
.label M65_JSLOW = KERNAL().M65_JSLOW
|
||||
.label M65_JFAST = KERNAL().M65_JFAST
|
||||
#endif
|
||||
@@ -51,8 +51,6 @@ cmd_tab:
|
||||
nop
|
||||
cmd_spc:
|
||||
nop
|
||||
cmd_go:
|
||||
nop
|
||||
|
||||
// Unimplemented tokens
|
||||
|
||||
|
||||
@@ -3,6 +3,61 @@
|
||||
// #LAYOUT# * * #IGNORE
|
||||
|
||||
|
||||
cmd_go:
|
||||
|
||||
jsr fetch_character_skip_spaces
|
||||
|
||||
cmp #$A4 // 'TO' keyword
|
||||
beq cmd_goto
|
||||
|
||||
#if !ROM_LAYOUT_M65
|
||||
|
||||
// FALLTROUGH
|
||||
|
||||
cmd_go_syntax_error:
|
||||
|
||||
jmp do_SYNTAX_error
|
||||
|
||||
#else
|
||||
|
||||
dew TXTPTR // unconsume character
|
||||
|
||||
// Fetch mode
|
||||
|
||||
jsr fetch_uint8
|
||||
|
||||
cmp #64
|
||||
bne !+
|
||||
|
||||
// If in native mode - switch to C64 compatibilty
|
||||
|
||||
jsr M65_JISMODE65
|
||||
bne cmd_go_rts
|
||||
|
||||
jsr helper_ask_if_sure
|
||||
bcs cmd_go_rts
|
||||
jmp M65_JMODE64
|
||||
!:
|
||||
cmp #65
|
||||
bne !+
|
||||
|
||||
// If in C64 compatibility mode - switch to native mode
|
||||
|
||||
jsr M65_JISMODE65
|
||||
beq cmd_go_rts
|
||||
|
||||
jsr helper_ask_if_sure
|
||||
bcs cmd_go_rts
|
||||
jmp M65_JMODE65
|
||||
!:
|
||||
jmp do_ILLEGAL_QUANTITY_error
|
||||
|
||||
cmd_go_rts:
|
||||
|
||||
rts
|
||||
|
||||
#endif
|
||||
|
||||
cmd_run:
|
||||
|
||||
// RUN clears all variables
|
||||
@@ -27,7 +82,11 @@ cmd_goto:
|
||||
// GOTO requires line number
|
||||
|
||||
jsr fetch_line_number
|
||||
#if !ROM_LAYOUT_M65
|
||||
bcs cmd_go_syntax_error
|
||||
#else
|
||||
bcs_16 do_SYNTAX_error
|
||||
#endif
|
||||
|
||||
// Check for direct mode
|
||||
|
||||
@@ -9,8 +9,18 @@
|
||||
|
||||
.const command_01_list = List().add(
|
||||
|
||||
#if CONFIG_MB_MEGA_65
|
||||
|
||||
M65_JSLOW,
|
||||
M65_JFAST,
|
||||
|
||||
#else
|
||||
|
||||
cmd_slow,
|
||||
cmd_fast,
|
||||
|
||||
#endif
|
||||
|
||||
cmd_old,
|
||||
|
||||
// NOTE! These commands are temporarily placed here, they should be a part of list 02!
|
||||
|
||||
@@ -5,23 +5,7 @@
|
||||
|
||||
#if CONFIG_MB_MEGA_65
|
||||
|
||||
// Command implementation for Mega65
|
||||
|
||||
// XXX - I think there are some bit-set instructions in 65CE02...
|
||||
|
||||
cmd_slow:
|
||||
|
||||
lda #$40
|
||||
skip_2_bytes_trash_nvz
|
||||
|
||||
// FALLTROUGH
|
||||
|
||||
cmd_fast:
|
||||
|
||||
lda #$41
|
||||
sta CPU_D6510
|
||||
rts
|
||||
|
||||
// For Mega65 Kernal routines are called directly
|
||||
|
||||
#elif CONFIG_MB_ULTIMATE_64
|
||||
|
||||
|
||||
Reference in new issue
Block a user