GPRX 3000

GPRX 3000 is an esoteric programming language invented by xfix in 2016 implemented on non-existent GPRX 3000 CPU with three arbitrary precision registers and no external memory support.

Overview
GPRX 3000 programs are ran from beginning to end. All three general purposes registers and program counter are initialized to zero at program start. CPU implements the following commands.

Additionally, you can type in decimals in order to assign them to register A.

All other characters including whitespace throw an exception when executed, due to programs being supposed to be ran on CPU (subject to change).

Examples
Those programs assume themselves ending with a newline, as language throws an exception when GOTO instruction goes beyond the end of a program.

Hello, world!
72p101p108pp111p44p32p119p111p114p108p100p33p10p51g

cat
rx1+x1/x5*xx+xx2x-xx24+gxp0g

Computational class
GPRX 3000 is Turing-complete as it can emulate an iterated Collatz function.

For a function given by

f(mx+i) = aix + bi, i=0..m-1,

at program position, put the code

xx0+xmx%xxDx*xxSx+g

and at program positions , put

mx/xai*xb i+xxXg

for a remainder that continues or

mx/xai*xb i+xxZg

for a remainder that halts.

is the entry point of the loop,  where it should jump when halting, and   and   may be chosen as whatever makes the parts fit into the program.

External resources

 * Reference emulator