Load routines 
Prev: 23831  Up: Map  Next: 32815 
Used by the routine at 32815.


32768  INC SP  Place the address 0 on the stack above the current return address, so the Spectrum will reset if there's a loading error  
32769  INC SP  
32770  EX (SP),HL  
32771  LD H,0  
32773  LD L,H  
32774  EX (SP),HL  
32775  DEC SP  
32776  DEC SP  
32777  LD A,6  
32779  CALL 32785  Listen for one edge  
32782  RET NC  Return if no edge was found within the time limit  
This entry point is also used by the routine at 32815.


32783  LD A,11  Wait a bit  
32785  DEC A  
32786  JR NZ,32785  
32788  AND A  Reset the carry flag  
32789  INC B  Have we run out of time to find an edge?  
32790  RET Z  Return with the carry flag reset if so  
32791  LD A,127  Collect an EAR port reading in bit 6 of A  
32793  IN A,(254)  
32795  RRA  Move it to bit 5 of A  
32796  AND A  In the analogous ROM routine, the instruction here is 'RET NC', causing a return if BREAK was pressed; in this routine, that behaviour is disabled (pressing BREAK does nothing)  
32797  XOR C  Compare this EAR port reading with the previous one  
32798  AND 32  
32800  JR Z,32789  Jump back if they are the same (i.e. no edge was found)  
32802  LD A,C  Alternate the border colour  
32803  CPL  
32804  LD C,A  
32805  AND 7  
32807  OR 8  
32809  OUT (254),A  
32811  SCF  Signal: an edge was found within the time limit  
32812  RET  Return with B indicating the time taken to find the edge 
Prev: 23831  Up: Map  Next: 32815 