Prev: 32815 Up: Map Next: 33024
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
Prev: 32815 Up: Map Next: 33024