From abfde4f5bbf97f273ba075144d0e813617567918 Mon Sep 17 00:00:00 2001 From: Stephen Toth Date: Thu, 28 Jun 2018 17:27:59 -0400 Subject: [PATCH] Added MOVE FshCommand restructured fshvarreset --- FSHa.asm | 3 +- bin/FSHa.8xp | Bin 2582 -> 2857 bytes includes/FshCmd.asm | 15 +++++++- includes/FshCommands.inc | 1 + includes/FshCommands/MOVE.asm | 70 ++++++++++++++++++++++++++++++++++ includes/FshVar.asm | 7 ++-- 6 files changed, 89 insertions(+), 7 deletions(-) create mode 100644 includes/FshCommands/MOVE.asm diff --git a/FSHa.asm b/FSHa.asm index 3cc99b3..7528235 100644 --- a/FSHa.asm +++ b/FSHa.asm @@ -9,8 +9,7 @@ Setup: CALL _homeup CALL _ClrLCDFull - LD HL, 0 - CALL fshvarfill + CALL fshvarreset Input: LD C, $00 diff --git a/bin/FSHa.8xp b/bin/FSHa.8xp index 91439f17616ebf970a762d0d67439d819336ba90..96aaca57f7147c34ecf5382e7a69f4d5c3643eca 100644 GIT binary patch literal 2857 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 G(b)fD1L}|f diff --git a/includes/FshCmd.asm b/includes/FshCmd.asm index 39c2936..870c674 100644 --- a/includes/FshCmd.asm +++ b/includes/FshCmd.asm @@ -33,6 +33,15 @@ fshcmddecode: call z, bytecpy pop hl + push hl + push de + ld de, fshcmdMOVE + call strcmp + ld hl, fshcmdMOVEo + pop de + call z, bytecpy + pop hl + push hl push de ld de, fshcmdVARS @@ -69,10 +78,14 @@ fshcmdroute: call bytecmp jp z, fshcmdSETf - ld de, fshcmdCOPYo + ld de, fshcmdCOPYo call bytecmp jp z, fshcmdCOPYf + ld de, fshcmdMOVEo + call bytecmp + jp z, fshcmdMOVEf + ld de, fshcmdVARSo call bytecmp jp z, fshcmdVARSf diff --git a/includes/FshCommands.inc b/includes/FshCommands.inc index 72458f9..15c9306 100644 --- a/includes/FshCommands.inc +++ b/includes/FshCommands.inc @@ -1,5 +1,6 @@ #include "includes/FshCommands/EXIT.asm" #include "includes/FshCommands/SET.asm" #include "includes/FshCommands/COPY.asm" +#include "includes/FshCommands/MOVE.asm" #include "includes/FshCommands/CLS.asm" #include "includes/FshCommands/VARS.asm" diff --git a/includes/FshCommands/MOVE.asm b/includes/FshCommands/MOVE.asm new file mode 100644 index 0000000..ee8c80e --- /dev/null +++ b/includes/FshCommands/MOVE.asm @@ -0,0 +1,70 @@ +fshcmdMOVE: .db "MOVE", 0 +fshcmdMOVEo: .db $03 +fshcmdMOVEu: .db "Move a value in FSH memory to another addess", 0 +fshcmdMOVEf: +fshcmdMOVEfArg0: + ld hl, FshCmdArg0 + ld de, 0 + ld e, (hl) + inc hl + ld d, (hl) + ex de, hl + ld de, 0 + call cpHLDE + jr nz, fshcmdMOVEfArg1 +fshcmdMOVEfArg0Get: + ld a, 'G' + call _PutC + xor a + ld (CurCol), a + ld hl, fshcmdMOVEfDSource + call _PutS + ld hl, fshcmdMOVEfInputBuffer + ld de, 3 + call inputnumstr + call strtob + ld hl, FshCmdArg0 + ld (hl), a + call _NewLine +fshcmdMOVEfArg1: + ld hl, FshCmdArg1 + ld de, 0 + ld e, (hl) + inc hl + ld d, (hl) + ex de, hl + ld de, 0 + call cpHLDE + jr nz, fshcmdMOVEfExe +fshcmdMOVEfArg1Get: + xor a + ld (CurCol), a + ld hl, fshcmdMOVEfDDestination + call _PutS + ld hl, fshcmdMOVEfInputBuffer + ld de, 3 + call inputnumstr + call strtob + ex de, hl + ld hl, FshCmdArg1 + ld (hl), a +fshcmdMOVEfExe: + ld hl, FshCmdArg0 + ld de, 0 + ld e, (hl) + ex de, hl + push hl + ld hl, FshCmdArg1 + ld de, 0 + ld e, (hl) + pop hl + call fshvarcpy + ex de, hl + ld hl, 0 + call fshvarset + call _NewLine + jp ErrCatch + +fshcmdMOVEfInputBuffer: .db $00, $00, $00, $00 +fshcmdMOVEfDSource: .db "Source= ", 0 +fshcmdMOVEfDDestination: .db "Destination= ", 0 diff --git a/includes/FshVar.asm b/includes/FshVar.asm index e015756..42669d5 100644 --- a/includes/FshVar.asm +++ b/includes/FshVar.asm @@ -112,16 +112,15 @@ fshvarcpyOOBException: pop hl ret -; fshvarfill +; fshvarreset ;; fills fshvars with word -;; Inputs: -;; HL: 16b -fshvarfill: +fshvarreset: push hl push bc push de ld b, 0 ld de, 0 + ld hl, 0 fshvarfillLoop: call fshvarset inc b