| QuestionMark: | 0E36 | LD A,3F | Print '?'. |
| 0E38 | RST 18H | |
| 0E39 | LD A,20 | Print ' '. |
| 0E3B | RST 18H | |
| 0E3C | JP 106B | Jump to GetInput. |
| 0E3F | XOR A | |
| 0E40 | LD (0A8F),A | |
| 0E43 | LD (0A8E),A | |
| 0E46 | LD BC,013B | Poss. max linebuffer size. |
| 0E49 | LD DE,084A | Poss. linebuffer start. |
| 0E4C | LD A,(HL) | |
| 0E4D | CP 22 | A='"'? |
| 0E4F | JP Z,1000 | |
| 0E52 | CP 20 | A=' '? |
| 0E54 | JP Z,0FD6 | |
| 0E57 | OR A | If A='\0', then jump to exit. |
| 0E58 | JP Z,1009 | |
| 0E5B | LD A,(0A8E) | |
| 0E5E | OR A | |
| 0E5F | LD A,(HL) | |
| 0E60 | JP NZ,0FD6 | |
| 0E63 | CP 3F | |
| 0E65 | LD A,91 | |
| 0E67 | JP Z,0FD6 | |
| 0E6A | PUSH DE | |
| 0E6B | PUSH BC | |
| 0E6C | LD DE,0391 | |
| 0E6F | CALL 1029 | |
| 0E72 | CALL 14D3 | |
| 0E75 | JP C,0F1D | |
| 0E78 | PUSH HL | |
| 0E79 | LD HL,013B | |
| 0E7C | SUB 41 | A=A-63. |
| 0E7E | ADD A,A | A=A*2. |
| 0E7F | LD C,A | |
| 0E80 | LD B,00 | |
| 0E82 | ADD HL,BC | |
| 0E83 | LD E,(HL) | |
| 0E84 | INC HL | |
| 0E85 | LD D,(HL) | Now DE=pointer to (something) |
| 0E86 | POP HL | | Restore psz to HL.
| 0E87 | INC HL | psz++. |
| Loop1: | 0E88 | PUSH HL | Preserve psz. |
| Loop2: | 0E89 | CALL CharToUpper(1029) | Make (HL) uppercase. |
| 0E8C | LD C,A | C = uppercase char. |
| 0E8D | LD A,(DE) | Get byte from (something). |
| 0E8E | AND 7F | Ignore top bit. |
| 0E90 | JP Z,1034 | If lowest 7 bits are 0, ??? |
| 0E93 | CP C | Matched char? |
| 0E94 | INC HL | |
| 0E95 | JP NZ,0EB9 | |
| 0E98 | LD A,(DE) | |
| 0E99 | INC DE | |
| 0E9A | OR A | |
| 0E9B | JP P,Loop2(0E89) | I *think* jump back if <0x80. |
| 0E9E | POP AF | Clear up stack (AF ignored). |
| 0E9F | LD A,(DE) | |
| 0EA0 | OR A | |
| 0EA1 | JM M,0EC4 | |
| 0EA4 | POP BC | |
| 0EA5 | POP DE | |
| 0EA6 | OR 80 | |
| 0EA8 | PUSH AF | |
| 0EA9 | LD A,FF | Write 0xFF to the line buffer. Dunno what this signifies. |
| 0EAB | CALL 101E | |
| 0EAE | XOR A | |
| 0EAF | LD (0A8F),A | |
| 0EB2 | POP AF | |
| 0EB3 | CALL 101E | |
| 0EB6 | JP 0E4C | |
| 0EB9 | POP HL | Restore psz. |
| 0EBA | LD A,(DE) | |
| 0EBB | INC DE | |
| 0EBC | OR A | |
| 0EBD | JP P,0EBA | |
| 0EC0 | INC DE | |
| 0EC1 | JP 0E88 | |
| 0EC4 | DEC HL | |
| 0EC5 | PUSH AF | |
| 0EC6 | CP A2 | |
| 0EC8 | JP Z,0EF6 | |
| 0ECB | LD BC,0EF6 | Push address of WriteOne onto stack. |
| 0ECE | PUSH BC | |
| 0ECF | CP AB | |
| 0ED1 | RET Z | |
| 0ED2 | CP AC | |
| 0ED4 | RET Z | |
| 0ED5 | CP AA | |
| 0ED7 | RET Z | |
| 0ED8 | CP A7 | |
| 0EDA | RET Z | |
| 0EDB | CP A9 | |
| 0EDD | RET Z | |
| 0EDE | CP D6 | |
| 0EE0 | RET Z | |
| 0EE1 | CP 8A | |
| 0EE3 | RET Z | |
| 0EE4 | CP 93 | |
| 0EE6 | RET Z | |
| 0EE7 | CP 9F | |
| 0EE9 | RET Z | |
| 0EEA | CP 89 | |
| 0EEC | RET Z | |
| 0EED | CP CF | |
| 0EEF | RET Z | |
| 0EF0 | CP 8D | |
| 0EF2 | RET Z | |
| 0EF3 | POP AF | Clear up stack. AF ignored. |
| WriteZero: | 0EF4 | XOR A | A=0. Zero flag reset. |
| 0EF5 | JP NZ,013E | Never jumps. It's a concealer. |
| WriteOne: | 0EF6 | LD A,01 | |
| 0EF8 | LD (0A8F),A | |
| 0EFB | POP AF | |
| 0EFC | CP 7E | Concealer for instruction below. |
| 0EFD | LD A,(HL) | |
| 0EFE | POP BC | |
| 0EFF | POP DE | |
| 0F00 | CP A2 | |
| 0F02 | JP NZ,0F0A | |
| 0F05 | PUSH AF | |
| 0F06 | CALL 101C | |
| 0F09 | POP AF | |
| 0F0A | CP DB | |
| 0F0C | JP NZ,0FA6 | |
| 0F0F | PUSH AF | |
| 0F10 | CALL 101C | |
| 0F13 | LD A,8F | |
| 0F15 | CALL 101E | |
| 0F18 | POP AF | |
| 0F19 | PUSH AF | |
| 0F1A | JP 1002 | |
| 0F1D | LD A,(HL) | |
| 0F1E | CP 2E | A='.'? |
| 0F20 | JP Z,0F2D | |
| 0F23 | CP 3A | A>'9'? |
| 0F25 | JP NC,0FC3 | |
| 0F28 | CP 30 | A<'0'? |
| 0F2A | JP C,0FC3 | |
| IsNumeric: | 0F2D | LD A,(0A8F) | |
| 0F30 | OR A | |
| 0F31 | LD A,(HL) | |
| 0F32 | POP BC | |
| 0F33 | POP DE | |
| 0F34 | JM M,0FD6 | |
| 0F37 | JP Z,0F59 | |
| 0F3A | CP 2E | |
| 0F3C | JP Z,0FD6 | |
| 0F3F | LD A,0E | |
| 0F41 | CALL 101E | |
| 0F44 | PUSH DE | |
| 0F45 | CALL 14EF | |
| 0F48 | CALL 104A | |
| 0F4B | EX (SP),HL | |
| 0F4C | EX DE,HL | |
| 0F4D | LD A,L | |
| 0F4E | CALL 101E | |
| 0F51 | LD A,H | |
| 0F52 | POP HL | |
| 0F53 | CALL 101E | |
| 0F56 | JP 0E4C | |
| 0F59 | PUSH DE | |
| 0F5A | PUSH BC | |
| 0F5B | LD A,(HL) | |
| 0F5C | CALL 4501 | |
| 0F5F | CALL 104A | |
| 0F62 | POP BC | |
| 0F63 | POP DE | |
| 0F64 | PUSH HL | |
| 0F65 | LD A,(0A8D) | |
| 0F68 | CP 02 | |
| 0F6A | JP NZ,0F85 | |
| 0F6D | LD HL,(0B14) | |
| 0F70 | LD A,H | |
| 0F71 | OR A | |
| 0F72 | LD A,02 | |
| 0F74 | JP NZ,0F85 | |
| 0F77 | LD A,L | |
| 0F78 | LD H,L | |
| 0F79 | LD L,0F | |
| 0F7B | CP 0A | |
| 0F7D | JP NC,0F4D | |
| 0F80 | ADD A,11 | |
| 0F82 | JP 0F52 | |
| 0F85 | PUSH AF | |
| 0F86 | RRCA | |
| 0F87 | ADD A,1B | |
| 0F89 | CALL 101E | |
| 0F8C | LD HL,0B14 | |
| 0F8F | RST 30H | |
| 0F90 | JP C,0F96 | |
| 0F93 | LD HL,0B10 | |
| 0F96 | POP AF | |
| 0F97 | PUSH AF | |
| 0F98 | LD A,(HL) | |
| 0F99 | CALL 101E | |
| 0F9C | POP AF | |
| 0F9D | INC HL | |
| 0F9E | DEC A | |
| 0F9F | JP NZ,0F97 | |
| 0FA2 | POP HL | |
| 0FA3 | JP 0E4C | |
| 0FA6 | CP 26 | |
| 0FA8 | JP NZ,0FD6 | |
| 0FAB | PUSH HL | |
| 0FAC | RST 10H | |
| 0FAD | CP 48 | |
| 0FAF | POP HL | |
| 0FB0 | LD A,0B | |
| 0FB2 | JP NZ,0FB7 | |
| 0FB5 | LD A,0C | |
| 0FB7 | CALL 101E | |
| 0FBA | PUSH DE | |
| 0FBB | PUSH BC | |
| 0FBC | CALL 1C69 | |
| 0FBF | POP BC | |
| 0FC0 | JP 0F4B | |
| 0FC3 | LD DE,0390 | |
| 0FC6 | INC DE | |
| 0FC7 | LD A,(DE) | |
| 0FC8 | AND 7F | |
| 0FCA | JP Z,103D | |
| 0FCD | CP (HL) | |
| 0FCE | INC DE | |
| 0FCF | LD A,(DE) | |
| 0FD0 | JP NZ,0FC6 | |
| 0FD3 | JP 103E | |
| 0FD6 | INC HL | |
| 0FD7 | PUSH AF | |
| 0FD8 | CALL 101E | Write A to line buffer. |
| 0FDB | POP AF | |
| 0FDC | SUB 3A | |
| 0FDE | JP Z,0FE8 | |
| 0FE1 | CP 4A | |
| 0FE3 | JP NZ,0FEE | |
| 0FE6 | LD A,01 | |
| 0FE8 | LD (0A8E),A | |
| 0FEB | LD (0A8F),A | |
| 0FEE | SUB 55 | |
| 0FF0 | JP NZ,0E4C | |
| 0FF3 | PUSH AF | |
| 0FF4 | LD A,(HL) | |
| 0FF5 | OR A | |
| 0FF6 | EX (SP),HL | |
| 0FF7 | LD A,H | |
| 0FF8 | POP HL | |
| 0FF9 | JP Z,1009 | |
| 0FFC | CP (HL) | |
| 0FFD | JP Z,0FD6 | |
| 1000 | PUSH AF | |
| 1001 | LD A,(HL) | |
| 1002 | INC HL | |
| 1003 | CALL 101E | |
| 1006 | JP 0FF4 | |
| ResetAndExit: | 1009 | LD HL,0140 | BC=0x140-BC. |
| 100C | LD A,L | |
| 100D | SUB C | |
| 100E | LD C,A | |
| 100F | LD A,H | |
| 1010 | SBC B | |
| 1011 | LD B,A | |
| 1012 | LD HL,0849 | |
| 1015 | XOR A | Write 3 zero bytes to (DE) |
| 1016 | LD (DE),A | |
| 1017 | INC DE | |
| 1018 | LD (DE),A | |
| 1019 | INC DE | |
| 101A | LD (DE),A | |
| 101B | RET | |
| 101C | LD A,3A | A=':'. |
| 101E | LD (DE),A | |
| 101F | INC DE | |
| 1020 | DEC BC | |
| 1021 | LD A,C | BC=0? |
| 1022 | OR B | |
| 1023 | RET NZ | Return if BC != 0. |
| 1024 | LD E,17 | Error - "LINE BUFFER OVERFLOW" |
| 1026 | JP 0BD4 | |
| CharToUpper: | 1029 | LD A,(HL) | |
| 102A | CP 61 | If A < 'a' then return. |
| 102C | RET C | |
| 102D | CP 7B | If A > 'z' then return. |
| 102F | RET NC | |
| 1030 | AND 5F | Make A uppercase char. |
| 1032 | LD (HL),A | |
| 1033 | RET | |
| 1034 | POP HL | |
| 1035 | DEC HL | |
| 1036 | DEC A | |
| 1037 | LD (0A8F),A | |
| 103A | JP 0EFD | |
| 103D | LD A,(HL) | |
| 103E | PUSH AF | |
| 103F | LD A,(0A8F) | |
| 1042 | INC A | |
| 1043 | JP Z,0EF8 | |
| 1046 | DEC A | |
| 1047 | JP 0EF8 | |
| 104A | DEC HL | |
| 104B | LD A,(HL) | |
| 104C | CP 20 | |
| 104E | JP Z,104A | |
| 1051 | CP 09 | |
| 1053 | JP Z,104A | |
| 1056 | CP 0A | |
| 1058 | JP Z,104A | |
| 105B | INC HL | |
| 105C | RET | |
| 105D | CALL 1172 | |
| 1060 | CP 01 | |
| 1062 | JP NZ,10AD | |
| 1065 | LD (HL),00 | |
| 1067 | JP 1073 | |
| 106A | LD (HL),B | |
| GetInput: | 106B | CALL 1172 | |
| 106E | CP 01 | |
| 1070 | JP NZ,10A2 | |
| 1073 | CALL 17BD | |
| 1076 | LD HL,FFFF | |
| 1079 | JP 2A10 | |
| 107C | LD A,(06E3) | |
| 107F | OR A | |
| 1080 | LD A,5C | |
| 1082 | LD (06E3),A | |
| 1085 | JP NZ,108E | |
| 1088 | DEC B | |
| 1089 | JP Z,106A | |
| 108C | RST 18H | |
| 108D | LD A,05 | |
| 108F | DEC HL | |
| 1090 | JP Z,109E | |
| 1093 | LD A,(HL) | |
| 1094 | RST 18H | |
| 1095 | JP 105D | |
| 1098 | DEC B | |
| 1099 | DEC HL | |
| 109A | RST 18H | |
| 109B | JP NZ,105D | |
| 109E | RST 18H | |
| 109F | CALL 17BD | |
| 10A2 | LD HL,0989 | |
| 10A5 | LD B,01 | |
| 10A7 | PUSH AF | |
| 10A8 | XOR A | |
| 10A9 | LD (06E3),A | |
| 10AC | POP AF | |
| 10AD | LD C,A | |
| 10AE | CP 7F | |
| 10B0 | JP Z,107C | |
| 10B3 | LD A,(06E3) | |
| 10B6 | OR A | |
| 10B7 | JP Z,10C1 | |
| 10BA | LD A,5C | |
| 10BC | RST 18H | |
| 10BD | XOR A | |
| 10BE | LD (06E3),A | |
| 10C1 | LD A,C | |
| 10C2 | CP 07 | |
| 10C4 | JP Z,10FC | |
| 10C7 | CP 03 | |
| 10C9 | CALL Z,13A8 | |
| 10CC | SCF | |
| 10CD | RET Z | |
| 10CE | CP 0D | |
| 10D0 | JP Z,17B8 | |
| 10D3 | CP 09 | |
| 10D5 | JP Z,10FC | |
| 10D8 | CP 0A | |
| 10DA | JP NZ,10E5 | |
| 10DD | DEC B | |
| 10DE | JP Z,106B | |
| 10E1 | INC B | |
| 10E2 | JP 10FC | |
| 10E5 | CP 15 | |
| 10E7 | CALL Z,13A8 | |
| 10EA | JP Z,106B | |
| 10ED | CP 40 | |
| 10EF | JP Z,109E | |
| 10F2 | CP 5F | |
| 10F4 | JP Z,1098 | |
| 10F7 | CP 20 | |
| 10F9 | JP C,105D | |
| 10FC | LD A,B | |
| 10FD | INC A | |
| 10FE | LD A,07 | |
| 1100 | JP Z,1107 | |
| 1103 | LD A,C | |
| 1104 | LD (HL),C | |
| 1105 | INC HL | |
| 1106 | INC B | |
| 1107 | RST 18H | |
| 1108 | SUB 0A | |
| 110A | JP NZ,105D | |
| 110D | LD (0027),A | |
| 1110 | LD A,0D | |
| 1112 | RST 18H | |
| 1113 | CALL 1172 | |
| 1116 | OR A | |
| 1117 | JP Z,1113 | |
| 111A | CP 0D | |
| 111C | JP Z,105D | |
| 111F | JP 10AD | |
| 1122 | LD A,H | |
| 1123 | OR L | |
| 1124 | JP NZ,321D | |
| 1127 | POP HL | |
| 1128 | LD A,(06DA) | |
| 112B | OR A | |
| 112C | JP NZ,3C33 | |
| 112F | LD A,(06E4) | |
| 1132 | OR A | |
| 1133 | JP NZ,21D9 | |
| 1136 | POP AF | |
| 1137 | PUSH BC | |
| 1138 | PUSH AF | |
| 1139 | CP 09 | |
| 113B | JP NZ,114C | |
| 113E | LD A,20 | Print a ' '. |
| 1140 | RST 18H | |
| 1141 | LD A,(0027) | |
| 1144 | AND 07 | |
| 1146 | JP NZ,113E | |
| 1149 | POP AF | |
| 114A | POP BC | |
| 114B | RET | |
| 114C | CP 20 | |
| 114E | JP C,1160 | |
| 1151 | LD A,(06E1) | |
| 1154 | LD B,A | |
| 1155 | LD A,(0027) | |
| 1158 | CP B | |
| 1159 | CALL Z,17BD | |
| 115C | INC A | |
| 115D | LD (0027),A | |
| 1160 | POP AF | |
| 1161 | POP BC | |
| 1162 | PUSH AF | |
| 1163 | IN A,(10) | |
| 1165 | AND 02 | |
| 1167 | JP Z,1163 | |
| 116A | POP AF | |
| 116B | OUT (11),A | |
| 116D | PUSH AF | |
| 116E | NOP | |
| 116F | NOP | |
| 1170 | POP AF | |
| 1171 | RET | |
| 1172 | PUSH HL | |
| 1173 | LD HL,(0825) | |
| 1176 | LD A,H | |
| 1177 | OR L | |
| 1178 | JP Z,119D | |
| 117B | CALL 33BB | |
| 117E | JP NC,3EBA | |
| 1181 | CALL 3720 | |
| 1184 | LD A,(0821) | |
| 1187 | OR A | |
| 1188 | LD HL,123B | |
| 118B | EX (SP),HL | |
| 118C | JP NZ,0DE3 | |
| 118F | EX (SP),HL | |
| 1190 | PUSH BC | |
| 1191 | PUSH DE | |
| 1192 | LD HL,0B4A | Print "OK\r\n". |
| 1195 | CALL 21A8 | |
| 1198 | POP DE | |
| 1199 | POP BC | |
| 119A | XOR A | |
| 119B | POP HL | |
| 119C | RET | |
| InputChar: | 119D | POP HL | |
| 119E | IN A,(10) | Wait for permission to read input. |
| 11A0 | AND 01 | |
| 11A2 | JP Z,119E | |
| 11A5 | IN A,(11) | Read input. |
| 11A7 | AND 7F | |
| 11A9 | CP 0F | What is special about 0xF? |
| 11AB | RET NZ | |
| 11AC | LD A,(06E4) | |
| 11AF | OR A | |
| 11B0 | CALL Z,13A6 | |
| 11B3 | CPL | |
| 11B4 | LD (06E4),A | |
| 11B7 | OR A | |
| 11B8 | JP Z,13A6 | |
| 11BB | XOR A | |
| 11BC | RET | |