diff options
Diffstat (limited to 'sw/z80/kernel/include/boot.h')
-rw-r--r-- | sw/z80/kernel/include/boot.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/sw/z80/kernel/include/boot.h b/sw/z80/kernel/include/boot.h new file mode 100644 index 0000000..5310e45 --- /dev/null +++ b/sw/z80/kernel/include/boot.h @@ -0,0 +1,35 @@ +#ifndef BOOT_H +#define BOOT_H + +#include "types.h" + +#define LOGIN_PC // TODO find an address in ROM, to perform jumps + +#define EXEC_STATUS // TODO find an address in Kernel space + +#define PWD_ADDR // TODO find an address in ROM, password +#define PWD_SIZE 8 + +struct exec_status { + + volatile int logged_in:1; // authenticated + volatile int k_control:1; // no running programs + volatile int program_id:1; // current running program id, see "progman.h" + volatile int hidden_pc:13; // program counter of the paused program +}; + +void boot_init(); + +/* +* It returns 1 if succeded, otherwise 0 +*/ + +int8_t authenticate(const char *pwd); + +/* +* It sets the password in the ROM space, maximum 8 characters +*/ + +void set_pwd(const char *pwd); + +#endif
\ No newline at end of file |