Setup Cody Git server and successfully pause after 1 sector

This commit is contained in:
2023-02-27 18:14:04 +01:00
parent c2e45a833b
commit 0b3eba80d9
5 changed files with 62 additions and 10 deletions

View File

@@ -110,6 +110,7 @@ namespace JabyEngine {
static constexpr Info GetStat{0x01, Interrupt::Type::Acknowledge};
static constexpr Info SetLoc{0x02, Interrupt::Type::Acknowledge};
static constexpr Info ReadN{0x06, Interrupt::Type::DataReady};
static constexpr Info Pause{0x09, Interrupt::Type::Complete};
static constexpr Info Init{0x0A, Interrupt::Type::Complete};
static constexpr Info SetMode{0x0E, Interrupt::Type::Acknowledge};
};

View File

@@ -124,11 +124,46 @@ static __always_inline uint32_t __syscall_EnterCriticalSection() {
}
static __always_inline void __syscall_ExitCriticalSection() {
register uint32_t FuncID asm("a0") = 0x2;
register uint32_t FuncID asm("a0") = 0x02;
__asm__ volatile("syscall" : "=r"(FuncID) : "r"(FuncID) : "at", "v0", "v1", "a1", "a2", "a3", "t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", "t8", "t9", "memory");
}
static __always_inline void __syscall__DeliverEvent(uint32_t classId, uint32_t spec) {
register uint32_t FuncID asm("t1") = 0x07;
__asm__ volatile("" : "=r"(FuncID) : "r"(FuncID));
__syscall_function_cast(__syscall_Table_B, void (*)(uint32_t, uint32_t))(classId, spec);
}
static __always_inline uint32_t __syscall_OpenEvent(uint32_t classId, uint32_t spec, uint32_t mode, void (*handler)()) {
register uint32_t FuncID asm("t1") = 0x08;
__asm__ volatile("" : "=r"(FuncID) : "r"(FuncID));
return __syscall_function_cast(__syscall_Table_B, uint32_t(*)(uint32_t, uint32_t, uint32_t, void(*)()))(classId, spec, mode, handler);
}
static __always_inline int __syscall_CloseEvent(uint32_t event) {
register uint32_t FuncID asm("t1") = 0x09;
__asm__ volatile("" : "=r"(FuncID) : "r"(FuncID));
return __syscall_function_cast(__syscall_Table_B, uint32_t(*)(uint32_t))(event);
}
static __always_inline int __syscall_TestEvent(uint32_t event) {
register uint32_t FuncID asm("t1") = 0x0B;
__asm__ volatile("" : "=r"(FuncID) : "r"(FuncID));
return __syscall_function_cast(__syscall_Table_B, int (*)(uint32_t))(event);
}
static __always_inline int __syscall_EnableEvent(uint32_t event) {
register uint32_t FuncID asm("t1") = 0x0C;
__asm__ volatile("" : "=r"(FuncID) : "r"(FuncID));
return __syscall_function_cast(__syscall_Table_B, int (*)(uint32_t))(event);
}
void __syscall_printf(const char* txt, ...);
#ifdef __cplusplus