fsh-shell/includes/FshCmd.asm

102 lines
1.4 KiB
NASM

;;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 FshCommamds.
;;Inputs:
;; HL: Op code mem loc
;;Outputs:
;; Jp to loc for cmd func
fshcmdroute:
pop bc ;pop the ret loc from stack into bc
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
push bc ;put ret location back on stack
ret
#include "includes/FshCommands/FshCommands.inc"