ZX-Ревю 1996 №1-2 1996 г.

Авторская разработка - загрузчик видеопроцессора.


ЗАГРУЗЧИК ВИДЕОПРОЦЕССОРА

Загрузчик сразу после включения, видеопроцессора определяет объём памяти и выдает его в порт 127. Объём памяти выдается в блоках размером по 256 байт, то есть для полнели памяти 32 Кб, необходимой для дендиевских игрушек, число, считанное из порта 127, должно быть - 128. Информация в ОЗУ видеопроцессора записывается через порт 127 в таком формате:

1. Байт - определяет режим работы после запуска. При значении, отличном от #00, после окончания загрузки видеопроцессор работает в автономном режиме и управление со стороны Spectrum заблокировано. При #00 - основной режим, возможность управления сохраняется.

2. Байт - старший байт адреса загрузки драйвера. Младший байт всегда 0, то есть длина драйвера кратна 256 байт.

3. Последний байт драйвера записывается по адресу #FFFF.

Далее следует 8 Кб графической информации и, от 256 байт до 32 Кб - программа и данные. Запуск происходит автоматически после записи последнего байта.

Загрузчик вполне может быть размещен в масочном ПЗУ объёмом 256 байт.

Листинг загрузчика драйвера видеопроцессора или игры видеоприставки.

FLASH 1: POKE 23624,128: CLEAR 24999

REM: LOAD "LOADER" CODE REM: LOAD "VIDEO" CODE 49152

10 20 30 40 50 60

USR USR USR USR USR

15619 15619 25000 15619 25002

Листинг подпрограммы LOADER.

ORG

25000

; загрузка программы и данных

JR

VIDEO

; в ОЗУ видеопроцессора

LD

HL,#8000

; начало блока

LD

A,(HL)

; пересылка

OUT

(127) ,А

; блока

I NC

HL

; из ОЗУ SPECTRUM

LD

A, H

; впорт 12 7

CP

0

RET

Z

; выход, если конец блока

JR

L1

; снова, если не все

LD

LD

OUT

LD

OUT

LD

OUT

I NC

LD

CP

RET

JR

HL,#C000 A, #FF (127),A A, #80 (127),A A,(HL) (127) ,A HL A, H #E0 Z

L1V

загрузка видео-ОЗУ начало видеоблока #FF - блокировка #00 - без блокировки

RANDOMIZE RANDOMIZE RANDOMIZE RANDOMIZE RANDOMIZE

REM: LOAD "PROGRAM" CODE 32 7 68

L1

VIDEO

для блока длиной 32

прораммы Кб

L1V

если вне видеоблока

Дамп загрузчика видеопроцессора (коды 6502)

F800

78

D8

A9

00

8D

00

60

8D

6B

F808

00

20

8D

01

20

AD

02

20

9D

F810

10

FB

AD

02

20

30

FB

A9

B6

F818

3F

8D

06

20

A9

F0

8D

06

2E

F820

20

A9

0D

8D

07

20

A2

FF

43

F828

9A

A0

00

8C

06

20

8C

06

9E

F830

20

98

99

00

00

C8

D0

FA

0B

F838

A0

00

B9

46

F8

99

00

03

63

F840

C8

D0

F7

4C

00

03

A9

20

DF

F848

8D

01

60

A2

80

A9

00

85

7E

F850

04

A8

86

05

8A

91

04

C8

66

F858

D0

FB

E8

D0

F5

AD

00

80

F5

F860

49

FF

38

69

00

85

06

8D

59

F868

00

60

A0

00

B9

35

03

99

EA

F870

FA

FF

C8

C0

06

D0

F5

58

0C

F878

4C

31

03

48

03

FF

FF

3B

74

F880

03

AD

00

60

85

00

A9

49

FF

F888

8D

FE

FF

8D

00

60

40

AD

E4

F890

00

60

85

03

A9

5B

8D

FE

FF

F898

FF

A2

00

A0

00

8D

00

60

BE

F8A0

40

AD

00

60

8D

07

20

E8

81

F8A8

D0

0C

C8

C0

20

D0

07

AO

9B

F8B0

00

A9

74

8D

FE

FF

3D

00

DC

F8B8

60

40

AS

03

C9

FF

D0

T0

A0

F8C0

C0

FE

D0

0C

AC

00

60

A9

07

F8C8

96

80

FE

FF

8D

00

60

40

0D

F8D0

AD

00

60

91

02

C8

D0

DE

DE

F8D8

E 6

03

D0

DA

AD

00

60

8D

FD

F8E0

FF

FF

8D

00

60

8C

FE

FF

4C

F8E8

A5

00

F0

05

A9

E0

8D

01

91

F8F0

60

6C

FC

FF

FF

FF

FF

FF

AB

F8F8

FF

FF

FF

FF

FF

FF

FF

FF

E8

F900

FF

FF

FF

FF

FF

FF

FF

FF

F1

заполнено кодом #FF

FFF0 FFF8

E7 F9

FF FF

FF FF

FF 8E

FF F$

FF 00

FF F8

FF 8E

FF F8




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Ретро - 40 лучших процедур: Поиск строки.
Интервью - Пaвел from RЕAL SОFT/NЕW СОRP г.Бpест.
ACB Stereo - A New Sound Experience

В этот день...   21 июля