DEV Community

Mouseroot
Mouseroot

Posted on

RX-500 Project-Updates

I was keeping a small log of my project updates while I was working on the more internal aspects of the project, for the design and UI, I kept compiling to android to test and make sure the dimensions and anchors were set properly.

10-3-2022

Started to create a small VM inside the RX-500 Game Project

I wanted to add the ability to both program for the virtual machine and learn to explore existing software and create exploits or discover vulnerabilities that would actually progress the story of the game.

A, B, C, X, Y and SP Registers, Stack and Memory which the program code is loaded into.

10-5-2022

VM can run simple integer based array and would preform certain actions against registers and the stack, loading values into the basic registers of the virtual machine as well as the basic halt instruction that stops the virtual machine.

It can place an array of bytes into the memory of the virtual machine by copying them “bit for bit”

Started to work on the RX-500 instruction manual that would double as an actual instruction manual for using the device as well as hints as to how to exploit it and even write software for it.( Inspired by Shenzhen I/O’s manual )

10-8-2022

VM can now read assembler source files and parse them into integer arrays

Also the source files have the ability to define both byte strings and directly write bytes to the source file.

VM can also compare registers and jump according to if an equal flag was set.

Added some email correspondences and company forms for the company that designed the RX-500 (Mouseteck)

10-10-2022

VM can write to the display and recognizes jumps and labels

Implemented basic system calls

Print String, which reads a location in memory until a 0 is reached which is the end of a string

Print Char which prints the given value as a character

Flushed out the basic instruction set for the Rx-500 manual.

10-14-2022

Modified the RX-500 project to run live parsed assembler code, subroutines, call and return instructions implemented

:sub-001
loada 41
loadb 70
sys
ret
call sub-001

10-15-2022

Added save and restore instructions to save the state of the registers when entering a subroutine.

:sub-001
save
loada 55
loadx printchar
sys
restore
ret

10-16-2022

Started to write a graphics driver that would modify the pixel data of the screen directly.

Also added a readkey system call

Top comments (0)