Skip to content

MascOS 0.2.0

Compare
Choose a tag to compare
@leo007er1 leo007er1 released this 04 Dec 18:26
· 25 commits to main since this release

Big update incoming!

External programs

Loading and executing a file is now much more painless, at least for me.

  • Added LoadProgram label, that loads a program automatically without asking you the address in memory : )
  • Now to exit from a program int 0x20 is used, instead of using a jmp instruction.
  • DS and ES now get set to the same value as CS.
  • All VGA and disk functions now work better for external programs.

Important changes

  • Adapted the VGA driver to allow to change screen colours on the fly and better code(still a freaking arrow in the eye but for now it's ok).
  • Fixed VGA screen scrolling, FINALLY.
  • Added CMOS.asm, that messes with the CMOS and RTC.
  • Added APM.asm, APM driver that lets the kernel control power states of all devices.
  • Added 2 new functions called GetFileName and GetFileSize, use int 0x22 ah = 2 and int 0x22 ah = 3 respectively to use them.
  • LoadFile behaves differently now: it uses es:bx to know the address to read to, instead of adding the kernel offset and other stupid things.
  • Added time command, that shows system time and date.
  • Now the ls command is automatized: no matter what and how many files are there it will list them all.
  • Added cat command, that shows a files contents.
  • Added colour command, that changes the colours used by the VGA driver(doesn't switch back to previous colours)
  • Added shutdown command, it's purpose is to shutdown the computer(who would have ever thought of that)
  • Should have fixed for good the command line attributes not being the same as to what the user inputted. This was unexpectedly difficult to do.

Less important changes

  • Added another new function called StringToInt which converts a given string with numbers in it, into an intiger.
  • Reduced "loading screen" wait time because I felt like to.
  • SearchFile communicates if everything went well with the carry flag now, since it allows to not use a cmp instruction but just a jmp, for cleaner code.
  • LoadFile now saves the registers.
  • Should have improved VgaPrintString performance.
  • VgaClearScreen no longer uses BIOS, but does everything by hand.
  • Added a new function called VgaGetColours that returns into bx the colours currently used by the VGA driver.
  • Added another new function called VgaPaintScreen that changes foreground and background colour of the screen, and changes the colours used by the VGA driver.
  • VgaPrintString should now be faster, since now it moves character and attribute byte together instead of moving them separately and does less memory read/writes.
  • Improved shell compare commands performance sligthly, by removing all the test instructions.
  • Renamed Edit program into TrashVim because I felt like to do it.
  • Shifted the includes in the kernel after all kernels code.
  • Other minor changes.