ZX Review #7-8-9-10
08 ноября 1997

Читатель-читателю - ZX Spectrum 128 - новые возможности, новые проблемы.

(c) В.Сироткин

         SPECTRUM 128 -
       НОВЫЕ ВОЗМОЖНОСТИ,
         НОВЫЕ ПРОБЛЕМЫ

   Дальнейшим  развитием  'СПЕК-
ТРУМ'а стала  модель  с  объемом
памяти  128  килобайт.  Так  как
процессор Z-80 является 8-и раз-
рядным  процессором, и  адресное
пространство у него физически не
может простираться выше значения
#FFFF (65535), то расширение па-
мяти компьютера было сделано  по
методу  перекрытия  16-килобайт-
ных страниц памяти в верхних ад-
ресах компьютера.
   Пользователь получил  в  свое
распоряжение 8  страниц  памяти,
которые он мог по желанию перек-
лючать в любой момент времени.
   Основное  же  адресное  прос-
транство компьютера осталось для
пользователя как бы без  видимых
изменений.
   Наличие 128 килобайт  еще  не
означало, что для Спектрума ста-
ло  возможно  писать   программы
длиною больше, чем 48  килобайт,
но если программу  разбивали  на
части и загружали их по частям в
дополнительные  страницы  ОЗУ, а
потом  в  определенные   моменты
времени вызывали  эти  страницы,
то, естественно, создавалась ил-
люзия огромного  рабочего  прос-
транства компьютера  (такой  ме-
тод работы называется ОВЕРЛЕЕМ).
   128 килобайт позволили  пере-
вести многие программы (у  кото-
рых были подгружаемые уровни или
многостадийная,   многоуровневая
загрузка) в режим: "загрузка  за
один раз - все сразу".
   Владельцы  Спектрума-128,  ко
всему прочему, стали обладателя-
ми мощного редактора  для  ввода
программ на языке Бейсик  и, что
самое главное, в компьютере поя-
вился  музыкальный  процессор, с
помощью которого  звуковые  воз-
можности  Спектрума  увеличились
на несколько порядков.

      РАСПРЕДЕЛЕНИЕ ПАМЯТИ

   Итак, у вас появился СПЕКТРУМ
128. Появилось неоспоримое преи-
мущество - наличие  дополнитель-
ной памяти, но одновременно поя-
вилось и множество проблем...  А
как всем этим управлять???
   С точки зрения адресного про-
странства -  все  осталось  так,
как и в  старом  компьютере.  По
тем  же  адресам  экран, систем-
ные переменные и все  остальное.
Правда, теперь у  вас  появилась
еще одна область системных пере-
менных для режима 128 и располо-
жена эта область с адреса  #5B00
(23296)  (да, да, да,  в  буфере
принтера. И не дай Бог, если при
включенном режиме 128 ваши игро-
вые или системные программы  ис-
пользуют буфер принтера - нарве-
тесь на  неприятности!!!  А  так
как очень многие программы СПЕК-
ТРУМа-48 используют эту область, 
то для  их  нормального  запуска
необходимо или выходить из режи-
ма 128 Кб в режим 48 Кб, или пе-
ределывать программы).
   Память  ОЗУ  компьютера  (так
же, как и в старом)  простирает-
ся с #4000 до #FFFF. Верхняя об-
ласть ОЗУ - с адреса #C000 и  до
конца - называется оверлейной, и
вот в эту-то область как  раз  и
может  включаться  любая  из   8
страниц  ОЗУ  (естественно, лишь
одна!)
   Сразу после включения компью-
тера  в  эту  область   включена
страница 0.
   За всем  остальным  простран-
ством ОЗУ компьютера ЖЕСТКО  за-
креплены  следующие  страницы: с
#4000 до #7FFF - страница  5,  с
#8000 до #BFFF - страница 2.
   Из всего  этого  следует, что
можно получить ситуацию, когда в
рабочем пространстве  компьютера
одновременно по  разным  адресам
будет:

1) страница 5 - и с адреса #4000
   (жестко)  и  с  адреса  #C000
   (оверлей)

ИЛИ !
2) страница 2 - и с адреса #8000
   (жестко)  и  с  адреса  #C000
   (оверлей)

ИЛИ !
3) страница 7 - и с адреса #4000
   (замещение)  и с адреса #C000
   (оверлей)

   Дополнительные    возможности
предоставляет  страница  7  (или
дополнительное  видео-ОЗУ).  Эта
страница может замещать  страни-
цу 5  (основное  видео-ОЗУ), что
дает богатую пищу  для  програм-
мных трюков с выводом видеоизоб-
ражения.
   Необходимо  только   помнить,
что все системные процедуры  пе-
чати, вывода графики  и  т.п.  в
любом случае работают  со  стра-
ницей 5, т.е. с основным  видео-
ОЗУ!
   Для  того, чтобы  работать  с
дополнительным  видео-ОЗУ, стра-
ницу  7  впечатывают  с   адреса
#C000, строят (или загружают) по
этим адресам  видеоинформацию, а
затем включают страницу 7  вмес-
то страницы 5, и все, что было с
адреса #C000, мгновенно проявит-
ся на экране (с  адреса  #4000).
Распределение адресов  экрана  в
7-й странице в этом случае будет
таким:

пикселы экрана с #C000 до #D7FF
                (49152)  (55295)

атрибуты (цвет) с #D800 до #DAFF
                 (55296) (56063)

   Все переключения страниц ОЗУ,
а также переключение ПЗУ-48/ПЗУ-
128 и режим ЗАЩЕЛКА 48Кб возмож-
ны через системный порт с  адре-
сом:

          #7FFD (32765)

   Соответственно, командой  OUT
32765,xx можно управлять  конфи-
гурацией компьютера.  Ниже  дана
раскладка битов этого порта:

                  СИСТЕМНЫЙ ПОРТ #7FFD (32765)

       ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
       │  7  │  6  │  5  │  4  │  3  │  2  │  1  │  0  │
       │     │     │     │     │     │     │     │     │
       └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
                      ^     ^    ^     ^     ^     ^
                      │     │    │     └─────┴─────┘
                      │     │    │     Номер страницы ОЗУ
                      │     │    │      с адреса #C000
                   Защелка  │    │
                   48 Кб    │    └─- Страница Видео-ОЗУ
                            │         0 - рабочая (5-я)
                            │         1 - дополнительная
                            │                  (7-я)
                            │
                            └──── 0 - ПЗУ 128 Кб
                                  1 - ПЗУ 48 Кб

   6 и 7 биты в Спектруме-128 не
используются.  Могут применяться
для расширения ОЗУ компьютера до
512 Кбайт.
   Правила работы в системе  128
Кб и с  системным  портом  #7FFD
(32765).
   Если вы работаете с системным
портом  из  БЕЙСИКа-128, то  вам
необходимо помнить, что:

 - перед  переключением  страниц
   ОЗУ желательна команда  CLEAR
   32767, чтобы не сбить систем-
   ный стек.

 - прежде, чем  занести  байт  в
   системный  порт,  он   должен
   дублироваться  в    системной
   ячейке BANK_M с адресом #5B5C
   (23388)

 - управлять переключением стра-
   ниц из  Бейсика  можно  путем
   занесения байта  в  системную
   ячейку BANK_M (подавать  байт
   в порт в этом случае не  нуж-
   но).

 - если для своих нужд вы перек-
   лючились  на   дополнительное
   ВИДЕО-ОЗУ, то при  выходе  из
   вашей программы система авто-
   матически активизирует ОСНОВ-
   НОЕ видео-ОЗУ.

 - при включении 7-й страницы на
   экран (вместо 5-й) 7-я  стра-
   ница может оставаться на  эк-
   ране при любых других  перек-
   лючениях страниц ОЗУ.

 - занесение информации в допол-
   нительное видео-ОЗУ  (7 стра-
   ница) возможно только  тогда,
   когда она включена  с  адреса
   #C000.

 - если вы из Бейсика  вызываете
   процедуру, написанную  в  ко-
   дах, которая работает с  сис-
   темным портом, то первой  ко-
   мандой этой процедуры  должна
   быть  команда  'DI' -  запрет
   прерывания.

 - так как все  команды  Бейсика
   автоматически  включают    на
   время своей работы бит 4 сис-
   темного порта, т.е.  включают
   ПЗУ 48 Кб, то при  работе  из
   Бейсика  с  системным  портом
   или с переменной  BANK_M  же-
   лательно принудительно  вклю-
   чать бит 4 (значит, байт опе-
   рации по  переключению  стра-
   ниц ОЗУ  должен  быть  суммой
   числа #10 (16) с нужным  бай-
   том).  При  окончании  работы
   вашей Бейсик-программы систе-
   ма сама активизирует ПЗУ-128.

 - если вы запускаете  программу
   (неважно, с ленты или с  дис-
   ка), которая ранее работала в
   Спектруме-48, смотрите, чтобы
   во время загрузки  не  запор-
   тился  буфер  принтера, иначе
   система зависнет.

 - если  у  вас  программа,  на-
   писанная  в  машкодах,  после
   старта не  собирается  больше
   выходить в Бейсик, то все вы-
   шеперечисленные правила  нео-
   бязательны  (с условием, если
   эта программа  написана  гра-
   мотно).

   Бейсик-128 почти ничем не от-
личается  от  Бейсика-48,  разве
что мощным экранным  редактором,
да тем, что операторы надо наби-
рать побуквенно (что очень  сни-
жает скорость  набора  программ,
да и возможность  набора  цвето-
вых атрибутов в строке Бейсика у
этого редактора отсутствует).
   По  сути,  ПЗУ-128  постоянно
обращается к ПЗУ-48 за  процеду-
рами выполнения  Бейсик-програм-
мы. В самом ПЗУ-128 почти ничего
интересного  нет:  программа-ре-
дактор, процедуры, обслуживающие
музыкальный процессор по  опера-
тору 'PLAY', да программа  рабо-
ты с виртуальным диском  (опера-
торы CAT!, SAVE!, LOAD!, MERGE!,
ERASE!)
   Тем, кто спит и видит, как бы
покопаться в ПЗУ-128 - совет:  в
ПЗУ-128 нельзя войти ни отладчи-
ками, ни  дизассемблерами.  Даже
на диск и ленту простыми  спосо-
бами ее не запишешь.
   Выход  один - написать  прос-
тенькую программу в  кодах  типа
этой и запустить ее из  Бейсика-
128:
140.
          org ????     ; область запуска
start     di           ; запретим прерывания
          ld a,0       ; байт для системного порта
          ld bc,#7ffd  ; системный порт
          out (c),a    ; ВКЛЮЧИМ ПЗУ-3128
          ld hl,0      ; и теперь перекинем
          ld bc,#3fff  ; все содержимое ПЗУ
          ld de,3#????  ; в свободное место
          ldir
          ei           ; разрешим прерывание
          ret          ; выйдем
2
   Перекинув содержимое  ПЗУ-128
в свободное место ОЗУ, можно те-
перь  оттуда  сохранить  его  на
диск или ленту.
   Кто  выписывал  или   покупал
журналы ZX РЕВЮ за прошлые годы,
тот может узнать много  интерес-
ного о СПЕКТРУМЕ-128...  Ну нап-
ример:

 - как выходить в  Бейсик-48  из
   режима  128, не  останавливая
   программу и сохраняя  возмож-
   ность  переключать   страницы
   ОЗУ и возвращаться обратно;   

 - как  работать  с  виртуальным
   диском  методом  "канального"
   управления;

 - что можно выжать  из  систем-
   ных переменных 128К и многое,
   многое другое.

   Нас  же,  в  первую  очередь,
должен волновать вопрос: "А  как
обстоят дела с  дисковой  систе-
мой?"  А точно так же, как  и  в
старом компьютере! Только появи-
лось  огромное  преимущество   -
есть куда загружать  файлы, есть
много свободного места под прог-
раммы  работы  с  диском.   Знай
только переключай страницы ОЗУ.
   Все это так, но как только  у
вас  программа  пойдет  по  пути
загрузки  через   дополнительные
страницы ОЗУ, так сразу же може-
те забыть о своих приятелях, ко-
торые еще не  смогли  приобрести
Спектрум-128 и  работают  на  48
килобайтах.
   Нормальным выходом  из  такой
ситуации является метод настрой-
ки  программы   на   архитектуру
компьютера.    Если    компьютер
'128-й' - включается  одна  под-
программа, и  загрузка  происхо-
дит через дополнительные страни-
цы ОЗУ  (включается фоновая  му-
зыка для музпроцессора  и  т.д.)
Если же компьютер '48-й', то все
происходит  по-другому   (пример
такой настройки - это такие  ши-
роко  известные  программы,  как
"RICK DANGEROUS 2", "SNOW.STREA-
KER", системная оболочка "CONVER
COMMANDER" Ковалевского и  много
других).

   Программно  определять  архи-
тектуру компьютера можно  разны-
ми путями:

 - сканировать  область   буфера
   принтера на наличие системных
   переменных для '128-го';

 - попытаться 'включить' ПЗУ-128
   и считать из него информацию;

 - записать информацию в адрес с
   #C000, а потом, подав в  сис-
   темный порт  байт  переключе-
   ния страниц  ОЗУ, проанализи-
   ровать - произошло  ли  пере-
   ключение.

   Но если вы выбрали  путь  для
своей программы  "только 128 ки-
лобайт"  (а таких  программ  уже
достаточно много), то хотя бы  в
заставке   программы   выводите:
"128 ONLY".
   А теперь поговорим о "МАГИК"-
файлах в свете имеющихся 128 ки-
лобайт.
   Если вы сбрасываете  програм-
му, которая  не  использует  до-
полнительные страницы ОЗУ, то  в
этом случае МАГИК-сброс ничем не
отличается от МАГИКА-48. Если же
программа, которую вы сбрасывае-
те, использовала  дополнительные
страницы ОЗУ, то наряду с основ-
ным файлом @, на диске образовы-
ваются файлы с  именами  @0, @1,
@2, @3, @4, @5, @6, @7 по номеру
страницы.  Не  все,  конечно,  а
только те страницы, которые  бы-
ли  задействованы  в   программе
(т.е. те, в которых была  какая-
то информация на момент сброса).
   Эти файлы всегда имеют  длину
#4000 (16384) и стартовый  адрес
#C000 (49152).  Также  сбрасыва-
ется файл  с  именем  '@8' - это
файл, который содержит  страницу
дополнительного видео-ОЗУ.
   Основной файл с именем  '@' -
это рабочая область компьютера с
адреса #4000  по  #FFFF  (как  в
обычном МАГИК-файле).
   Запустить МАГИК-сборку  прос-
той командой "GO TO" уже не  по-
лучится. Для запуска  вам  будет
необходимо   сначала   загрузить
файлы в соответствующие  страни-
цы, а потом уже командой "GO TO"
запускать основной файл.
   Предположим, что после  нажа-
тия МАГИКа у вас на диске  обра-
зовались следующие файлы:

       @  - основной файл
       @1 - 1-я страница
       @7 - 7-я страницa

   Тогда в Бейсике запуск МАГИК-
сборки  может  иметь   следующий
вид:

10 CLEAR 32767
20 POKE 23388,7+16
       (включим страницу 7 и основное ПЗУ)
30 RANDOMIZE USR 15619:REM:LOAD "@7" CODE
       (загрузим страницу 7)
20 POKE 23388,1+16
       (включим страницу 1 и основное ПЗУ)
30 RANDOMIZE USR 15619:REM:LOAD "@1" CODE
       (загрузим страницу 1)
20 POKE 23388,16
       (включим страницу 0 и основное ПЗУ)
30 RANDOMIZE USR 15619:REM: GOTO "@" CODE
       (загрузим и запустим основной файл)

   Все файлы МАГИК-сборки  можно
переименовать и дать  им  другие
имена, не  забывая, конечно, ка-
кой файл какой странице ОЗУ при-
надлежит. И, естественно, не за-
бывайте, что программа, работаю-
щая во  втором  прерывании, дол-
жна  иметь  в  имени   основного
МАГИК-файла первый символ '$'!

   И в заключение приведем  таб-
лицу всех  системных  переменных
"128-го" компьютера.

        Системные переменные Sinclair ZX Spectrum 128
  ┌──────┬───────┬───────────┬──────────────────────────────┐
  │ HEX  │  DEC  │ len/name  │         НАЗНАЧЕНИЕ           │
  ├──────┼───────┼───────────┼──────────────────────────────┤
  │ 5B00 │ 23296 │ 20 SWAP   │  Страничная подпрограмма     │
  │ 5B14 │ 23316 │ 9 AYOUNGER│  Страничная подпрограмма     │
  │ 5B1D │ 23325 │ 18 ONERR  │  Страничная подпрограмма     │
  │ 5B2F │ 23343 │ 5 PIN     │  Подпрограмма ввода RS232    │
  │ 5B54 │ 23348 │ 22 POUT   │  Подпрограмма вывода метки   │
  │      │       │           │                       RS232  │
  │      │       │           │  Можно применить для обхода  │
  │      │       │           │   фильтра кода управления    │
  │ 5B4A │ 23370 │ 14 POUT2  │  Подпрограмма вывода символа │
  │      │       │           │                       RS232  │
  │ 5B58 │ 23384 │ 2 TARGET  │  Адрес подпрограммы в ПЗУ-1  │
  │ 5B5A │ 23386 │ 2 RETADR  │  Адрес возврата в ПЗУ-0      │
  │ 5B5C │ 23388 │ 1 BANKM   │  Копия последнего байта      │
  │      │       │           │   вывода в банк              │
  │ 5B5D │ 23389 │ 1 RAMRST  │  Команда RST 8               │
  │ 5B5E │ 23390 │ 1 RAMERR  │  Номер ошибки ПЗУ-1          │
  │ 5B5F │ 23391 │ 2 BAUD    │  RS232: период бита в        │
  │      │       │           │         Т-состоянии/26       │
  │ 5B61 │ 23393 │ 2 SEREL   │  Флаг возврата 2-го символа  │
  │      │       │           │   и данные                   │
  │ 5B63 │ 23395 │ 1 COL     │  Текущий столбец от 1 до     │
  │      │       │           │   ширины                     │
  │ 5B64 │ 23396 │ 1 WIDTH   │  Ширина столбца бумаги       │
  │ 5B65 │ 23397 │ 1 TVPARS  │  Число параметров в строке,  │
  │      │       │           │   ожидаемое RS232            │
  │ 5B66 │ 23398 │ 1 FLAGS3  │  Различные флаги             │
  │ 5B67 │ 23399 │ 10 NSTR1  │  Имя файла                   │
  │ 5B71 │ 23409 │ 1 HD00    │  Код типа файла              │
  │ 5B72 │ 23410 │ 2 HD0B    │  Длина блока                 │
  │ 5B74 │ 23412 │ 2 HD0D    │  Начало блока                │
  │ 5B76 │ 23414 │ 2 HD0F    │  Длина программы             │
  │ 5B78 │ 23416 │ 2 HD11    │  Номер строки                │
  │ 5B7A │ 23418 │ 1 SC00    │  Второй набор - код типа     │
  │      │       │           │                    файла     │
  │ 5B7B │ 23419 │ 2 SC08    │  Второй набор - длина блока  │
  │ 5B7D │ 23421 │ 2 SC0D    │  Второй набор - начало блока │
  │ 5B7F │ 23423 │ 2 SC0F    │  Второй набор - длина        │
  │      │       │           │                  программы   │
  │ 5B81 │ 23425 │ 2 OLDSP   │  Старое SP, когда использу-  │
  │      │       │           │    ется T TACK               │
  │ 5B83 │ 23427 │ 2 SFNEXT  │  Указатель на первый пустой  │
  │      │       │           │   вход справочника           │
  │ 5B85 │ 23429 │ 3 SPSPACE │  Число оставленных байтов    │
  │      │       │           │                   (17 бит)   │
  │ 5B88 │ 23432 │ 1 ROW01   │  Флаги планшета и образ      │
  │      │       │           │   ряда 1                     │
  │ 5B89 │ 23433 │ 1 ROW23   │  Образы строк 2 и 3 клавиа-  │
  │      │       │           │   туры                       │
  │ 5B8A │ 23434 │ 1 ROW45   │  Ряды 4 и 5 клавиатуры       │
  │ 5B8B │ 23435 │ 2 SYNRET  │  Адрес возврата для ONERR    │
  │ 5B8D │ 23437 │ 5 LASTV   │  Последнее значение, напеча- │
  │      │       │           │  танное калькулятором        │
  │ 5B92 │ 23442 │ 2 RNLINE  │  Текущая запомненная строка  │
  │ 5B94 │ 23444 │ 2 RNFIRST │  Номер строки начала для     │
  │      │       │           │   RENUMBER                   │
  │ 5B96 │ 23446 │ 2 RNSTEP  │  Величина приращения для     │
  │      │       │           │   RENUMBER                   │
  │ 5B98 │ 23448 │ 8 STRIP1  │  Карта бит полосы 1          │
  │ 5BA0 │ 23456 │ 8 STRIP2  │  Карта бит полосы 2          │
  │ 5BFF │ 23551 │XX TSTASK  │  Временный стек растет       │
  │      │       │           │   отсюда вниз                │
  └──────┴───────┴───────────┴──────────────────────────────┘

           *   *   *




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

TR-DOS для начинающих - Окончание.

Компьютерная новелла - Prince of Persia.

Компьютерная новелла - Лазерная бригада (по игре Laser Squad).

Перекресток драконов - Игра Rapscallion.

Перекресток драконов - Игра The Runes of Zendos.

Перекресток драконов - Игра The Saga.

Перекресток драконов - Игра Witch's Cauldron.

Перекресток драконов - Создаём Адвентюру. Обзор редакторов.

Перекресток драконов - Создаём словарь к Адвентюрной игре.

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

Программы, которые мы выбираем - О замеченных шероховатостях в работе некоторых программ и пожелания к следующим версиям.

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

Программы, которые мы выбираем - Несколько предложений по усовершенствованию ассемблера.

Программы, которые мы выбираем - Предложения по доработке ZX Word v2.5.

Программы, которые мы выбираем - Программа "Эмулятор Спектрума" v1.2.

Программы, которые мы выбираем - Что хотелось бы иметь в идеальном ассемблере.

Ретро - 40 лучших процедур: Копирование данных в памяти.

Ретро - 40 лучших процедур: Обмен токена.

Ретро - 40 лучших процедур: Определение адреса БЕЙСИК-строки.

Ретро - 40 лучших процедур: Определение длины БЕЙСИК-программы.

Ретро - 40 лучших процедур: Определение размера свободной памяти.

Ретро - 40 лучших процедур: Поиск и замещение строки.

Ретро - 40 лучших процедур: Поиск подстроки.

Ретро - 40 лучших процедур: Поиск строки.

Ретро - 40 лучших процедур: Составление списка переменных.

Ретро - 40 лучших процедур: увеличение и копирование экрана.

Ретро - 40 лучших процедур: Удаление REM-строк.

Ретро - 40 лучших процедур: Удаление блока программы.

Советы экспертов - Игра Fredloader.

Советы экспертов - Игра Robin of Sherwood: The Touchstones of Rhianon.

Советы экспертов - Игра Scorpions: Die Machines.

Советы экспертов - Игра Terropods.

Страничка iS-DOS - Описание рестартов системы IS DOS.

Форум - Алгоритм распознавания символов.

Форум - Время выполнения недокументированных команд процессора Z80.

Форум - Концепция экрана высокого цветового разрешения.

Форум - Несколько Pokes к играм. Программа Hacman96.

Форум - По поводу новых DOS и BIOS для Спектрума.

Форум - Программа Multicolor на любой модели компьютера. Использование 2-го экрана для Multicolor'а. Демонстрация текста. Электронные журналы.

Форум - Проект ZX Config.

Форум - Усовершенствование Art Studio. Идеи относительно компрессии файлов.

Форум - Эмулятор ZX Spectrum на IBM. По поводу шестнадцатеричной системы счисления. Программа ZX-Stars. Странности в Elita

Форум - Эффекты на бордюре и Multicolor.

Читатель-читателю - ZX Spectrum 128 - новые возможности, новые проблемы.

Читатель-читателю - Группа 'Light'. Спектрум и экспертная система.

Читатель-читателю - Драйвер принтера для Scorpion'а.

Читатель-читателю - Печать чисел в различных системах счисления.

Читатель-читателю - Программирование аркадной игры со скроллингом экрана.

Читатель-читателю - Процедура печати меток ассемблера XAS для монитора-отладчика STS 4.3.

Этюды - Атрибутная бегущая строка. "Гасилка" экрана. Упрощенный вариант процедуры "Занавес". Процедура гащения картинки. Процедура проявления картинки по точкам.

Этюды - Графический эффект "цветные полосы".

Этюды - Драйвер экрана для печати по 64 символа в строке.

Этюды - Комплект защит загрузчиков.

Этюды - Обращение к диску в режиме IM 2. Работа с диском нестандартного формата.

Этюды - Печать символа, увеличенного в 8 раз. Программа "наливания" экрана. Процедура гашения экрана по точкам. Очистка экрана как в Terminator'е. Поиск последовательности символов в памяти. Система перекодировки символьного набора.

Этюды - Программа - каталогизатор дисков.

Этюды - Программа вывода значений амплитуды каналов муз. сопроцессора на бордюр.

Этюды - Программа вывода картинки.

Этюды - Программа зажигания спрайта.

Этюды - Программа очистки заданного окна экрана.

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

Этюды - Процедура печати чисел.

Этюды - Процедура прорисовки символа с помощью атрибутов.

Этюды - Процедура проявления картинки. Fade-OUT эффект (картинка уходит за края экрана). Графический эффект "Фонтан". Fade-OUT эффект, имитирующий выключение телевизора. Процедура "зажигания" картинки. Программа плавной прорисовки картинки.

Этюды - Процедура рисования линии.

Этюды - Процедура составления оптимальной таблицы символов.

Этюды - Скроллинг строк текста в заданном окне. Атрибутный скроллер. Диагональный скроллинг.

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

Этюды - Укороченная процедура индикации амплитуды каналов муз. сопроцессора. Способ вычитания константы из регистровой пары HL.

Этюды - Формула для вычисления дня недели.


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

Похожие статьи:
Новости - Новый стандарт оформления писем. Список нодных адресов SPbZXNet.
Описание - Описание игры THRUST 2.
WANTED - Розыск программ...

В этот день...   14 декабря