Development Diary: Kernel code has been partly updated

Kernel code has been partly updated
kveroneau(Game Creator)
March 30, 2017, 6:32 a.m.

I worked really hard for a couple hours after work tonight to get the first parts of the kernel ported over to the new code. After some initial difficulties which were related to a couple bugs in the 6502 Assembler, I was able to port all the main functions of the kernel over! Now it is possible for the select mission designers to write code which uses the original Kernel APIs that allow for printing of null-terminated strings, string input, string compare, memory copy, and memory clear routines.

The next thing I will be working on is the file system driver so that files can be easily loaded and saved back to the block storage device. Here is the current memory layout after the kernel is loaded into memory:

00000200  a9 08 8d 8b ff a9 00 8d  8a ff 8d 8c ff 8d 8d ff  |................|
00000210  a9 01 8d 8e ff 4c 00 08  00 00 00 00 00 00 00 00  |.....L..........|
00000220  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000800  80 0b 4b 45 52 4e 45 4c  2e 53 59 53 00 a9 f5 8d  |..KERNEL.SYS....|
00000810  8b ff a9 01 8d 8c ff 8d  8e ff a9 08 85 fb a9 02  |................|
00000820  85 fa a9 f5 85 fd a9 01  85 fc a0 00 b1 fa 85 ff  |................|
00000830  b1 fc c5 ff d0 09 c8 a9  00 c5 ff d0 ef 80 0b a9  |................|
00000840  21 8d d0 ff a9 0a 8d d0  ff 00 b1 fc 8d 8c ff a9  |!...............|
00000850  f0 8d 8b ff a9 01 8d 8e  ff b1 fc 1a 8d 8c ff a9  |................|
00000860  f1 8d 8b ff a9 01 8d 8e  ff 4c 00 f0 00 00 00 00  |.........L......|
00000870  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
0000f000  a9 fe 85 71 a9 00 85 70  a9 23 85 f0 a9 f1 85 f1  |...q...p.#......|
0000f010  a0 00 b1 f0 f0 0a 91 70  c8 a9 f0 91 70 c8 80 f2  |.......p....p...|
0000f020  a9 04 85 f0 a0 00 3f 00  fe 00 a9 52 85 80 a5 f1  |......?....R....|
0000f030  85 81 a9 f2 20 d7 f0 a0  52 ad 86 ff d0 3a 20 e8  |.... ...R....: .|
0000f040  f0 a9 f2 8d 01 f2 3f 00  f2 a9 5d 85 80 a9 f3 20  |......?...].... |
0000f050  d7 f0 a0 5d ad 86 ff d0  1f 20 e8 f0 a9 f3 8d 01  |...]..... ......|
0000f060  f3 3f 00 f3 a0 ff a9 00  85 fa a9 08 85 fb a9 00  |.?..............|
0000f070  20 c3 f0 a9 02 85 f1 00  20 f1 f0 80 e7 08 48 b1  | ....... .....H.|
0000f080  f0 c9 00 f0 06 8d d0 ff  c8 d0 f4 68 28 60 08 48  |...........h(`.H|
0000f090  ad e0 ff 91 f0 c9 0a f0  03 c8 d0 f4 a9 00 91 f0  |................|
0000f0a0  68 28 60 48 5a a0 00 b1  fa 85 ff b1 fc c5 ff d0  |h(`HZ...........|
0000f0b0  0c c8 a9 00 c5 ff d0 ef  85 ff 7a 68 60 a9 01 85  |..........zh`...|
0000f0c0  ff d0 f7 91 fa 88 d0 fb  91 fa 60 b1 fa 91 fc 88  |..........`.....|
0000f0d0  d0 f9 b1 fa 91 fc 60 48  a9 03 8d 82 ff 9c 83 ff  |......`H........|
0000f0e0  9c 85 ff 68 8d 84 ff 60  20 7d f0 a0 2f 20 7d f0  |...h...` }../ }.|
0000f0f0  60 a9 1f 8d d4 ff 20 7d  f0 a0 40 20 7d f0 a9 20  |`..... }..@ }.. |
0000f100  8d d4 ff 60 48 61 63 6b  65 72 4b 65 72 6e 65 6c  |...`HackerKernel|
0000f110  20 76 30 2e 32 20 24 52  65 76 3a 20 31 36 33 20  | v0.2 $Rev: 163 |
0000f120  24 0a 00 7d f0 8e f0 a3  f0 c3 f0 cb f0 00 00 20  |$..}........... |
0000f130  64 72 69 76 65 72 20 6c  6f 61 64 65 64 2e 0a 00  |driver loaded...|
0000f140  20 66 61 69 6c 65 64 20  74 6f 20 6c 6f 61 64 2e  | failed to load.|
0000f150  0a 00 46 49 4c 45 49 4f  2e 53 59 53 00 4e 45 54  |..FILEIO.SYS.NET|
0000f160  44 52 56 2e 53 59 53 00  00 00 00 00 00 00 00 00  |DRV.SYS.........|
0000f170  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
0000f500  01 4b 45 52 4e 45 4c 2e  53 59 53 00 02 02 00 00  |.KERNEL.SYS.....|
0000f510  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
0000fe00  7d f0 8e f0 a3 f0 c3 f0  cb f0 00 00 00 00 00 00  |}...............|
0000fe10  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

For beta players who do not possess access to the Mission Designer, there isn't much to see from this development release but the kernel boot splash before the host shuts back down. However, this now paves the way for the shell to be programmed in, so it shouldn't be too much longer before there is more to do and check out.