1298 - Called by string parser at 2163 when a '\"' (0x22) is encountered.

Store char ???
HL points to string content. In this loop we parse the string, skipping over spaces, returning if we find a character more than '9', and continuing out of the loop to process other characters.
1298INC HLGet next char of string.
1299LD A,(HL)Return immediately if it's > '9'.
129ACP 3A
129CRET NC
129DCP 20Skip spaces.
129FJP Z,1298
12A2JP NC,ExitParse(130B)Jump ahead if it's > ' ' (and <='9').
Handling non-printable chars here, ie in the range 0x00 - 0x1F.
12A5CP 0B If in range 0x00 - 0x0A jump ahead.
12A7JP C,1301
Handling range 0x0B - 0x1F.
12AACP 1EWhat is ASCII 0x1E??
12ACJP NZ,12B4
12AFLD A,(0A92)
12B2OR A
12B3RET
Handling 0x10. Seems to be a redirection to another string buffer.
12B4CP 10What is ASCII 0x10??
12B6JP NZ,12BF
12B9LD HL,(0A90)Load string pointer (HL) from ???.
12BCJP 1299Jump back to string parser.
Handling 0x0B-0x0F, 0x11-0x1D, 0x1F.
12BFPUSH AFPreserve char.
12C0INC HLpsz++
12C1LD (0A92),A
12C4SUB 1C
12C6JP NC,12E6
12C9SUB F5
12CBJP NC,12D5
12CECP FE
12D0JP NZ,12E5
12D3LD A,(HL)Get next char.
12D4INC HLpsz++
12D5PUSH HLPreserve psz.
12D6LD L,A(0A94) = next char, (0A95) = 0.
12D7LD H,00
12D9LD (0A94),HL
12DCLD A,02(0A93) = 2.
12DELD (0A93),A
12E1POP HLRestore psz.
12E2JP 12F8
todo.
12E5XOR A
12E6INC A
12E7RLCA
12E8LD (0A93),A
Copy ??? bytes from psz to 0A94.
12EBPUSH DE
12ECPUSH BC
12EDLD DE,0A94
12F0EX DE,HL
12F1LD B,A
12F2CALL 4008
12F5EX DE,HL
12F6POP BC
12F7POP DE
Store updated psz in (0A90).
12F8LD (0A90),HL
12FBPOP AFRestore char.
12FCLD HL,1311HL=1311, a code address.
12FFOR Achar='\0'?
1300RET
Handling range 0x00 - 0x0A.
1301CP 0B
1303JP NC,130B
1306CP 09Jump back to parse loop if >=0x09
1308JP NC,1298
ExitParse:130BCP 30
130DCCFie carry set if char >= '0'.
130EINC A
130FDEC A
1310RET