ITFI960309A1 - Metodo ed apparecchiatura per visualizzare su un terminale programmi applicativi con divisione in finestre - Google Patents

Metodo ed apparecchiatura per visualizzare su un terminale programmi applicativi con divisione in finestre Download PDF

Info

Publication number
ITFI960309A1
ITFI960309A1 IT000309A ITFI960309A ITFI960309A1 IT FI960309 A1 ITFI960309 A1 IT FI960309A1 IT 000309 A IT000309 A IT 000309A IT FI960309 A ITFI960309 A IT FI960309A IT FI960309 A1 ITFI960309 A1 IT FI960309A1
Authority
IT
Italy
Prior art keywords
terminal
supported
function
group
host system
Prior art date
Application number
IT000309A
Other languages
English (en)
Inventor
Randy Buswell
Carol A Fox
Bill Gay
Sui M Lam
Curtis Schwebke
Yih-Shyan Wey
Original Assignee
Wyse Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wyse Technology Inc filed Critical Wyse Technology Inc
Publication of ITFI960309A1 publication Critical patent/ITFI960309A1/it
Application granted granted Critical
Publication of IT1286910B1 publication Critical patent/IT1286910B1/it

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • G06F13/107Terminal emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Digital Computer Display Output (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Computer And Data Communications (AREA)

Description

"METODO ED APPARECCHIATURA PER VISUALIZZARE SU UN TERMINALE PROGRAMMI APPLICATIVI CON DIVISIONE IN FINESTRE"
La presente invenzione riguarda in generale i metodi e le apparecchiature per visualizzare informazioni su un terminale, e pi? in particolare si riferisce a metodi ed apparecchiature per formattare e visualizzare, su un terminale, interfacce utente grafiche quali l'ambiente operativo Microsoft Windows? e programmi applicativi entro tali ambienti.
Le interfacce utente grafiche quali l'ambiente operativo Microsoft Windows? comprendono il pi? diffuso ambiente operativo per il software applicativo pi? venduto nel mondo. Tali ambienti sono preferiti tipicamente per la loro facilit? d'uso, uniformit? di interfaccia utente, visualizzazione di alta qualit?, e altre ragioni.
Tuttavia, tali ambienti utente erano stati progettati per l'impiego con stazioni di lavoro e microcomputer quali i personal computer. Queste stazioni di lavoro e microcomputer, per quanto flessibili, presentano problemi di sicurezza affida? d amministrazione e valore. Mentre i terminali dati sono noti offrire i vantaggi di una migliore sicurezza e facilit? di amministrazione rispetto ai microcomputer, e di solito a un costo minore, i terminali non sono risultati generalmente in grado di fornire compatibilit? con le pi? diffuse interfacce utente grafiche. Terminali funzionanti in ambiente X possono fornire certe possibilit? di interfaccia grafica operando sotto Unix?, ma normalmente sono costosi, richiedono molta memoria, e offrono scarsa compatibilit? con i pi? diffusi ambienti Windows.
Un'altra opzione nota nella tecnica anteriore ? PCS senza dischi. Tuttavia, il PCS senza dischi offre parecchi inconvenienti. In molti casi, il PCS senza dischi operante in un ambiente client/server visualizza informazioni di programma applicativo trasferendo l'applicazione dal server ed eseguendo l'applicazione localmente. Ci? richiede che il PC senza disco abbia tutta la potenza elaborativa necessaria per ciascuna applicazione che prova ad eseguire. In un ambiente odierno, ci? pu? richiedere otto o pi? megabytes di memoria, un processore molto potente e cos? via rendendo costoso un PC senza disco. Inoltre, il PCS senza disco offre una limitata sicurezza e pu? richiedere una ampia amministrazione.
Il sistema operativo Windows? NT fornisce un potente ambiente client/server di rete, ed offre allo stesso tempo compatibilit? al livello del programma applicativo con il diffuso ambiente Windows?. Tuttavia, il sistema operativo NT ? stato scritto per clienti PC, e non per terminali. Di conseguenza, i clienti NT vengono generalmente richiesti di essere potenti e, di conseguenza, costosi. Inoltre, il Windows NT ? stato scritto per l'ambiente client/server e non per l'ambiente multiutente. Il sistema operativo WinFrame, recentemente offerto da Citrix Systems Ine., modifica il sistema operativo Windows NT estendendolo ad operare in ambiente multiutente, per quanto l'applicazione di tecnica nota per WinFrame ? stata clienti PCS piuttosto che terminali. ? risultata quindi esserci una esigenza di un terminale che sia relativamente economico, affidabile, facile da amministrare, sicuro e in grado di visualizzare informazioni di programma applicativo in un ambiente operativo multiutente Windows?.
La presente invenzione fornisce un'elegante soluzione agli inconvenienti della tecnica nota, in quanto fornisce economico in grado di visualizzare*?software. app il_icativi Zcompatibili con un ambiente con divisione in tfinestre. ;In particolare, la presente invenzione fornisce un terminale visualizzatore in grado di comunicare con un server di applicazioni funzionante con un sistema operativo multiutente. Ci? fornisce un accesso sicuro alle <?>applicazioni Windows al desktop. In una configurazione esemplificativa, un server di applicazione ? fornito sotto forma di qualsiasi idoneo computer funzionante col sistema operativo Winframe? fornito da Citrix Systems Ine.. Il sistema operativo WinFrame? incorpora il sistema operativo Windows NT pi? delle estensioni che implementano un protocollo di visualizzazione noto come ICA-3, nonch? possibilit? multiutente. ;Il terminale include, in una forma realizzativa esemplificativa, un'architettura hardware basata sulla linea di processori Intel X86. Inoltre, il terminale offre solo una limitata memoria principale, ed ? generalmente incapace di esecuzione locale di programmi applicativi moderni quali elaborazione testi, grafica, basi di dati o altri programmi conosciuti, o anche il sistema operativo Windows o Dos stessi. In questo modo il terminale secondo la presente invenzione ? distintamente differente dai terminali X noti o dai PCS senza disco, o altri PCS configurati in ambiente client/server. ;Significativamente, l'architettura hardware non implementa il bus IBM PC/AT convenzionale, e il firmware nel terminale non implementa n? PC/AT BIOS standard n? un sistema operativo a disco PC-compatibile standard. Il terminale firmware implementa estensioni di accesso alla rete compatibili con il server di applicazione, ancora, per esempio, le estensioni ICA-3 disponibili da Citrix Systems. Una visualizzazione grafica ad alta risoluzione ? fornita sia per facilit? d'uso e anche monocromatica (comprendente la scala di grigi) o a colori, nonch? dispositivi di input/output tipici dell'ambiente Windows quali mouse, tastiera, schermo a sfioramento ed altri servizi di I/O. ;Inoltre, il terminale include un'interfaccia di rete in grado di comunicare con il server di applicazione attraverso linee RS232 convenzionali, connessioni Ethernet, wireless, ISDN, fibre ottiche, modem a linea di alimentazione in AC, cavo o altre connessioni. Se connesso al server di applicazione, il terminale visualizza l'ambiente operativo Windows NT o Windows 95, comprendente qualsiasi programma applicativo in esecuzione sul server e accessibile dall'utente del terminale. Nella disposizione esemplificativa, il terminale appare all'utente essenzialmente lo stesso che un personal computer molto pi? costoso, meno sicuro e difficile da gestire. Di conseguenza, durante il funzionamento il terminale secondo la presente invenzione offre numerose caratteristiche normalmente associate ad un sistema multiutente, mentre allo stesso tempo offre molte delle caratteristiche desiderabili tipiche di un ambiente client/server. ;Una caratteristica della presente invenzione ? la disponibilit? di elaborazione cliente-indipendente in un ambiente Windows. In questo modo, con un sistema secondo la presente invenzione, un utente definisce il suo sistema operativo e questo ambiente operativo lo segue per tutto il sistema. Un utilizzatore potrebbe quindi effettuare il log on in un terminale, definire un ambiente, e quindi effettuare il log on in un altro terminale. Il secondo terminale visualizzerebbe automaticamente l'ambiente definito da quell'utente nel primo terminale. ;Oltre alla capacit? di visualizzare informazioni di programma applicativo, il terminale secondo la presente invenzione comprende un modo di Setup che permette all'utente di configurare una variet? di aspetti operativi del terminale. ;Per permettere ai terminali della presente invenzione di soddisfare i comandi inviati da server quali quelli che funzionano con WinFrame, ? stato sviluppato un sistema operativo per terminale appositamente predisposto che emula o comunque risponde a chiamate di un sistema operativo PC convenzionale. Il sistema operativo per terminale include un blocco di boot per inizializzare e avviare il sistema, seguito da un kernel che carica piloti addizionali e software di comando, compreso il caricamento di un codice cliente WinFrame modificato. L'esecuzione del cliente WinFrame modificato comprende un collegamento ad un server di applicazioni. ;Oltre alla capacit? di visualizzare informazioni di visualizzazione di applicazioni in un ambiente Microsoft Windows, la presente invenzione comprende anche la possibilit? di comunicare con altri server o ospiti funzionanti con sistemi operativi "non-Windows" mediante l'inclusione di altre emulazioni o "personality" di terminale residenti, con la possibilit? di commutare "hot key" tra le varie "personality". ;Un'altra caratteristica della presente invenzione ? 1'implementazione di un'interfaccia utente grafica per la configurazione di un terminale ed altri compiti gestiti localmente. In particolare, l'interfaccia grafica impiega una pluralit? di finestre e ciascuna finestra permette la riconfigurazione di una o pi? caratteristiche di terminale od altri compiti locali. Disposte in gruppi entro ciascuna finestra sono le selezioni che possono essere configurate nell'ambito di quella finestra. Queste selezioni, o scelte, dalle quali l'utente pu? scegliere sono visualizzate, o visualizzabili, attraverso una procedura di estrazione o menu similare. Varie strutture di dati sono associate a differenti tipi di gruppi e selezioni. ;Un'ulteriore caratteristica della presente invenzione ? l'inclusione del sistema operativo di terminale in memoria flash. La memoria flash pu? essere aggiornata per mezzo di vari metodi, compresa la comunicazione attraverso un'adeguata interfaccia quale una porta parallela, una porta seriale, o un adattatore di rete quando il terminale ? posto in uno stato predeterminato. ;? quindi uno scopo della presente invenzione fornire un terminale in grado di visualizzare informazioni generate da un server di applicazione che esegue programmi applicativi conosciuti funzionanti nell'ambiente operativo Microsoft Windows? NT. ;? un altro scopo della presente invenzione fornire un sistema di configurazione di terminale avente un'interfaccia utente grafica per configurare i parametri operativi di terminale. ;? un ulteriore scopo della presente invenzione fornire un terminale per visualizzare informazioni di programma di applicazioni che emula un personal computer di cliente in un ambiente di rete Client/server. ;? un ulteriore scopo della presente invenzione fornire un terminale avente una combinazione di caratteristiche desiderabili normalmente associate con un ambiente di elaborazione multiutente insieme a caratteristiche desiderabili normalmente associate ad un ambiente client/server . ;? un ulteriore scopo della presente invenzione fornire un sistema operativo di terminale che rende possibili comunicazioni con un ambiente operativo con divisione in finestre ed allo stesso tempo funzionante con un PC/AT BIOS non standard e un PC DOS non standard. ;? un ulteriore scopo della presente invenzione fornire un'apparecchiatura ed un metodo per aggiornare rapidamente ed in modo conveniente un sistema operativo di terminale. ;? un altro scopo della presente invenzione fornire "personality" residenti multiple per un terminale, con rapida commutazione tra le varie "personality" senza la necessit? di cambiare schede di espansione o rimuovere potenza dal terminale. ;Questi ed altri scopi della presente invenzione possono essere meglio compresi dalla seguente descrizione dettagliata dell'invenzione fatta in combinazione con le figure annesse. ;La figura 1 mostra una disposizione generalizzata di un server di applicazione e un terminale secondo la presente invenzione . ;La figura 2 mostra in forma di diagramma a blocchi funzionale l'architettura della logica della presente invenzione . ;La figura 3 mostra in forma di diagramma a blocchi l'architettura dell'ASIC di controllo di figura 2. ;La figura 4 mostra una vista generale dell'architettura software di un terminale secondo la presente invenzione. ;La figura 5 mostra in forma di diagramma a blocchi semplificato l'interfaccia di setup tra il motore GUI e il resto del sistema. ;La figura 6 mostra in forma di diagramma di flusso una vista di alto livello del processo attraverso il quale il terminale della presente invenzione si connette ad un server applicativo. ;La figura 7A mostra una schermata di setup dal software di configurazione della presente invenzione. ;Le figure 7B1-7B3 mostrano le strutture di dati associate con il software di configurazione secondo la presente invenzione. ;Con riferimento alla figura 1, ? in essa mostrato un sistema semplificato secondo la presente invenzione. In particolare, un singolo server applicativo 10 comunica bidirezionalmente con uno o una pluralit? di terminali 12 in una rete adeguata o altro collegamento di comunicazioni 14. Il collegamento di rete pu? essere una linea RS232, un modem a linea di alimentazione in corrente alternata, o una connessione Ethernet quale un doppino intrecciato o un cavo coassiale, o altra idonea connessione quale fibre ottiche. In una disposizione esemplificativa che ? stata trovata operare in modo soddisfacente, il server applicativo funziona con un sistema operativo quale Windows NT? con appropriate estensioni, quali quelle offerte da Citrix tipo il Winframe OS. Il protocollo finestre a distanza Citrix o le estensioni includono il protocollo ICA 3.0 e gli aggiornamenti che forniscono una vera capacit? multiutente nell'ambiente Windows NT. Per una configurazione del genere, il server applicativo pu? essere ad esempio un personal computer basato su un Pentium Intel o un processore 486 o altri simili processori quale un DEC Alpha o un processore MIPS o un processore multiplo con un adeguato quantitativo di RAM. In una configurazione esemplificativa, il server pu? avere 16 megabytes di RAM per Winframe? OS, pi? 1-8 megabytes di RAM per utente concomitante, in funzione della particolare applicazione utilizzata dall'utente. ;In configurazioni appropriate il server applicativo 10 pu? anche comunicare con altri server compreso un server d'archivio NetWare 16, un ospite Unix 18, altri personal computer 20 o un "gateway" Internet 22. Inoltre, attraverso altre connessioni quali un router o altro server di comunicazioni 24, il server applicativo 10 pu? anche comunicare con terminali remoti 26, o tramite altri mezzi con utenti remoti 28 chiamabili con combinatore telefonico . ;Riferendoci poi alla figura 2, l'architettura hardware di un terminale secondo la presente invenzione pu? essere meglio compresa. In particolare, una CPU 100, tipicamente un microprocessore della famiglia X86 e in una forma realizzativa esemplificativa un microprocessore 80386CXSA o '486SXLC, riceve segnali di clock e di reset da una logica 102 di clock e di reset. La CPU comunica con la logica rimanente attraverso un bus di indirizzo 105, un bus dati 106 e un bus CTRL 108. Significativamente, i bus 105, 106 e 108 sono tipicamente non compatibili con lo standard IBM PC/AT, n? con qualsiasi standard di altro personal computer, poich? la presente invenzione si prefigge di evitare la maggiore parte, se non tutti, degli inconvenienti associati con i personal computer operanti in un ambiente di rete. ;In particolare, il bus di indirizzi 105 si estende dal CPU 100 ad un ASIC di controllo 110 nonch? una schiera di memoria flash 112 e un controllore VGA 114. Il bus dati 106 analogamente comunica con l'ASIC di controllo 110, il controllore VGA 114 e una schiera di memoria 116. Il bus CTRL 108 similmente fornisce segnali di controllo per l'ASIC 110 e il controllore del VGA 114. Una logica miscellanea 118 fornisce i CONFIG, IDCS e DIAGCS all'ASIC 110. ;L'ASIC 110 comunica con la schiera di memoria 116 tramite un bus DMA 120 ed anche comunica con la memoria flash 112 attraverso un bus PD 122. Il bus PD 122 fornisce anche la comunicazione tra l'ASIC 110 e la memoria flash 112, una I/O seriale e un controllore parallelo 124, un controllore di tastiera e di mouse 126, nonch? un controllore LAN 128. Inoltre, l'ASIC fornisce un segnale FCS per la memoria flash 112, fornisce i segnali RAS, CAS e WE alla schiera di memoria 116 e fornisce i segnali COMI, COM2, e PPCS al controllore SIO 124. Inoltre l'ASIC 110 fornisce un segnale KBCS al controllore tastiera/mouse 126, e fornisce un segnale NETCS al controllore LAN 128. Infine l'ASIC fornisce un segnale di abilitazione di altoparlante SPEN ad un altoparlante 130. ;La CPU 100 comunica anche con il controllore SIO 124, il controllore tastiera/mouse 126, e il controllore LAN 128 attraverso una porzione del bus 105. Inoltre, l'ASIC 110 fornisce le interruzioni hardware INTA, INTB e INTP al controllore SIO, fornisce le interruzioni hardware KBINT e MSINT al controllore KB/MS 126 e fornisce l'interruzione NINT al controllore LAN 128. ;La schiera di memoria 116 comprende tipicamente una memoria DRAM, per quanto altri tipi di memoria possono essere accettabili in alcune forme realizzative. Tuttavia a differenza dei moderni personal computer, la quantit? di DRAM nella schiera 116 richiesta per il funzionamento del terminale tipicamente sar? nell'intervallo compreso tra 512 KB. e 4 megabytes . In una forma realizzativa esemplificativa, solo 23 linee di indirizzo di memoria e una linea di selezione byte vengono usate, cosa che limita lo spazio di memoria a 16 MB. In altre forme realizzative differenti dimensioni di spazio di memoria possono risultare preferite. ;L'ASIC di controllo 110, in una forma realizzativa esemplificativa, contiene blocchi funzionali per il controllo del bus, controllo DRAM (tipico modo veloce a pagina con interfogliamento), un temporizzatore di sistema e un temporizzatore di altoparlante, e un controllore I/O. L'ASIC di controllo pu? anche essere implementato come "gate array" o altro dispositivo altamente integrato, ed ? descritto in maggior dettaglio in relazione alla figura 3. In un esempio operativo, ? stato mostrato sufficiente dimensionare la memoria flash 112 nell'ordine di 512 KB; tuttavia in altre applicazioni un dimensionamento di fino a 5 megabytes o maggiore pu? risultare preferito. Mentre in una forma realizzativa preferita la schiera 112 comprende memoria flash, in alcune forme realizzative una funzionalit? sostanziale della presente invenzione rimarrebbe anche se la schiera fosse del tipo EPROM e SRAM o altri dispositivi di memoria equivalenti. ;Il controllore SIO 124 comunica con COMI, COM2 e porte stampanti (o parallele) 132, 134 e 136, rispettivamente. Il controllore parallelo/SIO 124 pu? essere un dispositivo 16552, quale quello disponibile da Startech. Il controllore tastiera/mouse 126 similmente comunica con una tastiera 138 ed un mouse 140, mentre il controllore LAN, che non ? necessario fornire in tutte le forme realizzative, comunica con una interfaccia LAN 142. In un prototipo esemplificativo, il controllore tastiera/mouse 126 pu? essere un controllore standard per tastiera, mentre la tastiera e il mouse dovranno entrambi soddisfare gli standard PS/2, per quanto in almeno alcune forme realizzative il controllore di tastiera sar? modificato in modo da renderlo compatibile con l'interfaccia di controllore a quattro fili descritta nel brevetto USA n. ;4706068. Infine il controllore LAN pu? essere qualsiasi controllore di interfaccia di rete adeguato, e pu? soddisfare qualsiasi standard di rete accettato, compreso lOBaseT, 10Base2 ed altri. L'interfaccia di rete pu? avere una memoria di 512 KB o maggiore per ulteriore immagazzinamento di codici. ;Il controllore video e della grafica 114 ha ad esso operativamente associata una seconda schiera di memoria 144 per memorizzare informazioni video e grafiche fornite ad un monitor 146 attraverso un MPS 148. Il controllore video 114 pu? essere, ad esempio, un dispositivo Cirrus 5429 con RAMDAC interna e pu? avere una memoria video dell'ordine di un megabyte per fornire visualizzatori di grafica ad alta risoluzione compatibili con, ad esempio, almeno lo standard VGA. Risulter? chiaro agli esperti del settore che i requisiti di memoria totale sono distintamente minori che quelli per un personal computer avente simili capacit? di visualizzazione di programmi applicativi Windows. Un segnale di sleep 150 pu? essere fornito dall'ASIC 110. Possono essere usati vari metodi per implementare un segnale sleep. Per esempio in una versione monocromo della presente invenzione un segnale viene fornito all'alimentazione del monitor, che disabilita il segnale video e abbassa la potenza richiesta all'alimentazione del monitor. In una versione colore, i segnali sync vengono manipolati secondo lo standard VESA per far abbassare di potenza il monitor. Risulter? chiaro agli esperti del settore che, nel futuro, numerose di queste funzioni compresa la CPU possano essere incorporate in uno o pi? dispositivi VLSI quali ASIC, gate array, o altri dispositivi. ;In una caratteristica particolare dell'hardware della presente invenzione, il sistema operativo di terminale memorizzato nella memoria flash 112 pu? essere aggiornato attraverso diversi metodi, compresa la comunicazione attraverso un'adeguata interfaccia quale la porta parallela 136, una porta seriale 132 o 134 o un adattatore di rete quale un'interfaccia LAN 142. In una forma realizzativa esemplificativa, la memoria flash pu? essere aggiornata per mezzo di comunicazione con un sistema ospite quando il terminale ? posto in uno stato predefinito, come attaccando una spina di anello a ritorno, una sequenza chiave appropriata od altro mezzo adeguato. In una disposizione del genere il trasferimento al sistema di memoria del terminale ? abilitato mentre ? ancora permessa la comunicazione con l'ospite. L'ospite fornisce quindi, attraverso i collegamenti di comunicazione, caratteristiche operative aggiornate alla DRAM di terminale 116 o alla memoria flash 112 direttamente. Dopodich?, l'informazione del sistema operativo aggiornata ? memorizzata nella memoria flash 112 se necessario, e il terminale ? riportato ad uno stato operativo normale in cui il trasferimento ? disabilitato. ;In condizioni normali il sistema di figura 2 entra in funzione seguendo un reset cominciando l'esecuzione del codice di boot contenuto nella schiera di memoria flash 112 . La schiera di memoria flash 112 pu? essere disposta su due banchi, entrambi accessibili ad un indirizzo predeterminato dello spazio di memoria CPU, per esempio COOOOO - DFFFFF e E00000 - FFFFFF, mentre il resto dello spazio di memoria viene allocato per fornire molte delle normali funzioni PC come mostrato nella tabella 1 seguente. Risulter? chiaro agli esperti del settore che, in una forma realizzativa, gli indirizzi di memoria video/grafica sono spostati otto megabytes oltre gli indirizzi di memoria PC convenzionale. In una tale forma realizzativa, il chip VGA pu? essere usato in modo "compatibile" (cio?, modo di indirizzamento lineare spento) , cos? il chip VGA soltanto risponde a un tampone di quadro ad AOOOOh - AFFFFh (nel modo grafica) o BOOOOh -B7FFFh (per il modo MGA) o B8000h - B8FFFh (per il modo CGA) e che questi indirizzi saranno spostati a 8A0000h -8AFFFFh, e cos? via. Gli indirizzi sono stati spostati per permettere la contiguit? del DRAM di banco 0, ed allo stesso tempo (e come discusso in seguito) permettere l'emulazione delle funzioni di un normale PC sufficienti a permettere la visualizzazione di informazioni di programma applicativo Windows. ;;;TABELLA 1 ;;;BANCO FLASH 0 FFFFFF ;Flash di blocco di boot EOOOOO ;;BANCO FLASH 1 DFFFFF ;Flash complesso file C00000 ;Rete BFFFFF ;Scheda B80000 ;Flash aggiuntivo B7FFFF ;Memoria BOOOOO ;Video/Grafica AFFFFF ;Controllore 800000 ;;DRAM 7FFFFF ;;BANCO 1 400000 ;;DRAM 3FFFFF ;;BANCO 0 OOOOOO ;;Il banco 0 pu? essere disposto in un blocco di boot da 16 Kbyte all'intervallo di indirizzo superiore, per esempio FFC000H - FFFFFFH, successivo a due blocchi di parametri da otto Kbyte e inoltre successivo ad una pluralit? di blocchi principali verso l'indirizzo F80000H {per una allocazione da 512 Kbyte) o verso FOOOOOH (se viene fatta una allocazione da 1 megabytes) o EOOOOOH (se viene fatta una allocazione da 2 megabytes). I blocchi principali di memoria sono tipicamente organizzati come complesso dei file. Il banco 1 della memoria flash ? tipicamente allocato ad un dispositivo del complesso dei file, e pu? variare dall'indirizzo DFFFFFH a COOOOOH. ;Facendo riferimento alla figura 3, l'ASIC 110 pu? meglio essere compreso. Un tampone di clock 160 riceve un segnale CLK50 e fornisce segnali di clock alla logica RESET SYNC 162, alla logica di controllo DRAM 164, e alla logica di controllo del temporizzatore 166. Un tampone (INT) 168 riceve i segnali INTP, INTA, INTB, MSINT, KBINT e NINT come definito nella tabella 2. ;TABELLA 2 ;Nome Segnale Descrizione Direzione Da/a A<23:1> bus indirizzo CPU I CPU D<15:0> bus dati CPU I/O CPU ADS# strobe indirizzo CPU I CPU D/C# Data/Controllo I CPU M/IO# Memoria/Input, output I CPU W/R# S crittura/Lettura I CPU BHE# Abilitazione alto bus I CPU BLE# Abilitazione basso bus I CPU DMA<9:0> bus indirizzo memoria DRAM o DRAM RAS<1:0> strobe indirizzo ROW 0 DRAM UCAS<1:0> strobe CAS superiore 0 DRAM LCAS<1:0> strobe CAS inferiore 0 DRAM WE# Abilitazione Scrittura 0 DRAM BD<15:0> bus dati periferica I/O FLASH, SIO, LAN... FLASHCS<1 :0># selezione chip flash 0 FLASH COMICS# selezione chip porta 1 COM 0 SIO COM2CS# selezione chip porta 2 COM 0 SIO PRINTERCS# selezione chip porta stampante 0 SIO IOWR# scrittura input/output 0 SIO,KBCTRL,LAN IORD# lettura input/output o SIO,KBCTRL,LAN MEMWR# scrittura memoria 0 FLASH, LAN MEMRD# lettura memoria 0 FLASH, LAN 8042CS# selezione chip Controllore Tastiera o KB CTRL SPEN Uscita Altoparlante 0 SPEAKER READY# Pronto 0 CPU RESE? input Reset I RESET RESET# output (invertito) Reset 0 SIOjKBCTRL RESET output Reset 0 CPU, VGA, LAN INTA interrupt COMI I SIO INTB interrupt COM2 I SIO INTP interrupt porta stampante I SIO KBINT interrupt tastiera I KB CTRL MSINT interrupt mouse I KB CTRL NINT interrupt rete I LAN INTR uscita interrupt o CPU CLK2 Clock sistema I ose KBCLK Clock controllore tastiera 0 KB CTRL TCLK Clock temporizzatore I ose CONFIG<3:0> Input Configurazione I EXT SLEEP abilita salvataggio schermo 0 MPS PWDOWN Spegnimento O LOGIC IDCS# selezione chip porta ID 0 LOGIC DIAGCS# selezione chip porta diagnostica 0 LOGIC ;;Il tampone INT fornisce una pluralit? di segnali alla logica di controllo Interrupt 170, che riceve un segnale di controllo dal tampone di ingresso del controllo CPU 172 e un segnale di controllo del temporizzatore dalla logica di controllo del temporizzatore 166 e genera un segnale di uscita INTR, che ? fornito alla CPU. Il tampone di ingresso di controllo della CPU 172 fornisce anche un segnale di controllo alla logica di controllo del Ciclo 174, che a sua volta fornisce un segnale di controllo al controllo DRAM 164. Il controllo DRAM 164 riceve anche un segnale di refresh dalla logica di controllo del temporizzatore 166; la logica di controllo del temporizzatore 166 genera anche il segnale di abilitazione dell'altoparlante SPEN. ;Nella forma realizzativa esemplificativa la logica di controllo di Interrupt 170 non ? 8259 compatibile; parimenti, il temporizzatore di sistema o la logica di controllo del temporizzatore 166 non ? 8254 compatibile, e opera ad una frequenza pi? alta di un dispositivo 8254 -compatibile. Il risultato ? che alcune delle interruzioni a pi? alta frequenza inviate dalla logica di controllo del timer vengono mascherate nel kernel, ma altre vengono passate per approssimare, in media, il tempo normale tra interruzioni. La pi? alta frequenza in questo modo permette l'emulazione di una funzionalit? di PC standard anche se il tempo tra interruzioni emulate di minore frequenza (standard) pu? non essere uniforme. ;L'ASIC 110 include anche un tampone di Ingresso di Indirizzo CPU 176, che riceve segnali BEO, BEI e A1-A23 come descritto nella tabella 2 e fornisce un segnale di uscita ad un Mux di Indirizzo Memoria DRAM 178, nonch? una logica di Controllo Selezione di Chip Mem/IO 180. La logica di Controllo Selezione di Chip Mem/IO 180 fornisce una variet? di segnali di uscita, compresi i segnali FLASHCSO (FCSO) e FLASHCS1 (FCS1), ed altri come mostrato in tabella 2. Inoltre l'ASIC 110 riceve i segnali DO-15 dal bus dati 106 e li fornisce al tampone di ingresso dei Dati CPU 182. Il tampone 182 fornisce dati ad un Registro Tampone di Uscita Bdati 184, che fornisce segnali di uscita BDO-15. Il tampone 182 fornisce anche dati alla logica di controllo di Potenza 186, che fornisce i segnali SLEEP e PWRDWN. ;I segnali BDO-15 possono anche fornire dati al Tampone di Ingresso Bdati 188, che a sua volta fornisce quei dati al tampone di uscita Dati CPU 190. La logica di controllo dell'interruzione 170 fornisce anche segnali al tampone 190. Un registro di configurazione 192 fornisce anche un segnale di configurazione (quale una configurazione hardware, per esempio quanto flash e/o DRAM, o dall'alimentazione del monitor o da una scheda ad innesto, per esempio, una scheda di rete) al tampone di uscita dati CPU che pu? fornire dati sul bus 106 al CPU.. ;Facendo poi riferimento alla figura 4, gli elementi chiave del sistema operativo terminale secondo la presente invenzione possono essere meglio compresi. Da quanto precede si comprender? che 1'hardware della presente invenzione non ? compatibile con un disegno AT-bus standard. Invece, la presente invenzione fa riferimento ad un firmware per fornire i servizi BIOS richiesti ai livelli software superiori. In una forma realizzativa esemplificativa, il firmware ? progettato per operare in modo 8086 virtuale, con componenti hardware AT-compatibili quali i controllori di interruzione e i temporizzatori che vengono emulati nel software il pi? strettamente possibile. Inoltre, mentre un controllore di tastiera standard viene usato in una forma realizzativa esemplificativa, nel caso venga usato un controllore non standard l'interfaccia per questo dispositivo dovrebbe anche essere emulata. Segnali quali I/O da e verso le porte di tali componenti hardware vengono intercettati per facilitare l'emulazione. Inoltre, sotto il controllo di un passaggio A20 emulato, le caratteristiche di gestione della memoria del processore potrebbero essere abilitate a simulare la visualizzazione estesa che avviene nell 'hardware normale'a un megabytes. ;Continuando con il riferimento alla figura 4, il sistema operativo di terminale comincia l'esecuzione con un blocco di boot 300, seguita dal caricamento di un kernel 305. Il kernel 305 fornisce molte delle funzioni di intercettazione e rimappatura della presente invenzione, come pi? in particolare spiegato pi? avanti. Al completamento del kernel 305 il codice IO.SYS 310 viene caricato. Quindi il codice COMMAND.COM 315 viene caricato, seguito dall'esecuzione di comandi forniti da un file AUTOEXEC.BAT. Il file AUTOEXEC.BAT pu? includere, ad esempio, piloti di tastiera e mouse bench? entrambi questi piloti possono non essere usati in ogni caso, nonch? un pilota VGA XMS. Esso pu? anche includere altri codici opzionali comprendenti l'inizio di una sequenza di autotest, che va in esecuzione se esistono condizioni appropriate. In una forma realizzativa esemplificativa una spina di anello a ritorno installata in una porta di comunicazioni provoca l'esecuzione di una sequenza di auto-test . ;Il codice EXEC.COM 325 viene quindi caricato. A questo punto, a seconda dell'implementazione, il sistema entrer? nel modo setup, o comandi di utente possono provocare un'entrata nel modo di setup o il caricamento del codice di connessione rete. In una forma realizzativa attualmente implementata, il sistema entra nel modo di setup per ottenere dati di configurazione corrente, e poi continua con il caricamento del codice di connessione rete. ;Se 1'implementazione permette all'utente di selezionare, e se il modo di setup viene selezionato dall'utente, 1'EXEC .COM 325 dirama per far lavorare il SETUP, o GUI 330. Se il modo setup non era stato scelto, 1'EXEC.COM 325 coopera nel caricamento e scarico dei piloti di rete a 335 e comincia il funzionamento del codice di connessione rete (ancora, ICA, thinwire, coni, o altra rete) in 340. In una forma realizzativa attualmente preferita, il codice di connessione rete include una versione sostanzialmente modificata del Winframe per cliente DOS, la versione standard del quale ? disponibile da Citrix Systems, Ine. ;Facendo riferimento ora alla figura 5, la cooperazione del sistema operativo di terminale e della architettura hardware della presente invenzione pu? essere meglio compresa. In particolare, il pi? basso livello mostrato in figura 5 ? il sistema di input/output e il livello hardware 400. Il livello pi? alto successivo ? il livello Piloti 402, mentre il livello pi? alto ? il livello Applicazione 404. ;All'accensione, vengono effettuati i test "power-up" e "Init" 406 nel livello hardware come parte del blocco di boot 300. I test "power-up" e "Init" si eseguono in parte come fuori del sistema di memoria flash 112 e in parte fuori della RAM 116. Una volta che i test di accensione sono stati completati, il terminale continua con la sequenza di boot descritta genericamente sopra in relazione alla figura 4, comprendente il resto del blocco di boot 300, una sequenza AUTOEXEC 408, e la sequenza COMMAND.COM indicata in 315. I file AUTOEXEC e COMMAND.COM sono entrambi conservati nella memoria flash. ;Dopo che ? eseguita la sequenza COMMAND.COM di terminale, provoca il caricamento del file AUTOEXEC. L'AUTOEXEC a sua volta provoca il caricamento dell'EXEC.COM 325. Come notato prima, la sequenza EXEC.COM 325 pu? estendersi o al Modulo Setup 330 o al modulo Connessione Rete 340. All'installazione iniziale o in qualsiasi momento successivo che i parametri operativi del terminale richiedono verifica o cambiamento, il Modulo Setup 330 viene attivato. Il Modulo Setup 330 riceve informazioni da uno o pi? file dati di setup 418 e fa partire il motore GUI 420. Il motore GUI 420 a sua volta comunica con un pilota di tastiera 422, un pilota mouse 424, e il pilota dei file e dei servizi di memoria 426 del sistema operativo di terminale. Inoltre, il motore Gui 420 comunica anche con il sistema di input/output del video 428, che a sua volta fornisce dati al controllore video 430, che pu? ad esempio essere basato su un processore grafico Cirrus 5429, per generare una visualizzazione video durante la sequenza di setup. La sequenza di setup verr? descritta in maggior dettaglio con riferimento alla figura 5. ;Il pilota di tastiera 422 a sua volta comunica con 1'hardware controllore della tastiera 432, che pu?, ad esempio, essere un sistema di input/output di tastiera PS/2 convenzionale, un interfaccia bus seriale universale (USB), e in almeno alcune forme realizzative pu? anche comprendere un interfaccia di tastiera a quattro fili quale quella descritta nel brevetto USA n. 4706068 summenzionato. Similmente, il pilota del mouse 424 ? anche tipicamente in comunicazione in momenti opportuni con un sistema di input/output del mouse 434. Attraverso tali operazioni, le porzioni dei servizi file flash e memoria del sistema operativo di terminale 426 saranno tipicamente in esecuzione dalla flash e RAM. ;Come discusso in maggior dettaglio in relazione alla figura 5, l'operazione di setup permette all'utente di specificare l'informazione di configurazione del terminale, includendo tali parametri come interfaccia di rete e dettagli di configurazione correlati, linguaggio, colori, ed altri parametri. Una volta che questi parametri vengono specificati, i dati sono memorizzati nei file dati di connessione 440. ;A questo punto l'utente ? pronto per uscire dal modulo di setup del terminale 414 e ritornare all'EXEC .COM. Quando ? fatto continuare il processo EXEC.COM 412 pu? essere fatto diramare al modulo di connessione rete 416. Il modulo di connessione rete 340 inizia ricercando i dati memorizzati nei file dati di connessione 440 e la linea di comando del modulo di connessione, comunicando quindi al server applicativo come parlare al resto degli strati pilota e hardware del terminale. In particolare, il modulo di connessione rete comunica con il pilota della tastiera 422, il pilota del mouse 424, il sistema input/output del video 428, e la porzione di servizi dei file e della memoria 426 del sistema operativo di terminale. Inoltre il modulo di connessione rete connette anche un interfaccia seriale hardware 442 nonch?, in alcune forme realizzative, un interfaccia rete hardware 444. I piloti di rete 444 eseguono da RAM 116 in una forma realizzativa esemplificativa, ma possono eseguire dalla memoria flash 112. L'interfaccia seriale 442 pu? essere una convenzionale interfaccia RS232, ma pu? anche essere un altro tipo di connessione seriale quale l'Universal Serial Bus, o USB. ;Facendo poi riferimento alla figura 6, il funzionamento del motore GUI 420 mostrato in figura 5 durante il modulo setup del terminale 12 pu? essere meglio compreso. Il motore GUI funziona solo durante il modo setup, e fornisce una interfaccia utente grafica rudimentale durante l'operazione di configurazione. ;Come notato in relazione alla figura 5, qui sopra, la funzione di figura 6 comincia quando la sequenza di setup viene invocata durante il "boot up" del terminale. La sequenza di setup pu? essere invocata da una sequenza di battute o qualsiasi altro mezzo idoneo e conveniente. La sequenza di setup parte con la chiamata del codice di setup 502 che a sua volta estrae informazioni dai file dati di setup 418. I file dati di setup 418 identificano le opzioni disponibili nella configurazione del terminale. Il codice di setup 502 comunica bidirezionalmente con una struttura RAM 504, e fa anche s? che le informazioni di connessione esistenti dai file dati di connessione 440 vengano scritti nella struttura RAM 504. Il motore GUI 420 comunica anche bidirezionalmente con la struttura RAM per predisporre e visualizzare le informazioni correnti in una disposizione descritta in seguito come aree, gruppi e selezioni. Inoltre, un'interfaccia hardware 506 fornisce informazioni video al controllore video 430 mentre risponde a informazioni ricevute dall'utente attraverso il mouse 260 e la tastiera 250. ;Il codice di setup permette all'utente di eseguire un ciclo attraverso una pluralit? di menu di configurazione per le caratteristiche operative del terminale, quale il linguaggio visualizzato sul terminale, il metodo di connessione di rete e cos? via. Nella figura 7A ? mostrata una illustrazione della schermata di setup usata nel modo di configurazione del terminale. In una forma realizzativa preferita, le schermate di setup vengono visualizzate graficamente. Quando l'utente esegue un ciclo attraverso le schermate di configurazione, i dati di configurazione possono essere selettivamente aggiornati dall'utente mediante l'uso della tastiera e del mouse. I dati aggiornati vengono conservati nella struttura RAM 504 prima di essere scritti nei file dati di connessione 436. ;Tuttavia, in una forma realizzativa attualmente preferita, ;alcuni di questi dati possono essere aggiornati ;dinamicamente, mentre altri dati non vengono aggiornati ;finch? la sequenza di setup non ? completata. Al ;completamento della sequenza di setup, comprendente la ;scrittura di qualsiasi dato di configurazione rimanente ;nei file dati di connessione 436, la sequenza di setup ;esce e ritorna al EXEC.COM 325 per l'inizio del modulo di ;connessione rete 340 mostrato in figura 5. ;Facendo ancora riferimento alla figura 7A, la finestra <? >complessiva in cui appaiono i dati verr? qui riferita come ;area 600. In ciascuna area 600 vi sono uno o pi? gruppi ;610 e ciascun gruppo 610 comprende una o pi? selezioni * 620. In questo modo, nell'esempio di figura 7A, il gruppo
"Communication" comprende le selezioni Porta Seriale,
TCP/IP, SPX e IPX, ciascuna dei quali ha associata una
regione 630 che indica che quella selezione ? stata
scelta, o selezionata.
Facendo poi riferimento alle figure 7B1 - 7B3, le
strutture dati associate con il software di configurazione
vengono illustrate. In particolare, una lista di puntatori
d'area si trova in AREA_LIST 700. Le strutture puntate
dalla lista d'area comprendono confini, dimensione, titolo
e gruppi annessi per tutte le aree come definito nel processo di SETUP. Come notato in precedenza, ciascuna area appare come una finestra sullo schermo. Inoltre tutte le aree che stanno per essere attualmente visualizzate vengono listate in DISP_AREA_LIST 702. In una forma realizzative semplificativa, la prima area listata ? visualizzata come area di fondo, e l'ultima area listata ? visualizzata come area di testa. Nella forma realizzativa esemplificativa, ? permessa la sovrapposizione di finestre per quanto la sovrapposizione non ? necessariamente richiesta in tutte le forme realizzative.
In 704 c'? una struttura dati per GROUP_LIST, la quale lista tutti i gruppi definiti dal processo di SETUP in tutte le aree trovate nell'AREA_LIST 700. Come notato in precedenza, ciascuna area tipicamente include uno o pi? gruppi. Una struttura dati opzionale 706 per una STRING_LIST pu? anche essere prevista e una FILE_LIST 708 viene prevista come directory per fare la mappa di bit di immagini che possono essere usate in casi multipli nelle varie aree, gruppi e selezioni.
La struttura della AREA_LIST 700 pu? esser vista in 710 e include un blocco per un area ID 712, un puntatore per l'area successiva 714, un puntatore per l'area precedente 716, ed un puntatore di struttura 718. Il puntatore di struttura 718 associato con ciascuna area ID 712 punta a un'area di struttura 715 che include l'area ID 712 insieme ad un ingresso ABS_X 720 e un ingresso ABS_Y 722 per dare la localizzazione di quell'area rispetto a (nella forma realizzativa esemplificativa) l'angolo sinistro in alto del visualizzatore. La struttura d'area 714 include anche un'entrata ROWS 724 e un'entrata COLONNE 726 che insieme specificano la dimensione dell'area. Un'entrata FLAGS 728 specifica se un bordo si estende intorno all'area. Un'entrata TITLE_POSITION 730 e un'entrata TITLE_BAR 732 specifica il testo del titolo e la sua localizzazione nella barra del titolo dell'area particolare, mentre una entrata MAX_STR_LEN 734 specifica il numero massimo di caratteri che possono essere usati per il titolo.
Inoltre la struttura di area 714 comprende anche un'entrata 736 per il numero di gruppi contenuti nell'area particolare. Un'entrata AREA_MPTR 738 specifica il punto caldo (hot spot) del puntatore del mouse entro l'area, mentre un'entrata DEF_BUTTON 740 specifica quale bottone all'interno dell'area sar? di default. Il bottone di default verr? attivato quando il tasto "enter" viene premuto. Un'entrata CAN_BUTTON 742 specifica il bottone di cancellazione che verr? attivato quando il tasto "esc" viene premuto. Infine, una lista di puntatori, uno per ciascun gruppo associati entro l'area, viene specificato in 744A-744N. Ciascun puntatore di gruppo 744 punta verso un blocco di struttura di tipo associato 746, discusso in seguito. Una lista di tasti caldi pu? anche essere definita per l'area. La struttura di DSP_AREA_LIST, mostrata in 748, ? essenzialmente identica alla struttura di AREA_LIST 700, e include blocchi per l'area ID, area successiva, area precedente, e puntatore di struttura. Come con AREA__LIST 700, DISP_AREA_LIST 748 punta anche alla struttura di area 714. Una simile struttura per GROUP_LIST 704 ? mostrata in 750, e include un gruppo ID 752, un puntatore di gruppo successivo 754, un puntatore di gruppo precedente 756 e un puntatore di struttura di gruppo 758. Una struttura similare per STRING_LIST opzionale 706 pu? anche essere prevista e pu? includere una stringa ID 760, un puntatore di stringa successiva 762, un puntatore di stringa precedente 764, ed un puntatore di struttura di stringa 766.
Riferendoci ancora al puntatore di struttura di gruppo 758, esso punta al blocco di struttura di gruppo 746 e include il gruppo ID 752, un'entrata PARENT_SELECT_ID 780, per identificare la selezione che, quando attivata, estrarr? automaticamente questo gruppo, un'entrata HOTSPOT COUNT 782 per identificare il numero di punti caldi di mouse nel gruppo, ed entrate GSTART_X e GSTART^Y 784 e 785, rispettivamente, per specificare la relativa localizzazione dei gruppi all'interno dell'area. In una forma realizzativa esemplificativa, le localizzazioni sia del gruppo che della selezione vengono specificate rispetto all'angolo sinistro in alto dell'area che le contiene; ma altre relazioni altrettanto accettabili possono essere definite, quali la specificazione della localizzazione di una selezione rispetto alla localizzazione del suo gruppo. L'elemento pi? importante ? di assicurare che tutte le caratteristiche di un'area mantengano la loro posizione nell'area se l'area viene spostata .
Il blocco di struttura di gruppo 746 comprende anche entrate ROWS e COLUMNS 788 e 790, rispettivamente, per specificare la dimensione del gruppo nonch? un'entrata GFLAGS 792 per specificare il bordo del gruppo. Inoltre un entrata QUICK_KEY_POSITION 794 ed un'entrata QUICK_KEY_STROKES 796 possono anche essere specificate per combinazioni di tasti "hot" associate con il gruppo.
Ulteriori entrate, similari alla struttura di area, per la posizione del titolo 798, l'etichetta di gruppo 800, e MAX_STR_LEN 802 possono essere previste. Inoltre, un'entrata NUM_OF_SELECTS 804 ? prevista per identificare il numero di selezioni contenute in un gruppo. ? poi prevista un'entrata 806 per AID_ATTACH come riferimento di ritorno all'area ID 712 alla quale il particolare gruppo ? associato. L'entrata AID_ATTACH 806 non ? richiesta in tutti i casi, ma ? utile nel migliorare le prestazioni in almeno alcuni casi. Infine, una lista di entrate di puntatore da 808A a 808N ciascuna punta a una struttura di selezione associata al particolare gruppo. Come sar? discusso in seguito, una variet? di strutture di selezione pu? essere associata a ciascun gruppo, ma alcuni elementi sono comuni tra i vari tipi. In questo modo, il primo puntatore 808A punta ad un blocco di struttura SELECT_COMMON 810. Riferendoci ancora al blocco di struttura di area 714, l'entrata di bottone di default 740 e l'entrata di bottone di cancellazione 742 punta anche al blocco di struttura di selezione comune 810.
Il blocco di struttura SELECT_COMMON 810 include un'entrata ID di selezione 812, un'entrata 814 che d? un riferimento di ritorno al gruppo ID, entrate REL_X e REL_Y 816 e 818 con entrate ROWS e COLS 820 e 822 per specificare la localizzazione e la dimensione della selezione, entrate QUICK_KEY_POS e QUICK_KEY_CHR 824 e 826 per specificare le combinazioni di tasti caldi associate con la selezione, un MAX_STR_LEN 828 e un "select string" 830 per specificare la selezione massima e il titolo per la selezione, e un'entrata SFLAGS 832 per specificare le caratteristiche della selezione.
Inoltre, ? anche prevista un'entrata SELECT_TYPE 834. Come notato in precedenza, sono disponibili tipi differenti di selezioni, e si fa ancora riferimento alla figura 7A. I differenti tipi di selezioni che possono essere previsti in un gruppo dipendono dal tipo di dati richiesti in quella fase per configurare il terminale. In alcuni casi, le scelte implicano solo premere un bottone (vedere bottone 640); in altre una selezione implica l'abilitazione o la disabilitazione di una caratteristica, come una casella di controllo (vedere 650 in figura 7A); in altri casi, deve essere selezionata una tra parecchie scelte, come indicato nei gruppi 660 e 670 di figura 7A "Communication" e "Serial Port". In altri casi ancora, pu? essere selezionata un'immagine, mentre in altri un testo specifico deve essere selezionato. In alcuni un'entrata di "fill-in" viene richiesta (680 in figura 7A) mentre in altri deve essere riempito uno tra molti campi. Per quanto questi siano i tipi di selezioni che sono stati implementati in una forma realizzativa esemplificativa, la lista non ? esaustiva ed altre selezioni possono essere facilmente implementate con gli insegnamenti qui contenuti .
Per una selezione "fill-in", sono previste entrate di partenza cursore e di arresto cursore 836 e 838, con un'entrata "first displayed" 840 per identificare da quale carattere sulla stringa dovrebbe essere visualizzata. Inoltre, ? prevista un'entrata LABEL_REL_X 842 nonch? un'entrata LABEL_REL_Y 844 e un'entrata LABEL_STR 846.
Per un tipo di selezione "one of many" sono previste entrate per NUM_0F_SEL_R0WS e NUM_OF_SEL_COLS 848 e 850, rispettivamente. Sono anche previste entrate per il numero di opzioni 852 e opzioni di default 854, nonch? un puntatore di tasto rapido 856 e un puntatore di flag 858 per identificare il numero di opzioni che sono attive. Infine ? anche prevista una "select size" 860.
Per un tipo di selezione "image", deve essere specificata solo un'entrata per il file ID 708 e un puntatore di immagine 862.
Per un tipo di selezione "fields" ? prevista un'entrata ID "child group" 864 con un puntatore child group, che punta ad una struttura di gruppo del tipo mostrato nel blocco di struttura di gruppo 746. Il child group sar? estratto automaticamente quando viene attivata la selezione madre, e viene selezionato uno di un gruppo di campi.
Per una selezione "list of strings" sono previste entrate per numero di opzioni 868, lunghezza massima del titolo dell'opzione {o MAX_OP_LEN) 870, un'entrata di spostamento orizzontale del display 872 e un'entrata di spostamento verticale del display 874 con una posizione di etichetta X 878 e una posizione di etichetta Y 880. Infine una stringa di etichetta 882 e un'entrata di selezione dimensione stringa 884 sono previste.
Con riferimento ancora all'entrata AREA_MPTR 738, il punto caldo del puntatore del mouse ? specificato da una struttura che include un'entrata ID di area, un'entrata ID di gruppo 902, e selezione ID 904. Inoltre, un'opzione di tipo selezione 906 ? prevista per specificare il tipo di selezione a cui un particolare punto caldo ? associato. Inoltre, entrate di riferimento di ritorno 908 e 910 sono previste per ID di gruppo nell'area e ID di selezione nel gruppo. Inoltre ancora, quattro entrate 912A-D specificano le posizioni superiore sinistra X e Y nonch? le posizioni inferiore destra X e Y per il punto caldo del mouse, con un'entrata 914 per i flag di <' >mouse che producono l'attivazione del punto caldo del mouse quando viene visualizzato il relativo menu. Oltre ai punti caldi descritti in precedenza, ulteriori punti caldi sono previsti in testa e in fondo a una visualizzazione di lista, per consentire lo scorrimento e nella porzione di barra del titolo di un'area, per consentire il movimento della finestra dell'area.
Oltre alle precedenti strutture, una struttura dati ? anche prevista per mantenere le entrate attualmente selezionate tra le varie scelte. Il blocco di struttura dati attuale ? mostrato in 950, e include un'entrata 952 per il numero di aree attualmente definite da SETUP; un'entrata 954 per quanti file immagine sono definiti; entrate 956 e 958, rispettivamente, per quanti gruppi e selezioni sono stati definiti, un'entrata 960 per allocare un numero massimo predeterminato di selezioni. In una forma realizzativa esemplificativa, il massimo numero di selezioni ? allocato in blocchi di dieci.
Ulteriori entrate 962 e 964 sono previste per il numero di pixels per colonna e per fila, rispettivamente, nonch? un'entrata font 966, un'entrata fuoco di area 968, un'entrata fuoco di gruppo 970 e un'entrata fuoco di stringa 972. Inoltre, un'entrata fuoco di mouse 974 ? prevista per specificare il punto caldo. Inoltre le entrate OFOCUS e TFOCUS 976 e 978 possono essere previste per specificare opzioni di selezione e tipi di selezione con fuoco di tastiera. Inoltre ancora entrate IFOCUS e JFOCUS 980 e 982 sono previste per le entrate "hotspot" 908 e 910 dal blocco di struttura di mouse sopra descritto. Infine, un'entrata di menu 986 ? specificata per identificare il fuoco del menu attuale, insieme con entrate 988 e 990 per definire bordi di area e bordi di gruppo con un'entrata OFLAGS per specificare modi di mouse .
L'informazione che specifica lo stato attuale delle selezioni viene specificata in una struttura ACTIVE SELECT 1000. Ciascuna struttura comprende un'entrata di bottone 1002, un STFLAGS, o flag di select common, entrata 1004, e un'entrata ACTIVE, che memorizza lo stato attuale di tutte le selezioni, da cui quei dati possono essere resi disponibili per il codice SETUP.
In una forma realizzativa esemplificativa, una struttura di coda di eventi 1010 pu? anche essere fornita, per registrare tasti e movimenti del mouse in una coda di eventi .
Come notato in precedenza, una caratteristica chiave della presente invenzione ? che il sistema operativo di terminale della presente invenzione non ? compatibile con un PC/AT BIOS o DOS standard. Tuttavia, il sistema operativo di terminale ? richiesto supportare alcune di queste funzioni per mantenere la capacit? di visualizzare dati di applicazione in un ambiente multiutente, come per interfacciamento con un cliente Citrix o altre emulazioni supportate. Allegata come tabelle 3A-3C ? una lista delle funzioni IO.SYS e BIOS.SYS standard che sono supportate dalla presente invenzione; risulter? chiaro agli esperti del ramo che la lista non include numerose funzioni BIOS e DOS standard. Altre funzioni non sono supportate. Inoltre alcune delle caratteristiche che sono elencate sono supportate solo parzialmente in una forma realizzativa attualmente preferita. Cos?, la funzione 36h ( "Get Disk Free Spaces") ? solo in parte supportata in seguito all'uso di memoria flash invece di un disco rigido. Analogamente, la funzione 33h ( "Get/Set System Value") ? supportata in termini di funzione e flag, ma la funzione "Control-Break" non ? supportata.
Similmente, la funzione 2Ah-2Dh ("Get/Set Date/Time functions") ? supportata solo in parte perch? non ? previsto hardware in tempo reale nel terminale della presente invenzione. La funzione "Get Time" ? supportata in modo che questa pu? essere usata per misurare la durata degli eventi, senza riflettere il tempo assoluto.
TABELLA 3A
Supporto per le funzioni DOS nel modulo IO. SYS:
Funzione 2 (Uscita Display): Supportata.
Funzione 6 (I/O Console Diretto): Supportata.
Funzione 7 (Ingresso Console Diretto Senza Eco): Supportata.
Funzione 8 (Ingresso Console Senza Eco): Supportata.
Funzione 9 (Stringa Display): Supportata.
Funzione OAh (Ingresso Tastiera Tamponato): Supportata.
Funzione OBh (Controllo Stato Ingresso Standard): Supportata.
Funzione OCh (Azzeramento Tampone Tastiera e Chiamata Funzione Tastiera):
Supportata.
Funzione OEh (Selezione Disco): Supportata.
Funzione 19h (Disco Corrente): Supportata.
Funzione lAh (Posizionamento Indirizzo di Trasferimento Disco): Supportata. Funzione 25h (Posizionamento Vettore Interruzione): Supportata.
Funzione 26h (Creazione Nuovo Segmento Programma): Supportata.
Funzione 2 Ah (Prelevamento Data): Parzialmente supportata.
Funzione 2Ch (Prelevamento Tempo): Parzialmente supportata.
Funzione 2Dh (Posizionamento Tempo): Parzialmente supportata.
Funzione 2Fh (Prelevamento Indirizzo Trasferimento Disco(DTA)): Supportata. Funzione 3 Oh (Prelevamento Numero Versione DOS): Supportata.
Funzione 3 Ih (Terminazione Processo e Restare Residente): Supportata.
Funzione 33h (Prelevamento/Posizionamento Valore di Sistema): Funzione e Flag ? supportata; operazione Ctrl-Break ? non supportata.
Funzione 35h (Prelevamento Vettore Interuzzione): Supportata.
TAB. 3 A, cont.
Funzione 36h (Prelevamento Spazio Libero Disco): Supportata, ma i parametri di allocazione ritornati sono in certo modo arbitrari in quanto il drive flash non ? composto di settori e cluster.
Funzione 3Ch (Creazione File): Supportata.
Funzione 3Dh (Apertura File): Supportata, ma non sono distinti tutti i modi.
Funzione 3Eh (Chiusura Gestione File): Supportata.
Funzione 3Fh (Lettura da un File o Dispositivo): Supportata per file ma non per dispositivi.
Funzione 40h (Scrittura su File o Dispositivo): Supportata per file e dispositivo STDOUT. Il sistema di file flash impone restrizioni sulle operazioni di scrittura file.
Funzione 4 Ih (Cancellazione File): Supportata.
Funzione 42h (Movimento Puntatore Lettura/Scrittura File): Supportata, ma il sistema di file flash impone restrizioni a questa funzione per file aperti nel modo scrittura
Funzione 43h (Cambiamento Modo File): Non supportata (segnale di errore).
Funzione 44h (Controllo I/O Per Dispositivi): Questa funzione contiene molte sottofunzioni, molte delle quali non sono supportate. La maggior parte delle sottofunzioni che sono supportate ritornano parametri arbitrari o ?hard-coded?. Funzione 47h (Preleva Directory Corrente): Supportata.
Funzione 48h (Allocazione Memorie): Supportata.
Funzione 49h (Memoria Libera Allocata): Supportata.
Funzione 4 Ah (Modifica Blocchi Memoria Allocata): Supportata.
Funzione 4Bh (Carica o Esegui un Programma): Supportata, ma l?ambiente e i paramenti! FCB non sono elaborati.
Funzione 4Ch (Terminazione di un Processo): Supportata.
TAB. 3A, cont.
Funzione 4Dh (Prelevamento Codice Ritorno di un Sottoprocesso): Supportata. Funzione 4Eh (Reperimento Primo File Corrispondente): Supportata.
Funzione 4Fh (Reperimento File Corrispondente Successivo): Supportata.
Funzione 52h (Non documentata: Ritorna Lista delle Liste DOS): Parzialmente supportata.
Funzione 56h (Rinomina un File): Supportata.
Funzione 57h (Preleva/Posiziona Data e Ora File): Supportata per ?Preleva Data e Ora File? ma non per ?Posiziona Data e Ora File?.
Funzione 58h (Non documentata: Preleva/Posiziona Strategia Allocazione Memoria): Normalmente ritorna, ma la funzione non ? supportata.
Funzione 5Dh (Non documentata): Non supportata, ma normalmente ritorna se AL=9.
Funzione 62h (Preleva Indirizzo Prefissato di Segmento di Programma): Supportata.
FUNZIONI DOS (IO.SYS) PARZIALMENTE SUPPORTATE:
Funzione 44h (Controllo I/O Per Dispositivi):
Sottofunzione 0 (Preleva Informazioni Dispositivo): Supportata, ma solo i bit 0,
1, 7 e 14 sono supportati.
Sottofunzione 8 (Check di Rimovibilit?): Supportata.
Sottofunzione 9 (Check di Rete): Supportata (ritorna sempre 0).
Sottofunzione Eh (Controllo Alias Drive): Supportata (ritorna sempre
0).
TAB. 3 A, coni.
Funzione 52h (Non documentata: Ritorna Lista DOS di Liste): Ritorna un puntatore alla ?Lista di Liste?. La maggior parte di queste strutture dati non sono inizializzate, ma la seconda dword della ?Lista di Liste? punta ad alcuni dati tabella di file di sistema e la terza parola di quella regione ? posizionata a 30 per evitare che il nostro cliente Citrix non riesca. (Questa locazione ? dove il DOS memorizza il suo valore per ?FILES=?.).
Funzioni non elencate non sono supportate.
TABELLA 3B
Le seguenti caratteristiche sono supportate da COMMAND.COM - comando DIR
- comando TYPE
- comando DEL
- comando DEBUGMSG per ?toggle on/off ? messaggi di debug DOS - esecuzione programmi attraverso file batch
- file AUTOEXEC.BAT
Le seguenti caratteristiche sono supportate dal DOS
- caricamento ed esecuzionedi file .EXE e .COM (DOS e Int 2 Ih) - Int 2 Ih (come definito dalle funzioni di cui sopra)
- Int 27h (Termina ma Rimane Residente)
Le seguenti caratteristiche NON sono supportate:
- file CONFIG.SYS e piloti dispositivo .SYS
- comandi file batch diversi da esecuzione programma
- ridirezione I/O
- pipes
- la maggior parte dei comandi interni ed esterni
- Int 20h (Terminazione Programma)
- Int 22h (Indirizzo Terminazione)
- Int 23h (Indirizzo Uscita Ctrl-Break)
- Int 24h (Vettore Gestore Errore Critico)
- Int 25h (Lettura Disco Assoluto)
- Int 26h (Scrittura Disco Assoluto)
- Int 2Fh (Interruzione Multiplex)
TABELLA 3C
FUNZIONI BIOS SUPPORTATE IN IO.SYS:
Interruzione 5 (Stampa Schermo): Supportata.
Interruzione 8 (Interruzione Temporizzatore): Supportata.
Interruzione 9 (Interruzione Hardware Tastiera): Supportata.
Interruzione lOh (Servizi Video): Supportata con il Cirrus Logic BIOS.
Interruzione l lh (Rapporto Apparecchiature): Supportata.
Interruzione 12h (Rapporto Dimensione Memoria): Supportata.
Interruzione 14h (Servizi Porte Seriali): Supportata.
Interruzione 15h (Servizi Miscellanei): Parzialmente supportata.
Interruzione 15h/C2h (Servizi Mouse): In gran parte supportata.
Interruzione 16h (Servizi Tastiera): Parzialmente supportata.
Interruzione 1 Ah (Servizi Temporizzatore/RTC): Funzioni temporizzatore supportate; funzioni RTC non supportate.
Interruzione lCh (Temporizzatore Utente): Supportata.
Il segmento 40h ? riservato come area dati BIOS, ma solo alcune locazioni sono usate.
FUNZIONI BIOS PARZIALMENTE SUPPORTATE IN IO.SYS:
Interruzione 5 (Stampa Schermo): Non supportata.
Interruzione 15h (Servizi Miscellanei):
Sottofunzione COh (Ritorno Paramentri di Configurazione del Sistema);
Ritorna un puntatore ad una tabella di configurazione.
Sottofunzione C2h (Servizi Mouse):
Sottofunzione 0 (Abilita/Disabilita Dipositivo Puntatore): Supportata. Sottofunzione 1 (Risetta Dispositivo Puntatore): Supportata.
TAB. C, cont.
Sottofunzione 2 (Posiziona Valore Campione): Supportata.
Sotto funzione 3 (Posiziona Risoluzione): Supportata.
Sottofunzione 4 (Lettura Tipo Dispositivo): Non supportata.
Sottofunzione 5 (Inizializzazione Interfaccia Dispositivo Puntatura):
Non supportata.
Sottofunzione 6 (Ritorno Stato; Posiziona ?Scaling?): Supportata.
Sottofunzione 7 (Inizializzazione Chiamata Lontana Pilota Dispositivo): Supportata.
(Tutte le altre sottofunzioni di interruzione 15h non sono supportate.)
Interruzione 16h (Servizi Tastiera):
Sottofunzione 0 (Lettura Tastiera): Supportata.
Sottofunzione 1 (Stato Tasti): Supportata.
Sottofunzione 2 (Scorrimento Stato): Supportata.
Sotto funzione 3 (Posiziona Valore ?Typematic?): Non supportata.
Sottofunzione 4 (Regolazione Click Tastiera): Non supportata. Sottofunzione 5 (Scrittura Tastiera): Supportata.
Sottofunzione lOh (Lettura Tastiera Estesa): Supportata.
Sottofunzione 1 Ih (Stato Tasti Esteso): Supportata.
Sottofunzione 12h (Stato Scorrimento Esteso): Supportata.
Inoltre, il sistema di file flash della presente
invenzione ?, nella disposizione attualmente preferita,
suddiviso in drive di singola directory multipli.
Tuttavia, a differenza dei file di disco convenzionali, il
sistema di file flash non comprende clusters o settori. I
file in ciascun drive o partizione crescono verso l'alto
dal fondo della partizione, mentre le entrate di directory crescono verso il basso dalla testa. I file sono memorizzati contigui, senza frammentazione. Le entrate di directory, che sono lunghe 16 byte in una forma realizzativa preferita, sono generalmente simili a un'entrata di directory DOS; tuttavia, elementi che normalmente sarebbero riservati vengono definiti cos? da permettere ai file l'esecuzione dalla flash, piuttosto che dalla DRAM. Questi includono l'indirizzo di partenza del file entro il flash, nonch? il segmento di rimappatura del file nello spazio di indirizzo DOS.
L'eliminazione di file, che ? simile all'eliminazione di file DOS convenzionali, differisce anche in alcuni dettagli importanti. Quando un file viene eliminato nella presente invenzione, il primo byte dell'entrata di directory viene cambiato a 0, anzich? settario a E5h. Questa fase ? effettuata senza cancellare un blocco di flash. I file successivi verranno quindi scritti nello spazio successivo disponibile. Tuttavia, se non c'? abbastanza spazio disponibile per i file successivi, il blocco di flash del file cancellato viene cancellato e i file non cancellati vengono riscritti nel blocco di flash dove il file cancellato era stato conservato. Come notato prima, la frammentazione di file non ? permessa in almeno alcune forme realizzate.
Il complesso di file di flash supporta comandi convenzionali DIR, TYPE e DEL, supporta un nuovo comando "DEBUGMSG" per generare un messaggio di DEBUG, ed anche supporta l'esecuzione di programma attraverso file batch. Il complesso di file supporta anche il file AUTOEXEC.BAT, nonch? il caricamento e l'esecuzione di file .EXE e .COM, e Int 21h e Int 27h. Tuttavia, il complesso di file non supporta, in almeno alcune forme realizzative, il file CONFIG.SYS o i piloti di dispositivo .SYS. Analogamente, il complesso di file non supporta comandi di file batch (escluso l'esecuzione di programma), redirezione I/O, "pipe", o interruzioni 20h (Terminazione Programma), 22h (Indirizzo Terminazione), 23h (Indirizzo Uscita Ctrl-Break) , 24h (Vettore Gestore Errore Critico), 25h (Lettura Disco Assoluto), 26h (Scrittura Disco Assoluto), e 2Fh (Interruzione Multiplex).
Da quanto precede, risulter? chiaro che, mentre un gruppo selezionato delle funzioni standard BIOS e DOS vengono emulate o comunque supportate dal sistema operativo di terminale della presente invenzione, un numero molto significativo di funzioni standard BIOS e DOS non sono supportate. Inoltre, anche quelle funzioni BIOS e DOS che sono supportate non vengono eseguite da un hardware standard AT-compatibile. Invece, la porzione del sistema operativo di terminale riportata in figura 4 come "blocco di boot" 300 e come "kernel" 305 stabilisce la capacit? di emulare queste funzioni.
Le funzioni di servizio supportate dal blocco di boot 305 includono: GET FLASH DRIVE SIZE, che interroga la memoria flash 438 per la dimensione del drive; READ FLASH DRIVE, per leggere dati dalla memoria flash 438; WRITE FLASH DRIVE; GET FLASH DRIVE BLOCK SIZE, per interrogare la dimensione di blocco della memoria 438; ERASE FLASH DRIVE BLOCK, per cancellare dati dalla memoria 438; WARM REBOOT, usato dal test di fabbricazione per eseguire cicli attraverso la diagnostica di accensione ripetutamente, ma non usata nel normale funzionamento; GET BOOT BLOCK DATE; CLEAR KEYBOARD CONTROLLER I/O BIT, usata per controllare i componenti connessi al controllore della tastiera; e SET KEYBOARD CONTROLLER I/O BIT.
Il funzionamento del kernel 305 ? mostrato in maggior dettaglio. In particolare, il kernel include tre funzioni di servizio. La prima ? una funzione "ACTIVATE VIDEO INT 10h", che abilita le normali funzioni in t lOh per servizi video. L'interruzione int lOh ? inizialmente intercettata dal kernel 305 per sopprimere la visualizzazione di messaggi modo-testo dai vari piloti dei dispositivi quando questi piloti sono caricati. Dopo che i piloti sono caricati e il terminale entra nel modo grafica, la funzione ACTIVATE VIDEO INT lOh viene chiamata per ripristinare il funzionamento In t lOh. Inoltre il kernel 305 include una seconda funzione "SET POWER DOWN TIME" che pu? settare varie funzioni di risparmio energia (quali in accordo con Energy Star) e il temporizzatore del ritardo per attivare tali caratteristiche. Infine, il kernel 305 comprende una funzione "PROCESS DOS INTERRUPTS", che pu? essere chiamata dal blocco di boot o altre porzioni del kernel 305 ogni volta che ? necessario per elaborare interruzioni DOS in attesa che richiedano elaborazioni in tempo reale in ambiente DOS. Le interruzioni pi? spesso processate da questa funzione sono interruzioni mouse e tastiera, per quanto esse possono includere interruzioni di temporizzatore, seriale, parallela e di rete. L'intercettazione da parte di questa funzione impedisce, ad esempio, che interruzioni di mouse e di tastiera vengano disabilitate per un periodo eccessivo - cio?, lungo abbastanza da risultare fastidioso per l'utente, per esempio un ritardo di circa un secondo tra un movimento del mouse e un movimento corrispondente del cursore - e per far scorrere l'uscita del controllore di tastiera quando diventa necessario inviare un comando al controllore di tastiera.
Poich? 1'hardware della presente invenzione non soddisfa lo standard PC/AT e il firmware non soddisfa n? il PC/AT BIOS n? il DOS convenzionali, ma il sistema nel suo complesso ? inteso permettere all'utente di vedere e interagire con un display Windows convenzionale, alcune interruzioni hardware convenzionali e relative chiamate devono essere gestite dalla presente invenzione. In una forma realizzativa preferita, tali interruzioni e chiamate sono trattate nel firmware del terminale, emulando o modificando la risposta appropriata al segnale in ingresso. Tali risposte verranno trattate in maggior dettaglio in relazione con il kernel di software descritto qui di seguito.
Il kernel mette il processore nel modo 8086 virtuale e predispone varie tabelle necessarie per intercettare I/O a varie porte. Dopo che un accesso ad una porta prescelta genera una eccezione, l'istruzione che ha generato l'eccezione viene disassemblata cosicch? il kernel pu? processarla correttamente per emulare una compatibilit? PC, semplificando in tal modo il condurre su porte di varie "personality". Poich? viene eseguita un'intera subroutine per ciascuna istruzione di I/O intercettata, l'istruzione I/O non viene eseguita cos? velocemente da limitare la I/O intercettata al minor numero di porte possibile. In alcuni casi, tutte o solo una parte di una porta I/O viene interrotta quanto necessario per fornire una compatibilit? AT. Si comprender? che, mentre la forma realizzativa primaria qui descritta ? intesa fornire una "personality" Citrix Winframe, altre "personality" potrebbero essere implementate per l'uso da parte del terminale secondo la presente invenzione. In alcuni casi, il terminale della presente invenzione pu? includere "personality" multiple in memoria, con il terminale connesso a ospiti multipli che lavorano con sistemi operativi differenti che aspettano tali differenti "personality". L'utente o altri possono quindi essere in grado di selezionare da tali "personality", attraverso un tasto caldo o altra sequenza, mentre il kernel della presente invenzione esegue la "personality" appropriata dalla memoria e permette la comunicazione con l'ospite appropriato .
Le porte I/O che sono intercettate dal kernel per fornire compatibilit? AT sono:
20h (La porta di comando di un controllore di interruzione AT-compatibile) - Viene emulato solo il comando di "fine interruzione", che ? emesso alla fine di ciascun gestore di interruzione per far s? che possano verificarsi pi? interruzioni della medesima priorit? o inferiore. Il kernel emula anche il funzionamento normale di un controllore di interruzione PC-compatibile di interruzioni di blocco di uguale o inferiore priorit? finch? viene ricevuto il comando di "fine interruzione".
21h (Registro di maschera del controllore di interruzione AT-compatibile) - Emulato.
40h-43h (Accesso a un temporizzatore di sistema 8254 AT-compatibile) - Le porte non sono emulate, ma sono intercettate poich? alcuni piloti basati su AT scrivono a queste porte. Poich? il registro di maschera di interruzione di una forma realizzativa esemplificativa della presente invenzione ? posizionato alla porta 40h, scritture non intercettate interferirebbero con il registro di maschera di interruzione della presente invenzione .
61h (Porta di controllo miscellanea su una architettura AT) - Un bit di controllo di autoparlante ? emulato per permettere l'accensione e lo spegnimento dell'altoparlante .
AOh (La porta di comando di un secondo controllore di interruzione del computer AT-compatibile) - Come per la porta 20h, viene emulato il comando di "fine interruzione" .
Alh (Registro di maschera per il secondo controllore di interruzione (simile alla porta 21h)) - Emulato.
2F8h - 2FFh (Indirizzo standard per una seconda porta seriale AT) - Le porte sono rimappate a 5F0h - 5FEh, che sono gli indirizzi di porta per la seconda porta seriale di una forma realizzativa esemplificativa della presente invenzione. Il nuovo intervallo di porta (5F0 - 5FE) include solo indirizzi pari. In una forma realizzativa esemplificativa, non ? stato implementato lo scambio di byte, e cos? solo byte pari del dispositivo SIO a otto byte possono essere raggiunti. Tuttavia, lo scambio di byte pu? essere implementato se desiderato.
378h - 37Fh (Indirizzo standard per una porta parallela AT) - Rimappato a 6 FOh - 6FEh, che sono gli indirizzi di porta per la porta parallela di una forma realizzativa esemplificativa della presente invenzione.
3F8h - 3FFh (Indirizzo standard per una prima porta seriale AT) - Rimappato a 7F0h - 7FEh, che sono gli indirizzi di porta per la prima porta seriale di una forma realizzativa esemplificativa.
Avendo descritto con completezza una forma realizzativa preferita dell'invenzione e varie alternative, gli esperti del ramo riconosceranno, grazie agli insegnamenti qui forniti, che numerose alternative ed equivalenti esistono che non si discostano dall'invenzione. ? inteso quindi che l'invenzione non ? limitata dalla descrizione precedente, ma solo dalle annesse rivendicazioni .

Claims (5)

  1. RIVENDICAZIONI '1. Un terminale per la visualizzazione di informazioni di programma applicativo in un ambiente con divisione in finestre comprendente: mezzi elaboratori, non completamente compatibili con sistemi operativi a personal computer BIOS o disco, atta ricevere informazioni con divisione in finestre fornite da programmi in esecuzione su un server applicativo remoto, e - mezzi visualizzatori per visualizzare le informazioni con divisione in finestre.
  2. 2 . Un terminale adatto a comunicare con un sistema ospite selezionato tra una pluralit? di essi, ciascuno di tali sistemi ospiti utilizzando un differente protocollo di comunicazioni, comprendente: - una prima "personality" per fornire risposte ad un primo gruppo e ad un secondo gruppo di istruzioni fornite da un primo sistema ospite in conformit? al protocollo di comunicazioni associato con detto primo sistema ospite, - almeno una seconda "personality" per fornire risposte ad un terzo gruppo e ad un quarto gruppo di istruzioni fornite da un secondo sistema ospite in conformit? con il protocollo di comunicazioni associato con detto sistema ospite , - almeno uno di detti sistemi ospite fornendo informazioni con divisione in finestre, - mezzi elaboratori rispondenti alla prima ed almeno alla seconda "personality" per elaborare uno dei primo e terzo gruppi di istruzioni e per emulare uno di secondo e quarto gruppi di istruzioni, per fornire all'associato sistema ospite risposte compatibili con il protocollo di comunicazioni associato con quel sistema ospite, e - mezzi commutatori per identificare il sistema ospite al quale il terminale ? attualmente connesso e per scegliere quella appropriata tra la prima e almeno la seconda "personality" per comunicazioni con il sistema ospite identificato .
  3. 3. Metodo per aggiornare caratteristiche operative di un terminale comprendente: fornire una memoria flash per memorizzare caratteristiche operative, - prevedere un collegamento di comunicazioni ad un ospite per ricevere caratteristiche operative aggiornate, stabilire una prima condizione operativa durante la quale almeno una porzione predeterminata della memoria flash ? capace di essere scritta mantenendo comunicazioni con l'ospite, trasferire caratteristiche operative aggiornate dall'ospite al terminale mentre il terminale ? nella prima condizione operativa, - scrivere le caratteristiche operative aggiornate nella memoria flash mentre il terminale ? nella prima condizione operativa, e - stabilire una seconda condizione operativa durante la quale i dati non sono scritti nella porzione predeterminata della memoria flash.
  4. 4. Terminale per visualizzare, nell'ambiente operativo Microsoft Windows? informazioni di programma applicativo fornite da un sistema ospite operante con sistemi operativi Microsoft Windows? comprendente: - mezzi di interfaccia per ricevere dal server applicativo informazioni di visualizzazione per un programma applicativo operante sul server applicativo, - mezzi elaboratori, non completamente compatibili con sistemi operativi a personal computer BIOS o disco e non in grado di eseguire localmente il programma applicativo, rispondenti ai mezzi di interfaccia per emulare o elaborare istruzioni fornite da programmi in esecuzione su un server applicativo remoto per fornire al sistema ospite risposte compatibili con quelle attese dal sistema ospite, mezzi visualizzatori rispondenti ai mezzi di elaborazione per visualizzare le informazioni con divisione in finestre.
  5. 5. Metodo per configurare un terminale avente un visualizzatore per comunicazione con un sistema ospite comprendente : - stabilire almeno un'area a mappa di bit in una porzione del visualizzatore, - stabilire almeno un gruppo a mappa di bit nell'area, e stabilire almeno una selezione a mappa di bit nel gruppo, ciascuna selezione avendo una o pi? scelte ad essa associate .
IT96FI000309A 1995-12-29 1996-12-30 Metodo ed apparecchiatura per visualizzare su un terminale programmi applicativi con divisione in finestre IT1286910B1 (it)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/581,168 US5918039A (en) 1995-12-29 1995-12-29 Method and apparatus for display of windowing application programs on a terminal

Publications (2)

Publication Number Publication Date
ITFI960309A1 true ITFI960309A1 (it) 1998-06-30
IT1286910B1 IT1286910B1 (it) 1998-07-17

Family

ID=24324162

Family Applications (1)

Application Number Title Priority Date Filing Date
IT96FI000309A IT1286910B1 (it) 1995-12-29 1996-12-30 Metodo ed apparecchiatura per visualizzare su un terminale programmi applicativi con divisione in finestre

Country Status (13)

Country Link
US (1) US5918039A (it)
JP (2) JPH1021173A (it)
CN (4) CN1257448C (it)
AU (1) AU734150B2 (it)
CA (1) CA2194112C (it)
DE (1) DE19655235B4 (it)
ES (1) ES2128251B1 (it)
FR (2) FR2743169B1 (it)
GB (1) GB2308793B (it)
HK (1) HK1120627A1 (it)
IT (1) IT1286910B1 (it)
MX (1) MX9700193A (it)
SG (2) SG97751A1 (it)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7720672B1 (en) 1995-12-29 2010-05-18 Wyse Technology Inc. Method and apparatus for display of windowing application programs on a terminal
US7100069B1 (en) * 1996-02-16 2006-08-29 G&H Nevada-Tek Method and apparatus for controlling a computer over a wide area network
US7080127B1 (en) * 1996-03-06 2006-07-18 Hickman Paul L Method and apparatus for computing within a wide area network
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US6256785B1 (en) * 1996-12-23 2001-07-03 Corporate Media Patners Method and system for providing interactive look-and-feel in a digital broadcast via an X-Y protocol
WO1998034174A2 (en) * 1997-02-03 1998-08-06 Schmidt Curt A A computer system using a plurality of remote workstations and centralized computer modules
US6836885B1 (en) * 1998-09-21 2004-12-28 Wyse Technology Inc. Method and apparatus for display of windowing application programs on a terminal
US6409602B1 (en) 1998-11-06 2002-06-25 New Millenium Gaming Limited Slim terminal gaming system
US6470457B1 (en) * 1998-12-14 2002-10-22 International Business Machines Corporation Local permanent storage in network computer
US6356943B2 (en) * 1998-12-14 2002-03-12 Emc Corporation Distance learning implementation
US6732067B1 (en) * 1999-05-12 2004-05-04 Unisys Corporation System and adapter card for remote console emulation
US6373498B1 (en) * 1999-06-18 2002-04-16 Phoenix Technologies Ltd. Displaying images during boot-up and shutdown
US6298068B1 (en) * 1999-08-31 2001-10-02 Telco Systems, Inc. Methods and apparatus for ISDN communications with dual mode access to interface apparatus on-board memory
EP1956492B1 (en) * 1999-09-21 2018-09-05 Wyse Technology L.L.C. Displaying windowing application programs on a terminal
US6895499B1 (en) 1999-12-27 2005-05-17 Dell Usa, L.P. System and method for device configuration and management using a universal serial bus port
US6724402B1 (en) 2000-01-27 2004-04-20 David R. Baquero Method of launching computer programs within a graphical user interface
US7695363B2 (en) 2000-06-23 2010-04-13 Igt Gaming device having multiple display interfaces
US7699699B2 (en) 2000-06-23 2010-04-20 Igt Gaming device having multiple selectable display interfaces based on player's wagers
US6682423B2 (en) * 2001-04-19 2004-01-27 Igt Open architecture communications in a gaming network
US7353252B1 (en) 2001-05-16 2008-04-01 Sigma Design System for electronic file collaboration among multiple users using peer-to-peer network topology
US7065531B2 (en) * 2002-03-12 2006-06-20 Hewlett-Packard Development Company, L.P. Combining computer programs
US20040053694A1 (en) * 2002-09-13 2004-03-18 Rick Rowe Casino open network system architecture
US7703078B2 (en) * 2003-09-03 2010-04-20 Cybersoft, Inc. Apparatus, methods and articles of manufacture for software demonstration
KR100586309B1 (ko) * 2004-02-23 2006-06-07 엔컴퓨팅 주식회사 다운로드 방식의 운영체제로 구동되는 네트워크 단말장치및 그 동작 방법
US7484247B2 (en) 2004-08-07 2009-01-27 Allen F Rozman System and method for protecting a computer system from malicious software
US7963847B2 (en) 2004-08-19 2011-06-21 Igt Gaming system having multiple gaming machines which provide bonus awards
US8021230B2 (en) 2004-08-19 2011-09-20 Igt Gaming system having multiple gaming machines which provide bonus awards
US8251791B2 (en) 2004-08-19 2012-08-28 Igt Gaming system having multiple gaming machines which provide bonus awards
KR100711093B1 (ko) * 2005-01-11 2007-04-27 삼성전기주식회사 모바일 기기와 디스플레이상의 어플리케이션 간의 직접통신을 위한 방법 및 시스템
US7753773B2 (en) 2005-08-26 2010-07-13 Igt Gaming device having physical concentric symbol generators which are operable to provide a plurality of different games to a player
US7841939B2 (en) 2005-09-09 2010-11-30 Igt Server based gaming system having multiple progressive awards
US8137188B2 (en) 2005-09-09 2012-03-20 Igt Server based gaming system having multiple progressive awards
US8128491B2 (en) 2005-09-09 2012-03-06 Igt Server based gaming system having multiple progressive awards
EP1865410A1 (en) * 2006-06-09 2007-12-12 Delta Electronics, Inc. Human-machine interface system with device bridge and method for designing and operating the same
US8512130B2 (en) 2006-07-27 2013-08-20 Igt Gaming system with linked gaming machines that are configurable to have a same probability of winning a designated award
US7674180B2 (en) 2006-09-27 2010-03-09 Igt Server based gaming system having system triggered loyalty award sequences
US8616959B2 (en) 2006-09-27 2013-12-31 Igt Server based gaming system having system triggered loyalty award sequences
US7862430B2 (en) 2006-09-27 2011-01-04 Igt Server based gaming system having system triggered loyalty award sequences
US7921139B2 (en) * 2006-12-01 2011-04-05 Whitserve Llc System for sequentially opening and displaying files in a directory
US7985133B2 (en) 2007-07-30 2011-07-26 Igt Gaming system and method for providing an additional gaming currency
US8900053B2 (en) 2007-08-10 2014-12-02 Igt Gaming system and method for providing different bonus awards based on different types of triggered events
US9142097B2 (en) 2007-10-26 2015-09-22 Igt Gaming system and method for providing play of local first game and remote second game
US9489209B2 (en) * 2008-01-23 2016-11-08 Hewlett-Packard Development Company, L.P. Bios graphical setup engine
WO2010114523A1 (en) * 2009-03-31 2010-10-07 Hewlett-Packard Development Company, L.P. Bios usb write prevent
US9189124B2 (en) * 2009-04-15 2015-11-17 Wyse Technology L.L.C. Custom pointer features for touch-screen on remote client devices
US20100268762A1 (en) * 2009-04-15 2010-10-21 Wyse Technology Inc. System and method for scrolling a remote application
US9413831B2 (en) * 2009-04-15 2016-08-09 Wyse Technology L.L.C. Method and apparatus for authentication of a remote session
US9448815B2 (en) * 2009-04-15 2016-09-20 Wyse Technology L.L.C. Server-side computing from a remote client device
US9553953B2 (en) 2009-04-15 2017-01-24 Dell Products L.P. Method and apparatus for extending capabilities of a virtualization domain to support features available in a normal desktop application
US8676926B2 (en) * 2009-04-15 2014-03-18 Wyse Technology L.L.C. System and method for handling remote drawing commands
US9578113B2 (en) 2009-04-15 2017-02-21 Wyse Technology L.L.C. Method and apparatus for transferring remote session data
US9039516B2 (en) 2009-07-30 2015-05-26 Igt Concurrent play on multiple gaming machines
WO2011049278A1 (en) * 2009-10-25 2011-04-28 Lg Electronics Inc. Method for processing broadcast program information and broadcast receiver
US8407662B2 (en) * 2010-06-25 2013-03-26 Wyse Technology Inc. Apparatus and method for network driver injection into target image
US9880712B2 (en) * 2013-09-06 2018-01-30 Microsoft Technology Licensing, Llc In-application customization
US9875618B2 (en) 2014-07-24 2018-01-23 Igt Gaming system and method employing multi-directional interaction between multiple concurrently played games
US9972171B2 (en) 2015-09-24 2018-05-15 Igt Gaming system and method for providing a triggering event based on a collection of units from different games
CN105204811B (zh) * 2015-10-27 2020-09-29 威海元程信息科技有限公司 一种多路控制系统及方法
CN107592348A (zh) * 2017-09-01 2018-01-16 西安万像电子科技有限公司 数据传输方法、装置及系统
CN107911353A (zh) * 2017-11-06 2018-04-13 西安万像电子科技有限公司 数据传输方法、装置及系统

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4281315A (en) * 1979-08-27 1981-07-28 Bell Telephone Laboratories, Incorporated Collection of messages from data terminals using different protocols and formats
US4496943A (en) * 1982-11-18 1985-01-29 Portable Terminal Corp. Portable information display
CA1278386C (en) * 1985-10-29 1990-12-27 Aurel Kleinerman Method and apparatus for controlling the execution of host computer application programs through a second computer
US4937036A (en) * 1986-04-28 1990-06-26 Xerox Corporation Concurrent display of data from two different display processors and user interface therefore
JPS6414678A (en) * 1987-02-27 1989-01-18 Kiyapuran Saibaneteitsukusu Co Cpmputer graphic system
US4942540A (en) * 1987-03-02 1990-07-17 Wang Laboratories, Inc. Method an apparatus for specification of communication parameters
US5065343A (en) * 1988-03-31 1991-11-12 Yokogawa Electric Corporation Graphic display system for process control using a plurality of displays connected to a common processor and using an fifo buffer
US5321840A (en) * 1988-05-05 1994-06-14 Transaction Technology, Inc. Distributed-intelligence computer system including remotely reconfigurable, telephone-type user terminal
US5063494A (en) * 1989-04-12 1991-11-05 Unisys Corporation Programmable data communications controller
US5175813A (en) * 1989-08-14 1992-12-29 International Business Machines Corporation Window display system and method for creating multiple scrollable and non-scrollable display regions on a non-programmable computer terminal
US5128995A (en) * 1990-07-23 1992-07-07 International Business Machines Corp. Apparatus and method for loading a system reference diskette image from a system partition in a personal computer system
AU630567B2 (en) * 1990-07-31 1992-10-29 Digital Equipment Corporation System and method for emulating a window management environment having a uniform windowing interface
EP0475581A3 (en) * 1990-08-30 1993-06-23 Hewlett-Packard Company Method and apparatus for window sharing between computer displays
US5289574A (en) * 1990-09-17 1994-02-22 Hewlett-Packard Company Multiple virtual screens on an "X windows" terminal
US5230052A (en) * 1990-10-01 1993-07-20 International Business Machines Corp. Apparatus and method for loading bios into a computer system from a remote storage location
AU634431B2 (en) * 1990-11-27 1993-02-18 Kabushiki Kaisha Toshiba Japanese emulator
JPH04196850A (ja) * 1990-11-28 1992-07-16 Ricoh Co Ltd マルチプロトコルシステム
TW198107B (it) * 1991-02-28 1993-01-11 Ibm
EP0524362B1 (en) * 1991-07-24 2000-05-17 Texas Instruments France Display adapter
US5404445A (en) * 1991-10-31 1995-04-04 Toshiba America Information Systems, Inc. External interface for a high performance graphics adapter allowing for graphics compatibility
GB2269032B (en) * 1992-07-21 1996-03-20 Orbitel Mobile Communications Reprogramming methods and apparatus
US5673403A (en) * 1992-11-13 1997-09-30 International Business Machines Corporation Method and system for displaying applications of different operating systems on a single system using the user interface of the different operating systems
DE4332063A1 (de) * 1993-09-21 1995-03-23 Teltron Elektronik Gmbh Verfahren zur Programmierung einer Mikrocomputerschaltung sowie eine hierfür ausgelegte Mikrocomputerschaltung
US5526503A (en) * 1993-10-06 1996-06-11 Ast Research, Inc. Virtual addressing buffer circuit
JP3187624B2 (ja) * 1993-11-19 2001-07-11 京セラミタ株式会社 通信機能を備えた機器の内蔵プログラム更新方法
US5831609A (en) * 1994-06-17 1998-11-03 Exodus Technologies, Inc. Method and system for dynamic translation between different graphical user interface systems
IL114316A0 (en) * 1994-07-08 1995-10-31 Grumman Aerospace Corp A method for updating the firmware of a microprocessor system
US5680530A (en) * 1994-09-19 1997-10-21 Lucent Technologies Inc. Graphical environment for interactively specifying a target system

Also Published As

Publication number Publication date
FR2743169B1 (fr) 2005-10-07
CN101231578A (zh) 2008-07-30
JPH1021173A (ja) 1998-01-23
IT1286910B1 (it) 1998-07-17
CA2194112A1 (en) 1997-06-30
AU734150B2 (en) 2001-06-07
JP2004185633A (ja) 2004-07-02
SG97751A1 (en) 2003-08-20
FR2867638B1 (fr) 2017-01-06
AU7642696A (en) 1997-07-03
CN1550974A (zh) 2004-12-01
CN1177135A (zh) 1998-03-25
CN103207780A (zh) 2013-07-17
CA2194112C (en) 2003-11-18
MX9700193A (es) 1997-11-29
DE19655235B4 (de) 2015-07-30
FR2867638A1 (fr) 2005-09-16
FR2743169A1 (fr) 1997-07-04
CN101231578B (zh) 2013-03-27
HK1120627A1 (en) 2009-04-03
GB2308793A (en) 1997-07-02
US5918039A (en) 1999-06-29
ES2128251B1 (es) 1999-12-16
GB2308793B (en) 2001-02-28
SG81965A1 (en) 2001-07-24
CN1257448C (zh) 2006-05-24
ES2128251A1 (es) 1999-05-01
GB9626821D0 (en) 1997-02-12

Similar Documents

Publication Publication Date Title
ITFI960309A1 (it) Metodo ed apparecchiatura per visualizzare su un terminale programmi applicativi con divisione in finestre
US8904362B2 (en) Method and apparatus for display of windowing application programs on a terminal
US6836885B1 (en) Method and apparatus for display of windowing application programs on a terminal
US5291585A (en) Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format
US4787026A (en) Method to manage coprocessor in a virtual memory virtual machine data processing system
TW421744B (en) Method and apparatus to permit the boot of a shared memory buffer architecture employing an arbitrary operating system
US6721868B1 (en) Redirecting memory accesses for headless systems
CA2122162A1 (en) Boot architecture for microkernell-based systems
EP2345966B1 (en) Displaying windowing application programs on a terminal
AU750333B2 (en) Method and apparatus for display windowing application programs on a terminal
AU766436B2 (en) Method and apparatus for display windowing application programs on a terminal
CA2440825C (en) Method for display of terminal configuration menu
GB2351377A (en) Method of updating the operating characteristics or a terminal
WO2000017729A2 (en) Improved method and apparatus for display of windowing application programs on a terminal
US6366262B1 (en) Method and apparatus for supporting multiple NPT display sessions on a single address
TW475120B (en) Improved method and apparatus for display of windowing application programs on a terminal
Shiell IBM PC Family BIOS Comparison

Legal Events

Date Code Title Description
0001 Granted