Speccy #03
31 декабря 1995

Программирование - Программа позволяющая производить смену изображения экрана в режиме 48К в виде вертикальных шторок с синхронным изменением цвета бордюра.

<b>Программирование</b> - Программа позволяющая производить смену изображения экрана в режиме  48К в виде вертикальных шторок с синхронным изменением цвета бордюра.
╒══════════════════════════════╕
│░░░░░  ПРОГРАММИРОВАНИЕ  ░░░░░│
╘══════════════════════════════╛

 Предлагаем    вашему   вниманию
программу   полученную  нами  от
Шабанова   Владимира.  Программа
позволяет производить смену изо-
бражения экрана в режиме  48К  в
виде вертикальных шторок с синх-
ронным изменением цвета бордюра.
Вы можете посмотреть этот  инте-
ресный  прием в описании к  игре
VINDICATOR, которое сделал  этот
же автор.
 Хотим    сразу    предупредить:
программа  довольно  сложная, но
мы думаем, что тот кто заинтере-
суется  этой процедурой сможет с
ней  разобраться и применить при
написании собственных программ.
Шабанов Владимир
────────────────

CLS    LD A,#08      ; ЗАНЕСЕНИЕ
                     ; ЧИСЛА   В
                     ;   СЧЕТЧИК
       LD (LAB7+1),A ;   НОМЕР 1
       LD A,#88      ; ЗАНЕСЕНИЕ
                     ;  ЧИСЛА  В
                     ;   СЧЕТЧИК
       LD (LAB11+1),A  ; НОМЕР 2
       LD HL,(VECTOR+1) ;  ВЗЯЛИ
                        ;   В HL
                       ; ПЕРЕХОД
                     ;ПО ВЕКТОРУ
       LD (SAVE_VECT),HL ;  ПРЕ-
                        ;РЫВАНИЙ
                       ;И СОХРА-
                          ; НИЛИ
       LD HL,PRER       ; ЗАДАЛИ
                    ; СВОЙ ПЕРЕ-
                    ; ХОД И ПОД-
       LD (VECTOR+1),HL ;СТАВИЛИ
                        ;  ЕГО В
                        ; ВЕКТОР
LAB1   HALT             ;СДЕЛАЛИ
                    ; ДВА ПРЕРЫ-
                    ;  ВАНИЯ ДЛЯ
       HALT         ;   ЗАКРАСКИ
                    ; БОРД. ВЫШЕ
                  ;И НИЖЕ ЭКРАНА
       LD A,(LAB11+1)    ; ВЗЯЛИ
                     ; ЧИСЛО ДЛЯ
                     ;СЧЕТЧИКА 2
       SUB #08       ; УМЕНЬШИЛИ
                        ; НА 08H
       LD (LAB11+1),A  ; ЗАНЕСЛИ
                       ; ОБРАТНО
       LD A,(LAB7+1)     ; ВЗЯЛИ
                     ; ЧИСЛО ДЛЯ
                    ; СЧЕТЧИКА 1
       ADD A,#04     ; ПРИБАВИЛИ
                           ; 04H
       CP #50         ; СРАВНИЛИ
                         ; С 50H
       JR Z,LAB2    ; ЕСЛИ РАВНО
                      ; ТО ВЫХОД
       LD (LAB7+1),A   ; ЗАНЕСЛИ
                         ; ЧИСЛО
                       ; ОБРАТНО
                     ; В СЧЕТЧИК
       CP #20         ; СРАВНИЛИ
                         ; С 20H
       JR C,LAB1   ; ЕСЛИ МЕНЬШЕ
                         ; ТО НА
                  ; НАЧАЛО ЦИКЛА
       SUB #20        ; ОТНИМАЕМ
                       ; 20H ДЛЯ
                     ; ВЫЧИЛЕНИЯ
       LD L,A        ; И ЗАНОСИМ
                    ;РЕЗУЛЬТАТ В
                             ; L
       LD H,#00     ; ОБНУЛЯЕМ H
       ADD HL,HL    ; И УМНОЖАЕМ
                    ; ПОЛУЧЕННОЕ
                         ; ЧИСЛО
       ADD HL,HL      ; НА 8 ДЛЯ
                    ; ВЫЧИСЛЕНИЯ
                        ; АДРЕСА
       ADD HL,HL       ; В ФАЙЛЕ
                     ; АТРИБУТОВ
                        ; ЭКРАНА
       LD DE,#5800  ;В DE НАЧАЛО
                         ; ФАИЛА
                     ; АТРИБУТОВ
       ADD HL,DE       ; СЛОЖИЛИ
                       ; HL И DE
       LD E,L          ; ЗАНЕСЛИ
                          ; В DE
                    ; ПОЛУЧЕННЫЙ
       LD D,H          ; АДРЕС И
       INC DE        ; УВЕЛИЧИЛИ
                      ; ЕГО НА 1
       LD (HL),#00     ; ЗАНОСИМ
                     ; ПО АДРЕСУ
                       ; HL НОЛЬ
       LD BC,#001F        ; В BC
                        ; ДЛИННА
                ; СТРОКИ МИНУС 1
       LDIR           ; ОЧИСТИЛИ
                      ; ЗНАКОРЯД
       LD A,(LAB7+1)
       NEG          ; ПРОИЗВОДИМ
                    ; ВЫЧИСЛЕНИЯ
       ADD A,#7C    ;ДЛЯ ОЧИСТКИ
       LD L,A       ;    НИЖНЕГО
       LD H,#00     ;  ЗНАКОРЯДА
       ADD HL,HL
       ADD HL,HL
       ADD HL,HL
       LD DE,#5800
       ADD HL,DE
       LD E,L
       LD D,H
       INC DE
       LD (HL),#00
       LD BC,#001F
       LDIR
       JR LAB1       ;  И ДЕЛАЕМ
                     ;   ПЕРЕХОД
                     ; НА НАЧАЛО
                     ;     ЦИКЛА
LAB2   LD A,#00      ;ОКРАШИВАЕМ
                     ;  БОРДЮР В
       OUT (#FE),A  ;ЧЕРНЫЙ ЦВЕТ
       LD HL,(SAVE_VECT)
               ; ВОССТАНАВЛИВАЕМ
               ; ВЕКТОР ПЕРЕХОДА
       LD (VECTOR+1),HL
                 ; ПО ПРЕРЫВАНИЮ
       RET          ;    ВОЗВРАТ
                    ; В ОСНОВНУЮ
                    ;  ПРОГРАММУ
FILL   LD A,#50         ; ДАННАЯ
                  ; ПОДПРОГРАММА
       LD (LAB7+1),A
                 ; ПРЕДНАЗНАЧЕНА
                           ; ДЛЯ
       LD A,#00     ; ЗАПОЛНЕНИЯ
                    ; АТРИБУТАМИ
       LD (LAB11+1),A
                   ; ОТ СЕРЕДИНЫ
                         ; ВВЕРХ
       LD HL,(VECTOR+1) ; И ВНИЗ
                    ; И ЯВЛЯЕТСЯ
       LD (SAVE_VECT),HL
                  ; МОДИФИКАЦИЕЙ
       LD HL,PRER ; ПОДПРОГРАММЫ
                           ; CLS
       LD (VECTOR+1),HL ; ДАННЫЙ
                        ; ПРИМЕР
                     ;  РАСЧИТАН
LAB3   HALT       ; НА РАБОТУ ПО
       HALT    ; ПРЕРЫВАНИЯМ IM2
       LD A,#04       ; НО МОЖНО
                      ;  СДЕЛАТЬ
       LD (LAB8+1),A     ; И БЕЗ
                    ; ПРЕРЫВАНИЙ
       LD A,(LAB11+1)     ; ЕСЛИ
                   ;KОМАНДЫ HALT
       ADD A,#08      ; ЗАМЕНИТЬ
                  ; НА CALL PRER
       LD (LAB11+1),A     ; А ПО
                     ; ВЫХОДУ ИЗ
                  ; ПОДПРОГРАММЫ
       LD A,(LAB7+1)      ; PRER
                ; УБРАТЬ КОМАНДУ
       SUB #04     ; ЕI И RETI А
                     ; ПОСТАВИТЬ
       CP #0C       ; ПРОСТО RET
       JR Z,LAB4
       LD (LAB7+1),А
       CP #20
       JR C,LAB3
       SUB #20
       LD L,A
       LD H,#00
       ADD HL,HL
       ADD HL,HL
       ADD HL,HL
       EX DE,HL
       LD HL,#5800
       ADD HL,DE
       EX DE,HL
       LD BC,SCR_ATTR
       ADD HL,BC
       LD BC,#0020
       LDIR
       LD A,(LAB7+1)
       NEG
       ADD A,#7C
       LD L,A
       LD H,#00
       ADD HL,HL
       ADD HL,HL
       ADD HL,HL
       EX DE,HL
       LD HL,#5800
       ADD HL,DE
       EX DE,HL
       LD BC,SCR_ATTR
       ADD HL,BC
       LD BC,#0020
       LDIR
       JR LAB3
LAB4   LD HL,(SAVE_VECT)
       LD (VECTOR+1),HL
       XOR A
       LD (LAB8+1),А
       LD A,BORDER
       OUT (#FE),A
       RET
PRER   PUSH AF
       PUSH BC
       PUSH DE
       PUSH HL
       EX (SP),HL
       EX (SP),HL
       LD A,UP_BORD   ;  ЗАНЕСТИ
                      ; В А ЦВЕТ
                      ;  ВЕРХНЕЙ
       OUT (#FE),A    ; ПОЛОВИНЫ
                      ;  БОРДЮРА
       LD A,#07
LAB5   LD B,#0F
LAB6   DJNZ LAB6
       AND #FF
       INC HL
       DEC A
       JP NZ,LAB5
LAB7   LD A,#10
LAB8   SUB #00
LAB9   LD B,#0F
LAB10  LD C,#07
       LD C,#07
       DJNZ LAB10
       AND #FF
       LD C,#07
       LD C,#07
       INC HL
       DEC A
       JP NZ,LAB9
LAB11  LD A,BORDER  ;  В А КАКИМ
                    ; ЦВЕТОМ БЫЛ
       OUT (#FE),A  ;     БОРДЮР
       LD A,#78
       OR A
       JR Z,LAB14
LAB12  LD B,#0F
LAB13  LD C,#07
       LD C,#07
       DJNZ LAB13
       AND #FF
       LD C,#07
       LD C,#07
       INC HL
       DEC A
       JP NZ,LAB12
LAB14  LD A,DOWN_BORD ;     ЦВЕТ
                      ;   НИЖНЕЙ
                      ; ПОЛОВИНЫ
       OUT (#FE),A    ;  БОРДЮРА
       LD A,#05
LAB15  LD B,#0F
LAB16  LD C,#07
       LD C,#07
       DJNZ LAB16
       AND #FF
       LD C,#07
       LD C,#07
       INC HL
       DEC A
       JP NZ,LAB15
       POP HL
       POP DE
       POP BC
       POP AF
       EI           ; ЕСЛИ НЕ НА
                ; ПРЕРЫВАНИЯХ ТО
       RETI     ; ЗДЕСЬ СТАВИТСЯ
                           ; RET
SAVE_VECT DEFW #0000         
КеБаймаков Ярослав
────────────────
( R.I.P. Corp. 1996 by DIEHARD )

ВНИМАНИЕ ! ВНИМАНИЕ ! ВНИМАНИЕ !
WARNING  ! WARNING  ! WARNING  !

 В СТАДИИ РАЗРАБОТКИ НАХОДИТСЯ
 ПЛАТА РАСШИРЕНИЯ ВОЗМОЖНОСТЕЙ
 ВАШЕГО КОМПЬЮТЕРА.

 В  плате  полностью расшиты все
основные    порта   : расширения
памяти, звукового  прозессора  и
клавиатуры  Правильно  подключен
AY-процессор  (можно считывать с
порта FFFD).

 Плата позволяет :

1. расширить память:
   - на РУ5 до 512 Кб
   - на РУ7 до 2048 Кб
2. отключать ПЗУ
 (на    ее    место   в   адреса
#0000..#3FFF    встает   нулевая
страницы памяти);
 3.    прямое    програмирование
контроллера  дисковода  ВГ93  из
любой  области памяти (не только
по точке входа #3D2F);
 4.  устанавливает экран в любое
место памяти через каждые 8КБ;
 5.  позволяет считать состояние
потров #7FFD и #DFFD;
 6.      возможна      установка
контроллера дисковода на  плату;
 7. возможна сегментация в адрес
#4000;

 После     подключения     платы
компьютер   становится   на  60%
совместимым  с PROFI (невозможен
только экран 512 на 240 точек).
 Просьба   прислать   заявки  на
изготовление  этой платы , а так
же   некоторые   соображения  по
поводу необходимости контроллера
на  этой  плате  и сегментации в
другие адреса по адресу редакции
журнала SPECCY.

              * * *



Другие статьи номера:

Авторская программа - Описание программы для просмотра файлов в формате ".GRF".

Игроскоп - Подсказки к играм : "Hobbit", "Звёздное наследие", "Extreme".

Игроскоп - Подсказки к играм : "Pegasus". Рейтинг программ на январь 1996 по городу Челябинску.

Музобоз - Описание трех конкурсных работ.

Мультролик - Первая работа на конкурс мультфильмов.

Наш город - О городе Челябинске.

Новелла - Фантастическая новелла по игре "Laser Squad" (продолжение).

От редакции - О новшествах в журнале.

Программирование - Программа позволяющая производить смену изображения экрана в режиме 48К в виде вертикальных шторок с синхронным изменением цвета бордюра.

Реклама - Реклама ...

Тусовка - Первые ласточки на конкурс : "Самый смешной анекдот на компьютерную тему.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Обзор - Вlаst Оff...
Мозаика - О принудительном включении защиты от записи на дисководе.
Приложение - Положение о всероссийском музыкальном конкурсе "Песни Сопротивления непокорённого народа".
pc life - компьютеры и здоровый сон.
Система - Oбзор системных новинок: FREE FORMAT v8.3, ALASM v2.8, OMEGA COMMANDER v1.5, PERFECT COMMANDER v1.52, F-COMMANDER v4.02, CHEMNEBASE v0.6, SPRITELAND v1.9, MAXSOFT SCREEN PACKERv1.0, ANIMICROPROTECTOR v1.0), MICRO EDITOR,DISK LEVEL, MAY BE MY BANK v5.1,AFRODITA v3.0, FLOOPY FORMAT UTILITY v1.0, DIGITAL STUDIO PLAYER v1.0, PRO TRACKER PLAYERv1.10, UNRECOGNIZED FORMATING OBJECT v1.1, ZX-WINWORD v1.0

В этот день...   17 февраля