diff --git a/FSHa.asm b/FSHa.asm index dc6001c..f840b55 100644 --- a/FSHa.asm +++ b/FSHa.asm @@ -9,17 +9,19 @@ Setup: CALL _homeup ;Put up home CALL _ClrLCDFull ;Clear screen - LD HL, $FF + LD HL, $00 CALL fshvarfill Input: + LD HL, $00 ; fill fshcmd with $00 + CALL fshcmdfill + XOR A LD (CurCol), A LD HL, PS1 CALL _PutS - ;TODO: reset CmdFsh mem LD HL, FshCmd LD DE, 0 LD DE, FshCmdInptSize diff --git a/bin/FSHa.8xp b/bin/FSHa.8xp index 8355ea7..dddae35 100644 Binary files a/bin/FSHa.8xp and b/bin/FSHa.8xp differ diff --git a/includes/FshCmd.asm b/includes/FshCmd.asm index 692d696..d5ca43d 100644 --- a/includes/FshCmd.asm +++ b/includes/FshCmd.asm @@ -70,4 +70,34 @@ fshcmdroute: jp Fin +; fshcmdfill +;; fills fshvars with word +;; Inputs: +;; HL: 16b +fshcmdfill: + push hl + push de + ld d, h + ld e, l + ld hl, FshCmdArg0 + ld (hl), e + inc hl + ld (hl), d + inc hl + ld (hl), e + inc hl + ld (hl), d + inc hl + ld (hl), e + inc hl + ld (hl), d + inc hl + ld (hl), e + inc hl + ld (hl), d + pop de + pop hl + ret + + #include "includes/commands.inc" diff --git a/includes/commands/SET.asm b/includes/commands/SET.asm index e724379..25b646e 100644 --- a/includes/commands/SET.asm +++ b/includes/commands/SET.asm @@ -23,34 +23,38 @@ fshcmdSETfArg0Get: ld de, 3 call inputnumstr call strtob - ld de, 0 - ld e, a + ld hl, FshCmdArg0 + ld (hl), a + call _NewLine fshcmdSETfArg1: - push de - ld hl, FshCmdArg1 - ld e, (hl) - inc hl - ld d, (hl) - ex de, hl - ld de, 0 - call cpHLDE - pop de + ld hl, FshCmdArg1 + ld de, 0 + ld e, (hl) + inc hl + ld d, (hl) + ex de, hl + ld de, 0 + call cpHLDE jr nz, fshcmdSETfExe fshcmdSETfArg1Get: - push de - call _NewLine - xor a - ld (CurCol), a - ld hl, fshcmdSETfDValue - call _PutS - ld hl, fshcmdSETfInputBuffer - ld de, 3 - call inputnumstr - call strtob - pop de + xor a + ld (CurCol), a + ld hl, fshcmdSETfDValue + call _PutS + ld hl, fshcmdSETfInputBuffer + ld de, 3 + call inputnumstr + call strtob + ld hl, FshCmdArg1 + ld (hl), a fshcmdSETfExe: + ld hl, FshCmdArg0 + ld de, 0 + ld e, (hl) + ld hl, FshCmdArg1 + ld b, (hl) ld hl, 0 - ld l, a + ld l, b call fshvarset call _NewLine jp Fin