;--------------------------------------------------------------------
 
; Описание: Бегущая строка
 
; Автор порта: Тарасов М.Н.(Mick),2010
 
;--------------------------------------------------------------------
 
Str_reload:
 
                ld      a,(Str_flg_end)
 
                and     a
 
                jr      z,Str_init
 
                xor     a
 
                ld      (Str_flg_end),a
 
                scf
 
                ret
 
Str_init:
 
                ld      hl,Str_addr_text
 
                ld      (Str_addr_work),hl
 
                ret
 
 
 
Str_init_load:
 
                ld      hl,Str_addr_load
 
                ld      (Str_addr_work),hl
 
                ld      a,1
 
                ld      (Str_flg_end),a
 
                ld      a,(hl)
 
                ret     
 
Str_play:
 
                ld      a,(Str_count_bit)
 
                or      a
 
                call    z,Str_next_symol
 
                ret     c
 
                call    Str_update_symbol
 
                jp      Str_draw_symbol
 
 
 
Str_next_symol:
 
                ld      hl,(Str_addr_work)
 
                ld      a,(hl)
 
                and     a
 
                jr      z,Str_reload
 
                ret     c
 
                inc     hl
 
                ld      (Str_addr_work),hl
 
                sub     20h
 
                ld      l, a
 
                ld      h, 0
 
                ld      de,Str_addr_font
 
                add     hl,hl
 
                add     hl,hl
 
                add     hl,hl
 
                add     hl,de
 
                ld      de,Str_symbol_buf
 
                ldi     
 
                ldi     
 
                ldi     
 
                ldi     
 
                ldi     
 
                ldi     
 
                ldi     
 
                ldi     
 
                ld      a, 8
 
                ld      (Str_count_bit),a
 
                ret     
 
 
 
Str_update_symbol:
 
                ld      de, Str_symbol_buf
 
                ld      bc, 800h
 
                ld      hl, 507Eh
 
loc_0_9BA8:
 
                ld      a,(de)
 
                rlca
 
                ld      (de),a
 
                jr      c,loc_0_9C03
 
 
 
                ld      (hl),c
 
                inc     h
 
                ld      a,h
 
                and     7
 
                jr      nz,loc_0_9BC2
 
                ld      a,l
 
                add     a,20h
 
                ld      l,a
 
                jr      c,loc_0_9BC2
 
                ld      a,h
 
                sub     8
 
                ld      h,a
 
loc_0_9BC2:
 
                ld      (hl),20h
 
                inc     h
 
                ld      a,h
 
                and     7
 
                jr      nz,loc_0_9BD6
 
                ld      a,l
 
                add     a,20h
 
                ld      l,a
 
                jr      c,loc_0_9BD6
 
                ld      a,h
 
                sub     8
 
                ld      h,a
 
 
 
loc_0_9BD6:
 
                ld      (hl),c
 
                inc     h
 
                ld      a,h
 
                and     7
 
                jr      nz,loc_0_9BE9
 
                ld      a,l
 
                add     a,20h
 
                ld      l,a
 
                jr      c,loc_0_9BE9
 
                ld      a,h
 
                sub     8 
 
                ld      h,a
 
 
 
loc_0_9BE9:
 
                ld      (hl),c
 
                inc     h
 
                ld      a,h
 
                and     7
 
                jr      nz,loc_0_9BFC
 
                ld      a,l
 
                add     a,20h
 
                ld      l,a
 
                jr      c,loc_0_9BFC
 
                ld      a,h
 
                sub     8
 
                ld      h,a
 
 
 
loc_0_9BFC:
 
                inc     de
 
                djnz    loc_0_9BA8
 
                ld      a,(Str_count_bit)
 
                dec     a
 
                ld      (Str_count_bit),a
 
                ret
 
 
 
loc_0_9C03:
 
                ld      (hl),70h 
 
                inc     h
 
                ld      a,h
 
                and     7
 
                jr      nz,loc_0_9C18
 
                ld      a,l
 
                add     a,20h
 
                ld      l,a
 
                jr      c,loc_0_9C18
 
                ld      a,h
 
                sub     8
 
                ld      h,a
 
 
 
loc_0_9C18:
 
                ld      (hl),70h
 
                inc     h
 
                ld      a,h
 
                and     7
 
                jr      nz,loc_0_9C2B
 
                ld      a,l
 
                add     a,20h
 
                ld      l,a
 
                jr      c, loc_0_9C2B
 
                ld      a,h
 
                sub     8
 
                ld      h,a
 
 
 
loc_0_9C2B:
 
                ld      (hl),70h
 
                inc     h
 
                ld      a,h
 
                and     7
 
                jr      nz,loc_0_9BE9
 
                ld      a,l
 
                add     a,20h ; ' '
 
                ld      l,a
 
                jr      c,loc_0_9BE9
 
                ld      a,h
 
                sub     8
 
                ld      h,a
 
                jp      loc_0_9BE9
 
 
 
Str_draw_symbol:
 
                ld      hl,507Eh
 
                ld      b,32
 
                ld      c,l
 
 
 
loc_0_9C59:
 
                sub     a
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                dec     l
 
                rld     
 
                ld      l,c
 
                inc     h
 
                ld      a,h
 
                and     7
 
                jr      nz,loc_0_9BEA
 
                ld      a,l
 
                add     a,20h
 
                ld      l,a
 
                ld      c,a
 
                jr      c,loc_0_9BEA
 
                ld      a,h
 
                sub     8
 
                ld      h,a
 
loc_0_9BEA:
 
                djnz    loc_0_9C59
 
                ret     
 
 
 
Str_symbol_buf:
 
                db      0,0,0,0,0,0,0,0
 
 
 
 
 
Str_flg_end:
 
                db      0
 
 
 
Str_count_bit:
 
                db      0
 
Str_addr_work:
 
                dw      0
 
 
 
Str_addr_load:
 
                db      '  LOADING',0
 
Str_addr_text:
 
                db      '           ПРИВЕТ, ВОТ И ОПЯТЬ ВСТРЕТИЛИСЬ!!!       '
 
                db      'ВСТРЕЧАЙТЕ ТРЕТИЙ ВЫПУСК ДЕМО ПРОГРАММЫ "E-TUNES".' 
 
                db      ' ЭТОТ ВЫПУСК, КАК И ПРЕДЫДУЩИЙ ВКЛЮЧАЕТ В СЕБЯ 40 МУЗЫКАЛЬНЫХ КОМПОЗИЦИЙ РАЗНОЙ ПРОДОЛЖИТЕЛЬНОСТИ.'
 
                db      ' НАПОМНЮ ЧТО ДАННЫЕ МУЗЫКАЛЬНЫЕ КОМПОЗИЦИИ СОЗДАНЫ В РЕДАКТОРЕ'
 
                db      ' "E-TRACKER" И ПОЗАИМСТВОВАНЫ С КОМПЬЮТЕРА "SAM COUPE".'
 
                db      ' ПО СУММЕ ТРЕХ ВЫПУСКОВ ПОЛУЧАЕТСЯ УЖЕ 100 КОМПОЗИЦИЙ ДОСТУПНЫХ ДЛЯ ПРОСЛУШИВАНИЯ.'
 
                db      ' ПРОСЛУШАТЬ МУЗЫКУ МОЖНО  ЧЕРЕЗ ЗВУКОВУЮ КАРТУ "ZXM-SOUNDCARD" ИЛИ В ЭМУЛЯТОРЕ "UNREAL SPECCY",'
 
                db      ' ПРОПАТЧЕННЫЙ МОЛОДЦОВЫМ АЛЕКСАНДРОМ.    '
 
                db      ' НЕМНОГО ОБ УПРАВЛЕНИИ. ПЕРЕХОД К СЛЕДУЮЩЕМУ ПРОИЗВЕДЕНИЮ ОСУЩЕСТВЛЯЕТСЯ ПРИ ПОМОЩИ КЛАВИШИ'
 
                db      ' "SPACE", ВЫХОД В TR-DOS ПРИ ПОМОЩИ КЛАВИШИ "BREAK"'
 
                db      ' О ПРОГРАММЕ: ГРАФИКА НАРИСОВАНА ПО МОТИВАМ ОДНОИМЕННОЙ ПРОГРАММЫ С КОМПЬЮТЕРА "SAM COUPE",'
 
                db      ' БЕГУЩАЯ СТРОКА СОДРАНА С ДЕМО ПРОГРАММЫ ВИТАЛИЯ ГАМАЗОВА "VDEMO" И НЕМНОГО ПОДПРАВЛЕНА ДЛЯ'
 
                db      ' МОИХ НУЖД, ОСТАЛЬНОЕ КОЧУЕТ С ПРЕДЫДЫУЩИХ ВЫПУСКОВ "E-TUNES".'
 
                db      ' ВСЕ ЭТО СОБИРАЛОСЬ НА РС ПРИ ПОМОЩИ АССЕМБЛЕРА  SJASMPLUS.'
 
                db      '           НУ И ПО ТРАДИЦИИ ПОКИДАЕМСЯ ПРИВЕТАМИ.     '
 
                db      ' ААА ГРОМАДНЫЙ ПРИВЕТ ПО ОПРЕДЕЛЕНИЮ,' 
 
                db      ' БОЛЬШУЩИЙ РЕСПЕКТ MOLODCOV_ALEX (МОЛОДЦОВ АЛЕКСАНДР) ЗА ЭМУЛЯТОР.'
 
                db      ' ПРИВЕТ ВЛАДЕЛЬЦАМ КАРТЫ "ZXM-SOUNDCARD". НАЗОВЕМ ИХ ПОИМЕННО: AAA, PIROXILIN И КИРЛИАН.'
 
                db      ' ПРИВЕТ ТАКЖЕ ВСЕМ СПЕКТРУМИСТАМ, БЫВШИМ, НАСТОЯЩИМ И ВОЗМОЖНО БУДУЩИМ.'
 
                db      ' НУ ВСЕ, ПОРА ЗАВЕРШАТЬ ИБО НЕ ОСОБО СИЛЕН В ПОЭЗИИ :).'
 
                db      ' ПОРА ПРОЩАТЬСЯ. ПОКА, ПОКА.......                   '
 
                db      '            MAY *2010*    GRAPHICS AND CODE BY MICK         '
 
                db      ' АХ ДА, СОВСЕМ ЗАБЫЛ - ОТКРЫЛСЯ САЙТ WWW.MICKLAB.NAROD.RU ТАМ МОЖНО НАЙТИ ПОСЛЕДНЮЮ ИНФОРМАЦИЮ'
 
                db      ' ПО МОИМ ПРОЕКТАМ. СВЯЗАТСЯ СО МНОЙ МОЖНО ЧЕРЕЗ САЙТ WWW.ZX.PK.RU - НИКНЕЙМ MICK, ТАКЖЕ ЧЕРЕЗ'
 
                db      ' МЫЛО MICKLAB@MAIL.RU НУ ТЕПЕРЬ ВСЕ, ДО ВСТРЕЧИ'
 
                db      '                                             ',0                       
 
Str_addr_font:
 
                incbin "font.fnt"
 
 
 
;               .end