3 ms·
Whilst I genuflect and doff my metaphorical hat to you, O great nerd, how do you know this? Was this language wide-spread and used a lot in banking (?). Please
by azalemeth 5y ago
Whilst I genuflect and doff my metaphorical hat to you, O great nerd, how do you know this? Was this language wide-spread and used a lot in banking (?). Please can you tell us how you came to understand this arcana! What on _earth_ led to its longevity? Virtually any raw assembly code is easier to read (for me).
What on earth is going on with the commas? For example, the line
11528,22052,22002,22002 ; var1528 = 5
The only pert of this I can vaguely get is that the 11528 refers to a variable #1528. It's the only variable assignment in the above snippet, but 22002 appears several times, twice as the last argument. I don't quite get why; the two lines are doing very different things.
Enlighten us!
------- Edit -------
From the Esolang wiki (https://esolangs.org/wiki/BANCStar https://esolangs.org/wiki/BANCStar) it transpires that, for the example given above, we can actually understand the opcode above. BANCStar is fairly similar to an assembly language of the form (opcode, arg1, arg2, arg3) where not all opcodes require arguments (leading to blank commas) and the numerical form of each opcode is sometimes parsed characterwise (and sometimes not). So, for the 'add 5' example that the OP correctly provides above, the "rules" seem to be:
The most complicated type of instruction seems to be arithmetic instructions. Here, the first number is 10000+d, where d is the address of one of the 2000 variable cells ("prompts") as the destination operand.
The other three numbers are of the form (10v+p) or (22000+10n+p) where p is an operation code, v is a variable cell in the range [1, 2000], and n is a constant literal integer.
When a parameter is unneeded, it is usually set to 22002 (i.e. "add 0").
In this case, I think we're literally doing the following:
11528,
^variable 1528 =
2205
^ (int)5 is the argument of the forthcoming operation
2,
^ ... and that operation is "+"
22002,22002
^ +0, +0
Malboge has a more human friendly syntax.
- jbverschoor 5y agoHaha. I found https://esolangs.org/wiki/BANCStar https://esolangs.org/wiki/BANCStar But not everything is documented. I also found some GitHub page with more code. Maybe it’s fun to create something that can actually parse this. According to that info, 22002 is add 0 (essentially noop). Not sure why all operands are required instead of leaving them blank. The 22052 means set to 5.
- masklinn 5y ago> Malboge has a more human friendly syntax. Probably because Malbolge was kinda sorta expected to be written by humans. BANCStar "code" is really IL/bytecode, it just happened to be ASCII bytecode (initially anyway, according to the wiki it became binary with BANCStar 10).
- eurasiantiger 5y agoSo we’re one plugin away from writing it in TS?