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