ZX-Ревю 1996 №4-5 1996 г.

Форум - усовершенствованная версия Advanced Drive FX.


И наконец - хочу привести усовершенствованную версию Advanced Drive FX, опубликованного в ZX РЕВЮ 95/5. Новая версия несколько более понятна, меньше по объему, позволяет оперировать со всеми дисководами от A до D и изменять скорость зажигания и затухания светодиода. Для зажигания необходимо вызвать процедуру F_IN, а для затухания - F_OUT. Подпрограммы работы с портами настроены на TR-DOS 5.03. Для работы с другими версиями нацо изменить адреса в строках 390-410. В строке 420 регулируется скорость эффекта, а в строке 430 задается дисковод.

10

ORG

50000

2 0 F_IN

LD

E, 1

зажигание производится при изменении переменнс

на +1

30

JR

DO_FX

переход на процедуру

4 0 F_OUT

LD

E, 255

затухание производится при изменении

переменной на -1

50 DO_FX

XOR

A

подготовка аккумулятора

60 LOOP1

ADD

A, E

изменяем переменную

70

RET

Z

выход, если светодиод зажегся или полностью

потух

80

LD

B,SPEED

взяли скорость загорания (затухания)

90 LOOP2

PUSH

BC

сохранили счетчик

100

LD

D,A

сохранили указатель загорания (затухания)

110

LD

HL,OUT_FF

адрес подпрограммы вывода регистра A в

системным регистр (порт #FF)

120

LD

A,#3C

в аккумуляторе необходимое число,

которое

указывает на номер дисковода: биты 0 и 1.

130

CALL

DOS

заносим число в порт

140

LD

HL,OUT_1F

выдаем команду контроллеру "Чтение

адреса"

150

LD

A,#D0

160

CALL

DOS

17 0 WAIT

LD

HL,IN_1F

;

чтение регистра состояния

180

CALL

DOS

190

XOR

#80

;

проверка готовности дисковода

200

JR

NZ,WAIT

;

если не готов, то ждать

210

LD

A,8

;

выдаем команду "Восстановление"

220

LD

HL,OUT_1F

230

CALL

DOS

240

LD

B,D

;

задержка

250

DJNZ

$

260

LD

HL,OUT_FF

;

выбираем нужный дисковод

270

LD

A,DRVNUM

280

CALL

DOS

290

LD

A, D

;

восстановили указатель

300

NEG

;изменили

знак

310

LD

B,A

;

задержка

320

DJNZ

$

330

LD

A, D

;

восстановили указатель

340

POP

BC

;

восстановили счетчик

350

DJNZ

LOOP2

;

повтор, пока счетчик не обнулился

360

JR

LOOP1

;

переход на начало процедуры

370 DOS

PUSH

HL

;

процедура вызова подпрограмм из ПЗУ TR-DOS

380

JP

#3D2F

390 IN_1F EQU

#09BF

;

адрес подпрограммы чтения системного регистра

;

необходимо изменить под конкретным тип ПЗУ

400 OUT_

1F EQU

#2FC3

;

выдача команды для контроллера

410 OUT_

FF EQU

#1FF3

;

запись системного регистра

420 SPEED EQU

#08

;

скорость эффектов

430 DRVNUM EQU

#00

;

номер дисковода

Ниже приводится дамп программы:

C350

1E

01 18 02 1E FF AF 83

9B

C358

C8

06 08 C5 57 21 F3 1F

40

C360

3E

3C CD 96 C3 21 C3 2F

D 6

C3 68

3E

D0 CD 96 C3 21 BF 09

48

C37 0

CD

96 C3 EE 80 20 F 6 3E

1B

C37 8

08

21 C3 2F CD 96 C3 42

BE

C380

10

FE 21 F3 1F 3E 00 CD

8F

C388

96

C3 7 A ED 44 47 10 FE

A4

C3 90

7A

C1 10 C7 18 C1 E5 C3

E 6

C3 98 || 2F 3D 00 00 00 00 00 00 || C7

Не забудьте, что при использовании других версий TR-DOS надо изменить адрес в строке 390. Для того чтобы узнать, есть ли у Вас в ПЗУ такая подпрограмма, необходимо сначала выгрузить ПЗУ TR-DOS на диск. Для этого войдите в TR-DOS и наберите команду SAVE "TRDOS"CODE 0,16384.

Затем загрузите этот блок в память и наберите небольшую программку: 5 RANDOMIZE USR 15619: REM : LOAD "TRDOS" CODE 49152 10 FOR N=49152 TO 65535

20 IF PEEK N=219 AND PEEK (N+1)=31 AND PEEK (N+2)=201 THEN PRINT AT 10,10,"N-4 9152:PAUSE 0 30 NEXT N

В процессе работы программы на экран может быть выведен адрес, который необходимо подставить в строку 390. Если адрес не будет выведен, то нужно будет использовать другой доступ к системному регистру, например, как в предыдущей версии программы, которая была опубликована в ZX РЕВЮ 95/5.




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
CALL ME - Реклама и объявления ...
Юмор - That is true.
Другие двадцатые - Alco: "я не понял, почему C-jeff грустил, я представлял его не так - думал, поговорим.. Удивлялся, как непринужденно Alff беседует с Gasman'ом на буржуазно-империалистическом языке.. Hе узнал, почему M.M.A. ходил убитый.."
Розыск - Разыскиваются особо нужные игры: BATTLE COMMAND 128, ART STUD 128, VICTORY ROAD, SCRABBLE, BRUCE LEE, SW,STTY
Интервью - Старые знакомые: Рассказ Славы Медноногова о своей деятельности как программиста

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