ZX Light #0B
03 ноября 1999

Мелочи - доработка ассемблера ALASМ 4.1.

<b>Мелочи</b> - доработка ассемблера ALASМ 4.1.
ERASERAREAsoftSiberian Aliance          
                                          
                      "На свете нет ничего
                          важнее мелочей."
                              (с) Ш. Холмс
                                          
   Вот  поэтому и появился в нашей газетке
этот  небольшой  раздельчик.  Здесь  будут
печататься различные доработки и переделки
программ, позволяющие сделать работу с ни-
ми  немного удобнее. И конечно будут печа-
таться  способы устранения небольших глюч-
ков,  оставленных  авторами специально для
нас:).                                    
                                          
   Сегодня в этом разделе программа, кото-
рую знают почти все (или вообще все) коде-
ры  -  ALASM  4. 1 . Это самый удобный асм
для  машин с памятью выше 128 килобайт, но
y  него есть и некоторые  недостатки, как,
впрочем, и  в любой другой проге. Например
в версии с 42 символами в строке скроллинг
текста значительно медленнее чем в 64-сим-
вольной  версии. Это благодаря тому, что в
42-символьной  версии используется команда
LDIR  в п/п  скроллинга.  И  если заменить
LDIR  на  цепочку  LDI,  то можно ускорить
скроллер примерно  на  30 тысяч тактов. И,
конечно, можно ускорить п/п печати (но это
как-нибудь в другой раз).                 
                                          
   Для  ускорения надо проделать следующие
изменения в программе:                    
   1.  С  адреса  #BFOO занести последова-
тельность:                                
                                          
   LDI ; 32 штуки                         
   RET                                    
                                          
   2. С адреса #87D6 ввести последователь-
ность:                                    
                                          
   LD С, D                                
   LD (HL), 0                             
   CALL #BFOO                             
                                          
   Этот  участок  программы  очищает  одну
строку экрана.                            
                                          
   3. С адресов #875A и #8785 ввести такие
строчки:                                  
                                          
   LD С, #20                              
   CALL #BFOO                             
                                          
   А  этот участок отвечает за перенос ли-
нии  на одно знакоместо вверх и вниз соот-
ветственно.                               
                                          
   Это  были  адреса  для ALASM`а со шриф-
том 6x8. Для версии с символами 6x7 пиксе-
лов изменения точно такие же, только адре-
са другие:                                
                                          
   1. #BFOO                               
   2. #87EF                               
   3. #8766 и #8791                       
                                          
   Изменения вносятся точно такие же.     
                                          
   Еще один недостаток этого асма (с  сим-
вoлами 6x7 и 6x8)  - запакованный символь-
ный  набор.  И  если  вам  надоело на него
смотреть, а других шрифтов нету то советую
заглянуть в приложение к этому номеру. Там
вы найдете около десятка шрифтов,  готовых
к установке в ALASM 6x8.  Все шрифты пере-
деланы (и чуток перерисованы) мной из сим-
вольных наборов, прилагавшиxся  к ZX-ASM`y
Кроме  того, там  вы  найдете и программку
для  перевода  стандартных  шрифтов  (2048
байт  или  8 секторов) в ALASM`овский фор-
мат.  Прога конечно написана неказисто, но
свои функции выполняет исправно.          
                                          
                                          
   Если  вы  часами сидите в асме, то сле-
дyющая доработка вам наверняка пригодится.
Она  выделяет текущую строку цветом paper,
отличным  от  того,  который установлен во
всем  асме. Благодаря чему вы четко видите
на  какой  строке  находится  курсор.  Это
очень удобно при просмотре больших листин-
гов.  Итак, для внедрения доработки потре-
буется написать небольшую программку:     
                                          
                                          
        ORG     #BFЧ1                                           
        PUSH    DE             ;сохраняем регистры которые могут
        PUSH    BC             ;быть покосячены                 
        PUSH    AF                                              
        LD      HL,#5800       ;адрес в атрибутах, по которому  
OLD_ADR EQU     $-2            ;красили строку последний раз    
        CALL    ERS_LN         ;стерли выделение                
BALDA   LD      HL,(#8OBF)     ;здесь координаты курсора        
        ADD     HL,HL          ;рассчитываем адрес в атрибутах  
        ADD     HL,HL                                           
        ADD     HL,HL                                           
        LD      H,#1б                                           
        ADD     HL,HL                                           
        ADD     HL,HL                                           
        LD      (OLD_ADR),HL   ;для стирания при след. вызове   
        LD      А,#4F          ;цвет полосы, ставить лучше      
                               ;такой, чтобы было видно, но в   
                               ;глаза не бросалось.             
        CALL    PRINT          ;печать полосы                   
        POP     AF             ;восстановим что сохраняли       
        POP     BC                                              
        POP     DE                                              
        LD      HL,(#C023)     ;a это то, вместо чего мы запи-  
                               ;xaem вызов этой п/п             
        RET                                                     
                                          
ERS_LN  LD      А,(IX+б2)      ;цвет заданный в сетупе          
PRINT   LD      D,H                                             
        LD      Е,L                                             
        INC     Е                                               
        LD      BC,#1F                                          
        LD      (HL),А         ;                                
        JP      #33C3          ;LDIR: RET в ПЗУ BASIC 48.       
                                          
                                          
   Затем эту прогу запихать в ALASM по ад-
ресу указанному в ORG и заменить три байта
в теле асма по адресу:                    
                                          
   - #9F0C  в  версии с символами 4x8;    
   - #9FOF  в  версии с символами 6x8.    
                                          
   Для версии с символами 6x7 эта дoрабoт-
ка не npokahaet, т. к. там 27 строк текста
(или 26:)) при 22 атрибутных строках.     
                                          
   Если вы сделали первую доработку ассем-
блера (ускорение),  то  вместо  JP  #33С3,
можно поставить  JP #BFO2  - там находится
31 штука LDI. Аналогично можно поступить и
в  ALASM`е  с символами 4x8,  только адрес
другой: JP #8733.                         
                                          
                 * * *                    
                                          
   На мой взгляд в некоторых программах со
стрелочным  интерфейсом  имеется  один ма-
ленький  недостаток - не очень симпатичная
стрелка. Я  решил  этот недостаток nonpa- 
вить.  А  посему  в  сегодняшнем номере, в
приложении  вы  найдете целую кучу стрелок
всевозможных  форм  и размеров и даже нес-
колько вращающихся стрелок. Если же вам не
                                          
   На мой взгляд в некоторых программах со
стрелочным  интерфейсом  имеется  один ма-
ленький  недостаток - не очень симпатичная
стрелка. Я  решил  этот недостаток nonpa- 
вить.  А  посему  в  сегодняшнем номере, в
приложении  вы  найдете целую кучу стрелок
всевозможных  форм  и размеров и даже нес-
колько вращающихся стрелок. Если же вам не
понравится  ни одна из имеющихся там стре-
лок, то вы можете путем несложных преобра-
зoваний довести спрайты до нужной вам фор-
мы.                                       
   Все  стрелки  нарисованы мной в замеча-
тельном  редакторе  спрайтов Sprite EDitor
(SED  final).  Надеюсь эти стрелы кому-ни-
будь понадобятся.                         
                                          
   На сегодня мелoчевки больше нет. К сле-
дующему номеру еще что-нибудь найдем:).   



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

Вступление - Надеемся чтo наша газетка вам пoнравится.

Новости - Sobos ушел со спектрума, Сorvаx задyмал еxать вoевать в Дагестан, Erаser авершил рабoтy над нoвoй oбoлoчкoй для газетки.

Новости - презентация SIBERIAN РARTY 2000.

Новости - софт: Sрrite EDitor (SED), EМS v2.55, англo-рyсский слoварь, Прoсмoтрщик BМР-файлoв.

Железо - схема и описание простейшего Vicomm модема.

Железо - схема исправления 5-го бита порта #FE в Pentagon'e.

Железо - схема исправления 5-го бита порта #FE в Profi.

Железо - полное руководство по наладке Pentagon-2.

Геймерам - пароли от Quadrax, обзор BLODWITСН, коды от Net Walk, пароли от Twilight.

Модемизация - на нoсy третье тысячелетие, а наш маленький, нo пo свoемy yникальный кoмпьютер Speccy дo сиx пoр жив.

Просто прочти - о принципах создания команды компьютерщиков.

Мелочи - доработка ассемблера ALASМ 4.1.

Божественная комедия - "Kaк-то рaз сидел, от скуки взял издaние я в руки."

Мемуары - воспоминания двух спектрумистов Diamond и Dr.Dragon.

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

Оттягущечки - "Boзле детсада стрoйка была, в чернoм кoтле закипала смoла"...

Обьявление - Ищем дрyзей пo Sрeссy!


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

Похожие статьи:
Система - руководство пользователя Maxsoft Screen Packer v.1.1.
Новости - новинки игр: Mortal Kombat, Ice Climber, Streat Fighter, CJ Elephant Fujitive, NB JAM. Новости от известных спектрумовских комманд.
Ментура - описание малоизвестной адвентюры "Ментура".
Юмор - слова-переделки из жизни компьютерщиков.
ZX+Dendy - возвращение к напечатанному.

В этот день...   25 апреля