ZX-Ревю 1995 №2 1994 г.

Читатель-читателю - О прямом программировании ВГ93.


    О прямом программировании
           КР1818ВГ93
 ---------------------------------
  (C) Дмитрий Жарков,
                Мордовия, 1995.

    Сесть за это письмо меня побу-  
 дила   статья   Андрея   Кулакова  
 (ZX-РЕВЮ-94,  N5,  стр.19).  Меня  
 очень  интересует  защита  дисков  
 методом прямого  программирования  
 ВГ93, а также ее снятие. Возьмем,  
 к примеру,  "Скорпион ZS-256".  В  
 этой машине есть порт #1FFD.  Ну-  
 левой разряд его отвечает за  ра-  
 боту  ПЗУ,  то есть в режиме 128К  
 там всегда "0".  А если там  "1",  
 то ПЗУ отключается. Этот режим, я  
 так думаю,  должен был бы исполь-  
 зоваться для работы в среде СР/М.  
 До сих пор я не видел эту систему  
 на "Скорпионе". А идея заключает-  
 ся в  следующем.  Если  отключить  
 ПЗУ,  у  нас будет 16К памяти,  в  
 которых  можно  расположить  все,  
 что угодно. Хотя "Скорпион" имеет  
 256К памяти,  но это не  главное.  
 При  обращении  по адресу #3D13 у 
 нас "включится" контроллер диска, 
 но  так как ПЗУ заблокировано,  у 
 нас появляется  прямой  доступ  к 
 портам ВГ93 (что, в принципе, не- 
 обходимо в СР/М).  В этом случае, 
 засылая  в теневое ОЗУ программу, 
 можно  делать  все,  что  хочешь. 
 Есть,   конечно,  много  проблем. 
 Во-первых, нужно запретить преры- 
 вания  или обслуживать их самому. 
 Во-вторых, в "Скорпионе" мы можем 
 иметь доступ ко всем 128К памяти, 
 но через "окно" 16К. После "сбро- 
 са" мы имеем в окне "RAM7",  хотя 
 в режиме 48К, если использовать 5 
 бит порта #7FFD, "RAM0". Идея та- 
 кая.  Включаем "RAM0" в окно. За- 
 полняем 16К тем,  что нужно. Впе- 
 чатываем в окно другую  страницу. 
 Отключаем ПЗУ и получаем програм- 
 му в  нулевой  области,  так  как 
 "RAM0"  физически располагается в 
 #0000-#3FFF.                      
    Можно по-другому.  Просто отк- 
 лючить  ПЗУ  и перебросить подго- 
 товленную заранее программу свер- 
 ху  вниз.  В  том и другом случае 
 нужно  проконтролировать,   чтобы  
 "RAM0" не впечатывалась в окно.    
    Далее - о программе. Можно вы-  
 тащить из  ПЗУ TR-DOS и,  изменив  
 некоторые компоненты,  "закинуть"  
 ее в теневое ОЗУ.  Можно написать  
 свои процедуры   и   пользоваться  
 исключительно ими. В том и другом  
 случае у нас имеется прямой  дос-  
 туп к портам ВГ93. Далее я приво-  
 жу раскладку адресного пространс-  
 тва "Скорпиона".                   
  
    RAM8 и RAM9 используют теневой  
 сервис-монитор.                    
    ROM0 - BASIC 48K                
    ROM1 - BASIC 128K               
    ROM2 - MONITOR                  
    ROM3 - TR-DOS                   
                                    
    У меня был старый добрый "Пен-  
 тагон-128", в  нем я и реализовал  
 эту идею.  Если  посмотреть   его  
 схему,  то можно увидеть,  что 20  
 вывод ПЗУ (27512) всегда на  зем-  
 ле.  Отрезал  (там  предусмотрена  
 перемычка). Если подать туда "1",  
 то ПЗУ отключается.  Дальше - са-  
 мая большая проблема. Нужно ввес-  
 ти порт, который бы этим занимал-  
 ся.  Использовать #7FFD (два  ос-  
 тавшихся разряда) нельзя, так как  
 в режиме 48К этот порт блокирует-  
 ся. Я предлагаю использовать порт  
 от  "Скорпиона"  (#1FFD).   Будет 
 хоть частичная совместимость. Пя- 
 тый разряд (D5) служит для управ- 
 ления памятью 256К. Третий разряд 
 (D3) - RS232.  Хотя можно исполь- 
 зовать любой порт.  Например,  от 
 "PROFI" #0DFF. Вот, к примеру, ПК 
 "ATAC" использует 256К ОЗУ,  при- 
 чем, режим 128К это порт #7FFD, а 
 выше  128К - нулевой разряд порта 
 (ВВ55) #5F.  Вот такие дела. Каж- 
 дый делает то, что хочет.         

    Еще было   бы  неплохо  читать 
 состояние этих портов.  Хотя есть 
 системные переменные.             
    RS232 можно использовать с мо- 
 демом (внешним) или для MIDI-рас- 
 ширений. Хотя  в   "Пентагон-128" 
 есть уже RS232.                   
    И последнее.   В   ПК  "Пента- 
 гон-48" в  контроллере  есть  не- 
 большая ошибка, хотя и ошибкой ее 
 назвать нельзя.  Дело в том,  что 
 33 вывод  ВГ93  в некоторых конт- 
 роллерах используется,  в некото- 
 рых - нет. При чтении использует- 
 ся как выход "разрешение данных". 
 Так на  шести платах пришлось от- 
 резать его  от  остальной   схемы 
 так, чтобы "1" осталась на ТМ2, а 
 этот вход остался никуда не подк- 
 люченным. Это   происходит  из-за 
 разброса элементов  схемы.   Нес- 
 колько плат  работаеют  без дора- 
 ботки, а "Скорпион" вообще не ис- 
 пользует этот вход.               
    Еще я отрезаю RES ВГ93 от пор- 
 та #FF  и  вешаю  на общий сброс. 
 Тем самым  удалось  открыть  нес- 
 колько программ.                  



СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



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

Похожие статьи:
Приложение - цель этого раздела только сообщить о том что вошло в приложение к журналу.
PC и Spectrum - Обзор утилит для ZX-Spectrum на PC.
Sceneexplorer - Conments - по материалам анкет: "Что думате о Sprinter и GMX", "где берете программы", "в каких сетях есть адреса".
For Coderz - Код Грея и оптимизация программ.
Письмо №293

В этот день...   23 ноября