;;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, fshcmdCOPY call strcmp ld hl, fshcmdCOPYo pop de 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 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, fshcmdCOPYo call bytecmp jp z, fshcmdCOPYf ld de, fshcmdMOVEo call bytecmp jp z, fshcmdMOVEf 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 jr c, fshcmdfillLoop pop de pop bc pop hl ret #include "includes/FshCommands.inc"