Calligulan Assembly
Jump to navigation
Jump to search
Calligulan Assembly is an esoteric programming language created by User:ArthroStar11 that is written entirely in Roman Numerals
Data Structure and Syntax
- Commands and arguments in Calligulan Assembly are represented as roman numerals separated by newlines
- capital letters represent the numerals we all know and love
- the values of lower case letters are multiplied by 1000
- data structure
- hold cell (32-bit unsigned integer)
- boolean cell (boolean value, duh)
- variables [array of 30000, 1-index] (32-bit unsigned integer)
Command List
- I (Label)
- defines a label for goto statements, 30000 labels may be used (I - xxx) as specified in <line + 1>
- II (go to)
- jumps to the corresponding label as specified in <line + 1> if the boolean cell is true
- III (less than)
- sets the boolean cell to true if <variable[line + 1]> is less than <variable[line + 2]> else false
- IV (equal to)
- sets the boolean cell to true if <variable[line + 1]> is equal to <variable[line + 2]> else false
- V (not)
- inverts the boolean cell
- VI (input)
- takes console input as an ASCII character if <line + 1> == I
- takes console input as a number if <line + 1> == II
- stored in hold cell
- VII (output)
- outputs an ASCII character to the console if <line + 1> == I
- outputs a number to the console if <line + 1> == II
- printed from hold cell
- VIII (store)
- stores the value of the hold cell into the variable specified in <line + 1>
- IX (retrieve)
- retrieves value of the variable specified in <line + 1> and stores it in the hold cell
- X (add)
- hold cell = <variable[line + 1]> + <variable[line + 2]>
- XI (subtract)
- hold cell = <variable[line + 1]> - <variable[line + 2]>
- XII (constant)
- stores the number specified by <line + 1> into the hold cell
sample programs
print "HI"
XII LXXII VII I XII LXXIII VII I
truth machine
VI II VIII I XII I VIII II I I III I II V IX I VII II II I
print 99 to 0
XII XCIX VIII I XII I VIII II I I III I II V IX I VII II XI I II VIII I II I