Amazing #01
29 сентября 1997
  TR-DOS  

TR-DOS - отключение клавиши Break, опрос ВГ 93 на отсутствие диска, процедура позиционирование головки дисковода.

<b>TR-DOS</b> - отключение клавиши Break, опрос ВГ 93 на отсутствие диска, процедура позиционирование головки дисковода.
╔══════════════════════════════════════╗
║Раздел : Tr-Dos                       ║
║Текст : Ж.Юрий                        ║
║Music : IRONMAN                       ║
║Информация : Dr.Serg, Mr.Beeper       ║
╚══════════════════════════════════════╝





"Сегодня мы поговорим
 об одном из глюков TR-DOS" 
────────────────────────────────────────


   Так было написано в журнале
"ZX-FORMAT" , про глюк, о котором я
сейчас собираюсь Вам рассказать 
подробней.


   В этом журнале был описан случай,
когда при включении компьютера, головка
дисковода направлялась к 159 trk и пыта-
лась продвинуться дальше. Объяснение они
давали такое:  (приблизительно)

 - Товарищи юзеры! Проблема вовсе не в
Вашем контроллере, а в вашей ПЗУ. Так 
что меняйте ПЗУ и все будет работать 
как полагается. 

   Хотел бы я увидеть ихние рожи, когда
эта "новая ПЗУ" поработает около недель-
ки. Да, когда поменяешь ПЗУ'шку все как
будто-бы работает прекрасно, но через
несколько дней, все происходит как в пер-
вый раз.
   Не хочу Вас огорчать, но вся проблема
не в ПЗУ, а в вашем контроллере дисково-
да !!!  Это уже проверено и протестиро-
вано несколько раз. Чаще всего этот 
"глюк" встречается в компьютерах модели
"Ленинград2", "Харьков" и им подобным,
где стоит контроллер без ПЗУ, а вместо
обычной 128к, стоит 512к.
   Так что товарищи ИЗДАТЕЛИ проверяйте
на достоверность свои материалы, прежде
чем выпускать их в свет !!!

p.s. Sorry guys!

________________________________________

   Хочу я написать вот еще о чем.
Многие начинающие работать на ассемблере
программисты наверняка заметили, что
загрузка блока секторов с точкой входа
15635 (#3D13 ненавижу HEX - систему!)
останавливается при нажатии клавиши
BREAK. Чтобы этого избежать, достаточно
вначале программы поставить вот такие
две строчки:

        LD HL,51697
        LD (23746),HL    

и все! На этом все мучения с клавишей
BREAK будут окончены - она просто "перес-
танет существовать".
  Использование вышеизложенного метода
вместе с загрузкой через #3D13 - лучший
загрузчик, который можно только приду-
мать: во - первых, он краток, а во вторых
- работает на всех компьютерах, назависи-
мо от версии TR-DOS. Этим методом поль-
зуются и DREAM MAKERS SOFTWARE, и MAX
IWAMOTO.
  И еще: Дризья ! Учитесь экономить па-
мять: зачем писать:

        LD B,LEN
        LD C,5  

ведь вместо этого можно написать:

        LD BC,LEN*256+5  

и ассемблер поймет и один байт памяти
сэкономите ("копейка - рубль бережет").
  Господа программисты! Сжимайте, пожалуй
ста, свои программные продукты. Существу-
ет же такая бесподобная вещь, как LZ/PACK
или MS_PACK вобщем их много ...
 

   Если у Вас есть подобные материалы,
присылайте их к нам в редакцию, и мы
обязательно опубликуем их.

А теперь переходим к главному.
________________________________________

Сегодня в разделе Tr-Dos аж две проце-
дуры, которые пригодятся Вам во многих
случяях жизни, а именно :

  1. ОПРОС ВГ 93 НА ОТСУТСТВИЕ ДИСКА!

  2. ПРОЦЕДУРА ПОЗИЦИОНИРОВАНИЯ ГОЛОВКИ!



Две эти процедуры любезно предостав-
лены великим CODER'ом, под кликухой
Dr.Serg. В последующих номерах этот
раздел будет вести опять же он, а в
приложении есть его Remix игры
"SPACE CR." под MOUSE !!!
Так что прошу любить и жаловать.

                * * *  

Чтобы не усложнять Вам жизнь, на диске
есть эти процедуры в формате ZX-ASM 3
────────────────────────────────────────

   Опрос  "ВГ93" на отсутствие диска!

    Coded and copyright by Dr.SERG,

    (special for magazine PolyForm)



        ORG #8000
        DI
        CALL ConDisk
        LD HL,met3
        LD (HL),A
met2    EI
        HALT:DI
        CALL ConDisk
        CP (HL)
        JR NZ,met1
        LD A,#7f
        IN A,(#fe)
        BIT 0,A
        JR NZ,met2
met1    DS 3
        RET
met3    DB 0

ConDisk PUSH IY
        PUSH IX
        PUSH HL
        PUSH DE
        PUSH BC
        LD (ConDisk1+1),SP

;Установка по адд.#5CC2:3ConDisk1

        LD A,#c3
        LD (#5cc2),A
        LD HL,ConDisk1
        LD (#5cc3),HL

;Команда "Принудительное прерывание"

        LD IX,#2FC1
        CALL LL7846

;Команда "Восстановление"

        LD A,#08
        LD BC,#001F
        LD IX,#2A53
        CALL LL7846

;Чтение регистров состояний ВГ93

        LD DE,#0000
        LD IX,#2740
        CALL LL7846
ConDisk1 LD SP,0
        XOR A

;сброс ВГ93

        LD IX,#1FF3
        CALL LL7846

;восстановление системного регистра ВГ93

        LD IX,#1FEB
        CALL LL7846

;Команда "Принудительное прерывание"

        LD IX,#2FC1
        CALL LL7846

;Установка по адресу - #5CC2:RET

        LD A,#c9
        LD (#5cc2),A
        LD A,(#5CCD)
        AND #40
        POP BC
        POP DE
        POP HL
        POP IX
        POP IY
        RET
LL7846  PUSH IX
        JP #3D2F


   Процедура позиционирования головки!

    Coded and copyright by Dr.SERG,

    (special for magazine PolyForm)



ВВХОД :w- ном.трека 0-159
       :A=0 проверка положения 1══╗
                           (0001 1х00)
       :A=255 не проверять     0══╝
  ВЫХОД:A=0 O.K.
        A<>0 Error,
  BIT 7,a=1 ком.не приинята
  BIT 4,a=1 ош-ка позиционирования
  BIT 0,a=1 контр.не готов к приему
  изм.ет IX,AF
  Служебный регистр => (ErrWG)
  При старте двигателя делается пауза
  опред.константой => (DrPause)

        ORG 25000
        LD B,0   ;Trk
Posic   PUSH BC
        LD IX,posicC
        AND A
        SET 2,(IX+1)
        JR Z,posic3
        RES 2,(ix+1)
posic3  LD IX,posicex
        PUSH IX

И;установка side

        LD A,B
        SRL A
        LD B,A
        LD IX,#1feb
        JR NC,posic1
        LD IX,#1ff6
posic1  CALL Dos2
        LD IX,#3c30
        CALL Dos2
        BIT 0,A
        jr z,posic4

        ;ВГ не готова.прерывание каманды

        LD A,%11010000
        LD C,#1f
        LD IX,#2a53
        JR posic1

        ;проверка на вращение двигателя
        ;и модификация конст.задержки

posic4  LD IX,1
        BIT 7,A
        JR Z,posic5
        LD IX,(DrPause)
posic5  LD (posicp+2),IX
        LD A,B
        LD C,#7f
        CALL Dos1 ;установка номер trk.
posicC  LD A,%00011100;

        ;bit 2-проверка позиц..

        LD C,#1f
        CALL Dos1
        CALL Dos1 ;поиск дорожки
        LD IX,#3c30;       in a,(#1f)
posic2  CALL Dos2
        BIT 0,A; идет выполнение команды
        JP NZ,posic2
        BIT 7,A       ;Аварийный выход
        RET NZ        ;Дисковод стоит!!
        BIT 4,A:RET NZ;ошибка поиска
        BIT 3,A:RET NZ;ошибка в контрол.
Ц;коде(при CHECK)
        LD (ErrWG),A

И;пауза,если был старт двигателя

posicp  LD IX,0
posic6  DEC IX
        LD A,XL
        OR XH
        JR NZ,posic6
        POP BC:RET
posicex LD (ErrWG),a
        POP BC
        RET
 
────────────────────────────────────────

        ; пп перехода в TR.DOS
        ; по 2A53: OUT (BC),A:RET

Dos1    LD IX,#2a53; out (c),a:ret
Dos2    PUSH IX
        JP #3d2f
ErrWG   DB 0
DrPause DW #A000

Внимание !!!

Эти процедуры не работают на ПЗУ с вер-

сией TR-DOS 5.03.
 
При использовании этих процедур в собст-
венных программах, делайте ссылку на
автора.
         
На сегодня все, ждем ваших писем с пред-

ложениями.
________________________________________



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

Electronic Magazine Amazing - первый номер нового компьютерного журнала "AMAZING"; внимание конкурс!

Архив - описание программ из приложения к журналу: Inter Mode Player v1.2, Stainless steel, Space crusade, Extreme's Tracker v1.32, Chopper duel.

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

TR-DOS - отключение клавиши Break, опрос ВГ 93 на отсутствие диска, процедура позиционирование головки дисковода.

Железо - новые похождения Штирлица.

Новости - новости из Харькова: Impetus Led, Stalker, Enigma Group, Wanderer, Joker, Dr.Serg, Patsoft, Mr.Beeper.

Новости - Amiga или PC ???

Разное - Самая популярная игра америки: Magic: The Gathering.

Разное - Fantasy: Монолог крысы.

Реклама - реклама и обьявления.

Реклама - сказочки про "Вовочку".


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

Похожие статьи:
Сеть - Сетевые новости. Список BBS: ZX-Net 095, Независимые BBS.
Возможности Спектрума - Аппаратный скроллинг на ZX Spectrum.
Слухи и новости - Кто что делает: Dream Team Group, OHG, Pungency, Величутин Николай, Virtual vision group, Golden Disk Group, KDF Soft, X-Project, Mafia, Flash Inc.
Рубрика X - Обзор игр: Тwilight, Зеркало, Белый орел, Kolobok Zoom 2, Quadrax, Chaos Zone.
Проходилка - прохождение Die Feuerfaust 3-4.

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