Guest User

Picture from center

a guest
Feb 20th, 2020
283
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     DEVICE ZXSPECTRUM48
  2.  
  3. LAST_K equ 23560
  4.  
  5.     org 25000
  6. STARTINTRO:
  7.     call fill_screen
  8.     call waitkey
  9.     call scroll_picture
  10.     call waitkey
  11.     ret
  12.  
  13. waitkey:
  14.     ld hl,LAST_K
  15.     ld (hl),0
  16. looper:
  17.     ld a,(hl)
  18.     cp 0
  19.     jr z,looper
  20.     ret
  21.  
  22. fill_screen:
  23.     ld hl,PIC1
  24.     ld de,16384
  25.     ld bc,6912
  26.     ldir
  27.     ret
  28.    
  29. ;---------------------------------------
  30.  
  31. scroll_picture:
  32.     ld a,16
  33. loop_center:
  34.     ;halt       ; <-- slower, little smoother
  35.     push af
  36.  
  37.     ; bitmap
  38.     ld hl, 16385
  39.     ld de, 16384
  40. bmp_l:
  41.     ld bc, PIC2
  42.     ld a,192
  43.  
  44.     call scroll_left
  45.  
  46.     ; attributes
  47.     ld hl,22529
  48.     ld de,22528
  49. attr_l:
  50.     ld bc,PIC2+6144
  51.     ld a, 24
  52.  
  53.     call scroll_left
  54.  
  55.     ; bitmap
  56.     ld hl, 16384+6144-2
  57.     ld de, 16384+6144-1
  58. bmp_r:
  59.     ld bc, PIC2+6144-1
  60.     ld a,192
  61.  
  62.     call scroll_right
  63.  
  64.     ; attributes
  65.     ld hl,22528+768-2
  66.     ld de,22528+768-1
  67. attr_r:
  68.     ld bc,PIC2+6912-1
  69.     ld a, 24
  70.  
  71.     call scroll_right
  72.  
  73.     ld hl,(bmp_l+1)
  74.     inc hl
  75.     ld (bmp_l+1),hl
  76.  
  77.     ld hl,(attr_l+1)
  78.     inc hl
  79.     ld (attr_l+1),hl
  80.    
  81.     ld hl,(bmp_r+1)
  82.     dec hl
  83.     ld (bmp_r+1),hl
  84.  
  85.     ld hl,(attr_r+1)
  86.     dec hl
  87.     ld (attr_r+1),hl
  88.  
  89.     pop af
  90.     dec a
  91.  
  92.     jr nz,loop_center
  93.  
  94.     ret
  95.    
  96. scroll_left:
  97.     push bc
  98. loop_left:
  99.     dup 15
  100.         ldi
  101.     edup
  102.  
  103.     ld bc,16
  104.     add hl,bc
  105.    
  106.     ex (sp),hl
  107.     ldi
  108.    
  109.     ld bc,31
  110.     add hl,bc
  111.     ex (sp),hl
  112.     inc hl
  113.    
  114.     push hl
  115.     ld hl, 16
  116.     add hl,de
  117.     ex hl,de
  118.     pop hl
  119.    
  120.     dec a
  121.     jp nz,loop_left
  122.    
  123.     pop bc
  124.    
  125.     ret
  126.  
  127. scroll_right:
  128.     push bc
  129. loop_right:
  130.     dup 15
  131.         ldd
  132.     edup
  133.  
  134.     and a
  135.     ld bc,16
  136.     sbc hl,bc
  137.    
  138.     ex (sp),hl
  139.     ldd
  140.    
  141.     and a
  142.     ld bc,31
  143.     sbc hl,bc
  144.     ex (sp),hl
  145.     dec hl
  146.    
  147.     push hl
  148.     and a
  149.     ld hl, 16
  150.     ex hl,de
  151.     sbc hl,de
  152.     ex hl,de
  153.     pop hl
  154.    
  155.     dec a
  156.     jp nz,loop_right
  157.    
  158.     pop bc
  159.    
  160.     ret
  161.  
  162. PIC1:
  163.     incbin "Rory C. Green - Marauder (1988).scr"
  164. PIC2:
  165.     incbin "Deborah, Jorge Azpiri - Navy Moves (1988).scr"
  166.    
  167.   SAVESNA "center.sna", STARTINTRO
Advertisement
Add Comment
Please, Sign In to add comment