2022-10-15 01:53:41 +02:00
|
|
|
; command parser
|
|
|
|
|
|
|
|
shell_parse_command:
|
2023-04-01 01:28:23 +02:00
|
|
|
cmp.8 [shell_redirect_next], 0
|
|
|
|
ifnz mov [shell_stream_struct_ptr], shell_redirect_stream_struct
|
|
|
|
|
2022-10-15 01:53:41 +02:00
|
|
|
mov r0, shell_text_buf_bottom
|
|
|
|
|
2022-11-26 02:21:28 +01:00
|
|
|
; clear
|
|
|
|
mov r1, shell_clear_command_string
|
|
|
|
call compare_string
|
|
|
|
ifz jmp shell_clear_command
|
|
|
|
|
2022-10-15 01:53:41 +02:00
|
|
|
; dir
|
|
|
|
mov r1, shell_dir_command_string
|
|
|
|
call compare_string
|
|
|
|
ifz jmp shell_dir_command
|
|
|
|
|
|
|
|
; disk
|
|
|
|
mov r1, shell_disk_command_string
|
|
|
|
call compare_string
|
|
|
|
ifz jmp shell_disk_command
|
|
|
|
|
|
|
|
; diskrm
|
|
|
|
mov r1, shell_diskrm_command_string
|
|
|
|
call compare_string
|
|
|
|
ifz jmp shell_diskrm_command
|
|
|
|
|
|
|
|
; exit
|
|
|
|
mov r1, shell_exit_command_string
|
|
|
|
call compare_string
|
|
|
|
ifz jmp shell_exit_command
|
|
|
|
|
|
|
|
; help
|
|
|
|
mov r1, shell_help_command_string
|
|
|
|
call compare_string
|
|
|
|
ifz jmp shell_help_command
|
|
|
|
|
2023-04-01 01:28:23 +02:00
|
|
|
; rdnext
|
|
|
|
mov r1, shell_rdnext_command_string
|
|
|
|
call compare_string
|
|
|
|
ifz jmp shell_rdnext_command
|
|
|
|
|
2023-01-30 01:04:01 +01:00
|
|
|
; shutdown
|
|
|
|
mov r1, shell_shutdown_command_string
|
|
|
|
call compare_string
|
|
|
|
ifz jmp shell_shutdown_command
|
|
|
|
|
2022-10-15 01:53:41 +02:00
|
|
|
; type
|
|
|
|
mov r1, shell_type_command_string
|
|
|
|
call compare_string
|
|
|
|
ifz jmp shell_type_command
|
|
|
|
|
|
|
|
; attempt to run a FXF binary
|
|
|
|
call launch_fxf
|
|
|
|
|
|
|
|
; invalid command
|
|
|
|
mov r0, shell_invalid_command_string
|
|
|
|
call print_str_to_terminal
|
|
|
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
shell_invalid_command_string: data.str "invalid command or FXF binary" data.8 10 data.8 0
|
|
|
|
|
|
|
|
; all commands
|
2023-01-21 09:17:10 +01:00
|
|
|
#include "commands/clear.asm"
|
|
|
|
#include "commands/dir.asm"
|
|
|
|
#include "commands/disk.asm"
|
|
|
|
#include "commands/diskrm.asm"
|
|
|
|
#include "commands/exit.asm"
|
|
|
|
#include "commands/help.asm"
|
2023-04-01 01:28:23 +02:00
|
|
|
#include "commands/rdnext.asm"
|
2023-01-30 01:04:01 +01:00
|
|
|
#include "commands/shutdown.asm"
|
2023-02-01 07:38:14 +01:00
|
|
|
#include "commands/type.asm"
|