Hacker's Edge Game Guide: Files in Hacker's Edge/KERNEL.SYS

KERNEL.SYS
Oct. 15, 2012
Last updated at Feb. 3, 2018

The official KERNEL.SYS is loaded by BOOT.SYS when the host boots up, either during your first connection into the game world to that host, or by issuing the reboot command in-game.

The KERNEL.SYS can be completely replaced with a new binary you create yourself, however, if you change out the kernel, be sure to either use a compatible API with the official kernel, or have new tools created which use your kernel's unique API.

Currently the source code the official kernel is unavailable, however rumor has it some players have been able to successfully disassemble the kernel binary back into assembly source code.

APIs provided

JSR callAddress in memory
JSR _print$fe00
JSR _input$fe03
JSR _cmpstr$fe06
JSR _memclr$fe09
JSR _memcpy$fe12

For some of these APIs, you will need to set some specific arguments, these are located from $fa-$fd, and a result can be read from $ff.

Binary listing

00000000  a2 ff 9a d8 a9 00 8d dc  ff a9 7d a2 f1 20 1f f0  |..........}.. ..|
00000010  a9 20 8d d4 ff a9 5e a2  f1 20 00 fe 4c 2a f1 85  |. ....^.. ..L*..|
00000020  80 86 81 a9 9d 8d fe fd  a9 fc 8d ff fd a6 82 a0  |................|
00000030  00 a9 4c 9d 00 fe b1 80  f0 0f e8 9d 00 fe c8 b1  |..L.............|
00000040  80 e8 9d 00 fe e8 c8 80  e8 a9 00 9d 00 fe 86 82  |................|
00000050  60 08 5a 85 80 86 81 a0  00 b1 80 f0 06 8d d0 ff  |`.Z.............|
00000060  c8 d0 f6 7a 28 60 48 da  08 5a 85 80 86 81 a0 00  |...z(`H..Z......|
00000070  ad e0 ff c9 0a f0 05 91  80 c8 d0 f4 a9 00 91 80  |................|
00000080  84 ff 7a 28 fa 68 60 48  5a a0 00 b1 fa 85 ff b1  |..z(.h`HZ.......|
00000090  fc c5 ff d0 0c c8 a9 00  c5 ff d0 ef 85 ff 7a 68  |..............zh|
000000a0  60 a9 01 85 ff d0 f7 91  fa 88 d0 fb 91 fa 60 b1  |`.............`.|
000000b0  fa 91 fc 88 d0 f9 b1 fa  91 fc 60 8d 80 ff 8e 81  |..........`.....|
000000c0  ff 8c 84 ff 48 a9 00 85  83 84 84 a9 01 8d 82 ff  |....H...........|
000000d0  ad 82 ff f0 18 a9 1f 8d  d4 ff 68 20 51 f0 a9 9a  |..........h Q...|
000000e0  a2 f1 20 51 f0 a9 20 8d  d4 ff a9 01 60 da a0 05  |.. Q.. .....`...|
000000f0  b1 83 aa 88 b1 83 88 5a  20 1f f0 7a b1 83 aa 88  |.......Z ..z....|
00000100  b1 83 20 51 f0 88 b1 83  d0 0d fa 68 20 51 f0 a9  |.. Q.......h Q..|
00000110  89 a2 f1 20 51 f0 60 8d  02 f4 88 b1 83 8d 01 f4  |... Q.`.........|
00000120  a9 4c 8d 00 f4 20 00 f4  80 e0 a9 ac a2 f1 a0 f2  |.L... ..........|
00000130  20 bb f0 d0 07 a9 cc a2  f1 20 58 f2 a9 b7 a2 f1  | ........ X.....|
00000140  a0 f3 20 bb f0 a9 c2 a2  f1 a0 fc 20 2f f2 d0 03  |.. ........ /...|
00000150  4c 3f fc a9 d7 a2 f1 20  51 f0 ad e0 ff 00 48 61  |L?..... Q.....Ha|
00000160  63 6b 65 72 4b 65 72 6e  65 6c 20 76 30 2e 35 20  |ckerKernel v0.5 |
00000170  24 52 65 76 3a 20 33 30  35 20 24 0a 00 51 f0 66  |$Rev: 305 $..Q.f|
00000180  f0 87 f0 a7 f0 af f0 00  00 20 64 72 69 76 65 72  |......... driver|
00000190  20 6c 6f 61 64 65 64 2e  0a 00 20 66 61 69 6c 65  | loaded... faile|
000001a0  64 20 74 6f 20 6c 6f 61  64 2e 0a 00 46 49 4c 45  |d to load...FILE|
000001b0  49 4f 2e 53 59 53 00 4e  45 54 44 52 56 2e 53 59  |IO.SYS.NETDRV.SY|
000001c0  53 00 53 48 45 4c 4c 2e  53 59 53 00 43 4f 4e 46  |S.SHELL.SYS.CONF|
000001d0  49 47 2e 53 59 53 00 46  61 69 6c 65 64 20 74 6f  |IG.SYS.Failed to|
000001e0  20 6c 6f 61 64 20 53 48  45 4c 4c 2e 53 59 53 21  | load SHELL.SYS!|
000001f0  0a 00                                             |..|