Lo statement basic CALL "SCRN" è stato esteso nella seguente maniera:
CALL "SCRN" (T, A$, W, X1, Y1, X2, Y2)
È consentito che i parametri dello statement siano costanti oppure variabili.
Il parametro T deve contenere il valore 5 per indicare la richiesta di utilizzare le nuove prestazioni.
Il parametro A$ può contenere la stringa "O" (Open) che significa: Apri una nuova finestra video. Se tale finestra risulta già aperta la riapertura comporta l'eventuale spostamento nell'ambito del video e/o ridefinizione della sua dimensione. Dopo l'apertura la finestra viene automaticamente resa attiva. Non è consentita la riapertura della finestra zero, che per definizione è di dimensione 80 colonne per 24 righe, esclusa la riga di stato.
Il parametro A$ può contenere la stringa "A" (Activate) che significa: Attiva la finestra numero W. Attivare la finestra numero zero significa disattivare tutte le finestre utente, riportando le tabulazioni ai loro valori assoluti. Una volta resa attiva una finestra utente, le tabulazioni sono relative a tale finestra e tutte le visualizzazioni e le introduzioni da tastiera avvengono all'interno di tale finestra. All'attivazione di una nuova finestra, la finestra precedentemente attiva viene automaticamente deattivata: questo significa che in ogni istante una sola finestra può risultare attiva.
Il parametro A$ può contenere la stringa "C" (Close) che significa: Chiudi la finestra numero W. Una volta chiusa, la finestra scompare dallo schermo ed il suo contenuto viene distrutto. Chiudere la finestra zero ha il significato speciale di chiudere tutte le finestre utente lasciando attiva soltanto la finestra zero che è quella di default.
Il parametro W indica il numero di finestra a cui va riferita l'operazione A$. Il valore massimo è fissato a 39. Se in fase di Open si somma il valore 100 al parametro W, ciò sta a significare che è richiesto che la finestra sia circondata da un box grafico. Si fa presente che il box è posizionato intorno alla finestra e quindi fa sì che la finestra ingombri lo schermo per due righe e due colonne in più di quanto definito da X1-Y1-X2-Y2. L'area occupata dal box non è area utile per visualizzazioni. È implementabile, ma non ancora realizzata, la possibilità di includere nella riga superiore o inferiore del box la visualizzazione di una stringa che faccia da "titolo" della finestra.
I parametri X1 e Y1 indicano la tabulazione orizzontale e verticale dell'angolo superiore sinistro della finestra. I parametri X2 e Y2 indicano la tabulazione orizzontale e verticale dell'angolo inferiore destro della finestra. Tali parametri sono richiesti solo per valore di A$ = "O" (Open). Su di essi non vengono effettuati controlli di range, ma il sistema automaticamente li aggiusta a valori ragionevoli in caso di sconfinamento dalle dimensioni fisiche dello schermo.
Quando due finestre sono parzialmente o completamente sovrapposte, quella resa attiva viene posta in foreground e "fa ombra" alla porzione di finestra disattiva sottostante.
Le CALL "SCRN" con parametro 3 e 4 (salva e ripristina immagine video in memoria) consentono un secondo parametro opzionale per indicare il numero della finestra da salvare. Tale numero può essere omesso o assumere valore 0 per salvare e ripristinare la finestra di default.
La CALL "SCRN" con parametro 2 (hard copy su stampante) stampa esattamente l'immagine video apparente.
La CALL "SCRN" con parametro 1 (Definizione finestra di scroll) è stata mantenuta per compatibilità con i vecchi applicativi, ma la finestra di scroll creata è riferita sempre alla finestra zero di default, cioè è relativa allo schermo pieno.
La situazione delle finestre create viene salvata dallo statement MCP e ripristinata in fase di restart da programma o da caduta di tensione. Se l'MCP è attivato con parametro H"0008" viene salvato e ripristinato anche il contenuto di tutte le finestre.
Esiste un nuovo statement CALL del tipo:
CALL "COLR" (W, M, F, B)
Il parametro W indica la finestra di riferimento. Può assumere valore 0 per indicare la finestra di default. Non è indispensabile che la finestra sia già stata creata prima dell'attivazione della CALL "COLR".
Il parametro M indica il print mode che si vuole ridefinire, secondo la seguente tabella:
| 1 - MODE N |
| 2 - MODE H |
| 3 - MODE B |
| 4 - MODE R |
| 5 - MODE U |
I parametri F e B indicano rispettivamente l'identificativo numerico del colore di foreground e di background con il quale si desidera venga d'ora in poi visualizzato il print mode specificato col parametro M. Gli identificativi dei colori sono i seguenti:
| 0 - black | 4 - red | 8 - gray | 12 - lt-red |
| 1 - blue | 5 - magenta | 9 - lt-blue | 13 - lt-magenta |
| 2 - green | 6 - brown | 10 - lt-green | 14 - yellow |
| 3 - cyan | 7 - white | 11 - lt-cyan | 15 - hi-white |
Nel caso di attributi composti resta attivo quello che ha la priorità maggiore secondo la seguente tabella in cui sono elencati gli attributi in ordine di priorità decrescente:
|
1 - MODE U
|
|
2 - MODE R
|
|
4 - MODE H
|
|
5 - MODE N
|
I print mode D (dark) e P (protect) possono essere combinati in maniera qualsiasi con gli altri senza influire sulla priorità.
La funzione COLR è valida all'interno di una finestra fino alla prossima ridefinizione o fino all'esecuzione dello statement END.
La ridefinizione del print mode "N" comporta, nell'ambito della finestra a cui ci si riferisce, l'immediata ridefinizione del colore di background.
La definizione corrente dei colori viene salvata e ripristinata dall'MCP/RESTART.
La configurazione del mouse viene effettuata a livello di system administration di UNIX (mkdev mouse). Non esiste traccia di tale configurazione nei dati di OLIBCOS. La call del mouse, in caso di mouse non configurato per il posto di lavoro, continua a funzionare anche se solo da tastiera. Non è necessario quindi eseguire uno statement per l'apertura del dispositivo mouse.
La call messa a disposizione del programmatore ha la seguente interfaccia:
CALL "MOUS" (A$, X1, Y1, X2, Y2, B, X, Y)
Il parametro A$ è una variabile stringa che in output conterrà in output l'eventuale carattere introdotto da tastiera. Se la call è ritornata al chiamante a causa della pressione di un pulsante del mouse, il contenuto di A$ non è significativo.
I parametri di input X1 ed Y1 sono costanti o variabili numeriche che indicano rispettivamente la tabulazione orizzontale e verticale dell'angolo superiore sinistro dell'area mouse-sensitive. I parametri di input X2 ed Y2 sono costanti o variabili numeriche che indicano rispettivamente la tabulazione orizzontale e verticale dell'angolo inferiore destro dell'area mouse-sensitive. Tali valori di tabulazione sono sempre riferiti allo schermo pieno (80 x 24).
Il parametro B è una variabile numerica che in output conterrà uno dei seguenti valori:
0 - input effettuato da tastiera (A$ significativo).
1 - premuto pulsante sinistro del mouse.
2 - premuto pulsante destro del mouse.
3 - premuto pulsante centrale del mouse.
I parametri di output X ed Y sono variabili numeriche che indicano rispettivamente i valori di tabulazione orizzontale e verticale del cursore al momento in cui è stato premuto un tasto o un pulsante del mouse. Tali valori di tabulazione sono sempre riferiti allo schermo pieno (80 x 24).
Attivando la CALL "MOUS" il cursore viene posizionato al centro dell'area mouse-sensitive richiesta. Il cursore può essere mosso o spostando il mouse o utilizzando i quattro tasti freccia. In ogni caso il cursore non sconfina mai l'area mouse-sensitive. La call ritorna al chiamante se è stato premuto un tasto diverso dalle frecce o un pulsante del mouse.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
counters