;;fshcmddecode ;;Decodes all commands. ;;Inputs: ;; HL: Cmd String mem loc ;; DE: Op code mem loc ;;Output: ;; Sets (DE) with command op code fshcmddecode: push hl push de ld de, fshcmdEXIT call strcmp ld hl, fshcmdEXITo pop de call z, bytecpy pop hl push hl push de ld de, fshcmdSET call strcmp ld hl, fshcmdSETo pop de call z, bytecpy pop hl push hl push de ld de, fshcmdVARS call strcmp ld hl, fshcmdVARSo pop de call z, bytecpy pop hl push hl push de ld de, fshcmdCLS call strcmp ld hl, fshcmdCLSo pop de call z, bytecpy pop hl ret ;;fshcmdroute ;;Routes all commamds. ;;Inputs: ;; HL: Op code mem loc ;;Outputs: ;; Jp to loc for cmd func ;; ult go to Fin fshcmdroute: ld de, fshcmdEXITo call bytecmp jp z, fshcmdEXITf ld de, fshcmdSETo call bytecmp jp z, fshcmdSETf ld de, fshcmdVARSo call bytecmp jp z, fshcmdVARSf ld de, fshcmdCLSo call bytecmp jp z, fshcmdCLSf ld hl, FshCmdErrCode ld (hl), $01 jp Err ; fshvarfill ;; fills fshcmd with byte ;; Inputs: ;; C: byte fshcmdfill: push hl push bc push de ld b, 0 ld de, 0 ld hl, FshCmd fshcmdfillLoop: ld (hl), c inc hl inc b inc de ld a, b cp FshCmdSize / 2 jr c, fshcmdfillLoop pop de pop bc pop hl ret #include "includes/commands.inc"