MascOS 0.2.0
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 ajmp
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
andGetFileSize
, useint 0x22 ah = 2
andint 0x22 ah = 3
respectively to use them. LoadFile
behaves differently now: it useses: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 acmp
instruction but just ajmp
, 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 intobx
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 intoTrashVim
because I felt like to do it. - Shifted the includes in the kernel after all kernels code.
- Other minor changes.