102 lines
1.4 KiB
NASM
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 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
|
|
|
|
#include "includes/FshCommands/FshCommands.inc"
|