Prev: 65219 Up: Map Next: 65333
65225: Match String
Finds the BASIC string "z$" inside "b$" and returns the match position in BC (or zero if there is no match). Called by BASIC on side 2 as "ist" (65225).
MatchString 65225 DI Disable interrupts.
65226 LD (65398),SP
65230 LD SP,65470
65233 LD HL,65219
65236 CALL MatchString_LookUpVariable
65239 JR Z,MatchString_2
65241 PUSH HL
65242 PUSH BC
65243 LD HL,65222
65246 CALL MatchString_LookUpVariable
65249 LD (65362),BC
65253 EX DE,HL
65254 POP HL
65255 JR Z,MatchString_3
65257 LD BC,(65362)
65261 SBC HL,BC
65263 JR C,MatchString_1
65265 INC HL
65266 LD B,H
65267 LD C,L
65268 POP HL
65269 PUSH HL
MatchString_0 65270 LD A,(DE)
65271 CPIR
65273 JR Z,MatchString_4
MatchString_1 65275 POP HL
MatchString_2 65276 LD BC,0
65279 JR MatchString_7
MatchString_3 65281 POP HL
65282 LD BC,1
65285 JR MatchString_7
MatchString_4 65287 PUSH HL
65288 PUSH DE
65289 PUSH BC
65290 PUSH AF
65291 LD BC,(65362)
65295 DEC BC
65296 LD A,B
65297 OR C
65298 JR Z,MatchString_6
MatchString_5 65300 INC DE
65301 LD A,(DE)
65302 CPI
65304 JR NZ,MatchString_8
65306 JP PE,MatchString_5
MatchString_6 65309 POP AF
65310 POP BC
65311 POP HL
65312 POP DE
65313 POP HL
65314 EX DE,HL
65315 SBC HL,DE
65317 LD B,H
65318 LD C,L
MatchString_7 65319 LD SP,(65398)
65323 RET
MatchString_8 65324 POP AF
65325 POP BC
65326 POP DE
65327 POP HL
65328 JP PE,MatchString_0
65331 JR MatchString_1
Prev: 65219 Up: Map Next: 65333