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