ZX-Ревю 1995 №5 1995 г.

Визитная карточка - прыгающая "бегущая строка".


Прыгающая "бегущая строка".

Перейдем к следующей процедуре. На этот раз это опять бегущая строка, вернее переделка ранее опубликованной процедуры (см. ZX-РЕВЮ-94, N1). Теперь строка может прыгать, что очень зрелищно выглядит. Данный эффект при своем действии не затирает фоновую картинку "под строкой", буквы прыгают как-бы "сквозь" изображение.

ORG

EQU

ENT

LD

LD

LD

BUFF

50000

#F000 $

HL,BUFF

D,H

E,L

ВИЗИТНАЯ КАРТОЧКА

ВИЗИТНАЯ КАРТОЧКА

7

INC

DE

62

JR

NZ,SCROL3

8

LD

(HL),0

63

LD

A,(WIDTH)

9

LD

ВС,фOFFF

64

DEC

A

10

LDIR

65

JR

NZ,SCROL6

11

EI

66

LD

A,(POSLET)

12

LOOPl

CALL

SCROL

67

RRCA

13

CALL

PRINT

68

LD

(POSLET),A

14

HALT

69

JR

NC,SCROL7

15

CALL

PR1

70

LD

HL,(COUNTL)

16

LD

A,#7F

71

INC

HL

17

IN

A,(#FE)

72

LD

(COUNTL),HL

18

RRA

73

SCROL7

LD

A,(WIDTHL)

19

JR

C,LOOPl

74

SCROL6

LD

(WIDTH),A

20

RET

15

RET

21

SCROL

LD

IX,(COUNTL)

76

PRINT

LD

HL,(ADR1)

22

LD

A,(IX+0)

77

INC

HL

23

OR

A

78

LD

(ADR1),HL

24

JR

NZ,SCROL1

79

LD

DE,(TIME)

25

LD

IX,(STARTL)

80

DEC

DE

26

LD

A,(IX+0)

81

LD

A,D

27

SCROL1

CP

#20

82

OR

E

28

OR

NC,SCROL2

83

JR

NZ ,M1

29

LD

(WIDTH),A

84

LD

DE,{TIME1)

30

LD

(WIDTHL),A

85

LD

HL,(APR)

31

INC

IX

86

LD

(ADR1),HL

з?

SCROL2

LD

(COUNTL),IX

87

Ml

LD

(TIME),DE

33

LD

DE,(POSLET)

88

LD

B, 8

34

LD

D, #08

89

LD

C,(HL)

35

LD

L,(IX+0)

90

LD

DE,BUFF+#08E0

36

LD

H,#00

91

LD

HL,BUFF+#00E0

37

ADD

HL,HL

92

M3

PUSH

ВС

38

ADD

HL,HL

93

PUSH

HL

39

ADD

HL,HL

94

PUSH

DE

40

LD

BC,(#5C36)

95

PUSH

HL

41

ADD

HL,BC

96

PUSH

DE

42

SCROL3

PUSH

HL

97

CALL

GET P

43

LD

C,D

98

POP

DE

44

LD

B,0

99

PUSH

HL

45

DEC

С

100

LD

B, 32

46

ADD

HL,BC

101

M2

LD

A,(HL)

47

LD

a;(hl)

102

LD

(DE),A

48

LD

HL,BUFF+#00FF

103

INC

E

49

LD

B,D

104

INC

L

50

LD

C,0

105

DJNZ

M2

51

DEC

В

106

POP

HL

52

ADD

HL,BC

107

POP

DE

53

LD

B, #20

108

LD

B, 32

54

AND

E

109

M4

EX

DE,HL

55

CPL

110

LD

A,(DE)

56

CP

#FF

111

OR

(HL)

57

SCROL4

RL

(HL)

112

LD

(DE),A

58

DEC

HL

113

EX

DE,HL

59

DJNZ

SCROL4

114

INC

E

60

POP

HL

115

INC

L

61

DEC

D

116

DJNZ

M4

ВИЗИТНАЯ КАРТОЧКА

117

POP

DE

172

POP

BC

118

INC

D

173

DEC

С

119

POP

HL

174

DJNZ

PR 2

120

INC

H

175

RET

JL21

POP

BC

176

WIDTHL

DEFB

1

122

DEC

С

177

WIDTH

DEFB

1

123

DJNZ

M3

178

STARTL

DEFW

SCROLT

124

RET

179

COUNTL

DEFW

SCROLT

125

GET_P

LD

A,#AF+8

180

POSLET

DEFB

#80

126

SUB

С

181

ADR

DEFW

VERT

127

LD

С.A

182

ADR1

DEFW

VERT

128

AND

A

183

TIME

DEFW

41

129

RRA

184

TIME1

DEFW

41

130

SCF

185

VERT

DEFB

0,2,4,6,8,10,12

131

RRA

186

DEFB

14,16,17,18,19,20

132

AND

A

187

DEFB

20,21,21,22,22,22

133

RRA

188

DEFB

23,23,23,23,22,22

134

XOR

С

189

DEFB

22,21,21,20,20,19

135

AND

#F8

190

DEFB

18,17,16,14,12,10

136

XOR

С

191

DEFB

8,6,4,2

137

LD

H, A

192

SCROLT

DEFM

"HELLO, ZAGORETS"

138

LD

A, 0

193

DEFM

" ANDREY FROM"

139

RbCA

194

DEFM

" MASTERSOFT"

140

RLCA

195

DEFM

" PRESENTS NEW"

141

RLCA

196

DEFM

" TEXT-SCROL"

142

XOR

С

197

DEFM

" SPECIAL FOR "

143

AND

#C7

198

DEFB

2

144

XOR

С

199

DEFM

"SINCLAIR PRISE"

145

RLCA

200

DEFB

1

146

RLCA

201

DEFM

" IN 08.05.1995."

147

LD

L, A

202

DEFM

" HELLOS "

148

LD

A, 0

203

DEFB

2

149

AND

#07

204

DEFM

"AHRsoft,"

150

LD

D, A

205

DEFM

" CONSULsoft"

151

LD

A,8

206

DEFM

" & MASTERsoft"

152

SUB

D

207

DEFB

1

153

LD

D, A

208

DEFM

" GOOD BYE !"

154

RET

209

DEFM

" BYE! BYE!!"

155

PR1

LD

HL,(ADR1)

210

DEFM

" BYE!! "

156

LD

В, 8

211

DEFM

M II

157

LD

DE,BUFF+#08E0

212

DEFM

II II

158

LD

C,(HL)

213

DEFB

0

159

PR2

PUSH

BC

160

PUSH

DE

Длина

блока кодов без текста

161

PUSH

DE

(до метки SCROLT) 346 байт, вмес

162

CALL

GET P

те с

: демонстрационным текстом -

163

POP

DE

572

байта.

Шестнадцатиричный

164

LD

B, 32

дамп:

165

PR3

LD

A,(DE)

166

LD

(HL),A

С350

i: 21

00 FO 54 5D 13 36 00 :1Е

167

INC

E

С358

t: 01

FF OF ED BO FB CD 70 :FF

168

INC

L

С360

с C3

CD DF C3 76 CD 53 C4 :AF

169

DJNZ

PR3

С368

li 3E

7F DB FE IF 38 EF C9 iDO

170

POP

DE

С370

i: DD

2A 76 C4 DD 7E 00 B7 :86

171

INC

D

С378

i: 20

07 DD 2A 74 C4 DD 7E :FC

ВИЗИТНАЯ КАРТОЧКА

С380

00

FE

20

30

08

32

73

С4

02

С538: 52 73 6F 66 74 01 20 20 :4С

С388

32

72

С4

DD

23

DD

22

76

28

С540: 20 20 20 20 20 47 4F 4F :8А

С390

С4

ED

78

С4

16

08

DD

96

С548: 44 20 42 59 45 20 21 20 :В2

С398

00

26

00

29

29

29

ED

57

С550: 20 20 20 20 42 59 45 21 i96

СЗАО

36

09

Е5

06

00

С558: 20 20 42 59 45 21 21 20 : 9F'

СЗА8

OD

09

21

FF

F0

42

ОЕ

5F

С560: 20 42 59 45 21 21 21 20 :А8

СЗВО

00

05

09

06

20

A3

2F

FE

77

С568: 20 20 20 20 20 20 20 20 :2D

СЗВ8

FF

СВ

16

10

FB

Е1

15

87

С570: 20 20 20 20 20 20 20 20 :35

СЗСО

' 20

Е2

ЗА

73

С4

3D

20

13

66

С578: 20 20 20 20 20 20 20 20 :3D

СЗС8

ЗА

78

С4

OF

32

78

С4

30

АЕ

С580: 20 2Q 20 20 20 20 20 20 :45 |

C3D0

07

76

С4

23

22

76

С4

7D

С588: 20 20 20 00 00 00 00 00 :AD |

C3D8

ЗА

72

С4

32

73

С4

С9

67

1

СЗЕО

С4

23

22

С4

ED

АЕ

Об особенностях программы.

СЗЕ8

7D

С4

ВЗ

20

OA

ED

Текст располагается с адреса

C3F0

7F

С4

79

С4

22

55

50346. Предпочтительно применение

C3F8

С4

ED

53

7D

С4

06

08

Стилизованного символьного набо

С400

11

ЕО

F8

21

ЕО

F0

С5

Е5

48

ра. При этом переход на него вы

С408

D5

Е5

D5

CD

С4

D1

Е5

DO

полняется традиционно - изменени

С410

06

20

12

10

FA

DC

ем CHARS - двухбайтовой системной

С418

Е1

D1

06

20

ЕВ

В6

12

81

переменной по адресу 23606/07.

С420

ЕВ

10

F7

D1

14

Е1

Е4

Однако, можно сделать замену:

С428

24

С1

0D

10

D9

С9

ЗЕ

В7

85

С4 30

91

4F

А7

IF

37

1F

А7

1F

Вб

40 LD ВС,ADR-256

С438

А9

Е6

F8

А9

67

ЗЕ

00

07

D8

С440

07

07

А9

Е6

С7

А9

07

07

IF

где ADR - адрес загрузки стилизо- I

С448

6F

ЗЕ

00

Е6

07

57

ЗЕ

08

43

ванного символьного набора. Тогда В

С450

92

57

С9

С4

06

08

3D

специальное переключение CHARS не

С458

11

ЕО

F8

С5

D5

D5

CD

8F

понадобится.

С460

С4

D1

06

20

77

ВА

Кроме самой программы, текста

С468

10

FA

D1

14

С1

0D

10

25

и стилизованного символьного на

С470

ЕВ

С9

01

01

АА

С4

АА

С4

С6

бора (при необходимости), для ра

С478

80

81

С4

81

С4

29

00

29

98

боты еще требуется буферная об

С480

00

00

02

04

06

08

OA

ОС

ласть памяти объемом 4К. В данном в

С488

ОЕ

10

11

12

13

14

14

15

DD

случае эта область находится по

С490

15

16

16

16

17

17

17

17

07

адресу #F000 (61440). Иными сло

С498

16

16

16

15

15

14

14

13

03

вами, эта область памяти (по ад

С4А0

12

11

10

ОЕ

ОС

OA

08

06

С9

рес #FFFF включительно) недоступ

С4А8

04

02

48

45

4F

12

на для других целей. В нее копи

С4В0

20

41

47

4F

52

45

54

ВО

руется изображение, которое нахо

С4В8

53

20

41

44

52

45

59

В2

дится за "строкой".

С4СО

20

46

52

4F

4D

20

4D

41

86

Для очистки буферной области

С4С8

53

54

45

52

53

4F

46

54

06

памяти в авторский вариант прог

C4D0

20

50

52

45

53

45

54

D5

раммы добавлены строки 4-10. Ад

C4D8

53

20

45

57

20

54

45

В2

рес этой области легко можно из

С4ЕО

58

54

2D

53

43

52

4F

00

менить, он задается в строке 2

С4Е8

20

53

50

45

43

49

41

CD

(прим.ИФК).

C4F0

20

46

4F

52

20

02

53

49

79

Теперь о том, как задавать

C4F8

43

41

49

52

20

50

Е5

амплитуду и периодичность "прыж

С500

52

49

53

45

01

20

49

ВО

ков" бегущей строки. В строках

С508

20

30

38

30

35

31

47

185-191 расположена таблица

С510

39

39

35

20

48

45

A3

"прыжков". Числа - это координаты

С518

4F

53

20

02

41

48

52

С8

бегущей строки по вертикали. Из

С520

73

6F

66

74

20

43

4F

7F

менив их, можно заставить бегущую

С528

53

55

73

6F

66

74

ЕВ

строку "прыгать" по-другому. В

CJ530

20

26

20

4D

41

53

54

45

D5

строках 183 и 184 надо занести

ВИЗИТНАЯ КАРТОЧКА

длину полученной таблицы в байтах. Это число должно быть равно общему количеству цифр в строках 185-191.

★ * *




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
LАSER SQUАD-II - новелла (часть 1).
Ликбез - о правилах хорошего тона в программировании.
Рассказ - Ну, юзер, погоди!
Новости - вести с полей: CPU, EТERNIТY INDUSТRY.
Аперативчик - Точность - вежливость королей; о новом выпуске журнала.

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