AlexRaider

FastLdir

Feb 10th, 2019
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.                 device zxspectrum48
  2.        
  3.                 org #8000
  4. start:
  5.                 jr $            ; to stop Z80 CPU here
  6.                
  7.                 LD HL,0         ; rom address
  8.                 LD DE,#4000     ; screen address
  9.                 LD BC,#0001     ; bytes count
  10.                
  11.                
  12. @klFastLDIR:    xor a           ; 0
  13.                 sub c           ; 0 - count
  14.                 add a           ; 2 * (0 - count)
  15.                 and %01111110   ; = 126,  for:  MOD(2*(0-count), 64*2)
  16.                 ld  (VectorJPAddr+1), a ; patch jump address
  17. VectorJPAddr:   jp  klLDI64     ; jump at rest LDI
  18.                 ALIGN   256    
  19. @klLDI64:       DUP 64
  20.                 ldi             ; 64 * LDI instructions
  21.                 EDUP
  22.                 jp  pe, klLDI64 ; loop LDI, simulate LDIR
  23.                 ret
  24.  
  25.                 savesna "FastLdir.sna",start
Add Comment
Please, Sign In to add comment