V Асемблер (компилатор C5.EXE v2010.)
До голяма степен този текст описва работата на компилатора C5.EXE - текуща версия, с която в момента пиша асемблерските програми. Но по същество това е описание на процесора и асемблера, защото разбирането което искаме е за всичко - както в компилацията, така и в run-time. Предполагам, ще трябва да повторя някои неща, които вече съм писал другаде, но сега определено те ще ни трябват. Голяма част от дейностите описани по-долу касят работата на О-програмата или програмите за групово управление, но тъй като те имат важни функции, представям ги на общо основание. От гледна точка на процесинга тези програми нямат специален сатус, следователно подлежат на коментар и препис.

Регистри и памет
Процесорът има три регистъра:
регистър I - целочислен 4 байта;
регистър D - дробни 8 байтa;
регистър S - стрингов (255 байта);

Вътрешни регистри:
Флагове за събития.
Програмен брояч
Стеков указател

Паметта е разделена на порции /кластери/ по 1024 байта.
Програмата може да изисква памет в хода на изпълнение.
Кодът (тялото) на програмата се разполага извън управляемата памет и не може да се променя в run-time.

"Достъпни" (виж фигурата в дясно) са тези, с които програмите оперират пряко при максимално удобство. "Слабо управляеми" означава, че не са за пряко ползуване, но има случаи в които могат да бъдат променяни в run-time.
Командите:
MOV ADD SUB MUL DIV CMP POR STR SPO ABS REG CLF MSG PMS и др. (по-долу има подробно описание) пряко променят регистрите. Работата с регистри не е много по-бърза от работата с паметта, но е по-удобна.

Виж списък и описание на всички команди

TCP-Приемник
Приемникът има
адрес, порт, буфер, статус, грешка, флаг за размножаване (форк).

Приемникът работи с последователен буфер, от който програмите четат гарантирано цели порции с размер,
какъвто е бил при изпращането.
Програмите ползуват командата INP (виж описанието) за работа с приемника.
Приемащият процес става в О-програмата, тъй като тя има ангажимент да разпределя приетите данни към апликациите стартирани по-късно.
Когато е свързана с терминал, тя постоянно очаква пристигащите данни по TCP-канала. От друга страна О-програмата контактува и с други програми, следователно тя очаква съобщения в собствената си опашка. Приемащият цикъл в О-програмата има следния вид:
...
@input_cycle
// проверка за съобщение в опашката
msg
jmf  @msg_dispatch_command,if_message_received
// проверка за пристигнали TCP данни от терминала
mov  i,ic_receivetcp
inp  0
jmf  @work_tcp_line,if_tcp_received
mov  i,ic_getinputstate
inp  0
cmp  i,1
jmf  @input_cycle,if_equal
cmp  i,2
jmf  @end_program,if_differ
sys  v1sq_set_netwait_state
jmp  @input_cycle

@work_tcp_line  //пристигнали са данни по TCP
mov  i,ic_gettcprecvstr
inp  0
... //тук има разпознаване, обработка и препращане
mov  i,ic_shiftlefttcprecvbuf
inp  0 //край на обработката-данните са прочетени
jmp  @input_cycle
...
@msg_dispatch_command //пристигнало е съобщение
...
jmp  @input_cycle