8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 36 37 38 39 40 41 42 ... 55

PROG:

print "Чтение файла *.tsk с диска: " ; i „

F$="file.tsk"

i „

open "b",n,F$ print "Ok."

print "Программирование: " print "================="

I „ „

L=lof(1)

if Lc=16 then L%=L:C$=space$(0):get$ #1,L%,C$:ADR%=0:goto PROGET

N=int(L/16)

lostat%=L-N*16

ADR%=0

L%=16

for i=l to N C$=space$(0) get$ #1,L%,C$

gosub FORMSПолучили пакет C$

call RECO(CS)Вывели пакет в ADUC

gosub INBYTE Ввод ответа АСК или NAK

if BYTE%=6 then print "B";:goto PRODOL

if BYTE%=7 then print "Ошибка"

goto KON PRODOL: ADR%=ADR%+16 next i

C$=space$(0)

L%=lostat% Длина остатка getS #1,L%,C$

PROGET:

gosub FORMS Получили пакет C$ call REC0(C$) Вывели пакет в ADUC


gosub INBYTE "Ввод ответа АСК или NAK if BYTE%=6 then print "";:goto PR0D0L1 if BYTE%=7 then print "Ошибка" goto KON

PR0D0L1:

close #1

print 11 Ok."

goto KON

i***************************************

1Подпрограммы

i***************************************

П/программа формированияI

пакета посылки. Принимает:I

L% - длину строки данных,

ADR% - адрес, с которого загружать, С$ - строку загружаемых данных.

FORMS:

Стартовая строка.

START$=mki$(&hue07)

Строка количества байт (L%-принимается)

NB$=LEFT$((mki$(L% + 4)) ,1)

Строка команды записи (WKOfl=57h) + + старший адрес ADR U (код=0).

CMDADRU$=mki$(&h0057)


1 Строка адреса (АБЕ%-принимается).

I

ADR$=RIGHT$((mki$(ADR%)),1)+LEFT$((mki$(ADR%)),1)

Строка данных C$. (C$ - принимается).

Строка контрольной суммы

1 lb + 2b + 2b +L% = L% + 5 байт - общее к-во байт в к.с.

IIII

S$=NB$+CMDADRU$+ADR$+C$ 1 - Строка всех байт для вычисления к.с.

1 Вычисление к.с. I

S = 0

NS%=L%+5

for j=l to NS% S=S+asc (MID$ (S$, j , 1) )fСумма байт

next j

KS%=(256*ceil(S/256))-S KS$=LEFT$((mki$(KS%)),1)

-Значение к.с. в цифровом виде.

-Строка к.с. (1 байт).

Формирование пакета посылки

C$=START$+NB$+CMDADRU$+ADR$+C$+KS$

return



0 ... 36 37 38 39 40 41 42 ... 55