Closed Beta Discussion: KERNEL.SYS discussion thread

KERNEL.SYS discussion thread
kveroneau(Game Creator)
July 21, 2016, 7:17 a.m.

Please keep all conversations about the KERNEL.SYS and APIs to this thread.

As you may have read in a recent Development Diary, the initial KERNEL.SYS is finally ready along with a bootloader program used to load the actual kernel into memory.

In order to compile your programs against the kernel API, you should place .INC at the top of your assembler source file. This will allow you to easily use command words when calling the API.

You can grab a copy of both the KERNEL.SYS and loader.bin from the in-game host. Tomorrow there will be a new in-game network you can create your characters in which will automatically copy these files over for you and load them upon first log-in.

The source code for KERNEL.SYS will be made available to current beta testers in-game very soon. You will receive an in-game email stating where you can obtain the source code from when it's available.

KERNEL.SYS discussion thread
bauen1(Game Moderator)
July 21, 2016, 1:35 p.m.

Congratulations on this milestone, keep it up :D

KERNEL.SYS discussion thread
July 22, 2016, 4:49 a.m.

Is networking done yet?

KERNEL.SYS discussion thread
kveroneau(Game Creator)
July 22, 2016, 7:34 a.m.

Not yet, I am getting the basic useful KERNEL APIs in place. I'll be starting work on FILEIO.SYS very shortly, which will use KERNEL based ACL system, so ACL will soon no longer be hard coded as it is now, and be hackable if you have a binary on a host. The new network which is currently being created will be the first to test the networking code when it's available. So be sure to create a character in that network to beta test networking.

Also, if you have multiple characters, you can give each of them access to your other character's hosts at the moment to copy files between characters. I do this often during development to move around source files to test it in different environments. Be sure to look out for the new acl.bin program coming soon, as knowing how ACLs are stored and accessed in memory will give you an advantage, especially when it comes to exploiting networking code.

KERNEL.SYS discussion thread
kveroneau(Game Creator)
July 26, 2016, 7:13 a.m.

A small update, the new network went live a day ago and new characters can be created in the Kernel testers network. Any character placed in this network will boot using BOOT.SYS, which is currently set to load KERNEL.SYS.

Today I went and updated the VM to use a 65c02 instruction set, which should make some tasks much easier to perform. All existing binaries will continue to run without issue, as the 65c02 is fully backwards compatible with the 6502.

Next up, is a new API for the File I/O in the form of control code $5. This new control code allows you to request a file count, and to also request the name of a file at a specific index. There is example code on the in-game host as well as on this dev diary post:

Tomorrow will be the initial introduction of the kernel-based ACL system which will replace the hardcoded ACL system. You will soon be-able to update the ACLs and check ACLs from within your code. This will be entirely KERNEL driven once fully rolled out. hardcoded shell commands will start to migrate as a result.

As a small added bonus, when you assemble code now, it will display the size of both your code and data segments. This is very useful when creating very large programs.

Initial networking should begin development later this week, and will initially be confined to a specific network during testing. The only way to fully roll out the new networking stack to all in-game hosts is to have all in-game hosts properly boot into the latest kernels with a network stack.

Once the kernel is stable enough, the first network, Beta network will be phased out and no new characters can be created there. Existing characters will be unaffected for the time being, however you are strongly encouraged to begin migrating your characters to the kernel testers network when the beta network is phased out.

KERNEL.SYS discussion thread
kveroneau(Game Creator)
Aug. 2, 2016, 3:33 p.m.

Yesterday I released a bunch of a new features, including the initial network device code. I couldn't complete everything yesterday as it was getting late and I had no further time to build out and properly test both a new NETDRV.SYS and the related networking APIs. Take a read at the latest development diary for full details on what was included in yesterday's update.

Today after work, I will be completing the networking code, testing it, and then releasing it.

On a side note, BOOT.SYS will soon be a RAW binary format file, rather than a relocatable file. The update that introduces this will still allow for the relocatable version to work temporarily, but you should update your BOOT.SYS after the update if you ever plan on using either the reboot or halt commands.