Jump to navigation Jump to search
- Now it doesn't matter if a command has DO or PLEASE or whatever, and if you aren't polite you can override it. Also, there are no more standard libraries.
- Labels for statements are (number) but to go to the label you need to put the number, such as "#123" or "!12$.?13'~#15".
- ABSTAIN and REINSTATE command are now ABSTAIN label and REINSTATE label, no abstain/reinstate commands.
- COME FROM label command is now multi-threading, in case more than one COME FROM is the same label. A thread is destroyed by a GIVE UP command. All threads have separate data spaces, but shared code and ABSTAIN and REINSTATE of labels. See Threaded INTERCAL.
- C-INTERCAL operators ($ for mingle, ? for XOR) are supported.
- Put NOT or DON'T before a command to make it pre-abstained, as in C-INTERCAL.
- Put MAYBE before a command to do backtracking. You can also use RECONSIDER and COMMIT commands. See Backtracking INTERCAL.
- Computed COME FROM is allowed. When a label is reached, see which COME FROM's compute to the same label.
- For the NEXT command, you must put NEXT first before label number
- To assign values, you must type CALCULATE .1 <- #1 instead of .1 <- #1.
- You can do enslavement of registers. Type ENSLAVE .1 TO .2 to make .2 to own .1. To do the owner of the register, do #2^.1 for second owner of register .1. Type FREE .1 FROM .2 to unenslave.
- You can use computed register names. After , or . or : or ; you can put another . before the number to refer to another register, and its value is then used as the number for the register.
- Input/output is done as Unicode text, with bytes of a 16-bit register reversed (so #256 is character number 1). If you do READ OUT a . register then it will output that Unicode character. If you do READ OUT a , register then it will output the characters in the array in reverse order. If you do WRITE IN it can only be a . no other type is available, but the register isn't reversed (so that #256 if write in is character number 256). If is 32-bit value, then it is the device-code mingle by the character value. When input a 32-bit value it does the device code store in that register before it was input. Maybe the input device will redirect to a different device, in case the new value will be according to the new device.