Development Diary: You can now use any 3rd party 6502 assembler!

You can now use any 3rd party 6502 assembler!
kveroneau(Game Creator)
Nov. 8, 2017, 5:29 a.m.

In the latest Hacker's Edge update just released, you can now use any 3rd party 6502/65c02 assembler, as long as it generates Intel Hex output. I tested it using the crasm assembler available in the Debian repository and it works.

Once you are at the IC prompt in-game, ensure that your host is booted and running. You cannot import memory images from an Intel Hex file to a machine which isn't even on. Also take care in not importing a file which may overwrite sensitive memory addresses, or the addresses of the running program! This will obviously have strange side-effects and may even cause your host to crash and shutdown. However, nothing is preventing you from writing to sensitivity locations using an Intel Hex import.

Okay, so at the IC prompt, with an online and running host, type the following at the prompt: import <ip_addr> Where the ip_addr is the IP of a host in your inventory, tab-completion fully works here, so feel free to use it to fill in the IP address easily. Then hit enter. It will now prompt you to paste in your Intel Hex into the terminal, once it detects the ending signature it will process the data and import it into your VMs memory space.

So, now there is a way for players without Mission Designer access to assemble and run code once again. The in-game assembler will be available to players again in the future, but for now, players can use this to import and run 6502 machine code.

Additional updates will be coming soon, so keep watching the development diary.

A note for current Mission Designers, I am considering allow the use of Intel Hex for machine ROMs, rather than using a flat binary blobs. Although flat binary blobs will still be available, soon an Intel Hex file can be provided as a machine's ROM. This will alter how that specific machine performs it's IPL. Currently the ROM assembly source is assembled during the provisioning process. After this future update, no ROM assembly or translation to pure binary will take place. The Intel Hex will be stored along with the machine, when the machine is booted, memory will be entirely cleared, and the Intel Hex file will be parsed to create the initial memory image. Any pages used in the Intel Hex file will be marked as ROM by the Virtual Machine. If this mode is chosen, then the ROM should occupy page $ffxx and correctly set the NMI, RSET, and IRQ vectors or the machine either won't boot at all, or the vectors are stuck in read-only memory and cannot be updated to useful addresses.

A future update will introduce the concept of banked memory, at this point it will be possible to switch out the ROM for additional RAM. Please look forward to both of these upcoming updates.