Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Cannonball (19xx)(Hooy).tap demo
- device zxspectrum128
- ORG #61a8
- begin
- ld hl,#5800;адрес атрибутов экрана
- ;--------заполним черным цветом
- m0:
- ld(hl),0:inc hl
- ld a,h:cp #5b:jr nz,m0
- ;---печать текста
- ld hl, #5800,ix,message
- m1:
- ld a,(ix):or a:jr z,begfade; если код сообщения 0, то переходим к гашению
- inc ix
- push hl:ld l,a,h,0
- add hl,hl:add hl,hl:add hl,hl; каждый символ состоит из 8 байт, умножим код на 8
- ld de,#3C00:add hl,de;#3C00 - адрес, где хранятся символы
- ld de,hl
- pop hl:push hl
- ld a,8
- m3: ld b,#80
- exa
- m2: ld a,(de):and b:jr z, writeatr
- ld a,56; атрибут paper= белый(7)*8
- writeatr:
- ld (hl),a:inc hl
- rrc b:jr nc, m2
- ld bc,24:add hl,bc; 24=32-8, отрисовали 8 знаков, перейдем к следующей линии
- inc de
- exa:dec a:jr nz,m3
- pop hl:ld bc,8:add hl,bc; символ нарисован, переход на 8
- jp m1
- ;----------------------------------гашение
- begfade:
- ;---------------------------------- ждем нажатия пробел
- waitkey:
- LD A,#7F:IN A,(#FE)
- RRA:JR C,waitkey
- LD B ,$32
- L9D78:
- PUSH BC
- CALL L9DCD
- POP BC
- DJNZ L9D78
- stu jr stu; заглушка
- message: db "TEXT",0
- L9DCD:
- LD IX ,$5800;9DCD
- LD B ,$16
- L9DD3:
- PUSH BC;9DD3
- LD B ,$1F
- L9DD6:
- PUSH BC;9DD6
- LD HL ,$0000
- LD D ,$00
- LD E ,(IX-$20 )
- ADD HL ,DE
- LD E ,(IX+$01 )
- ADD HL ,DE
- LD E ,(IX-$01 )
- ADD HL ,DE
- LD E ,(IX+$20 )
- ADD HL ,DE
- SRL L
- SRL H
- SRL L
- SRL H
- LD A ,L
- LD ( IX+$00), A
- INC IX
- POP BC
- DJNZ L9DD6
- INC IX
- POP BC
- DJNZ L9DD3
- ei:HALT
- RET
- end
- display /d,end-begin
- savesna "test.sna",begin
Advertisement
Add Comment
Please, Sign In to add comment