Abilitare JavaScript per vedere questo sito.

La tabella comandi live (LIVECMDS) è composta da un numero di definizioni (LIVECMD) contigue, ognuna delle quali contiene tutte le informazioni su uno specifico comando live.

La posizione (relativa al file) e la dimensione della tabella sono specificate rispettivamente dai campi LIVEHEADER.ITEMSOFF e LIVEHEADER.ITEMSSIZE.

Definizione comando live

I comandi live (LIVECMD) hanno una parte iniziale comune, quindi un'area dati specifica per ogni tipo di elemento. La parte comune è la seguente:

Nome

Offset

Tipo

Descrizione

CODE

+0

U16

Codice del comando

SIZE

+2

U32

Dimensione completa del comando (tutti i campi).

DATA

+6

...

Dati specifici del comando (opzionali).

I comandi attualmente previsti sono:

Comando 0x0001 - Inserimento circuito

Comando 0x0002 - Modifica circuito

Comando 0x0003 - Rimozione circuito

Comando 0x0008 - Inserimento struttura

Comando 0x0009 - Inserimento variabile

Comando 0x0001 - Inserimento circuito

Questo comando permette di inserire un circuito in un dato blocco, in una certa posizione. I dati del comando, sono i seguenti:

Nome

Offset

Tipo

Descrizione

CODE

+0

U16

0x0001

SIZE

+2

U32

32 + ITEMSSIZE

BLOCKID

+6

U32

ID blocco contenitore

RUNGID

+10

U32

ID del circuito interessato (và in stato Inserting)

REFID

+14

U32

ID del circuito di riferimento  (solo per locazioni inserimento #1, altrimenti 0)

IFLAGS

+18

U16

Impostazioni di inserimento:

0x000F = Locazione di inserimento:

0x0 = Prima del circuito con  ID REFID (#1)

0x1 = Dopo il circuito con ID REFID (#1)

0x2 = Come primo circuito del blocco

0x3 = Come ultimo circuito del blocco

FLAGS

+20

U16

Impostazioni del circuito:

0x0001 (ignorato in modifiche live)

ITEMSOFF

+22

U32

Offset della tabella elementi circuito (relativo al file)

ITEMSSIZE

+26

U32

Dimensione della tabella elementi circuito

TEXT

+30

U32

Offset descrizione del circuito (relativo a stringhe)

ATTENZIONE: la tabella elementi circuito deve comunque essere accodata al comando live stesso.

Comando 0x0002 - Modifica circuito

Questo comando permette di inserire un circuito modificato, rimuovendo quello vecchio, in un dato blocco. I dati del comando, sono i seguenti:

Nome

Offset

Tipo

Descrizione

CODE

+0

U16

0x0002

SIZE

+2

U32

32 + ITEMSSIZE

BLOCKID

+6

U32

ID blocco contenitore

RUNGID

+10

U32

ID del circuito interessato (va in stato Inserting)

REFID

+14

U32

ID del circuito precedente da rimuovere (va in stato Dropping)

 

+18

U16

(riservato)

FLAGS

+20

U16

Impostazioni del circuito:

0x0001 (ignorato in modifiche live)

ITEMSOFF

+22

U32

Offset della tabella elementi circuito (relativo al file)

ITEMSSIZE

+26

U32

Dimensione della tabella elementi circuito

TEXT

+30

U32

Offset descrizione del circuito (relativo a stringhe)

Comando 0x0003 - Rimozione circuito

Questo comando permette di rimuovere un circuito esistente. I dati del comando, sono i seguenti:

Nome

Offset

Tipo

Descrizione

CODE

+0

U16

0x0003

SIZE

+2

U32

14

BLOCKID

+6

U32

ID blocco contenitore

RUNGID

+10

U32

ID del circuito da rimuovere (va in stato Deleting)

Comando 0x0008 - Inserimento struttura

Questo comando permette di creare una nuova struttura. I dati del comando, sono i seguenti:

Nome

Offset

Tipo

Descrizione

CODE

+0

U16

0x0008

SIZE

+2

U32

68 + (VARSCNT * sizeof (VAR))

TYPEID

+6

U32

ID tipo struttura utente

Nota: solo valori 0x0001000-0xFFFFFFFE; i valori 0 e 0xFFFFFFFF sono ID a significato speciale.

FLAGS

+10

U16

Impostazioni struttura:

0x0001 (ignorato in modifiche live)

0x0002 (ignorato in modifiche live)

NAME

+12

U32

Offset nome della struttura (relativo a stringhe).

TEXT

+16

U32

Offset descrizione della struttura (relativo a stringhe).

VARSOFF

+20

U32

Offset della tabella variabili (relativa al file) (#1)

VARSCNT

+24

U32

Dimensione della tabella variabili

SIZE

+28

U32

Dimensione della struttura [byte].

OBCID

+32

U32

ID classe OB di riferimento (0=nessuna).(#2,#3)

ATTRIB

+36

U32

Attributi della struttura:

0x00000001 Struttura riferita a classe OB (AREFOBC)(#2)

0x00000002 Struttura principale classe OB (AISOBC)(#2,#3)

0x00000004 Struttura con nome esterno (AEXTNAME)

MODIFIER

+40

U32

Offset modificatori della struttura (relativo a stringhe).

REFID

+44

U32

ID di riferimento tipo struttura (#4).

EXTNAME

+48

U32

Offset nome esterno struttura (relativo a stringhe).

 

+52

U8[16]

(riservati)

(#1) La definizione di struttura usa una normale tabella di definizione variabili per definire i propri elementi. In questo caso gli ID delle variabili non hanno senso e dovrebbero essere sempre a 0.

(#2) A pari valore di OBCID non 0, con attributo AREFOBC, può esistere una sola struttura con flag AISOBC, mentre posso essere  0 o più strutture senza attributo AISOBC.

(#3) Una struttura viene definita "orfana" qualora si trova nella condizione di attributi AREFOBC impostato e campo OBCID = 0: questa condizione capita quando aggiornando/rimuovendo una classe OB, vi sono ancora delle variabili (o altro) che vi fanno riferimento.

(#4) In caso di attributo AREFOBC il campo REFID contiene l'ID della struttura come definito del file OBB di origine (0 in case di attributo AISOBC).

Comando 0x0009 - Inserimento variabile

Questo comando permette di creare una nuova variabile dotata di valore di inizializzazione. I dati del comando, sono i seguenti:

Nome

Offset

Tipo

Descrizione

CODE

+0

U16

0x0009

SIZE

+2

U32

76

VARID

+6

U32

ID univoco della variabile utente

Nota: solo valori 0x0001000-0xFFFFFFFE; i valori 0 e 0xFFFFFFFF sono ID a significato speciale.

TYPEID

+10

U32

ID tipo dato variabile

Nota: può essere un tipo predefinito oppure definito dall'utente.

FLAGS

+14

U16

Impostazioni della variabile:

0x0001 (ignorato in modifiche live)

0x0002 (ignorato in modifiche live)

0x0004 (ignorato in modifiche live)

NAME

+16

U32

Offset nome della variabile (relativo a stringhe).

TEXT

+20

U32

Offset descrizione della variabile (relativo a stringhe).

BITTEXT

+24

U32

Offset descrizioni dei bit variabili, ovvero sequenza di stringhe relative ad ogni singolo bit separate dal carattere ascii 0xFF (relativo a stringhe).

DIM0

+28

U32

1a dimensione array (0=non specificata)(#1) o indice 0 per Alias.

DIM1

+32

U32

2a dimensione array (0=non specificata)(#1) o indice 1 per Alias.

DIM2

+36

U32

3a dimensione array (0=non specificata)(#1) o indice 2 per Alias.

ALIASID

+40

U16

ID tipo alias

ALIASBIT

+42

U16

N. di bit per alias (dipende dal tipo di ID alias)

SIZE

+44

U32

Dimensione della variabile. Se Alias, la dimensione è 0.

VALUE

+48

U32

Offset valore iniziale della variabile (relativo a stringhe, 0=nessun valore).

ATTRIB

+52

U32

Attributi variabile:

0x00000001 La variabile può essere scritta (WRITE)

0x00000002 La variabile può essere letta (READ)

0x00000004 La variabile può essere forzata (FORCE)

0x00000008 La variabile può essere rilasciata (RELEASE)

0x00000010 La variabile è costante (CONST)

0x00000020 La variabile non ha accesso a bit (NOBITS)

MODIFIER

+56

U32

Offset modificatori della variabile (relativo a stringhe).

DIM0L

+60

U32

Offset etichetta 1a dimensione array (relativo a stringhe). (#2)

DIM1L

+64

U32

Offset etichetta 2a dimensione array (relativo a stringhe). (#2)

DIM2L

+68

U32

Offset etichetta 3a dimensione array (relativo a stringhe). (#2)

 

+72

U8[16]

(riservati)

(#1) Sebbene i campi ARRAYn siano a 32bit, nella versione attuale di SW la dimensione massima va comunque considerata solo a 16bit (ovvero massimo indice 0xFFFF).

(#2) Per etichetta si intende nome  di una variabile (a valore costante) oppure la rappresentazione ascii di un valore numerico, ovvero un offset alla tabella stringhe .

 

  

Keyboard Navigation

F7 for caret browsing
Hold ALT and press letter

This Info: ALT+q
Page Header: ALT+h
Topic Header: ALT+t
Topic Body: ALT+b
Contents: ALT+c
Search: ALT+s
Exit Menu/Up: ESC