Транспорт от сървъра към терминала
Пакетът от сървъра към терминала има следния състав:
4 байта int4 байта intпроменлива дължина (размер-8) байта
размер

Това е общия размер
на всички следващи
данни описани в дясно
Команда

цяло число
файл

дължината на файла може да е
от 1 до 2000000-12 байта

Протокол на командите от сървъра към терминала:
команда описание дължина байта формат действие
73 cmd_backosmsg
4 int messagecode
Служебно съобщение от едно число.
О-програмата изпраща с тази команда грешки и потвърждения:
01 Сесията на искания юзер е заета
02 Невалидно име на юзера
03 Грешка в tcp-буфера
04 Лош размер на хедър
05 Ok
06 Лош терминален индентификатор
07 Лошa команда
08 Изключване
41 cmd_setfocusedwindow
16 int window_id
int focus_val
int window_parrent
Фокусира посочения прозорец window_id
При фокус терминала
1. Сменя цветовете на прозореца;
2. Извежда прозореца най-отпред;
3. Препраща локалното управление на клавиши към прозореца.
32 cmd_add_tb
36
+







len+1
len+1
int tbar_cmd_num
int tbar_ident
int tbar_initx
int tbar_inity
int tbar_dx
int tbar_dy
int tbar_pid_
int tbar_pid_first
int tbar_focused
s254 tbar_leadtext
s254 tbar_command
Изпраща данни за таск-бара.
tbar_leadtext="Старт"
tbar_command="'MNU TSET\STARTMENU.TXT"
15 cmd_drawwindow
36
len+1
int wid x y dx dy f s k
s254 title
Създава прозорец x y dx dy title.
pid = wid div 10000 е идентификатор на процеса; smallid = wid mod 10000
f фокусиран
s window state (1=normal, 2=minimized, 3=maximized)
k вид 0=normal, 1=nomaximize.
Ако smallid=window_id_invisible прозорецът е невидим.
33 cmd_clear_object
4 int wid Премахва посочения обект (прозорец) wid.
35 cmd_set_list
12
+(len1+1)
+(len2+1)...
int id num lid
s254 line
s254 line
...
Поискан от програмата опис на процеси, таскбар-списък, променливи или друг списък.
Ако е поискан таскбар-списък,
1) id трябва да е идентификатор на таскбара; lid=0;
2) num е броя на програмите по ред на използуване
3) линията има формат name*uid*pid
4) последната линия е фокусирания обект.
Ако е поискан процес-лист, или друг списък
1) id трябва да е идентификатор на прозорец. lid=идентификатор на List-обект.
42 cmd_setrecvfnameid
20
len+1
int wid fid fsize ftype
s254 fname
Отваря файл за изпращане от сървъра към терминала.
Файлът се аташира към вече съществуващ прозорец wid.
fid е идентификатор на файла-цяло число например 1.
fsize - размер на файла; ftype - тип на файла.
fname - име на файла при терминала.
Името на файла е без водеща пътека. В зависимост от името типа и разширението терминалът решава къде ще го запише.
Действителният запис обаче започва при следващата команда 43.
Tерминалът трябва веднага след изпълнението на тази команда да поиска порция от файла.
43 cmd_recvfile
20
+size
int wid fid fpos size
buffer
Изпраща файлов буфер (участък).
Файлът се идентифицира по прозореца и идентификатора wid fid.
fpos - позиция във файла, откъдето се разполагат данните
size - размер на буфера.
След като изпълни командата, ако се очакват още данни, терминалът трябва да поиска порция
от файла. Ако fpos+size=fsize преносът се смята за завършен.
Ако разширението на файла е B4Z и типа на файла е 2,6,7 терминалът декомпресира файла
и го превръща в торба (.BAG).
Ако разширението на файла е BAG,
терминалът трябва да извади всичко от торбата и после да я изтрие.
68 cmd_demandfile
16
+len(fnm)+1
int wid fid ftype buffersize
s254 fnm
Изисква файл от терминала.
Файлът се идентифицира по прозореца и идентификатора wid fid.
ftype - тип файл; fnm - име на файла
buffersize - максималната порция която терминалът трябва да праща.
Терминалът трябва да отговори с 10018 + tts_filerequested.
69 cmd_sendfile
20
int wid fid ftype
fpos buffersize
Изисква файлов участък от терминала.
wid прозорец; fid файл_номер; ftype тип на файла.
fpos - файлът е приет на сървъра до тази позиция.
buffersize - максималната порция която терминалът трябва да праща.
Терминалът трябва да отговори с 10018 + tts_receivefilepart.
34 cmd_set_object_pid
12
int wid pid parrent_pid
Установява посочения прозорец като пряк наследник на друг-родителски.
wid прозорец; pid процес; parrent_pid родителски процес.
63 cmd_menu
40
+len(cm)+1
int wid id mtype ix
x1 y1 dx dy
cpid ceid
s254 cm
Създава меню. wid - прозорец съдържател; id-идентификатор в прозореца;
mtype тип (0=вертикално меню);
ix индекс; x1 y1 dx dy правоъгълник;
cpid ceid родителски процес и контрола; cm командна линия
60 cmd_winelementstate
16
+len(value)+1
int wid eid etype ix
s254 v
Команда към елемент от обект (прозорец). wid - прозорец; eid-идентификатор в прозореца;
etype тип елемент; ix индекс на команда(променлива); v съдържание
47 cmd_editline
52
+len(txt)+1
int pid id wid
x y fo
fc cu sst sle
mlen wlen
s254 txt
Текстово поле за въвеждане. pid процес; id идентификатор; wid процорец.
x y ляв горен ъгъл; fo фокусиран; fc начален символ за изобразяване(=0);
cu позиция на курсора(0 base); sst sle начало(0 base) и дължина на избрания блок;
mlen максимална дължина на текста; wlen дължина на прозореца;(mlen=wlen)
txt текстова линия
61 cmd_listbox
36
+len(cm)+1
int wid id ltype
mark x y dx dy
fontsize
s254 cm
Кутийка за списък текстове. wid процорец; id идентификатор; ltype тип кутийка
mark маркирана линия; x1 y1 dx dy правоъгълник; fontsize размер на шрифта
cm команда
66 cmd_txt
4
+len(header)
+len(cont)
int flagcomp
stru textheader
cont
Текст. flagcomp флаг за компресия; header описател; cont съдържание.
ако flagcomp=1 описателят и съдържанието са компресирани.
Тази команда се ползва при текстов редактор. Съдържанието е образ на един екран.
55 cmd_buttonline
28
+len(cm)+1
int id wid pid
x y dx dy
s254 fnm
Линия бутони. id контрола; wid прозорец; pid процес; x y dx dy област;
fnm файл-описател на линията.
58 cmd_checkbox
32
+len(title)+1
int wid id
x y dx dy v type
s254 title
Чек кутийка (отметка). id контрола; wid прозорец; x y dx dy област;
v отметка; type тип за образа на кутийка; title надпис.
67 cmd_txtplayer
56
int uwid utid
upid ufla
fr fc cr cc
rb cb re ce wsz rsz
Текстов участник. uwid прозорец; utid текст; fr fc cr cc начало/курсор;
rb cb re ce блок; upid процес на юзера;wsz rsz размери на текста в символи.
ufla команда: 1,2,5=добави; 0=изтрий; 7=изчисти всички.
Текстовата контрола (виж по-горе 66) изобразява маркера на юзера и коригира статус-линията.