From ef71b80d3df1969a2be85eadf2d83cd85745469d Mon Sep 17 00:00:00 2001 From: Amlal Date: Sun, 8 Sep 2024 22:19:00 +0200 Subject: A lot: - Changed task banks are being switched in the kernel. - Changed user mode switch mode, improved it to push rflags. - User proc will start the scheduler when it's being jumped on. Signed-off-by: Amlal --- dev/HPFS/EPM/EBS.i | 17 +++++++++-------- dev/HPFS/EPM/EPM.asm | 14 ++++++++------ dev/HPFS/EPM/blob.json | 6 ++++++ dev/HPFS/Sources/IFSMain.cxx | 4 +++- 4 files changed, 26 insertions(+), 15 deletions(-) create mode 100644 dev/HPFS/EPM/blob.json (limited to 'dev/HPFS') diff --git a/dev/HPFS/EPM/EBS.i b/dev/HPFS/EPM/EBS.i index 3c55825b..4fc529da 100644 --- a/dev/HPFS/EPM/EBS.i +++ b/dev/HPFS/EPM/EBS.i @@ -7,7 +7,8 @@ ;; DUMP THIS BLOB TO DISK, WHEN FORMATTING THE SSD. HPFS_EBS_HEADER: - db "HPFS ", 0 ;; MAGIC NUMBER OF FILESYSTEM + db " HPFS" ;; MAGIC NUMBER OF FILESYSTEM + dw 8 ;; MAGIC NUMBER LENGTH. dq 0 ;; RESERVED 4 dw 1 ;; VERSION dw 0 ;; PARTITION TYPE @@ -19,10 +20,10 @@ HPFS_EBS_HEADER: dq 0 ;; RESERVED 2 dq 512 ;; SECTOR SZ dq 0 ;; DISK SIZE - dq 0 ;; RESERVED 1 - dq 0 ;; LOCKER ON? - dq 0 ;; PARTITION MAP TYPE (GPT, MBR, EPM) - dq 0 ;; MASTER FILE TABLE - dq 0 ;; MASTER TRACE TABLE - dq 0 ;; MASTER DIRECTORY TABLE - dw 0xFFFF ;; END OF HEADER WORD \ No newline at end of file + dq 0 ;; RESERVED 1 SLOT + dq 1 ;; LOCKER ON? + dq 1 ;; PARTITION MAP TYPE (GPT, MBR, EPM) + dq 16 ;; MASTER FILE TABLE + dq 80 ;; MASTER TRACE TABLE + dq 144 ;; MASTER DIRECTORY TABLE + dw 0xFFFF ;; END OF HEADER WORD diff --git a/dev/HPFS/EPM/EPM.asm b/dev/HPFS/EPM/EPM.asm index fadb555c..2197d2cd 100644 --- a/dev/HPFS/EPM/EPM.asm +++ b/dev/HPFS/EPM/EPM.asm @@ -18,18 +18,20 @@ HPFS_EPM_UUID: db 0 db 0 db 0 - dd 0xAD ;; REVISON - dd 0 ;; NUM BLOCKS - dd 512 ;; SECTOR SZ + dd 0xAD ;; EPM revision + dd 0 ;; Number of blocks, set to 0 by default. + dd 512 ;; Sector size, HPFS was made with drives in mind, so 512. dd 0 dd 0 - dw 0x1f ;; NewOS + dw 0x1f ;; NewOS (ZKA) present on partition. dd 1 - db "FileSystem (C:)", 0 + db "FileSystem (A:)", 0 times 401 db 0 HPFS_EPM_HEADER_END: %include "EBS.i" -times 512 db 0 \ No newline at end of file +times 16 db 0 + +;; Here the partition starts diff --git a/dev/HPFS/EPM/blob.json b/dev/HPFS/EPM/blob.json new file mode 100644 index 00000000..4ce4fc1c --- /dev/null +++ b/dev/HPFS/EPM/blob.json @@ -0,0 +1,6 @@ +{ + "compiler_path": "nasm", + "sources_path": ["EPM.asm"], + "output_name": "hpfs.bin", + "compiler_flags": ["-f bin"] +} diff --git a/dev/HPFS/Sources/IFSMain.cxx b/dev/HPFS/Sources/IFSMain.cxx index 229efb15..d107db2a 100644 --- a/dev/HPFS/Sources/IFSMain.cxx +++ b/dev/HPFS/Sources/IFSMain.cxx @@ -9,6 +9,8 @@ #include -HPFS_INT32 IFSStart(HPFS_VOID) { +/** @brief HPFS IFS main. */ +HPFS_INT32 IFSStart(HPFS_VOID) +{ return 0; } -- cgit v1.2.3