![]() |
Load routines |
Prev: 32815 | Up: Map |
|
|||||||
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 |