nodeus

attr fade

Aug 3rd, 2012
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;Cannonball (19xx)(Hooy).tap demo
  2.     device zxspectrum128
  3.         ORG #61a8
  4. begin
  5.  
  6.  ld hl,#5800;адрес атрибутов экрана
  7. ;--------заполним черным цветом
  8. m0:
  9.  ld(hl),0:inc hl
  10.  ld a,h:cp #5b:jr nz,m0
  11. ;---печать текста
  12.  ld hl, #5800,ix,message
  13. m1:
  14.  ld a,(ix):or a:jr z,begfade; если код сообщения 0, то переходим к гашению
  15.  inc ix
  16.  push hl:ld l,a,h,0
  17.  add hl,hl:add hl,hl:add hl,hl; каждый символ состоит из 8 байт, умножим код на 8
  18.  ld de,#3C00:add hl,de;#3C00 - адрес, где хранятся символы
  19.  ld de,hl
  20.  pop hl:push hl
  21.  ld a,8
  22. m3: ld b,#80
  23.  exa
  24. m2: ld a,(de):and b:jr z, writeatr
  25.  ld a,56; атрибут paper= белый(7)*8
  26. writeatr:
  27.  ld (hl),a:inc hl
  28.  rrc b:jr nc, m2
  29.  ld bc,24:add hl,bc; 24=32-8, отрисовали 8 знаков, перейдем к следующей линии
  30.  inc de
  31.  exa:dec a:jr nz,m3
  32.  pop hl:ld bc,8:add hl,bc; символ нарисован, переход на 8
  33.  jp m1
  34. ;----------------------------------гашение
  35. begfade:
  36. ;---------------------------------- ждем нажатия пробел
  37. waitkey:
  38.         LD A,#7F:IN A,(#FE)
  39.         RRA:JR C,waitkey
  40.  
  41.  LD            B ,$32
  42. L9D78:
  43.  PUSH          BC
  44.  CALL          L9DCD
  45.  POP           BC
  46.  DJNZ          L9D78
  47.  
  48. stu jr stu; заглушка
  49. message: db "TEXT",0
  50. L9DCD:
  51.   LD            IX ,$5800;9DCD
  52.   LD            B ,$16
  53. L9DD3:
  54.   PUSH          BC;9DD3
  55.   LD            B ,$1F
  56. L9DD6:
  57.   PUSH          BC;9DD6
  58.   LD            HL ,$0000
  59.   LD            D ,$00
  60.   LD            E ,(IX-$20   )
  61.   ADD           HL ,DE
  62.   LD            E ,(IX+$01   )
  63.   ADD           HL ,DE
  64.   LD            E ,(IX-$01   )
  65.   ADD           HL ,DE
  66.   LD            E ,(IX+$20   )
  67.   ADD           HL ,DE
  68.   SRL           L
  69.   SRL           H
  70.   SRL           L
  71.   SRL           H
  72.   LD            A ,L
  73.   LD            ( IX+$00), A
  74.   INC           IX
  75.   POP           BC
  76.   DJNZ          L9DD6
  77.  
  78.   INC           IX
  79.   POP           BC
  80.   DJNZ          L9DD3
  81.  
  82.   ei:HALT
  83.   RET
  84.  
  85. end
  86.     display /d,end-begin
  87.     savesna "test.sna",begin
Advertisement
Add Comment
Please, Sign In to add comment