| Load routines

32956: Prepare to load the standard speed code block

This section of code is executed immediately after the fast code block has loaded. First of all, it modifies the loading routines at 32768 and 32815 to make them suitable for loading a standard speed block.
32956 | LD B,11 | Do the 11 POKEs in the POKE table at 33024; these POKEs convert the fast loading routines into standard speed loading routines, ready for the final code block on the tape
32958 | LD D,128
32960 | LD HL,33024
32963 | LD E,(HL)
32964 | INC L
32965 | LD A,(HL)
32966 | LD (DE),A
32967 | INC L
32968 | DJNZ 32963
Now a checksum of the bytes at addresses 33024-33195 (just loaded from tape) is calculated.
32970 | LD L,B | HL=33024
32971 | LD E,B | DE=0
32972 | LD D,B
32973 | LD B,172 | Create 'checksums' in A and E of the 172 bytes at addresses 33024-33195
32975 | LD A,(HL)
32976 | ADD A,E
32977 | LD E,A
32978 | LD A,(HL)
32979 | XOR D
32980 | LD D,A
32981 | INC L
32982 | DJNZ 32975
32984 | LD L,40 | HL=33064
32986 | CP 75 | Is the checksum in A correct?
32988 | JP NZ,0 | Reset the Spectrum if not
32991 | LD A,E | Is the checksum in E correct?
32992 | CP 175
32994 | JP Z,33046 | Jump if so
32997 | JP 0 | Otherwise reset the Spectrum