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

Форум - ещё раз о программе "ЖИЗНЬ".


ПРОГРАММА "ЖИЗНЬ"

ИФК: На крик о помощи по программе "LIFE" (ZX РЕВЮ 96/1-2), откликнулся Анисимов Денис и прислал свой вариант этой программы. Максимальное время сканирования всего жрана составляет около 4.5 секунд.

КОРР# Программа написана в формате GENS'a, и владельцам других ассемблеров придется изменить текст, особенно в области макросов. Макрос DWHL я переписал из описания MASM-128 (ИФК: ZX РЕВЮ 96/1-2), DWDE является переделкой DWHL, а UPHL я сделал сам. Счастливые пользователи MASM'a могут эти макросы не определять, а воспользоваться готовыми DOWN HL, DOWN DE и UP HL из этого ассемблера.

Изобразите на экране необходимую комбинацию точек и на-

шшшшшшш

форум

чинаите вызывать программу на исполнение, например так:

10 randomize usr adr : go to 10,

где adr - это адрес ассемблирования. Если запускать не через randomize..., а через let а=... то в це-ременной будет находится количество включенных пикселов. Это можно испльзовать так:

10 let a=usr adr : if a>0 then go to 10

или проще:

10 if usr adr then go to 10

Если какой-нибудь индивидуум в процессе передвижения подойдет к краю экрана, то он появится с другой стороны. И еще: у программы есть один недостаток для ее работы необходим буфер с адреса #С000 (49152) длиной #1800 (6144). Текст программы "Жизнь": Program 'Life' (С) Anisimow Den 1996

DWHL

UPHL

TS1

TS2

TS3

L1

DWDE

MAC

INC

H

LD

A.H

AND

#07

JR

NZ,$+12

LD

A,L

SUB

#E0

LD

L,A

JR

NC.S+6

LD

A,H

SUB

#08

LD

H,A

ENDM

MAC

INC

D

LD

A,D

AND

#07

JR

NZ,$+12

LD

A,E

SUB

#E0

LD

E.A

JR

NC,$+6

LD

A,D

SUB

#08

LD

D,A

ENDM

MAC

DEC

H

LD

A,H

CPL

AND

#07

JR

NZ.$+12

LD

A,L

SUB

#20

LD

L.A

JR

C,$+6

LD

A,H

ADD

A,#08

LD

H.A

ENDM

MAC

RRA

JR

NC.S+3

INC

В

ENDM

MAC

RLA

JR

NC,$+3

INC

С

ENDM

MAC

OR

С

INC

A

JR

NZ.S+3

INC

В

ENDM

ORG

40000

ENT

$

Dl

EXX

PUSH

HL

PUSH

IX

LD

HL,#C000

LD

DE,#C001

LD

BC,# 17FF

LD

(HL).L

LDIR

LD

HL,#4000

LD

B,#20

LD

A,(HL)

OR

A

шшшяшш

L2

L3 L4

L5

L6

L7

L8 L9

форум

JR

NZ.L8

PUSH

HL

INC

L

LD

BC,# 1F00

DJNZ

L1

PUSH

DE

LD

HL,#57E0

L10

LD

D,#20

LD

B,#20

L11

LD

A,(HL)

LD

A,(HL)

RLCA

OR

A

JR

C.L12

JR

NZ.L8

OR

A

INC

L

JR

NZ.L13

DJNZ

L2

INC

L

LD

HL,#56E0

DEC

D

LD

E,#BE

JR

NZ.L11

LD

B,#20

LD

A,L

LD

C,L

SUB

#20

LD

A,(HL)

JR

L21

OR

A

L12

DEC

L

JR

NZ.L5

LD

A,L

INC

L

CPL

DJNZ

L4

AND

#1F

LD

L,C

JR

Z.L17

UPHL

L13

LD

A,L

DEC

E

AND

#1F

JR

NZ.L3

CP

В

LD

C.B

JR

NC.L14

EXX

LD

B,A

El

L14

LD

A,L

JP

L34

OR

#1F

LD

HL,#4000

LD

L.A

PUSH

HL

L15

LD

A,(HL)

INC

H

RRCA

INC

E

JR

C.L16

INC

E

OR

A

LD

B,#20

JR

NZ.L18

LD

C,L

DEC

L

LD

A,(HL)

JR

L15

OR

A

L16

INC

L

JR

NZ.L9

LD

A,L

INC

L

AND

#1F

DJNZ

L7

JR

NZ.L19

LD

L.C

L17

POP

DE

POP

AF

LD

D,#20

PUSH

HL

EXX

DWHL

POP

HL

DEC

E

JR

L22

JR

L6

L18

LD

A,L

LD

HL,#4000

AND

#1F

LD

E,#C0

L19

CP

С

PUSH

HL

JR

C.L20

POP

HL

LD

С,A

форум

L20

L22

L23

L24

L25

XOR

L

LD

A.(HL)

LD

L,A

TS1

DWHL

LD

A,(DE)

DEC

E

TS1

JR

NZ.L10

POP

DE

POP

DE

POP

HL

LD

А,С

L26

LD

A,(IX)

SUB

В

TS2

INC

A

LD

A,(HL)

LD

D,A

TS2-

LD

A,B

LD

A,(DE)

EXX

TS2

POP

HL

PUSH

ВС

OR

L

EXX

LD

L.A

POP

HL

PUSH

HL

EXX

UPHL

LD

А,С

LD

A.H

LD

(DAT+1),A

CP

#40

PUSH

HL

JR

NC.L23

PUSH

DE

LD

H,#57

LD

C,#7F

EX

(SP).HL

L27

BIT

6,C

POP

IX

JR

NZ.L28

EXX

LD

A.(DE)

LD

ВС,#0000

OR

(HL)

PUSH

DE

OR

(IX)

EXX

JR

NZ.L28

LD

D.H

LD

C,#FE

LD

E,L

L28

PUSH

HL

DWDE

RRC

С

LD

A.D

JR

C.L30

CP

#58

LD

A,L

JR

C.L25

OR

#E0

LD

D,#40

INC

A

LD

ВС,#0000

JR

NZ.L29

EXX

DAT

LD

A, #00

BIT

5,D

JR

L31

EXX

L29

DEFB

#DD

JR

Z.L26

INC

L

PUSH

HL

INC

L

PUSH

DE

INC

E

LD

A,L

L30

LD

B,#00

OR

#1F

LD

A,(IX)

LD

L.A

TS3

LD

A,E

LD

A,(HL)

OR

#1F

TS3

LD

E,A

LD

A,(DE)

LD

A,(IX+#1F)

TS3

TS1

LD

А,В

EX

AF.AF'

ЕХХ

LD

A,H

LD

H,L

ADD

AtL

EX

AF.AF'

LD

L,A

EX

AF.AF'

ADD

A,L

EXX

LD

B.A

EX

(SP).HL

CP

#05

JR

NC.L33

CP

#03

JR

Z.L32

LD

A,(HL)

RRCA

OR

С

INC

A

JR

NZ.L33

LD

А, В

CP

#04

JR

NZ.L33

LD

А,С

RLCA

CPL

SET

7,H

OR

(HL)

LD

(HL),A

EXX

INC

ВС

EXX

POP

HL

BIT

7,С

JR

NZ.L27

EXX

DEC

D

EXX

JR

NZ.L27

POP

HL

POP

IX

EXX

POP

DE

DEC

E

JP

NZ.L24

EXX

LD

HL,#C000

LD

DE,#4000

LD ВС,# 1800

El

HALT LDIR

L34 POP IX POP HL EXX RET

ИФК: Дмитрий прислал еще одну процедуру.

КОРР: Программа не является полностью моей, т.к. идею я взял из программы Кривцова А.Н. в ZX-РЕВЮ 94/4, стр 34.

Процедура выводит на экран стандартную картинку (6912), которую необходимо загрузить по адресу #С000 (49152).

(С) Anisimov Den 1996

ORG

40000

ENT

$

LD

DEt#0000

S1

PUSH

DE

HALT

S2

PUSH

DE

LD

A,#7F

S3

LD

C,A

LD

A,D

CP

#20

JR

NC.S6

LD

A,E

ADD

A,A

ADD

A,A

ADD

A,A

LD

L,A

LD

H,# 16

ADD

HL.HL

ADD

HL.HL

LD

A,L

ADD

A,D

LD

L,A

LD

А,С

CP

#40

JR

NZ.S5

PUSH

DE

PUSH

HL

S4

55

56

LD

A,H

ADD

A,A

ADD

A,A

ADD

A,A

AND

#7F

LD

H,A

LD

D,H

LD

E,L

SET

7,H

LD

B,#08

LD

A,(HL)

LD

(DE).A

INC

H

INC

D

DJNZ

S4

POP

HL

LD

B,H

LD

DE,#8000

ADD

HL.DE

LD

A,(HL)

LD

H.B

POP

DE

LD

(HL),A

DEC

D

LD

A,C

SUB

#09

CP

#37

JR

NZ.S3

POP

DE

DEC

D

INC

E

LD

A,E

CP

#18

JR

NZ.S2

POP

DE

INC

D

LD

A,D

CP

#3F

JR

NZ.S1

RET

**************************************




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Введение - Третий номер чебоксарской нЕрЕгУлЯрНоЙ почти модемной независимой газеты.
FLASH новости - новости из Новосибирска от FLASH INC.
Реклама - Реклама и объявления...
Inferno - Письма в редакцию.
От автора - Вот уже и середина августа...

В этот день...   29 марта