Экранные эффекты - модификация символьного набора для получения оригинального стилизованного шрифта из игры Rockstar.

ZX Forum #04

            ROCKSTAR

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

   Листинг процедуры:
1420.
61B4  21003D   LD   HL,#3D00
61B7  118890   LD   DE,#9088
61BA  010003   LD   BC,#0300
61BD  EDB0     LDIR
61BF  218790   LD   HL,#9087
61C2  1E60     LD   E,#60
61C4  1D       DEC  E
61C5  0604     LD   B,#04
61C7  23       INC  HL
61C8  05       DEC  B
61C9  7E       LD   A,(HL)
61CA  4F       LD   C,A
61CB  0F       RRCA
61CC  B1       OR   C
61CD  77       LD   (HL),A
61CE  78       LD   A,B
61CF  FE00     CP   #00
61D1  C2C761   JP   NZ,#61C7
61D4  0604     LD   B,#04
61D6  23       INC  HL
61D7  05       DEC  B
61D8  7E       LD   A,(HL)
61D9  0F       RRCA
61DA  4F       LD   C,A
61DB  07       RLCA
61DC  07       RLCA
61DD  B1       OR   C
61DE  77       LD   (HL),A
61DF  78       LD   A,B
61E0  FE00     CP   #00
61E2  C2D661   JP   NZ,#61D6
61E5  7B       LD   A,E
61E6  FE00     CP   #00
61E8  C2C461   JP   NZ,#61C4
61EB  21888F   LD   HL,#8F88
61EE  22365C   LD   (#5C36),HL
61F1  C9       RET
2
   Старт процедуры происходит  с
адреса загрузки:  RANDOMIZE  USR
25012. Число в команде по  адре-
су 61B7H, задаваемое  в  регистр
DE, определяет адрес, в  котором
будет  происходить  формирование
стилизованного символьного набо-
ра - 9088H (37000). Вначале  сю-
да  перебрасывается   символьный
набор из ПЗУ. Если  Вы  захотите
изменить этот адрес, то  обрати-
те внимание, что надо заодно из-
менить и число в команде по  ад-
ресу  61BFH  -  оно  на  единицу
меньше, чем  начало  символьного
набора.
   Числовой параметр  в  команде
по адресу 61C2H определяет  чис-
ло символов, для  которых  будет
выполнено преобразование  -  96.
Модификация  верхней    половины
символа  происходит  с    адреса
61C5H по 61D1H, а нижней полови-
ны символа:  c  61D4H  по  61E2H
включительно.
   После того, как  формирование
нового символьного набора  будет
завершено, происходит переключе-
ние на него  системной  перемен-
ной  CHARS.  Вы можете, в  зави-
симости  от  конкретных  обстоя-
тельств,  исключить    изменение
CHARS, забив NOP-ами команду  по
адресу 61EEH.

   Для получения блока кодов  по
модификации  символьного  набора
можно  воспользоваться   Бейсик-
программой:

   1 READ ram: CLEAR ram: READ f
$: READ st: READ len: FOR a=st T
O st+len-1: READ b: POKE a,b: NE
XT a: SAVE f$CODE st,len
  10 DATA 25011,"ro1",25012,62
 100 DATA
033,000,061,017,136,144,001,000,
003,237,176,033,135,144,030,096,
029,006,004,035,005,126,079,015,
177,119,120,254,000,194,199,097
 110 DATA
006,004,035,005,126,015,079,007,
007,177,119,120,254,000,194,214,
097,123,254,000,194,196,097,033,
136,143,034,054,092,201