vito-Z80

Vertical Scroll

Feb 26th, 2020
1,308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     module vScroll8btp
  2. linesCount: equ 64
  3.     align 256
  4. scrAddr:
  5.     block linesCount*2
  6. //------------------------------
  7. run:   //   start prog
  8.  
  9.     xor a
  10.     out (254),a
  11.     call build
  12. repeat:
  13.     ei
  14.     halt
  15.     call txtImitation
  16.     call ldiVersion
  17.     jr repeat
  18. //------------------------------
  19. build:
  20.     ld de,#4800
  21.     ld hl,scrAddr
  22.     ld b,linesCount
  23. nextLineAddr:
  24.     ld (hl),e
  25.     inc l
  26.     ld (hl),d
  27.     inc l
  28.         ; next screen line address
  29.         inc d
  30.         ld  a,d
  31.         and 7
  32.         jr  nz,$+12
  33.         ld  a,e
  34.         add a,32
  35.         ld  e,a
  36.         jr  c,$+6
  37.         ld  a,d
  38.         sub 8
  39.         ld  d,a
  40.         djnz nextLineAddr
  41.         ret
  42. //------------------------------
  43. ldiVersion:
  44.     ld hl,scrAddr
  45.     ld a,linesCount
  46. nextLineLdi:
  47.     push hl
  48.     ld e,(hl)
  49.     inc l
  50.     ld d,(hl)
  51.     inc l
  52.     ld c,(hl)
  53.     inc l
  54.     ld h,(hl)
  55.     ld l,c
  56.     dup 32
  57.     ldi
  58.     edup
  59.     pop hl
  60.     inc l
  61.     inc l
  62.     dec a
  63.     jr nz,nextLineLdi
  64.     ret
  65. //------------------------------
  66. txtImitation:
  67.     ld hl,run-2
  68.     ld a,(hl)
  69.     inc l
  70.     ld h,(hl)
  71.     ld l,a
  72.     ld b,32
  73. plt:
  74.     ld a,r
  75.     ld (hl),a
  76.     inc l
  77.     djnz plt
  78.     ret
  79. //------------------------------
  80.     endmodule
Advertisement
Add Comment
Please, Sign In to add comment