Advertisement
Guest User

EschDude_Levels.z80

a guest
Apr 22nd, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3. decompress: ;decompresses hl into de
  4.     ;each opcode:
  5.     ;1nnn nnnn = n literals
  6.     ;0nnn nnnn  dddd dddd ; substring len n dist d+1
  7.     ;0000 0000 : end
  8.    
  9.     ld a,(hl)
  10.     inc hl
  11.     rlca
  12.     rrca
  13.     ld c,a
  14.     ld b,0
  15.     jr c,_decompress_literals
  16.      or a
  17.      ret z ;return opcode
  18.      ;substring
  19.      ld a,hl
  20.      inc hl
  21.      push hl
  22.      neg
  23.      ld l,a
  24.      ld h,-1
  25.      add hl,de
  26.      dec hl
  27.      ldir
  28.      pop hl
  29.     jr decompress
  30. _decompress_literals:
  31.     ldir
  32.     jr decompress
  33.  
  34.  
  35. findLevel: ;finds level b
  36.     ld hl,levels
  37.     ld e,(hl)
  38.     inc hl
  39.     ld d,(hl)
  40.     inc hl
  41.  
  42.     ld a,b
  43.     or a
  44.     ret z
  45. _findLevelLoop:
  46.     add hl,de
  47.     ld e,(hl)
  48.     inc hl
  49.     ld d,(hl)
  50.     inc hl
  51.     djnz _findLevelLoop
  52.     ret
  53.  
  54. levels:
  55. .db 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement