From 33e1e1ba4b249c088d4a55fe378a75a6fd1b51dc Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Thu, 3 Dec 2020 17:51:18 +0100 Subject: [PATCH] iniitial POKE command implementation --- src/basic/basic_commands/cmd__unimplemented.s | 2 - src/basic/basic_commands/cmd_poke.s | 38 +++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 src/basic/basic_commands/cmd_poke.s diff --git a/src/basic/basic_commands/cmd__unimplemented.s b/src/basic/basic_commands/cmd__unimplemented.s index 37366ea2..8263485e 100644 --- a/src/basic/basic_commands/cmd__unimplemented.s +++ b/src/basic/basic_commands/cmd__unimplemented.s @@ -31,8 +31,6 @@ cmd_wait: +nop cmd_def: +nop -cmd_poke: - +nop cmd_printhash: +nop cmd_cont: diff --git a/src/basic/basic_commands/cmd_poke.s b/src/basic/basic_commands/cmd_poke.s new file mode 100644 index 00000000..40663a9c --- /dev/null +++ b/src/basic/basic_commands/cmd_poke.s @@ -0,0 +1,38 @@ +;; #LAYOUT# STD * #TAKE +;; #LAYOUT# * BASIC_0 #TAKE +;; #LAYOUT# * * #IGNORE + + +cmd_poke: + + + ; Fetch address, store it on the stack + + jsr fetch_uint16 + +bcs do_SYNTAX_error + + lda LINNUM+0 + pha + lda LINNUM+1 + pha + + ; Fetch value + + jsr fetch_coma_uint8 + +bcs do_SYNTAX_error + + ; Retrieve address + + tay + pla + sta LINNUM+1 + pla + sta LINNUM+0 + + ; Write to memory + + tya + ldy #$00 + sta (LINNUM), y + + rts