vito-Z80

memory banks (screens)

Jun 4th, 2020
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     device zxspectrum128
  2. ; Author: Serdjuk
  3. ; Assembly: sjasmplus
  4.     org #6000
  5. begin:
  6.     ld sp,#c000
  7.     ld a,#1d
  8.     ld bc,#7ffd
  9.     out (c),a
  10.     ld hl,#D800
  11.     ld de,#D801
  12.     ld bc,767
  13.     ld (hl),5
  14.     ldir
  15.     ld a,#17
  16.     ld bc,#7ffd
  17.     out (c),a
  18.     ld hl,#D800
  19.     ld de,#D801
  20.     ld bc,767
  21.     ld (hl),5
  22.     ldir
  23. repeat:
  24.     ei
  25.     halt
  26.     call bank
  27.     call showLines
  28.     call printSprite
  29.     jr repeat
  30. ;----------------------------------------------------
  31. saveSP: defw #0000
  32. bank:  
  33.     ld a,#17
  34.     ld bc,#7ffd
  35.     out (c),a
  36.     xor #0a
  37.     ld (bank+1),a
  38.     ret
  39. ;----------------------------------------------------
  40. showLines:
  41.     ld hl,#0101
  42.     rlc l
  43.     rlc h
  44.     ld (showLines+1),hl
  45. screenPart:
  46.     ld (saveSP),sp
  47.     ld sp,#C000+#1800
  48.     ld b,192
  49. cp1:
  50.     dup 16
  51.     push hl
  52.     edup
  53.     djnz cp1
  54.     ld sp,(saveSP)
  55.     ret
  56. ;----------------------------------------------------
  57. printSprite:
  58.         ld hl,sprite64x64       ; sprite address
  59.         ld de,#c80c     ; screen address
  60.         ld b,64      ; height
  61. loop    push bc,de
  62.         dup 8       ; width
  63.         ldi
  64.         edup
  65.         pop de,bc
  66.         call down_de    ; next line address
  67.         djnz loop
  68.         ret
  69. down_de:
  70.         inc d
  71.         ld  a,d
  72.         and 7
  73.         jr  nz,$+12
  74.         ld  a,e
  75.         add a,32
  76.         ld  e,a
  77.         jr  c,$+6
  78.         ld  a,d
  79.         sub 8
  80.         ld  d,a
  81.         ret
  82. sprite64x64:
  83.     defb #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00
  84.     defb #00, #00, #00, #00, #00, #00, #00, #00, #00, #1C, #81, #00, #00, #00, #00, #00
  85.     defb #00, #0F, #FF, #E0, #00, #00, #00, #00, #00, #01, #FE, #70, #00, #00, #00, #00
  86.     defb #00, #00, #50, #38, #00, #00, #00, #00, #00, #00, #40, #0E, #00, #00, #00, #00
  87.     defb #00, #00, #40, #07, #00, #00, #00, #00, #00, #00, #60, #3F, #C0, #00, #00, #00
  88.     defb #00, #00, #7E, #3C, #F0, #00, #00, #00, #00, #01, #FE, #3E, #38, #00, #00, #00
  89.     defb #00, #07, #F0, #1E, #0E, #00, #00, #00, #00, #07, #F0, #1E, #03, #80, #00, #00
  90.     defb #00, #07, #E0, #00, #00, #E0, #00, #00, #00, #07, #E0, #00, #00, #30, #00, #00
  91.     defb #00, #07, #C0, #00, #00, #18, #00, #00, #00, #00, #C0, #00, #00, #1C, #00, #00
  92.     defb #00, #00, #F0, #00, #00, #0C, #00, #00, #00, #00, #F0, #00, #00, #04, #00, #00
  93.     defb #00, #00, #40, #00, #00, #06, #00, #00, #00, #00, #60, #00, #00, #06, #00, #00
  94.     defb #00, #00, #38, #00, #00, #07, #00, #00, #00, #00, #1F, #F8, #00, #03, #00, #00
  95.     defb #00, #00, #0F, #E0, #00, #03, #80, #00, #00, #00, #09, #FC, #C0, #03, #80, #00
  96.     defb #00, #00, #09, #F0, #40, #03, #C0, #00, #00, #00, #1B, #C3, #60, #01, #C0, #00
  97.     defb #00, #00, #1B, #07, #60, #01, #E0, #00, #00, #00, #1E, #02, #30, #01, #E0, #00
  98.     defb #00, #00, #16, #00, #30, #01, #E0, #00, #00, #00, #34, #00, #18, #01, #A0, #00
  99.     defb #00, #00, #34, #00, #18, #01, #A0, #00, #00, #00, #36, #00, #1C, #01, #A0, #00
  100.     defb #00, #00, #26, #00, #0C, #00, #E0, #00, #00, #00, #27, #80, #0E, #00, #E0, #00
  101.     defb #00, #00, #23, #80, #06, #00, #C0, #00, #00, #00, #21, #C0, #06, #00, #80, #00
  102.     defb #00, #00, #21, #F0, #02, #00, #80, #00, #00, #00, #21, #FF, #83, #00, #80, #00
  103.     defb #00, #00, #30, #FF, #FF, #00, #80, #00, #00, #00, #30, #FF, #FF, #00, #C0, #00
  104.     defb #00, #00, #3C, #3F, #FF, #00, #40, #00, #00, #00, #16, #7D, #FF, #C0, #40, #00
  105.     defb #00, #00, #1B, #FC, #FE, #C0, #40, #00, #00, #00, #0F, #F8, #7F, #C1, #C0, #00
  106.     defb #00, #00, #0F, #F0, #3F, #C3, #00, #00, #00, #00, #00, #00, #1E, #CF, #00, #00
  107.     defb #00, #00, #00, #00, #1F, #CC, #00, #00, #00, #00, #00, #00, #3F, #F8, #00, #00
  108.     defb #00, #00, #00, #00, #3F, #C0, #00, #00, #00, #00, #06, #00, #79, #E0, #00, #00
  109.     defb #00, #00, #0F, #00, #70, #F0, #00, #00, #00, #00, #0F, #80, #70, #78, #00, #00
  110.     defb #00, #00, #0F, #80, #E0, #3C, #00, #00, #00, #00, #06, #C0, #E0, #1E, #00, #00
  111.     defb #00, #00, #07, #C1, #C0, #0F, #00, #00, #00, #00, #03, #E1, #C0, #07, #00, #00
  112.     defb #00, #00, #01, #F3, #80, #03, #00, #00, #00, #00, #00, #FF, #80, #FF, #00, #00
  113.     defb #00, #00, #00, #FF, #01, #FE, #00, #00, #00, #00, #00, #3F, #00, #78, #00, #00
  114.     defb #00, #00, #00, #0E, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00
Add Comment
Please, Sign In to add comment