Периферия своими руками 1993 г.

ZX-модем - программная поддержка.


8.2. Программная поддержка.

ZX-модем пользуется программной поддержкой, написанной
в машинных кодах, которая занмиает 1730 байтов и начинается
с адреса 63000. Она служит для прнеиа н передачи желаеиого
количества байтов из памяти СПЕКТРУМа.

Программа обеспечивает исполнение двух коианд.

Первая - TRANSMIT. Прн ее выполнении передается желае-
мое количество байтов. После этой команды стоит число, озна-
чающее количество байтов, которые будут посылаться (похожа
на команду SAVE).

Вторая команда - RECIVE. После нее следует адрес, в ко-
торый должны быть помещены данные.

Возможно управление приеиои н передачей байтов и из
БЕЙСИКа, через функцию DEF FN.

Во время приема ZX-модеи выполняет проверку четности
принимаемых байтов и, в случае ошибки, оповещает о числе не-
правильно принятых байтов.

Технические испытания показывают, что на 100000 переда-
ваеиых байтов чаще всего появляется не более одной ошибки.
Позтоиу предлагается передача по частяи (по 5 Кбайт) с пов-
тореннеи блока, если возникла ошибка.

Когда наберете программу, которую мы приводии ниже,обя-
зательно исполните копию на кассету с помощью команды:

SAVE "modem" CODE 63000,1734
- иначе при возникновении ошибки рискуете остаться нн с чей.

Прежде чей начтете записывать коды в память, опустите
системную переменную RAMT0P командой

CLEAR 62999

Программа запускается командой

RANDOMIZE USR 63000

Следует напомнить, что програииа написана исключительно
для модели СПЕКТРУМ 48К, н програииа не настраивается.

Перед началои ввода иашннного кода Ваи надо набрать
программу БЕЙСИК-загрузчика. Эта программа почти полностью
соответствует програиие, поиещенной в разделе о интерфейсе
ZX-LPRINT-III. Незначительные изменения отиечены знакои !!!.

1 CLEAR 62999: LET add=63000: DIM a(10) !!!

2 DEF FN A(a$)=(CODE a$(l)-48-(7 AND a$(1)>"9"))*16+(C0DE
a$(2)-48-(7 AND a$(2)>"9"))

10 FOR f=101 TO 317 ! ! !

12 RESTORE f

14 PRINT AT 0,0;f

15 READ a$

16 LET sum=0

20 FOR 1=1 TO 2
22 LET b$=a$(2*1-1 TO 2*1)
24 LET a(l)=FN A(b$)
26 NEXT 1

30 LET add=a(1)*2 56+a(2) !!!

32 LET sum=a(l)+a(2)

40 FOR 1=3 TO 10

44 LET b$-a$(2*l-l TO 2*1)

46 LET a(1)=FN A(b$)

48 LET sum="sum+a(1)

50 POKE add,a(1)

52 LET add»add+l

54 NEXT 1

60 LET b$-a$(21 TO)

62 LET CS-FN A(b$)

64 LET csl=sum-256*INT(sum/256)

66 IF csocsl THEN PRINT "ERROR!!!!!! line ";f: BEEP 2,

10: STOP
68 NEXT f: STOP

КОММЕНТАРИЙ.

Строка 10 - главный цикл ввода даннык.
Строка 20 - ввод двук байтов адреса.
Строка 30 - определение адреса.
Строка 40 - ввод 8-МИ кодов.
Строка 60 - ввод контрольной суммы.

Приведенные ннже строки DATA напечатаны вразрядку. Это
сделано для удобочитаеиости данных. Ваи же при наборе, так
же как и в разделе о ZX-LPRINT-III, следует набирать их под-
ряд. Никаких пробелов в строке DATA быть не должно. После
того, как програииа будет набрана, запустите ее (RUN). Все
сделанные при наборе ошибки будут выявлены путей пронеркн
контрольных суми. Исправьте их и, когда убедитесь, что оши-
бок больше нет, отгрузите програииу на ленту койандой SAVE
"modem" CODE 63000,1734.

101

DATA

"F618

C3

B6

F8

00

00

54

52

41

66"

102

DATA

"F620

4E

53

4D

49

54

20

01

52

14"

103

DATA

"F628

45

43

45

49

56

45

20

01

F0"

104

DATA

"F630

00

20

43

6F

70

79

72

69

ВС"

105

DATA

"F638

67

68

74

20

20

44

2E

4A

6D"

106

DATA

"F640

6F

76

61

6E

6F

76

69

63

9B"

107

DATA

"F648

20

20

31

39

38

35

20

20

95"

108

DATA

"F650

20

20

20

20

20

20

20

41

67"

109

DATA

"F658

6C

6C

20

72

69

67

68

74

64"

110

DATA

"F660

73

20

72

65

73

65

72

76

80"

111

DATA

"F668

65

64

20

20

20

20

20

20

E7"

112

DATA

"F670

20

20

20

84

8C

8C

20

88

OA"

113

DATA

"F678

20

88

20

20

20

20

88

20

3E"

114

DATA

"F680

88

20

8C

88

20

8C

8C

20

8A"

115

DATA

"F688

84

8C

8C

20

88

20

88

20

8A"

116

DATA

"F690

20

20

20

20

84

82

20

81

AD"

117

DATA

"F698

89

20

20

20

20

20

8B

89

CB"

118

DATA

"F6A0

8A

85

20

85

20

8A

20

8A

9E"

119

DATA

"F6A8

85

8C

88

20

8B

89

8A

20

15"

120

DATA

"F6B0

20

20

20

84

8E

8C

20

89

4D"

121

DATA

"F6B8

81

88

20

20

20

20

8A

20

El"

122

DATA

"F6C0

8A

81

8C

89

20

8E

8C

82

92"

123

DATA

"F6C8

85

8C

8C

20

8A

20

8A

20

CF"

124

DATA

"F6D0

20

20

20

20

20

20

20

20

C6"

125

data

"f6d8

20

20

20

20

20

20

20

20

ce"

126

data

"f6e0

20

20

20

20

20

20

20

20

d6"

127

data

"f6e8

20

20

20

20

20

20

20

20

de"

128

data

"f6f0

20

43

43

49

54

54

2d

56

00"

129

data

"f6f8

32

34

20

73г

74

61

6e

64

8e"

130

data

"f700

61

72

64

20

20

20

20

20

ce"

131

data

"f708

20

20

20

20

20

20

20

20

ff"

132

data

"f710

20

4e

4f

20

73

74

6f

70

aa"

133

data

"f718

20

62

69

74

73

20

3b

31

6d"

134

data

"f720

20

73

74

61

72

74

20

62

e7"

135

data

"f728

69

74

20

20

20

20

20

20

вс"

136

data

"f730

20

50

61

72

69

74

79

за

fa"

137

data

"f738

20

20

20

4f

44

44

3b

45

e6"

138

data

"f740

56

45

4e

20

28

50

20

74

4c"

139

data

"f748

6f

20

73

65

6c

65

63

74

4e"

140

data

"f750

29

42

61

75

64

20

72

61

df"

141

data

"f758

74

65

за

36

30

30

3b

31

64"

142

data

"f760

32

30

30

20

28

42

20

74

07"

143

data

"f768

6f

20

73

65

6c

65

63

74

6e"

144

data

"f770

29

31

32

30

30

20

48

7a

35"

145

data

"f778

20

48

49

47

48

20

62

69

9a"

146

data

"f780

74

3b

32

34

30

30

20

48

54"

147

data

"f788

7a

20

4c

4f

57

20

62

69

f6"

148

data

"f790

74

20

20

20

20

20

20

20

db"

149

data

"f798

20

20

20

20

20

20

20

20

8f"

150

data

"f7a0

20

20

20

20

20

20

20

20

97"

151

data

"f7a8

20

20

20

20

20

20

20

20

9f"

152

data

"f7b0

20

20

20

20

20

20

20

20

a7"

153

data

"f7b8

20

20

20

20

20

20

20

20

df"

154

data

"f7c0

72

65

73

73

20

20

20

20

f4 "

155

data

"f7c8

20

20

20

20

20

20

20

20

bf"

156

data

"f7d0

20

20

20

20

20

20

20

20

c7"

157

data

"f7d8

20

20

20

20

20

20

20

20

cf"

158

data

"f7e0

20

20

20

20

20

20

20

20

d7"

159

data

"f7e8

20

20

20

20

20

20

20

20

df"

160

data

"f7f0

20

20

a3

20

66

6f

72

20

51"

161

data

"f7f8

74

72

61

6e

73

6d

69

74

61"

162

data

"f800

20

3b

20

52

20

66

6f

72

2c"

163

data

"f808

20

72

65

63

65

69

76

65

03"

164

data

"f810

20

20

28

54

72

61

6e

73

78"

165

data

"f818

6d

69

74

20

78

2c

79

29

co"

166

data

"f820

20

3b

20

28

52

65

63

65

за"

167

data

"f828

69

76

65

20

78

29

20

20

65"

168

data

"f830

20

20

20

20

20

20

20

20

28"

169

data

"f838

20

20

20

20

20

20

20

20

30"

170

data

"f840

20

20

20

20

20

20

20

20

38"

171

data

"f848

20

20

20

20

20

20

20

20

40"

172

data

"f850

20

78

20

3d

20

73

74

61

a5"

173

data

"f858

72

74

20

61

64

64

72

65

56"

174

data

"f860

73

73

20

20

20

20

20

20

fe"

175

data

"f868

20

20

20

20

20

20

20

20

60"

176

data

"f870

20

79

20

3d

20

6c

65

6e

bd"

177

data

"f878

67

68

74

20

20

20

20

20

53"

178

data

"f880

20

20

20

20

20

20

20

20

78"

179

data

"f888

20

20

20

20

20

20

20

20

80"

180

data

"f890

20

20

20

20

20

20

20

20

88"

181

data

"f898

20

20

20

20

20

20

20

20

90"

182

data

"f8a0

20

20

20

20

20

20

20

20

98"

183

data

"f8a8

20

20

20

20

20

20

20

20

ao"

184

data

"f8b0

20

00

20

20

20

20

21

b2

ib"

185

data

"f8b8

5c

3e

17

77

23

3e

f6

77

аб"

186

data

"f8c0

cd

81

fa

af

32

8c

5c

06

cf"

187

data

"f8c8

16

3e

od

d7

10

fb

01

fe

02"

188

data

"f8d0

fb

ed

78

cb

67

28

e9

cb

36"

189

data

"f8d8

5f

28

e5

cd

4b

fb

20

ee

5d"

190

data

"f8e0

c9

21

2a

59

7e

fe

78

28

61"

191

data

"f8e8

11

cd

13

f9

3e

78

cd

od

5a"

192

data

" f8f0

f9

3e

38

23

23

cd

ob

f9

6e"

193

data

"f8f8

af

c9

cd

3f

f9

3e

38

cd

bo"

194

data

"f900

od

f9

3e

78

23

23

cd

ob

d3 "

195

data

"f908

f9

af

c9

77

23

77

23

77

id"

196

data

"f910

23

77

c9

3e

02

32

8e

fc

68"

197

data

"f918

3e

04

32

a3

fc

3e

02

32

96"

198

data

"f920

ed

fb

3e

f5

32

f4

fb

3e

93"

199

data

"f928

81

32

00

fc

3e

cd

32

fa

07"

200

data

"f930

fb

32

06

fc

3e

b9

32

ос

8d"

201

data

"f938

fc

3e

96

32

ca

f9

c9

зе

fd"

202

data

"f940

01

32

8e

fc

3e

02

32

a3

ob"

203

data

"f948

fc

3e

01

32

ed

fb

3e

14

e8"

204

data

"f950

32

f4

fb

3e

46

32

00

fc

1с"

205

data

"f958

3e

за

32

fa

fb

32

06

fc

24"

206

data

"f960

3e

7d

32

ос

fc

3e

ie

32

dc"

207

data

"f968

ca

f9

c9

21

oa

59

7e

fe

ed"

208

data

"f970

78

28

11

cd

95

f9

3e

78

2b"

209

data

"f978

cd

od

f9

3e

38

23

23

cd

cd"

210

data

"f980

ob

f9

af

c9

cd

af

f9

3e

a8"

211

data

"f988

38

cd

od

f9

3e

78

23

23

88"

212

data

"f990

cd

ob

f9

af

c9

3e

e4

32

26"

213

data

"f998

71

fc

3e

ec

32

74

fc

3e

08"

214

data

"f9a0

ea

32

d6

fb

3e

e2

32

dd

b5"

215

data

"f9a8

fb

3e

oa

32

c9

f9

c9

3e

df"

216

data

"f9b0

e4

32

74

fc

3e

ec

32

71

fc"

217

data

"f9b8

fc

3e

ea

32

dd

fb

3e

e2

ff"

218

data

"f9c0

32

d6

fb

3e

09

32

c9

f9

f7"

219

data

"f9c8

c9

09

ie

3e

02

cd

01

16

d5"

220

data

"f9d0

11

31

f6

1a

fe

00

28

08

49"

221

data

"f9d8

fe

01

28

54

d7

13

18

f3

41"

222

data

"f9e0

за

ca

f9

fe

ie

28

05

cd

ec"

223

data

'•f9e8

el

f8

18

06

21

2a

59

cd

49"

224

225

226

227

data
data
data

data

"f9f0
"f9f8
"fa00

"fa08

fa
05
59

74

f8
cd
cd

28

за
6b
84

17

c9
f9
f9

fe

f9
18
cd

62

fe
06
87

cc

09
21
fa

el

28
oa
fe

f8

06"
70"
e9"

ba"

228

data

"fa10

fe

70

cc

6b

f9

fe

00

28

ce"

229

data

"fa18

eb

fe

72

28

ос

fe

20

c8

87"

230

data

"fa20

18

5f

11

id

f6

oe

00

18

db"

231

data

"fa28

aa

11

27

f6

oe

01

18

a3

c4"

232

data

"fa30

21

00

00

cd

87

fa

fe

ос

a3"

233

data

"fa38

28

47

fe

od

28

27

f5

d7

c7"

234

data

"fa40

f1

fe

2c

28

14

d6

30

fe

95"

235

data

"fa48

oa

f2

81

fa

e5

d1

06

09

7e"

236

data

"fa50

19

10

fd

16

00

5f

19

18

16"

237

data

" fa58

da

cd

e8

fa

79

fe

00

oe

60"

238

data

"fa60

oa

28

cd

18

f5

11

80

13"

239

data

"fa68

5a

06

20

3e

78

12

13

10

cd"

240

data

"fa70

fc

f1

79

fe

oa

f5

cc

f1

8a"

241

data

" fa78

fa

f1

ca

17

fc

fe

01

28

61"

242

data

" fa80

15

cd

af

od

c3

cb

f9

e5

84"

243

data

"fa88

21

3b

5c

cb

6e

28

fc

за

dl"

244

data

"fa90

08

5c

cb

ae

el

C9

f3

06

oa"

245

data

"fa98

00

cd

55

fb

cd

64

fb

c5

ao "

246

data

"faao

3e

2c

d7

af

cd

bd

fa

3e

4c"

247

data

"faa8

20

d7

3e

45

d7

3e

52

d7

5a"

248

data

"fabo

3e

52

d7

3e

4f

d7

3e

52

05"

249

data

"fab 8

d7

3e

20

d7

el

11

01

00

Bl"

250

data

"faco

d5

11

oa

00

d5

11

64

00

f4"

251

data

" fac8

d5

11

e8

03

d5

11

10

27

bo"

252

data

"fado

d5

06

05

af

d1

e5

ed

52

4e"

253

data

"fad8

fa

el

fa

3c

08

f1

08

18

fc"

254

data

" faeo

f4

c6

30

el

d7

10

ec

c9

41"

255

data

"fae8

7c

32

27

fc

7d

32

26

fc

84"

256

data

"fafo

c9

за

27

fc

57

за

26

fc

c3"

257

data

"faf8

5f

19

7c

32

2d

fc

7d

32

fo"

258

data

"fb00

2 с

fc

c9

dd

2a

ob

5c

dd

37"

259

data

" fb08

6e

04

dd

66

05

dd

5e

ос

04"

260

data

" fb10

dd

56

od

c9

cd

03

fb

cd

ac"

261

data

"fbi 8

e8

fa

d5

el

cd

f1

fa

06

69"

262

data

"fb20

00

5f

db

fd

e6

80

bb

20

93"

263

data

" fb2 8

f6

10

f7

06

oa

c3

17

fc

06"

264

data

"fb30

cd

03

fb

f3

06

oa

cd

55

ib"

265

data

"fb38

fb

cd

64

fb

c5

e5

ci

el

a6"

266

data

"fb40

11

01

00

a7

ed

52

f8

01

2c"

267

data

"fb48

00

00

c9

c5

01

fe

7f

ed

3c"

268

data

"fb50

78

cb

47

ci

c9

cd

4b

fb

72"

269

data

"fb58

c8

db

fd

e6

80

bb

28

f5

31"

270

data

"fb60

5f

10

f2

c9

dd

e5

fd

e5

29"

271

data

"fb68

e5

dd

el

fd

21

00

00

e5

09"

272

data

"fb70

21

00

00

01

00

00

16

80

23"

273

data

"fb7 8

db

fd

e6

80

5f

06

00

db

fl"

274

data

"fb80

fd

e6

80

bb

20

11

10

f7

dl"

275

data

"fb88

el

fd

e5

ci

dd

e5

d1

fd

97"

276

data

"fb90

el

dd

el

ed

52

fb

c9

cb

f8"

277

data

"fb98

22

da

7c

fb

3e

e9

b8

f2

d7"

278

data

"fbao

af

fb

af

b9

c2

c4

fb

oe

3c"

279

data

"fba8

01

cd

ec

fb

c3

76

fb

af

3b"

280

data

" fbbo

b9

ca

76

fb

23

cd

f8

fb

82"

281

data

"fbb8

3e

09

bd

ca

d4

fb

37

cb

52"

282

data

"fbco

c3

76

fb

23

cd

04

fc

fb"

283

data

"fbc8

3e

09

bd

ca

db

fb

a7

cb

d9"

284

data

"fbdo

c3

76

fb

af

b4

e2

e2

42"

285

data

"fbd8

fb

18

od

af

b4

ea

e2

fb

id"

286

data

"fbeo

18

06

el

77

23

c3

6f

fb

al"

287

data

" fbe8

fd

23

18

f6

06

01

cd

10

f5"

288

data

"fbfo

fc

10

fb

06

14

10

fe

c9

e3 "

289

data

"fbf8

06

01

за

10

fc

10

fb

06

51"

290

data

"fc00

46

10

fe

c9

06

01

за

10

6a"

291

data

"fc08

fc

10

fb

06

7d

10

fe

c9

65"

292

data

"fc10

c5

06

ao

10

fe

ci

c9

f3

02"

293

data

"fc18

c5

06

04

d9

cd

8d

fc

d9

eb"

294

data

"fc20

10

f9

ci

10

f3

21

00

00

oa"

295

data

"fc28

cd

a1

fc

11

00

00

af

cb

19"

296

data

"fc30

46

cc

a1

fc

c4

8d

fc

cb

f3 "

297

data

" fc38

4e

cc

a1

fc

c4

8d

fc

cb

03"

298

data

"fc40

56

cc

a1

fc

c4

8d

fc

cb

13"

299

data

"fc48

5e

cc

a1

fc

c4

8d

fc

cb

23"

300

data

"fc50

66

cc

a1

fc

c4

8d

fc

cb

33"

301

data

" fc58

6e

cc

a1

fc

c4

8d

fc

cb

43"

302

data

"fc60

76

cc

a1

fc

c4

8d

fc

cb

53"

303

data

"fc68

7e

cc

a1

fc

c4

8d

fc

b6

4e"

304

data

"fc70

eb

ec

a1

fc

e4

8d

fc

13

60"

305

data

"fc78

ed

52

cd

8d

fc

eb

c2

28

de"

306

data

"fc80

fc

cd

8d

fc

db

fd

fb

c9

6a"

307

data

" fc88

cd

d6

fc

18

02

06

01

db

if"

308

data

"fc90

fd

cd

b2

fc

d3

fd

cd

b9

5a"

309

data

"fc98

fc

10

ed

c9

cd

d4

fc

18

ob"

310

data

" fcao

03

f5

06

02

db

fd

cd

c2

03"

311

data

" fca8

fc

d3

fd

cd

ca

fc

10

ec

ff"

312

data

" fcbo

fl

c9

c5

06

6b

10

fe

ci

6b"

313

data

"fcb8

c9

c5

06

69

10

fe

3e

00

fd"

314

data

"fcco

ci

c9

c5

06

33

10

fe

ci

13"

315

data

" fcc8

af

c9

c5

06

2c

10

fe

ci

02"

316

data

"fcdo

3e

00

00

c9

c5

ci

3e

00

97"

317

data

" fcd8

3e

00

c9

00

c9

ci

00

00

65"

8.3. Проверка работы.

Модем подстыкуйте к выходному разъему СПЕКТРУМа и после
того, как считаете программу с кассеты, наберите команду
TRANSMIT 0,100

Когда нажмете ENTER, начнется пересылка данных, и на модеме
загорится зеленый светодиод VD1 CTS (Clear to send - готов-
ность пересылки) и красный светодиод VD2 DCD (Data carier
detect - есть передача данных). После этой проверки модем
можно подсоединить к телефонной линии или с помощью обычной
двухпроводной связи соединить с другим модемом.

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

ВНИМАНИЕ!

Имейте в виду, что если после обмена данными переключа-
тель будет включен, то телефонная линия будет все время за-
нята, даже после разрыва связи на телефонном аппарате.

Имейте в виду, что модем должен подключаться и отклю-
чаться только когда СПЕКТРУМ отключен от сети, т.е. при от-
сутствии напряжения. Это важно и для всех других аппаратных
приставок. В противном случае компьютер легко может выйти из
строя.

Телефонная связь устанавливается обычным способом, с
помощью телефонного аппарата. После того, как Вы и Ваш або-
нент, с которым Вы обмениваетесь данными, соединились, под-
ключите свои модемы и запустите программу, выполните старт-
предписание (TRANSMIT, RECIVE).

Во время самого обмена данными нет необходимости опус-
кать трубку, но рекомендуется обеспечивать тишину в зоне
трубки, иначе может появиться ошибка в приеме данных.




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
interview - unbeliever^xtm
Люди - Spectrum глазами обывателя.
Ликбез - полное описани и полный дизассемблер ПЗУ (часть 10).
Разное - Tiden, sinn и jasOn krUeger сидели за столом и пили чай с тортом.
.....! - "ЕбАТЬ!" - так озаглавил эту рубрику Necromancer, и я пожав плечами просто поставил в названии пять точечек :)

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