MascOS 0.2.0
Big update incoming!
External programs
Loading and executing a file is now much more painless, at least for me.
- Added
LoadProgramlabel, that loads a program automatically without asking you the address in memory : ) - Now to exit from a program
int 0x20is used, instead of using ajmpinstruction. - 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
GetFileNameandGetFileSize, useint 0x22 ah = 2andint 0x22 ah = 3respectively to use them. LoadFilebehaves differently now: it useses:bxto know the address to read to, instead of adding the kernel offset and other stupid things.- Added
timecommand, that shows system time and date. - Now the
lscommand is automatized: no matter what and how many files are there it will list them all. - Added
catcommand, that shows a files contents. - Added
colourcommand, that changes the colours used by the VGA driver(doesn't switch back to previous colours) - Added
shutdowncommand, 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
StringToIntwhich converts a given string with numbers in it, into an intiger. - Reduced "loading screen" wait time because I felt like to.
SearchFilecommunicates if everything went well with the carry flag now, since it allows to not use acmpinstruction but just ajmp, for cleaner code.LoadFilenow saves the registers.- Should have improved
VgaPrintStringperformance. VgaClearScreenno longer uses BIOS, but does everything by hand.- Added a new function called
VgaGetColoursthat returns intobxthe colours currently used by the VGA driver. - Added another new function called
VgaPaintScreenthat changes foreground and background colour of the screen, and changes the colours used by the VGA driver. VgaPrintStringshould 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
testinstructions. - Renamed
Editprogram intoTrashVimbecause I felt like to do it. - Shifted the includes in the kernel after all kernels code.
- Other minor changes.