SK176698A3 - Portable, secure transaction system for programmable, intelligent devices - Google Patents

Portable, secure transaction system for programmable, intelligent devices Download PDF

Info

Publication number
SK176698A3
SK176698A3 SK1766-98A SK176698A SK176698A3 SK 176698 A3 SK176698 A3 SK 176698A3 SK 176698 A SK176698 A SK 176698A SK 176698 A3 SK176698 A3 SK 176698A3
Authority
SK
Slovakia
Prior art keywords
module
program
terminal
space
virtual machine
Prior art date
Application number
SK1766-98A
Other languages
English (en)
Inventor
Guido Heyns
Peter Johannes
Original Assignee
Europay Internat N V
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 Europay Internat N V filed Critical Europay Internat N V
Publication of SK176698A3 publication Critical patent/SK176698A3/sk

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Programmable Controllers (AREA)

Description

Oblasť techniky
Tento vynález sa týka systému obsahujúceho programovateľné inteligentné zariadenia, ako sú terminály a karty s integrovanými obvodmi, a taktiež spôsobu prevádzky takýchto kariet a terminálov zahŕňajúcich bankové automaty, osobné počítače, jednotky na platenie prostredníctvom televízie, terminály miest predaja, zdravotné karty a pod. Vynález je obzvlášť vhodný na použitie pri uskutočňovaní finančných transakcií.
Doterajší stav techniky
Sú známe rôzne typy terminálov na uskutočňovanie transakcií, napríklad finančných transakcií, ktoré sa týkajú prenosu alebo výmeny hodnoty alebo transakcií, ktoré sú obchodnej povahy, ako sú transakcie kariet zdravotnej starostlivosti alebo pre prístup k dátam vo všeobecnosti, napríklad karty SIM mobilných telefónov GSM. Sú známe také terminály ako zariadenia predajných miest (POS - point of sále), bankové automaty (ATM - automatic teller machine) alebo mobilné telefóny GSM. Skutočný rozsah výrobkov od malých ručných zariadení s jednoduchými 8 bitovými mikroprocesormi, akými sú Intel séria 8031/8051 dodávané firmou Intel Corp. USA alebo karty s integrovanými obvodmi (ICC
- Integrated Circuit Cards) k 32 bitovým počítačom s operačnými systémami ako UNIX™ alebo Windows NT dodávané firmou Microsoft Corp. USA. Niektoré z týchto strojov vzájomne komunikujú s osobnými kartami uživatelov, ktorými môžu byt karty s magnetickým pásom, inteligentné karty alebo ICC, ktoré ukladajú špecifickú identifikáciu užívatela a informácie o overení platnosti potrebné pred tým, ako môže byt zahájená komunikácia medzi užívateíom a terminálom. Užívate! vloží kartu do čítačky kariet pripojenej k terminálu, terminálový program trvalé uložený v terminále je spustený a preskúša kartu kontrolou informácií užívatela pre jej overenie a, ak je to potrebné, vyžiada heslo alebo súkromné číslo, ako je PIN (personál Identification number
- osobné identifikačné číslo). Po overení platnosti program normálne umožní užívatelovi vybrať uskutočnenie vyžiadaných služieb, napríklad vybratie peňažnej hotovosti, preskúšanie bežného zostatku. Terminál môže stáť samostatne alebo môže byt pripojený na väčší počítač, buď miestne, alebo cez telekomunikačnú sieť. Takéto terminály sú často dostupné 24 hodín denne a musia byt v prevádzke pri minimálnej údržbe a pri vysokej úrovni bezpečnosti.
Takéto terminály predstavujú významné investície do hardveru a normálne nie sú nahradzované v častých intervaloch. Aktualizácia softvéru a programov prevádzkovaných na takýchto termináloch sa stáva nutnou, keď sa ponúkajú nové služby a musia byť uskutočnené bezpečne.
Organizácie prevádzkujúce terminály, ako banky, vo všeobecnosti požadujú, aby každá aktualizácia bola potvrdená. Takáto aktualizácia môže byt ručná alebo diaľková, cez súkromnú alebo verejnú komunikačnú sieť, ako je to známe z patentu USA číslo 5,434,999. Takéto známe schémy vyžadujú, aby bol známy typ a model terminálu pre nový vývoj, pretože softvér pre každý terminál musí byt špecificky vytvorený pre ten typ terminálu, a preto sú schémy dost drahé. Ďalej ku schopnosti ponúkať služby všetkých možných organizácií ponúkajúcich podobné služby, napríklad všetkých bánk a peňažných inštitúcií, musí byt terminál schopný spracovať všetky programy všetkých organizácií. V dôsledku velkej mobility súkromných, ako aj obchodných osôb, je výhodné, aby boli na každom terminále dostupné všetky služby, ktoré sú ponúkané v jednej krajine. To by viedlo k zbytočne velkej kapacite spracovania a velkosti pamäte každého terminálu. Ďalej, každý z týchto programov musí byt aktualizovaný tak, ako je požadované. Jedným riešením by mohlo byť použitie malej pracovnej stanice pre každý terminál, pripojenej, napríklad na telekomunikačný systém. Taký systém by bol schopný nepriameho spracovávania a mohol by sa prepnúť na priame spracovanie neobvyklých transakcií alebo automatickú aktualizáciu trvalo uložených programov. V prípade pracovnej stanice by sa napríklad vyžadovalo, aby vykonávala komplexné overovanie platnosti a kódovacie schémy potrebné pre zachovanie bezpečnosti systému vystavenému útoku cez verejnú telefónnu sieť. So zväčšujúcou sa velkostou a zložitosťou by sa taktiež zväčšoval problém zachovania bezpečnosti.
Aj v prípade takéhoto systému môžu byt problémy s kontrolou verzií. Nie všetci užívatelia služieb rovnakej organizácie môžu mat karty vhodné pre poslednú verziu služby. Toto sa môže vyskytnúť, keď mnohonárodné organizácie zavedú alebo aktualizujú služby v rôznej dobe v rôznych krajinách. Vo WO 96/18979 bolo navrhnuté, aby sa terminály aktualizovali len pre obdobie obsiahnuté v osobnej ICC užívateľa. Programové inštrukcie predstavujúce štandardné podprogramy sú uložené na karte a môžu byt prevedené do terminálu, v ktorom sú interpretované. Použitie interpretačného programu v terminále umožňuje použiť rovnakú kartu na akomkoľvek terminále obsahujúcom interpretačný program, a preto vykonáva transakciu nezávislú na hlavnom procesore v terminále. Nie je však opísaná žiadna metóda kontroly bezpečnosti, aby sa vylúčili možné nebezpečné podprogramy.
Terminály vyššie opísaného typu majú taktiež procesor obsahujúci nejakú formu pamäti, obyčajne nejakú pamäť s ľubovoľným výberom (RAM - random acces memory) pre prevádzku programov a nejakú permanentnú pamäť (ROM - read only memory) na uloženie dát, ktoré majú byt iba čítané, ktoré môžu obsahovať program pre operačný systém terminálu a energeticky nezávislú pamäť na čítanie/zápis na ukladanie všeobecných dát, ktoré sa môžu meniť. Osobné dáta užívateľa by mali byť uschovávané dôverne, a preto by nemala existovať možnosť prístupu jedného užívateľa k dátam iných užívateľov klamúceho náhodne alebo zámerne. Ďalej, rozličné pamäte terminálu na zápis by sa nemali časom stať segmentovanými.
Segmentácia pamäte môže mať za následok, že bloky priliehajúcej pamäte sa zmenšia do veľkosti tak, že určité programy nemôžu byt prevádzkované. K vyhnutiu sa tomuto problému sa k inventarizácii voľných miest v pamäti používajú niektoré programovacie jazyky, ako napríklad Java™. Inventarizácia voľných miest v pamäti je štandardný program, ktorý sa pokúša identifikovať dáta v pamäti, ktoré už nie sú požadované a uvoľní ich. Podľa bežného názoru je inventarizácia voľných miest spoľahlivejšou cestou riadenia pamäte ako program, ktorý priamo uvoľňuje svoje vlastné uložené dáta. Niektorí považujú priame pridelenie alebo uvoľnenie pamäte za najväčší jediný zdroj programových chýb v bežných programovacích jazykoch vysokej úrovne, akými sú napríklad jazyky C alebo C++.
Inventarizácia voľných miest má niekoľko nevýhod. Po prvé, inventarizácia voľných miest je skôr funkciou operačného systému ako aplikačnou špecifickou funkciou. Preto inventarizácia voľných miest nezaručuje, že dáta každej aplikácie sú uvoľnené na konci každej aplikácie, ale takéto dáta môžu byt skôr prítomné počas nejakej doby, pokiaľ nedostatok prístupu nespustí inventarizáciu voľných miest. Pri finančných transakciách sa požaduje bezpečnejšia metóda vylúčenia možnosti adresovať súkromné dáta užívateľa. Po druhé, zväčšuje veľkosť priestoru pamäti požadovaného pre operačný systém. Na ICC a na niektorých termináloch môže byť pamäť obmedzená a použitie inventarizácie voľných miest môže byť vážnou nevýhodou. Ako je vysvetlené vyššie, sú terminály nahradzované veľmi nepravidelne, takže normálne sú v systéme súbežne prevádzkované veľmi rozdielne terminály obsahujúce rozdielne procesorové schopnosti a veľkosti pamäte. Staršie terminály majú často svoje schopnosti silne obmedzené. Aj keď najstaršie terminály môžu byt nahradené, požiadavka na zlepšené a komplexnejšie služby znamená, že najstaršie terminály nebudú pravdepodobne nikdy nahradené tak často, aby sa niektoré z nich svojimi schopnosťami neomeškávali. Taktiež požiadavka na kompaktné operačné systémy, ktoré môžu pracovať na široko rozdielnych typoch procesorov, pravdepodobne ostane požiadavkou. Nakoniec, inventarizácia voľných miest neuvoľňuje pamäť tak skoro, ako by bola uvoľnená použitím priameho uvoínenia. Taktiež toto môže zväčšiť veíkosť požadovanej pamäte, pretože pamäť je podviazaná, aj keď by mohla byt uvoľnená.
Jeden bezpečný spôsob riadenia pamäte počas prevádzky je opísaný v patente USA číslo 5 434 999. Napríklad v súlade s týmto známym spôsobom uskutočňuje interpretačný program v terminále systematickú kontrolu akejkoívek inštrukcie manipulujúcej s adresou v pamäti, aby overil, či existuje oprávnenie pre oblasť pamäte, do ktorej sa požaduje prístup. Tento systém má nevýhodu v tom, že každá inštrukcia musí byť skontrolovaná týmto spôsobom, ktorý podstatne spomaíuje spracovanie. Kontrola doby prevádzky programu je prevádzkovo nákladná.
Existuje potreba systému poskytujúceho programovateľné terminály, ktoré umožňujú, aby bol použitý programátor aplikácií pre vytvorenie softvéru, ktorý je prenosný a neutrálny pre rôznorodé terminály, t. z. nezávislý na procesore použitom v terminále a nepotrebuje, aby bol typovo schválený pre každý typ alebo vyhotovenie terminálu. Trvalo uložený operačný systém terminálu a aplikačné programy sú s výhodou kompaktné, pracujú rýchlo a plnia podmienky bezpečnosti. Ďalej je výhodné, ak aplikačné programy môžu byť lahko aktualizované, aspoň tak, že každý užívate! môže obdržať očakávané služby nezávisle na geografickej polohe terminálu.
Cielom tohto vynálezu je poskytnúť bezpečný transakčný riadiaci systém pre transakcie a pre spôsob prevádzky takého systému.
Ďalším cielom tohto vynálezu je poskytnúť bezpečné terminály a ICC pre transakcie a spôsoby prevádzky takýchto zariadení.
Ešte iným cielom tohto vynálezu je poskytnúť zariadenie použiteľné na transakciu, ktoré môže byt realizované v malých ručných zariadeniach ako je ICC.
Ešte iným cielom tohto vynálezu je poskytnúť transakčný systém, v ktorom terminály alebo ICC môžu byť aktualizované použitím terminálov alebo ICC ako zdrojov aktualizujúcich informácií.
Ďalším cielom tohto vynálezu je poskytnúť transakčný riadiaci systém a spôsob prevádzky systému, ktorý poskytuje vysokú bezpečnosť s dobrou prevádzkovou rýchlosťou.
Podstata vynálezu
Tento vynález sa týka transakčného riadiaceho systému na uskutočňovanie transakcií medzi prvým zariadením a druhým zariadením, spomenuté prvé a druhé zariadenie sú prispôsobené na vzájomnú komunikáciu, a aspoň jedno z uvedeného prvého alebo druhého zariadenia je karta s integrovanými obvodmi. Uvedený systém obsahuje:
aspoň jedno vstupné/výstupné zariadenie;
prenosný virtuálny stroj na interpretáciu počítačového programu v uvedenom prvom zariadení, uvedený virtuálny stroj obsahujúci virtuálny mikroprocesor a budič pre uvedené aspoň jedno vstupné/výstupné zariadenie a vykonávacie prostriedky reagujúce na uvedený interpretovaný program na uskutočnenie uvedeného programu.
Preferuje sa, aby tento prenosný virtuálny stroj bol zásobníkový stroj, pretože toto prináša prevádzkovú rýchlosť a kompaktnosť.
Tento vynález taktiež poskytuje terminál, ktorý obsahuje prvé zariadenie na uskutočnenie transakcie s druhým zariadením, aspoň jedno zo spomenutého prvého alebo druhého zariadenia je karta s integrovanými obvodmi obsahujúca:
prenosný virtuálny stroj interpretujúci počítačový program v spomenutom prvom zariadení, pričom uvedený prenosný virtuálny stroj obsahuje virtuálny mikroprocesor a budič pre aspoň jedno vstupné/výstupné zariadenie a vykonávacie prostriedky reagujúce na spomenutý interpretovaný program pre uskutočnenie spomenutého programu.
Tento vynález taktiež poskytuje do seba uzavretú prenosnú inteligentnú kartu obsahujúcu prvé zariadenie na uskutočňovanie transakcie s druhým zariadením, pričom spomenutá inteligentná karta obsahuje prenosný virtuálny stroj obsahujúci virtuálny mikroprocesor a budič pre aspoň jedno vstupné/výstupné zariadenie.
Tento vynález taktiež poskytuje transakčný riadiaci systém obsahujúci:
prvé zariadenie a druhé zariadenie, pričom uvedené prvé a druhé zariadenia sú prispôsobené na vzájomnú komunikáciu, a aspoň jedno zo spomenutého prvého a druhého zariadenia je karta s integrovanými obvodmi;
spomenuté druhé zariadenie obsahuje prostriedky na poskytnutie aspoň jednej programovej inštrukcie schopnej aspoň modifikovať správanie sa doby uskutočnenia * počítačového programu v spomenutom prvom zariadení;
spomenuté prvé zariadenie obsahujúce virtuálny stroj, pričom spomenutý virtuálny stroj obsahuje prostriedky na zavedenie a interpretáciu spomenutého počítačového programu a spomenuté prostriedky na zavedenie a interpretáciu sú dalej prispôsobené na zavedenie a interpretáciu spomenutej aspoň jednej programovej inštrukcie závislej na vopred definovanej podmienke bezpečnosti, potomčo uvedené prostriedky na zavedenie a interpretáciu zaviedli uvedený počítačový program, a zatialčo spomenutý počítačový program je v prevádzke a vykonávacie prostriedky na uskutočnenie spomenutého zavedeného a interpretovaného počítačového programu so spomenutým modifikovaným správaním sa pri odozve na spomenutú zavedenú a interpretovanú programovú inštrukciu.
Tento vynález dalej poskytuje terminál obsahujúci prvé zariadenie na uskutočnenie transakcie s druhým zariadením a aspoň jedno zo spomenutého prvého alebo druhého zariadenia je karta s integrovanými obvodmi a spomenuté druhé zariadenie obsahuje prostriedky na poskytnutie aspoň jednej programovej inštrukcie schopnej aspoň modifikovať správanie časového uskutočnenia počítačového programu v spomenutom prvom zariadení. Uvedený terminál obsahuje:
spomenuté prvé zariadenie obsahujúce virtuálny stroj, ktorý obsahuje prostriedky na zavedenie a interpretáciu spomenutého počítačového programu, pričom uvedené prostriedky na zavedenie a interpretáciu sú ďalej prispôsobené na zavedenie a interpretáciu spomenutej aspoň jednej programovej inštrukcie závislej na vopred definovanej bezpečnostnej podmienke, potomčo uvedené prostriedky na zavedenie a interpretáciu zaviedli spomenutý počítačový program a zatiaľčo počítačový program je v prevádzke a vykonávacie prostriedky na uskutočnenie spomenutého zavedeného a interpretovaného počítačového programu so spomenutým modifikovaným správaním sa pri odozve na spomenutú zavedenú a interpretovanú programovú inštrukciu.
Tento vynález poskytuje do seba uzavretú prenosnú inteligentnú kartu obsahujúcu prvé zariadenie na uskutočnenie transakcie s druhým zariadením, pričom uvedené druhé zariadenie obsahuje prostriedky na uskutočnenie aspoň jednej programovej inštrukcie schopnej aspoň modifikovať správanie časového uskutočnenia počítačového programu v spomenutom prvom zariadení. Spomenutá inteligentná karta obsahuje:
uvedené prvé zariadenie obsahujúce virtuálny stroj, ktorý obsahuje prostriedky na zavedenie a interpretáciu spomenutého počítačového programu, uvedené prostriedky na zavedenie a interpretáciu sú ďalej prispôsobené na zavedenie a interpretáciu spomenutej aspoň jednej programovej inštrukcie závislej na vopred definovanej bezpečnostnej podmienke, potomčo spomenuté prostriedky na zavedenie a interpretáciu zaviedli spomenutý počítačový program a zatialčo spomenutý počítačový program je v prevádzke a vykonávacie prostriedky na uskutočnenie spomenutého zavedeného a interpretovaného počítačového programu so spomenutým modifikovaným správaním sa pri odozve na spomenutú zavedenú a interpretovanú programovú inštrukciu.
Tento vynález taktiež poskytuje transakčný systém na uskutočnenie transakcií medzi prvým zariadením a druhým zariadením. Uvedený transakčný systém obsahuje:
virtuálny stroj na interpretáciu v ňom použitej sady symbolov oprávnenia objednávkových bytových kódov, pričom uvedený virtuálny stroj obsahuje virtuálnu procesorovú jednotku a priestor na čítanie/zápis logických adries;
aspoň jeden prvý aplikačný program obsahujúci údaj o velkosti priestoru na čítanie/zápis logických adries potrebného na jeho uskutočnenie, pričom uvedený aspoň jeden prvý aplikačný program je napísaný ako sled symbolov oprávnenia vybraných zo spomenutej sady symbolov oprávnenia a zodpovedajúcich vložených dát;
uvedený virtuálny stroj taktiež obsahuje zavádzači program na zavedenie spomenutého aspoň jedného prvého aplikačného programu a prostriedky na pridelenie prvej velkosti priestoru na čítanie/zápis logických adries špecificky pre spomenutý aspoň jeden prvý aplikačný program v súlade so spomenutým údajom, pričom spomenutý pridelený priestor na čítanie/zápis logických adries má definované a chránené hranice.
Prvé zariadenie, v súlade s týmto vynálezom, môže byť osobný počítač pripojený na Internet a prevádzkujúci prehíadávací štandardný program. Požiadavka, že každý modul prijatý prehladávacím štandardným programom musí obsahovať údaj o jeho požiadavkách na pamäť, zlepšuje bezpečnosť prehladávacieho štandardného programu a obmedzuje poškodenie, ktoré by mohlo byt spôsobené akýmkolvek vírusom nachádzajúcim sa v prijímanom module.
Tento vynález poskytuje terminál obsahujúci prvé zariadenie na uskutočnenie transakcií s druhým zariadením. Uvedené prvé zariadenie obsahuje:
virtuálny stroj na interpretáciu v ňom použitej sady symbolov oprávnenia objednávkových bytových kódov, pričom spomenutý virtuálny stroj obsahuje virtuálnu procesorovú jednotku a priestor na čítanie/zápis logických adries;
aspoň jeden aplikačný program obsahujúci údaj o velkosti priestoru na čítanie/zápis logických adries potrebného pre jeho uskutočnenie a prvý výlučný zoznam aspoň jednej funkcie, ktorá môže byť prenesená do iných aplikačných programov, pričom spomenutý aspoň jeden aplikačný program je napísaný ako sled symbolov oprávnenia vybraných zo spomenutej sady symbolov oprávnenia a zodpovedajúcich vložených údajov;
spomenutý virtuálny stroj taktiež obsahuje zavádzači program na zavedenie spomenutého aspoň jedného prvého aplikačného programu a prostriedky na pridelenie prvej velkosti priestoru pre čítanie/zápis logických adries špecificky pre spomenutý aspoň jeden prvý aplikačný program v súlade s uvedeným údajom, pričom uvedený pridelený priestor na čítanie/zápis logických adries má definované a chránené hranice.
Tento vynález môže taktiež poskytnúť do seba uzavretú prenosnú inteligentnú kartu obsahujúcu prvé zariadenie na uskutočnenie transakcie s druhým zariadením. Uvedené prvé zariadenie obsahuje:
virtuálny stroj na interpretáciu v ňom použitej sady symbolov oprávnenia objednávkových bytových kódov, pričom spomenutý virtuálny stroj obsahuje virtuálnu procesorovú jednotku a priestor na čítanie/zápis logických adries;
aspoň jeden prvý aplikačný program obsahujúci údaj o velkosti priestoru na čítanie/zápis logických adries potrebného na jeho uskutočnenie, pričom spomenutý aspoň jeden prvý aplikačný program je napísaný ako sled symbolov oprávnenia vybraných zo spomenutej sady symbolov oprávnenia a zodpovedajúcich vložených dát;
spomenutý virtuálny stroj taktiež obsahuje zavádzači program na zavedenie spomenutého aspoň jedného prvého aplikačného programu a prostriedky na pridelenie prvej velkosti priestoru na čítanie/zápis logických adries špecificky pre spomenutý aspoň jeden prvý aplikačný program v súlade so spomenutým údajom, pričom uvedený pridelený priestor na čítanie/zápis logických adries má definované a chránené hranice.
Tento systém môže taktiež poskytnúť transakčný systém na uskutočňovanie transakcií medzi prvým zariadením a druhým zariadením, pričom aspoň jedno zo spomenutého prvého alebo druhého zariadenia je karta s integrovanými obvodmi. Uvedený systém obsahuje:
virtuálny stroj na interpretáciu v ňom použitej sady symbolov oprávnenia objednávkových bytových kódov, pričom uvedený virtuálny stroj obsahuje virtuálnu procesorovú jednotku a priestor na čítanie/zápis logických adries;
aspoň jednu databázu obsahujúcu aspoň jeden záznam, a aspoň jeden počítačový program na vykonanie spomenutým virtuálnym strojom, pričom spomenutý počítačový program je modul napísaný vo forme sledu uvedených symbolov oprávnenia vybraných zo spomenutej sady a obsahujúci údaj o velkosti priestoru na čítanie/zápis neinicializovaných logických adries potrebného na vyhotovenie spomenutého modulu;
zavádzači program na zavedenie spomenutého modulu a na pridelenie požadovanej velkosti priestoru neinicializovaných logických adries v súlade so spomenutým údajom a prostriedky pre prístup k záznamu v spomenutej databáze,
Λ.*.!.:.·.
pričom záznamy v spomenutej databáze sú prístupné iba prostredníctvom spomenutého modulu a spomenuté prostriedky pre prístup poskytujú okno do bežného záznamu v spomenutej databáze a kopírujú uvedený záznam do časti priestoru na čítanie/zápis neinicializovaných logických adries adresovateľného spomenutým aplikačným programom.
Ďalej tento vynález môže taktiež poskytnúť terminál obsahujúci prvé zariadenie na uskutočnenie transakcií s druhým zariadením, pričom aspoň jedno z prvého a druhého zariadenia je karta s integrovanými obvodmi. Spomenuté prvé zariadenie obsahuje:
virtuálny stroj na interpretáciu v ňom použitej sady symbolov oprávnenia objednávkových bytových kódov, pričom uvedený virtuálny stroj obsahuje virtuálnu procesorovú jednotku a priestor na čítanie/zápis logických adries;
aspoň jednu databázu obsahujúcu aspoň jeden záznam a aspoň jeden počítačový program na vykonanie spomenutým virtuálnym strojom, pričom spomenutý počítačový program je modul napísaný vo forme sledu symbolov oprávnení vybraných zo spomenutej sady a obsahujúci údaj o velkosti priestoru na čítanie/zápis neinicializovaných logických adries potrebného na vyhotovenie spomenutého modulu;
zavádzači program na zavedenie spomenutého modulu a na pridelenie požadovanej veľkosti priestoru neinicializovaných logických adries v súlade so spomenutým údajom a prostriedky pre prístup k záznamu v spomenutej databáze, pričom záznamy v spomenutej databáze sú prístupné iba prostredníctvom spomenutého modulu a spomenuté prostriedky pre prístup poskytujú okno do bežného záznamu v spomenutej databáze a kopírujú uvedený záznam do časti spomenutého priestoru na čítanie/zápis neinicializovaných logických adries adresovatelného spomenutým aplikačným programom.
Tento vynález môže poskytnúť do seba uzavretú prenosnú inteligentnú kartu obsahujúcu prvé zariadenie na uskutočnenie transakcie s druhým zariadením. Uvedené prvé zariadenie obsahuje:
virtuálny stroj na interpretáciu v ňom použitej sady symbolov oprávnení objednávkových bytových kódov, pričom uvedený virtuálny stroj obsahuje virtuálnu procesorovú jednotku a priestor na čítanie/zápis logických adries;
aspoň jednu databázu obsahujúcu aspoň jeden záznam a aspoň jeden počítačový program na vykonanie spomenutým virtuálnym strojom, pričom spomenutý počítačový program je modul napísaný vo forme sledu symbolov oprávnení vybraných zo spomenutej sady a obsahujúci údaj o velkosti priestoru na čítanie/zápis neinicializovaných logických adries potrebného na vyhotovenie spomenutého modulu;
zavádzači program na zavedenie spomenutého modulu a na pridelenie požadovanej velkosti priestoru neinicializovaných logických adries v súlade so spomenutým údajom a prostriedky pre prístup k záznamu v spomenutej databáze, pričom záznamy v spomenutej databáze sú prístupné iba prostredníctvom spomenutého modulu a spomenuté prostriedky pre prístup poskytujú okno do bežného záznamu v spomenutej databáze a kopírujú uvedený záznam do časti spomenutého priestoru na čitanie/zápis neinicializovaných logických adries adresovatelného spomenutým aplikačným programom.
Tento vynález poskytuje taktiež spôsob uskutočnenia transakcie medzi prvým zariadením a druhým zariadením, pričom aspoň jedno zo spomenutého prvého alebo druhého zariadenia je karta s integrovanými obvodmi, ktorá obsahuje:
poskytnutie aspoň jednej programovej inštrukcie v spomenutom druhom zariadení schopnej aspoň modifikovať správanie sa časového uskutočnenia počítačového programu v spomenutom prvom zariadení;
zavedenie a zavedenie inštrukcie podmienke, prevádzke a interpretáciu spomenutého počítačového programu, a interpretáciu aspoň jednej programovej závislej na vopred definovanej bezpečnostnej zatial čo je spomenutý počítačový program v vyhotovenie spomenutého zavedeného a interpretovaného počítačového programu s uvedeným modifikovaným správaním sa pri odozve na spomenutú zavedenú a interpretovanú programovú inštrukciu.
Tento vynález poskytuje taktiež spôsob uskutočnenia transakcie medzi prvým zariadením a druhým zariadením obsahujúci:
interpretáciu aspoň jedného aplikačného programu napísaného ako sled symbolov oprávnení bytových kódov vybraných zo sady symbolov oprávnení a zodpovedajúcich vložených údajov;
zavedenie aspoň jedného aplikačného programu;
pridelenie prvej velkosti logických adries špecificky priestoru na čítanie/zápis pre spomenutý aspoň jeden aplikačný program v súlade s údajom obsiahnutým vo vnútri uvedeného aplikačného programu o velkosti priestoru na čítanie/zápis logických adries potrebného na jeho uskutočnenie a definovanie priestoru na a ochrana čítanie/zápis hraníc spomenutého logických adries.
prideleného
Tento spôsob kombinuje použitie interpretačného programu s pridelením a, podlá volby, s priamym uvolnením pamäte. Toto poskytuje zmiešanie pružnosti pri poskytnutí záruk na dobu prevádzky, potomčo bol aplikačný program v kompilačnej etape úplne skontrolovaný. To zmenšuje poškodenie, ktoré by mohlo byť spôsobené vírusmi v prijatých aplikačných moduloch.
Tento vynález obsahuje taktiež spôsob vyhotovania transakčného systému medzi prvým zariadením a druhým zariadením, pričom aspoň jedno zo spomenutých zariadení je karta s integrovanými obvodmi, ktorá obsahuje:
interpretáciu symbolov oprávnení v module napísanom vo forme sledu uvedených symbolov oprávnení vybraných zo sady symbolov oprávnení;
pridelenie velkosti priestoru neinicializovaných logických adries v súlade s údajom v spomenutom module o velkosti priestoru na čítanie/zápis neinicializovaných logických adries potrebného na vyhotovenie spomenutého modulu;
prístup k záznamu v databáze poskytnutím okna do bežného záznamu v spomenutej databáze, pričom záznamy v spomenutej databáze sú prístupné iba pomocou spomenutého modulu a kopírovanie spomenutého záznamu do časti spomenutého priestoru na čitanie/zápis neinicializovaných logických adries adresovatelného spomenutým modulom.
Tento vynález taktiež obsahuje spôsob uskutočnenia transakcie medzi prvým zariadením a druhým zariadením, pričom aspoň jedno zo spomenutých zariadení je karta s integrovanými obvodmi, ktorá obsahuje:
poskytnutie prenosného virtuálneho stroja obsahujúceho virtuálny mikroprocesor a budič pre aspoň jedno vstupné/výstupné zariadenie;
interpretujúci počítačový program v spomenutom prvom zaria20 dení použitím spomenutého prenosného virtuálneho stroja a spomenutý vykonávací program v odozve na uvedený interpretovaný program.
V súlade s týmto vynálezom je poskytnúť transakčný systém, ktorý s výhodou obsahuje virtuálny mikroprocesor. Každý modul s výhodou obsahuje sadu priestorov virtuálnych adries zaručených tak, aby boli oddelené od akéhokolvek iného priestoru virtuálnych adries. Prenosný virtuálny mikroprocesor taktiež s výhodou chráni prístup k oznamovaným zdrojom, ako sú rozličné zásobníky a databázy. Minimálnou ochranou je s výhodou pamäť kontrolujúca hranice prístupu k priestoru dát na čítanie a zápis a absolútny zákaz zápisu do priestoru kódov. Ďalej sa preferuje kontrola naplnenia a preplnenia dát a zásobníkov návratu. S výhodou je k tomu, čo nejaký iný modul práve neexistuje cesta, ktorá by mohla bezpečný prenosný možné pristúpiť iba vykonáva. S výhodou umožniť prístup (virtuálny mikroprocesor neprepúšťa) prostredníctvom funkcií poskytnutých modulom. Moduly s výhodou nemôžu prenášať dáta v zvyčajnom zmysle, moduly môžu s výhodou prenášať iba funkcie. Logické hranice s výhodou zakazujú prepúšťanie priestoru dát. Inými slovami, všetky tieto dáta vlastnené modulom sú s výhodou prísne súkromné. Toto obmedzenie je s výhodou zabezpečené v čase kompilácie, ako aj v čase moduly majú oddelené priestory že adresa niektorých dát vo vnútri je úplne bez významu okrem jej Modul môže s výhodou preniesť iba sadu k nevykonaným dátam s výnimkou prístupu prevádzky, adries, čo niektorého pretože znamená, modulu vlastniaceho modulu.
uchopení na spustenie alebo vypnutie určitého správania sa. Moduly s dobrým správaním budú s výhodou vo veľmi dobrej prevádzke, zatiaľ čo moduly s nie tak dobrým správaním sa budú náhle ukončené výnimkami priamo vloženými virtuálnym mikroprocesorom, keď je urobený pokus o nelegálnu prevádzku.
Závislé nároky definujú jednotlivé vyhotovenia tohto vynálezu. Tento vynález, jeho vyhotovenia a výhody budú teraz opísané s odvolaním sa na nasledujúce obrázky.
Prehľad obrázkov na výkresoch
Obr. 1 je schematické znázornenie terminálu v súlade s týmto vynálezom.
Obr. 2 je schematické znázornenie ICC v súlade s týmto vynálezom.
Obr. 3 je schematický vývojový diagram procesu vývoja a vyhotovenia modulu v súlade s týmto vynálezom.
Obr. 4 je schematické znázornenie prenosného virtuálneho mikroprocesora v súlade s týmto vynálezom tak, ako je realizovaný v terminále.
Obr. 5 je schematické znázornenie prenosného virtuálneho mikroprocesora v súlade s týmto vynálezom.
Obr. 6 je schematické znázornenie modulov zavedených do pamäte v súlade s týmto vynálezom.
Obr. 7 je schematické znázornenie spôsobu získania prístupu do záznamu v databáze v súlade s týmto vynálezom.
Obr. 8 je schematické znázornenie postupu zástrčky a zásuvky v súlade s týmto vynálezom.
Obr. 9 je vývojový diagram procesu zavedenia modulu podía tohto vynálezu.
Obr. 10 je vývojový diagram procesu vyhotovenia modulu podía tohto vynálezu.
Obr. 11 je vývojový diagram procesu zasunutia do zásuvky podlá tohto vynálezu.
Obr. 12 je vývojový diagram procesu zavedenia modulu karty v súlade s týmto vynálezom.
Dodatok uvádza kódy symbolov oprávnení a štandardnej výnimky.
Príklady vyhotovenia vynálezu
Tento vynález bude ďalej opísaný s odvolaním sa na zvláštne obrázky a určité vyhotovenia, ale vynález nie je nimi obmedzený, je obmedzený iba nárokmi. Obrázky sú len schematické a nie sú obmedzujúce. Tento vynález bude ďalej opísaný s odvolaním sa na finančné transakcie, ale vynález nimi nie je obmedzený. Tento vynález bude ďalej opísaný hlavne s odvolaním sa na terminál, ale tento vynález taktiež obsahuje poskytnutie prenosného virtuálneho mikroprocesora na akomkoľvek vhodnom zariadení, napríklad na osobnom počítači (PC - personál Computer), ICC alebo kombinovanej ICC a rozhrania, ako je opísané v WO 94/10657, ktorá je tu uvedená ako odvolávka.
Všeobecná spojujúca technická koncepcia, na ktorej je vynález založený, je prenosnosť kombinovaná s bezpečnosťou dát a zárukami doby prevádzky v transakčnom systéme, ktoré sú nezávislé na cieľovej realizácii za predpokladu, že kontroly kompilačného času prejdú úspešne. Túto koncepciu je možné dosiahnuť jednou alebo viacerými nasledujúcimi základnými vlastnosťami: použitím virtuálneho stroja ako interpretačného programu obsahujúceho budič pre zariadenie vstupu a výstupu (1/0) vo virtuálnom stroji tak, že aplikačné programy majú spoločné rozhranie so vstupnými/výstupnými (1/0) zariadeniami, a sú preto prenosné cez veľmi rozdielne prostredia obsahujúce údaj o veľkosti pamäti v aplikačnom programe a prideľujúci pamäť v súlade s údajom, priamo uvoľňujúcu pamäť a poskytujúcu bezpečnú cestu pre prijatie a prenos údajov do a z aplikačných programov a/alebo databáz.
Obr. 1 je schematické znázornenie terminálu 1 v súlade s týmto vynálezom. Terminál 1 typicky obsahuje ústrednú procesorovú jednotku (CPU - centrál processor unit) 2, ktorá je spojená s pamäťou 4 a vstupnými/výstupnými (1/0) zariadeniami 6 cez zbernicu 3 na komunikáciu v dvoch smeroch. 1/0 zariadenia 6 môžu byť klávesnice na vkladanie dát a také tienidlo, akým je vizuálna zobrazovacia jednotka, napríklad displej s tekutými kryštálmi (LCD - liquid crystal display) alebo displej so svietiacimi diódami (LED - light emitting dióde) na zobrazenie postupu transakcie a/alebo zobrazenie správ alebo výziev. Jedno z 1/0 zariadenia 6 môže byť čítačka kariet 7, pomocou keď je zavedená do prijímacej ktorej môže byt čítaná ICC 5, drážky v čítačke 7. Skutočný tvar terminálu sa môže podstatne meniť, napríklad môže byt terminálom miesta predaja (POS - point of sále) a môže obsahovať procesory od Intel 8051 až po Pentium™. Ďalej nie je nutné, aby terminál 1 bol celý umiestnený v jedinom mieste rôznej časti terminálu, akou je čítačka Ί_ kariet, zariadenie 1/0 ako klávesnica; a displej a procesor, môžu byť umiestnené v rôznych polohách a spojené káblami, podobne alebo môžu byť časťou alebo môžu bezdrôtovým prenosom alebo siete miestnej oblasti telekomunikačnými sieťami.
byť prepojené
Obr. 2 je schematické znázornenie ICC 5 v súlade s týmto vynálezom. Tento vynález však nie je obmedzený len na toto. ICC 5 obsahuje aspoň jednu bránu 10 vstupu/výstupu (1/0) a nejakú permanentnú pamäť, napríklad energeticky nezávislú pamäť, ktorá môže byt napríklad poskytnutá EEPROM 15 spojenou s bránou 10 I/O cez zbernicu 17 alebo pamäť s lubovolným výberom (RAM - random access memory) s podporou batérie. Brána 10 I/O môže byť použitá pri komunikácii s terminálom 1 cez čítačku 7 kariet. Karta s integrovanými obvodmi je karta, do ktorej je vložený jeden alebo viacej integrovaných obvodov, aby uskutočňovali aspoň funkcie pamäte. ICC 5 môže byť podľa voľby do seba uzatvorená prenosná inteligentná karta a môže obsahovať pracovnú pamäť na čítanie/zápis, napríklad energeticky závislú pamäť poskytnutú RAM 14, a ústredný procesor 12 rovnako tak, ako všetky potrebné obvody, takže karta ICC 5 môže pracovať ako mikroprocesor, napríklad ako permanentná pamäť 13 na uloženie kódu, triedič 16 a spojenie s čítačkou 7 kariet pre príjem zdrojov napätia Vss a VDD. obnovenie pre procesor 12 a hodiny CLK k triediču 16. V súlade s týmto vynálezom môže byť ICC 5 použitá ako bankovná karta, kreditná karta, debetná karta, elektronická peňaženka, zdravotná karta, karta SIM a pod.
Tento vynález poskytuje integrovaným obvodom riadený transakčný riadiaci systém určený na uskutočnenie transakcie medzi ICC 5 a terminálom 1 pripojeným alebo nepripojeným na ústrednú jednotku, transakcia sa skladá z aspoň jedného vyhotovenia nasledujúcej sekvencie:
1. Vytvorenie komunikačného spojenia medzi ICC 5 a terminálom 1.;
2. Uskutočnenie kontroly zlúčiteľnosti na zaistenie toho, že ICC 5 a terminál 1. sú mechanicky a elektricky zlúčiteľné;
3. Výber aplikácie obsahujúcej výber počítačového programu a pripojenej sady dát, ktoré definujú transakciu vo forme špecifickej dotyčnej kombinácie ICC 5 a terminálu 1;
4. Uskutočnenie aplikácie;
5. Ukončenie transakcie, čo podľa voľby obsahuje prerušenie komunikačného spojenia medzi ICC 5 a terminálom 1; tým sa interpretačný program použije na uskutočnenie aplikácie bud na ICC 5 alebo na terminále, prípadne na obidvoch. Transakcia je výmena dát aspoň medzi dvoma alebo viacerými zariadeniami a v súlade s týmto vynálezom nie je špecifická pre obchodné finančné transakcie. Takýto systém je známy z PCT/BE 95/00017. ICC 5 môže byt iba pamäť ICC, t. z. neobsahuje procesor 12 a ICC 5 vykonáva transakciu tak, ako je určená terminálom 1. Alternatívne môže byť ICC 5 do seba uzatvorená prenosná inteligentná karta a transakcia môže byt určená terminálom 1, ICC 5 alebo obidvoma. V súlade s týmto vynálezom môže ICC 5 obsahovať kód programu, aby bezpečne zväčšil spracovanie terminálu. ICC 5 môže byt jednou alebo viacerými udržiavacími kartami, ktoré môžu byť použité na aktualizáciu aplikácií uložených v terminále.
V súlade s týmto vynálezom je softvér prevádzkovaný v terminále 1. a podl’a vol’by v ICC 5 vo forme virtuálneho stroja. Virtuálny stroj (VM - Virtual machine), v súlade s týmto vynálezom, dáva priamo k dispozícii teoretický alebo virtuálny mikroprocesor so štandardnými charakteristikami, ktoré definujú spôsob adresovania, použitia zásobníkov, použitia registrov, priestor adries, adresovanie I/O zariadenia atď. všeobecne použiteíným spôsobom. Jadro pre každý určitý typ CPU použité v terminále 1. alebo v ICC 5 je zapísané tak, aby spôsobilo, že zodpovedajúci procesor 2, 12 emuluje VM. Špecifickým aspektom tohto vynálezu je to, že jadro pre VM poskytuje budiče pre 1/0 zariadenie a všetky logické a aritmetické funkcie CPU nízkej úrovne, riadenie toku, manipuláciu času. Existencia budičov 1/0 vo VM má výhodu, pretože akýkolvek program napísaný pre VM v súlade s týmto vynálezom, adresuje štandardné virtuálne 1/0 zariadenie. Realizácia VM v určitej CPU potom poskytuje fyzickým I/O zariadeniam pripojeným na terminál 1 alebo ICC 5, aby sa správali podobne ako adresované virtuálne 1/0 zariadenia. VM v súlade s týmto vynálezom je velmi kompaktný a bol realizovaný úspešne na čipe Siemens SLC044CR (derivát rodiny INTEL 8051), ktorý môže byť obsiahnutý na ICC 5. VM v súlade s týmto vynálezom umožňuje vysoký stupeň štandardizácie cez velmi rozličné typy CPU a I/O a zjednodušuje prenosnosť programu, skúšanie a osvedčenie. V súlade s touto aplikáciou bude takýto VM opísaný ako prenosný virtuálny stroj 20. Prenosný virtuálny stroj 20 obsahuje virtuálny mikroprocesor a budič pre 1/0 zariadenie. VM 20 poskytuje logické a aritmetické funkcie a adresovanie pamäte, a aspoň jedno vstupné/výstupné zariadenie. Prenosný VM 20. v súlade s týmto vynálezom, poskytuje prenositeínosť programu cez rôzne terminály i a kartu 5 tým, že zaobchádza s programami terminálu a/alebo kartami ako s medziľahlým kódom kompilujúceho programu. Tento kód sa skladá z prúdu bytových kódov, ktoré majú názov symboly oprávnení. Terminály 1 alebo ICC 5 potom spracujú tento kód jeho interpretáciou alebo inými prostriedkami, ako je napríklad prirodzená kompilácia kódu. Interpretácia symbolu oprávnení virtuálnym strojom môže byt s výhodou uskutočnená jednou z troch metód: priamo interpretujúcimi inštrukciami virtuálneho stroja, prekladom jazyka virtuálneho stroja do priamo uskutočniteľnej prechodnej formy alebo jej kompiláciou v správnom čase do skutočného kódu pre cieľovú CPU. Posledné dve uvedené metódy ponúkajú zlepšenú prevádzku pri miernych nákladoch v zložitosti. Symboly oprávnení sú poskytnuté v sade, na ktorú je možné sa pozerať ako na sadu strojových inštrukcií pre VM 20.
Aplikačné programy v súlade s týmto vynálezom sú vyhotovené ako moduly, ktoré môžu obsahovať zoznam symbolov oprávnení ako vykonávací kód. V súlade s týmto vynálezom existujú dva základné typy modulov: uskutočniteľné moduly, ktoré majú vstupný bod, ktorý je priamo volaný virtuálnym strojom 20, ked je modul zavedený; a moduly knižnice, ktoré pôsobia ako zdroje pre iné moduly poskytnutím uskutočniteľných procedúr, ktoré môžu byť individuálne vykonané medzimodulovými volaniami.
Sada symbolov oprávnení v súlade s týmto vynálezom obsahuje po prvé sadu inštrukcií virtuálneho stroja 20. ktorá poskytuje inštrukcie očakávané pre všeobecný spracovávajúci jazyk a sú požadované na účinné vyhotovenie programov a po druhé symboly oprávnení, ktoré poskytujú to, čo sa normálne nazýva funkcia operačného systému. V termináloch 1 alebo karte 5 obsahujú funkcie operačného systému v súlade s týmto vynálezom také špecifické funkcie, akými sú budiče I/O, napríklad pre displeje alebo klávesnice a v termináloch i alebo karte 5 môžu funkcie systému obsahovať taktiež riadenie komunikácie a prenosu dátových objektov prostredníctvom brán I/O a taktiež medzimodulový prístup a mechanizmy kontroly prístupu. Symboly oprávnení sú s výhodou poskytnuté pre operačný systém stroja VM, pre manipuláciu zásobníkov, pre manipuláciu zásuviek, pre kontrolu napr. výnimočnej manipulácie, pre samotné zásuvky obsahujúce ich práva prístupu, pre prístup I/O zariadenia, pre manipuláciu času, pre manipuláciu jazyka a správ, pre manipuláciu čítačiek I/O napr. ICC, manipuláciu s kartami s magnetickým pásikom a modemami, pre riadenie čiernych záznamov, pre bezpečnostné algoritmy, pre terminálové služby, pre služby databáz, pre manipuláciu s dátovými objektami napr. pre manipuláciu TLV, pre manipuláciu s modulmi a rozsiahlu manipuláciu s pamäťou.
Symboly oprávnení s jediným bytom sa uvádzajú ako primárne symboly oprávnení; tie sa vzťahujú na primitívne inštrukcie, akými sú bežne nájdené inštrukcie v akejkoľvek sade inštrukcií. Symboly oprávnení s viacerými bytmi sa uvádzajú ako sekundárne symboly oprávnení a sú používané pre zriedkavejšie používané služby. Úplná sada symbolov oprávnení pre VM 20 je uvedená v dodatku. Ako je schematicky uvedené na obr. 3, aplikačný program sa píše na hlavnom vývojovom systéme 70 PC a je odladený a typ je schválený vo vhodnom jazyku vysokej úrovne, akými sú jazyk Forth, jazyk C, jazyk Pascal atď. Potom je zdrojový kód programu kompilovaný kompilujúcim programom 71 symbolov oprávnení do sledu symbolov oprávnení. Tento sled symbolov oprávnení je oddelene kombinovaný s inými dátami (zodpovedajúcimi vloženými dátami) potrebnými pre program a záhlavím a je uzavretý v súbore dodávaného modulu na vytvorenie modulu 72 s výhodou v štandardizovanom formáte dodávaného modulu. Ak modul obsahuje uskutočniteľné symboly oprávnení, je dodaný v uskutočniteľnom programovom formáte. Je to zvláštny aspekt tohto vynálezu, že uskutočniteľné moduly obsahujú nielen sled symbolov oprávnení, ale taktiež všetky zodpovedajúce vložené dáta (uzavreté). Ďalší zvláštny a oddelený aspekt tohto vynálezu spočíva v tom, že moduly v súlade s týmto vynálezom obsahujú údaj o tom, koľko pamäte na čítanie/zápis by malo byt strojom VM 20 pridelené na vyhotovenie modulu.
Modul 72 je dodaný do terminálu 1 akýmikoľvek vhodnými prostriedkami, napríklad ICC 5 cez telekomunikačnú sieť. Po posunutí modulu je modul uložený do schránky modulov. Keď je požadovaná jeho funkcia, použije terminál 1 alebo karta 5 zavádzací/interpretačný program 73 symbolov oprávnení, aby spracoval symboly oprávnení na uskutočnenie v CPU 2 terminále. Tento proces sa skladá z uskutočnenia funkcie pripojenej ku každému symbolu oprávnení. Zavádzací/interpretačný program 72 symbolov oprávnení je poskytnutý strojom VM 20 v súlade s týmto vynálezom.
Softvér vzťahujúci sa v terminále JL k VM môže byť rozdelený na štyri hlavné kategórie:
Jadro, ktoré obsahuje realizácie budičov 1/0 závislé na terminále a všetky funkcie požadované v tejto špecifikácii pre podporu VM 20. Každý iný softvér vzťahujúci sa na VM 20 je napísaný v symboloch oprávnení závislých na stroji.
Trvalo uložené služby terminálu (TRS - Terminál Resident Services) tvoria aspoň jeden modul, ktorý je prevádzkovaný na VM 20 ako riadiaci program aplikácií a obsahuje všetky neaplikačné funkcie, knižnice podporujúce tieto funkcie, funkcie zavádzania modulov a hlavnú slučku definujúcu správanie sa terminálu, špeciálne symboly oprávnení (napr. DIOCTL) umožňujú aspekty 1/0 zariadenia závislé na terminále, ktoré majú byt definované ako vložené funkcie.
Vybrané služby terminálu (TSS - Terminál Selected Services) obsahujú také aplikácie, akými sú funkcie platobných služieb a knižnice podporujúce tieto služby. TSS obsahujú iba symboly oprávnení nezávislé na terminále a sú trvalo uložené v terminále 1. Hlavná programová slučka TRS vyberie a zavolá funkcie TSS tak, ako sú potrebné pre určitú transakciu.
Služby vybrané kartou (CSS - Card Selected Services) obsahujú funkcie podporujúce také terminálové transakcie, akými sú funkcie platobných služieb, ktoré sa používajú ako časť aplikácií TSS. CSS sú trvalo uložené na ICC 5 a sú podía požiadaviek presunuté do terminálu l. Pre terminály 1 s dvoma čítačkami 2 ICC (poznámka prekladatela: v originále nesprávne 8) (napríklad jedna na normálne transakcie a druhá na údržbu) môžu existovať dve nezávislé sady CSS (CSS1 a CSS2).
Celý softvér v terminále 1 nad jadrom je v súlade s týmto vynálezom organizovaný ako sada oddelených modulov. Základnou charakteristikou modulu je to, že je zbierkou definícií alebo programových funkcií, ktoré prešli kompilujúcim programom 71 symbolov oprávnení a sú uzatvorené v jedinom bloku na dodanie do cieíového prostredia, napríklad do terminálu 1. alebo ICC 5. Hlavný program (TRS) terminálu, každá aplikácia, každá knižnica a každá presunutá CSS sú príkladmi modulov. Všetky moduly s výhodou používajú štandardný formát. V súlade s týmto vynálezom jadro v systéme definuje VM 20, ktorý poskytuje rozličné služby vysokej úrovne takýmto modulom, akými sú:
CPU pre všeobecné účely a inštrukčná sada, predstavovaná symbolmi oprávnení;
I/O podpora pre všeobecné účely pre spoločné zariadenia s opatreniami pre všeobecne použitelné I/O na podporu prídavných zariadení, ktoré môžu byť pridané;
funkcie riadenia databáz;
riadenie prenosu dátových objektov obsahujúcich prevody formátov a iné funkcie;
riadenie modulov symbolov oprávnení obsahujúcich ich údržbu v pamäti (aktualizáciu ak je to potrebné) a uskutočňujúce ich podl’a požiadaviek. V preferovanom vyhotovení tohto vynálezu zostáva vyhotovenie modulov stále pod kontrolou VM 20. Moduly tak nikdy nepreberajú kontrolu základného procesoru, ale sú vzhladom na VM 20 len pasívne. VM 20 s výhodou vždy pracuje v dohliaďacom spôsobe a môže uskutočniť len inštrukcie definované vo forme jeho sady symbolov oprávnení a žiadny modul nemôže pracovať užívatel’ským spôsobom, t. z. uvažujú kontrolu stroja VM 20. Tak pri realizácii VM 20 použitím mapy pamäte môže byť vytvorená len jedna mapa pamäte, a to mapa dohliadajúceho programu.
Žiadny modul nemôže ohroziť operačný systém definovaný strojom VM 20. Toto je zabezpečené, pretože modul môže obsahovať len symboly oprávnení zo sady symbolov oprávnení VM a žiadny z týchto symbolov oprávnení nedovoluje prístup do priestoru kódov, kde je uložené jadro. Aj dôjde k stretunutiu VM 20 so symbolom oprávnení, ktorý leží mimo definovanej sady, je vhodená výnimka (ILLOP).
Ako je schematicky uvedené na obr. 4, terminál 1 obsahuje terminálový špecifický operačný systém 80 (poznámka prekladatela: v originále nesprávne 8) terminálu zodpovedný za zavedenie modulu TRS stroja VM 20 (zavádzacia procedúra je opísaná ďalej). Kód pre VM 20 je uložený v permanentnej energeticky nezávislej pamäti 11. Pred zavedením TRS je terminálová energeticky závislá pamäť 19. terminálu vyprázdnená od všetkých dát vzťahujúcich sa na transakciu, energeticky nezávislá pamäť 18 terminálu na čítanie/zápis obsahuje aplikácie, ktoré majú byť uskutočnené strojom VM 20 vo forme modulov 72 v schránke modulov energeticky nezávislej databázy obsahujúcej špecifické dáta uživateía a a knižnice, akými sú zasunovatelná knižnica, ktorá bude opísaná neskôr. Ak je VM 20 realizovaný taktiež na ICC 5, používajú sa rovnaké princípy, ako boli opísané vyššie, vzhladom na permanentné energeticky nezávislé pamäte 13, energeticky závislé pamäte 14 a energeticky nezávislé pamäte 15 na čítanie/zápis ICC 5.
Pretože VM 20 je virtuálny stroj, adresuje všetky formy pamätí 11. 18., 19» U.» U.» 15 terminálu alebo ICC ako virtuálnu pamäť, t. z. všetky sú z pohladu VM 20 adresované v priestore logických adries. V skutočnom vyhotovení VM 20 sú tieto priestory logických adries mapované do skutočných priestorov adries v pamäti terminálu 1 alebo ICC 5 mapou pamäti alebo podobne. V ďalšom texte bude uvedená odvolávka na energeticky závislú pamäť, energeticky nezávislú pamäť na čítanie/zápis a permanentnú energeticky nezávislú pamäť, ktoré sú súčasťou VM 20. Je treba pochopiť, že toto sa vzťahuje na priestor logicky adresovanej pamäte, pokial nie je vykonaná špecifická zmienka o skutočných adresách v realizácii VM 20 v terminále 1 alebo ICC 5. Energeticky závislá pamäť nevydrží zavedenie programu alebo vypnutie zdroja a/alebo spustenie znova. Energeticky závislá pamäť s výhodou nevydrží z bezpečnostných dôvodov vypnutie zdroja. Energeticky nezávislá pamäť vydrží zavedenie programu, vypnutie zdroja alebo znova spustenie.
Opis virtuálneho stroja
Schematické znázornenie stroja VM 20, v súlade s týmto vynálezom, je uvedené na obr. 5. VM 20 je s výhodou zásobníkový stroj a má ukazovatel zásobníka dát (uložený v registri 32 ukazovatele zásobníka dát), ktorý ukáže na zásobník dát 27 s výhodou v pamäti na čipe. Všetky operácie sa uskutočňujú na tomto zásobníku 27. Zásobník údajov 27 sa používa na to, aby obsahoval parametre procedúr a dočasné výsledky z vyhodnotenia výrazov. Údaje sú rýchlo zasunuté alebo vybrané zo zásobníka dát 27. VM 20 obsahuje taktiež zásobník návratu 28. Zásobník návratu 28 môže byť strojom VM 20 použitý na to, aby obsahoval adresy návratu a môže byť taktiež použitý ako dočasná pamäť. Táto násobná architektúra zásobníkov je známa z programovacieho jazyka Forth (ÄNSI X3.215-1994). Táto architektúra bola ďalej modifikovaná pre prednosť, hustotu kódov, bezpečnosť, jednoduchú kompiláciu a pre použitie s inými programovacími jazykmi. Obsahuje, napríklad opatrenie pre miestne premenné rámce používané v programovacích jazykoch vysokej úrovne, akým je jazyk C. Kompilujúce programy 71 symbolov oprávnení môžu tak byť, v súlade s týmto vynálezom, napísané nielen v jazyku Forth, ale taktiež v jazyku C a iných programovacích jazykoch.
V súlade s týmto vynálezom, je k VM 20 pripojený len jeden zásobník dát 27 a jeden zásobník návratu 28. Zásobník dát 27 a zásobník návratu 28 nie sú vytvorené pre každé vlákno spracovania. V súlade s týmto vynálezom, môžu aplikačné programy vyhladat zo zásobníka návratu 28 len to, čo do neho do vnútra bežné procedúry výslovne vložili a musí odstrániť dáta umiestnené v zásobníku návratu 28 počas bežnej procedúry pred výstupom z procedúry. VM 20 taktiež, podlá volby, obsahuje bezpečnostný riadiaci program na poskytnutie integrity doby prevádzky, a ktorý monitoruje každú aktivitu v zásobníku návratu a kontroluje všetky dáta odstránené počas bežnej procedúry. V dodatku k dátam, tam umiestneným vyslovene s cielom prechodného uloženia, môže VM 20 obsahovať stavovú informáciu pre výnimočné vyhotovenie, rámce pre miestne premenné, kontrolné parametre slučky a súvislosť databázy v zásobníku návratu 28.
V súlade s týmto vynálezom, môže VM 20 obsahovať množstvo zásobníkov. Napríklad skôr ako použitie len zásobníka návratu 28, môžu byt podlá volby poskytnuté ďalšie zásobníky 29, akými sú zásobník výnimiek alebo zásobník rámcov. Zásobník výnimiek sa používa na uloženie uskutočnenia stavu počas uskutočnenia. Zásobník rámcov sa používa na udržiavanie miestnych premenných informácií, a taktiež aktivizačných záznamov jazykov podobných jazyku C. Ako bolo uvedené, zásobníky výnimiek 29 a rámcov môžu byt realizované v zásobníku návratu 28.
Zásobník dát 27 a zásobník návratu 28 a iné zásobníky 29. akým je zásobník výnimiek, nie sú v priestore pamäte priamo prístupné žiadnym aplikačným programom. Zásobník dát 27 a zásobník návratu 28 nemôžu byt adresované priamo, sú prístupné len cez operácie zásobníkov. Z bezpečnostných dôvodov neexistuje žiadne obmedzenie na to, ako sú dáta uložené v skutočnej realizácii, takže klamúce osoby nemôžu predpokladať ako sú dáta fyzicky uložené.
VM 20 obsahuje virtuálnu ústrednú procesorovú jednotku 22. ktorá obsahuje virtuálnu aritmetickú logickú jednotku (ALU - arithmetic logic unit) 23. VM 20 adresuje priestor 24 virtuálnych alebo logických dát, s ktorými VM 20 zachádza ako s pamäťou s lubovolným vstupom (RAM) a ktoré by boli normálne realizované ako časť energeticky závislej pamäte 19, napríklad v RAM v skutočnom terminále 1 alebo karte 5. Priestor 24 logických dát je prístupný len pre uloženie dát. Sled symbolov oprávnení modulu je uložený strojom VM 20 v pamäti kódov 26, s ktorou VM 20 zaobchádza ako s permanentnou pamäťou (ROM). Len VM 20 môže čítať symboly oprávnení. Pamäť kódov 26 nie je prístupná ani pre aplikačné programy, ani pre akýkol’vek symbol oprávnení.
VM 20 môže taktiež obsahovať virtuálne registre 30. Registre 30 stroja VM 20 môžu obsahovať register ukazovatele symbolov oprávnení 31, ktorý obsahuje ukazovatel, ktorý ukazuje na nasledujúci symbol oprávnení na vykonanie, register ukazovatele zásobníka dát 32. ktorý obsahuje ukazovatel, ktorý ukazuje na bežný vrchol miesta zásobníka dát 27 (TOS - top of data stack), register 33 ukazovateľa zásobníka návratu, ktorý obsahuje ukazovateľ*, ktorý ukazuje na bežný vrchol miesta zásobníka návratu, register 34 ukazovateľa rámca, ktorý obsahuje ukazovateľ, ktorý ukazuje na začiatok rámca v priestore dát 24. register 35 ukazovateľa konca rámca, ktorý obsahuje ukazovateľ, ktorý ukazuje na koniec rámca v priestore dát 24. Nie je cieľom poskytnúť žiadny priamy prístup do registrov 31 až 36 pomocou sady symbolov oprávnení, ale len cez symboly oprávnení prístupu k registrom.
Nakoniec virtuálne 1/0 zariadenia 25 sú spojené s CPU 22 virtuálnym zbernicovým systémom 21, ktorý spája taktiež zásobníky 27 - 29, ALU 23., registre .30, pamäť kódov 26 a priestor dát 24.
VM 20 v súlade s týmto vynálezdm je s výhodou definovaný ako bytovo adresovaný dvojdoplnkový 32 bitový stroj s 32 bitovými registrami a s prvkami zásobníkov, avšak vynález nie je na toto obmedzený. Velkosť registra/zásobníka je uvádzaná ako veľkosť bunky VM 20, keď bunka je základná manipulačná jednotka v zásobníkoch a u registrov 31 až 36 VM. O velkosti bunky používanej strojom VM 20 sa neuvažuje, že má materiálny dopad na tento vynález.
Všetky programy prevádzkované z modulov musia dodržiavať nasledujúce pravidlá:
Programy nesmú uvažovať, že údaje v akejkoľvek z vyššie uvedených kategórií majú zaručené, že sú obiahnuté v zásobníku návratu 28., a tak môžu použiť len vyhľadávací mechanizmus výlučne špecifikovaný na danú kategóriu, pretože bezpečnostný riadiaci program môže odstrániť akékoľvek takéto dáta.
Programy, ktoré prepúšťajú údaje v jednej z týchto kategórií do VM 20, musia uskutočniť vhodnú činnosť, aby sa zotavilo uloženie údajov z VM 20 pred výstupom z procedúry, v ktorej sú prepúšťané, inak VM 20 uvoľní príslušnú časť pamäte.
Programy musia uvažovať, že akékoľvek údaje predtým umiestnené v zásobníku návratu 28 sú poskytnuté ako neprístupné pri prenose údajov v jednej z týchto kategórií do VM 20.
Programy musia uvažovať, že akékoľvek údaje v jednej z týchto kategórií prepúšťané do VM 20*., sú poskytnuté ako neprístupné vyhotovením kódu, ktorý umiestni hodnoty do zásobníka návratu 28 až do vtedy, kým sú tieto hodnoty odstránené, pretože zásobník návratu je prístupný len pomocou špecifikovaných procedúr symbolov oprávnení.
V súlade s týmto vynálezom definuje operačný systém stroja VM 20 jediný priestor adries 24 dostupný každému modulu. Tento priestor adries 24 bude prístupný len na ukladanie údajov a bude označovaný ako priestor údajov 24.
Priestor údajov 24 je rozdelený do troch a jednej volitelnej logickej oblasti, z ktorých každá je individuálne súvislá:
1. priestor iniciál izovaných údajov 41, ktorý obsahuje počiatočné hodnoty špecifikované v čase kompilácie a nastavené vtedy, ked' je aktivované jadro VM a následne keď je zavedený modul obsahujúci inicializované údaje;
2. priestor neinicializovaných údajov 42, ktorý obsahuje premenné a statické vyrovnávacie pamäte pridelené počas kompilácie programu. Tento priestor údajov 42 je inicializovaný na nulu strojom VM 20;
3. pamäť rámcov 46, ktorá je riadená symbolmi oprávnení rámcov;
4. podlá volby rozširiteľná pamäť 45. ktorá obsahuje jednu alebo viac vyrovnávacích pamätí dynamicky pridelených počas uskutočňovania programu.
Existujú dve dodatočné oblasti údajov, ktoré nie sú priamo adresovatelné:
5. rozšírená pamäť 43 typicky velkokapacitná pamäť, ktorá sa používa, aby obsahovala údajové objekty a energeticky závislé databázy;
6. energeticky nezávislá pamäť 44 je používaná, aby obsahovala údaje, ktoré sú strojom VM 20 zaručené, aby vydržali zavedenie modulu alebo vypnutie zdroja alebo znovu spustenie (vo vnútri obmedzenia hardveru terminálu) obsahujúce schránku modulov a energeticky nezávislé databázy. To môže byt realizované v RAM s podporou batérie, disku alebo inej stálej pamäte. Energeticky nezávislá pamäť 44 môže byť realizovaná ako časť permanentnej pamäte 18 na čítanie/zápis.
Na zväčšenie bezpečnosti údajov je k rozšírenej pamäti 43 a energeticky nezávislej pamäti 44 prístup len prostredníctvom symbolov oprávnení, ktoré poskytujú okná do vybraných údajov vo forme vyrovnávacích pamätí v priestore neinicializovaných údajov 42. Programátor taktiež môže len požiadať o záznam a nemôže poznať presné umiestnenie údajov, aby k nim nemohol pristúpiť. S výhodou sa tam nenachádza ani žiadny súbor alebo štruktúra stromu, ktorá by umožňovala programátorovi umiestniť osobné súbory alebo databázy.
Vo vnútri každého priestoru údajov 24 používaného modulom je pamäť pridelená relatívnym adresovaním, a len v čase prevádzky. Toto znamená, že adresa má význam len vo vnútri každého modulu, ak je zavedený. Absolútne adresovanie sa nepoužíva, pretože nie je možné, aby modul získal prístup k údajom iného modulu, s výnimkou mechanizmu prístupu bezpečnostného modulu opísaného dfale j .
Mechanizmus rámca umožňuje VM 20 uspokojiť požiadavky jazykov, akým je napríklad jazyk C, ktoré umožňujú definovať miestne premenné počas doby prevádzky. Rámec obsahuje parametre procesu, ktoré prešli v zásobníku údajov 27, a taktiež ako miestne premenné (dočasné uloženie údajov, ktoré budú automaticky uvoľnené, ak je uvoľnený rámec, normálne na konci uskutočnenia procesu). Ukazovateľ začiatku a konca rámca je automaticky udržiavaný strojom VM 20 vo vnútri rámca. Register ukazovateľa rámca 34 ukazuje logickú základňu rámca a ukazovateľ konca rámca 35 ukazuje logický koniec rámca v priestore údajov 24. Parametre môžu byť vyvolané z rámca použitím symbolov oprávnení pre prístup k rámcu.
VM 20 môže pódia voiby poskytovať dynamicky pridelenú spoločnú oblasť rozšíriteinej pamäte 4.5, ako jedinej rozšíriteinej vyrovnávacej pamäte riadenej strojom VM 20. ktorá sa objaví mimo priestor neinicializovaných údajov 42 programu. Programy môžu požadovať pridelenie špecifikovanej velkosti rozšíriteinej pamäte 45 a vracajú ukazovatei do základnej adresy pre pamäť 45. Následne môžu programy uvoinit pamäť 45 z danej adresy, napríklad pri ukončení programu, spôsobením toho, aby všetky pridelenia za touto adresou boli uvoinené.
Dáva sa prednosť tomu, aby moduly boli vyhotovené v jedinom vlákne údajov, ale vynález nie je na toto obmedzený. To znamená, že ak volá jeden modul druhý modul, ukončí druhý modul a všetky zdroje druhého modulu sú uvoinené pred tým, ako sa VM 20 vráti k prvému modulu a pokračuje v spracovaní. Obr. 6 uvádza schematické znázornenie logickej pamäte z pohiadu VM 20. Ako je schematicky uvedené na obr. 6, prvý modul (viavo) s inicializovanou pamäťou 41, neinicializovanou pamäťou 42 a pamäťou rámcov 46 a priestorom kódov symbolov oprávnení 26 bol zavedený do pamäte na čítanie/zápis počnúc adresou 1. Prvý modul taktiež volal a bol pridelený do časti 45 rozšíriteinej vyrovnávacej pamäte. Keď je druhý modul (vpravo) volaný prvým modulom (napríklad na prijatie funkcie fgh, ktorá je vo výlučnom zozname v záhlaví modulu 1 funkcií, ktoré môžu byť prijaté), je priestor údajov 24' obsahujúci inicializovanú pamäť 41' , neinicializovanú pamäť 42.' a pamäť rámcov 46' pridelený ako požadovaný začiatok v adrese 2. Symboly oprávnení modulu 2 sú prečítané priamo strojom VM 20 zo schránky modulov, čo je dovolená voľba v súlade s týmto vynálezom. Privolaní z modulu 2 je rozšíriteľná pamäť 45' pre druhý modul pridelená strojom VM 20 v pamäti väčšia ako v rozšíriteľnej pamäti 45 pre prvý modul. Keď je druhý modul dokončený, je uvoľnená celá pamäť nad adresou 4 (metóda pružných čiar). Všetky dočasne uložené údaje sú s výhodou pri uvoľnení vymazané. Pokiaľ je to nutné, mohlo by byť pri návrate k prvému modulu volané viac rozšíriteľnej pamäte 45. Ak je potom druhý modul volaný znovu, bude rozšíriteľnej pamäti 45* pridelená rozdielna zahajovacia adresa, ako keby bol modul volaný po prvýkrát.
V prípade všetkých symbolov oprávnení, okrem symbolov oprávnení EXTEND, CEXTEND a RELEASE riadiacich rozšíriteľnú pamäť a symbolov oprávnení THROW a QTHROW na výnimočné spracovanie, sa požaduje, aby nemali žiadny čistý účinok na ukazovateľ rozšíriteľnej pamäte. Ak symbol oprávnení pridelí rozšíriteľnú pamäť 45, musí ju taktiež uvoľniť, vrátane akéhokoľvek účinku na vyrovnanie buniek. Postupné pridelenia rozšíriteľnej pamäte 45 sú s výhodou susediace vo vnútri modulu, ale nemusia byt susediace medzi modulmi. Okrem toho, že medzimodulové volania používajú symboly oprávnení IMCALL alebo DOSOCKET, zachovávajú susedstvo. K automatickému uvoľneniu dynamicky pridelenej rozšíriteľnej pamäte 45 má dôjsť, keď je dokončené uskutočnenie modulu, obmedzením účinkov zlyhania programu pre čisté uvoľnenie pamäte. Ďalej, ak sa vyskytne výnimka THROW, môže byt pridelenie dynamicky pridelenej rozšíriteľnej pamäte 45 obnovené na jej podmienku v čase pôsobenia výnimky CATCH.
Premenné užívateľa sú premenné veľkosti bunky, v ktorých má VM 20 pre programy klientov informácie o súvislostiach. Pamät pre premenné užívateľa je vopred pridelená strojom VM 20. Môže byt poskytnutý obmedzený počet premenných, napríklad šestnásť premenných (označených ako 0 až 15). Realizácia VM 20, ktorá podporuje súbežne spracovanie úloh, môže poskytnúť jednu sadu premenných užívateľa pre každú úlohu.
VM 20 poskytuje jediný mechanizmus pre manipuláciu s výnimkou cez symboly oprávnení CATCH, THROW a QTHROW. Tieto symboly oprávnení sú odvodené od mechanizmu spracovania výnimky Lisp a vyskytujú sa v ANS Forth ako CATCH a THROW. Cieľom tohto mechanizmu je poskytnúť miestnu manipuláciu s výnimkami pri kontrole programu na rozličných úrovniach softvéru. Koncepcia spočíva v tom, že program prejde ukazovateľom uskutočnenia funkcie k symbolu oprávnenia CATCH, ktorý vykoná túto funkciu a vráti kód ukazujúci, aká výnimka, ak nejaká je, sa vyskytla počas jej vykonania. CATCH zaznamená informáciu závislú na realizácii, ktorá je dostatočná na obnovenie jej bežného stavu uskutočnenia, ak by sa mal objaviť symbol THROW vo funkcii prešlej na vykonanie CATCH. Toto obsahuje (ale nie je obmedzené na toto) hĺbky zásobníkov údajov a návratu, ukazovateľ rámca a .#* ·»· ·.
v niektorých prípadoch ukazovateľ rozšíriteľnej pamäte. Zbierka informácií predstavujúca stav uskutočnenia sa označuje ako rámec výnimiek. Rámce výnimiek sú obsiahnuté v zásobníku výnimiek. Program môže po CATCH preskúšať akýkoľvek kód výnimky, ktorý mohol byt vrátený a zvolí, aby bol manipulovaný miestne alebo ho vhodí (THROW) do vyššej úrovne na spracovanie. VM 20 poskytuje štandardnú hodnotu najvzdialenejšej úrovne, na ktorej budú výnimky chytené. Táto najvzdialenejšia úroveň bude aktivovaná, pokiaľ nebola vytvorená žiadna vnútorná úroveň CATCH. Manipulačný program výnimiek štandardných hodnôt zruší akékoľvek bežné terminálové transakcie a pokúsi sa znova zaviesť moduly TRS a znova vstúpiť do hlavnej slučky TRS. VM 20 vhodí ANS Forth výnimku -10 (delenie nulou), ak by sa taká podmienka vyskytla. VM 20 môže taktiež vhodiť iné všeobecné výnimky podporované ANS Forth, napríklad také, aké sú uvedené v pripojenom dodatku.
Na manipuláciu so zariadeniami a vstupnými/výstupnými (I/O) službami je každému zariadeniu, vrátane tých, ktorých prevádzka na nízkej úrovni je skrytá strojom VM 20 pod funkciami špecifickými pre zariadenie, pridelený typ zariadenia (použitého na kategorizáciu kódov výsledku) a zvláštne číslo zariadenia. Čísla zariadenia sú ľubovoľné, avšak odvolania na čísla zariadenia - 1 až 5 (4 bity) - môžu byť vykonané len jediným symbolom oprávnenia, a tak sú tieto čísla pridelené najbežnejším zariadeniam ako sú klávesnice, čítačky ICC, čítačky kariet s magnetickým pásikom, displeje, tlačiarne, zariadenie pre riadenie napájania alebo predajné automaty. Všeobecné I/O vybavenia poskytujú funkcie, ktoré
·. A ·» preberajú číslo zariadenia ako vstupný parameter.
Terminál 2 v súlade s týmto vynálezom obsahuje aspoň tri väčšie energeticky nezávislé databázy: transakčné zaprotokolovanie špecifické podía aplikácie, databázu správ v jednom alebo viacerých jazykoch a databázu modulov. VM 20 chráni databázy tak, ako je to možné, pretože môžu obsahovať súkromné informácie. Prístup do databáz je obmedzený. VM 20 poskytuje mechanizmus na manipuláciu s databázami (VM 20 je server), ktorý skrýva detaily realizácie z aplikačného softvéru (aplikácie ako klient). Nie je dovolený žiadny priamy prístup do databázy z modulu, ktorý je v prevádzke na VM 20. Služby realizujúce nasledujúce vlastnosti, ktoré budú opísané vyššie s odvolaním sa na obr. 7:
* V akejkoívek danej dobe má klient, t. z. program prevádzkovaný v module, prístup do jednej bežne vybranej databázy (DBCURRENT) a k jednému bežne vybranému číslu záznamu (DBRECNUM), ktoré je zdieľané cez všetky definované databázy.
* Informácie o každej databáze sú prenesené medzi klientom a serverom prostredníctvom bloku 51 parametrov databázy (DPB Database Parameter Block), do ktorého môže server na čítanie a zápis vstúpiť. Klient vlastní DPB 51 v tom zmysle, že je to priestor údajov klienta 24, klientovi ale nie je dovolené sa k nemu dostať priamo. Namiesto toho môžu byť k prístupu k údajom použité len symboly oprávnení pre služby databázy. DPB 51 má štandardnú štruktúru obsahujúcu pole aspoň na spojenie DPB, ukazovateľ databázy, označenie typu databázy a veľkosti záznamu a nasledujúce dostupné číslo záznamu. Všetky informácie na špecifikáciu databázy musia byt vopred ktoré existujú v musí ukazovateľ pôvodnú adresu nastavené v DPB 51. Softvér klienta nesmie urobiť žiadny nasledujúci priamy prístup do DPB 51 a nesmie urobiť predpoklady o hodnotách priamo obsiahnutých v DPB 51, potom čo modul definujúci DPB 51 bol zavedený na uskutočnenie. Bloky parametrov databázy 51 prejdú do zavádzacieho/interpretačného. programu symbolov oprávnení vo forme ukazovateľa (spojenie DPB) k pripojenému zoznamu v sekcii inicializovaných údajov modulu. Toto pole musí byť vopred nastavené na adresu v inicializovaných údajoch ďalšieho DPB 52 v zozname alebo na nulu, ak tento DPB 51 je posledný alebo v zozname je len DPB 51. Pre kompilované databázy, priestore inicializovaných údajov klienta, databázy (DB) byt vopred nastavený na v inicializovaných údajoch. Pre databázy, ktorých pamäť je riadená serverom, musí byt pole vopred nastavené na nulu. Typ databázy (DB) poskytuje detaily databázy v kódovanej forme. Existujú aspoň tri druhy databáz:
Energeticky závislé databázy, ktorých obsah nepotrebuje byt zachovaný medzi zavádzaním modulov alebo pri vypnutí zdroja terminála 1, na ktorom sú pevne umiestnené.
Energeticky nezávislé databázy, ktorých obsah musí byt zachovaný medzi zavádzaním modulov alebo pri vypnutí zdroja. Ak modul definujúci energeticky nezávislú pamäť je nahradený, je databáza zničená, ak je vybratý starý modul. Kompilované databázy sú konštruované kompilačným programom 2i symbolov oprávnení v susednej oblasti inicializovaných údajov ako záznamy pevnej dĺžky. Záznamy nesmú byt pridané alebovymazané z kompilovanej databázy a databáza nesmie byt inicializovaná v dobe prevádzky, ale inak bude podporovaná plná kapacita na čítanie/zápis.
Ďalšie dostupné pole čísla záznamu bude nastavené na číslo jedna plus posledné pridelené číslo záznamu v databáze pre kompilované databázy. Pre akúkoľvek inú databázu je toto pole nastavené na nulu.
* Adresa okna do bežného záznamu (vyrovnávacia pamäť záznamu 53) je poskytnutá klientovi serverom pre každú databázu klienta. Pre určité operácie databázy môže klient prepustiť do serveru adresy vyrovnávacích pamätí reťazcov a kľúčov 52. Pre každú databázu, ktorá bola serveru známa pomocou modulu klienta, poskytuje stroj VM 20 vyrovnávaciu pamäť záznamov 53. Táto vyrovnávacia pamäť záznamov 53 začína pri zarovnanej adrese. Obsah vyrovnávacej pamäte záznamov 53 pripojenej k určitej databáze po určitom výbere záznamu ostáva dostupný, pokiaľ klient nevyberie z databázy iný záznam. Okrem týchto vyrovnávacích pamätí záznamov 53, kompilovaných databáz a parametrov premiestnených do zásobníka údajov 27 pomocou špecifických funkcií databázy nie je medzi klientom a serverom zdieľaný žiadny iný priestor údajov 54.. Programy nesmú uvažovať, že záznamy v databáze sú v susednej pamäti.
* Databáza je konkretizovaná zavádzacím procesom pre modul, v ktorom je definovaný jej DPB. Energeticky závislé databázy inštalované aplikačnými modulmi nie sú serverom automaticky a transparentne konkretizované, keď je aplikácia ukončená trvalé uloženými službami terminálu (TRS), keď sú uvoľnené všetky uloženia údajov pridelených serverom do týchto databáz.
* Server vymaže energeticky nezávislé databázy, ak je nahradený modul, ktorý ich definoval. Ak je modul zavedený vtedy, keď je nahradený, napríklad v prípade modulu TRS, musí server vymazať energeticky nezávislé databázy modulu, keď je modul uvoľnený.
Činnosť vykonaná strojom VM .20, keď je databáza konkretizovaná počas zavedenia modulu, závisí od hodnoty typu DB a ukazovatele DB v DPB 51 a od toho, či je databáza energeticky závislá alebo nezávislá. Ak je databáza energeticky nezávislého typu, použie sa adresa DPB v spojení s modulom identifikácie (modul ID) na identifikáciu akýchkoľvek predchádzajúcich údajov, ktoré patria do databázy. Ak predchádzajúce údaje existujú, je ďalšie dostupné číslo záznamu obnovené v jeho predchádzajúcej hodnote. Inak server (VM 20) konkretizuje nový energeticky nezávislý ukladací priestor a nastaví nasledujúce dostupné číslo záznamu na nulu. V obidvoch prípadoch je vyrovnávacia pamäť 53 poskytnutá pre bežný záznam v databáze. Ak je ukazovateľ DB nulový a typ DB je nekompilovaného typu, potom server konkretizuje alebo spraví dostupnú pamäť požadovanú pre databázu, inicializuje pamäť na všetky nuly, poskytne vyrovnávaciu pamäť 53 pre bežný záznam databázy a nastaví ďalšie dostupné číslo záznamu (DBAVAIL) na nulu. Ak ukazovateľ DB je nenulový a typ DB je kompilovaného typu, potom server nastaví vnútorné štruktúry tak, aby použili štruktúru údajov klienta, ktorých pôvodná adresa prešla ukazovateľom DB a nastaví ďalšie dostupné číslo záznamu (DBAVAIL) na hodnotu, ktorá prešla v ďalšom dostupnom poli čísiel záznamov DPB 51. Server udržuje skutočné záznamy databázy 55, vzťah medzi miestom adresy a záznamom v kontrolnom bloku databázy 56 a záznam k akej databáze sa modul bežne dostane v informačnom bloku súvislostí 57.
Proces manipulácie bezpečných modulov v súlade s týmto vynálezom bude teraz opísaný s odvolaním sa na obr. 6. Na obr. 6 je uvedená oblasť pamäte na logické čítanie/zápis. Oblasť pamäte, ku ktorej sa môže dostať lavý modul (prvý modul), má hranicu vyznačenú bodkovanou čiarou. Oblasť pamäte, ku ktorej sa nemôže dostať prvý modul, má hranicu vyznačenú plnou čiarou. Oblasť pamäte, ku ktorej sa môže dostať viac ako jeden modul, je vyznačená čiarkovanou čiarou. VM 20 chráni databázy DB1 a DB2 a schránku databázy a moduly v schránke modulov tak, že nie sú prístupné žiadnym modulom. Po zavedení prvého modulu sa k neinicializovaným údajom v pamäti 42 je možné dostať prvým modulom, ale VM 20 nedovolí, aby sa k akejkoívek oblasti okrem tohto modulu dalo dostať priamo modulom. Prístup k registrom, zásobníkom alebo pamäti rámcov 46 môže byt uskutočnený len prostredníctvom zodpovedajúcich symbolov oprávnení. K databázam je možné sa dostať len cez proces okien, ktorý bol spomenutý vyššie. Obzvlášť sa nemôže prvý modul dostať k svojej vlastnej programovej pamäti 26, kde sú umiestnené symboly oprávnení, ani sa dostať k akémukoívek inému modulu. Toto je dôležité v rámci ochrany proti vírusom. V súlade s týmto vynálezom je pamäť pridelená prvému modulu definovaná a chránená. Je definovaná pridelením pamäte v súlade s údajom o velkosti pamäte, ktorá má byt pridelená, nachádzajúcim sa vo vnútri modulu. Je chránená, pretože žiadny iný modul sa nemôže dostať k pridelenému priestoru a žiadny iný zavádzači mechanizmus nie je poskytnutý pre žiadny iný program len pre moduly. Preferovaný spôsob prevádzky modulov je jednovláknový,· akákoľvek pamäť pridelená v rozširiteľnej vyrovnávacej pamäti 45 je uvoľnená pred tým, ako sa akýkoľvek iný modul môže stať aktívnym. Uvoľnená pamäť je s výhodou vymazaná.
Výlučný zoznam prijatia prvého modulu je v jeho záhlaví, ku ktorému sa nemôže prvý modul priamo dostať. VM 20 číta záhlavie a volá druhý modul, ktorý je spomenutý v zozname prijatia (funkcia fgh z druhého modulu). VM 20 zavedie druhý modul a pridelí pamäť pre neinicializované údaje 42 *, pamäť rámcov 46.' a pre inicializované údaje 41'. Prvý modul sa nemôže dostať ku žiadnej časti druhého modulu a naopak. V záhlaví druhého modulu bola funkcia fgh umiestnená vo výlučnom zozname funkcii, ktoré môžu byt uskutočnené. Toto robí funkciu fgh dostupnou pre iné moduly. VM 20 hľadá funkciu fgh v priestore pamäte 26 * kódov druhého modulu a uskutočni sled symbolov oprávnení so zodpovedajúcimi vloženými údajmi (predstavovanými sledom TITTITT). V tomto príklade táto časť kódu vyžaduje prístup do databázy DB2. Databáza v súlade s týmto vynálezom je vlastnená modulom, t. z. do databázy sa dá dostať len modulom, ktorý ju konkretizoval pri prvom zavedení modulu. Symboly oprávnení pre prístup do databázy prečítanej z sú uskutočnené strojom VM 20, ktorý pri vyrovnávaciu pamäť 53* v priestore údajov 42* druhého modulu priestoru kódov 26 zavedení pridelí neinicializovaných vyžaduje prístup do tretieho záznamu DB2.
Funkcia fgh VM 20 potom prenesie referenčný záznam do okna 53 * v druhom module, z ktorého je prenesený do neinicializovaného priestoru 42 prvého modulu. Použitím rovnakého procesu okna databázy môže prvý modul získať zo svojej vlastnej databázy DB1 taktiež záznam, ktorý je prenesený do vyrovnávacej pamäte 53 v priestore neinicializovaných údajov 42. Prvý modul môže potom byť prevádzkovaný na výsledkoch dvoch procesov.
VM 20 sa s výhodou zaoberá údajovými objektami, prostriedkami ‘'základných kódovacích pravidiel (BER - Basic Encoding Rules) alebo prostriedkami príznaku, dĺžky, hodnoty (BER - TLV, pre túto aplikáciu skrátené na TLV Tag, Lengh, Value), ako je to opísané v ISO/IEC 8825 (1990). Údajové objekty TLV ša skladajú z dvoch alebo troch nasledujúcich polí: pole príznakov špecifikujúce jeho triedu, typ a počet? pole dĺžok špecifikujúce veíkost údajov, keď dĺžka nie je nulová; pole hodnôt obsahujúce údaje. Pretože odozvy karty ICC sú vo všeobecnosti čo do veíkosti obmedzené povedzme na 255 bytov alebo menej, je maximálna veíkost objektu TLV v súlade s týmto vynálezom. Pole príznakov je s výhodou jednobytové alebo dvojbytové, pole dĺžok je s výhodou jednobytové alebo dvojbytové, a tak maximálna veíkosť poía hodnôt je s výhodou 252 bytov (pole tejto dĺžky vyžaduje byty dvoch dĺžok, ako bude vysvetlené nižšie). Prvý byt poía príznakov je rozlomený do troch polí. Bity 7 a 8 špecifikujú triedu objektu. Bit 6 určuje, či pole hodnôt obsahuje primitívne údaje alebo či je to konštruovaný objekt obsahujúci iné polia kódované TLV. Konštruované objekty sa taktiež nazývajú šablóny. Spôsobujú, aby ich polia hodnôt boli oddelené pre sekvencie TLV, ak dôjde k stretu s nimi. Bity 1 až 5 špecifikujú počet objektov alebo, ak sú všetky tieto bity sadou, ukazujú, že nasledujú dodatočné príznakové byty. Dodatočné príznakové byty majú svoju osembitovú sadu, pokial nasleduje ešte iný byte. Všetky bity až do dvoch bytov sa používajú na určenie mena príznaku. Podlá dĺžok obsahuje jeden až tri následné byty, typicky dva. Ak bit 8 prvého bytu je nula, potom bity až 7 udávajú velkosť póla hodnôt. Ak bit 8 prvého bytu je
1, potom bity 1 až 7 udávajú počet bytov, ktoré nasledujú.
Nasledujúce byty, ak sú nejaké, ukazujú velkosť póla hodnôt a vyskytujú sa s najvýznamnejším bytom prvé. Pole hodnôt môže obsahovať primitívne údaje alebo môže byť konštruovaným polom s dodatočnými kódovanými sekvenciami TLV. Ak bit 6 prvého bytu je v poli príznakov nastavený, potom pole hodnôt obsahuje dodatočné sekvencie TLV. Primitívne objekty môžu byt kódované v niekolkých rôznych formátoch: binárne kódované desiatkové polbyty s počiatočnými nulami alebo koncovými polbytmi so sadou všetkých bitov, binárne čísla alebo sekvencie bytov, znakov alebo bytov ASCII alebo každým objektom sa manipuluje rozdielne podlá toho, ako je použitý. ICC 5 môže taktiež použiť zoznam údajových objektov (DOL - Data Object List) na vyžiadanie hodnôt špecifických mien príznakov. Karta 5 vyšle DOL obsahujúci zoznam póla príznakov a póla dĺžok a terminál 1 vráti zodpovedajúce pole hodnôt bez oddelovača.
sekvencie alfanumerických nedefinované formáty. S
Každý TLV, ktorý má bzť použitý, musí byt definovaný terminálom alebo aplikačnými programami, aby vytvoril jeho údajový typ a meno. Pretože program terminálu a aplikačné programy sú vyvinuté oddelene, VM 20 v súlade s týmto vyžaduje, každý TLV vynálezom používa spojovaciu štruktúru (vyvážený binárny strom), aby umožnil rýchle pridanie alebo odstránenie mien príznakov z globálneho zoznamu mien príznakov. Toto aby boli kompilované nasledujúce štruktúry pre v priestore inicializovaných údajov 41 v module definujúcom TLV:
Link Bunka s lávou (dva byty vysokého poradia) alebo pravou (dva byty nízkeho poradia) zložkou poskytujúcou spojenie s prvkami stromu.
Link left 16 bitový relatívny ukazovateí so znamienkom od tohto parametra prístupu TLV k parametru prístupu záznamu TLV, ktorého príznak je numericky menší než tento príznak záznamu. Hodnota nula určuje, že tento TLV nie je pripojený k TLV s príznakom numericky menším než je tento TLV.
Link right 16 bitový relatívny ukazovateí so znamienkom od tohto parametra prístupu TLV k parametru prístupu záznamu TLV, ktorého príznak je numericky väčší než tento príznak záznamu. Hodnota nula určuje, že tento TLV nie je pripojený k TLV s príznakom numericky väčším než je tento TLV.
Tag Dvobytový reťazec, ktorého veíká koncová numerická hodnota je príznak TLV.
Type Jeden byt, ktorý špecifikuje kontrolné informácie. Reserved Byte, ktorý musí byt kompilujúcim programom 71 inicializovaný na nulu.
Data Bunka, ktorá má informácie špecifické pre VM obsahujúce prístup k pólu dĺžok a k poíu hodnôt tohto TLV. Toto pole musí byť kompilujúcim programom 71 inicializované na nulu. Systém musí taktiež udržať byte statusu pre každý TLV. Toto môže byt rezervovaný byte v štruktúre, ktorá bola uvedená vyššie. Bit nízkeho rádu tohto bytu má byt nastavený, pokiaí TLV bola pridelená hodnota ako výsledok toho, že je v sekvencií, ktorá bola spracovaná symbolmi oprávnení TLVPARSE alebo TLVSTORE. Účelom udržania prideleného statusu je identifikovať hodnoty TLV, ktoré obsahujú platné údaje (ktoré môžu byť nulové) a odlíšiť ich od hodnôt TLV, ktoré neboli nikdy nastavené, a preto sú neplatné. Jadro VM riadi globálny zoznam príznakov TLV udržovaním zoznamu ukazovateľov a priestoru inicializovaných údajov 41 obsahujúceho ich skutočné definície, ako je to opísané vyššie. Keď je modul zavedený, sú jeho definície TLV pridané do tohto zoznamu ako časť jeho inicializácie; keď je vybraný, majú byť definície TLV z tohto zoznamu automaticky odstránené strojom VM 20. Môže byť vhodená výnimka, ak modul obsahuje definíciu TLV, ktorá už existuje. Adresa poľa LINK opísaná vyššie sa vráti k parametru prístupu pre referencie TLV. Programátor by sa nemal dostať do týchto polí priamo, ani by nemal robiť žiadny predpoklad o ich obsahu, potom čo VM 20 konkretizoval definície TLV.
Referencie k definíciám TLV sú v zdrojovom kóde kompilované buď ako priame referencie k definičnej štruktúre definovanej vyššie, alebo ako numerické hodnoty príznakov. Vo vnútri určitých binárnych definícií TLV sú jednotlivé bity alebo skupiny bitov definované, aby mali určité významy. Označujú sa ako bity TLV. Referencie na bity TLV môžu byt kompilované ukázaním literálu na bit vo vnútri poľa hodnôt TLV. Bit 0 je najmenej významný bit prvého bytu, bit 7 je najvýznamnejší bit rovnakého bytu, bit 8 je najmenej významný bit druhého bytu atď.
Údaje pridelené definíciou TLV sú podrobené aplikácii prostredníctvom 252 bytovej oblasti pracovnej zápisníkovej pamäte udržiavanej strojom VM 20 vo forme okna databázy (vičf obr. 7). Aplikačnému programu je umožnené zmeniť obsahy tejto oblasti pracovnej zápisníkovej pamäte. Pokiaľ majú byť zmeny uchované, musí adresa a dĺžka vo vnútri oblasti pracovnej zápisníkovej pamäte prejsť späť do symbola oprávnení TLVSTORE. Adresa a obsah oblasti pracovnej zápisníkovej pamäte sa môže stať neplatnou, pokial je postupne spracovaný akýkolvek symbol oprávnení TLV.
Ako čast bezpečnostného riadenia kariet 5 zavedených do čítačky 7 sa uskutoční kontrola kariet 5, ktoré sú známe ako stratené alebo neplatné. Zoznam takýchto kariet 5. je známy ako zoznam čiernych alebo horúcich kariet. Riadenie zoznamu čiernych alebo horúcich kariet je poskytnutý sadou jednoúčelových funkcií, ktoré sú špecifické pre riadenie velkého zoznamu horúcich kariet. Typický zoznam môže obsahovať 10000 primárnych čísel kont (PAN - primary account number) s až 10 bytmi pre každé číslo alebo 20 binárne kódovaných desiatkových (BCD - binary coded decimal) číslic. Vstupy PAN sú uložené v komprimovanom numerickom (cn compressed numeric) formáte, správne vyplnenými hexadecimálnymi FH. Pretože PAN je maximálne devätnásť BCD číslic, bude vstup do zoznamu vždy vyplnený aspoň jedným FH. Pri hladaní zoznamu horúcich kariet sa uvažuje s FH v zozname ako divokými kartami alebo číslicou bez záujmu, ale akékolvek FH v PAN použité ako vstup nie sú divoké karty. Divoké karty sa môžu objaviť len na pravom konci vstupu. Pan sa má považovať za nájdené v zozname horúcich kariet, ak existuje vstup zoznamu, ktorý je identický s prvým FH vo vstupe.
Iná časť bezpečnostného riadenia je opatrenie kódovacích služieb pre kódované a nekódované údaje. Môže sa použiť akákolvek vhodná kódovacia metóda. Pre VM 20 sa zvlášť poskytujú tri kódovacie algoritmy: násobenie modulom a povýšenie na modulus, ktoré sa používajú v algoritme RSA a bezpečnostný algoritmus SHA-1 prepočtu klúča, vynález ale nie je obmedzený na tieto spôsoby. Násobenie modulom zahŕňa násobenie dvoch hodnôt x a y bez znamienka, kde súčin je redukovaný pri použití modulu z. Vzorec je:
výsledok = mod(x*y, z)
Všetky vstupné hodnoty (x, y, z) majú rovnakú dĺžku. Predstavuje ich reťazec bytov a môžu byt akýmkolvek. násobkom 8 bitov až do 1024 bitov vrátane. Hodnoty musia byť vo velkom, bitovo končiacom byte.
Bezpečnostný algoritmus značky čísla (SHA-1 - Secure Hash Algorithm) je štandardizovaný ako FIPS 180-1. SHA-1 odoberá ako vstupné správy íubovolné dĺžky a vytvára 20 bytové hodnoty značiek čísel. Povyšovanie na modulus povyšuje hodnotu x bez znamienka na mocninu danú exponentom y bez znamienka, kde výsledok sa redukuje použitím modulu z. Vzorec je:
výsledok = mod (χ¥, z)
Vstupná hodnota x a modulus z predstavujú bytové reťazce a môžu byť akýmkoľvek násobkom 8 bitov až do 1024 bitov vrátane. Hodnoty musia byť vo veľkom bitovo končiacom poradí bytu.
Služby a preto softvér, a taktiež I/O zariadenie, sa môžu časom meniť v závislosti od požiadaviek trhu. Ak sa požadujú väčšie zmeny, aktualizácia softvéru v terminále 1 sa môže uskutočniť ručne alebo diaľkovo cez telekomunikačnú sieť. Avšak pre služby závislé na užívateľovi je výhodnejšie mať dynamický, ale bezpečný spôsob na uskutočnenie menších alebo užívateľom špecifkovaných zlepšení služieb poskytovaných terminálom i. Softverový mechanizmus zástrčka a zásuvka v súlade s týmto vynálezom poskytuje pružnú a bezpečnú cestu priamej konfigurácie rôznych modulov, ktoré vytvárajú terminálové programy a aplikácie. Ako je schematicky uvedené na obr. 8, môžu byt v transakčnom systéme v súlade s týmto vynálezom definované procedúry (označené ako zásuvky 60), ktoré môžu byt vložené programátorom aplikácií (a taktiež bezpečne, pretože sú pod kontrolou nadobúdateľa a pod dozorom platobného systému) do aplikácií 61, 62, aby pôsobili ako držitelia miesta pre pridanie dodatočného rozširovacieho kódu (označeného ako zástrčky 66) počas spracovania transakcie. Všetky dodatočné kódy, ktoré majú byt zasunuté do zásuvky 60, musia byť napísané formou sady symbolov oprávnení stroja VM 20. Zásuvky 60 sú s výhodou umiestnené v rozličných vhodných bodoch v existujúcich aplikáciách 61, 62 terminálu alebo aj v samotnom programe terminálu. Používajú sa, aby odkazovali na funkcie knižnice a môžu sa taktiež vyskytnúť vo vnútri funkcie knižnice, pokiaí platobný systém predvída potrebu zmeniť cestu, v ktorej pracuje funkcia knižnice. Zásuvky 60 sú inicializované strojom VM 20 na štandardné správanie. Ak sa programom terminálu neuskutoční žiadna ďalšia činnosť, bude štandardné správanie zásuvky 60 také, aby neurobilo nič, keď sú vykonávané (t. z. žiadna prevádzka).
Zástrčky 66 obsahujú uskutočnitelný kód napísaný v symboloch oprávnení podporovaný terminálom 1., ktorý môže byt vložený v bodoch definovaných zásuvkami 60, aby rozšíril štandardnú logiku terminálu. Zástrčky 66 môžu v terminále 1 už existovať v knižnici zástrčiek 63. aby boli vyvolané z ICC 5, napríklad identifikačnými programami 67 zásuvky/ zástrčky v ICC 5 a logikou v terminále 1. Identifikačné programy 67 zásuvky/zástrčky obsahujú odvolanie ako na zástrčku, tak na zásuvku pre zasunutie, čím zástrčka nie je na ICC 5, ale je v knižnici 63. Zástrčky 66 môžu taktiež pochádzať zo vstupného zariadenia 65 (akým je ICC 5 alebo základného systému pripojeného na terminál 1), ale len ak existuje súhlas všetkých členov platobného systému, napríklad vydavatela, nadobúdatela alebo obchodníka.
Pri ukončení transakcie sú zásuvky 60 obnovené na ich pôvodné aplikačné štandardné správanie. V súlade s týmto vynálezom sa preferuje, aby ICC 5 neobsahovala celé aplikácie, ale len zástrčky 66, ktoré rozširujú existujúce aplikácie terminálu, pretože toto vyžaduje menej pamäte.
Zásuvky 60 majú ukazovatele uskutočnenia, známe taktiež ako ukazovatele procedúry, ktoré umožňujú vytvorenie procedúry, ktorej chovanie môže byt zmenené v dobe prevádzky. Na zásuvky 60 sa môže pozerať (a môžu byť realizované) ako na pole procedúr, ku ktorým sa pristupuje prostredníctvom symbola oprávnení DOSOCKET, ktorý preberá INDOSOCKET, ktorý péberá číslo zásuvky zo zásobníka údajov 27.
Zásuvky 60 umožňujú zmeniť konfiguráciu terminálového programu alebo aplikácie na poskytnutie zmien alebo rozšírenie v toku spracovania transakcií. Alternatívne môžu zásuvky v ICC 5 umožniť zlepšenie ICC 5 z terminálu 1. Zásuvky 60 poskytujú rozhranie medzi modulmi softvéru a procedúrami, ktoré môžu prichádzať z niekoľkých rôznych zdrojov (nadobúdateľ, vydavateľ atď.). Pretože nadobúdateľ a vydávate! majú zmluvný vzťah, môžu súhlasiť s použitím špecifických zásuviek 60 poskytnutých v terminále programom nadobúdateľa tak, že vydávate! môže rozšíriť správanie programu, napríklad aby poskytol funkciu loajality (letecké míle, kupóny atď.).
Modul môže špecifikovať, pokiaľ je zavedený na vykonanie, aby zásuvky 60 boli automaticky rekonfigurované alebo program klienta môže programovo priradiť novú procedúru k zásuvke v dobe prevádzky. Poskytnuté bezpečnostné podmienky dovoľujú to, že zásuvkám 60 v aplikácii môže byť pridelené štandardné správanie, a potom sa môžu do nich nasledujúcimi modulmi znovu zasunúť nové procedúry, aby boli poskytnuté špecializované správania. K zabráneniu neurčitých situácií sa dáva prednosť tomu, aby všetky procedúry zamerané na použitie určitej zásuvky 60 nemali žiadny účinok na zásobník údajov (okrem zásuvky nula, ako je vysvetlené ďalej). Toto zaručuje spojitosť programu bez ohladu na to, ktorá zameraná verzia procedúry sa uskutočňuje. Štandardná činnosť všetkých zásuviek 60 pred modifikáciou má byť aspoň taká, že sú bez prevádzky.
Nadobúdate! môže umožniť rozšírenie transakcie kódom na ICC 5 ako časti CSS uvedených vyššie. Ak je tomu tak, môžu byť realizované zásuvkami 60. Knižnica alebo uskutočnitelný modul môže obsahovať definíciu nových zásuviek 60 pre neskoršie zástrčky 66 prichádzajúce z ICC 5. V tomto prípade by modul definoval zásuvku 60, a potom použil symbol oprávnenia SETSOCKET, aby k nej pridal štandardné správanie (často nulové správanie). Pokiaľ’ to kontrola prístupu dovolí, mohla by ICC 5 neskôr presunúť zástrčku 66 obsahujúcu symboly oprávnenia, ktoré definujú nové správanie, a potom použiť symbol oprávnenie SETSOCKET na jej uloženie v tejto istej zásuvke 60, vyradením štandardného správania.
Modifikácia správania je vhodná a pružná, ale môže poskytnúť príležitosť klamúcim osobám modifikovať správanie v ich prospech. Môže sa požadovať zvláštna starostlivosť pre zástrčky 66 od ICC 5, pokial môžu modifikovať správanie zásuvky alebo môžu byť umiestnené do toku programu skôr pred úspešným overením karty. Pre bezpečnosť môže softvér terminálu v súlade s týmto vynálezom špecifikovať procedúru kontroly zásuvky, ktorá kontroluje, či každá individuálna zásuvka 60 môže byť modifikovaná alebo nie. Tak napríklad uskutočnenie kódu odstráneného z ICC 5 môže byť prísne kontrolované nadobúdateľom tak, že do žiadnej zásuvky nemôže dôjsť k zasunutiu z ICC 5, pokiaľ nie sú na karte uskutočnené všetky štandardné programy oprávnení, napríklad preskúšanie elektronického podpisu.
V súlade s týmto vynálezom bezpečnosť zásuvky obsahuje špecifikáciu procedúry kontroly zásuvky tak, aby bola použitá pri nasledujúcich pokusoch zasunutia do zásuvky 60 (symbol oprávnenia SETPLUGCONTROL). Procedúra PLUGCONTROL musí byt napísaná tak, aby pre dané číslo zásuvky vrátila, či tá zásuvka 60 môže byť teraz modifikovaná. Keď je zoznam modulov zásuviek postupne spracovaný počas zavedenia modulu alebo keď je zásuvka 60 programovo zasunutá, VM 20 najskôr uskutoční užívateľom napísanú procedúru PLUGCONTROL, aby sa určilo, či môže skutočne dôjsť k zasunutiu do zásuvky 60 a zachová existujúce správanie zásuvky 60, pokiaľ k tomu nemôže dôjsť.
Modul, ktorý si praje obmedziť prístup k akýmkoľvek zásuvkám 60 pred zavedením iného modulu na uskutočnenie, môže uskutočniť procedúru definovanú symbolom oprávnenia SETPLUGCONTROL na zasunovateľnej zásuvke (zásuvka nula) zvolenou funkciou PLUGCONTROL ako parametrom pred zavedením tohto modulu. Ak ďalší modul a akékoľvek iné moduly zavedené na ich uskutočnenie majú spracované svoje záznamy zásuviek, zásuvky 60, do ktorých je odopretý prístup užívateľom definovanou procedúrou PLUGCONTROL, majú zachovať ich existujúce správanie. S touto podmienkou nemá byť uvažované ako s chybou. Kód, ktorý si praje obmedziť prístup k akýmkoľvek zásuvkám 60 pred uskutočnením ďalšieho kódu, môže uskutočniť procedúru definovanú symbolom oprávnenia SETPLUGCONTROL so zvolenou procedúrou PLUGCONTROL ako parametrom vo vhodnom bode toku programu. Programovacia požiadavka na zasunutie do zásuvky 60 môže určiť, či bola požiadavka prijatá alebo odmietnutá volaním do SETSOCKET. Akákoľvek zásuvka 60, ktorej správanie bolo modifikované buď zavádzacím procesom modulu alebo dynamicky programovaným príkazom, je obnovená na správanie, ktoré mala, keď posledný uskutočniteľný modul bol zavedený na vykonanie ako časť ukončovacej procedúry zabalenej vo vnútri procedúry definovanej modulom uskutočnenia symbola oprávnenia (EXECUTEMODULE).
Ako príklad funkcie špecifickej pre nadobúdateľa uvažujeme, že základný transakčný kód obsahuje vetu 27 SOCKET LOYALTY, ktorá definuje LOYALTY a robí ju dostupnou pre neskoršie vykonanie. Kód programu transakcie nadobúdateľa ďalej definuje kód, ktorý nastaví označenie dovolenia pre túto zásuvku len, ak je vydavateľ rovnaký ako nadobúdateľ a veľkosť transakcie prekračuje určité minimum. Počas transakcie existuje príkaz, ktorý číta ľubovoľný kód z ICC 5. časť kódu ICC by mohla definovať štandardný program REWARD, ktorý aktualizuje úžívateľove časté letové míle a potom skúša uskutočniť vetu PLUG REWARD INTO LOYALTY. Táto veta spája uskutočnenie REWARD s uskutočnením LOYALTY. Pokiaľ označenie dovolenia zásuvky LOYALTY je nastavené podľa vyššie uvedenej logiky, zaujme miesto SETSOCKED; inak LOYALTY zachová jej štandardné správanie pravdepodobne bez prevádzky. Potom, keď kód aplikácie uskutoční svoju funkciu LOYALTY neskôr, umožní REWARD definovanú ICC len podľa pravidiel definovaných nadobúdateľom.
VM 20 typicky prevádzkovaný na terminále 1 môže mat obmedzený počet zásuviek 60, napríklad 64 zásuviek číslovaných od 0 po 63. V najzákladnejšej forme by skelet programu terminálu mohol byt zložený takmer úplne zo zásuviek 60 a toku základného programu od zásuvky k zásuvke. Do zásuviek 60 by potom boli zasunuté procedúry spracovania transakcií inými modulmi zavedenými počas výberu aplikácie buď z terminálu 1 alebo z ICC 5. Zásuvky 60 vyskytujúce sa v programe skeletu pred voľbou aplikácie majú pridelené pomocou TRS nulové štandardné správanie. Pokial dôjde k zasunutiu procedúry do danej zásuvky 60 viac ako jedným modulom nahradia jednoducho posledné operácie akékoľvek predchádzajúce operácie.
Zavedenie, manipulácia a uskutočnenie modulov
Kód napísaný tak, aby bol prevádzkovaný na VM 20 (vrátane trvalé uložených služieb terminálu, kompilovaných ako moduly symbolov oprávnenia) môže uvažovať, že po zapnutí zdroja softvéru jadra špecifikovaného terminálom podporujúci VM 20, uskutočnil akúkoľvek potrebnú inicializáciu zapnutia zdroja špecifikovaného terminálom a začal uskutočnenie hlavnej slučky spracovania trvalo uložených služieb terminálu (TRS) prostredníctvom procesu zavedenia modulu, ktorý je opísaný nižšie. Pokial sa vystúpi z hlavnej slučky spracovania TRS, vráti sa kontrola do vrstvy softvéru špecifickej pre terminál zodpovednej za obnovenie TRS a nový vstup do hlavnej slučky. Všetky zdroje VM sú uvolnené kedykolvek existuje TRS, okrem údajov v energeticky nezávislých databázach. K uvolneniu zdrojov dôjde, keď je terminál odopnutý od zdroja, uskutoční sa výstup TRS alebo TRS sa znovu spustí operačným systémom terminálu (pokial existuje). Ak bola získaná aktualizovaná verzia akéhokolvek modulu TRS od doby, kedy bol posledný vstup do hlavnej slučky TRS, sú všetky zdroje TRS, vrátane údajov v jeho energeticky nezávislých databázach uvolnené, pokial existujú.
Prevádzka softvéru na terminále 1 alebo ICC 5 je riadená strojom VM 20 formou jedného alebo viacerých modulov, kde každý modul môže obsahovať akúkol’vek z nasledujúcich kategórií informácií:
* Kód v symbole oprávnenia * Inicializované údaje * Pridelenie neinicializovaných údajov * Definície databáz * Definície TLV * Zoznam zásuviek * Vzájomné závislosti modulov
Každý modul je s výhodou dodaný do terminálu 1 vo ·»-.. ŕí > · formáte dodania modulu (MDF - Module Delivery Formát). VM 20 udržuje energeticky nezávislú schránku v energeticky nezávislej pamäti 18 na čítanie/zápis modulov, ktoré boli dodané a inštalované v terminále 1. Každý modul má byť identifikovaný v zásobníku identifikačným programom modulu alebo ID modulom. Po registrácii v schránke modulov sú informácie modulu dostupné prostredníctvom energeticky nezávislej databázy udržovanej strojom VM 20 a sú uložené v energeticky nezávislej pamäti 18. V súlade s týmto vynálezom VM 20 chráni moduly vo vnútri schránky pred modifikáciou akýmkoľvek iným modulom, pretože pre takýto prístup neexistujú žiadne symboly oprávnenia. VM 20 ďalej vykonáva opatrenia pre novú verziu daného modulu, zatiaľčo existuje modul rovnakého ID modulu na účely uskutočnenia.
Koncepčne existujú dve fázy spracovania modulu: po prvé je zavedený, čo znamená, že je urobený prístupným a jeho údaje, databázy atď. sú konkretizované a po druhé, pokiaľ je to uskutočniteľný modul, začne VM 20 spracovávať jeho symboly oprávnenia počnúc od ich vstupného bodu. Procedúra uskutočnenia bude opísaná s odvolaním sa na vývojový diagram na obr. 9.
Po prvé v kroku 100 sú zdroje označené a trvalo uložené. VM 20 pred uskutočnením modulu označí jeho stav a trvalo uloží akékoľvek potrebné zdroje tak, že tento stav môže byť neskôr obnovený. Stav obsahuje:
* Polohu ukazovateľa rozšíriteľnej pamäte, ukazovateľa rámca a ukazovateľa konca rámca.
* Obsahy celého bežného zoznamu zásuviek.
* TLV registrované v zozname mien príznakov TLV.
* Iné vnútorné údaje, ktoré potrebuje realizácia VM, aby riadila aktiváciu a uskutočnenie modulov.
Ďalej je modul v kroku 102 zavedený. ID modul modula na uskutočnenie je prepustený zaveď modul, ktorý bude zavedený bez chyby, ako je do štandardného podprogramu opísaný neskôr. Keď je modul zistené v kroku 104. môže byť uskutočnený a program pokročí do kroku 108. Pokiaľ je v kroku 104 zistená chyba, je uskutočnenie modulu zrušené a všetky zdroje potrebné pre uskutočnenie modulu sú v kroku 105 uvoľnené. Toto vyžaduje, aby stroj VM 20 uskutočnil nasledujúce činnosti:
* Celá energeticky závislá pamäť požedovaná pre zavedenie modulu a akýkoľvek modul, ktorý ju požaduje na zavedenie, musia byt uvoľnené a vymazané na nulu. Toto má obsahovať, ale nie je obmedzené na:
* Priestor potrebný pre všetky inicializované a neinicializované údaje modulu.
* Priestor potrebný pre akékoľvek vnútorné vyrovnávacie pamäte TLV a štruktúry riadenia údajov definované týmito modulmi.
* Priestor potrebný pre akékoľvek vnútorné vyrovnávacie pamäte a štruktúry riadenia údajov požadovaných databázami definované týmito modulmi.
* Zoznam mien TLV udržovaný strojom VM na vyhľadanie príznaku musí byt obnovený do jeho stavu bezprostredne pred uskutočnením modulu.
* Zoznam obsahu zásuviek udržovaný strojom VM musí byt obnovený do jeho stavu bezprostredne pred uskutočnením modulu.
* Obsahy ukazovatele rámca, ukazovatele konca rámca a ukazovateľa rozšíritelnej pamäte sú obnovené na ich hodnoty okamžite pred uskutočnením modulu.
Po úspešnom zavedení modulu je v kroku 106 zistené, či je modul uskutočniteľný alebo je modulom knižnice. Pokial je modulom knižnice, nevykoná sa žiadne uskutočnenie modulu a VM 20 uvolní všetky zdroje v kroku 110. ako je to opísané pre krok 105. Ak je modul uskutočnitelný, určí sa pole špecifikujúce vstupný bod modulu.
VM 20 spustí modul vyvolaním symbolu oprávnenia špecifikovaného vo vstupnom bode póla. Potom každý symbol oprávnenia je vykonaný postupne v kroku 108. Modul končí použitím symbolu oprávnenia RETURN, po ktorom sú všetky zdroje v kroku 110 uvolnené.
spôsobí, že štandardný vráti false. Všeobecná
Proces požadovaný pre zavedenie modulu, štandardný podprogram zaveď modul, bude opísaný s odvolaním sa na vývojový diagram znázornený na obr. 10. Pokial je zistená chyba počas zavádzania modulu, toto podprogram zaveď modul okamžite chyba je taká chyba ako mimo pamäť, kde nie sú dostatočné zdroje na posunutie priestoru pre inicializované údaje, neinicializované údaje, databázy alebo TLV; keď sa zistí duplicitný príznak TLV atď. Inicializované údaje musia byt nastavené pred spracovaním databázy a sekcie TLV, pretože tieto sú častou sekcie inicializovaných údajov. V kroku 120 sa určí, či bol modul už zavedený do pamäte. Ak už bol zavedený, nezavedie sa druhý krát a bezprostredne nasleduje zaveď modul s návratom true. Ďalej sa v kroku 122 určí, či je modul v schránke. Pokial nie je, nemôže byť zavedený, takže štandardný podprogram zaveď modul zlyhá s návratom false. V kroku 124 sa určí, kolko bytov údajov je potrebných pre oblasť 42 neinicializovaných údajov modulu a požadovaná velkosť je rezervovaná. Táto oblast 42 sa nastaví strojom VM 20 na všetky
nuly. Podobne v ] kroku 126 sa rezervuje požadovaný počet
bytov údajov pre oblast 41
inicializovaných údajov modulu.
Potom sa do tejto oblasti kopírujú inicializované údaje. V
kroku 128
sú TLV, definované v module na zavedenie, pridané strojom VM 20 do zoznamu vnútorných mien použitého na vyhľadanie TLV.
I
Koreňový uzol štruktúry údajov TLV je uložený. Potom sú v kroku 130 strojom VM 20 inicializované databázy definované v module na uloženie. Kroky 128 a 130 môžu byť uskutočnené v akomkolvek poradí. V kroku 132 sú prijaté moduly vybrané pre bežný modul. V kroku 134 je zoznam prijatých modulov priečny, zavádzajúci postupne rekurzivne každý modul. Pokial prijatý modul nemôže byť z nejakého dôvodu zavedený, ako sa urči v kroku 136. je modul, ktorý prijal modul, taktiež považovaný, že zlyhal pri zavedení, pretože nemôže pristúpiť k prijatým službám modulu. V tom prípade zaveď modul vracia false. V kroku 138 sa určí, či sa má prijímať ďalší modul. Ak je tomu tak, vráti sa procedúra do kroku 132. Po určení v kroku 138. že posledný prijatý modul bol rekurzivne uložený, bežný modul mal pred tým svoje zdroje pridelené, zavedené a inicializované bez chyby, takže zaveď modul zasunie v kroku 139 do zásuviek 60 v ich zozname, a potom vráti true ukazujúce, že modul bol úspešne zavedený. Akýkoívek pokus zasunúť do zásuvky nulu musí byť strojom VM 20 ignorovaný. Pokial zásuvka nulu potrebuje, aby došlo k jej zasunutiu, môže to byť dosiahnuté použitím symbolu oprávnenia SETSOCKET.
Procedúra zasunutia do zásuviek 60 v kroku 140 bude opísaná s odvolaním sa na obr. 11. V kroku 140 je v zavedenom module konkretizované pre každú zásuvku štandardné správanie. V kroku 141 sa určí, či je tam zástrčka. Pokial tomu tak nie je, potom je modul uskutočnený v kroku 149. Ak tomu tak je, vyberie sa v kroku 142 prvá zástrčka. V kroku 143 sa určí, či bezpečnostné označenie pripojenej zásuvky je alebo nie je nastavené. Pokial tomu tak nie je, je v kroku 146 uskutočnené zasunutie do zásuvky. Ak tomu tak je, vykoná sa bezpečnostná funkcia špecifikovaná pre zásuvku. Pokial je vyhodnotenie bezpečnosti kladné, vykoná sa zasunutie do zásuvky v kroku 146. V kroku 148 sa určí, či je zástrčka poslednou zástrčkou. Pokial tomu tak nie je, je vybraná na vyhodnotenie ďalšia zástrčka. Pokiaí je vyhodnotenie bezpečnosti záporné, určí sa v kroku 147. či je zástrčka poslednou zástrčkou. Pokiaí v kroku 147 alebo 148 sa určí, že zástrčka je posledná, modul sa uskutoční so štandardným správaním pre všetky zásuvky, do ktorých nebolo vykonané zasunutie a pre správanie pri zasunutí pre tie zásuvky, do ktorých bolo uskutočnené zasunutie. Týmito prostriedkami môže byt dosiahnutá bezpečná modifikácia správania.
S modulmi, ktoré boli zavedené z ICC 5 symbolom oprávnenia LOADCARDMODULE sa musí manipulovať odlišne ako s modulmi zavedenými zo schránky terminálu 1 použitím symbolu oprávnenia EXECUTEMODULE. Vývojový diagram pre symbol oprávnenia LOADCARDMODULE je uvedený na obr. 12. Pred vykonaním modulu karty označí VM 20 jeho stav a uloží trvalo akékoľvek potrebné zdroje v kroku 150 tak, že tento stav môže byť neskôr znova obnovený. Stav obsahuje:
* Polohu ukazovateľa rozšíriteľnej pamäte, ukazovateľa rámca a ukazovateľa konca rámca.
* Obsahy celého zoznamu bežných objímok.
* TLV registrované v zozname mien príznakov TLV.
* Iné vnútorné údaje, ktoré potrebuje uskutočnenie VM, aby riadilo aktivizáciu modulov karty.
Modul je v kroku 152 zavedený použitím štandardného programu zaveď modul, opísaného vyššie s odvolaním sa na obr. 9; rozdiel je v tom, že modul je na karte ICC 5, a že nie je v schránke zásobníka a nie je ešte zavedený.
Pokiaľ je v kroku 154 určené, že modul karty nie je úspešne zavedený, sú v kroku 155 všetky zdroje vrátené do stavu, v ktorom boli bezprostredne pred uskutočnením symbolu oprávnenia LOADCARDMODULE. Toto vyžaduje:
* Celá energeticky závislá pamäť požadovaná na zavedenie modulu a akýkoľvek modul, ktorý ju požadoval, aby bol zavedený, musí byť uvoľnený a vymazaný na nulu. Toto má obsahovať, ale nie je obmedzené na:
* Priestor potrebný pre všetky inicializované a neinicializované údaje modulu.
* Priestor potrebný pre akékoľvek vnútorné vyrovnávacie pamäte TLV a štruktúry riadenia údajov definované týmito modulmi.
* Priestor potrebný pre akékoľvek vnútorné vyrovnávacie pamäte a štruktúry riadenia údajov požadované databázami definované týmito modulmi.
* Zoznam mien TLV udržovaný strojom VM na vyhľadanie príznaku musí byť obnovený do jeho stavu bezprostredne pred uskutočnením modulu.
* Obsahy zoznamu objímok udržované strojom VM musia byť obnovené do ich stavu okamžite pred uskutočnením modulu.
* Obsahy ukazovateľa rámca, ukazovateľa konca rámca a ukazovateľa rozširiteľnej pamäte sú obnovené na ich hodnoty bezprostredne pred uskutočnením modulu.
Pokiaľ je modul karty úspešne zavedený, je stav trvalo uložený v kroku 150 označ a trvalo ulož zdroje jednoducho v kroku 156 odložený. Tak bol modul karty pevne pripojený do prevádzkovaného systému. Aby bol modul karty užitočný, musí byť zasunutý do zásuviek, inak neexistuje žiadna cesta pre vykonanie akéhokoľvek kódu, ktorý je obsiahnutý v module karty. Následne sa v kroku 158 určí, či je modul uskutočniteľným modulom, a ak je tomu tak, je v kroku 160 uskutočnený, ako bolo opísané s odvolaním sa na kroky 106 a 108 na obr. 9.
Špecifické vykonanie vynálezu opísané vyššie je zamerané tak, aby bolo len ilustratívne a môže z neho byt
vykonaných mnoho obmien a modifikácií v súlade s princípmi tohto vynálezu. Všetky takéto vyhotovenia a obmeny a modifikácie sú v rozsahu vynálezu, ako je definovaný v nasledujúcich nárokoch.
PRÍLOHA
1. Definícia symbolov oprávnenia
1.1 Prehľad
Symboly virtuálneho ukazovateľom oprávnenia EPICode sú sadou inštrukcií stroja s dvoma zásobníkmi s dodatočným rámcov. So symbolmi oprávnenia sa môže zaobchádzať ako so sprostredkujúcim jazykom kompilujúceho programu. Niektoré vyhotovenia programu prekladača môžu skutočne kompilovať symboly oprávnenia EPICode do strojového kódu.
Symboly oprávnenia EPICode sú bytové symboly oprávnenia dovoľujúce maximálne 256 symbolov oprávnenia. Symboly oprávnenia s jednobytovou predponou dovoľujú rozšíriť obsah symbolov oprávnenia na teoretické maximum 65536 symbolov oprávnenia s ohľadom na predpony definujúcej strany, z ktorých každá má 256 symbolov oprávnenia. V skutočnosti je definovaný obmedzený počet symbolov oprávnenia s predponou. Každá hodnota symbolu oprávnenia je uvedená hexadecimálne ako dvojčíslicový hexadecimálny kód s jeho zodpovedajúcim menom.
Symboly oprávnenia bez predpony (jednobytové symboly oprávnenia) sa označujú ako primárne symboly oprávnenia, kým symboly oprávnenia s predponami (dvojbytové symboly oprávnenia) sa označujú ako sekundárne symboly oprávnenia.
Vykonanie akéhokoľvek primárneho alebo sekundárneho symbolu oprávnenia, ktorý nie je definovaný v nižšie uvedenom zozname spôsobuje výnimku ILLOP.
PRÍLOHA
1.1.1 Funkcia Forth pre symboly oprávnenia EPICode
Táto sekcia uvádza abecedný zoznam zhody slov Forth používaných ako symboly oprávnenia EPICode. Každý riadok obsahuje zľava doprava:
* Meno definície veľkými písmenami s rovnakou šírkou * Výslovnosť v prirodzenom jazyku - slovensky * Špeciálne označenie pri použití:
A Forth slovo ANS (vrátane všetkých sád slov podľa voľby).
C direktíva kompilujúceho programu; musí byt použitá vo vnútri definície.
G všeobecne použiteľné slovo Forth (pri všeobecnom použití, napr. záujmová skupina Forth, ale nie vo Forth ANS).
H hlavné (kompilačné) slovo, ktoré môže alebo nesmie prispievať symbolom oprávnenia k cieľu.
* Ekvivalentný symbol (symboly) oprávnenia EPICode.
Slovo Výslovnosť Kódy Symboly oprávnenia EPICode
- mínus A SUB
1 • ulož A STORE
« značka čísla A NMBR
# > značka čísla väčšieho ako A NMBRGT
« S značka čísla S A NMBRS
PRÍLOHA
* hviezdička A MUL
/ lomítko A DIV
• • dvojbodka A, H PROC
• r bodkočiarka A, C, H ENDPROC
? DO otázka na vykonanie A, C, H RQDO <+addr>
? DUP otázka na reprodukciu A QDUP
? THROW otázka na vhodenie G QTHROW
@ vyvolaj A FETCH
(*] čiarka v hranatej zátvorke A, C, H LITC <+addr>
(CHAR) znak v hranazátvorke A, C, H PLIT <n>
+ plus A ADD
+ í plus ulož A INCR
+ LOOP plus slučka A, C RPLUSLOOP <+addr>
< menšie ako A CMPLT
< # menšie ako značka čísla A LTNMBR
< > nerovná sa A CMPNE
= rovná sa A CMPEQ
> väčšie ako A CMPGT
> BODY do telesa A, H WLIT <+addr>
PRÍLOHA
> NUMBER do čísla A TONUMBER
> R do r A, C TOR
0 < nula menšie ako A SETLT
0 < > nula sa nerovná A SETNE
0 = nula sa rovná A SETEQ
0 > nula je väčšia ako A SETGT
1 - jedna mínus A SSUBLIT 1
1 + jedna plus A SADDLIT 1
2 ! dve ulož A VSTORE
2 * dve hviezdička A SHL
2 / dve lomeno A SHR
2 @ dve vyber A AFETCH
2 > R dve do r A, C TWOTOR
2 DROP dve vynechaj A TWODROP
2 DUP dve reprodukuj A TWODUP
2 OVER dve cez A TWOOVER
2 R @ dve r vyber A, C TWORFETCH
2 R > dve r z A, C TWORFROM
PRÍLOHA
2 ROT dve chod textu A TWOROT
2 SWAP dve presuň A TWOSWAP
2 VARIABLE dve premenné A, H LITU <+addr>
ABS ab signalizácia A ABS
AGAIN znova A, C, H BRA <+addr>
AND a A AND
BASE základ A USERVAR 1
BUFFER: vyrovnávacia pamäť dvojbodka G, H LITU <+addr>
C ! c ulož A BSTORE
C @ c vyvolaj A BFETCH
C + ! c plus ulož G BINCR
CATCH zachyť A CATCH
CELL bunka G FOUR
CELL + bunka plus A SADDLIT 4
CELLS bunky A SMULLIT 4
CHAR znak A PLIT <n>
CHAR + znak plus A SADDLIT 1
CHARS znaky A NOOP
COMPARE porovnaj A BCMP
CONSTANT konštanta A, H LIT <X>
PRÍLOHA
D + d plus A VADD
DEPTH hĺbka A DEPTH
DNEGATE d neguj A VNEGATE
DO urob A, C, H RDO
DROP vynechaj A DROP
DUP reprodukuj A DUP
ELSE inak A, C, H BRA <+addr>
ENDCASE koncový prípad A, C, H DROP
ENDOF koniec (čoho) A, C, H BRA <+addr>
EXECUTE vykonaj A ICALL
EXIT výstup A, C RETURN
FILL vyplň A BFILL
GET_MSECS dostaň milisekundy G GETMS
HOLD uchovaj A HOLD
I i A, C RI
IF ak A, C, H BZ <+addr>
INVERT obráť A INVERT
J j A, C RJ
LEAVE vynechaj A, C RLEAVE <+addr>
LITERAL literál A, C, H LIT <n>
LOCALS lokality s čiarou A, C, H <method> <addr>
PRÍLOHA
LOOP slučka A, C, H RLOOP <+addr>
LSHIFT 1 preraď A SHLN
M * m hviezdička A MMUL
M/MOD m lomitko modulus G MSLMOD
MAX maximum A MAX
MIN minimum A MIN
MOD modulus A MOD
MOVE presuň A BMOVE
MS milisekunda A MS
NEGATE neguj A NEGATE
NIP oddel A NIP
NOT nie SETEQ
OF z A, C, H ROF <+addr>
OR alebo A OR
OVER cez A OVER
PICK vyber A PICK
PLUG zasuň H LITC <+addr>
RECURSE rekurzia A, H CALL
REPEAT opakuj A, C, H BRA <+addr>
-ROT mínus chod G ROTB
R @ r vyvolaj A, C RFETCH
R > r z A, C RFROM
PRÍLOHA
ROT chod textu A ROT
RSHIFT r preraď A SHRNU
SIGN znamienko A SIGN
SOCKET zásuvka H DOSOCKET <n>
SWAP presuň A SWAP
THROW vhoď A THROW
TIMESDÁTE čas a dátum A GETTIME
-TRAILING mínus koncové A MINUSTRAILING
TUCK schovaj A TUCK
U < u menšie ako A CMPLTU
U < = u menšie ako alebo rovné G CMPLEU
U > u väčšie ako A CMPGTU
U > = u väčšie ako alebo rovné G CMPGEU
UM* um hviezdička A MMULU
UM/MOD um lomítko modulus A MSLMODU
UMOD u modulus G MÓDU
UNTIL až do A, C, H BZ <+addr>
USER užívate! G USERVAR <n>
VALUE hodnota A, H LITD <+addrxmethod>
VARIABLE premenná A, H LITU <n>
WHILE zatial’čo A( C, H BZ <+addr>
PRÍLOHA
WITHIN vo vnútri A WITHIN
XOR vylučovacie alebo A XOR
1.2 Zjednotenie
1.2.1 Formáty čísel
Čísla väčšie ako jeden byte sú prenášané v programoch symbolov oprávnenia vo veľkej končiacej dvojitej doplnkovej forme, najvýznamnejší byte je prvý. Vo vnútri programu EPICode by mali k číslam vždy pristupovať operátory správneho formátu, aby umožnili programom uložiť čísla vo forme najvhodnejšej pre podloženú architektúru.
Násobené precízne typy údajov sú držané v zásobníku s najvýznamnejšou bunkou na samom vrchole. Tieto typy údajov sú držané v pamäti s najvýznamnejšou bunkou v najnižšie adresovateľnej bunke vo vnútri typu s mnohými bunkami.
1.2.2 Kontrolné štruktúry a relatívne ukazovatele
Kontrolné štruktúry sú tvorené kontrolnými symbolmi oprávnenia (BRA, RLOOP atd.) nasledované štvorbytovým, dvojbytovým alebo jednobytovým relatívnym ukazovateľom so znamienkom. Relatívny ukazovateľ nasledujúci kontrolný symbol oprávnenia je pridaný k ukazovateľu symbola oprávnenia (TP - Token Pointer), keď bol vyvolaný relatívny ukazovateľ. Pokiaľ je tak symbol oprávnenia vetvy v addr, je adresa miesta určenia addr+2+offset pre jednobytový relatívny
PRÍLOHA ukazovatel (SBRA), addr+3+offset pre dvojbytový relatívny ukazovatel (BRA) a v addr+5+offset pre štvorbytový relatívny ukazovatel (EBRA).
Symboly oprávnenia preberajúce štvorbytové relatívne ukazovatele sú dostupné len kódom špecifickým pre terminál pri realizáciách virtuálneho stroja, ktoré podporuje 32 bitový lineárny adresovací priestor pre kód.
1.2.3 Adresy
Procedúry definované užívatelom súdefinované ich adresami vo vnútri programu EPICode. Ak symboly oprávnenia sú preložené alebo strojový jazyk kompilovaný pre väčšie procesory, nebude adresa priestoru symbolu oprávnenia zodpovedať skutočnej adrese kódu.
1.3 Typovanie údajov
Väčšina symbolov oprávnenia pracuje s veličinami s velkostou údajov a s interpretáciou so znamienkom alebo bez znamienka určenou symbolom oprávnenia, avšak inštrukcie, ktoré pristupujú do pamäte v pamäti rámcov môžu prevziať potlačenie typu údajov určené symbolom oprávnenia s predponou. Sada bytových kódov uvedená v tab. 1 je rezervovaná pre také symboly oprávnenia s predponou, avšak bežne sa používajú len SBYTE a UBYTE.
Typy údajov, ktoré požadujú menej ako jednu bunku (1 byte) sú vyvolané z pamäte použitím bytového operátora alebo operátorom s potlačenou predponou. Pokial typ údajov so
PRÍLOHA znamienkom je implicitný alebo špecifikovaný, sú údaje rozšírené o znamienko do šírky bunky. Pokiaľ typ údajov bez znamienka je implicitný alebo špecifikovaný, sú údaje rozšírené nulovo.
Tab. 1: Predpony typov údajov
Predpona Skratka Opis Veľkosť
SBYTE SB byte so znamienkom 1 byte
UBYTE UB byte bez znamienka 1 byte
SLONG SL dlhý so znamienkom 4 byty
ULONG UL dlhý bez znamienka 4 byty
SVLONG SV veľmi dlhý so znamienkom 8 bytov
UVLONG UV veľmi dlhý bez znamienka 8 bytov
1.4 Aritmetika
Operácie sčítavania a odčítavania, ktoré preplnia veľkosť špecifikovanú pre vrátené výsledky vrátia ten výsledok modulom [maximálna hodnota bez znamienka prispôsobená tomu rozmeru] + 1.
Operácie uloženia, ktorých miesto určenia je menšie ako veľkosť uplynulej hodnoty, uloží hodnotu obmedzenú na šírku miesta určenia.
Operácie delenia sú symetrické, t. z. zaokrúhlenie je vždy smerom k nule bez ohľadu na znamienko.
1.5 Primárne symboly oprávnenia
Symboly oprávnenia sa delia za účelom vhodnosti do
PRÍLOHA nifkoľkých logických sád a sú uvedené nižšie v oddelených sekciách. Všetky hodnoty symbolov oprávnenia sú hexadecimálne.
Predpony typov údajov použiteľné pre symboly oprávnenia sú uvedené explicitne v zozname použitím skratiek uvedených v tab. 1. Akýkoľvek primárny symbol oprávnenia, ktorý je vybavený predponou pomocou symbolu oprávnenia, nie v jeho predpone, je neplatný a uskutočnenie takéhoto symbolu oprávnenia spôsobí, aby bola vhodená výnimka ILLOP. Štandardný typ pre symbol oprávnenia je vyznačený kurzívou a je vždy uvedený v zozname ako prvý. Štandardná predpona typu údajov je redundantná a je neplatná, pokiaľ je použitá pre predponu symbola oprávnenia tak, ako vyššie.
1.5.1 Sada operácií
NOOP r - ;
Nie je zobratá žiadna činnosť.
BFETCH ( addr - num )
Vyvolaj osembitový byte z danej adresy, znamienko ho rozširuje.
LIT ( - x )
Vráť bunku, ktorá nasleduje vložená ako údaje.
LITC ( - addr )
Vráť bunku, ktorá nasleduje vložená ako literál, ktorý je adresou v obraze kódu. Hodnota literálu môže byť v
PRÍLOHA tom obraze premiestnená zavádzacím programom.
OA LITD ( - addr )
Vráť bunku, ktorá nasleduje vložená ako literál, ktorý je adresou v priestore inicializovaných údajov. Hodnota literálu môže byt v tom obraze premiestnená zavádzacím programom.
OB LITU ( - addr )
Vráť bunku, ktorá nasleduje vložená ako literál, ktorý je adresou v priestore neinicializovaných údajov. Hodnota literálu môže byt v tom obraze premiestnená zavádzacím programom.
OC PLIT ( - u )
Vráť byte, ktorý nasleduje vložený. Byte je nulovo rozšírený na 32 bitov.
OD NLIT ( - num )
Vráť byte, ktorý nasleduje vložený, nulovo rozšírený na 32 bitov, a potom negovaný.
OE HLIT ( - u )
Vráť dvojbytovú hodnotu, ktorá nasleduje vložená. Hodnota je nulovo rozšírená na 32 bitov.
HLITC ( - addr )
Vráť adresu vyplývajúcu z pridania dvojbytovej hodnoty bez znamienka, ktorá nasleduje vložená do základnej adresy obrazu kódu. Hodnota je nulovo rozšírená na 32 bitov.
PRÍLOHA
SLITD ( - a-addr )
Vráť adresu vyplývajúcu z pridania bytu bez znamienka, ktorá nasleduje vložená interpretovaná ako základný relatívny ukazovateľ v bunkách do základnej adresy inicializovaných údajov. Byte je nulovo rozšírený na 32 bitov a násobený 4, aby dal relatívny ukazovateľ v bytoch.
HLITD ( - addr )
Vráť adresu vyplývajúcu z pridania dvojbytovej hodnoty, ktorá nasleduje vložená do základnej adresy inicializovaných údajov. Hodnota je znamienkom rozšírená na 32 bitov.
SLITU ( - addr )
Vráť adresu vyplývajúcu z pridania bytu bez znamienka, ktorá nasleduje vložená, interpretovaná ako základný relatívny ukazovateľ v bunkách do základnej adresy neinicializovaných údajov. Byte je nulovo rozšírený na 32 bitov a násobený 4, aby dal relatívny ukazovateľ v bytoch.
HLITU ( - addr )
Vráť adresu vyplývajúcu z pridania dvojbytovej hodnoty, ktorá nasleduje vložená do základu neinicializovaných údajov. Hodnota je znamienkom rozšírená na 32 bitov.
ADDLIT ( x-> - x? )
Pridaj údaje do bunky, ktorá nasleduje vložená do χχ, poskytujúca x2.
SADDLIT ( x·, - x? )
Pridaj Iiterál z jednobytovej vloženej hodnoty so znamienkom xx, poskytujúci x2.
PRÍLOHA
SUBLIT ( Χτ - x? )
Odčítaj údaje v bunke, ktorá nasleduje vložená z χ1# poskytujúca x2.
1A
1C
SSUBLIT ( Χχ - x2~ť )
Odčítaj jednobytovú vloženú hodnotu so znamienkom od χ^, poskytujúcu x2.
VSUBLIT (d - d-lit )
Odčítaj osembitovú vloženú hodnotu so znamienkom od dvojitého čísla d.
ID SMMULIT ( num - num*lit )
Násob num jednobytovým literálom so znamienkom, ktorý nasleduje vložený.
1E SDIVLIT ( num - num/lit )
Deľ num jednobytovým literálom so znamienkom, ktorý nasleduje vložený.
DIVU ( u± u - u3 )
Deľ u3 pomocou u2 (bez znamienka) dávajúce u3.
3A SHRU ( u - u »1 )
Logické preradenie u vpravo jeden bit vložením nulového bitu.
Pozn. Operátory SETXX vykonávajú porovnanie s nulou, označenie je nastavené podľa výsledkov porovnania.
ŕ
PRÍLOHA
42 ( num - flag ) SETGE
Vráť TRUE, ak num < 0 (so znamienkom).
45 ( num - flag ) SETLE
Vráť TRUE, ak num > o (so znamienkom).
48 ( υγ u2 - flag ) CMPGEU
Porovnaj hodnoty a ak Uj > u2. u2 bez znamienka, vrátením TRUE,
4C CMPGE
( num^ num? - flag ) Porovnaj hodnoty num·^ a num2 so znamienkom vrátením
TRUE, ak num^ > num2·
4F CMPLE
( num^ numj - flag ) Porovnaj hodnoty num^ a num2 so znamienkom vrátením
TRUE, ak num^ < num2.
Nasledujúce symboly oprávnenia poskytujú prístup do pamäte rámcov.
50..53 PFRFETCH 2...PFRFETCH5 ( - num )
Ekvivalenty krátkej formy pre SFRFETCH n (q.v.), kde n je 2..5. Možné potlačenia typu údajov obsahujú: SL, SB, UB.
54..5F TFRFETCH12...TFRFETCH1 ( - num )
Ekvivalenty krátkej formy pre SFRFETCH n (q.v.), kde n je -12..-1. Možné potlačenia typu údajov obsahujú: SL, SB, UB.
PRÍLOHA
60..63 PFRSTORE2...PFESTORE5 ( num - )
Ekvivalenty krátkej formy pre SFRSTORE n (q.v.), kde n je 2..5. Možné potlačenia typu údajov obsahujú : SL, SB.
64..6F TFRSTORE12...TFRSTORE1 ( num - )
Ekvivalenty krátkej formy pre SFRSTORE n (q.v.), kde n je -12..-1. Možné potlačenia typu údajov obsahujú: SL, SB.
SFRFETCH ( - num )
Vyvolaj hodnotu num (štandardným programom, bunkou) pri vloženom jednobytovom relatívnom ukazovateli rámcov. Relatívny ukazovateľ je interpretovaný ako index bunky (t. z. že je násobený 4, aby vznikol bytom adresovaný relatívny ukazovateľ) pre štandardný typ údajov a ako index bytu pre potlačenie údajov bytovej veľkosti. Všimnime si, že SFRFETCH 0 a SFRFETCH 1 vracajú riadiace údaje vnútorného rámca bez významu správy pre volací program, a tak nevytvárajú platné odkazy do rámca. Tak parametre začnú u SFRFETCH 2 a dočasné premenné začnú u SFRFETCH -1, pretože zásobníky rámcov sa zväčšujú v pamäti smerom dole. Možné potlačenia typu údajov obsahujú: SL, SB, UB.
SFRSTORE ( - num )
Ulož hodnotu num (štandardným programom, bunkou) v argumente pri vloženom jednobytovom relatívnom ukazovateli so znamienkom z ukazovateľa rámcov. Relatívny ukazovateľ je dodaný ako vložená hodnota, s ktorou sa zaobchádza ako s indexom bunky (t. z. že je násobený 4, aby vznikol bytovo adresovaný relatívny ukazovateľ) pre štandardný typ údajov, a ako bytový index pre potlačenie údajov bytovej veľkosti. Viď SFRFETCH kôli ďalším podrobnostiam. Možné potlačenia typu údajov obsahujú: SL, SB.
PRÍLOHA
FRFETCH ( - num )
Vyvolaj hodnotu num pri relatívnom ukazovateli so znamienkom z ukazovateľa rámcov. Relatívny ukazovateľ je poskytnutý dvojbytovou vloženou hodnotou. Viď opis SFRFETCH kôli podrobnostiam. Možné potlačenia typu údajov obsahujú: SL, SB, UB.
FRSTORE ( num - )
Ulož hodnotu num v argumente pri relatívnom ukazovateli so znamienkom z ukazovateľa rámcov. Relatívny ukazovateľ je poskytnutý dvojbytovou vloženou hodnotou. Viď SFRSTORE kôli ďalším podrobnostiam. Možné potlačenia typu údajov obsahujú: SL, SB.
SFRADDR ( - addr )
Vráť adresu do rámca pri relatívnom ukazovateli so znamienkom z ukazovateľa rámcov. Relatívny ukazovateľ je poskytnutý jednobytovou vloženou hodnotou, ktorá sa násobí 4, aby vznikol bytový relatívny ukazovateľ pre štandardný typ údajov a je použitá priamo ako index bytu pre potlačenie údajov bytovej veľkosti. Možné potlačenia typu údajov obsahujú: SL, SB.
FRADDR ( - addr)
Vráť adresu do rámca pri relatívnom ukazovateli bunky so znamienkom z ukazovateľa rámcov. Relatívny ukazovateľ je poskytnutý dvojbytovou vloženou hodnotou, ktorá sa násobí 4, aby vznikol bytový relatívny ukazovateľ pre štandardný priamo ako index bytu pre veľkosti.
typ údajov a je použitá potlačenie údajov bytovej
Funkcia premeny čísel pre symboly oprávnenia poskytujúce podporu pre štandard Forth: NMBR v menách symbolu oprávnenia sa vyslovuje číslo. Symboly oprávnenia LTNMBR, NMBRS a TONUMBER využívajú premenný základ (BASE) užívateľa ako základ premeny čísel.
PRÍLOHA
8C UNDER ( ~ xlxlx2 )
Reprodukuj druhú položku v zásobníku.
9C ZERO ( - 0 )
Vynechaj hodnotu 0 v zásobníku.
B ONE ( - 1 )
Vynechaj hodnotu 1 v zásobníku.
9E MINUSONE ( - -1 )
Vynechaj hodnotu -1 v zásobníku.
AO INDEX ( addr-γ num - addr2 )
Násob num štyrmi a pripočítaj do addrlt aby vzniklo addr2·
A2 EDOCREATE ( - a-addr )
Vráť adresu do priestoru údajov, ktorého relatívny ukazovateí sleduje vloženú bunku bezprostredne po tomto symbole oprávnenia a uskutočni štandardný podprogram návratu. Tento symbol oprávnenia je použitý na identifikáciu oblasti údajov volaním jej zodpovedajúcej procedúry, dovolením vytvorenia tabuliek údajov nezávislých na pozícii.
A3 EDOCLASS ( - a-addr )
Vetvi do adresy priestoru kódov, ktorej relatívny ukazovateí je obsiahnutý vo vloženej bunke, ktorá nasleduje po vtlačení adresy do zásobníka údajov vyplývajúca z pridania relatívneho ukazovateía bez znamienka, ktorý nasleduje v ďalšej vloženej bunke
PRÍLOHA (t. z. po relatívnom ukazovateli kódu) do základu adresy priestoru inicializovaných údajov. Tento symbol oprávnenia je použitý na identifikáciu štruktúry údajov v pamäti programu a na prenos kontroly do štandardného programu, ktorý ju spracuje a poskytuje základ jednoduchého mechanizmu triedy.
A4 DOCREATE ( - a-addr )
Vráť adresu do priestoru údajov, ktorého relatívny ukazovateľ nasleduje vloženú dvojbytovú hodnotu bezprostredne po tomto symbole oprávnenia a uskutočni štandardný podprogram návratu. Tento symbol oprávnenia sa používa na identifikáciu relatívneho ukazovateľa údajov volaním jemu zodpovedajúcej procedúry dovoľujúcej vytvoriť tabuľky údajov nezávislých na pozícii.
A5 DOCLASS ( - a-addr )
Vetvi do adresy priestoru kódov, ktorého relatívny ukazovatel je obsiahnutý vo vloženej bunke, ktorá nasleduje po vtlačení adresy do zásobníka údajov vyplývajúca z pridania relatívneho ukazovateľa bez znamienka, ktorý nasleduje v dvoch bytoch ďalej vložených (t. z. po relatívnom ukazovatelovi kódu) do adresy základu priestoru inicializovaných údajov. Tento symbol oprávnenia je použitý na identifikáciu štruktúry údajov v pamäti programu a na prenos kontroly do štandardného programu, ktorý ju spracuje a poskytuje základ jednoduchého mechanizmu triedy.
A6 ECALL ( - )
Nasledovaný vloženou bunkou volá procedúru použitím tejto bunky ako bytového relatívneho ukazovateľa so znamienkom do priestoru kódov.
A7 SCALL ( - )
Nasledovaný jedným vloženým bytom volá procedúru použitím . tohto bytu ako bytového relatívneho ukazovateľa so znamienkom do priestoru kódov.
PRÍLOHA
A8 CALL ( - )
Nasledovaný vloženým dvojbytovým relatívnym ukazovateľom volá procedúru použitím tejto hodnoty ako bytového relatívneho ukazovateľa so znamienkom do priestoru kódov.
AB SMAKEFRAME arams · · · *j “ ) edovaný dvoma jednobytovými literálmi bez znamienka obsahujúcimi prvý params, počet buniek tvorí parametre procedúry, a potom temps, počet buniek dočasných premenných. Pridelí params+temps+2 bunky, a potom nastaví bežný ukazovateľ rámcov, aby ukázal k novému rámcu. Tento symbol oprávnenia umožní prístup k parametrom procedúry a dočasným premenným pomocou FRFETCH a FRSTORE.
Virtuálnemu stroju je umožnené vytvoriť rámce v zásobníku návratu, takže použitie rámcov je obmedzené pravidlami, ktoré sa aplikujú všeobecne na použitie zásobníka návratu. Parametre procedúry budú presunuté zo zásobníka údajov do rámca pomocou SMAKEFRAME, takže sa k nim môže pristúpiť pomocou FRFETCH a FRSTORE. Pokiaľ nie je možné vytvoriť rámec požadovanej veľkosti bude vhodený FRAME_STACK_ERROR.
AC MAKEFRAME arams * * * ) edovaný dvoma dvojbytovými literálmi bez znamienka obsahujúcimi prvý params, počet buniek tvorí parametre procedúry, a potom temps, počet buniek dočasných premenných. Vid SMAKEFRAME kôli ďalším podrobnostiam.
AD RELFRAME ( )
Obnov ukazovateľ rámca do jeho predchádzajúcej hodnoty a uvoľni bežný rámec.
1.5.2 Sada vetiev
Tieto symboly oprávnenia obsahujú obvyklé operátory vetiev zásobníkového stroja plus doby prevádzky pre Forth slová
PRÍLOHA
DO ? DO LOOP +LOOP LEAVE I a J.
AF EBRA ŕ - ;
Vetvi vždy. Štvorbytový vložený relatívny ukazovateľ.
BO EBZ ( num - )
Vetvi ak num = 0. Štvorbytový vložený relatívny ukazovateľ.
BI EBNZ ( num - )
Vetvi ak num sa nerovná nule. štvorbytový vložený relatívny ukazovateľ.
B2 SBRA ( - )
Krátka vetva. Bytový vložený relatívny ukazovateľ so znamienkom. 1
B3 SBZ ( num - )
Krátka vetva ak num = 0. Bytový vložený relatívny ukazovateľ so znamienkom.
B4 SBNZ ( num - )
Krátka vetva ak num sa nerovná nule. Bytový vložený relatívny ukazovateľ so znamienkom.
B5 BRA ( ~ )
Nepodmienená vetva. Dvojbytový vložený relatívny ukazovateľ so znamienkom.
PRÍLOHA
ΒΝΖ ( num - )
Vetvi ak num sa nerovná nule. Dvojbytový vložený relatívny ukazovateľ so znamienkom.
1.5.3 Potlačenie typu údajov a schránky kódov
Táto skupina umožňuje prekonať obmedzenie osembytových symbolov oprávnenia. Všimnime si, že ich zásobníkové pôsobenie závisí od nasledujúcich symboloch oprávnenia. Pár symbolov oprávnenia sa označuje ako sekundárny symbol oprávnenia.
Rozšírené symbuly oprávnenia pre typy údajov obsadzujú symboly oprávnenia CO až CF. Nepoužité symboly oprávnenia v tomto rozsahu sú rezervované pre budúce použitie, keď sú požadované dodatočné predpony typov údajov.
Cl SBYTE ( - )
Byte so znamienkom.
C 2 UBYTE ( ~ )
Byte bez znamienka.
C5 SLONG ( - )
Dlhý 32 bitový so znamienkom.
C6 ULONG ( ~ )
Dlhý 32 bitový bez znamienka.
1.5.4 Symboly oprávnenia pre manipuláciu objímok
D2 DOSOCKET ( - )
Nasledovaný vloženým bytom (0..63), ktorý špecifikuje požadované číslo funkcie. Účinok zásobníka je
PRÍLOHA definovaný funkciou pripojenou k zásuvke.
D3 INDOSOCKET (u - )
Vykonáva funkciu zásuvky, ktorej číslo zásuvky (0..63) je špecifikované pomocou u. Účinok zásobníka nižšej úrovne je definovaný funkciou pripojenou k zásuvke. Výnimka 24 ANS Forth (neplatný numerický argument) bude vhodená, ak u je väčšie ako 63.
1.5.5 Kontrolná sada
E6 IMCALL ( ~ )
Uskutočni funkciu modulu, ktorého číslo modulu (0 - 255) je dané v čfalšom vloženom byte, a ktorého číslo funkcie (0 - 255) je dané v nasledujúcom vloženom byte. Účinky zásobníka závisia od volanej funkcie.
E7 CLASSPROC ( ~ )
Počas zavedenia CLASSPROC označí vstup do kódu triedy manipulácie. Je použitý na pomoc kompilácie a môže byt realizovaný ako NOOP.
F9 SYSFUNC ( - )
So schránkou rozširujúceho symbolu oprávnenia sa zaobchádza ako s prvým bytom sekundárneho symbolu oprávnenia. Volá štandardný program špecifikovaný nasledujúcim vloženým bytom. Podporovaná sada sekundárnych symbolov oprávnenia je definovaná v sekcii 1.7. Účinok zásobníka je definovaný špecifikovaným štandardným programom.
1.6 Zásuvky
Prvých osem sekundárnych symbolov oprávnenia zásuviek je rezervovaných pre funkcie riadenia zásuviek a nižšie sú opísané definované funkcie riadenia. Ostatné zásuvky (D2 08 až D2 3F) sú pre aplikačné použitie.
PRÍLOHA
SETSOCKET
F9 91 ( xp u - flag )
Nastav ukazovateľ uskutočnenia xp, aby bol manipulačným programom funkcie u zásuvky, ktorý spôsobí, aby bolo uskutočnené xp nasledujúcim vykonaním DOSOCKET <u>. Pred tým ako je nastavený ukazovateľ uskutočnenia je prevádzkovaná procedúra inštalovaná pomocou SETPLUGCONTROL, aby sa určilo, či môže dôjsť k zasunutiu do zásuvky týmto novým xp. flag je hodnota vrátená touto procedúrou. SETSOCKET iba nastaví ukazovateľ, či flag je FALSE, inak je ukazovateľ odložený. Výnimka -24 (neplatný numerický argument) bude vhodená ak u je väčšie ako 63.
D2 00 SETPLUGCONTROL (xp - )
Uloží ukazovateľ uskutočnenia xp procedúry napísanej užívateľom, ktorá bude prevádzkovaná pomocou SETSOCKET, aby sa určilo, či môže dôjsť k zasunutiu do zásuvky. Činnosť tejto procedúry (ktorá sa pre účely ilustrácie ako PLUGCONTROL) musí byt:
(u - flag ) kde u je číslo zásuvky a flag vracia FALSE, ak môže dôjsť k zasunutiu do zásuvky alebo TRUE, ak k zasunutiu nemôže dôjsť. Ďalej ešte procedúra PLUGCONTROL musí vyvolať výnimku - 24 (neplatný argument) pre hodnoty u okrem rozsahu 0-63.
Štandardná činnosť procedúry PLUGCONTROL je inštalovaná virtuálnym strojom na vrátenie FALSE pre všetky hodnoty u umožňujúce, aby došlo k zasunutiu do všetkých obj ímok.
D2 03 OSCALLBACK ( dev f n num1num2 -ior )
Volá štandardný program operačného systému s parametrami: dev vyberá požadované 1/0 zariadenie pre funkciu f n s 32 bitovými parametrami num^ obsiahnutými v poli num2 vracajúce ior, ktorého význam závisí od realizácie. num·^ a num2 zodpovedajúcim spôsobom zodpovedajú arvc a argv pri použití jazyka c.
Všimnime si, že táto zásuvka je závislá na realizácii a je poskytnutá tak, že špecifický program terminálu (TRS) napísaný použitím EPICode môže poskytnúť pre
PRÍLOHA operačný systém štandardné programy spätného volania. Ak nie je špecifikovaná funkcia podporovaná, je vhodená výnimka -21 (nepodporovaná operácia).
1.7 Sada SYSFUNC I/O
Táto sada definuje funkcie, ktoré sú dostupné pomocou symbolu oprávnenia SYSFUNC, ktorá pôsobí ako zovšeobecnené rozhranie pre podložené štandardné programy operačného systému.
1.7.1 Prístup k zariadeniu
Každému zariadeniu je pridelené jednoznačné číslo zariadenia. Kódy statusu ior sú závislé na zariadení, okrem toho, že kód ior 0 vždy označuje úspech.
F9 00 DKEY ( dev - echar )
Čítaj znak zo vstupného zariadenia dev.
F9 01 DKEYTEST ( dev - flag ) dev
Vráť TRUE, ak je znak pripravený, aby bol prečítaný zo vstupného zariadenia dev.
F9 02 DEMIT ( char dev - )
Prenes char na výstupné zariadenie dev.
F9 03 BEEP ( u dev )
Vyžiadaj si vstupné zariadenie dev, aby generovalo zvuk počas trvania u milisekúnd. Táto funkcia môže pozastaviť spracovanie počas špecifikovanej doby trvania.
PRÍLOHA
F9 04 DREAD ( addr len dev - ior )
Prečítaj reťazec zo vstupného zariadenia dev vrátením ior závislého na zariadení. Vrátený reťazec obsahuje len byte nižšieho rádu znakov prečítaný zo zariadenia klávesnice.
F9 05 DWRITE ( addr len dev - ior )
Napíš reťazec do výstupného zariadenia dev vrátením ior závislého na zariadení.
F9 06 DSTATUS ( dev - ior )
Vráť status ior zdroja pripojeného k zariadeniu dev, kde vo všeobecnom prípade pripravený alebo schopný služby je označené ako o a nepripravený je označené akoukoľvek inou hodnotou, špecifické zariadenie môže vrátiť nenulové hodnoty, ktoré sú významné pre toto zariadenie. Ak bolo zariadenie vybrané predchádzajúcim uskutočnením symbolu oprávnenia OUTPUT, malo by DSTATUS vrátiť nepripravený, až kým sa nedokončí vykonanie funkcie prepustenej do OUTPUT.
F9 07 DIOCTL ( dev fn num a-addr - ior )
Vykonaj funkciu fn IOCTL pre kanál dev s argumentami num veľkosti buniek v poli v a-addr.
F9 08 OUTPUT ( xp dev - ior )
Vykonaj procedúru, ktorej ukazovateľ uskutočnenia je daný xp s výstupom smerujúcim k zariadeniu dev. Pri návrate z OUTPUT nie je bežné výstupné zariadenie ovplyvnené (viď GETOP). ior je vrátené ako nula, ak je procedúra uskutočniteľná. Všetky výnimky vznikajúce z vykonania xp sú chytené virtuálnym strojom a spôsobia okamžité ukončenie OUTPUT.
100
PRÍLOHA
DWRITESTRING
F9 09 ( dev - )
Tento symbol oprávnenia je nasledovaný reťazcom znakov uložených v slede symbolov oprávnenia ako čítací byte nasledovaný toíkými bytmi. Symbol oprávnenia DWRUTESTRING píše znaky do vybraného zariadenia dev. Vykonanie pokračuje bezprostredne po poslednom znaku.
F9 0A GETOP ( - dev )
Vracia zariadenie dev posledne vybrané pomocou SETOP alebo počas vykonania funkcie prejdenej do OUTPUT. Používaný na nájdenie štandardného zariadenia pre I/O operácie orientované zariadením. Táto funkcia umožňuje, aby funkcie závislé na bežnom zariadení boli lahko realizované.
F9 0B SETOP ( dev - )
Používaný na nastavenie štandardného zariadenia dev vráteného pomocou GETOP pre I/O operácie orientované zariadením. Táto funkcia umožňuje, aby funkcie závislé na bežnom zariadení boli lahko realizované.
F9 OC FORMFEED ( dev - )
Vykonáva na zariadení dev činnosť nová forma závislú na zariadení, ako napríklad vymaž tienidlo (displej terminálu) alebo vhoď schránku (tlačiareň).
F9 OD CR ( dev - )
Vykonaj na zariadení dev činnosť nový riadok závislú na zariadení.
F9 0E SETXY ( num^ num2 dev - )
Vykonaj na zariadení dev činnosť nastav absolútnu polohu závislú na zariadení použitím num-y ako súradnice x a num2 ako súradnice y.
101
PRÍLOHA
1.7.2 Manipulácia času
Štandardné slová Forth.
1.7.3 Manipulácia jazykov a správ
Symboly oprávnenia v tejto skupine poskytujú mechanizmus pre manipuláciu jazykov a pre výber a zobrazenie správ.
F9 20 CHOOSELANG ( addr - flag )
Vyber jazyk, ktorého jazykový kód ISO 639 je daný dvoma znakmi v addr. Ak flag je TRUE, jazyk bol nájdený a je teraz bežným jazykom. Inak by mal volací program vybrať iný jazyk. Vždy je k dispozícii aspoň jeden jazyk (strojový jazyk terminálu).
F9 21 CODEPAGE ( num - flag )
Pokúsi sa vybrať trvalo uloženú stránku num kódov. Stránky sú číslované v súlade s ISO 8859 (0 = bežná sada znakov, 1 = latinská 1 atď.). flag je TRUE, ak schránka kódov bola vybraná.
F9 22 LOADPAGE ( addr - flag )
Inštaluj v addr terminálu stránku kódov (táto stránka bude obvykle nájdená v karte), flag udáva úspešné prisunutie stránky. Inštalácia stránky môže byť vykonaná, ak bola zavedená nová tabuľka správ z ICC, ktorá vyžaduje stránku kódov, ktorá nie je k dispozícii v terminále.
F9 23 INITMESSAGES ( )
Táto funkcia vymaže súkromné správy vydavatela číslované od CO do FF (hexadecimálne) a akékoľvek správy inštalované pomocou LOADMESSAGES. Táto funkcia by mala byt volaná po každej relácii užívateľa.
102
PRÍLOHA
LOADMESSAGES
F9 24 ( c-addr - )
Inštaluj tabuíku správ na vhodnom mieste v databáze dočasných správ, c-addr udáva umiestnenie definície tabuíky správ obsahujúcej kód stránky na použitie pre správy, dvojpísmenový kód jazyka v súlade s ISO 639 a pre správy, ktoré majú byť inštalované.
F9 25 GETMESSAGES ( num - c-addr len )
Vracia parametre reťazca pre num správy. Koncové priestory sú odstránené z dĺžky len reťazca.
F9 27 UPDATEMESSAGES ( addr len - )
Inštaluj tabuíku správ do trvalo uložených tabuliek jazykov. Ak je už obsiahnutý jazyk s rovnakým kódom, bude nahradený. Inak bude pridaný nový jazyk. Ak tam nie je dostatočný priestor pre nový jazyk, bude vydaný THROW s kódom 22 (TOO_MANY_LANGUAGES).
addr udáva umiestnenia TLV obsahujúce definíciu tabuíky správ, vrátane kódu stránky na použitie pre správy, dvojpísmenový kód jazyka v súlade s ISO 639 a pre správy, ktoré majú byt inštalované.
F9 28 MESSAGESIZE ( - len )
Vracia štandardnú dĺžku správ pre terminál.
F9 29 TYPEMESSAGE ( addr len - )
Zobrazí daný reťazec na riadku správ terminálu.
1.7.4 Manipulácia kariet ICC
Symboly oprávnení tejto skupiny poskytujú mechanizmus pre manipuláciu čítačiek kariet s integrovanými obvodmi.
103
PRÍLOHA
INITCARD
F9 30 ( num - ior )
Vyber čítačku num ICC, kde num je 0 alebo 1.
F9 31 CARD ( c-addr^ len^ c-addr2 Ien2~c-addr2 ien3 )
Pošli údaje vo vyrovnávacej pamäti c-addr^ len^ do karty a prijmi údaje v c-addr2 len2- Vrátená 2en3 udáva skutočnú dĺžku prijatého reťazca.
Vyrovnávacia pamäť c-addr^ len^ musí obsahovať: Štvorbytové záhlavie štandardu ISO (trieda, inštrukcie, PI, P2).
Údaje podía voíby (length nasledovaná bytmi length, kde length môže byt 0 - 255).
Vyrovnávacia pamäť c-addr2 2en2 musí poskytnúť dostatočný priestorpre odpoveď z karty plus dva byty statusu obsahujúce SW1 a SW2.
Manipulácia chýb je urobená interne vo vnútri CARD.
F9 32 CARDON ( c-addr len·^ - c-addr len2 ior )
Pripoj zdroj k ICC a vykonaj funkciu obnovania karty. c-addr len, poskytuje vyrovnávaciu pamäť, do ktorej bude umiestnená odpoveď na obnovenie, 2en2 je skutočná dĺžka vráteného reťazca.
F9 33 CARDOFF ( - )
Odpojenie ICC od zdroja. Je vykonané, keď sú všetky transakcie úplné.
F9 34 CARDABSENT ( - flag )
Vráť TRUE, ak karta ICC nie je v čítačke prítomná, inak vráť FALSE.
1.7.5 Manipulácia magnetických pásikov
Symboly oprávnenia v tejto skupine poskytujú mechanizmus pre manipuláciu zariadenia magnetických pásikov.
104
PRÍLOHA
F9 38 FROMMAG ( c-addr len^ num - c-addr len2 ior )
Čítaj jeden alebo viacej magnetických pásikov ISO. Operácia môže byt prerušená užívatelom klávesou CANCEL alebo časovým limitom. num je identifikátor ISO dráhy (dráh) magnetického pásika pre čítanie, c-addr je adresa miesta určenia pre reťazec a lenj je maximálna dĺžka (apoň 78 bytov pre IS01, 41 bytov pre IS02 a 108 bytov pre ISO3 alebo ich súčet pre čítanie násobných magnetických pásikov). Pri návrate udáva len2 skutočnú dĺžku čítaného reťazca.
F9 39 TOMAG ( c-addr len num -ior )
Napíš jeden magnetický pásik ISO. Údaje sú vo vyrovnávacej pamäti c-addr len a budú napísané do pásu num (1 - 3). Operácia môže byt užívatelom prerušená klávesou CANCEL alebo časovým limitom.
1.7.6 Manipulácia modemov
Symboly oprávnení v tejto skupine poskytujú mechanizmus pre manipuláciu so zariadením modemu.
F9 40 MODEMCALL ( num^ num2 num·* num^ num5 c-addr len - ior )
Volá číslo použitím vnútorného modemu terminálu, num^ a num2 udávajú rýchlosť vstupného a výstupného spojenia na použitie (od 75 do 19200 baudov). Skutočné podporované rýchlosti sú definované realizáciou. num3 udáva rovnosť (0 = žiadna, 1 = nepárna, 2 = párna) num^ udáva počet bitov na použitie (7 alebo 8) num5 udáva počet záverečných bitov použitých na prenos (1 alebo 2 bity).
c-addr len je reťazec obsahujúci telefónne číslo na volanie. môže byt vsunutá pre volací tón čakania.
Ak prvý znak tohto reťazca je ‘P', je použitá pulzná volba namiesto štandardnej tónovej volby.
F9 41 MODEMHANGUP ( - ior )
Táto funkcia sa používa na ukončenie bežnej relácie modemu.
105
PRÍLOHA
TOMODEM
F9 42 ( c-addr len - ior )
Prenes reťazec v c-addr len do vytvorenej relácie modemu.
F9 43 FROMMODEM ( c-addr len^ - c-addr len2 ior )
Prijme reťazec z modemu, c-addr je adresa určenia pre reťazec a len^ je maximálna dĺžka. Pri návrate udáva len2 skutočnú dĺžku čítaného reťazca. Ak sa počas špecifického obdobia neprijmú žiadne znaky, nastane časový limit.
F9 44 ( - ior )
Táto funkcia vyšle modemu.
MODEMBREAK prerušenie do pripojenej relácie
1.7.7 Riadenie čierneho zoznamu
Symboly oprávnení v tejto skupine poskytujú mechanizmus pre manipuláciu so súborom čierneho zoznamu.
F9 48 INITBLACKLIST ( ~ )
Táto funkcia inicializuje čierny zoznam do prázdneho stavu.
F9 49 BLACKLISTINSERT ( c-addr len - flag )
Táto funkcia vloží vstup v c-addr len v zozname, ktorý je udržiavaný v roztriedenom poradí.
Táto funkcia musí byt použitá pri aktualizácii zoznamu. Vrátené flag je FALSE, ak vloženie bolo úspešné (nebol nájdený vstup v existujúcom zozname a zoznam nebol plný).
106
PRÍLOHA
F9 4A INBLACKLIST ( c-addr^ len^ - c-addr2 len2 flag )
Táto funkcia sa pokúšanájsť kľúč c-addr^ len^ v zozname.
c-addr2 len? obsahujú výsledok hľadania (obsahujúci zostávajúce byty z vybraného vstupu a môžno nejaké iné informačné byty), pokiaľ bol kľúč nájdený.
Vrátené flag je FALSE, ak číslo bolo nájdené.
F9 4B BLACKLISTDELETE ( c-addr len - flag )
Táto funkcia odstráni zo zoznamu vstup, kde c-addr len je kľúč pre vstup k odstráneniu. Môže byť dlhá až 18 bytov.
Vrátené flag je FALSE, ak odstránenie bolo úspešné (vstup bol nájdený).
1.7.8 Podpora pre bezpečnostné algoritmy
Symboly oprávnení v tejto skupine poskytujú podporu pre inicializáciu a použitie bezpečnostných služieb.
F9 50 INITSECALGO ( c-addr len num - flag ) c-addr je adresa inicializácie vyrovnávacej pamäte a len je jej dĺžka. Vstupný parameter (parametre) sa môžu pre každý algoritmus líšiť, aj keď by kľúč mal obyčajne prejsť do tejto inicializácie, flag je FALSE, ak inicializácia bola úspešná.
F9 51 SECALGO ( c-addr·^ len c-addr2 num - flag )
Keď c-addr^ je vstupná vyrovnávacia pamäť údajov pre výpočet a len ^e ich dĺžka, c-addr2 je výstupná vyrovnávacia pamäť na uloženie výsledkov.
flag je FALSE, ak výpočet prebehol úspešne.
107
PRÍLOHA
POWERLESS
1.7.9 Terminálové služby
F9 58 ( - flag )
Vracia FALSE, ak je dostatok výkonu na dokončenie bežnej transakcie.
1.7.10 Služby databáz
Nasledujúce symboly oprávnení poskytujú mechanizmus pre manipuláciu s databázami.
F9 61 DBMAKECURRENT ( a-addr -)
Urob databázu, ktorej DPB je v a-addr bežnej databázy.
F9 62 DBSIZE ( - len )
Vracia veľkosť vyrovnávacej pamäte záznamov, ktorá poskytuje okno do bežného záznamu v bežnej databáze.
F9 63 DBFETCHCELL ( num^ - nunij )
Vracia 32 bitovú hodnotu num2 z bunky v bytovom relatívnom ukazovateli num·^ zarovnaného bunkou v bežnom zázname bežnej databázy.
F9 64 DBFETCHBYTE ( num - char )
Vracia jednobitovú hodnotu char z bytového relatívneho ukazovateľa num v bežnom zázname bežnej databázy.
F9 65 DBFETCHSTRING ( num len - addr len )
Vracia parametre reťazca addr alen bytovej sekvencie v relatívnom ukazovateli num a s dĺžkou len v bežnom zázname bežnej databázy.
108
PRÍLOHA
F9 66 DBSTORECELL ( num^ num? - ) i
Uloží 3 2 Bitovú hodnotu num·^ do bunky v relatívnom ukazovateli num2 zarovnaného bunkou v bežnom zázname bežnej databázy a aktualizuje záznam databázy.
F9 67 DBSTOREBYTE ( char num - )
Uloží jednobytovú hodnotu char v bytovom relatívnom ukazovateli num v bežnom zázname bežnej databázy a aktualizuje záznam databázy.
F9 68 DBSTORESTRING ( addr len^ num len2 ~ )
Uloží nanajvýš len2 bytov bytovej sekvencie v addr do relatívneho ukazovateľa num v bežnom zázname bežnej databázy. Ak len-j^ je menšie ako len2, potom je miestom určenia vo vyrovnávacej pamäti záznamu databázy priestor vyplnený len2.
F9 69 DBINITIALIZE ( - )
Inicializuje bežnú databázu na všetky nuly a nastaví bežné a dostupné čísla záznamu databázy (viď DBRECNUM a DBVAIL) na 0.
F9 6A DBRECNUM ( - U )
Vracia číslo bežného záznamu.
F9 6B DBCAPACITY ( ~ U )
Vracia celkový počet záznamov, ktoré môže obsahovať bežná databáza.
F9 6C DBVAIL ( - num )
Vracia počet záznamov ďalšieho dostupného záznamu v bežnom súbore.
109
PRÍLOHA
F9 6D DBADDREC ( ~ )
Pridaj záznam na koniec bežnej databázy s číslom záznamu daným DBVAIL.
F9 6F DBSELECT ( num - )
Vyber záznam num v bežnej vybranej databáze.
F9 70 DBMATCHBYKEY ( addr len - flag )
Hľadaj bežnú databázu pre porovnanie v poli kľúčov oproti reťazcu špecifikovanému pomocou addr a len. Len môže byt kratšia ako definovaná dĺžka poľa kľúčov pre tútu štruktúru so zostávajúcimi znakmi, ktoré sa porovnávajú s prázdnymi znakmi porovnanie je úspešné, stane sa bežným a flag je FALSE.
Tento symbol oprávnenia môže byt použitý len s usporiadanou databázou.
(20, ASCII). Ak porovnávací záznam
F9 71 DBADDBYKEY ( addr len - flag )
Hľadaj bežnú databázu pre porovnanie v poli kľúčov oproti reťazcu špecifikovanému pomocou addr a len. Len môže byt kratšia ako definovaná dĺžka poľa kľúčov pre tútu štruktúru so zostávajúcimi znakmi, ktoré sa porovnávajú s prázdnymi znakmi porovnanie je úspešné, stane sa bežným a flag je TRUE. Ak je porovnanie neúspešné, je nový záznam vložený do správnej polohy v databáze a flag je FALSE. Tento nový záznam bude inicializovaný s výnimkou pre jeho pole kľúčov, ktoré bude obsahovať daný kľúč.
Tento symbol oprávnenia môže byt použitý len s usporiadanou databázou.
(20, ASCII). Ak porovnávací záznam
F9 72 DBDELBYKEY ( addr len - flag )
Hľadaj bežnú databázu pre porovnanie v poli kľúčov oproti reťazcu špecifikovanému pomocou addr a len. Len môže byt kratšia ako definovaná dĺžka poľa kľúčov pre tútu štruktúru so zostávajúcimi znakmi, ktoré sa
110
PRÍLOHA porovnávajú s prázdnymi znakmi (20, ASCII). Ak porovnanie je úspešné, je porovnávací záznam odstránený a flag je FALSE. Činnosť odstránenie uzatvára akúkolvek možnú dieru vo fyzickej realizácii vykonaním vhodnej činnosti na fyzické presunutie alebo preriadkovanie záznamu vo vopred inicializovanej databáze.
Tento symbol oprávnenia môže byt použitý len s usporiadanou databázou.
F9 73 DBSAVECONTEXT ( - )
Spôsobí, že server hromadí bežné informácie súvislostí obsahujúce bežnú databázu, bežné číslo záznamu a akékolvek podriadené informácie. Server je oprávnený použiť pamäť návratu virtuálneho stroja, aby trvalo uložil informácie súvislostí a softvér klienta musí preto zachovávať všeobecné pravidlá, ktoré sa aplikujú pri použití zásobníka návratu.
F9 74 DBRESTORECONTEXT ( ~ )
Spôsobuje, že server obnoví najnovšie uložené informácie súvislostí (viď DBSAVECONTEXT). Server je oprávnený použiť pamäť návratu virtuálneho stroja, aby trvalo uložil informácie súvislostí a softvér klienta musí preto zachovávať všeobecné pravidlá, ktoré sa aplikujú pri použití zásobníka návratu.
1.8 Riadenie TLV
Symboly oprávnení opísané v tejto sekcii poskytujú riadenie TLV a funkciu prístupu.
1.8.1 Podpora spracovania reťazca
F9 78 PLUGSTRING ( c-addr^ len^ c-addr2 len2 - c-addr2 lerij )
Ulož reťazec v c-addr, pri len·, bytoch na konci reťazca v c-addr? pri len2 bytoch. Vrat začiatok reťazca miesta určenia fc-addr2) a súčet dvoch dĺžok (len^). Na konci reťazca miesta určenia musí byť priestor, aby obsahoval obidva reťazce.
111
.. í
PRÍLOHA
F9 79 CPLUSSTRING ( char c-addr len - c-addr len+1 )
Ulož znak char na konci reťazca v c-addr pri len bytov. Vráť začiatok reťazca miesta určenia (c-addr) a dĺžku výsledného reťazca (len plus 1). Na konci reťazca miesta určenia musí byt priestor, aby obsahoval dodatočný znak.
F9 7A MINUSTRAILING ( c-addr len-y - c-addr len2 )
Ak lenj je väčšie ako nula, len2 sa rovná len·^ menej počet medzier (20. ASCII) na konci reťazca znakov špecifikovaného pomocou c-addr len^. Ak len^ je nula alebo celý reťazec sa skladá z medzier, je len2 nula.
F9 7B MINUSZEROS ( c-addr len± - c-addr len2 )
Ak len^ je väčšie ako nula, len2 sa rovná lenj menej počet núl (0. ASCII) na konci reťazca znakov špecifikovaného pomocou c-addr len-^. Ak len·, je nula alebo celý reťazec sa skladá z núl, je len2 nula.
F9 7C STORECOUNT ( char c-addr - )
Ulož číslo char do bytu v c-addr. Generuj kód vhodenia STRING_TOO_LARGE, ak char je väčšie ako 255.
1.8.2 Prístup do vyrovnávacej pamäte TLV
F9 80 TLV ( num - c-addr len fm t )
Vráť parametre prístupu pre TLV, ktorého príznak je num. Toto môže generovať kód vhodenia UNDEFINED_TLV.
F9 81 TLVFETCH ( c-addr^ len^^ fmt - num / c-addr2 len2 )
Vráť obsahy vnútornej vyrovnávacej pamate TLV podía jej poía TYPE, čo je dolných osem bitov fmt. Typové kódy 0 a 2 vracajú čísla do zásobníka, zatiaíčo iné kódy vracajú ukazovatele reťazca. Adresa vrátená poíu
112
PRÍLOHA typového kódu 3 je dočasná a musí byt presunutá okamžite do trvalejšieho umiestnenia. len2 vrátená pre reťazce je rovnaká ako tá posledná uložená vo vyrovnávacej pamäti.
F9 82 TLVSTORE (num c-addr? len2 fmt / c-addr^ len·^ c-addr2 len2 fmt-) Nastav obsany vnútornej vyrovnávacej pamäte TLV podľa jej poľa TYPE, čo je dolných osem bitov fmt. Kódy typu 0 a 2 berú čísla v zásobníku, zatiaľčo iné kódy berú ukazovatele reťazca. Táto činnosť nastaví bit oddeleného statusu pre túto TLV.
F9 83 TLVBITFETCH ( c-addr - flag )
Vráť výsledky maskovania obsahov vnútornej vyrovnávacej pamäte TLV uvedenej sekvenciou v c-addr oproti poľu hodnôt v tom umiestnení. Toto môže generovať kód vhodenia UNDEFINED_TLV. flag vráti TRUE, ak všetky bity definované v maske sú vo vnútornej vyrovnávacej pamäti. Inak sa vráti FALSE. Kontrolujú sa len byty zaberajúce kratšie z dvoch umiestnení.
F9 84 TLVBITSTORE ( flag c-addr - )
Nastav obsahy vnútornej vyrovnávacej pamäte TLV uvedenej sekvenciou v c-addr založenej na poli hodnôt v tom umiestnení. Ak flag je FALSE (0), potom všetky bity tam definované budú vypnuté. Inak budú všetky zapnuté.
1.8.3 Spracovanie TLV
F9 85 PARSETLV ( c-addr len - )
Spracuj len bytov v c-addr pre sekvencie TLV. Toto môže generovať kód vhodenia UNDEFINED_TLV. Každé pole príznakov, na ktoré sa narazí, umiestni byty dĺžky poľa z jeho poľa hodnôt do vnútornej vyrovnávacej pamäte a nastaví bit oddeleného statusu. Ked sa narazí na konštruované pole príznakov, sú všetky vnútorné vyrovnávacie pamäte TLV, ktoré sú definované ako k nemu pripojené, vymazané pred tým, ako je pole hodnôt
113
PRÍLOHA oddelené pre sekvencie TLV. Nebude generovaná žiadna výnimka, ak sa narazí na TLV v konštruovanej šablóne, do ktorej nebol definovaný, pretože je k nej pripojený.
F9 86 PLUSDOL ( c-addr^ len^ c-addr2 2en2 - c-addr2 Ien3 )
Spracuj len-L bytov v c-addr^ pre pole príznakov a pole dĺžok. Toto môže generovať kód vhodenia UNDEFINED_TLV. Každé pole príznakov, na ktoré sa narazí, umiestni byty dĺžky poía z jeho vnútornej vyrovnávacej pamäte do poía hodnôt na konci výstupného reťazca v c-addr2 pri len, bytoch. Vráť začiatok reťazca miesta určenia (c-addr2) a súčet dvoch dĺžok (len3). Na konci výstupného reťazca musí byt miesto, aby obsahoval obidva reťazce.
F9 87 PLUSTLV ( c-addr len^ num - c-addr len2 )
Pridaj sekvenciu TLV, ktorej príznak je num, na koniec výstupného reťazca v c-addr pri lenj bytoch. Toto môže generovať kód vhodenia UNDEFINED_TLV. Polia príznakov, hodnôt a dĺžok sú formátované podía pravidiel TLV, založených na údajoch v jeho vnútornej vyrovnávacej pamäti. Vráť začiatok reťazca miesta určenia (c-addr) a súčet dvoch dĺžok (len2). Na konci výstupného reťazca musí byt miesto, aby obsahoval obidva reťazce.
F9 89 TLVSTATUS ( fmt - num char )
Dekóduj status parametra fmt prístupu TLV. Vrátený num je indikátor 0- formátu a bity vo vrátenom char majú nasledujúci význam, kde bit 0 je menej významný bit:
0 0 = neoddelený, 1 = oddelený
1-7 rezervované pre budúce použitie
114
PRÍLOHA
1.8.4 Prístup ku sekvenciám TLV
F9 8A STOREBCD ( u c-addr len - )
Ulož číslo u ako binárne kódovanú decimálnu sekvenciu do reťazca v c-addr pri len bytov. Číslo je formátované pre každú číslicu predstavujúcu štvorbitový polbyte vo výstupnom reťazci. Vedúce polbyty budú naplnené nulami, ak je to potrebné. Najdôležitejšia časť čísla bude skrátená, ak len nie je dostatočne dlhá, aby obsahovala všetky číslice.
F9 8B FETCHBCD ( c-addr len - u )
Vyvolaj číslo u z binárne kódovanej decimálnej sekvencie v c-addr pri len bytov. Číslo je formátované pre každú číslicu predstavujúcu štvorbitový polbyt vo vstupnom reťazci. Výnimka DIGIT_TOO_LARGE je vhodená, ak akýkoľvek polbyte nie je platná BCD číslica.
F9 8C STOREBN ( u c-addr len - )
Ulož číslo u ako binárne číslo do reťazca v c-addr pri len bytov. Najdôležitejší byte čísla je uložený prvý. Vedúce byty budú naplnené nulami, ak je to potrebné. Najdôležitejšia čast čísla bude skrátená, ak len nie je dostatočne dlhá, aby obsahovala všetky číslice.
F9 8D FETCHBN ( c-addr len - u )
Vyvolaj číslo u ako binárne číslo do reťazca v c-addr pri len bytov. Najdôležitejší byte čísla je vyvolaný prvý. Ak v tom umiestnení nie je viac ako štyri byty údajov, budú najdôležitejšie byty stratené.
F9 8E STORECN ( c-addry len·^ c-addr2 len2 “ )
Ulož číslo v c-addr·^ pri len^ bytov ako komprimované číslo do reťazca v c-addr? pri len2 bytov. Číslo je formátované pre každý znak predstavujúci štvorbitový polbyte vo výstupnom reťazci. Koncové polbyty budú
115
PRÍLOHA naplnené F, ak je to potrebné. Číslo bude skrátené, ak 2en, nie je dostatočne dlhá, aby obsahovala všetky znaky (len2 < [len, + 1] / 2). Bude generovaný kód vhodenia DIGIT_TOO_LARGE, ak znak vo vstupnom reťazci nie je číslo.
F9 8F FETCHCN ( c-addr^ len^ - c-addr? len2 )
Vyvolaj reťazec do dočasného umiestnenia c-adďjr2 pri 2en2 bytov, ktorý predstavuje komprimované číslo v reťazci v c-addr^ pri bytov. Číslo je formátované pre každý znak vo výstupnom reťazci predstavujúcom štvorbitový polbyte vo vstupnom reťazci. Výstupný reťazec bude ukončený, ak bude narazené na polbyte so všetkými bitmi nastavenými na koniec reťazca. Bude generovaný kód vhodenia DIGIT_TOO_LARGE, ak polbyte vo vstupnom reťazci nie je číslo. Výstupný reťazec musí byť okamžite presunutý do trvalejšieho umiestnenia.
F9 90 TLVFETCHNAME ( c-addr·, - c-addr2 )
Oddeľ sekvenciu TLV v c-addr·^ pre pole príznakov. Vráť adresu c-addr2, ktorá je mimo poľa príznakov a num poľa príznakov.
F9 91 TLVFETCHLENGTH ( c-addr·^ - c-addr2 len )
Oddeľ sekvenciu TLV v c-addr^ pre pole dĺžok. Vráť adresu c-addr2, ktorá je mimo poľa dĺžok a len obsiahnutou v tom poli.
1.9 Manipulácia s modulmi
Nasledujúce symboly právnení poskytujú uloženie a vyhotovenie modulov EPICode vo virtuálnom stroji.
F9 A0 EXECUTEMODULE ( c-addr len - flag )
Zaveď modul z adresára modulov použitím AID špecifikovaného pomocou c-addr len. Ak sa objaví chyba
116
PRÍLOHA je vhodená výnimka CANNOT_LOAD_MODULE. flag je TRUE, ak modul nie je nájdený, FALSE je zavedený úspešne.
F9 Al INITMODULEBUFFER ( - )
Priprav pre získanie nového modulu.
F9 A2 MODULEBUFFERAPPEND ( c-addr len - )
Pripoj obsahy vyrovnávacej pamäte definovanej pomocou c-addr a len k vyrovnávacej pamäte získania modulu. Výnimka CANNOT_i_ADD_TO_MODULE je vhodená, ak vyrovnávacia pamäť modulov nebola pripravená alebo ak kapacita vyrovnávacej pamäte modulov je prekročená.
F9 A3 REGISTERMODULE ( c-addr len - )
Zaznamenaj vyrovnávaciu pamäť modulov do adresára modulov pod daným EPICode špecifikovaným pomocou c-addr len. Zdroje spojené s riadením vyrovnávacej pamäte modulov sú automaticky uvoľnené.
F9 A4 RELEASEMODULEBUFFER ( J
Uvoľni zdroje použité vo vnútornej vyrovnávacej pamäti modulov. Toto sa vyžaduje, ak predčasné zavedenie modulu musí byt ukončené aplikáciou bez zaznamenania modulu do adresára modulov.
F9 A5 DELETEMODULE ( c-addr len - flag )
Odstráň modul, ktorého AID je špecifikovaný pomocou c-addr len z adresára modulov, flag je nula, ak sa operácia podarila.
F9 A6 MODULEINFO ( c-addr^ len^ - c-addr2 len2 flag )
Vráť verejné informácie v module, ktorý je zaznamenaný v adresári modulov pod AID špecifikovaným pomocou c-addr^ len^. flag je nula, ak sa operácia podarila a údaje c-addr·^ sú platné. Štruktúra
117
PRÍLOHA vyrovnávacej pamäte vrátená je definovaná informáciou funkciou sa vracajú len prostredníctvom EPF_ENTRY.
týmto symbolom oprávnenia záhlavia modulu. Touto vstupné zápisy EPF_VER
F9 A7 LOADCARDMODULE ( a-addr - )
Zaveď modul v a-addr. a-addr je adresa záhlavia modulu EPICode doručeného do vnútornej pamäti z karty. Výnimka BAD_CARD_MODULE je vhodená, ak modul porušuje akúkolvek predbežnú podmienku pre zavedenie modulu karty.
F9 A8 MODULESCHANGED f - u ;
Vráť hodnotu u udávajúcu, či sa moduly zmenili. Bity 0 až 7 definujú, ktoré triedy modulov boli zaznamenané v adresáre modulov od posledného vykonania tohto symbolu oprávnenia. Napríklad modul zaznamenaný s počiatočným bytom AID, ktroý je F4, nastaví bit 4 v statuse návratu. Bity 1 až 31 sú rezervované pre budúce rozšírenie.
1.10 Manipulácia rozšíriteínej pamäte
Nasledujúce symboly oprávnení poskytujú prístup k rozširitelnej vyrovnávacej pamäti s pružným pásikom lineárnej pamäte v údajovom priestore poskytnutom a riadenom virtuálnym strojom.
F9 BO EXTEND ( len - a-addr )
Rozšír vyrovnávaciu pamäť pružného pásu pomocou len buniek vrátením adresy a-addr vyrovnanej bunkou prvej bunky v pridelenej vyrovnávacej pamäti. ZERO EXTEND vracia ukazovateí do ďalšej nepridelenej bunky. Výnimka OUT_OF_MEMORY je vhodená, ak nie je k dispozícii dostatočná pamäť.
F9 BI BEXTEND ( len - c-addr )
Rozšír vyrovnávaciu pamäť pružného pásu pomocou len bytov vrátením adresy a-addr prvého bytu v pridelenej
118
PRÍLOHA vyrovnávacej pamäti. ZERO BEXTEND vracia ukazovateľ do ďalšieho neprideleného bytu. Výnimka OUT_OF_MEMORY je vhodená, ak nie je k dispozícii dostatočná pamäť.
F9 B2 RELEASE l addr - )
Uvoľni pamäť získanú prostredníctvom EXTEND alebo BEXTEND nastavením voľného ukazovateľa do addr. Ak addr je neplatná (pred spustením vyrovnávacej pamäte pružného pásu alebo za bežným voľným ukazovateľom), vhodí sa výnimka ANS -9 (neplatná adresa pamäte).
Ďalšie symboly oprávnení:
F9 BO DSCHECK (u - flag )
Skontroluj, že existuje aspoň u buniek údajov zostávajúcich v zásobníku údajov. Vráť FALSE, ak je to tento prípad, inak vráť TRUE.
F9 BI RSCHECK (u - flag )
Skontroluj, že existuje aspoň u buniek údajov zostávajúcich v zásobníku návratu. Vráť FALSE, ak je to tento prípad, inak vráť TRUE.
1.11 Bezpečnostné príkazy
Spracovanie bezpečnostných algoritmov môže na niektorých termináloch trvať niekoľko sekúnd. Tento vynález zabezpečuje, aby prítomný jediný príkaz SECALGO bol rozložený do iniciačnej a ukončovacej zložky na uľahčenie použitia realizácií súbežného spracovania. Toto je skúmané a nasledujúce návrhy sú urobené ako alternatíva k SECALGO.
F9 56 SECALGOBEGIN ( c-addr^ len c-addr2 num -flag )
Toto vypočíta použitie algoritmu typu num. c-addr^ je vstupná vyrovnávacia pamäť údajov pre výpočet a len je jej dĺžka. c-addr2 je výstupná vyrovnávacia pamäť na
119
PRÍLOHA uloženie výsledkov. Táto funkcia vráti flag udávajúce FALSE, ak výpočet mohol byt úspešne inicializovaný.
F9 57 SECALGOEND ( - ior )
Táto funkcia vracia ior na ukázanie: 0 = výpočet dokončený úspešne, -1 = výpočet ešte pokračuje, 1 = výpočet zlyhal.
Výnimočné kódy
Táto sekcia obsahuje všetky kódy použité ako argumenty k štandardnej funkcii manipulácie výnimiek THROW.
Nasledujúca tabulka uvádza kódy ANS Forth použité v jadrách EPIC.
číslo rezervované pre
- 3 preplnenie zásobníka
- 4 nenaplnenie zásobníka
- 5 preplnenie zásobníka návratu
- 6 nenaplnenie zásobníka návratu
- 7 vykonaj slučky vnorené príliš hlboko počas vykonania
- 9 neplatná adresa pamäte
- 10 delenie nulou
- 11 výsledok mimo rozsahu
- 12 nesprávne prispôsobenie typu argumentu
- 17 preplnenie vzorového numerického výstupného reťazca
- 20 napíš na čítanie len umiestnenie
- 21 nepodporená operácia
- 23 výnimka vyrovnania adresy
- 24 neplatný numerický argument
- 25 nerovnováha zásobníka návratu
- 26 parametre slučky nedostupné
- 27 neplatné opakovanie
- 28 užívatelské prerušenie
- 36 neplatná poloha súboru
- 37 1/0 výnimka súboru
- 38 neexistujúci súbor
- 39 neočakávaný koniec súboru
- 53 výnimočné preplnenie zásobníka
- 57 výnimočné vyslanie alebo príjem znaku

Claims (62)

  1. PATENTOVÉ NÁROKY
    1. Transakčný riadiaci systém na uskutočňovanie transakcií medzi prvým zariadením a druhým zariadením, spomenuté prvé a druhé zariadenie sú prispôsobené na vzájomnú komunikáciu, a aspoň jedno z uvedeného prvého alebo druhého zariadenia je karta s integrovanými obvodmi. Uvedený systém sa vyznačuje tým, že obsahuje: aspoň jedno vstupné/výstupné zariadenie; prenosný virtuálny stroj na interpretáciu počítačového programu v uvedenom prvom zariadení, uvedený virtuálny stroj obsahujúci virtuálny mikroprocesor a budič pre uvedené aspoň jedno vstupné/výstupné zariadenie a vykonávacie prostriedky reagujúce na uvedený interpretovaný program na uskutočnenie uvedeného programu.
  2. 2. Terminál obsahujúci prvé zariadenie na uskutočnenie transakcie s druhým zariadením, aspoň jedno zo spomenutého prvého alebo druhého zariadenia je karta s integrovanými obvodmi vyznačujúca sa tým, že obsahuje: prenosný virtuálny stroj interpretujúci počítačový program v spomenutom prvom zariadení, pričom uvedený prenosný virtuálny stroj obsahuje virtuálny mikroprocesor a budič pre aspoň jedno vstupné/výstupné zariadenie a vykonávacie prostriedky reagujúce na spomenutý interpretovaný program pre uskutočnenie spomenutého programu.
  3. 3. Do seba uzavretá prenosná inteligentná karta obsahujúca prvé zariadenie na uskutočňovanie transakcie s druhým zariadením, pričom spomenutá inteligentná karta s a
    121 vyznačuje tým, že obsahuje: prenosný virtuálny stroj obsahujúci virtuálny mikroprocesor a budič pre aspoň jedno vstupné/výstupné zariadenie.
  4. 4. Systém podlá nároku 1 alebo vstupný terminál podlá nároku 2 alebo inteligentná karta podlá nároku 3 vyznačujúce sa tým, že v nich strojové inštrukcie spomenutého virtuálneho stroja sú sadou symbolov oprávnení, uvedené symboly oprávnení sú objednávkové bytové kódy.
  5. 5. Inteligentná karta podlá nároku 3 alebo 4 vyznačujúca sa tým, že ďalej obsahuje počítačový program uložený na spomenutej inteligentnej karte, uvedený virtuálny stroj interpretujúci spomenutý počítačový program a vykonávacie prostriedky reagujúce na spomenutý interpretovaný program na uskutočnenie spomenutého programu.
  6. 6. Systém alebo terminál podlá nároku 4 alebo inteligentná karta podlá nároku 5, vyznačujúce sa tým, že v nich uvedený počítačový program je napísaný ako sled symbolov oprávnení vybraných zo spomenutej sady symbolov oprávnení a zodpovedajúcich vložených údajov.
  7. 7 Systém alebo terminál podlá nároku 4 alebo inteligentná karta podlá nároku 5 vyznačujúce sa tým, že že v nich spomenutý sled symbolov oprávnení je prenesený v module, ktorý obsahuje sled symbolov oprávnení spolu so zodpovedajúcimi vloženými údajmi požadovanými pre uskutočnenie modulu.
  8. 8. Systém alebo terminál alebo inteligentná karta podlá
    122 nároku 7 vyznačujúce sa tým, že v nich spomenutý modul taktiež obsahuje údaj požiadaviek na pamäť na uskutočnenie spomenutého modulu.
  9. 9. Systém alebo terminál alebo inteligentná karta podľa nároku 8 vyznačujúce sa tým, že v nich virtuálny stroj obsahuje taktiež prostriedky na zavedenie spomenutého modulu a na interpretáciu symbolov oprávnení v ňom obsiahnutých.
  10. 10. Systém alebo terminál alebo inteligentná karta podľa nároku 9 vyznačujúce sa tým, že v nich spomenuté prostriedky na zavedenie a interpretáciu symbolov oprávnení čítajú spomenuté symboly oprávnení v uvedenom module a vhodí sa výnimka, ak je čítaný symbol oprávnenia, ktorý nepatrí do spomenutej sady.
  11. 11. Systém alebo terminál alebo inteligentná karta podľa akéhokoľvek z nárokov 7 až 10 vyznačujúce s a tým, že v nich spomenutý virtuálny stroj obsahuje priestor na čítanie/zápis logických adries, ktorý má schránku aspoň pre spomenutý modul, spomenutý modul obsahuje údaj o veľkosti priestoru na čitanie/zápis logických adries potrebného na jeho uskutočnenie a spomenutý virtuálny stroj taktiež obsahuje prostriedky na pridelenie veľkosti priestoru na čítanie/zápis logických adries na uloženie spomenutého modulu v súlade so spomenutým údajom, pričom spomenutý pridelený priestor na čítanie/zápis logických adries má definované a chránené hranice.
    123
  12. 12. Systém alebo terminál alebo inteligentná karta podía nároku 11 vyznačujúce sa tým, že ďalej obsahuje prostriedky na uvolnenie spomenutej pridelenej veíkosti priestoru na čítanie/zápis logických adries pri ukončení spomenutého modulu.
  13. 13. Systém alebo terminál alebo inteligentná karta podía akéhokoívek z nárokov 7 až 10 vyznačujúce s a tým, že v nich spomenutý virtuálny stroj obsahuje prostriedky na poskytnutie aspoň jednej programovej inštrukcie schopnej aspoň modifikovať správanie sa časového uskutočnenia spomenutého počítačového programu? a potomčo spomenuté prostriedky na zavedenie a interpretáciu zaviedli spomenutý modul a zatiaíčo spomenutý modul je prevádzkovaný, spomenuté prostriedky na zavedenie a interpretáciu zavedú a interpretujú spomenutú aspoň jednu programovú inštrukciu závislú na vopred definovanej bezpečnostnej podmienke;a spomenuté vykonávacie prostriedky reagujú na spomenutú zavedenú programovú inštrukciu, ako je interpretovaná spomenutým virtuálnym strojom a vykonajú uvedený počítačový program s modifikovaným správaním.
  14. 14. Systém alebo terminál alebo inteligentná karta podía nároku 13 vyznačujúce sa tým, že v nich spomenutá bezpečnostná podmienka je poskytnutá funkciou.
  15. 15. Systém alebo terminál alebo inteligentná karta podía akéhokoívek z nárokov 9 až 14 vyznačujúce s a tým, že ďalej obsahujú priestor na čítanie/zápis logických adries, vrátane aspoň jednej databázy
    124 obsahujúcej aspoň jeden záznam, spomenutý modul obsahuje údaj o velkosti priestoru na čítanie/zápis logických neinicializovaných adries potrebného na uskutočnenie modulu; spomenutý zavádzači program prídeluje požadovanú velkosť priestoru neinicializovaných logických adries v súlade so spomenutým údajom; a prostriedky pre prístup k záznamu v spomenutej databáze, spomenutý záznam v uvedenej databáze je prístupný len prostredníctvom spomenutého modulu a spomenuté prostriedky pre prístup poskytujú okno do bežného záznamu v spomenutej databáze a kopírujú spomenutý záznam do časti spomenutého priestoru na čítanie/zápis neinicializovaných logických adries adresovatelných spomenutým aplikačným programom.
  16. 16. Transakčný riadiaci systém vyznačujúci sa tým, že ďalej obsahuje: i prvé zariadenie a druhé zariadenie, spomenuté zariadenia sú prispôsobené na vzájomnú komunikáciu, aspoň jedno zo spomenutého prvého alebo druhého zariadenia je karta s integrovanými obvodmi;
    spomenuté druhé zariadenie obsahuje prostriedky na poskytnutie aspoň jednej programovej inštrukcie schopnej aspoň modifikovať správanie doby uskutočnenia počítačového programu v spomenutom prvom zariadení; spomenuté prvé zariadenie obsahuje virtuálny stroj, virtuálny stroj obsahujúci prostriedky na a interpretáciu spomenutého počítačového spomenuté prostriedky na zavedenie a interpretáciu sú ďalej prispôsobené na zavedenie spomenutý zavedenie programu,
    125 a interpretáciu spomenutej aspoň jednej programovej inštrukcie závislej na vopred definovanej bezpečnostnej podmienke, potomčo spomenuté prostriedky na zavedenie a interpretáciu zaviedli spomenutý počítačový program a zatialčo spomenutý počítačový program je prevádzkovaný; a vykonávacie prostriedky na uskutočnenie spomenutého zavedeného a interpretovaného počítačového programu so spomenutým modifikovaným správaním pri odozve na spomenutú zavedenú a interpretovanú programovú inštrukciu.
  17. 17.
    Terminál vyznačujúci sa tým, že obsahuje: prvé zariadenie na vykonanie transakcie s druhým zariadením a aspoň jedno zo spomenutého prvého alebo druhého zariadenia je karta s integrovanými obvodmi; spomenuté druhé zariadenie obsahuje prostriedky na poskytnutie aspoň jednej programovej inštrukcie schopnej aspoň modifikovať správanie doby uskutočnenia počítačového programu v spomenutom prvom zariadení; spomenutý terminál obsahuje:
    spomenuté prvé zariadenie obsahujúce virtuálny stroj, spomenutý virtuálny stroj obsahujúci prostriedky na zavedenie a interpretáciu spomenutého počítačového programu, spomenuté prostriedky na zavedenie a interpretáciu sú dalej prispôsobené na zavedenie a interpretáciu spomenutej aspoň jednej programovej inštrukcie závislej na vopred definovanej bezpečnostnej podmienke, potomčo spomenuté prostriedky na zavedenie a interpretáciu zaviedli spomenutý počítačový program a zatialčo spomenutý počítačový program je
    126 prevádzkovaný; a vykonávacie prostriedky na uskutočnenie spomenutého zavedeného a interpretovaného počítačového programu so spomenutým modifikovaným správaním pri odozve na spomenutú zavedenú a interpretovanú programovú inštrukciu.
  18. 18. Do seba uzavretá prenosná inteligentná karta vyznačujúca sa tým, že obsahuje:
    prvé zariadenie na vykonanie transakcie s druhým zariadením, spomenuté druhé zariadenie obsahuje prostriedky na poskytnutie aspoň jednej programovej inštrukcie schopnej aspoň modifikovať správanie doby uskutočnenia počítačového programu v spomenutom prvom zariadení; spomenutá inteligentná karta obsahuje:
    spomenuté prvé zariadenie obsahujúce virtuálny stroj, virtuálny stroj obsahujúci prostriedky na a interpretáciu spomenutého počítačového spomenuté prostriedky na zavedenie a interpretáciu sú ďalej prispôsobené na zavedenie a interpretáciu spomenutej aspoň jednej programovej inštrukcie závislej na vopred definovanej bezpečnostnej podmienke, potomčo spomenuté prostriedky na zavedenie a interpretáciu zaviedli spomenutý počítačový program a zatiaľčo spomenutý počítačový program je prevádzkovaný; a vykonávacie prostriedky na uskutočnenie spomenutého zavedeného a interpretovaného počítačového programu so modifikovaným správaním pri odozve na zavedenú a interpretovanú programovú spomenutý zavedenie programu, spomenutým spomenutú
    127 inštrukciu.
  19. 19. Systém podlá nároku 16 alebo terminál podl'a nároku 17 alebo inteligentná karta podlá nároku
    18 vyznačujúce sa tým, že v nich spomenutá bezpečnostná podmienka je poskytnutá funkciou.
  20. 20. Systém alebo terminál alebo inteligentná karta podlá nároku 19 vyznačujúce sa tým, že v nich spomenutá aspoň jedna programová inštrukcia je prvou programovou inštrukciou a spomenuté prvé zariadenie obsahuje druhú programovú inštrukciu schopnú aspoň modifikovať správanie správanie doby uskutočnenia spomenutého počítačového programu, spomenutá prvá programová inštrukcia obsahuje odvolanie sa na spomenutú druhú programovú inštrukciu; a spomenuté prostriedky na zavedenie a interpretáciu reagujú na spomenutý odkaz na zavedenie spomenutej druhej programovej inštrukcie, spomenuté vykonávacie prostriedky uskutočnia spomenutý počítačový program so spomenutým modifikovaným správaním, ako je určené spomenutou druhou programovou inštrukciou.
  21. 21. Systém alebo terminál alebo inteligentná karta podlá nároku 20 vyznačujúce sa tým, že v nich spomenutý počítačový program a spomenutá prvá a druhá programová inštrukcia je napísaná vo forme sledu symbolov oprávnení a zodpovedajúcich vložených údajov, každý symbol oprávnenia je objednávkový bytový kód vybraný zo sady objednávkových bytových kódov.
    128
  22. 22. Systém alebo terminál alebo inteligentná karta podľa nároku 21 vyznačujúce sa tým, že v nich virtuálny stroj smeruje spomenutý sled symbolov oprávnení a spomenuté vložené údaje spomenutej prvej a druhej programovej inštrukciu do spomenutého sledu symbolov oprávnení uvedeného počítačového programu.
  23. 23. Systém alebo terminál alebo inteligentná karta podľa nárokov 21 alebo 22 vyznačujúce sa tým, že v nich aspoň každý sled symbolov oprávnení spomenutého počítačového programu a aspoň každá spomenutá druhá programová inštrukcia je prenesená v module, každý modul obsahuje príslušný sled symbolov oprávnení spolu so zodpovedajúcimi vloženými údajmi požadovanými na vykonanie spomenutého modulu.
  24. 24. Systém alebo terminál alebo inteligentná karta podľa nároku 23 vyznačujúce sa tým, že v nich spomenutý modul obsahuje taktiež údaj o pamäti požadovanej na uskutočnenie spomenutého modulu.
  25. 25. Systém alebo terminál alebo inteligentná karta podľa nárokov 23 alebo 24 vyznačujúce sa tým, že v nich modul spomenutého počítačového programu obsahuje taktiež výlučný zoznam aspoň jednej modifikovanej zásuvky, spomenutá zásuvka definuje polohu sledu symbolov oprávnení a vložených údajov spomenutého modulu počítačového programu, do ktorej spomenutý virtuálny stroj smeruje spomenutú prvú programovú inštrukciu.
  26. 26. Systém alebo terminál alebo inteligentná karta podľa
    129 nároku 25 vyznačujúce sa tým, že v nich spomenutá aspoň jedna modifikovaná zásuvka v spomenutom module počítačového programu obsahuje vektor uskutočnenia do štandardného správania.
  27. 27. Systém alebo terminál alebo inteligentná karta podľa nároku 26 vyznačujúce sa tým, že v nich spomenuté vykonávacie prostriedky vykonávajú spomenutý počítačový program so spomenutým štandardným správaní, ak spomenutá vopred definovaná bezpečnostná podmienka nedovolí zavedenie spomenutej aspoň jedej programovej inštrukcie.
  28. 28. Systém alebo terminál alebo inteligentná karta podľa akéhokoľvek z nárokov 23 až 27 vyznačujúce s a tým, že v nich spomenutý virtuálny stroj obsahuje priestor na čítanie/zápis logických adries, spomenutý modul obsahuje údaj o veľkosti priestoru na čítanie/zápis logických adries potrebného na jeho uskutočnenie a spomenutý virtuálny stroj taktiež obsahuje prostriedky na pridelenie veľkosti priestoru na čitanie/zápis logických adries na uloženie spomenutého modulu v súlade so spomenutým údajom, pričom spomenutý pridelený priestor na čítanie/zápis logických adries má definované hranice; a prostriedky pre uvoľnenie spomenutej veľkosti priestoru pre čítanie/zápis logických adries pri ukončení spomenutého modulu počítačového programu.
  29. 29. Systém alebo terminál alebo inteligentná karta podľa
    130 akéhokoľvek z nárokov 23 až 28 vyznačujúce s a tým, že ďalej obsahujú priestor na čítanie/zápis logických adries obsahujúce aspoň jednu databázu obsahujúcu množstvo záznamov, spomenutý modul obsahuje údaj o veľkosti priestoru na čítanie/zápis logických neinicializovaných adries potrebného na uskutočnenie modulu;
    spomenuté prostriedky na zavedenie pridelia požadovanú velkosť priestoru neinicializovaných logických adries v súlade so spomenutým údajom; a prostriedky pre prístup k záznamu v spomenutej databáze, záznamy v uvedenej databáze sú prístupné len prostredníctvom spomenutého modulu a spomenuté prostriedky pre prístup poskytujú okno do bežného záznamu v spomenutej databáze a pre kopírovanie spomenutého záznamu do časti spomenutého priestoru na čítanie/zápis neinicializovaných logických adries adresovatelného spomenutým aplikačným programom.
  30. 30. Systém alebo terminál alebo inteligentná karta podľa akéhokoľvek z nárokov 16 až 27 vyznačujúce s a tým, že v nich spomenutá bezpečnostná podmienka obsahuje prostriedky na overenie aspoň pôvodu a úplnosti údajov a programových inštrukcií v spomenutom druhom zariadení.
  31. 31. Transakčný systém pre uskutočňovanie transakcií medzi prvým zariadením a druhým zariadením vyznačujúci sa tým, že ďalej obsahuje:
    virtuálny stroj na interpretáciu v ňom použitej sady symbolov oprávnení objednávkových bytových kódov,
    131 spomenutý virtuálny stroj obsahujúci virtuálnu procesorovú jednotku a priestor na citanie/zápis logických adries, aspoň jeden prvý aplikačný program obsahujúci údaj o velkosti priestoru na čítanie/zápis logických adries potrebného na jeho vykonanie, spomenutý aspoň jeden prvý aplikačný program je napísaný ako sled symbolov oprávnení vybraných zo spomenutej sady symbolov oprávnení a zodpovedajúcich vložených údajov, spomenutý virtuálny stroj taktiež obsahuje:
    zavádzači program na zavedenie aspoň jedného prvého aplikačného programu, a prostriedky na pridelenie prvej velkosti priestoru na čítanie/zápis logických adries špecificky pre spomenutý aspoň jeden prvý aplikačný program v súlade so spomenutým údajom, spomenutý pridelený priestor na čítanie/zápis logických adries má definované a chránené hranice.
  32. 32. Terminál vyznačujúci sa tým, že obsahuje prvé zariadenie na uskutočňovanie transakcií s druhým zariadením, prvé zariadenie obsahuje:
    virtuálny stroj na interpretáciu v ňom použitej sady symbolov oprávnení objednávkových bytových kódov, spomenutý virtuálny stroj obsahujúci virtuálnu procesorovú jednotku a priestor na čítanie/zápis logických adries, aspoň jeden prvý aplikačný program obsahujúci údaj o velkosti priestoru na čítanie/zápis logických adries potrebného na jeho vykonanie, spomenutý aspoň jeden prvý
    132 aplikačný program je napísaný ako sled symbolov oprávnení vybraných zo spomenutej sady symbolov oprávnení a zodpovedajúcich vložených údajov, spomenutý virtuálny stroj taktiež obsahuje:
    zavádzači program na zavedenie aspoň jedného prvého aplikačného programu, a prostriedky na pridelenie prvej vel’kosti priestoru na čítanie/zápis logických adries špecificky pre spomenutý aspoň jeden prvý aplikačný program v súlade so spomenutým údajom, spomenutý pridelený priestor na čítanie/zápis logických adries má definované a chránené hranice.
  33. 33. Do seba uzatvorená prenosná inteligentná karta vyznačujúca sa tým, že obsahuje prvé zariadenie na uskutočňovanie transakcií s druhým zariadením, spomenuté prvé zariadenie obsahuje:
    virtuálny stroj na interpretáciu v ňom použitej sady symbolov oprávnení objednávkových bytových kódov, spomenutý virtuálny stroj obsahujúci virtuálnu procesorovú jednotku a priestor na čítanie/zápis logických adries, aspoň jeden prvý aplikačný program obsahujúci údaj o veíkosti priestoru na čítanie/zápis logických adries potrebného na jeho vykonanie, spomenutý aspoň jeden prvý aplikačný program je napísaný ako sled symbolov oprávnení vybraných zo spomenutej sady symbolov oprávnení a zodpovedajúcich vložených údajov, spomenutý virtuálny stroj taktiež obsahuje:
    zavádzači program na zavedenie spomenutého aspoň jedného prvého aplikačného programu, a
    133 prostriedky na pridelenie prvej velkosti priestoru na čítanie/zápis logických adries špecificky pre spomenutý aspoň jeden prvý aplikačný program v súlade so spomenutým údajom, spomenutý pridelený priestor na čítanie/zápis logických adries má definované a chránené hranice.
  34. 34. Systém podlá nároku 31 alebo terminál podlá nároku 32 alebo inteligentná karta podlá nároku 33 vyznačujúce sa tým, že ďalej obsahujú prostriedky na vyslovené uvolnenie spomenutej prvej velkosti priestoru na čítanie/zápis logických adries pri ukončení spomenutého aspoň jedného programu.
  35. 35. Systém alebo terminál alebo inteligentná karta podlá akéhokoľvek z nárokov 31 až 34 vyznačujúce s a tým, že v nich aspoň jedno z prvého alebo druhého zariadenia je ICC.
  36. 36. Systém alebo terminál alebo inteligentná karta podlá akéhokoľvek z nárokov 31 až 35 vyznačujúce s a tým, že v nich spomenutý prvý aplikačný program taktiež obsahuje prvý výlučný zoznam aspoň jednej funkcie, ktorá môže byť prenesená do iných aplikačných programov, ďalej obsahuje prostriedky na spôsobenie toho, že spomenutá aspoň jedna funkcia je dostupná iným programom.
  37. 37. Systém alebo terminál alebo inteligentná karta podlá akéhokoľvek z nárokov 31 až 36 vyznačujúce s a tým, že v nich spomenutý prvý aplikačný program je prvý modul a spomenuté iné aplikačné programy sú iné
    134 moduly, každý modul obsahuje aspoň sled symbolov oprávnení vybraných zo spomenutej sady symbolov oprávnení zodpovedajúcich vložených údajov, prvý výlučný zoznam aspoň jednej funkcie, ktorá má byt vykonaná a údaj o veľkosti priestoru na čítanie/zápis logických adries potrebného na uskutočnenie modulu.
    39.
    Systém alebo terminál podľa nároku 37 vyznačujúce sa tým, že v nich spomenutý prvý modul obsahuje druhý výlučný zoznam identifikujúci aspoň jeden druhý modul, z ktorého má byt prijatá a spomenutý zavádzači spomenutý alebo aspoň druhý modul druhým zoznamom na zavedenie prvého modulu.
    Systém alebo terminál alebo inteligentná karta podľa nároku 38 vyznačujúce sa tým, že v nich spomenutý prvý modul je ukončený, ak spomenutý aspoň jeden druhý modul na prijatie nie je úspešne zavedený.
    aspoň jedna funkcia program zavádzajúci v súlade s uvedeným
  38. 40. Systém alebo terminál alebo inteligentná karta podľa akéhokoľvek z nárokov 37 až 39 vyznačujúce s a tým, že v nich spomenuté prostriedky na pridelenie pridelia spomenutú prvú velkost priestoru na čítanie/zápis logických adries na zavedenie spomenutého prvého modulu a pridelia len druhú alebo ďalšiu velkost priestoru na čítanie/zápis logických adries pre spomenutý prvý modul v jedinej rozšíriteľnej vyrovnávacej pamäti počnúc prvou adresou; a pri uvoľnení spomenutej druhej velkosti priestoru na čítanie/zápis logických adries spomenutým prvým modulom, spomenuté uvoľňovacie prostriedky uvoľnia spomenutú druhú veľkosť priestoru na čítanie/zápis logických
    135 adries a všetky ďalšie pridelenia za spomenutou prvou adresou.
  39. 41. Systém alebo terminál alebo inteligentná karta podlá nároku 40 vyznačujúce sa tým, že v nich spomenuté uvolňovacie prostriedky uvolnia spomenutú druhú velkosť priestoru na čítanie/zápis logických adries a pre všetky ďalšie pridelenia za spomenutou prvou adresou pri ukončení spomenutého prvého modulu.
  40. 42. Systém alebo terminál alebo inteligentná karta podlá akéhokolvek z nárokov 37 až 41 vyznačujúce s a tým, že v nich spomenutý priestor na čítanie/zápis logických adries obsahuje aspoň jednu databázu obsahujúcu aspoň jeden záznam, spomenutý modul obsahuje údaj o velkosti priestoru na čítanie/zápis neinicializovaných logických adries potrebného na uskutočnenie spomenutého modulu a záznamy spomenutej databázy sú prístupné len prostredníctvom spomenutého modulu, spomenutý zavádzači program pridelujúci požadovanú velkosť priestoru neinicializovaných logických adries v súlade so spomenutým údajom, a prostriedky pre prístup k záznamu v spomenutej databáze, spomenuté prostriedky pre prístup poskytujú okno do bežného záznamu v spomenutej databáze a kopírujú spomenutý záznam do časti priestoru na čitanie/zápis neinicializovaných logických adries adresovatelného spomenutým aplikačným programom.
    136
  41. 43. Systém alebo terminál alebo inteligentná karta podľa akéhokoľvek z nárokov 34 až 42 vyznačujúce s a tým, že v nich spomenuté uvoľňovacie prostriedky vymažú akúkoľvek veľkosť prideleného priestoru na čítanie/zápis logických adries pri ukončení spomenutého prvého modulu.
  42. 44. Transakčný systém na uskutočnenie transakcií medzi prvým a druhým zariadením vyznačujúci sa tým, že aspoň jedno zo spomenutého prvého alebo druhého zariadenia je karta s integrovanými obvodmi, spomenutý systém obsahuje:
    virtuálny stroj na interpretáciu v ňom použitej sady symbolov oprávnení objednávkových bytových kódov; spomenutý virtuálny stroj obsahujúci virtuálnu procesorovú jednotku a priestor na čítanie/zápis logických adries;
    aspoň jednu databázu obsahujúcu aspoň jeden záznam a aspoň jeden počítačový program na vykonanie spomenutým virtuálnym strojom, spomenutý počítačový program je modul napísaný vo forme sledu spomenutých symbolov oprávnení vybraných zo spomenutej sady a obsahujúci údaj o veľkosti priestoru na čítanie/zápis neinicializovaných logických adries potrebného na vykonanie spomenutého modulu;
    zavádzači program na zavedenie spomenutého modulu pre pridelenie požadovanej veľkosti priestoru pre neinicializované logické adresy v súlade so spomenutým údajom; a prostriedky pre prístup k záznamu v spomenutej databáze, záznamy v spomenutej databáze sú prístupné len
    137 prostredníctvom spomenutého modulu a spomenuté prostriedky pre prístup poskytujú okno do bežného záznamu v spomenutej databáze a kopírujú spomenutý záznam do časti spomenutého priestoru na čítanie/zápis neinicializovaných logických adries adresovatelného spomenutým aplikačným programom.
  43. 45. Terminál obsahujúci prvé zariadenie na uskutočňovanie transakcií s druhým zariadením vyznačujúci s a tým, že aspoň jedno zo spomenutého prvého alebo druhého zariadenia je karta s integrovanými obvodmi, spomenuté prvé zariadenie obsahuje:
    virtuálny stroj na interpretáciu v ňom použitej sady symbolov oprávnení objednávkových bytových kódov; spomenutý virtuálny stroj obsahujúci virtuálnu procesorovú jednotku a priestor na čítanie/zápis logických adries;
    aspoň jednu databázu obsahujúcu aspoň jeden záznam a aspoň jeden počítačový program na vykonanie spomenutým virtuálnym strojom, spomenutý počítačový program je modul napísaný vo forme sledu spomenutých symbolov oprávnení vybraných zo spomenutej sady a obsahujúci údaj o velkosti priestoru na čítanie/zápis neinicializovaných logických adries potrebného na vykonanie spomenutého modulu;
    zavádzači program na zavedenie spomenutého modulu a na pridelenie požadovanej velkosti priestoru pre neinicializované logické adresy v súlade so spomenutým údajom; a prostriedky pre prístup k záznamu v spomenutej databáze, záznamy v spomenutej databáze sú prístupné len
    138 prostredníctvom spomenutého modulu a spomenuté prostriedky pre prístup poskytujú okno do bežného záznamu v spomenutej databáze a kopírujú spomenutý záznam do časti spomenutého priestoru na čítanie/zápis neinicializovaných logických adries adresovateľného spomenutým aplikačným programom.
  44. 46. Do seba uzavretá prenosná inteligentná karta obsahujúca prvé zariadenie na uskutočňovanie transakcií s druhým zariadením vyznačujúca sa tým, že spomenuté prvé zariadenie obsahuje:
    virtuálny stroj na interpretáciu v ňom použitej sady symbolov oprávnení objednávkových bytových kódov; spomenutý virtuálny stroj obsahujúci virtuálnu procesorovú jednotku a priestor na čítanie/zápis logických adries;
    aspoň jednu databázu obsahujúcu aspoň jeden záznam a aspoň jeden počítačový program na vykonanie spomenutým virtuálnym strojom, spomenutý počítačový program je modul napísaný vo forme sledu spomenutých symbolov oprávnení vybraných zo spomenutej sady a obsahujúci údaj o veľkosti priestoru na čítanie/zápis neinicializovaných logických adries potrebného na vykonanie spomenutého modulu;
    zavádzači program na zavedenie spomenutého modulu a na pridelenie požadovanej veľkosti priestoru pre neinicializované logické adresy v súlade so spomenutým údajom; a prostriedky pre prístup k záznamu v spomenutej databáze, záznamy v spomenutej databáze sú prístupné len prostredníctvom spomenutého modulu a spomenuté
    139 prostriedky pre prístup poskytujú okno do bežného záznamu v spomenutej databáze a kopírujú spomenutý záznam do časti spomenutého priestoru na čítanie/zápis neinicializovaných logických adries adresovatelného spomenutým aplikačným programom.
  45. 47. Systém podľa nároku 44 alebo terminál podľa nároku 45 alebo inteligentná karta podľa nároku 46 vyznačujúce s a tým, že v nich spomenutá databáza je konkretizovaná pri prvom zavedení spomenutého modulu.
  46. 48. Systém alebo terminál alebo inteligentná karta podľa akéhokoľvek 2 predchádzajúcich nárokov 1 až 47 vyznačujúce sa tým, že v nich spomenutý virtuálny stroj je zásobníkový stroj.
  47. 49. Systém alebo terminál alebo inteligentná karta podľa nároku 48 vyznačujúce s a tým, že v nich spomenutý virtuálny stroj je aspoň dvoj zásobníkový stroj, v ktorom prvý zásobník je zásobník údajov a druhý zásobník je zásobník návratu.
  48. 50. Systém alebo terminál alebo inteligentná karta podľa akéhokoľvek z predchádzajúcich nárokov l až 49 vyznačujúce sa tým, že v nich spomenutý virtuálny stroj obsahuje pamäť rámcov miestnych premenných, register ukazovateľa rámcov na uloženie ukazovateľa rámcov ukazujúceho v pamäti na začiatok rámca a register ukazovateľa konca rámca ukazujúceho na koniec rámca v pamäti.
  49. 51. Systém alebo terminál alebo inteligentná karta podľa
    140 nárokov 49 alebo 50 vyznačujúce sa tým, že v nich spomenuté zásobníky údajov a návratu nie sú v pamäti priamo adresovateíné spomenutým počítačovým programom, 1 ale sú prístupné cez operácie zásobníkov definované symbolmi oprávnení a interpretované spomenutým virtuálnym strojom.
  50. 52. Systém alebo terminál podía akéhokoľvek z predchádzajúcich nárokov vyznačujúce sa tým, že v nich spomenuté prvé zariadenie je príručné zariadenie.
  51. 53. Systém alebo terminál podía nároku 52 vyznačujúce sa tým, že v nich spomenuté príručné zariadenie obsahuje kartu s integrovanými obvodmi (ICC).
  52. 54. Systém alebo terminál podía akéhokoľvek z predchádzajúcich nárokov 1 až 52 vyznačujúce sa tým, že v nich spomenuté druhé zariadenie obsahuje ICC.
  53. 55. Systém podía akéhokoľvek z predchádzajúcich nárokov 1 až 54 vyznačujúci sa tým, že v ňom spomenuté prvé zariadenie je terminál.
  54. 56. Systém alebo terminál alebo inteligentná karta podía akéhokoívek z predchádzajúcich nárokov 1 až 55 vyznačujúce s a tým, že v nich ako prvé, tak aj druhé zariadenie, obsahujú ICC.
  55. 57. Systém alebo terminál alebo inteligentná karta podía akéhokoívek z predchádzajúcich nárokov l až 56 vyznačujúce sa tým, že v nich transakcia obsa141 hu je aspoň jedno vykonanie nasledujúcej sekvencie:
    a. vytvorenie komunikačného spojenia medzi spomenutým prvým a druhým zariadením
    b. výber aplikácie obsahujúcej spomenutý počítačový program a sadu pripojených údajov, ktoré definujú transakciu
    c. uskutočnenie spomenutej transakcie; a
    d. ukončenie transakcie.
  56. 58. Systém alebo terminál alebo inteligentná karta podľa akéhokoľvek z predchádzajúcich nárokov 1 až 57 vyznačujúce sa tým, že v nich transakcia je finančnou transakciou a spomenutý systém je finančný transakčný riadiaci systém.
  57. 59. Karta s integrovanými obvodmi vyznačuj úca s a tým, že obsahuje programovú inštrukciu schopnú modifikovať správanie programu prebiehajúceho v systéme podľa akéhokoľvek z nárokov 1 až 58, v terminále podľa akéhokoľvek z nárokov 2 až 58 alebo v inteligentnej karte podľa akéhokoľvek z nárokov 3 až 58.
  58. 60. Spôsob vykonania transakcií medzi prvým zariadením a druhým zariadením vyznačujúci sa tým, že aspoň jedno zo spomenutého prvého a druhého zariadenia je karta s integrovanými obvodmi obsahujúca poskytnutie aspoň jednej programovej inštrukcie v spomenutom druhom zariadení schopnú aspoň modifikovať správanie doby vykonania počítačového programu v spomenutom prvom zariadení;
    zavedenie a interpretáciu spomenutého počítačového programu;
    142 zavedenie a interpretáciu spomenutej aspoň jednej programovej inštrukcie závislej na vopred definovanej bezpečnostnej podmienke, zatiaľčo spomenutý počítačový program prebieha; a vykonanie spomenutého zavedeného a interpretovaného počítačového programu so spomenutým modifikovaným správaním pri odozve na spomenutú zavedenú a interpretovanú programovú inštrukciu.
  59. 61. Spôsob vykonania transakcie medzi prvým zariadením a druhým zariadením vyznačujúci sa tým, že obsahuje:
    interpretáciu aspoň jedného aplikačného programu napísaného ako sled symbolov oprávnení bytových kódov vybraných zo sady symbolov oprávnení a zodpovedajúcich vložených údajov;
    zavedenie spomenutého aspoň jedného aplikačného programu;
    pridelenie prvej veľkosti priestoru na čítanie/zápis logických adries špecificky pre spomenutý aspoň jeden aplikačný program v súlade s údajom obsiahnutým vo vnútri spomenutého aplikačného programu veľkosti priestoru na čítanie/zápis logických adries potrebného na jeho vykonanie; a definovanie a ochrana hraníc spomenutého prideleného priestoru na čítanie/zápis logických adries.
  60. 62. Spôsob podľa nároku 61 vyznačujúci sa tým, že ďalej obsahuje:
    výlučné uvoľnenie spomenutej prvej veľkosti priestoru na čítanie/zápis logických adries pri ukončení spomenutého aspoň jedného prvého aplikačného programu.
    143
  61. 63. Spôsob vykonania transakčného systému medzi prvým zariadením a druhým zariadením vyznačujúci sa tým, že aspoň jedno zo spomenutého prvého a druhého zariadenia je karta s integrovanými obvodmi obsahujúca: interpretáciu symbolov oprávnení v module napísanom vo forme sledu spomenutých symbolov oprávnení vybraných zo sady symbolov oprávnení;
    pridelenie vel’kosti priestoru pre neinicializované logické adresy v súlade s údajom v spomenutom module pre velkosť priestoru na čítanie/zápis neinicializovaných logických adries potrebného na uskutočnenie spomenutého modulu;
    prístup k záznamu v databáze poskytnutím okna do bežného záznamu v spomenutej databáze, k záznamom v databáze je možné pristúpiť len prostredníctvom spomenutého modulu; a kopírovanie spomenutého záznamu do časti spomenutého priestoru na čitanie/zápis neinicializovaných logických adries adresovatelného spomenutým modulom.
  62. 64. Spôsob vykonania transakcie medzi prvým zariadením a druhým zariadením vyznačujúci sa tým, že aspoň jedno zo spomenutého prvého a druhého zariadenia je karta s integrovanými obvodmi obsahujúca:
    poskytnutie prenosného virtuálneho stroja obsahujúceho virtuálny mikroprocesor a budič pre aspoň jedno vstupné/ výstupné zariadenie;
    interpretáciu počítačového programu v uvedenom prvom zariadení použitím spomenutého prenosného virtuálneho stroja; a vykonanie spomenutého programu pri odozve na uvedený interpretovaný program.
SK1766-98A 1996-06-27 1997-06-26 Portable, secure transaction system for programmable, intelligent devices SK176698A3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB9613450.7A GB9613450D0 (en) 1996-06-27 1996-06-27 Payment system
PCT/EP1997/003355 WO1997050063A2 (en) 1996-06-27 1997-06-26 Portable, secure transaction system for programmable, intelligent devices

Publications (1)

Publication Number Publication Date
SK176698A3 true SK176698A3 (en) 2000-08-14

Family

ID=10795955

Family Applications (1)

Application Number Title Priority Date Filing Date
SK1766-98A SK176698A3 (en) 1996-06-27 1997-06-26 Portable, secure transaction system for programmable, intelligent devices

Country Status (22)

Country Link
EP (1) EP0907936A2 (sk)
JP (1) JP2000514215A (sk)
AU (1) AU716558B2 (sk)
BR (1) BR9710009A (sk)
CA (1) CA2257641A1 (sk)
CZ (1) CZ423598A3 (sk)
EA (1) EA001598B1 (sk)
GB (1) GB9613450D0 (sk)
HR (1) HRP970354A2 (sk)
HU (1) HUP0001822A3 (sk)
IL (1) IL127533A0 (sk)
IS (1) IS4925A (sk)
NO (1) NO985803L (sk)
NZ (1) NZ333384A (sk)
PL (1) PL330930A1 (sk)
SI (1) SI9720049A (sk)
SK (1) SK176698A3 (sk)
TR (1) TR199802675T2 (sk)
TW (1) TW355776B (sk)
WO (1) WO1997050063A2 (sk)
YU (1) YU60798A (sk)
ZA (1) ZA975748B (sk)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR9713267A (pt) 1996-10-25 2004-06-15 Schlumberger Systems & Service Cartão de circuito integrado para uso com um terminal, processo para uso com o mesmo, microcontrolador e processo para sua programação
GB2337434B (en) * 1997-03-14 2002-01-30 Ian Charles Ogilvy Method and apparatus for controlling communications
AUPP880199A0 (en) * 1999-02-22 1999-03-18 Chip Application Technologies Limited Integrated pos and internet multi-application system and method of use thereof
US6424950B1 (en) 1999-05-10 2002-07-23 Xerox Corporation Remote feature delivery for output devices
GB2356268B (en) 1999-11-10 2004-08-18 Mars Inc Value transaction systems
JP2001184472A (ja) * 1999-12-27 2001-07-06 Hitachi Ltd アプリケーションプログラムの供給方法、スマートカード、スクリプト供給方法、端末装置およびアプリケーションプログラムを有する記憶媒体
JP4509291B2 (ja) * 2000-03-30 2010-07-21 大日本印刷株式会社 Icカード、icカードのプログラム更新装置、および、その方法
FR2809852B1 (fr) * 2000-05-30 2002-11-29 Dassault Automatismes Terminal de paiement comprenant une carte memoire non volatile extractible
AT501651B1 (de) * 2000-09-27 2007-02-15 Omnikey Gmbh Elektronisches modul mit einem steckverbinder zu einer übergeordneten recheneinheit
US6824064B2 (en) * 2000-12-06 2004-11-30 Mobile-Mind, Inc. Concurrent communication with multiple applications on a smart card
CN1615470A (zh) * 2002-01-11 2005-05-11 施克莱无线公司 主机可扩展无线应用接口
US8074263B1 (en) 2008-06-30 2011-12-06 United Services Automobile Association Systems and methods for increased security during logging in to web site
TWI546748B (zh) * 2013-01-15 2016-08-21 hong-jian Zhou Portable electronic trading device
EP3435270B1 (de) * 2017-07-27 2020-09-23 Siemens Aktiengesellschaft Vorrichtung und verfahren zum kryptographisch geschützten betrieb einer virtuellen maschine
WO2021119951A1 (zh) 2019-12-16 2021-06-24 华为技术有限公司 一种紧急呼叫方法、装置及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5067072A (en) * 1987-11-06 1991-11-19 Visystems, Inc. Virtual software machine which preprocesses application program to isolate execution dependencies and uses target computer processes to implement the execution dependencies
US5434999A (en) * 1988-11-09 1995-07-18 Bull Cp8 Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal
US5036461A (en) * 1990-05-16 1991-07-30 Elliott John C Two-way authentication system between user's smart card and issuer-specific plug-in application modules in multi-issued transaction device
FR2667171B1 (fr) * 1990-09-25 1994-08-26 Gemplus Card Int Support portable a micro-circuit facilement programmable et procede de programmation de ce micro-circuit.
JP3602857B2 (ja) * 1991-04-23 2004-12-15 株式会社日立製作所 多機種対応型情報処理システム、および、方法
CA2147824A1 (en) * 1992-10-26 1994-05-11 Johannes Marinus George Bertina Host and user transaction system

Also Published As

Publication number Publication date
BR9710009A (pt) 2000-01-18
EA001598B1 (ru) 2001-06-25
WO1997050063A2 (en) 1997-12-31
AU716558B2 (en) 2000-03-02
GB9613450D0 (en) 1996-08-28
HUP0001822A2 (hu) 2000-09-28
CA2257641A1 (en) 1997-12-31
WO1997050063A3 (en) 1998-03-26
IL127533A0 (en) 1999-10-28
EA199900060A1 (ru) 1999-08-26
TR199802675T2 (xx) 1999-04-21
HRP970354A2 (en) 1998-04-30
EP0907936A2 (en) 1999-04-14
ZA975748B (en) 1998-07-27
NO985803L (no) 1999-02-24
JP2000514215A (ja) 2000-10-24
YU60798A (sh) 1999-09-27
PL330930A1 (en) 1999-06-07
AU3263097A (en) 1998-01-14
HUP0001822A3 (en) 2002-01-28
NO985803D0 (no) 1998-12-11
IS4925A (is) 1998-12-15
SI9720049A (sl) 1999-12-31
NZ333384A (en) 2001-01-26
TW355776B (en) 1999-04-11
CZ423598A3 (cs) 1999-10-13

Similar Documents

Publication Publication Date Title
US9400668B2 (en) Computer program product containing instructions for providing a processor the capability of executing an application derived from a compiled form
US6880155B2 (en) Token-based linking
EP1190316B1 (en) Techniques for permitting access across a context barrier in a small footprint device using global data structures
Leroy Bytecode verification on Java smart cards
US6883163B1 (en) Populating resource-constrained devices with content verified using API definitions
SK176698A3 (en) Portable, secure transaction system for programmable, intelligent devices
JP2010170585A (ja) ディスパッチテーブル構造のための方法と装置
KR101544731B1 (ko) 실행형 컨텐츠의 분리 실행이 가능한 저장 장치 및 그의 네이티브 실행 환경 구현 장치
KR20010103746A (ko) 공유 객체 인터페이스들을 사용해서 소형 풋프린트 장치의콘텍스트 배리어를 넘어선 액세스를 허용하기 위한 기술
JP4378459B2 (ja) 特にスマートカードにおけるダウンロードしたアプリケーションの機密保護化
CN101593258B (zh) 一种在软件保护装置中实现.Net虚拟机的系统和方法
Markantonakis The case for a secure multi-application smart card operating system
CA2422634A1 (en) Populating binary compatible resource-constrained devices with content verified using api definitions
KR101118494B1 (ko) 데이터 및 애플리케이션을 식별 매체에 기록하는 방법
MXPA99000076A (en) Portable system of safe transaction for intelligent devices and programab
EP1233382A1 (fr) Elément électronique