;--------------------------------------------------------------------
 
; Описание: Бегущая строка
 
; Автор порта: Тарасов М.Н.(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
 
                xor     a
 
                ld      (Str_count_bit),a
 
                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
 
                ret     
 
 
 
Str_update_symbol:
 
                ld      de,Str_symbol_buf
 
                ld      hl,5577h
 
                ld      c, 7
 
                ld      b, 8
 
Str_updating:
 
                ld      a, (de)
 
                rlca
 
                ld      (de), a
 
                inc     de
 
                push    hl
 
                push    af
 
                rl      (hl)
 
                call    Str_line_down
 
                pop     af
 
                rl      (hl)
 
                dec     l
 
                push    af
 
                rl      (hl)
 
                call    Str_line_down
 
                pop     af
 
                rl      (hl)
 
                dec     l
 
                push    af
 
                rl      (hl)
 
                call    Str_line_down
 
                pop     af
 
                rl      (hl)
 
                dec     l
 
                push    af
 
                rl      (hl)
 
                call    Str_line_down
 
                pop     af
 
                rl      (hl)
 
                dec     l
 
                push    af
 
                rl      (hl)
 
                call    Str_line_down
 
                pop     af
 
                rl      (hl)
 
                dec     l
 
                push    af
 
                rl      (hl)
 
                call    Str_line_down
 
                pop     af
 
                rl      (hl)
 
                dec     l
 
                push    af
 
                rl      (hl)
 
                call    Str_line_down
 
                pop     af
 
                rl      (hl)
 
                dec     l
 
                push    af
 
                rl      (hl)
 
                call    Str_line_down
 
                pop     af
 
                rl      (hl)
 
                dec     l
 
                push    af
 
                rl      (hl)
 
                call    Str_line_down
 
                pop     af
 
                rl      (hl)
 
                dec     l
 
                push    af
 
                rl      (hl)
 
                call    Str_line_up
 
                pop     af
 
                rl      (hl)
 
                dec     l
 
                push    af
 
                rl      (hl)
 
                call    Str_line_up
 
                pop     af
 
                rl      (hl)
 
                dec     l
 
                push    af
 
                rl      (hl)
 
                call    Str_line_up
 
                pop     af
 
                rl      (hl)
 
                dec     l
 
                push    af
 
                rl      (hl)
 
                call    Str_line_up
 
                pop     af
 
                rl      (hl)
 
                dec     l
 
                push    af
 
                rl      (hl)
 
                call    Str_line_up
 
                pop     af
 
                rl      (hl)
 
                dec     l
 
                push    af
 
                rl      (hl)
 
                call    Str_line_up
 
                pop     af
 
                rl      (hl)
 
                dec     l
 
                push    af
 
                rl      (hl)
 
                call    Str_line_up
 
                pop     af
 
                rl      (hl)
 
                dec     l
 
                push    af
 
                rl      (hl)
 
                call    Str_line_up
 
                pop     af
 
                rl      (hl)
 
                dec     l
 
                push    af
 
                rl      (hl)
 
                call    Str_line_up
 
                pop     af
 
                rl      (hl)
 
                pop     hl
 
                call    Str_line_down
 
                call    Str_line_down
 
                dec     b
 
                jp      nz, Str_updating
 
                ld      a,(Str_count_bit)
 
                dec     a
 
                ld      (Str_count_bit),a
 
                ret     
 
;-------------------------------------------------------------------
 
; описание: Переход на одну строку вниз
 
; параметры: нет                    
 
; возвращаемое  значение: нет
 
;---------------------------------------------------------------------
 
Str_line_down:
 
                inc     h
 
                ld      a, h
 
                and     7
 
                ret     nz
 
                ld      a, l
 
                sub     0E0h ; 'р'
 
                ld      l, a
 
                sbc     a, a
 
                and     0F8h ; '°'
 
                add     a, h
 
                ld      h, a
 
                ret     
 
;-------------------------------------------------------------------
 
; описание: Переход на одну строку вверх
 
; параметры: нет
 
; возвращаемое  значение: нет
 
;---------------------------------------------------------------------
 
Str_line_up:
 
                ld      a, h
 
                dec     h
 
                and     7
 
                ret     nz
 
                ld      a, l
 
                add     a, 0E0h ; 'р'
 
                ld      l, a
 
                sbc     a, a
 
                and     8
 
                add     a, h
 
                ld      h, a
 
                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      ' ПОСЕТИЛА ОЧЕРЕДНАЯ ГЕНИАЛЬНАЯ ИДЕЯ О НОВОМ ВЫПУСКЕ. НО ЧТОБЫ ДОБАВИТЬ'
 
                db      ' ВЕСОМОСТИ СВОИМ АРГУМЕНТАМ, ПРИВЛЕК ЕЩЕ И СВОЮ ГРУППИРОВКУ В ЛИЦЕ VNN И'
 
                db      ' TIBOH. И ЧТОБЫ Я НЕ УСПЕЛ ОПОМНИТСЯ, ААА НАКИДАЛ МАТЕРИАЛ НА МЫЛО. И НАПОМНИЛ,'
 
                db      ' ЧТО МУЗЫКА ДОЛЖНА БЫТЬ ОТ ГРУППЫ ESI. ТУТ СТАЛО ПОНЯТНО, ЧТО'
 
                db      ' СОПРОТИВЛЕНИЕ БЕСПОЛЕЗНО. СЕЛ ЗА КОМП И ДАВАЙ ВЫДИРАТЬ МУЗОН ИЗ ДЕМОК'
 
                db      ' И ИГРУШЕК С SAM COUPE. НЕМНОГО ПОКОДИЛ. И ВОТ РЕЗУЛЬТАТ - СЕДЬМОЙ ВЫПУСК'
 
                db      ' ДЕМО ПРОГРАММЫ "E-TUNES". ЗДЕСЬ СОБРАНО 26 МУЗЫКАЛЬНЫХ КОМПОЗИЦИЙ СОЗДАННЫХ'
 
                db      ' НЕ В РЕДАКТОРЕ E-TRACKER, А В РЕДАКТОРЕ, ИЗВЕСТНОМ ТОЛЬКО ГРУППЕ ESI.'
 
                db      ' ИТОГО 24 КОМПОЗИЦИЙ ОТ ГРУППЫ ESI И 2 КОМПОЗИЦИИ БОНУСОМ ПРИЦЕПИЛ.'
 
                db      ' ПРОСЛУШАТЬ МУЗЫКУ МОЖНО  ЧЕРЕЗ ЗВУКОВУЮ КАРТУ "ZXM-SOUNDCARD" ИЛИ В ЭМУЛЯТОРЕ "UNREAL SPECCY",'
 
                db      ' ПРОПАТЧЕННЫЙ МОЛОДЦОВЫМ АЛЕКСАНДРОМ.' 
 
                db      ' НЕМНОГО ОБ УПРАВЛЕНИИ. ПЕРЕХОД К СЛЕДУЮЩЕМУ ПРОИЗВЕДЕНИЮ ОСУЩЕСТВЛЯЕТСЯ ПРИ ПОМОЩИ КЛАВИШИ'
 
                db      ' "SPACE", ВЫХОД В TR-DOS ПРИ ПОМОЩИ КЛАВИШИ "BREAK"'
 
                db      ' О ПРОГРАММЕ: В ОБЩЕМ, МАТЕРИАЛ  ПРЕДОСТАВИЛ ААА, Я ЕГО НЕМНОГО ПОДПРАВИЛ ДЛЯ'
 
                db      ' НУЖД ПРОИЗВОДСТВА И СОБРАЛ ВОЕДИНО. ВСЕ ЭТО СОБИРАЛОСЬ НА РС ПРИ ПОМОЩИ АССЕМБЛЕРА  SJASMPLUS.'
 
                db      ' КСТАТИ ДАННАЯ ПРОГРАММА ПРЕДНАЗНАЧЕНА ДЛЯ КОМПЬЮТЕРОВ С ПАМЯТЬЮ ОЗУ БОЛЬШЕ 128КБ,'
 
                db      ' НАПРИМЕР  "ZXM-PHOENIX 1024".'
 
                db      '             ТЕПЕРЬ САМАЯ ГЛАВНАЯ ЧАСТЬ СКРОЛЛА - СПАСИБЫ!       '
 
                db      ' TIBOH - СПАСИБО ЗА СКРОЛЛ, VNN - СПАСИБО ЗА ВЫНУТЫЙ ТОБОЙ АНАЛИЗАТОР ИЗ ПРОГРАММЫ  "GUM BOOTS", '
 
                db      ' СПАСИБО АВТОРУ ПРОГРАММЫ "GUM BOOTS" - MAXWELL/JURASSIC SOFTWARE, СПАСИБО АТЭК CREATIVE GROUP'
 
                db      ' ЗА КАРТИНКУ ТАК И НЕ ВЫШЕДШЕЙ ГАЗЕТЫ "ПИОНЕР 4". NEWART - СПАСИБО ЗА ПЕРЕДАННУЮ ААА НЕРЕЛИЖЕННУЮ'
 
                db      ' ГРАФИКУ, ААА - СПАСИБО ЗА ПОДГОТОВЛЕННУЮ КАРТИНКУ И ТЕКСТ СПАСИБОК ДЛЯ ЭТОГО СКРОЛЛА.'
 
                db      ' НАГРАДОЙ ЗА ВСЕ ВАШИ ТРУДЫ ПУСТЬ БУДЕТ ЭТОТ'
 
                db      ' ВЫПУСК "E-TUNES" С ПРЕКРАСНОЙ МУЗЫКОЙ ОТ ИЗВЕСТНОЙ ВСЕМ ПОЛЬСКОЙ ГРУППЫ - ESI.'     
 
                db      ' ОТДЕЛЬНАЯ ГРОМАДНАЯ БЛАГОДАРНОСТЬ ГРУППЕ ESI ИЗ ГОРОДА ТОРУНЬ(ПОЛЬША) И В ЧАСТНОСТИ МУЗЫКАНТУ ГРУППЫ -'
 
                db      ' ZIUTEK (ANDRZEJ SIUDA), МУЗЫКА КОТОРОГО ЗВУЧИТ В ЭТОМ ВЫПУСКЕ.             '
 
                db      ' НУ И МАЛОСТЬ ТРАДИЦИОННЫХ ПРИВЕТОВ!     ААА ГРОМАДНЫЙ ПРИВЕТИЩЕ, ОЧЕРЕДНОЙ РАЗ ТЫ ДЕЛАЕШЬ ЧУДО.' 
 
                db      ' БОЛЬШУЩИЙ РЕСПЕКТ MOLODCOV_ALEX (МОЛОДЦОВ АЛЕКСАНДР) ЗА ЭМУЛЯТОР.'
 
                db      ' ПРИВЕТ ВЛАДЕЛЬЦАМ КАРТЫ "ZXM-SOUNDCARD". НАЗОВЕМ ИХ ПОИМЕННО: AAA, PIROXILIN, КИРЛИАН И LUZANOV.'
 
                db      ' ВСЕМ ФЕНИКСОВОДАМ ОТДЕЛЬНЫЙ ПРИВЕТИК.'
 
                db      ' ПРИВЕТ ТАКЖЕ ВСЕМ СПЕКТРУМИСТАМ, БЫВШИМ, НАСТОЯЩИМ И ВОЗМОЖНО БУДУЩИМ.'
 
                db      ' НУ ВСЕ, ПОРА ЗАВЕРШАТЬ. НАДО МАЛОСТЬ ПЕРЕДОХНУТЬ, А ТО ЗА МЕСЯЦ ЧЕТЫРЕ ТЮНЕСА, ПОРА И МЕРУ ЗНАТЬ :)'
 
                db      ' ТЕМ БОЛЕЕ НАДО ВЕРНУТЬСЯ К ЖЕЛЕЗНЫМ ПРОЕКТАМ, КОТОРЫЕ Я ЕЩЕ НЕ ЗАКОНЧИЛ.   '
 
                db      ' КАПЕЛЬКА РЕКЛАМЫ - ПОСЕЩАЕМ САЙТ WWW.MICKLAB.NAROD.RU ТАМ МОЖНО НАЙТИ ПОСЛЕДНЮЮ ИНФОРМАЦИЮ'
 
                db      ' ПО МОИМ ПРОЕКТАМ. СВЯЗАТСЯ СО МНОЙ МОЖНО ЧЕРЕЗ САЙТ WWW.ZX.PK.RU - НИКНЕЙМ MICK ИЛИ ЧЕРЕЗ МЫЛО'
 
                db      ' MICKLAB@MAIL.RU    '
 
                db      ' ПОРА ПРОЩАТЬСЯ. ДО НОВЫХ ТЮНЕСОВ. ПОКА, ПОКА.......                   '
 
                db      '            JUNE *2010*    GRAPHICS BY ААА,   CODE BY MICK         '
 
                db      '                                       ',0                     
 
Str_addr_font:
 
                incbin "font.fnt"
 
 
 
;               .end