Broken Tape is an esolang made by User:Yes that uses a broken tape processor.
The tape is a 1D array of cells, like any other. But, the tape processor is broken.
At any time, the tape could stretch and damage or break cells. The tape could also get jammed and break the functionality of the program.
The tape processor also has an automatic "recovery" function, where it attempts to recover damaged cells by sticking ripped pieces together.
|CLL||Cell Left||Move the pointer left|
|CLR||Cell Right||Move the pointer right|
|INC||Increment||Increment cell under pointer|
|DEC||Decrement||Decrement the cell under the pointer|
|EMP||Empty||Set the cell under the pointer to zero|
|WNZ||While Not Zero||While cell under the pointer is not zero, execute commands in between next [ and ]|
|WHZ||While Zero||While cell under the pointer is zero, execute commands in between next [ and ]|
|[||_loopstart||Starter for WHZ and WNZ loop|
|]||_loopend||Ender for WHZ and WNZ loop|
|END||End Program||End program/Terminate execution|
|RST||Restart||Restart the program|
|PRA||Print Ascii||Print value of cell under pointer as an ASCII character|
|PRN||Print Number||Print value of cell under pointer as a number|
|INP||Input||Get input and store ASCII value of input into cell under pointer|
Print ASCII value of input
Print ASCII value of input but it has a chance to corrupt the cell and maybe also poorly stitch it back together
CLR INP WNZ [ CLL INC CLR DEC ] PRN
The same program in bf