From 5d787348b1a90e649226b41d17a1a9ab244da4b4 Mon Sep 17 00:00:00 2001 From: Tom-on64 Date: Fri, 22 Dec 2023 13:18:07 +0100 Subject: [PATCH] Added file loading --- .gitignore | 1 + build.sh | 5 +- build/boot.bin | Bin 512 -> 512 bytes build/bootloader.bin | Bin 1024 -> 1024 bytes build/{main.bin => calc.bin} | Bin 512 -> 512 bytes build/filetable.bin | Bin 512 -> 512 bytes build/kernel.bin | Bin 1024 -> 1024 bytes build/os.bin | Bin 2048 -> 2560 bytes src/boot.asm | 34 ++++++++-- src/calc.asm | 13 ++++ src/filetable.asm | 2 +- src/kernel.asm | 117 ++++++++++++++++++++++++++++++----- src/print.asm | 4 ++ 13 files changed, 153 insertions(+), 23 deletions(-) create mode 100644 .gitignore rename build/{main.bin => calc.bin} (62%) create mode 100644 src/calc.asm diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5963eec --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +./build/** \ No newline at end of file diff --git a/build.sh b/build.sh index 43b5eaa..5bf4925 100644 --- a/build.sh +++ b/build.sh @@ -1,13 +1,14 @@ # Bootloader nasm -fbin src/boot.asm -o build/boot.bin nasm -fbin src/filetable.asm -o build/filetable.bin -cat build/main.bin build/filetable.bin > build/bootloader.bin +cat build/boot.bin build/filetable.bin > build/bootloader.bin # Kernel nasm -fbin src/kernel.asm -o build/kernel.bin # Final binary -cat build/bootloader.bin build/kernel.bin > build/os.bin +nasm -fbin src/calc.asm -o build/calc.bin +cat build/bootloader.bin build/kernel.bin build/calc.bin > build/os.bin # Run QEMU qemu-system-x86_64 -drive format=raw,file="./build/os.bin",index=0,media=disk -m 256M diff --git a/build/boot.bin b/build/boot.bin index 05aa27c933972ece09a581dce288956341c92b3b..2f731e97fad30bd89594df69547ca144e0e29e3e 100644 GIT binary patch literal 512 zcmXp!(08Ek#$JY+&Nm%mdusOWt$7j0&;?|@$Yj{Jv*tx0!)^wFzQcyMw=ivB1c`5D z*v7Dt>8x;(!EOcxs00&Sf*B|wz5^(618D4nz88HLy5#oM1ixZnU{KiisOAL|!>=z1 zTlhBfZ)aG;aiE0dtibEb^rhX diff --git a/build/bootloader.bin b/build/bootloader.bin index 84b1ac78a402331d065b4bd7a4302e8a81213750..c59d0840d3c9128562cc098c01a1b007659f37dc 100644 GIT binary patch literal 1024 zcmXp!(08Ek#$JY+&Nm%mdusOWt$7j0&;?|@$Yj{Jv*tx0!)^wFzQcyMw=ivB1c`5D z*v7Dt>8x;(!EOcxs00&Sf*B|wz5^(618D4nz88HLy5#oM1ixZnU{KiisOAL|!>=z1 zTlhBfZ)aG;aiE0dtibE-* Z(D$P6!Yc*_28CZ=faE9`Y9SE13II66B6R=& diff --git a/build/filetable.bin b/build/filetable.bin index 1688beac51b52efa4bb29471f62b8abd05c81c2b..ba34b58892bcff3e1056e34cdb2fa755b83fcaad 100644 GIT binary patch delta 16 XcmZo*X<(V4#AH^x(eOOuLzJHxc#ER&4~f6G1w8#n%zgA6wA{4M_&Y=Zb(^g#M|GYIq@HoUFY z#coquqG`oi!tDI|Q*akhA5h5IinWyQ-^mhY_tzimK}xJj1b}*?onK$r_nq;@XNH&M z|2J|O9B@|a5_fL+rBfo)@XMfvui=+vJ!iu!gKrNRF1&uSkCW-eNrsoc|2qzDVdw&S z;;is)h6a$OTbMxH7yB4CFm7eo#&A}+m~)>j(~CI_FBSgp04llBccAY<-;2HruNW8@ zcpLVWFuiDGc***IpDokGYy+V)j4#|6USHh@r0p199{TrU(!{l@{J`MhX8?uCi$I2# zJ^v;?G>|>TsCl}B{opAU$Jh7v9c6rR_u9Gmt@-n@wd!o*zuilH-kXmVZ+;<_dl&G;n)|(_@ay9 z_3GCv_swT~(ZKL};l2#U7ZnUpMTRGx)wIV|aaaACR_Vcp3Nq zMgL@9Mpb^Gv-rUddEv+KQse*RMn(fEEk@1L9qb2Bu{gfIw@;Pv#o_;nhYczWfMD`D tMrpb1)S^5+E?zEP20H}?AnBHwld6!HU!stfUz(S)*^=ovZ4>$@Hi&mXOl}|HBbk8W-Yn@>W8CbIFM@;k+zM@=>R2 zHp(NtiHn1 zI@GOixQih*FfX=pl_I5LBBQ$m+CSIrkYJcWHW8zHq6_yjF^zR_t9yyYRe0d-3S~ z+`&uG2198L3J^}F5<*&1gb`^n9j7>8IB{K(iXm6Eo>KSqB6js7cj delta 343 zcmZn=X%O%A_j4vt}po$DnI;(ZD z+tijQPnKtu5ejB};l}X#>OLTC$M7=l|BL>~zO1VJKxgrT9rD7D;ibm^$&IWAQd*3f zr#sjWo?>x)eQ%#C ", 0 ; Prompt for input -newline: db ENDL, 0 ; CRLF -notFoundMsg: db "File not found!", ENDL, 0 +fileNotFoundMsg: db "File not found!", ENDL, 0 ; User tries to load nonexistent file +sectorNotFoundMsg: db "Sector not found!", ENDL, 0 ; File in an incorrect sector in filetable +programLoadFailMsg: db "Failed while loading program!", ENDL, 0 ; File load fail browserMsg: db " Filename Sector ", ENDL, \ "---------- --------", ENDL, 0 @@ -177,9 +261,10 @@ helpMsg: db "Available Commands:", ENDL, \ "H - Help", ENDL, \ "R - Reboot", ENDL, 0 -userInput: db 0 inputLen: db 0 +userInput: db 0 FILETAB_LOC equ 0x1000 +PROGRAM_LOC equ 0x8000 times 2*512-($-$$) db 0 diff --git a/src/print.asm b/src/print.asm index b399030..816c123 100644 --- a/src/print.asm +++ b/src/print.asm @@ -47,3 +47,7 @@ printHex: ret hexString: db "0x0000", 0 + +; Usefull definitions +%define ENDL 0x0a, 0x0d +newline: db ENDL, 0 ; CRLF