ZX Review #3-4
22 июля 1997
  Обзор  

Новые программы - И.Рощин. HELP_Z80. В.Давыдов. Catalog's Base v1.8.

<b>Новые программы</b> -  И.Рощин. HELP_Z80. В.Давыдов. Catalog's Base v1.8.
┌──────────────────────────────┐
│                              │
│       НОВЫЕ ПРОГРАММЫ        │
│                              │
└──────────────────────────────┘

(c) Иван Рощин, г.Москва.

           HELP_Z80

   Эта не имеющая аналогов прог-
рамма  представляет  собой элек-
тронный  справочник по  командам
микропроцессора  Z80.  С ее  по-
мощью можно  узнать мнемонику (и
ее смысл), кодировку, влияние на
флаги  и  время  выполнения  для
каждой   команды  процессора,  а
также другую  полезную  информа-
цию. HELP содержит описание 1136
команд, в том числе и недокумен-
тированных, занимает всего 9 ки-
лобайт и может  работать  на  ZX
SPECTRUM  с объемом памяти от 48
до 512K.

 Краткое описание возможностей:

   - так  же, как  и  популярный
отладчик STS, HELP  может  нахо-
диться  в любой странице  памяти
по адресам  #DB00-#FFFF, поэтому
его можно использовать совместно
с  любым ассемблером.  При своей 
работе  HELP  не портит значение
ни одной ячейки памяти, исключая 
самого себя и  экранную область. 
Таким образом, он  полностью ав-
тономен.
   - информацию о командах  про-
цессора можно просматривать, как
обычный текст.  С помощью  имею-
щихся средств поиска легко  най-
ти сведения об определенной  ко-
манде или узнать, как  расшифро-
вывается ее мнемоника.
   - можно записать всю информа-
цию на диск  в  виде  нескольких
текстовых файлов  общим  объемом
более 66K (например, для  после-
дующей печати).
   - имеются средства для  взаи-
модействия с  ассемблером/отлад-
чиком: например, Вы  пишете  или
отлаживаете программу, и при на-
жатии  определенной   комбинации
клавиш на экране появляется  ок-
но со справочной информацией  по
команде, на которой  стоит  кур-
сор. В описании приводятся  под-
робные инструкции о внесении из-
менений в  отладчик  STS  (любой
версии) для реализации этой воз-
можности.

P.S. Существует   версия    этой
     программы,  содержащая  ин-
     формацию о командах процес-
     сора  6502.  Ее  можно  ис-
     пользовать совместно  с ас-
     семблером TASM 4 by RST7.

1
2
********************************

(c) В.Давыдов,
с.Запрудное Нижегородской обл.

      CATALOG'S BASE v.1.8.

    1. НАЗНАЧЕНИЕ ПРОГРАММЫ.

    Программа предназначена  для
создания  картотек  программного
обеспечения на дисках OS TR-DOS.
Скорость создания картотеки  оп-
ределяется,  в  основном, време-
нем, необходимым для смены диска
в накопителе.
    Позволяет быстро определить,
на каком диске находится та  или
иная  программа,  если  хотя  бы
что-то известно о ее названии.
    Объем буфера данных около 30
Кб, что позвояет включить в  од-
ну  базу  данных  информацию   о
250-300 дисках  (2500-3000  фай-
лов).
    Данные сохраняются на  диске
в виде кодового  файла  перемен-
ной длины.
    Поддерживаются      операции
сравнения и объединения баз дан-
ных.
    Возможен вывод информации на
принтер любого типа.

    2. АППАРАТНЫЕ ТРЕБОВАНИЯ.

    SPECTRUM-совместимый компью-
тер с объемом памяти 48 Кб и вы-
ше. Программа не использует нес-
тандартных обращений к  ПЗУ  TR-
DOS  и  будет  работать с  любой
версией TR-DOS.

     СОВМЕСТИМОСТЬ С ДРУГИМИ
          ПРОГРАММАМИ.

    Первоначально  данная  прог-
рамма писалась как набор  проце-
дур, облегчающих  работу с прог-
раммой DDB 2.0, автор S.O.Kupri-
yanov, (c) 1991 г.,  практически
единственной из аналогичных в то
время (1994 г.).  Поэтому струк-
тура данных полностью совпадает,
и можно загружать и обрабатывать
файл  bdate2.0, созданный  прог-
раммой DDB2.

       3. ОБРАБОТКА ОШИБОК.

    При возникновении  ошибочных
ситуаций  печатается  содержимое
системной   переменной    ERR_NR
(23610),  и  выполнение  текущей
операции прерывается.
    При некоторых типичных ошиб-
ках  вместо  ERR_NR   печатается
текст, приблизительно  описываю-
щий характер ошибки.
    При загрузке файлов их стру-
ктура проверяется, и при несоот-
ветствии загрузка не производит-
ся.  Имеющаяся в памяти информа-
ция при этом не уничтожается.

    4. УПРАВЛЕНИЕ ПРОГРАММОЙ.

    SINCLAIR, CURSOR, QAOP - пе-
ремещение по меню.
    0, SPACE, ENTER - выбор пун-
кта меню.
    EDIT (CAPS+1)  -  прерывание
выполняемой операции или переход
к другому меню.
    При  всех  запросах  нажатие
клавиши "Y" принимается за  под-
тверждение, любой другой  клави-
ши - за отказ от операции.

           5. МЕНЮ.

    В версии 1.8 имеется три ме-
ню, войти  в которые  можно  или
выбором соответствующего пункта,
или нажатием клавиши EDIT(CS+1).

  5.1. МЕНЮ ДИСКОВЫХ ОПЕРАЦИЙ.

    Появляется сразу после  заг-
рузки программы. Состоит из сле-
дующих пунктов:

"ПОИСК" - переход в меню поиска.

"РЕДАКТИРОВАНИЕ" - меню редакти-
рования.

"Смена типа файла" - для файлов,
           создаваемых  програм-
           мой, я  выбрал расши-
           рение  "b", так  как,
           во-первых, оно  имеет
           что-то  общее со сло-
           вами BASIC PROGRAM, а
           во-вторых,    я    не
           встречал его ни у од-
           ной программы. Если у
           Вас   файлы  с  таким
           расширением  имеются,
           то можете, во избежа-
           ние путаницы, сменить
           его на любое другое.

"Выбор дисковода"  - A, B, C, D.
           Если далеко  тянуться
           до  нужной   клавиши,
           можете понажимать  на
           любые   другие,   при
           вводе    используются
           только  два   младших
           бита. Завершение вво-
           да - ENTER.

"Каталог диска" - выполняет  ко-
           манду "CAT" TR-DOS.

"Сравнение диска и базы"  - диск
           в  текущем накопителе
           (BASIC - программы  и
           MAGIC-файлы)  сравни-
           вается  с  базой дан-
           ных,  находящейся   в
           ОЗУ компьютера. Печа-
           тается  номер вхожде-
           ния, имя файла и, ес-
           ли  файл с таким име-
           нем найден,имя диска.

"Добавление  диска"  -  информа-
           ция о  BASIC-програм-
           мах  и MAGIC - файлах
           диска в текущем  дис-
           ководе добавляется  в
           конец  базы   данных,
           причем дисков  с сов-
           падающими именами мо-
           жет быть неограничен-
           ное количество.  Если
           имя добавляемого дис-
           ка обнаружено в  базе
           данных,     выводится
           запрос на  разрешение
           добавления диска. При
           утвердительном  отве-
           те задается вопрос  о
           необходимости  удале-
           ния  дисков,  имеющих
           то же имя. При  отка-
           зе от добавления  вы-
           полняется    операция
           сравнения диска и ба-
           зы.

"Загрузка  базы"  -  с  текущего
           дисковода  загружает-
           ся  ранее  записанный
           файл. При  отсутствии
           файла  на  диске  или
           нажатии на ENTER  без
           ввода имени  выводит-
           ся  список  имеющихся
           на диске файлов.  При
           загрузке имеющаяся  в
           памяти информация  не
           уничтожается,     что
           позволяет  объединять
           базы данных. Поэтому,
           если  Вы  хотите  на-
           чать работать  с  но-
           вой базой данных, вы-
           берите в меню  редак-
           тирования    операцию
           "Очистка базы".

"Запись базы" - база данных  бу-
           дет сохранена в файле
           с введенным именем.

"Сравнение баз" - позволяет  уп-
           ростить процесс обме-
           на  программами.  Так
           как  мне кажется, что
           практический  интерес
           представляют   только
           различия между  база-
           ми, печатаются  имена
           файлов из базы, нахо-
           дящейся на диске, ко-
           торые  не  найдены  в
           базе,  загруженной  в
           память.  При  большом
           количестве   совпаде-
           ний  на  экран   до-
           вольно  долго   может
           ничего не  выводиться
           при периодическом об-
           ращении к  дисководу.
           Не пугайтесь и не тя-
           нитесь  к кнопке "RE-
           SET".

"Включить (выключить) принтер" -
           переключение  устрой-
           ства вывода  информа-
           ции.  При   включении
           принтера   информация
           выводится на  принтер
           в том же формате, что
           и на экран.

     5.2. МЕНЮ РЕДАКТИРОВАНИЯ.

"ПОИСК",
"ДИСКОВЫЕ ОПЕРАЦИИ"  - переход к
           другому меню.

"Имена дисков" - выводятся имена
           дисков,  включенных в
           базу, и информация  о
           количестве  свободных
           секторов на них. Если
           количество  свободных
           секторов     выглядит
           странно,  значит,   у
           диска  изуродован 9-й
           сектор нулевой дорож-
           ки, и его  пора  вос-
           станавливать.

"Удаление  диска"  -  при  вводе
           вместо  имени   можно
           использовать подстро-
           ку для  поиска.  Вер-
           хний и нижний  регис-
           тры  не  различаются.
           При нажатии на  ENTER
           без ввода имени  бу-
           дут распечатаны  име-
           на дисков.  Для  всех
           дисков,  имена  кото-
           рых удовлетворяют ус-
           ловию поиска, выдает-
           ся запрос  на  удале-
           ние диска из базы.

"Информация о базе" - количество
           файлов, дисков  и ос-
           таток свободного мес-
           та в памяти.  Печата-
           ется также при выпол-
           нении     большинства
           операций с базой дан-
           ных. В следующих вер-
           сиях этой функции  не
           будет. Введу постоян-
           но  отображаемое  ин-
           формационное окно.

"Сортировка файлов" - после  вы-
           полнения этой  опера-
           ции при  печати  дис-
           ков имена  файлов  на
           них будут  выводиться
           в алфавитном порядке.
           Вернуться к  исходно-
           му  расположению  не-
           возможно.

"Сортировка дисков" - при добав-
           лении нового  диска к
           базе информация о нем
           располагается в конце
           базы. Данная операция
           позволяет упорядочить
           базу по именам дисков
           в алфавитном порядке.
           При   большом  объеме
           базы  процесс   может
           заметно   затянуться,
           поэтому, чтобы не ка-
           залось, что компьютер
           завис,  буфер  сорти-
           ровки я расположил  в
           экранной области  па-
           мяти, и при  проведе-
           нии сортировки на эк-
           ране  будут   изобра-
           жаться    мельтешащие
           полосы. Не очень  эс-
           тетично,  но   печать
           того, сколько  отсор-
           тировано  и   сколько
           нет, скорость  сорти-
           ровки   замедлит  еще
           больше.

"Очистка  базы" - удаление  всей
           информации из памяти.

"Включить (выключить) принтер" -
           переключение  устрой-
           ства  вывода информа-
           ции.

    5.3. МЕНЮ ОПЕРАЦИЙ ПОИСКА.

"Печать файлов" - выводится  вся
           база данных  в  алфа-
           витном  порядке    по
           именам файлов в  фор-
           мате:  имя файла, за-
           тем имя диска, на ко-
           тором этот файл нахо-
           дится.

"Печать дисков" - выводится  со-
           держимое всех дисков,
           включенных   в   базу
           данных.

"Поиск файла" - позволяет  опре-
           делить диск, на кото-
           ром находится требуе-
           мый  файл.   Запраши-
           вается  образец   для
           поиска.  Верхний    и
           нижний  регистры   не
           учитываются, то  есть
           по образцу  war могут
           быть  найдены   файлы
           "WAR GAME","Star War" 
           и т.п. Если при вводе
           образца нажать  ENTER 
           в  пустой строке, вы-
           полняется    операция
           "печать файлов".

"Поиск диска" - по тому же прин-
           ципу выводится содер-
           жимое  дисков,  имена
           которых удовлетворяют
           требуемому   условию.
           Если при вводе образ-
           ца  нажать  ENTER   в
           пустой строке, выпол-
           няется операция  "пе-
           чать дисков".

"Имена дисков" - выводятся имена
           дисков,  имеющихся  в
           базе,  и   количество
           свободных секторов на
           них.

"РЕДАКТИРОВАНИЕ",
"ДИСКОВЫЕ ОПЕРАЦИИ" - переход  к
           другому меню.

"Включить (выключить) принтер" -
           переключение  устрой-
           ства  вывода информа-
           ции.

     6. ДРАЙВЕР ПРИНТЕРА.

    Структура драйвера  и  точки
входа аналогичны  драйверу  тек-
стового редактора "ZX-WORD". Ес-
ли он у Вас есть, можете исполь-
зовать, а если нет, то разработ-
ку  собственного  драйвера, воз-
можно, облегчит приведенный ниже  
пример  драйвера  принтера  "EP-
SON", подключенного через интер-
фейс "ZX-LPRINT III".  Только не 
забудьте  предусмотреть контроль 
"BREAK" и установку флага  пере-
носа при нажатии "BREAK" в  ава-
рийных ситуациях печатаюшего ус-
тройства, иначе программа риску-
ет   зависнуть   при   случайном
"включении"  принтера, физически
не подключенного к компьютеру.

   Точки входа:
      #5B00  - процедура инициа-
               лизации;
      #5B03  - процедура печати.

   Максимальная  длина  драйвера
256 байт.

  Структура драйвера:
140.
#5B00     NOP
#5B01     JR   INIT ;точка входа
                    ;ZX-WORD
#5B03     PRINT
2
INIT -  подпрограмма инициализа-
     ции, выполняющая все подго-
     товительные  действия   для
     того, чтобы  принтер  начал
     печать в альтернативной ко-
     дировке.  На этот адрес пе-
     редается управление при вы-
     полнении операции "Включить 
     принтер".

PRINT - передача на принтер сим-
     вола, код которого находит-
     ся в аккумуляторе.

   Драйверу передаются следующие
коды:
  - последовательность #0D, #0A-
возврат каретки  и перевод стро-
ки.  На всех принтерах, описания
которых  я видел, те же коды ис-
пользуются для вывода  на печать
внутреннего буфера принтера. Ес-
ли же у Вас для  этого использу-
ется  другой  код, добавьте  его
при  составлении  таблицы  пере-
кодировки.
  - #20..#7E - коды  специальных
символов  и  латинских  букв   в
стандарте  ASCII, что  совпадает
со знакогенератором SPECTRUM.
  - #80..#9F - А, Б, В, Г, Д, Е,
Ж...Ю, Я - большие русские буквы
в алфавитном порядке.
  - #A0..#AF - а, б, в, г, д, е,
ж... о, п - малые русские буквы.
  - #E0..EF - р, с, т... э, ю, я
- малые русские буквы.

    Не только  у  меня, но  и  в
EDITORe они тоже отсутствуют. (В
ZX-WORD  они  есть, но  набирать
текст в нем не так удобно  из-за
его 64-х символьности). Это бук-
вы, которые очень похожи  на  Е,
е, только  с двумя точками свер-
ху.
    Кодировка русских букв  взя-
та из программы ZX-WORD.

 6.1. ПРИМЕР ДРАЙВЕРА ПРИНТЕРА
      "EPSON", ПОДКЛЮЧЕННОГО К
      ПАРАЛЛЕЛЬНОМУ ИНТЕРФЕЙСУ
      "ZX-LPRINT III".
148.
 ORG    #5B00
        NOP
        JR     INIT
 PRINT  LD     C,A
 BUSY   CALL   #1F54 ; контроль "BREAK"
        JR     C,PRN
        SCF
        RET
 PRN    IN     A,(#7B)
        BIT    7,A     ; проверка готовности
        JR     NZ,BUSY ; принтера
        LD     A,C
        OUT    (#FB),A ; установка шины
                       ; данных
        OUT    (#7B),A ; начало импульса
                       ; STROBE
        OUT    (#FB),A ; конец STROBE

; Для  своего  принтера мне пришлось поставить замедляющие циклы
; перед началом и концом STROBE, иначе нарушается синхронизация,
; хотя  в  програмном  обеспечении  ZX-LPRINT III сделано именно
; так.

        XOR     A ; Сброс флага переноса
        RET
INIT    LD      A,#1B ; сброс печатающего
        CALL    PRINT ; устройства. (коды
        LD      A,#40 ; взяты из описания
        JR      PRINT ;3 EPSON LX-800)
2
    6.2. ПРИМЕР СОСТАВЛЕНИЯ
     ТАБЛИЦЫ ПЕРЕКОДИРОВКИ.

    И еще  пример  перекодировки
для драйвера абстрактного  прин-
тера, имеющего произвольную таб-
лицу кодов.  Написан  для  очень
начинающих   программистов.  Ос-
тальные могут не читать.

   Между комментариями типа

         ;  ---------v-N
         ;  ---------^-N

заключены  фрагменты  программы,
применяющиеся в конкретных усло-
виях, зависящих от типа  принте-
ра, которые в остальных  случаях
нужно исключить.
140.
        ORG     #5B00

START   JP      INIT
PRINT   CP      #20 ;
        JR      NC,C_20_7F ; печатный
;                            символ
;  -------------------v-1
        CP      #0D
        JR      NZ,EXIT
; если принтер включен в режиме автоперевода строки
; (пропуск #0A)
;  -------------------v-2
       LD      A,CR ; вместо CR - код возврата каретки
;  Этот фрагмент для нереального случая, когда принтер имеет
; отличный от общепринятого код возврата каретки.
;   ------------------v-2.1
       CALL    PRN_A
       LD      A,LF ; вместо LF - код пе-
                    ; ревода строки (если
                    ; требуется)
;   ------------------^-2.1
;  -------------------^-2
        JR     PRN_A ; вывод байта из ак-
;                    кумулятора на принтер
;  -------------------^-1
EXIT    XOR     A ; сброс флага переноса
        RET

C_20_7F CP      #80
        JR      NC,C_80_AF
;  -------------------v-3
        LD      HL,TABL1-#20
        LD      E,A
        LD      D,0
        ADD     HL,DE
        LD      A,(HL)
;   тоже маловероятный случай, когда у принтера полное
; несовпадение со стандартом ASCII
;  -------------------^-3
        JR      PRN_A
C_80_AF CP      #E0
        JR      C,SEARCH
        SUB     #30
SEARCH  LD      HL,TABL2-#80
        LD      E,A
        LD      D,0
        ADD     HL,DE
        LD      A,(HL)
;  -------------------v-4
        PUSH    AF
        CALL    RUS ;
        POP     AF
;  Если требуется передать принтеру последовательность кодов
; для включения русского шрифта.
;   ------------------^-4
        CALL    PRN_A
;   ------------------v-5
        CALL    LAT
; Восстановление знакогенератора латинского шрифта.
;   ------------------^-5
        RET
PRN_A  ;  Подпрограмма передачи принтеру кода из регистра A.
; Зависит от способа подключения принтера, поэтому написать
; что-то универсальное невозможно. Один из примеров приведен
; в предыдущем разделе.
;
INIT  ;  Подпрограмма инициализации принтера. Зависит от типа
; принтера и способа его подключения.

;   ------------------v-6
RUS    LD      A,CR_1
       CALL    PRN_A
       LD      A,CR_2
       CALL    PRN_A
;      .............
;      .............
       LD      A,CR_N
       JR      PRN_A
;  Подпрограмма  переключения принтера на русский шрифт. CR_1,
; CR_2, ... CR_N - это последовательность управляющих кодов для
; переключения знакогенератора. Подставите нужные числа.
;   ------------------^-6
;   ------------------v-7
LAT    LD      A,CL_1
       CALL    PRN_A
       LD      A,CL_2
       CALL    PRN_A
;      .............
       LD      A,CL_N
       JR      PRN_A
; Подпрограмма переключения принтера на латинский шрифт. CL_1,
; CL_2, ... CL_N - это последовательность управляющих кодов для
; переключения знакогенератора.
;   -----------------^-7
;   -----------------v-8
TABL1   DEFB   ...   ;  95 байт - таблица кодов принтера,
; соответствующих знакогенератору ZX-SPECTRUM с кодами #20, #21,
; ... #7E. Необходимость в ней вряд ли у кого появится.
;   -----------------^-8
;   -----------------v-9
TABL_2   DEFB   ...   ;64  байтa - таблица кодов принтера,
; соответствующих русским буквам А, Б, В, Г, Д, Е, Ж, З, ... Э,
; Ю, Я, а, б, в, г, д, е, ж, ... я.
;  ------------------^-92

   P.S. Текст набран в редакторе
ZX/IBM  Text Editor ver 1.0  (c) 
Hohlov Oleg, отформатирован  ZX-
WORD v 2.5m (c) Yeliseyev, Koku-
nov.
    Для программы HELP использо-
ван TEXT DESIGNER v 1.0 (c) Пля-
сунов Дмитрий.
    Начертание  символов  латин-
ского  алфавита заимствовано  из
ZX-ASM 3.
    Музыка   написана    группой
Smash Soft (приложение к  демон-
страции "DISCOMANIA").
    При разработке программы по-
заимствованы некоторые  процеду-
ры. Для печати  символами  двой-
ной высоты использована процеду-
ра, описанная  в  ZX-РЕВЮ  95/2,
стр. 40  (c)  Михаил  Бульканов.
Для выделения  окна  при  печати
меню  используется    процедура,
аналогичная  описанной  в  книге
издательства "Питер"  "Как напи-
сать  игру  на ассемблере".  Ос-
тальные  совпадения  с  машинным
кодом других программ случайны.




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

TR-DOS для начинающих - Часть 1.

Авторская разработка - General Sound - мультимедиа для ZX Spectrum!

Визитная карточка - Представляем новый электронный журнал "Major Wares" (c) Codebusters & V.M.G.

Компьютерная новелла - Knight Lore "Преданья рыцарских времен".

Новые программы - И.Рощин. HELP_Z80. В.Давыдов. Catalog's Base v1.8.

Описание оболочки журнала "ZX-РЕВЮ"

Перекресток драконов - Aavlon, Castle of Dreams, Erik the Viking.

Перекресток драконов - Eureka!, Eye of Bain, Kentilla.

Перекресток - Sherlock, Apollo, Shadows of Mordor, Rigels Revenge, Temple of Terror, ID, That's the Spirit, Return to Ithaka.

Ретро - Дж.Хардман, Э.Хьюзон. 40 лучших процедур.

Советы экспертов - Castle Master.

Советы экспертов - Firelord.

Советы экспертов - Stonkers.

Форум-игры - Insult Megademo, Catch 23, Livingstone, Rock Star ate my Hampster, НЛО-2: Дьяволы Бездны, Terminator 2, Venturama, The Spririts, Nipper, Sweewo'S World, King's Bounti-2, Hacker 2, Black Magic, Satcom, Звёздное Наследие.

Форум - А.Гура. Кодекс программиста.

Форум - А.Стрельников. Перспективы развития ZX Spectrum.

Форум - В.Давыдов. По материалам, опубликованным в ZX-РЕВЮ: Некоторые вопросы, связанные с автостартом Бейсик-программ. Redefine Keys. Процедура печати 42 символов в строке. Процедура умножения HL=B*C. Доработка посекторных загрузчиков. Мини-драйвер дисковых операций.

Форум - Группа 'Light'. Музыкальный процессор для ZX-Speccy.

Форум - Д.Федоров: Печать картинки с маской с точностью до пиксела. Алгоритм расчета адреса по координатам с точностью до пиксела.

Форум - И.Рощин. Совместное использование ZX ASM 3.0 и STS 5.1.

Форум - М.Бекарев. Расчет адреса экранной области по знакоместу и наоборот.

Форум - П.Федин. Доработка Profi для бесконфликтного подключения периферии.

Форум - С.Астров. Генератор псевдослучайных чисел.

Читатель-читателю - В.Сироткин. Защита программ (взгляд на проблему).

Читатель-читателю - И.Рощин. Драйвер экрана для компьютера "Пентагон-128".

Этюды - А.Савинов: Процедура вывода на экран символов двойной высоты. Процедура "растворения" символов.

Этюды - А.Уржа. Процедура рисования окружности.

Этюды - В.Сироткин. Программа подсчета контрольной суммы.

Этюды - Е.Волчков. Улучшение подпрограммы вычисления адреса в дисплейном файле.

Этюды - Е.Мороз. Бегущая строчка.

Этюды - И.Командин. Программа проявления экрана.

Этюды - И.Рощин. Два графических эффекта.

Этюды - М.Лазутов: Программа модернизации шрифта. Программа кодирования/декодирования блока кодов. Эффект с атрибутами.

Этюды - О.Смолянкин: Процедуры очистки экрана. Вывод текстовых сообщений на экран.


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

Похожие статьи:
Белый попугай - Агент 008.
От авторов - На создание кассетно-дискового журнала нас вдохновило то, что на родине SPECTRUM'а количество таких изданий исчисляется десятками...
Что-где-почем - Пpедставляю вам очеpедную поpцию пpогpамм от VEL'a/PXM.

В этот день...   22 января