| void putc(char c) |
| { |
| *(volatile char*)0x10000000 = c; |
| } |
| |
| void puts(const char *s) |
| { |
| while (*s) putc(*s++); |
| } |
| |
| void *memcpy(void *dest, const void *src, int n) |
| { |
| while (n) { |
| n--; |
| ((char*)dest)[n] = ((char*)src)[n]; |
| } |
| return dest; |
| } |
| |
| void main() |
| { |
| char message[] = "$Uryyb+Jbeyq!+Vs+lbh+pna+ernq+guvf+zrffntr+gura$gur+CvpbEI32+PCH" |
| "+frrzf+gb+or+jbexvat+whfg+svar.$$++++++++++++++++GRFG+CNFFRQ!$$"; |
| for (int i = 0; message[i]; i++) |
| switch (message[i]) |
| { |
| case 'a' ... 'm': |
| case 'A' ... 'M': |
| message[i] += 13; |
| break; |
| case 'n' ... 'z': |
| case 'N' ... 'Z': |
| message[i] -= 13; |
| break; |
| case '$': |
| message[i] = '\n'; |
| break; |
| case '+': |
| message[i] = ' '; |
| break; |
| } |
| puts(message); |
| } |