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