ZX-Ревю 1994 №6 1993 г.

Читатель - читателю - экран высокого цветового разрешения.


Экран высокого цветового разрешения

© Александр Кунгуров, п. Нижний Архыз, (КЧР), 1994.

В РЕВЮ-93 № 9-10 на стр.198 Киселев Д. рассматривает вопрос о возможности компьютера "Балтик" работать с экраном высокого раз решения по атрибутам. Думаю, что предложение использовать для этой цели экран по адресу 16384 - не состоятельно: этот экран не только "сорит" в буфере принтера, но и захватывает область системных переменных и еще свыше 4 Кбайт области Бейсика. Возможно, авторы "Балтика" полагали переписать операционную систему (ОС), сдвинув служебные области в более старшие адреса. Но это уже был бы не " Spectrum".

Другой вариант: если у "Балтика" вывод 3 микросхемы D17 оторвать от "земли" и подать на нее "1", как это делается в "Spectrum-128", то получится еще 4 экрана. Два из них - по адресам 32768 и 49152, с высоким разрешением по атрибутам. Но, используя их, мы тут же потеряем совместимость с другими типами "Spectrum" и работать с этими экранами придется из ассемблера. ОС их не поддерживает.

Предлагаю третий вариант: доработать "Балтик" согласно рис.1 (см. на следующей странице).

В этом случае графический экран всегда остается на своем стандартном месте, то есть по адресу 16384. А файл атрибутов программно или вручную может быть переключен со своего стандартного места - 22528 и размера -768 байтов (далее "L-файл"), на адрес 55296 и размер 6144 ("Н-файл"). При такой организации, программа должна иметь два файла атрибутов - L-файл и Н-файл. Это обеспечивает совместимость по атрибутам низкого разрешения с другими типами "Spectrum". Необходимость же иметь L-файл заставляет нас делать картинку в обычном графическом редакторе, а затем - дорабатывать L-файл до Н-файла в специальном редакторе, например, в предлагаемом ниже "HART". Хотя, если эта система выживет, в будущем возможен и обратный вариант, то есть доработка Н-файла до L-файла. Но для этого нужно еще написать редактор типа "ARTSTUDIO" для картинок с высоким раз решением.

Доработка по рис.1 рассчитана на "Балтик", с памятью, расширенной до 128 Кбайт. Для обычных 48К -компьютеров из схемы надо удалить D1'.1 и D3'.2, а D3'.1 заменить на ЛИ1. Серия микросхем может быть 155, 555, 531 и т.д. Программное включение Н-файла из Бейсика: OUT 126,16. Включение L-файла: OUT 126,0.

Редактор высокого разрешения "H-ART" позволяет загружать стандартный экран, транслировать L-файл в Н-файл, сохранять промежуточные версии Н-файла в буфере. Работа в редакторе заключается в подведении курсора к нужному месту, заданию курсору требуемого цвета и впечатыванию его в Н-файл.

D1M ЛН1

п

Р3'.2 ЛДЗ

D2M ЛЕ1

D3"

1 ЛДЗ

&

&

CHSCR (TMS128K)

D26/4

-D17/3

-D18/13

Р4'.2 ЛЛ1

D41 К155ТМ8

Н-любой свободный триггер порта #7Е

D47/14 (DO) D47/15 (D1)

D47/7

-D18/12

D4M ЛЛ1

j]

1

1

'

ь

1 "

- +5В

о 4 "L1

А

Рис. 1

Директивы "H-ART". 5, 6, 7, 8 - клавиши управления курсором. 0 - печать курсора.

In - установка цвета курсора (n-0.. .7) - INK. Pn - установка цвета курсора (n=0.. .7) - PAPER. В - вкл/выкл BRIGHT. F - вкл/выкл FLASH. S - переключение скорости курсора. N - вкл/выкл непрерывной печати курсора.

С - графический экран с L-файлом копируется по адресу 48384. Затем, вместе с Н-файлом сохраняется на

магнитофоне в виде одного файла.

Т0 - трансляция L-файла в Н-файл.

D0 - пересылка Н-файла в буфер.

I0 - пересылка содержимого буфера в Н-файл.

Q0 - выход из режима редактирования Н-файла.

В последних четырех директивах "0" вводится для утверждения директивы. Ввод любого другого символа отменяет директиву.

Таким образом, мы можем создавать картинки высокого разрешения по атрибутам или дорабатывать до высокого разрешения старые картинки. Но этого мало. Для полноты счастья, необходима возможность делать игры в высоком разрешении и, по возможности, в Бейсике. Бейсик не поддерживает Н-файл, но зато он поддерживает L-файл. И, если делать обрамление в высоком разрешении, а игровое поле - в низком, то нам остается, не затрудняясь вычислениями, тупо перекачивать атрибуты из L-файла в Н-файл. Либо, после каждого движения на экране, либо, если игра идет в постоянных атрибутах, после каждой смены картинки, обращаясь для этого к одной и той же подпрограмме. Для создания таких подпрограмм предназначена приведенная ниже программа "L-H SUBR".

"L-H SUBR" генерирует подпрограмму, призванную быстро транслировать атрибуты из L-файла в Н-файл в окна заданных размеров. бенерация подпрограммы всегда производится по адресу 40000, но адреса в ней создаются для работы согласно запрашиваемому "L-H SUBR" реальному адресу загрузки. В подпрограмме может быть определено до 64-х окон с номерами 0.63. По окончании работы, "L-H SUBR" сообщает, кроме параметров подпрограммы, адрес SCR_NUM ячейки памяти, в которую записывается номер текущего окна. Из Бейсика менять окна можно с помощью оператора POKE SCR_NUM,n, где n - номер окна. Длина подпрограммы зависит от числа определенных окон, вернее от номера старшего определенного окна, и находится в пределах 136.388 байтов. Скорость работы подпрограммы почти линейно зависти от числа транслируемых знакомест экрана. При числе знакомест, равном 768 (весь экран, хотя это и бессмысленно) трансляция атрибутов происходит за 0.06 сек, что приемлемо при создании динамических игр. Запуск подпрограммы из Бейсика: RANDOMIZE USR ADR, где ADR -реальный адрес загрузки. К сведению: SCR_NUM=ADR+131. Окна, вернее их описания, занимая каждое - по 4 байта, располагаются с адреса ADR+132. В описании окна последовательно записываются параметры окна в знакоместах: высота окна; ширина окна; координата Y верхнего левого угла окна, по отношению к левому верхнему углу экрана; координата X, определяемая так же (как в Бейсике).

Таким образом, эта система становится доступной и для тех, кто работает только на Бейсике. Но у владельцев "Балтиков" с памятью, расширенной до 128К, будут трудности. Ведь Н-файл окажется на 7-й странице ОЗУ и придется из ассемблера заниматься переключением страниц. Мало этого - придется адаптировать программы, написанные для компьютеров с 48К памятью. Включение режима "48К" в этом случае проблемы не решает. Наиболее приемлемо - доработать компьютер согласно рис.2.

Такая доработка может быть полезна и для других типов компьютеров, поскольку, кроме Н-файла, в текущей странице оказываются и экран - 1, и теневое ОЗУ. При этом экраном - 1 можно управлять через порт #7FFD. А, при использовании в качестве ОС "TURBO-90", появляется возможность, выходить из "зависших" программ с помощью кнопки сброса, не "вылетая" в ПЗУ 128К.

Теперь - листинги программ, о которых рассказывалось выше.

От расширителя памяти А14'—- -

А15'-CAS0-CAS 1-

-А14" -А15'

-CAS О -CAS 1

11

14

12

10

13

A14"(ROM)

Рис. 2 Программа "H-ART".

15,

От регистра TMS расширителя памяти

А14' (ROM) +5В

REM H-ART Kungurov A.N. LOAD "H-ART"CODE BORDER 5: PAPER 5: INK

63,0: DRAW 0,10 62,0: DRAW 0,10

- LOAD L-screen

10 15 20 30

40 50 60 70 90 100 110 120 130 140 150 160 170 180 190 200

0: CLS: PAPER 6

PRINT AT 2,12; DRAW -64, 0 PLOT 97,150: DRAW PLOT 99,14 9: DRAW PRINT AT 12,4;" 1 PRINT AT 14,4;" 3 LET a$=" PLOT 31,39 PLOT 33,38 PLOT 35,37

13,4;" 2 15,4;" 4 ": PRINT DRAW 0,-4 9:

'AT 'AT

- SAVE H-screen

DRAW DRAW DRAW

RANDOMIZE USR b$ CODE 16384:

55296,6144: GO TO 20 48384,13056: GO TO 20 Старт программы происходит с начальной Бейсик - строки. Прежде всего, после старта, загружается кодовый блок "H-ART" CODE 61440, 560. Вот его шестнадцатеричный дамп с контрольными суммами:

210 220

0,49: DRAW 193,0: 192,0: DRAW 0,4 9 191,0: DRAW 0,4 9 LET a$=INKEY$: IF a$="" THEN GO TO 130 IF a$<"1" OR a$>"4" THEN GO TO 130 LET a=180+10*VAL a$: GO TO a INPUT "L-screen name - ";b$: RETURN INPUT "H-screen name - ";c$: RETURN INPUT "(L+H)-screen name -";d$: RETURN GO SUB 160: LOAD b$ CODE 16384: GO SUB 160: GO SUB 170: LOAD 61440: GO TO 20 GO SUB 170: SAVE c$ GO SUB 180: SAVE d$ 0: DRAW 0,-10:

PAPER 6;"H -ART.": PLOT 95,151: DRAW 0,10: DRAW

- LOAD L & H screens"

- SAVE (L+H)-screen" AT 11,4;a$;AT 16,4 ;a$ DRAW -193,0

RANDOMIZE USR

CODE CODE

F000

F3

CD

D0

F1

CD

91

F1

32

F2

F008

35

F2

CD

FF

F1

3A

35

F2

3D

F010

FE

30

CA

0B

F1

FE

35

CA

F1

F018

13

F1

FE

36

CA

3B

F1

FE

34

F020

37

CA

4F

F1

FE

38

CA

2E

7F

61440: GO TO 20 LOAD c$ CODE 552 96:

F028

F1

CB

AF

FE

46

28

30

FE

1D

F030

42

28

47

FE

4E

CA

80

F1

58

F038

FE

50

28

4D

FE

49

28

57

B1

F040

FE

54

28

5B

FE

44

CA

C0

D1

F048

F0

FE

55

CA

E0

F0

FE

43

56

F050

CA

5F

F1

FE

53

CA

F1

F0

56

F058

FE

51

CA

03

F1

18

A5

3A

4C

F060

2F

F2

CB

7F

28

04

CB

BF

71

F068

18

02

CB

FF

32

2F

F2

CD

5C

F070

6E

F1

CD

D7

F1

CD

A7

F1

B9

F078

18

8A

3A

2F

F2

CB

77

28

CF

F080

04

CB

B7

18

E7

CB

F7

18

CF

F088

E3

CD

B1

F1

CB

21

CB

21

A2

F090

CB

21

E 6

C7

B1

18

D5

CD

84

F098

B1

F1

E 6

F8

B1

18

CD

CD

6B

F0A0

23

F2

11

00

58

21

00

D8

07

F0A8

3E

03

32

33

F2

CD

DC

F1

CA

F0B0

3E

07

84

67

3A

33

F2

3D

6C

F0B8

CA

04

F0

32

33

F2

18

ED

C2

F0C0

CD

6E

F1

CD

FA

F1

CD

23

84

F0C8

F2

21

00

D8

11

00

A0

01

55

F0D0

00

18

ED

B0

CD

6E

F1

CD

6E

F0D8

D7

F1

CD

A7

F1

C3

04

F0

AC

F0E0

CD

6E

F1

CD

FA

F1

CD

23

A4

F0E8

F2

21

00

A0

11

00

D8

18

8C

F0F0

DE

3A

00

F2

FE

60

28

07

77

F0F8

3E

60

32

00

F2

18

DB

3E

DB

F100

10

18

F7

CD

23

F2

CD

A7

66

F108

F1

FB

C9

3A

2F

F2

32

30

6B

F110

F2

18

C7

CD

09

F2

FE

00

98

F118

28

10

3D

CB

27

CB

27

CB

2D

F120

27

32

31

F2

CD

D0

F1

C3

DE

F128

04

F0

3E

F8

18

F3

CD

09

24

F130

F2

FE

1F

28

03

3C

18

E3

92

F138

AF

18

E 6

CD

19

F2

FE

00

AC

F140

28

09

3A

32

F2

3D

32

32

61

F148

F2

18

D9

3E

BF

18

F7

CD

F5

F150

19

F2

FE

BF

28

06

3A

32

A3

F158

F2

3C

18

EA

AF

18

E7

21

48

F160

00

40

11

00

BD

01

00

1B

7B

F168

ED

B0

CD

A7

F1

C9

3A

32

90

F170

F2

47

3A

31

F2

4F

3E

BF

43

F178

CD

AC

22

3E

98

84

67

C9

8E

F180

3A

34

F2

FE

00

20

07

2F

25

F188

32

34

F2

C3

DA

F0

AF

18

25

F190

F7

21

3B

5C

CB

AE

3E

FF

E 6

F198

32

00

5C

E5

FF

E1

AF

CB

56

F1A0

6E

28

F8

3A

08

5C

C9

21

A7

F1A8

6A

00

11

2C

01

CD

B5

03

C6

F1B0

C9

CD

91

F1

47

3A

35

F2

61

F1B8

B8

28

F 6

78

0E

80

CD

01

53

F1C0

F2

D 6

30

DA

04

F0

FE

08

7D

F1C8

D2

04

F0

4F

3A

2F

F2

C9

F2

F1D0

CD

6E

F1

7E

32

30

F2

3A

F9

F1D8

2F

F2

77

C9

06

00

22

36

88

F1E0

F2

0E

08

1A

77

24

0D

20

BB

F1E8

FB

13

2A

36

F2

23

05

20

81

F1F0

ED

C9

3A

34

F2

FE

00

28

1D

F1F8

01

C9

3A

30

F2

77

C9

0E

5D

F200

60

06

FF

10

FE

0D

20

F9

8B

F208

C9

CD

6E

F1

CD

F2

F1

3A

D9

F210

31

F2

CB

3F

CB

3F

CB

3F

43

F218

C9

CD

6E

F1

CD

F2

F1

3A

E9

F220

32

F2

C9

CD

B1

F1

AF

B9

D 6

F228 | 20 01 C9 E1 C3 04 F0 A2 | 3E Для тех, кто привык работать в ассемблере, приводим текст кодового блока программы "H-ART", набранный в формате "GENS-4'":

SCAN

FLASH

FL EFL

BRIGHT

BR

PAPER

ORG

#F000

ENT

$

DI

CALL

PCUR

CALL

KEY

LD

(CK),A

CALL

WAIT

LD

A,(CK)

CP

#30

JP

Z,PRINT

CP

#35

JP

Z,LEFT

CP

#36

JP

Z,DOWN

CP

#37

JP

Z, UP

CP

#38

JP

Z,RIGHT

RES

5,A

CP

#46

JR

Z,FLASH

CP

#42

JR

Z,BRIGHT

CP

#4E

JP

Z, NPR

CP

#50

JR

Z,PAPER

CP

#49

JR

Z, INK

CP

#54

JR

Z,TRANS

CP

#44

JP

Z,INBUF

CP

#55

JP

Z,OFFBUF

CP

#43

JP

Z,COPY

CP

#53

JP

Z,SPEED

CP

#51

JP

Z,QUIT

JR

SCAN

LD

A,(CUR)

BIT

7,A

JR

Z, FL

RES

7,A

JR

EFL

SET

7,A

LD

(CUR),A

CALL

SCUR

CALL

PCN

CALL

BEEP

JR

SCAN

LD

A,(CUR)

BIT

6,A

JR

Z, BR

RES

6,A

JR

EFL

SET

6,A

OR

EFL

CALL

COL

SLA

С

SLA

С

SLA

С

AND

#C7

OR

С

JR

EFL

INK

CALL

COL

AND

#F8

OR

С

JR

EFL

TRANS

CALL

CCOL

LD

DE,#5800

LD

HL,#D800

LD

A,3

LD

(NS),A

NSEC

CALL

TRS

LD

A,7

ADD

A, H

LD

H, A

LD

A,(NS)

DEC

A

JP

Z,SCAN

LD

(NS),A

JR

NSEC

INBUF

CALL

SCUR

CALL

PBN

CALL

CCOL

LD

HL,#D800

LD

DE,#A000

BUF

LD

BC,#1800

LDIR

CALL

SCUR

CALL

PCN

BFA

CALL

BEEP

JP

SCAN

OFFBUF

CALL

SCUR

CALL

PBN

CALL

CCOL

LD

HL,#A000

LD

DE,#D800

JR

BUF

SPEED

LD

A,(WAIT+1)

CP

#60

JR

Z, SPD

LD

A, #60

SD

LD

(WAIT+1),A

JR

BFA

SPD

LD

A, #10

JR

SD

QUIT

CALL

CCOL

CALL

BEEP

El

RET

PRINT

LD

A,(CUR)

LD

(BYTE),A

JR

BFA

LEFT

CALL

WX

CP

0

JR

Z, RS

DEC

A

RBYT

SLA

A

SLA

A

SLA

A

XBYT

LD

(XCUR),A

SBYT

CALL

PCUR

JP

SCAN

RS

LD

A, #F8

OR

XBYT

RIGHT

CALL

WX

CP

#1F

OR

Z, LS

INC

A

OR

RBYT

LS

XOR

A

OR

XBYT

DOWN

CALL

WY

CP

0

OR

Z, TS

LD

A,(YCUR)

DEC

A

YBYT

LD

(YCUR),A

OR

SBYT

TS

LD

A, #BF

OR

YBYT

UP

CALL

WY

CP

#BF

OR

Z, LOS

LD

A,(YCUR)

INC

A

OR

YBYT

LOS

XOR

A

OR

YBYT

COPY

LD

HL,#4000

LD

DE,#BD00

LD

BC,#1B00

LDIR

CALL

BEEP

RET

SCUR

LD

A,(YCUR)

LD

B, A

LD

A,(XCUR)

LD

C,A

LD

A, #BF

CALL

#22AC

LD

A,#98

ADD

A, H

LD

H, A

RET

NPR

LD

A, (NP)

CP

0

OR

NZ,DPR

CPL

EPR

LD

(NP) , A

JP

BFA

DPR

XOR

A

OR

EPR

KEY

LD

HL, #5C3B

RES

5,(HL)

LD

A, #FF

LD

(#5C00),A

KW

PUSH

HL

RST

#38

POP

HL

XOR

A

BIT

5,(HL)

OR

Z, KW

LD

A, (#5C08)

RET

BEEP

LD

HL,# 6A

LD

CALL

RET

COL

CALL

LD

LD

CP

OR

LD

LD

CALL

SUB

CP

CP

JP

LD

LD

RET

PCUR

CALL

LD

LD

PCN

LD

LD

RET

TRS

LD

NSP

LD

LD

LD

SPO

LD

INC

DEC

OR

INC

LD

INC

DEC

OR

RET

PBYT

LD

CP

OR

RET

PBN

LD

LD

RET

WAIT

LD

TIME

LD

TM

DJNZ

DEC

JR

RET

WX

CALL

CALL

LD

SRL

SRL

SRL

RET

WY

CALL

CALL

LD

RET

CCOL

CALL

XOR

DE,#12C #3B5

KEY

B, A

A,(CK) В

Z, COL А, В

C, #80 TIME #30

C,SCAN 8

NC,SCAN C,A

A,(CUR)

SCUR A,(HL) (BYTE),A

A, (CUR) (HL),A

B, 0

(SCR),HL

C,8

A,(DE) (HL),A H С

NZ,SPO DE

HL, (SCR)

HL

В

NZ,NSP

A, (NP)

0

Z, PBN

A, (BYTE) (HL),A

C,#60

B, #FF TM

С

NZ,TIME

SCUR

PBYT

A,(XCUR)

A

A

A

SCUR PBYT A,(YOJR)

COL A

CP

С

OR

nz,e:

RET

ENTR

POP

HL

JP

SCAN

CUR

DEFB

#A2

BYTE

DEFB

0

XCUR

DEFB

0

YCUR

DEFB

0

NS

DEFB

0

NP

DEFB

0

CK

DEFB

0

SCR

DEFW

0

10 REM L-H window subroutine

2 0 CLS : PRINT AT 2,4; PAPER 5;

30 LET a$=" "

4 0 PRINT AT 1,4; PAPER 5;a$;AT 3,4;a$

DRAW 0,25: DRAW 193,0: DRAW 0,-25: DRAW -193,0

DRAW 0,2 5 DRAW 0,2 5 DRAW 0,2 5 adr

LET k=0: PRINT AT 11,9;"Please wait..."

TO 9

DRAW 192,0 DRAW 191,0 DRAW 190,0

FLASH 1;"Error at line - ";200+n: BEEP .2,20:

50 PLOT 31,143 60 PLOT 33,142 70 PLOT 35,141 80 PLOT 37,140 90 INPUT "Real address 100 RESTORE 110 FOR n=1 120 LET s=0 130 FOR m=1 TO 16 14 0 READ a: POKE 4 0000+k,a 150 LET k=k+1: LET s=s+a 160 NEXT m

170 READ a: IF s<>a THEN GO TO 200 180 NEXT n 190 GO TO 210

2 00 PRINT AT 11,7; INK 2; PAPER 4;

BEEP .2,20: BEEP .2,20: STOP 2 01 DATA 243,245,197,213,229,58,131,0,203,39,203,39,95,175,87,33,2190

202 DATA 132,0,25,17,127,0,1,4,0,237,176,42,129,0,235,205,1330

203 DATA 58,0,58,129,0,60,50,129,0,58,127,0,61,50,127,0,907

2 04 DATA 254,0,32,231,225,209,193,241,251,201,123,230,24,198,64,103,2579 2 05 DATA 62,152,132,103,123,230,7,15,15,15,130,111,34,125,0,123,1377

206 DATA 230,24,203,63,203,63,203,63,246,88,103,123,230,7,183,31,20 63

207 DATA 31,31,31,130,111,235,58,128,0,79,42,125,0,229,6,8,1244

208 DATA 26,119,36,5,32,251,225,35,19,13,32,241,201,0,0,0,1235 2 0 9 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

210 FOR n=1 TO 12

220 READ a: LET a=a+40000: LET b=PEEK a: RANDOMIZE adr+b 230 LET c=PEEK 23670: LET d=PEEK 23671 240 POKE a,c: POKE a+1,d 250 NEXT n

260 DATA 6,16,20,28,32,35,39,42,46,77,103,107

Программа "L-H SUBR":

Kungurov A.N. INK 2;" L-H window subroutine.

27 0 BEEP 1,20: PRINT AT 11,9;" 2

LET mw=0

2 90 INPUT "Number of window - ";a 300 LET a=INT a: IF a<0 OR a>63 THEN GO TO 270 310 IF mw<a THEN LET mw=a 320 LET aw=40132+a*4 330 INPUT "X - ";x: LET x=INT x: 34 0 INPUT "Y - ";y: LET y=INT y: 350 INPUT "Width - ";sx: LET sx =ABS (INT sx): IF x+sx>31 THEN GO TO 350 360 INPUT "Height - ";sy: LET s y=ABS (INT sy): IF y+sy>23 THEN GO TO 3 60 37 0 POKE aw,sy: POKE aw+1,sx: POKE aw+2,y: POKE aw+3,x 380 PRINT INK 2;a; INK 0;"-";x;",";y;",";sx;"*";sy, 390 INPUT "Go on ? ";a$

400 IF a$="" OR a$="y" OR a$="Y" THEN GO TO 290

";AT 5,4;"Description of windows:"

IF x<0 OR x>30 THEN GO TO 330 IF y<0 OR y>22 THEN GO TO 340

LET size=132+(mw+l)*4 SAVE "L-H SUbr."CODE 40000,size CLS : PRINT "Address of subroutine PRINT ''"Address of byte SCR_NUM -PRINT ''"Lenght of subroutine - ";

PRINT ''"Number of screens - "; INK 2;mw+1 PRINT ''"Current screen - "; INK 2,-PEEK 40131

Текст кодового блока, формируемого программой "L-H SUBR", набранный в формате "GENS-4":

410 420 430 440 450 460 470

- "; INK 2;adr '; INK 2;adr+131 INK 2, size

NSTR

STR

ORG

50000

ENT

$

DI

PUSH

AF

PUSH

ВС

PUSH

DE

PUSH

HL

LD

A, (ANW)

SLA

A

SLA

A

LD

E,A

XOR

A

LD

D,A

LD

HL,WIND

ADD

HL, DE

LD

DE,SYV

LD

BC, 4

LDIR

LD

HL,(YV)

EX

DE, HL

CALL

STR

LD

A, (YV)

INC

A

LD

(YV),A

LD

A, (SYV)

DEC

A

LD

(SYV),A

CP

0

JR

NZ,NSTR

POP

HL

POP

DE

POP

BC

POP

AF

EI

RET

LD

A, E

AND

#18

ADD

A, #40

LD

H, A

LD

A,#98

ADD

A, H

LD

H, A

LD

A, E

AND

7

RRCA

RRCA

RRCA

ADD

A, D

LD

L,A

LD

(HADR) , HL

LD

A, E

AND

#18

SRL

A

SRL

A

SRL

A

OR

#58

LD

H, A

LD

A, E

AND

7

OR

A

RRA

RRA

RRA

RRA

ADD

A, D

LD

L,A

EX

DE, HL

LD

A, (SXV)

LD

c, A

LD

HL,(HADR)

NPL

PUSH

HL

LD

B, 8

LD

A,(DE)

PL

LD

(HL),A

INC

H

DEC

В

JR

NZ,PL

POP

HL

INC

HL

INC

DE

DEC

С

JR

NZ,NPL

RET

HADR

DEFW

0

SYV

DEFB

0

SXV

DEFB

0

YV

DEFB

0

XV

DEFB

0

ANW

DEFB

0

WIND

DEFB

0




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Проект - проект стратегии для спектрума.
Цены - основные цены на ZX компютеры и перефирию которую можно купить в Риге.
Мыльница - об авторах журнала.
Uni Hhrust Finder - рассказ об утилите Оrc'a для поиска файлов запакованных.
Вступление - стихи и содержание номера.

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