The new official site for Arcrascent can be found here.
Got GUI!
I am so happy today… I got GUI to work for the first time in 2 years of my development of Arcrascent OS.
Major Updates
First update in 1 month!
The SerCon Terminal went through major changes. Many new commands were created and The UI was tweaked. Most importantly, Arcrascent OS booted successfully on a real machine for the first time!
Also, VBE (VESA BIOS Extensions) GUI and VGA Mode 0x13 are now working!
This is what SerCon looks like right now… Notice that AM/PM times are implemented.
Facit!
I have a biology quarter exam next week!
I’m going to have to pause coding for a few days and study insanely hard for this test.
[UPDATE] Arrow Keys Support
The Arcrascent OS SerCon Terminal now fully supports all arrow key operations (UP, DOWN, LEFT, RIGHT):
- UP – Load previous command ran in the history
- If you were simply typing a new command, SerCon will load the most recent command ran via the terminal interface.
- DOWN – Load more recent command in the history
- If you are at the most recent command run in the history array, SerCon will restore the command that you had scribbled before pressing the “UP” arrow key.
- LEFT – Shift cursor once to the left
- If you type anything after pressing the “LEFT” arrow key, SerCon will simply append the typed string in the middle of the original command at the point where the cursor it located.
- RIGHT – Shift cursor once to the right
- Similar to “LEFT”
Arcrascent OS KeTone (v2.1.3) Release PLAN
I am planning to release the first official build of Arcrascent OS rC Edition (KeTone, v2.1.3) sometime around January. 2015.
Sercon Terminal Finally Works!
After days of individual and collaborated experiments with my buddy Wassim, I finally came up with a solution to fix the sercon buffer parser issue.
Basically, when I typed a command, the command buffer would be corrupted. Like this:
[/root | 1412814792 UDT (Epoch)]
Sercon$ help
Error: ” mkfs.fatS* “ is not a registered command of the SerCon Terminal”
As shown in bold, the buffer is displaying random binaries that were in the RAM.
int getCommend (char buf [], int n) is a function used to obtain the first n keypresses that the user makes. A return key automatically makes the function return. The integer returned is the # of characters actually typed before a return key or a buffer overflow.
char buf [100]; // declare buffer
memset (buf, 0, sizeof(buf)); // force initialize buffer
getCommand (buf, 100);
No problems were detected in any of those lines of code.
Then, I called the int execSerCon (char command []) function.
execSerCon runs a registered command of the terminal (via its char array argument).
There, I went
for (int i=0; i<sizeof(command); ++i) {
if (command [i] != 0)
err = 0;
}if (err)
return -1;for (int i=0; i<sizeof(Commands)/sizeof(serconcommand_t); ++i) {
if (strcmp (Commands [i].name, command) == 0) { // find matchint commandexit = Commands [i].fnptr (currentcommand_argv, currentcommand_argc); // execute command
if (commandexit == -1)
kprintf (“\nCommand Exited with Error Code -1”);
if (commandexit == 0)
kprintf (“\nCommand Successfully Executed”);
else
kprintf (“\nCommand Exited with Unrecognized Return Code %d”, commandexit);return 0;
}
}
kprintf (KRED “\nError: %s is not a command, executable file, or a script” KRST, str);
The problem was that I was directly casting a char [] into a char*. Such feature was supported in Microsoft VC++ CL Compiler, but GCC seems not to like it.
Therefore, to fix the error, I had to create a new char* string that has the same contents as the char[]. Simple.
char* str;
str = kmalloc (sizeof(command);for (int i=0; i<sizeof(command); ++i)
str[i] = command[i];
Bug Fixed!
[UPDATE] Arcrascent OS rC Current Status
Arcrascent OS Version: 2.0.1 Hornet ==> 2.1.0 Torque
New Features:
- The SerCon Serial Console Terminal Interface Implemented
- ++API
- Interrupt 0x50
- Initialize – eax=0x01; ebx=[size_of_buffer]
- Add Command – eax=0x02; ebx=[name_of_command]; ecx=[function_pointer]
- Remove Command – eax=0x03; ebx=[name_of_command]
- Run Command – eax=0x04; ebx=[name_of_command]
- Interrupt 0x50
- ++API
- vfsMap ()
- Map a directory to a token (use MS-Style path (with backslashes) for mapped directories)
- i.e. vfsMap (“/root”, “C”); ==> C:\Arcrascent == /root/Arcrascent
- Map a directory to a token (use MS-Style path (with backslashes) for mapped directories)
I am planning on releasing an image next month or two.
Arcrascent Wordpad
Arcrascent Wordpad is a little word processor that I wrote in 2012 using Visual Basic.
It supports:
- MDI Window (Sub-Window)
- Tabs
- Window Management
- Color Formatting
- Fonts (All that are installed on the System)
- Saving
- Overwriting
- Save As…
- ArcX Format
- HTML
- RTF
- Opening
- ArcX Format
- HTML
- RTF
- Microsoft DOCX
- Closing
- Bullets
- Clipboard with Formatting Conserved
- Undo/Redo
This software is not really being developed any more, as I am currently focused on Arcrascent OS, but you can still try it out in the Downloads section. Instructions of how to register the software is also located in that section.
Arcrascent OS Legacy (v1.0-1.5)
The Legacy Edition (the original one before the re-write) can be downloaded at:
WARNING: This software is not suitable for daily-usage as it is (literally) useless. DO NOT try to install this software on your physical computer. It is a waste of time and a risk of damaging your computer (or whatever other device you’re using). The stability of the kernel is not guaranteed. Just use emulators like Bochs, the x86 Emulator or VirtualBox.