Uppercase=Lowercase

Uppercase=Lowercase is an esolang by User:ChuckEsoteric08.
==Specification==
When you input or output lowercase ASCII character it would be treated as uppercase character instead.
*x would return value of cell .
Cells are 1-indexed
Instruction	Description
lbl x 	Declare label x
inc x y 	Increment cell x by y
dec x y z 	If cell x is less than y goto label z. Else decrement cell x by y
inp x 	Set cell x to user input
out x 	Output cell x as ASCII character.
==Examples==
===Cat program===
An infinitely repeating cat program shall be demonstrated:
 lbl start
 inp 1
 out 1
 dec 1 256 start
===Truth-machine===
This program implements a truth-machine:
 inp 1
 inc 2 *1
 
 dec 1 48 terminate_on_error
 dec 1 1 end_if_zero
 
 lbl repeat_if_one
 out 2
 dec 2 50 repeat_if_one
 
 lbl end_if_zero
 out 2
 
 lbl terminate_on_error
===Hello, world!===
This program outputs the message “HELLO, WORLD!” using indirect references and the conditional goto facility:
 inc 1 72
 inc 2 69
 inc 3 76
 inc 4 76
 inc 5 79
 inc 6 44
 inc 7 32
 inc 8 87
 inc 9 79
 inc 10 82
 inc 11 76
 inc 12 68
 inc 13 33
 
 inc 14 1
 inc 15 12
 
 lbl print
 out *14
 inc 14 1
 dec 15 1 end
 dec 15 15 print
 
 lbl end
===brainfuck interpreter===
// Memory is lied like this:
// IP,CP,Nesting depth, cell for unconditional jumps, 0, program, 0, Memory
// input is seperated from program by ! like in dbfi
// If you try to decrement 0 or IP goes out of bounds three exclamation marks would be printed and progam will halt
// set IP to 5
set 1 5
// start inputing
lbl input
inc 1 1
inp *1
dec *1 34 finsishinput
inc *1 34
dec 4 1 input
lbl finishinput
dec *1 33
set 2 1
inc 2 1
set 1 5
lbl interpet
inc 1 1
// if zero halt
dec *1 1 end
inc *1 1
// if 43 increment
dec *1 44 inc
inc *1 44
// if 44 input
dec *1 45 inp
inc *1 45
// if 45 decrement
dec *1 46 dec
inc *1 46
// if 46 output
dec *1 47 out
inc *1 47
// if 60 previous cell
dec *1 61 prev
inc *1 61
// if 62 next cell
dec *1 63 next
inc *1 63
// if 91 start loop
dec *1 92 startl
inc *1 92
// if 93 end loop
dec *1 94 endl
inc *1 94
dec 4 1 interpret
// +
lbl inc
inc *2 1
dec 4 1 interpret
// -
lbl dec
dec *2 1 error
dec 4 1 interpret
// >
lbl next
inc 2 1
dec 4 1 interpet
// <
lbl prev
dec 2 1 error
dec 4 1 interpet
// .
lbl out
out *2
dec 4 1 interpret
// ,
lbl inp
inp *2
dec 4 1 interpret
// [
lbl startl
// if cell is zero go back to matching ]
dec *2 1 nextcmd
inc *2 1
dec 4 1 interpet
// loop until matching ]
lbl nextcmd
inc 1 1
// if there is no instruction under IP then error
dec *1 1 error
inc *1 1
// if symbol is not [ or ] do nothing
dec *1 44 nextcmd
inc *1 44
dec *1 45 nextcmd
inc *1 45
dec *1 46 nextcmd
inc *1 46
dec *1 47 nextcmd
inc *1 47
dec *1 61 nextcmd
inc *1 61
dec *1 63 nextcmd
inc *1 63
// if symbol is [ inc nesting depth
dec *1 92 incnest
inc *1 92
// if symbol is ] dec nesting depth
dec *1 94 decnest
dec 4 1 nextcmd
lbl incnest
inc 3 1
dec 4 1 nextcmd
lbl decnest
// try to decrement nesting depth
// if it was already zero end loop
dec 3 1 interpet
dec 4 1 nextcmd
// ]
lbl endl
// if cell is zero continue executing
dec *2 1 interpret
inc *2 1
// loop until matching [
lbl prevcmd
dec 1 1 error
// if there is no instruction under IP then error
dec *1 1 error
inc *1 1
// if symbol is not [ or ] do nothing
dec *1 44 nextcmd
inc *1 44
dec *1 45 nextcmd
inc *1 45
dec *1 46 nextcmd
inc *1 46
dec *1 47 nextcmd
inc *1 47
dec *1 61 nextcmd
inc *1 61
dec *1 63 nextcmd
inc *1 63
// if symbol is [ inc nesting depth
dec *1 92 incnest2
inc *1 92
// if symbol is ] dec nesting depth
dec *1 94 decnest2
dec 4 1 prevcmd
lbl incnest2
inc 3 1
dec 4 1 prevcmd
lbl decnest2
// try to decrement nesting depth
// if it was already zero end loop
dec 3 1 interpet
dec 4 1 prevcmd
// if error print !!! and halt
lbl error
dec *1 print!
dec 4 1 error
lbl print!
inc *1 33
out *1
out *1
out *1
==Interpreter==
* Common Lisp implementation of the Uppercase=Lowercase programming language.
Category:Languages Category:Turing complete Category:Turing tarpitsCategory:Implemented