From 355a4de5599e0799f1699aac0fe41d592827a374 Mon Sep 17 00:00:00 2001 From: DeaDvey Date: Sat, 7 Jun 2025 15:42:27 +0100 Subject: [PATCH] can compare strings and output help text when user types HELP --- README.md | 6 +++--- disk_images/crawos.flp | Bin 1474560 -> 1474560 bytes disk_images/crawos.iso | Bin 1835008 -> 1835008 bytes source/.kernel.asm.swp | Bin 12288 -> 12288 bytes source/features/.cli.asm.swp | Bin 12288 -> 12288 bytes source/features/.strings.asm.swp | Bin 0 -> 12288 bytes source/features/cli.asm | 17 +++++++---------- source/features/strings.asm | 4 +--- source/kernel.asm | 2 +- source/kernel.bin | Bin 334 -> 355 bytes 10 files changed, 12 insertions(+), 17 deletions(-) create mode 100644 source/features/.strings.asm.swp diff --git a/README.md b/README.md index 38ce06f..215ac34 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ -Kernel written in Assmebly -I don't really know what I'm doing -I am using the MikeOS bootloader (which is why I've got the MikeOS license) +Kernel written in Assmebly
+I don't really know what I'm doing
+I am using the MikeOS bootloader (which is why I've got the MikeOS license)
diff --git a/disk_images/crawos.flp b/disk_images/crawos.flp index 72c00169bcfb03919c262fdfc83c008b2cb66430..247e5bf5d22028dedb69dd8fe90ec1e747f18be4 100644 GIT binary patch delta 1796 zcmZo@h-zqv+F+)}p;LN1ikTsqakC)Pd%?{LOqaPQxyUdcoGj~7!L^=Y1H-EQFBo2E zO`h)}rT3!m|GqyAFVg>mgf{(8Je=^N=KsDI4EtFbUsN$P{A4U)esS~vJ}$-=!T(=; znf$>;I?+mj!Nb)jfFUF!vsfXsSi!j{vD`mcN1>#$AXPyLB&DQ~mS3chk(yJ$5Sd>J zmPoNuU8~CvS0Ii>g3jhEB delta 1782 zcmZo@h-zqv+F+)}v9{oN6f=V#<7Ppo_kx=hm@acqa*<)QnJnv4!8Li_RkW_%Ixf8R%j7eW7D6o44}`59k?Gc^2UEMb0e z_WwQ+#ux7YCkrx(csds)miq@Q*eNi0xcUSzgk)qED`XZcK!h10^Gg*=b!e}>m>H58H!>cQohHI4 z!+3DItO#QT*LsEx46F9PV0fW5eZB~zl-`TJ|NH(hyh#5K65I4Y@o>V6n*aM=Fzjb# zd{M>F@RPBG`Nhru`?wfi1pj~WW%>sZM(IQ=1qKgSp8$rCjLc$%%wh%SqQr9lU>${$ z%7Rn{C6JVoLRx;2LPly%0YhYdDOe)KN`WCHDAbj~&Cw^=m0<^a@NPzioy-hpCI75h hSITa~P{Q`|>;H`mhc_}F-pKgBextyLVTSMJ0st1p+~5EJ delta 484 zcmZo@C}?OX*s!UAi&dJ1iGhKUfq`*zVRIAXWV@!Hq6Vf$<^~2VMg~Tv24)84hNd8a z$v(|;EFi|_yyg`)OsvwAB@QTnC@TmRb3luUReE#Bfpw-FYYUD?F*EovZe%}Ourn~sW@li?WoKZ>VP{~-W@lhfV`pIa#>T*~g^htBmyLlz zmyLlzn~j0t87l+BPF4nn5>^HVeO3kr0agZv(<}@OEi4QS_ACqxb}S4GtSk%+$C()z zjxjSZ9A#!;*v!lz&M=pmfuW0;fgy*Pfx()YfkBIzfkBgbH}UCU4Zx zgVNGs4Au&^XaJ%_SR7M|fdM4PsA&z=ZpH!?u$z29g9R+es0n7XGFU^Df_Y$>jT$mw z8ma<=y-`C8SqyH1Eml!G7F&=78#Q!MrNIu`sG-dRcRfUzq6o48*vAkF6|nw|8b(lB t8A_WWG=Npx+JY^Fx_L7;5<$ z7|Qt>7>f8A7z+6r80`2N7;O0&7!3Fs7&Q4A7&Q197zFqk7=H3GF#OmM|c<*mhmt! zEahQfSi-}=(95%#k!3!2eOh8pajHT}l7hOMqffA_x{iVYLrGC-S{e=sh}sYwveZN7oWfo^_o~$d+I9XHw@MK|qF>y`?&Vth7j6{a~;`ri{#G(?A HN-G8c=qz{g delta 367 zcmZojXh;xCG6?hZRj|}EWME)m5MW?<#paSx(6v$Q7eAxnWl1V_;C{V_@LpV_;zBV_leKl-CwJ)TGbz|j-l40t`M0hpj2_kbxmRF*h?W9VCGtr=_Ok7bW6X1Cp(S z7^t6|pOUJdSe&b$T$EUzU#wr8Us{x$s-KpcSW;S)TC87OQk0pOUaXf`oD0%6ibq3W zGz2IOfzpyRT?<|YVx@ z@iH)&@-i?O@G>yy^D;1~^D;2V@IvflJwQd1Z>v+`0EVD>{zEXhc%R7fmJRmjU%0J}>^A*(dE0OSRj zN(Rp27bF7+}7zVqoA*&Pid&FOG-$D<0yIVk=Gt zYXwXY?5SXDrvNrYAtygErC6aXF{dv7AV9qSS#eF=H?ewDkP?)6r~myD;QZR)D+j`)g;zr z*QC}M)PS9Zsmu_rtOTY=K>@oZW!Qzm24i!#izg_K@VVOs95CRJSAYg3TG(XfDY$ql zlxJinXMnt~UaYQAo>`Ki0AfIcFEdZUF+!mzH9fPqB(;daTEQc~TmcdxP(w3|^YawS J^NX^J82~>TEu#Pc literal 0 HcmV?d00001 diff --git a/source/features/cli.asm b/source/features/cli.asm index 852bdf1..7e2765f 100644 --- a/source/features/cli.asm +++ b/source/features/cli.asm @@ -1,5 +1,7 @@ os_start_cli: pusha + + call os_print_newline mov si, prompt call os_print_string @@ -19,14 +21,6 @@ os_read_cli: .output_the_user_input: call os_print_newline - mov si, command_result_text - call os_print_string - - mov si, user_input - call os_print_string - - call os_print_newline - .check_matches: ; Check if the user input matches any internal commands mov si, user_input mov di, help_string @@ -40,10 +34,13 @@ os_read_cli: print_help_text: mov si, help_text call os_print_string_nl + call os_read_cli.finish user_input times 20 db 0 -prompt db 'CrawOS > ', 0 +prompt db 'CrawOS: ', 0 help_string db 'HELP', 0 -help_text db 'This is CrawOS', 0 +help_text db 'This is CrawOS, type "HELP" for help', 0 command_result_text db 'You typed: ', 0 +true db 'TRUE', 0 +false db 'FALSE', 0 diff --git a/source/features/strings.asm b/source/features/strings.asm index a921896..01abb11 100644 --- a/source/features/strings.asm +++ b/source/features/strings.asm @@ -7,7 +7,7 @@ ; ^ ; SI => lodsb loads value stored at SI to AX and then increments SI if DF is 0 os_compare_strings: - pusha + cld .compare: lodsb @@ -19,10 +19,8 @@ os_compare_strings: .unequal: mov cl, 0 ; Change to 0 if unquality is proven - popa ret .equal: mov cl, 1 - popa ret diff --git a/source/kernel.asm b/source/kernel.asm index 6a0663b..a34ecb3 100755 --- a/source/kernel.asm +++ b/source/kernel.asm @@ -37,7 +37,7 @@ os_main: je no_change no_change: - call os_clear_screen + call print_help_text call os_start_cli bootdev db 0 diff --git a/source/kernel.bin b/source/kernel.bin index 0067e28c7163450871d56be8b8f6ae44ffa3f0d3..c2df7e40129f5dc526d51840b3d8b8b09c91e62d 100644 GIT binary patch delta 173 zcmX@d^q6Ua4CBFxvK3tG88$Gi+W&&#h1SIRQhG1?{_p$4@FM*`NMzIh#KQ?MYX0wg z!LXl|@kJFw!%xN%<`*~r@8e>85&Zwfmx&*w6Ri{&JY0PO7(y~Kixo196`YF_%l(6O z6iO-!QWcayQc4PG`9%sDsW}AyA4AL+sm*2H!>XF$aok4v=B)H delta 176 zcmaFNbdG6)45Q6N*$S>13>z3$?f=N|LVejRx)ADx>9x