115 lines
1.6 KiB
NASM
115 lines
1.6 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, fshcmdCLS
|
|
call strcmp
|
|
ld hl, fshcmdCLSo
|
|
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, fshcmdSLEEP
|
|
call strcmp
|
|
ld hl, fshcmdSLEEPo
|
|
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, fshcmdCLSo
|
|
call bytecmp
|
|
jp z, fshcmdCLSf
|
|
|
|
ld de, fshcmdVARSo
|
|
call bytecmp
|
|
jp z, fshcmdVARSf
|
|
|
|
ld de, fshcmdSLEEPo
|
|
call bytecmp
|
|
jp z, fshcmdSLEEPf
|
|
|
|
push bc ;put ret location back on stack
|
|
ret
|
|
|
|
#include "includes/FshCommands/FshCommands.inc"
|