;--------------------------------------------------------------------
 
; Описание: Бегущая строка
 
; Автор порта: Тарасов М.Н.(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
 
 
 
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
 
                xor     a
 
                ld      (Str_flg_width),a
 
                ret     
 
 
 
Str_update_symbol:
 
                ld      a,(Str_flg_width)
 
                and     a
 
                jr      z,Str_update_next
 
                xor     a
 
                ld      (Str_flg_width),a
 
                ret     
 
                
 
Str_update_next:
 
                ld      de, Str_symbol_buf
 
                ld      b,8
 
                ld      hl, 5075h
 
loc_0_9BA8:
 
                ld      c,0
 
                ld      a,(de)
 
                rlca
 
                ld      (de),a
 
                jr      nc,loc_0_9C03
 
                inc     c               
 
loc_0_9C03:
 
                ld      a,0FEh
 
                and     (hl)
 
                or      c
 
                ld      (hl),a
 
 
 
                inc     h   
 
                ld      a,h
 
                and     7
 
                jr      nz,Str_next_line_2
 
                ld      a,l
 
                add     a,20h
 
                ld      l,a
 
                jr      c,Str_next_line_2
 
                ld      a,h
 
                sub     8
 
                ld      h,a
 
Str_next_line_2:
 
                inc     h   
 
                ld      a,h
 
                and     7
 
                jr      nz,Str_next_line_3
 
                ld      a,l
 
                add     a,20h
 
                ld      l,a
 
                jr      c,Str_next_line_3
 
                ld      a,h
 
                sub     8
 
                ld      h,a
 
Str_next_line_3:
 
                inc     de
 
                djnz    loc_0_9BA8
 
                ld      a,(Str_count_bit)
 
                dec     a
 
                ld      (Str_count_bit),a
 
                ld      a,1
 
                ld      (Str_flg_width),a
 
                ret
 
 
 
Str_draw_symbol:
 
                ld      hl,5075h
 
                ld      b,8
 
 
 
Str_draw_line:
 
                push    hl
 
                and     a
 
                rl      (hl)
 
                dec     l
 
                rl      (hl)
 
                dec     l
 
                rl      (hl)
 
                dec     l
 
                rl      (hl)
 
                dec     l
 
                rl      (hl)
 
                dec     l
 
                rl      (hl)
 
                dec     l
 
                rl      (hl)
 
                dec     l
 
                rl      (hl)
 
                dec     l
 
                rl      (hl)
 
                dec     l
 
                rl      (hl)
 
                dec     l
 
                rl      (hl)
 
                dec     l
 
                rl      (hl)
 
                pop     hl
 
                inc     h
 
                ld      a,h
 
                and     7
 
                jr      nz,Str_next_line
 
                ld      a,l
 
                add     a,20h
 
                ld      l,a
 
                jr      c,Str_next_line
 
                ld      a,h
 
                sub     8
 
                ld      h,a
 
Str_next_line:
 
                inc     h
 
                ld      a,h
 
                and     7
 
                jr      nz,Str_next_line_1
 
                ld      a,l
 
                add     a,20h
 
                ld      l,a
 
                jr      c,Str_next_line_1
 
                ld      a,h
 
                sub     8
 
                ld      h,a
 
 
 
Str_next_line_1:
 
                djnz    Str_draw_line
 
                ret     
 
 
 
Str_symbol_buf:
 
                db      0,0,0,0,0,0,0,0
 
 
 
Str_flg_width:
 
                db      0
 
 
 
Str_flg_end:
 
                db      0
 
 
 
Str_count_bit:
 
                db      0
 
Str_addr_work:
 
                dw      0
 
 
 
Str_addr_load:
 
                db      '*LOAD*',0
 
Str_addr_text:
 
                db      '             ПРИВЕТ, ЭТО СНОВА С ВАМИ MICK!!!       '
 
                db      'ВОТ ВРОДЕ ЗАКОНЧИЛАСЬ ЖАРА, КОТОРАЯ ПРОДОЛЖАЛАСЬ ПОЧТИ ДВА МЕСЯЦА. ПОСКОЛЬКО В ЖАРУ У МЕНЯ' 
 
                db      ' ЖЕЛАНИЕ ШЕВЕЛИТЬ СЕРЫМ ВЕЩЕСТВОМ НИКАКОГО НЕ БЫЛО, ПОЭТОМУ НОВЫЙ ВЫПУСК ПРОГРАММЫ "E-TUNES"'
 
                db      ' ПОЯВИЛСЯ В КОНЦЕ ЛЕТА. ПО СЧЕТУ ОН УЖЕ ВОСЬМОЙ, КАКОЕ СОВПАДЕНИЕ - МЕСЯЦ АВГУСТ ТОЖЕ ВОСЬМОЙ.'
 
                db      ' НУ ЧТО ЖЕ, В ЭТОМ ВЫПУСКЕ МЫ ВЕРНУЛИСЬ ПОСЛЕ ЛИРИЧЕСКОГО ОТСТУПЛЕНИЯ СЕДЬМОГО ВЫПУСКА К'
 
                db      ' МЕЛОДИЯМ МУЗЫКАЛЬНОГО РЕДАКТОРА "E-TRACKER". ЕСТЕСТВЕННО МЕЛОДИИ РАЗНЫЕ, МОГУТ КОМУ ТО И НЕ'
 
                db      ' ПОНРАВИТСЯ. Я ИХ НЕ СОРТИРУЮ, А БЕРУ В ПОРЯДКЕ ОЧЕРЕДНОСТИ, ЧТОБЫ МОЖНО БЫЛО ОЗНАКОМИТСЯ СО'
 
                db      ' ВСЕМ ТВОРЧЕСТВОМ С КОМПЬЮТЕРА "SAM COUPE". ЕСТЕСТВЕННО КАК СМОГ НАПРЯЧЬ СВОЮ ФАНТАЗИЮ,'
 
                db      ' ТАК И СЛЕПИЛ. ПРОТОТИПОМ КАРТИНКИ ПОСЛУЖИЛА ШКУРКА ЭМУЛЯТОРА AY ПОД PC (AY EMUL).'
 
                db      ' ВРОДЕ БЫ НЕПЛОХО ВЫШЛО. НУ И ДОБАВИЛ НЕСКОЛЬКО ПРОСТЕНЬКИХ ЭФФЕКТОВ. НУ А ТЕПЕРЬ КАК ВСЕГДА.'
 
                db      ' ЭТОТ ВЫПУСК ВКЛЮЧАЕТ В СЕБЯ 40 МУЗЫКАЛЬНЫХ КОМПОЗИЦИЙ РАЗНОЙ ПРОДОЛЖИТЕЛЬНОСТИ.'
 
                db      ' НАПОМНЮ ЧТО ДАННЫЕ МУЗЫКАЛЬНЫЕ КОМПОЗИЦИИ СОЗДАНЫ В РЕДАКТОРЕ'
 
                db      ' "E-TRACKER" И ПОЗАИМСТВОВАНЫ С КОМПЬЮТЕРА "SAM COUPE".'
 
                db      ' ИТОГО УЖЕ НА СПЕККИ 240 КОМПОЗИЦИЙ ДОСТУПНЫХ ДЛЯ ПРОСЛУШИВАНИЯ.'
 
                db      ' ПРОСЛУШАТЬ МУЗЫКУ МОЖНО  ЧЕРЕЗ ЗВУКОВУЮ КАРТУ "ZXM-SOUNDCARD" ИЛИ В ЭМУЛЯТОРЕ "UNREAL SPECCY",'
 
                db      ' ПРОПАТЧЕННЫЙ МОЛОДЦОВЫМ АЛЕКСАНДРОМ.' 
 
                db      ' НЕМНОГО ОБ УПРАВЛЕНИИ. ПЕРЕХОД К СЛЕДУЮЩЕМУ ПРОИЗВЕДЕНИЮ ОСУЩЕСТВЛЯЕТСЯ ПРИ ПОМОЩИ КЛАВИШИ'
 
                db      ' "SPACE", ВЫХОД В TR-DOS ПРИ ПОМОЩИ КЛАВИШИ "BREAK"'
 
                db      ' О ПРОГРАММЕ: АЛГОРИТМ ПАДАЮЩИХ ЗВЕЗД ПОЗАИМСТВОВАН ИЗ ПРОГРАММЫ ZYX ZAX BOOT И НЕМНОГО ПОДПРАВЛЕН ДЛЯ'
 
                db      ' НУЖД ПРОИЗВОДСТВА, ОСТАЛЬНОЕ ВЗЯТО ИЗ ПРЕДЫДУЩИХ ВЫПУСКОВ "E-TUNES" ИЛИ ПРИДУМАНО.'
 
                db      ' ВСЕ ЭТО СОБИРАЛОСЬ НА РС ПРИ ПОМОЩИ АССЕМБЛЕРА  SJASMPLUS.'
 
                db      '           НА ОЧЕРЕДИ ИДУТ ПРИВЕТЫ!     '
 
                db      ' ААА ГРОМАДНЫЙ ПРИВЕТИЩЕ, КАК И ОБЕЩАЛ, НОВЫЙ ВЫПУСК К ПРИЕЗДУ ТВОЕГО ИЗ ОТПУСКА :)' 
 
                db      ' БОЛЬШУЩИЙ РЕСПЕКТ MOLODCOV_ALEX (МОЛОДЦОВ АЛЕКСАНДР) ЗА ЭМУЛЯТОР.'
 
                db      ' ПРИВЕТ ВЛАДЕЛЬЦАМ КАРТЫ "ZXM-SOUNDCARD". НАЗОВЕМ ИХ ПОИМЕННО: AAA, PIROXILIN, КИРЛИАН И LUZANOV.'
 
                db      ' ВСЕМ ФЕНИКСОИДАМ ОТДЕЛЬНЫЙ ПРИВЕТИК :).'
 
                db      ' ПРИВЕТ ТАКЖЕ ВСЕМ СПЕКТРУМИСТАМ, БЫВШИМ, НАСТОЯЩИМ И ВОЗМОЖНО БУДУЩИМ.'
 
                db      ' НУ И ПОСЛЕДНЯЯ ЧАСТЬ СЛОВОБЛУДИЯ.      '
 
                db      ' РЕКЛАМА И АНОНСЫ - ВЕДЕТСЯ ОТЛАДКА КОМПЬЮТЕРА "ZXM-PHOENIX 4096 TURBO" ИЛИ КАК ЕГО Я НАЗЫВАЮ'
 
                db      ' "ФЕНИКС 2". ЗАКОНЧЕНА РАЗВОДКА НОВОЙ РЕДАКЦИИ ЗВУКОВОЙ КАРТЫ "ZXM-SOUNDCARD" ДЛЯ ВЛАДЕЛЬЦЕВ'
 
                db      ' КОМПЬЮТЕРА-ПЛАТФОРМЫ "ZX-EVO". ВЕДЕТСЯ РАБОТА ПО ВИДЕОКАРТЕ "ZXM-VIDEOCARD" С ВИДЕОРЕЖИМАМ'
 
                db      ' КОМПЬЮТЕРА "ФЕНИКС 2". ОНА ПРЕДНАЗНАЧЕНА В ОСНОВНОМ ДЛЯ ВЛАДЕЛЬЦЕВ ПЕРВОГО ФЕНИКСА".  '
 
                db      ' НУ И НЕ ЗАБЫВАЕМ ПОСЕЩАТЬ САЙТ WWW.MICKLAB.NAROD.RU ТАМ МОЖНО НАЙТИ ПОСЛЕДНЮЮ ИНФОРМАЦИЮ'
 
                db      ' ПО МОИМ ПРОЕКТАМ. СВЯЗАТСЯ СО МНОЙ МОЖНО ЧЕРЕЗ САЙТ WWW.ZX.PK.RU - НИКНЕЙМ MICK ИЛИ ЧЕРЕЗ МЫЛО'
 
                db      ' MICKLAB@MAIL.RU    '
 
                db      ' ПОРА ПРОЩАТЬСЯ. ДО НОВЫХ ТЮНЕСОВ. ПОКА, ПОКА.......                   '
 
                db      '            AUGUST *2010*    GRAPHICS AND CODE BY MICK         '
 
                db      '                                             ',0                       
 
Str_addr_font:
 
                incbin "font.fnt"
 
 
 
;               .end