AlphaBeta

AlphaBeta is a language made by User:Voxel and only uses letters as instructions.

History
AlphaBeta was created by User:Voxel in early 2009 in an attempt to make a language that was easy to write, and had many instructions. The language was also made as an experiment and a test of skills.

Specification and Instruction List
AlphaBeta uses 5 registers as a way to store memory, 2 are changeable and each holds an integer, 1 is a result register and cannot be changed, 1 is used for looping and the other is used for memory ( like brainfuck's > and < ). There is no way of comments. Also, AlphaBeta has 1 kb of ram.

There are 52 instructions:

a    adds 1 to register 1 b    subtracts 1 from register 1 c    adds 10 to register 1 d    subtracts 10 from register 1 e    adds 100 to register 1 f    subtracts 100 from register 1 g    adds 1 to register 2 h    subtracts 1 from register 2 i    adds 10 to register 2 j    subtracts 10 from register 2 k    adds 100 to register 2 l    subtracts 100 from register 2 m    sets register 3 to the logical not of register 1 n    sets register 3 to the logical not of register 2 o    logical ands register 1 and register 2 and sets register 3 to the result p    logical ors register 1 and register 2 and sets register 3 to the result q    logical xors register 1 and register 2 and sets register 3 to the result r    adds register 1 and register 2 and sets register 3 to the result s    subtracts register 1 and register 2 and sets register 3 to the result t    multiplies register 1 and register 2 and sets register 3 to the result u    divides register 1 and register 2 and sets register 3 to the result v    mods register 1 and register 2 and sets register 3 to the result w    register 3 to register 1 to the power of register 2 x    clears register 1 y    clears register 2 z    clears register 3 A    sets register 2 to the value of register 1 B    sets register 1 to the value of register 2 C    sets register 3 to the value of register 1 D    sets register 3 to the value of register 2 E    sets register 1 to the value of register 3 F    sets register 2 to the value of register 3 G    sets register 1 to the memory at the memory pointer H    sets register 2 to the memory at the memory pointer I    sets the memory at the memory pointer to the value of register 3 J    input a value from the keyboard and store it in register 1 K    input a value from the keyboard and store it in register 2 L    outputs a character to the screen M    outputs a number to the screen N    if register 1 equals register 2, goto the position at the position register O    if register 1 does not equal register 2, goto the position at the position register P    if register 1 is bigger than or equals register 2, goto the position at the position register Q    if register 1 is smaller than or equals register 2, goto the position at the position register R    if register 3 equals 0, goto the position at the position register

The memory pointer and the position pointer are 2 different things, but you change them through 1 register. ( The Z command switches between them.)

S    adds 1 to the register T    subtracts 1 to the register U    adds 10 to the register V    subtracts 10 to the register W    adds 100 to the register X    subtracts 100 to the register Y    sets the register to 0 Z    switches in-between modes ( starts on memory pointer )

Hello World! program
cccCISccccCIScccCIYx SGSHaaCLgDLihhhDLDLgggDL TTGaaCL SGccbbbCLDLgggDLjggggDLSHDL TTGaaaCL

Cat program
JCLigggO

99 bottles of beer program
ebZCMyiiiggDLkjjjhhhhDLigggDLgggggDLLjggDLjgggDLi ggggDLyiiiggDLykigDLjgDLyiiiggDLykhhDLgggDLLigggD LyiiiggDLykigDLhDLyiiiggDLykiihhhhDLjhhDLhhhDLyii iggDLykiihDLjjhhDLigDLLyiiiiggggDLyiDLCMyiiiggDLk jjjhhhhDLigggDLgggggDLLjggDLjgggDLiggggDLyiiiggDL ykigDLjgDLyiiiggDLykhhDLgggDLLigggDLyiiiiggggDLyi DLykjjggggDLigggDLiDLjggggDLyiiiggDLykigDLhDLjgDL yiiiggDLykDLigDLihhDLjgDLyiiiiggggDLjhhDLykiggDLy khhhDLiihhDLLyiiiggDLykgggggDLigDLyiiiggDLykhhhDL iihhhDLhhhDLihhhhDLykiDLjDLyiiiiggggDLyiDLbCMyiii ggDLkjjjhhhhDLigggDLgggggDLLjggDLjgggDLiggggDLyii iggDLykigDLjgDLyiiiggDLykhhDLgggDLLigggDLyiiiggDL ykigDLhDLyiiiggDLykiihhhhDLjhhDLhhhDLyiiiggDLykii hDLjjhhDLigDLLyiiiiihhhhDLyiDLLYSSyO

External resources

 * Interpreter written in C++ by User:Voxel. It has a problem with input which I will look into.
 * Corrected version by Dennis Mitchell.
 * Interpreter written in Lua by Michael Armbruster. It is used as external script for a game, so input and output is cached.