CZ423598A3 - Přenosný bezpečný transakční systém pro programovatelná inteligentní zařízení - Google Patents

Přenosný bezpečný transakční systém pro programovatelná inteligentní zařízení Download PDF

Info

Publication number
CZ423598A3
CZ423598A3 CZ984235A CZ423598A CZ423598A3 CZ 423598 A3 CZ423598 A3 CZ 423598A3 CZ 984235 A CZ984235 A CZ 984235A CZ 423598 A CZ423598 A CZ 423598A CZ 423598 A3 CZ423598 A3 CZ 423598A3
Authority
CZ
Czechia
Prior art keywords
module
program
terminal
space
data
Prior art date
Application number
CZ984235A
Other languages
English (en)
Inventor
Guido Heyns
Peter Johannes
Original Assignee
Europay International 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 International N. V. filed Critical Europay International N. V.
Publication of CZ423598A3 publication Critical patent/CZ423598A3/cs

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

Description

Tento vynález se týká systému obsahujícího programovatelná inteligentní zařízení taková, jako jsou terminály a karty s integrovanými obvody a také způsobu provozu takových karet a < ' i in i i> á 1 ů zahrnujících bankovní automaty, osol J počítače, jednotky pro placení prostřednictvím televize, terminály míst prodeje, zdravotní Duly apod. Vynález je zvláSt vhodný pro použití k provádění finančních transakcí.
1JQ savadní stav__techniky
Jsou známé rozličné typy terminálů pro provádění transakcí, např. finančních transakcí, které sc týkají přenosu nebo výměny hodnoty nebo transakcí, které jsou obchodní povahy, jako jsou iransakce karet zdravotní péče nebo pro přístup k datům obecně, např. karty SIM mobilních telefonů GSM. Jsou známé takové terminály jako jsou zařízení prodejních míst (POS - point of sále), bankovní automaty {ATM - automatic teller machine) nebo mobilní telefony GSM. Skutečný rozsah výrobků od malých ručních zařízení s jednoduchými 8 bitovými mikroprocesory, takovými jako Intel série 8031/8051 dodávané firmou Intel Corp. USA, nebo karty s integroimými obvody (ICC - Integrated Circuit Cards), k 32 bitovým počítačům provozujícím takové operační systémy jako UNIX nebo Windows NT dodávané firmou Microsoft Corp. USA. Některé z těchto strojů vzájemně komunikují s osobními kartami uživatelů.
kterými mohou být karty s magnetickým páskem, inteligentní karty nebo ICC, které ukládají specifickou identifikaci uživatele a informace o ověření platnosti potřebné před tím, než může být zahájena komunikace mezi uživatelem a terminálem. Uživatel vloží kartu do čtečky karet připojené k terminálu, terminálový program trvale uložený v terminálu je proveden a přezkouší kartu kontrolou informací uživatele pro její ověření a je-li to nutné vyžádá heslo nebo soukromé číslo takové jako je PIN (personál identifi cati on number osobní identifikační číslo). Po ověření platnosti program normálně umožní uživateli vybrat provedení požadovaných služeb, např. vybrání peněžní hotovosti, přezkoušení běžného zůstatku. Terminál může stát osamoceně nebo může být připojen na větší počítač buď místně nebo přes telekomunikační síť. Takové terminály jsou často dostupné 24 hodin denně a musí být v provozu pří minimální údržbě a při vysoké úrovn i be, peřnnsti.
Takové terminály představují významné investice do hardi-aru a normálně nejsou nahrazovány v častých intervalech. Aktualizace softwaru a programů provozovaných na takových terminálech se stává nutnou, když se nabízejí nové služby, a musí být provedeny bezpečně. Organizace provozující terminály, takové jako banky, obecně požadují, aby každá aktualizace byla potvrzena. Taková aktualizace může být ruční nebo dálková přes soukromou nebo veřejnou komunikační síť, jak je to známo z patentu USA číslo 5,434,999. Taková známá schémata vyžadují, aby byl znám typ a model terminálu pro nový vývoj, protože software pro každý terminál musí být specificky vytvořen pro ten typ terminálu a proto jsou schémata značně drahá. Dále ke schopnosti ntbízet služby všech možných organizací nabízejících podobné služby, např.
o
vSech bank a peněžních institucí, musí být terminál schopen zpracovat vSechny programy všech organizací. V důsledku velké mobility jak soukromých, tak obchodních osob, je výhodné, že by měly být na každém terminálu dostupné všechny služby, které jsou nabízeny v jedné zemi. To by vedlo ke zbytečně velké kapacitě zpracování a velikosti paměti pro každý terminál. Dále každý z těchto programů musí být aktualizován tak, jak je to požadováno. Jedním řešením by mohlo být použití malé pracovní stanice pro Každý terminál, připojené možná na telekomunikační systém. Takový systém by byl schopný nepřímého zpracování a mohl by se přepnout na přímé zpracování neobvyklých transakcí nebo automatickou aktualizaci trvale uložených programů. U pracovní stanice by se např. vyžadovalo, aby prováděla komplexní ověřování platnosti a kódovací schémata, nutná pro zachování bezpečnosti systému vystaveného útoku přes veřejnou telefonní sít. Se zvětšující se velikostí a složitostí by se také zvětšoval problém zachování bezpečnosti.
I u takového systému mohou být problémy s kontrolou verzí. Ne všichni uživatelé služeb stejné organizace mohou mít karty vhodné pro poslední verzi služby. Toto se může vyskytnout, když mnohonárodní organizace zavedou nebo aktualizují služby v různé době v různých zemích. V WO 96/18979 bylo navrženo, aby se terminály aktualizovaly jen pro období obsažené v osobní ICC uživatele. Programové instrukce, představující standardní podprogramy, jsou uloženy na kartě a mohou být převedeny do terminálu, ve kterém jsou interpretovány. Použití interpretačního programu v terminálu umožňuje použít stejnou kartu na jakémkoli terminálu obsahujícím interpretační program a proto činí trasakci nezávislou na hlavním procesoru v terminálu. Není však popsána žádná metoda ·* t · φ
I · *
I · Φ Φ kontroly bezpečnosti, aby se vyloučily možné nebezpečné podprogramy.
Terminály výSe popsaného typu mají také pjocesor obsahující nějakou formu paměti, obyčejně nčjakou paměť s libovolným výběrem (RAM - random access memory) pro provoz programů a nějakou permanentní paměť (ROM - read only memory) pro uložení dat, která mají být jen čtena, která mohou obsahovat program pro operační systém terminálu a energeticky nezávislou paměť pro čtení/zápis pro ukládání obecných dat, která se mohou měnit. Osobní data uživatele by měla být držena důvěrně a proto by neměla být možnost přístupu jednoho uživatele k datům druhých uživatelů klamající osobou buď náhodně nebo záměrně. Dále rozličné paměti terminálu pro zápis by se neměly časem stát segmentovanými.
Segmentace paměti může mít za následek, že bloky přiléhající pó .fčt i se zmenší co do velikosti tak, že určité programy nemohou být provozovány. K vyhnuli sv lomuto problému st· k inventarizaci volných míst v paměti používají některé programovací jazyky, takové jako Java . Inventarizace volných míst v paměti je standardní program, který se pokouší identifikovat data v paměti, která již nejsou požadována a uvolní je. Podle běžného informovaného názoru je inventarizace volných míst spolehlivější cestou řízení paměti než program, který přímo uvolňuje svá vlastní uložená data. Někteří považují přímé přidělení nebo uvolnění paměti za největší jediný zdroj programových chyb v běžných programovacích jazycích vysoké úrovně takových, jako jsou jazyky C nebo C++,
Inventarizace volných míst má několik nevýhod. Za prvé
inventarizace Milných míst je funkce operačního systému spíše než aplikační specifickou funkcí. Proto inventarizace volných míst nezaručuje, Že data každé aplikace jsou uvolněna na konci aplikace, ale taková data mohou být spíše přítomna po nějakou dobu, pokud nedostatek přístupu nespustí inventarizaci volných míst. Při finančních transakcích se požaduje bezpečnější metoda vyloučení možnosti adresovat soukromá data uživatele. Za druhé zvětšuje velikost prostoru paměti, požadovaného pro operační systém. Na ICC a na některých terminálech může být paměť omezená a použití inventarizace volných míst může být vážnou nevýhodou. Jak je vysvětleno výše, jsou terminály nahrazovány velmi nepravidelně, takže jsou normálně v systému souběžně provozovány velmi rozdílné terminály, obsahující rozdílné procesorové schopnosti a velikosti paměti. Starší terminály mají často své schopnosti silně omezené. I když nejstarší terminály mohou být nahrazeny, požadavek na zlepšené a komplexnější služby znamená, že starší terminály nebudou pravděpodobně a i kdy nahrazeny tak často, aby se některé z nich svými schopnostmi neopožďova1y, Tudíž požadavek na kompaktní operační systémy, které mohou pracovat na široce rozdílných typech procesorů, pravděpodobně zůstane požadavkem. Konečně inventarizace volných míst neuvolřiuje paměť tak brzy, jak by byla uvolněna použitím přímého uvolnění. Také tato může zvětšit velikost požadované paměti, protože paměť je podvázána, když by mohla být. uvolněna.
Jeden bezpečný způsob řízení paměti v době provozu je popsán v patentu USA číslo 5,434,999. Např. v souladu s tímto známým způsobem provádí interpretační program v terminálu systematickou kontrolu jakékoli instrukce manipulující s adres a paměti, aby ověřil, zda je oprávnění pro oblast
paměti, do které se požaduje přístup. Tento systém má nevýhodu v tom, že každá instrukce musí být zkontrolována tímto způsobem, který podstatně zpomaluje zpracování.
Kontrola doby provozu programu je provozně nákladná.
Existuje potřeba systému poskytujícího programovatelné terminály, které umožňují, aby byl použit programátor aplikací pro vytvoření softwaru, který je přenosný a neutrální pro různorodé terminály, tj. nezávislý na procesoru použitém v terminálu a nepotřebuje, aby byl typově schválen pro každý typ nebo provedení terminálu. Trvale uložený operační systém terminálu a aplikační programy jsou s výhodou kompaktní, pracují rychle a plní podmínky bezpečnosti. Dále je výhodné, když aplikaění programy mohou být snadno aktualizovány, alespoň tak, že každý uživatel může obdržet oěekávané služby nezávisle na geografické poloze terminálu.
Cílem tohoto vynálezu je poskytnout bezpečný transakční řídicí systém pro transakce a pro způsob provozu takového syst ému.
Dalším cílem tohoto vyná1ezu je poskytnout bezpečné terminály a ICC pro transakce a způsoby provozu takových zařízení.
Ještě jiným cílem tohoto vynálezu je poskytnout zařízení použitelné pro transakci, které může být realizováno v malých ručních zařízeních takových jako je ICC.
Ještě jiným cílem tohoto vynálezu je poskytnout transakční systém, ve ktcicm terminály nebo ICC i.iohou být aktualizovány použitím terminálů nebo ICC jako zdrojů aktualizujících informací.
0« 9900 99 99
0 0 0 0 0 0
Dalším cílem tohoto vynálezu je poskytnout transakční řídicí systém a způsob provozu systému, který poskytuje vysokou bezpečnost s dobrou provozní rychlostí.
Podstata vynálezu
Tento vynález se týká transakčního řídicího systému pro provádění transakcí mezi prvním zařízením a druhým zařízením, řečené první a druhé zařízení je přizpůsobeno pro vzájemnou komunikaci a alespoň jedno / řečeného prvního a druhého zařízení je karta s inieg i ovánými obvody, řečen' systém obsahuj e:
alespoň jedno vstupní/výstupní zařízení;
přenosný virtuální stroj pro interpretaci počítačového programu v řečeném prvním zařízení, řečený virtuální stroj obsahující virtuální mikroprocesor a budič pro řečené alespoň jedno vstupní/výstupní zařízení a prováděcí prostředky reagující na řečený interpretovaný program pro provedení řečeného programu.
Preferuje se, aby přenosný virtuální stroj byl zásobníkový stroj, protože toto přináší provozní rychlost a kompaktnost.
Tento vynález také poskytuje t i minál, který obsahuje první zařízení pro provedení transakce s druhým zařízením, alespoň jedno z řečeného prvního a druhého zařízení je karta s integrovanými <d?vody, obsahující; přenosný virtuální stroj interpretující počítačový program v řečeném prvním zařízení, řečený přenosný virtuální stroj obsahující virtuální mikroprocesor a budič pro alespoň jedno vstupní/výstupní zařízení; a prováděcí prostředky reagující na řečený interpretovaný program pro provedení řečeného programu.
*«*· · • · * · » « • · φ ·· **· ·· ♦·»· •» ·· «
Tento vynález také poskytuje do sebe uzavřenou přenosnou inteligentní kartu obsahující první zařízení pro provedení transakce s druhým zařízením, řečená inteligentní karta obsahuje: přenosný virtuální stroj obsahující virtuální mikroprocesor a budič pro alespoň jedno vstupní/výstupní září zení .
Tento vynález také poskytuje transakční řídicí systém obsahující: první zařízení a druhé zařízení, řečené první a druhé zařízení je přizpůsobeno pro vzájemnou komunikaci a alespoň jedno z řečeného prvního a druhého zařízení je karta s integrovanými obvody; řečené druhé zařízení obsahuje prostředky pro poskytnutí alespoň jedné programové instrukce schopné alespoň modifikovat chování doby provedení počítačového progi-imu v řečeném prvním zařízení: řečené první zařízení obsahující virtuální stroj, řečený virtuální stroj obsahující prostředky pro zavedení a interpretaci řečeného počítačového programu, řečené prostředky pro zavedení a jsou dále přizpůsobeny pro zavedení a řečené alesp ,ň jedné programové instrukce závislé na předem definované podmínce bezpečnosti potom, co řečené prostředky pro zavedení a interpretaci zavedly řečený počítačový program a zatímco řečený počítačový program je v provozu; a prováděcí prostředky pro provedení řečeného zavedeného a interpretovaného počítačového programu s řečeným modifikovaným chováním při odezvě na řečenou zavedenou a interpretovanou programovou instrukci.
interpretaci i nterpj < i ac i
Tento vynález dále poskytuje terminál obsahující první zařízení pro provedení transakce s druhým zařízením a alespoň jedno z řečeného prvního a druhého zařízení je karta s *» • Β ♦
Β Β ΒΒ «
Β Β Β Β Β Β*· ···
Β Β Β Β · »
ΒΒ ΒΒ »♦ ·· integrovanými obvody, řečené druhé zařízení obsahuje prostředky pro poskytnutí alespoň jedné programové instrukce, schopné alespoň modifikovat chování časového provedení počítačového programu v řečeném prvním zařízení; řečený terminál obsahuje: řečené první zařízení obsahující virtuální stroj, řečený virtuální stroj obsahující prostředky pro zavedení a interpretaci řečeného počítačového programu, řečené prostředky pro zavedení a interpretaci jsou dále přizpůsobeny pro zavedení a interpretaci řečené alespoň jedné programové instrukce závislé na předem definované bezpečnostní podmínce potom, co řečené prostředky pro zavedení a interpretaci zavedly řečený počítačový program a zatímco řečený počítačový program je v provozu; a prováděcí prostředky pro provedení řečeného zavedeného a interpretovaného počítačového programu s řečeným modifikovaným chováním při odezvě na řečenou zavedenou a interpretovanou programovou instrukci.
Tento vynález poskytuje do sebe uzavřenou přenosnou inteligentní kartu obsahující první zařízení pro provedení transakce s druhým zařízením, řečené druhé zařízení obsahuje prostředky pro provedení alespoň jedné programové instrukce schopné alespoň modifikovat chování časového provedení počítačového programu v řečeném prvním zařízení; řečená inteligentní karta obsahuje: řečené první zařízení obsahující virtuální stroj, řečený virtuální stroj obsahující prostředky pro zavedení a interpretaci řičeného počítačového programu, řečené prostředky pro zavedení a interpretaci jsou dále přizpůsobeny pro zavedení a interpretaci řečené alespoň jedné programové instrukce závislé na předem definované bezpečnostní podmínce potom co řečené prostředky pro zavedení a interpretaci zavedly řečený počítačový program a zatímco ·♦»· • 4 · · *4 • 4 *4
4 • 4 • 4 • 4 «*·
4 4 4 4 4
44 444 444
4 4 4 4 «<44 řečený počítačový program je v provozu: a prováděcí prostředky pro provedení řečeného zavedeného a interpretovaného počítačového programu s řečeným modifikovaným chováním při odezvě na řečenou zavedenou a interpretovanou programovou instrukci.
Tento vynález také poskytuje transakční systém pro provedeni transakcí mezi prvním zařízením a druhým zařízením, řečený systém obsahuje: virtuální stroj pro interpretaci v něm použité sady symbolů oprávnění zakázkových bytových kódů: řečený virtuální siroj obsahující virtuální proč sorovou jednotku a prostor pro psaní/zápis logických adres: alespoň jeden první aplikační program obsahující údaj o velikosti prostoru pro Čtení/zápis logických ulfi > potřebného pro jeho provedení, řečený alespoň jeden první aplikační program je napsán jako proud symbolů oprávnění vybraných z řečené sady symbolů oprávnění a odpovídajících vložených dat: řečení virtuální stroj také obsahuje naváděcí program pro zavedení řečeného alespoň jednoho prvního aplikačního programu; a prostředky pro přidělení první velikosti prostoru pro čtení/zápis logických adres specificky pro řečený alespoň jeden první aplikační program v souladu s řečeným údajem, řečený přidělený prostor pro čtení/zápis logických adres má definované a chráněné meze. První zařízení v souladu s tímto vynálezem může být osobní počítač připojený na internet a provozující prohledávací standardní program, požadavek. Že každý modul přijatý prohledávacím standardním programem musí obsahovat údaj o jeho pov alavcích na pamft, zlepšuje bezpečnost prohledávacího standardního programu a omezuje poškození, které by mohlo být způsobeno jakýmkoli virem obsaženým v přejímaném modulu.
0
Β «*« Β « Β
ΒΒ
Tento vynález poskytuje terminál obsahující první zařízení pro provedení transakcí s druhým zařízením, řečené první zařízení obsahuje: virtuální stroj pro interpretaci v něm použité sady symbolů oprávnění zakázkových bytových kódů; řečený virtuální stiuj obsahující virtuální procesorovou jednotku a prostor pro čtení/zápis logických adres: alespoň jeden první aplikační program obsahující údaj o velikosti prostoru pro čtení/zápis logických adres potřebného pro jeho provedení a první výlučný seznam al· spoří jedné funkce, která můře být převedena do jiných aplikačních programů, řečení al· poŮ jeden první aplikační program je napsán jako proud symbolů oprávnění vybraných z řečené sady symbolťi oprávnění a odpovídajících vlažených dat: řečený virtuální stroj také obsahuje zaváděcí program pro zavedení řečeného alespoň jednoho prvního aplikačního programu: a prostředky pro přidělení první velikosti prostoru pro čtení/zápis logických adres specificky pro řečený alespoň jeden první aplikační program v souladu s řečeným údajem, řečený přidělený prostor pro čtení/zápis logických adres má definované a chráněné hιυ ni ce.
TchIo vynález může také poskytnout do sebe uzavřenou pře usnou inteligentní kartu obsahující první zařízení pro provedení transakce s druhým zařízením, řečené první zařízeni obsahuje: virtuální stroj pro interpretaci v něm použité sady symbolů oprávnění zakázkových bytových kódů: řečený virtuální stroj obsahující virtuální procesorovou jednotku a prostor pro čtení/zápis logických adres: alespoň jeden první aplikační program obsahující údaj o velikosti prostoru pro čtení/zápis logických adres potřebného pro jeho provedení, řečený alespoň jeden první aplikační program je napsán jako proud symbolů oprávněni vybraných z řečené sady symbolů
• φ • · · * · « β φ · « ♦ φ · • · · «·»«·· • · ♦ V · Φ • Φ ·« ·» ·· φ» oprávnění a odpovídajících vložených dat: řečený virtuální stroj také obsahuje: zaváděcí program pro zavedení řečeného alespoň jednoho pjcního aplikačního programu: a prostředky pro přidělení první velikosti prostoju pju čtení/zápis logických adres specificky pru řečený alespoň jeden pivní aplikační program v souladu s řečeným údajem. řečený přidělený prostor pro čtení/zápis logických adres má definované a chráněné hranice.
Tento systém může také poskytnout transakční systém pro provádění transakcí mezi prvním zařízením a druhým zařízením, alespoň jedno z řečené’ > |,vního a druhého zařízení je karta s integrovanými obvody, řečený systém obsahuje: virtuální stroj pro interpretaci v něm použité sady symbolu oprávnění zakázkových bytových kódů: řečený virtuální stroj obsahující virtuální procesorovou jednotku a prostor pro čtení/zápis logických adres: .1 ! esp->ň jednu bázi dat obsahující alespoň jeden záznam a alespoň jeden počítačový program pro provedení řečeným virtuálním strojem, řečený počítačový program je modul napsaný ve formě proudu řečených symbolů oprávnění vybraných z řečené sady a obsahující údaj o velikosti prostoru pro čtení/zápis no inici a 1 izovaných logiclých mlres potřebného pro provedení řečeného modulu: zaváděcí program pro zavedení řeč .din modulu a pro přidělení požadovaně velikosti prostoru neinicializovaných logických adres v souladu s řečeným údajem; a prostředky pro přístup k záznamu v řečené bázi dat. záznamy v řečené bázi dat jsi ' přístupné jen prostřednictvím řečeného modulu a řečené prostředky pro přístup poskytují okno do běžného záznamu v řečené bázi dat a kopírují řečený záznam do části prostoru pro čtení/zápis neinicializovaných logických adi ·, adresovatelného řečeným aplikačním programem.
«*·· φ *· *··* fefe »* • ·· fefe fe fe · ♦ « • * fefefe fe»·* « ««fefe fe · »·· fe·· «·· «fefefe * · • fe fefefe fefe <fe ·· fe·
Dále tento vynález může také poskytnout terminál obsahující první zařízení pro provedení transakcí s druhým zařízením, alespoň jedno z řečeného prvního a druhého zařízení je karta s integrovanými obvody. řečené první zařízení obsahuje: virtuální stroj pro interpretaci v něm použité sady symbolů oprávnění zakázkových bytových kódů: řečený virtuální stroj obsahující virtuální procesorovou jednotku a prostor pro čtení/zápis logických adres: alespoň jednu bázi dat obsahující alespoň jeden záznam a alespoň jeden počítačový program pro provedení řečeným virtuálním strojem, řečený počítačoví' program je modul napsaný ve formě proudu symbolů oprávnění vybraných z řečené sady a obsahující údaj o velikosti prostoru pro čtení/zápis ne inici a 1 izovanýeh logických adres potřebného pro provedení řečeného modulu:
i vádě í program pro za* deu í řečeného modulu a po přidělení velikosti prostoru ne i π ici a 1 izovanýeh logických adres v s> iί i du s řečeným údajem: a prostředky pro přístup k záznamu v řečené bázi dat, záznamy v řečené bázi dat jsou přístupné jen prostřednictvím řečeného modulu a řečené prostředky pro přístup poskytují okno Ίο běžného záznamu v řečené bázi dat a kopírují řečený záznam do Části řečeného prostoru pro čtení/zápis neinicia liz ováných logických adresovatelného řečeným aplikačním programem.
a dr e
Tento vynález může poskytnout do sebe uzavřenou přenosnou inteligentní kartu obsahující první zařízení pro provedení transakce s druhým zařízením, řečené první zařízení obsahuje: virtuální stroj pro interpretaci učiň použité sady symbolů oprávnění zakázkových bytových kódů: řečený virtuální stroj obsahující virtuální procesorovou jednotku a prostor pro čtení/zápis logických adres: alespoň jednu bázi dat
3
obsahující alespoň jeden záznam a alespoň jeden počítačový program pro provedení řečeným virtuálním strojem, řečený počítačový program je modul napsaný ve formě proudu symbolů oprávnění vybraných z řečené sady a obsahující údaj o velikosti prostoru pro čtení/zápis ne inici a 1 izovaných logických adres potřebného pro provedení řečeného modulu; zaváděcí program pro zavedení řečeného modu Iu a pro přidělení požadované velikosti prostoru ne i n ici a 1 izovaných logických adres v souladu s řečeným údajem; a prostředky pro přístup k záznamu v řečené bázi dat, záznamy v řečené bázi dat jsou přístupné jen prostřednictvím řečeného modulu, řečené prostředky pro přístup poskytují okno do běžného záznamu v řečené bázi dat a kopírují řečený záznam do části řečeného prostoru pro čtení/zápis ne i π ici a 1 izovaných logických adres adresovatelného řečeným aplikačním programem.
Tento vynález poskytuje také způsob pro provedení transakce mezi prvním zařízením a druhým zařízením, alespoň jedno z řečeného prvního a druhého zařízení je karta s integrovanými obvody, obsahující: poskytnutí alespoň jedné programové instrukce v řečeném druhém zařízení schopné alespoň modifikovat chování časového provedení počíiačovčho programu v řečeném prvním zařízení; zavedení a interpretaci řečeného počítačového programu, zavedení a interpretaci alespoň jedné programové instrukce závislé na předem definované bezpečnostní podmínce, zatímco je řečený počítačový program v provozu; a provedení řečeného zavedeného a interpretovaného počítačového programu s řečeným modifikovaným chováním při odezvě na řečenou zavedenou a interpretovanou programovou instrukci.
Tento vynález poskytuje také způsob provedení transakce mezi prvním zařízením a druhým zařízením, obsahující: interpretaci alespoň jednoho aplikačního programu napsaného jako proud symbolů oprávnění bytových kódů vybraných ze sady symbolů oprávnění a odpovídajících vložených dat; zavedení řečeného alespoň jednoho aplikačního programu; přidělení první velikosti prostoru pro čtení/zápis logických adres specificky pro řečený alespoň jeden aplikační program v souladu s údajem obsaženým uvnitř řečeného aplikačního programu o velikosti prostoru pro čtení/zápis logických adres potřebného pro jeho provedení a definování a ochrana hranic řečeného přiděleného prostoru pro čtení/zápis logických adres. Tento způsob kombinuje použití interpretačního programu s přidělením a podle volby s přímým uvolněním paměti. Toto poskytuje smíšení pružnosti a přenosnosti při poskytnutí záruk na dobu provozu potom co byl aplikační program v komplilaČní etapě úplně zkontrolován. To zmenšuje poškození, které by mohlo být způsobeno viry v přejatých aplikačních modulech.
Tento vynález obsahuje také způsob provedení transakčního systému mezi prvním zařízením a druhým zařízením, alespoň jedno z řečeného prvního a druhého zařízení je karta s integrovanými obvody, obsahující: interpretaci symbolů oprávnění v modulu napsaném ve formě piuudu řečených symbolů oprávnění vybraných ze sady symbolů oprávnění, přidělení velikosti prostoru ne inici a 1 izovaných logických adres v souladu s údajem v řečeném modulu o velikosti prostoru pro čtení/zápis ne inici a 1 izovaných logických adres potřebného pro provedení řečeného modulu; přístup k záznamu v bázi dat poskytnutím okna do běžného záznamu v řečené bázi dat, záznamy v bázi dat jsou přístupné jen pomocí řečeného modulu; a kopírování řečeného záznamu do části řečeného prostoru pro čtení/zápis neinici a 1 i zovaných logických adres adresovatelného řečeným modulem.
* · ···· ·· ··
Tento vynález také obsahuje způsob provedení transakce mezi prvním zařízením a druhým zařízením, alespoň jedno z řečeného prvního a druhého zařízení je karta s integrovanými obvody, obsahující: poskytnutí přenosného virtuálního stroje obsahujícího virtuální mikroprocesor a budič pro alespoň jedno vstupní/výstupní zařízení; interpretující počítačový program v řečeném prvním zařízení použitím řečeného přenosného virtuálního Arojc; a prováděcí řečený program v odezvě na řečený interpretovaný program.
V souladu s tímto vynálezem je poskytnut bezpečný transakční řídicí systém, který s výhodou obsahuje přenosný virtuální mikroprocesor. Každý modul s výhodou vlastní sadu prostorů virtuálních adres zaručených tak, aby byly oddělené od jakéhokoli jiného prostoru virtuálních adres. Přenosný virtuální mikroprocesor také s výhodou chrání přístup ke sdíleným zdrojům takovým, jako jsou rozličné zásobníky a báze dat. Minimální ochranou je s výhodou pamčF kontrolující hranice přístupu k prostoru dat pro čtení a zápis a absolutní zákaz zápisu do prostoru kódů. Dále se preferuje kontrola pro nenaplnění a přeplnění dat a zásobníků návratu. S výhodou může modul přistoupit jen k tomu, co nějaký jiný modul přímo převádí. S výhodou neexistuje cesta, aby se mohlo přistoupit k nepřevedeným datům (virtuální mikroprocesor nepropouští) s výjimkou přístupu prostřednictvím funkcí poskytnutých modulem. Moduly s výhodou nemohou převést data v obvyklém smyslu; moduly mohou s výhodou převést jen funkce. Logické hranice s výhodou zakazují propouštění prostoru dat. Jinými slovy všechna data vlastněná modulem jsou s výhodou přísně soukromá. Toto omezení je s výhodou vnuceno jak v době ·· ··4 · • · • · • · fcfcfc · · · · • · fcfc · · * · · · · · · fcfcfc fcfcfc* · · fcfc ··· ·· ·· fc· ·· kompilace, tak v době provozu, protože moduly mají oddělené prostory adres, což znamená, že adresa nějakých dat uvnitř nějakého modulu je úplně bez významu mimo její vlastnící modul. Modul může s výhodou převést jen sadu uchopení pro spuštění nebo vypnutí urěitého chování. Moduly s dobrým chováním budou s výhodou v bezvadném v provozu, zatímco moduly s ne tak dobrým chováním budou náhle ukoněeny výjimkami přímo vhozenými přenosným virtuálním mikroprocesorem, když je udělán pokus o nelegální provoz.
Závislé nároky definují jednotlivá provedení tohoto vynálezu. Tento vynález, jeho provedení a výhody budou nyní popsány s odvoláním na následující obrázky.
Přehled obrázků na výkresech
Obr. 1 je schematické znázornění terminálu v souladu s tímto vynálezem.
Obr. 2 je schematické znázornění ICC v souladu s tímto vynálezem.
Obr. 3 je schematický vývojový diagram procesu vývoje a provedení modulu v souladu s tímto vynálezem.
Obr. 4 je schematické znázornění přenosného vertikálního mikroprocesoru v souladu s tímto vynálezem, jak je realizován v terminálu.
Obr. 5 je schematické znázornění přenosného vertikálního mikroprocesoru v souladu s tímto vynálezem.
Obr. 6 je schematické znázornění modulů zavedených do paměti v souladu s tímto vynálezem.
Obr. 7 je schematické znázornění způsobu získání přístupu do záznamu v bázi dat v souladu s tímto vynálezem.
Obr. 8 je schematické znázornění postupu zástrčky a zásuvky
v souladu s tímto vynálezem.
Obr. 9 je vývojový diagram procedury zavedení modulu podle tohoto vynálezu.
Obr. 10 je vývojový diagram procedury provedení modulu podle tohoto vynálezu.
Obr. 11 je vývojový diagram procedury zasunutí do zásuvky podle tohoto vynálezu.
Obr. 12 je vývojový diagram procedury zavedení modulu karty v souladu s tímto vynálezem.
Dodatek uvádí kódy symbolů oprávnění a standardní výjimky.
Příklady provedení vvnálezu
Tento vynález bude dále popsán s odvoláním na zvláštní obrázky a určitá provedení, ale vynález není na ně omezen, je omezen jen nároky. Obrázky jsou jen schematické a nejsou omezující. Tento vynález bude dále popsán s odvoláním na finanční transakce, ale vynález na ně není omezen. Tento vynález bude dále popsán hlavně s odvoláním na terminál, ale tento vynález také obsahuje v souladu s tímto vynálezem poskytnutí přenosného virtuálního mikroprocesoru na jakémkoli vhodném zařízení, např. osobním počítači (PC - personál Computer). ICC nebo kombinované ICC a rozhraní, jak je popsáno v W094/10657, která je zde začleněna jako odvolávka.
Obecná spojující technická koncepce, na které je vynález založen, je přenosnost kombinovaná s bezpečností dat a zárukami doby provozu v transakčním systému, které jsou nezávislé na cílové realizaci za předpokladu, že kontroly kompilačního času projdou úspěšně. Této koncepce se dosáhne jednou nebo více následujícími základními vlastnostmi:
použitím virtuálního stroje jako interpretačního programu, obsahujícího budič pro zařízení vstupu a výstupu (I/0) ve virtuálním stroji, takže aplikační programy mají společné rozhraní se vstupni mi/výstupni mi (1/0) zařízeními a jsou proto přenosné přes široce rozdílná prostředí, obsahující údaj o velikosti paměti v aplikačním programu a přidělující paměť v souladu s údajem, přímo uvolňující paměť a poskytující bezpečnou cestu pro přejmutí a převedení dat do a z aplikačních programů a/nebo bází dat.
Obr. 1 je schematické znázornění terminálu i v souladu s tímto vynálezem. Terminál i typicky obsahuje ústřední procesorovou jednotku (CPU - centrál processor unit) 2, která je spojena s pamětí 4a vstupními/výstupnimi (3/0) zařízeními 6 přes sběrnici 3. pro komunikaci ve dvou směrech. 1/0 zařízení 6 mohou být klávesnice pro vkládání dat a stínítko takové, jako je vizuální zobrazovací jednotka, např. displej s tekutými krystaly (LCD - liquid crystal display) nebo displej se svítícími diodami (LED - light emitting diodě) pro zobrazení postupu transakce a/nebo pro zobrazení zpráv nebo výzev. Jedno z 1/0 zařízení 6 může být čtečka 2 karet, pomocí které může být čtena ICC 2 když je zavedena do přijímací drážky v Čtečce 2· Skutečný tvar terminálu se může značně měnit, např. může být terminálem místa prodeje (POS - point of sále) a může obsahovat procesory od Intel 8051 k Pentium^. Dále není nutné, aby terminál 2 byl celý umístěn v jediném místě, různé části terminálu, takové jako je čtečka 2 karet, zařízení 1/0, takové jako klávesnice a displej a procesor, mohou být umístěny v různých polohách a spojeny kabely, bezdrátovým přenosem nebo podobně nebo mohou být částí sítě místní oblasti nebo mohou být propojeny telekomunikačními s í těmi.
φφφφ • Φ φφφφ φ φ φ φ φ · φ φ φ φ φ φ φ φ φφ φ φφ ΦΦΦΦΦΦ φ · · φ φ · φ φφ φφ «φ φφ
Obr. 2 je schematické znázornění ICC 5. v souladu s tímto vynálezem. Tento vynález však není omezen jen na toto. ICC 5. obsahuje alespoň bránu 10 vstupu/výstupu ( I/0) a nějakou permanentní paměť, např. energeticky nezávislou paměť, která může být např. poskytnuta EEPROM 15 spojenou s bránou 10 I/0 přes sběrnici 17 nebo paměť s libovolným výběrem {RAM random access memory) s podporou baterie. Brána 10 I/O může být použita ke komunikaci s terminálem i přes ětečku J_ karet. Karta s integrovanými obvody je karta, do které je vložen jeden nebo více integrovaných obvodů, aby prováděly alespoň funkce paměti. ICC 5. může být podle volby do sebe uzavřená přenosná inteligentní karta a může obsahovat pracovní paměť pro ětení/zápis, např. energeticky závislou paměť poskytnutou RAM 14, a ústřední procesor 1 2 , stejně tak jako všechny potřebné obvody, takže karta ICC 5 může pracovat jako mikroprocesor, např. jako permanentní paměť 13 pro uložení kódu, třídiě 16 a spojení s čtečkou 2 karet pro příjem napěťových zdrojů Vss a VDD, obnovení pro procesor 12 a hodiny CLK k třídiči 16. V souladu s tímto vynálezem může být ICC 5 použita jako bankovní karta, kreditní karta, debetní karta, elektronická peněženka, zdravotní karta, karta SIM a pod.
Tento vynález poskytuje integrovaným obvodem řízený transakční řídicí systém určený k provádění transakce mezi ICC 5 a terminálem 2, připojeným nebo nepřipojeným na ústřední jednotku, transakce se skládá z alespoň jednoho provedení následující sekvence:
1. Vytvoření komunikačního spojení mezi ICC 5. a terminálem 2;
2. Provedení kontroly slučitelnosti k zajištění toho, že ICC 5. a terminál 2 jsou mechanicky a elektricky slučitelné;
• · 0 0 0 0
0 • · · · 0 0 0 0 · · · 0 0 0 0 0 0 0 0·0 000
000 0000 0 0
3. Výběr aplikace obsahující výběr počítačového programu a připojené sady dat, které definují transakci ve formě specifické dotyčné kombinace ICC 5 a terminálu J_;
4. Provedení aplikace;
5. Ukončení transakce, což podle volby obsahuje přerušení komunikačního spojení mezi ICC 5. a terminálem X; tím se v
interpretační program použije k provedení aplikace bud na ICC .5 nebo na terminálu nebo na obou. Transakce je výměna alespoň dat mezi dvěma nebo více zařízeními a v souladu s tímto vynálezem není specifická pro obchodní finanční transakce. Takový systém je znám z PCT/BE 95/00017. ICC 5. může být jenom paměf ICC, tj. neobsahuje procesor 12 a ICC 5 podstupuje transakci jak je určena terminálem χ. Alternativně může být ICC 5. do sebe uzavřená přenosná inteligentní karta a transakce může být určena terminálem X, ICC 1 nebo oběma. V souladu s tímto vynálezem může ICC 5. obsahovat kód programu, aby bezpečně zvětšil zpracovávání terminálu. ICC 5. může zvláště být jednou nebo více udržovacími kartami, které mohou být použity k aktualizaci aplikací uložených v terminálu 5..
V souladu s tímto vynálezem je software provozován v terminálu X a podle volby v ICC 5. ve formě virtuálního stroje. Virtuální stroj (VM - Virtual machine) v souladu s tímto vynálezem dává přímo k dispozici teoretický nebo virtuální mikroprocesor se standardními charakteristikami, které definují způsob adresování, použití zásobníků, použití registrů, prostor adres, adresování I/O zařízení atd. obecně použitelným způsobem. Jádro pro každý určitý typ CPU, použité v terminálu X nebo ICC 5., je napsáno tak, aby způsobilo, že odpovídající procesor 2, 12 emuluje VM. Specifickým aspektem tohoto vynálezu je to, že jádro pro VM poskytuje budiče pro I/O zařízení a všechny logické a aritmetické funkce CPU nízké «· 9 * ·» 9 99 0
úrovně, řízení toku, manipulaci času. Pořízení budičů I/O v VM má výhodu, protože jakýkoli program napsaný pro VM v souladu s tímto vynálezem, adresuje standardní virtuální I/O zařízení. Realizace VM v určité CPU potom poskytuje fyzickým 1/0 zařízením, připojeným na terminál _1_ nebo ICC 5., aby se chovaly podobně jako adresovaná virtuální I/O zařízení. VM v souladu s tímto vynálezem je velmi kompaktní a byl realizován úspěšně na čipu Siemens SLC044CK (derivát rodiny INTEL 8051), který může být obsažen na ICC 5. VM v souladu s tímto vynálezem umožňuje vysoký stupeň standardizace přes široce rozličné typy CPU a I/O a zjednodušuje přenosnost programu, zkoušení a osvědčení. V souladu s touto aplikací bude takový VM popsán jako přenosný virtuální stroj 20. Přenosný virtuální stroj 20 obsahuje virtuální mikroprocesor a budič pro I/O zařízení. VM 20 poskytuje logické a aritmetické funkce a adresování paměti a alespoň jedno vstupní/výstupní zařízení. Přenosný VM 20 v souladu s tímto vynálezem poskytuje přenositelnost programu přes různorodé terminály i a kartu 5. tím, že zachází s programy terminálu a/nebo kartami jako s mezilehlým kódem kompilujícího programu. Tento kód se skládá z proudu bytových kódů, které mají název symboly oprávnění. Terminály 2 nebo ICC X potom zpracují tento kód jeho interpretací nebo jinými prostředky, takovými jako je přirozená kompilace kódu. Interpretace symbolu oprávnění virtuálním strojem může být s výhodou provedena jednou ze tří metod: přímo interpretujícími instrukcemi virtuálního stroje, překladem jazyka virtuálního stroje do přímo proveditelné přechodné formy nebo její kompilací ve správném čase do skutečného kódu pro cílovou CPU. Později uvedené dvě metody nabízejí zlepšený provoz při mírných nákladech ve složitosti. Symboly oprávnění jsou poskytnuty v sadě, na kterou je možné pohlížet jako na sadu strojových instrukcí pro VM 20.
fcfcfcfc « fcfc ··· fcfc fcfc fcfcfc fcfc · fc · · fc • fc fcfcfc ··· fc · · ♦ · fcfc fcfcfc fcfcfc • fcfc fcfcfcfc fc fc fcfc fcfcfc fcfc fcfc fcfc fcfc
Aplikační programy v souladu s tímto vynálezem jsou provedeny jako moduly, které mohou obsahovat seznam symbolů oprávnění jako proveditelný kód. V souladu s tímto vynálezem existují dva základní typy modulů: proveditelné moduly, které mají vstupní bod, který je přímo volán strojem VM 20, když je modul zaveden, a moduly knihovny, které působí jako zdroje pro jiné moduly poskytnutím převed ite1ných procedur, které mohou být individuálně provedeny mezimodu1ovými voláními.
Sada symbolů oprávnění v souladu s tímto vynálezem obsahuje za prvé sadu instrukcí stroje VM 20 , která poskytuje instrukce očekávané pro obecný zpracovávající jazyk a jsou požadovány pro účinné provedení programů a za druhé symboly oprávnění, které poskytují to, co se normálně nazývá funkce operačního systému. V terminálech _1 nebo kartě 5. obsahují funkce operačního systému v souladu s tímto vynálezem specifické funkce takové, jako jsou budiče l/0, např. pro displeje nebo klávesnice a v terminálech 1 nebo kartě J5 mohou funkce systému obsahovat také řízení komunikace a přenosu datových objektů prostřednict ví m bran I/O a také mezimodulový přístup a mechanizmy kontroly přístupu. Symboly oprávnění jsou s výhodou poskytnuty pro operační systém stroje VM, pro manipulaci zásobníků, pro manipulaci zásuvek, pro kontrolu např. výjimečné manipulace, pro samotné zásuvky obsahující jejich práva přístupu, pro přístup 1/0 zařízení, pro manipulaci času, pro manipulaci jazyka a zpráv, pro manipulaci čteček 1/0, např. ICC, manipulaci s kartami s magnetickým páskem a modemy, pro řízení černých seznamů, pro bezpečnostní algoritmy, pro terminálové služby, pro služby bází dat, pro manipulaci s datovými objekty např. pro manipulaci TLV, pro manipulaci s moduly a rozsáhlou ιι«« Β ·♦ Β··» ·· ··
Β ΒΒ Β · Β · · · · • Β Β · Β ΒΒ·· • Β ΒΒ Β Β · ······ • ΒΒ Β · · β * Β
ΒΒ «ΒΒ ΒΒ ΒΒ ΒΒ Βφ manipulaci s pamětí.
Symboly oprávnění s jediným bytem se uvádějí jako primární symboly oprávnění; ty se vztahují na primitivní instrukce, takové jako jsou běžně nalezené instrukce v jakékoli sadě instrukcí. Symboly oprávnění s mnoha byty se uvádějí jako sekundární symboly oprávnění a jsou používány pro méně často používané služby. Upíná sada symbolů oprávnění pro VM 20 je uvedena v dodatku. Jak je schematicky uvedeno na obr. 3 aplikační program se píše na hlavním vývojovém systému 70 PC a je odladěn a typ je schválen ve vhodném jazyce vysoké úrovně takovém, jako je jazyk Forth, jazyk C, jazyk Pascal atd. Potom je zdrojový kód programu kompilován kompilujícím programem 71 symbolů oprávnění do proudu symbolů oprávnění. Tento proud symbolů oprávnění je odděleně kombinován s jinými daty {odpovídajícími vloženými daty) potřebnými pro program a záhlavím a je uzavřen v souboru dodávaného modulu k vytvoření modulu 72 s výhodou ve standardizovaném formátu dodávaného modulu. Jestliže modul obsahuje proveditelné symboly oprávnění, je dodán v proveditelném programovém formátu. Je to zvláštní aspekt tohoto vynálezu, že proveditelné moduly obsahují nejenom proud symbolů oprávnění, ale také všechna odpovídající vložená data (uzavřená). Zvláštní další a oddělený aspekt tohoto vynálezu tkví v tom, Že moduly v souladu s tímto vynálezem obsahují údaj, kolik paměti pro čtení/zápis by mělo být strojem VM 20 přiděleno pro provedení modulu.
Modul 72 je dodán do terminálu 2 jakýmikoli vhodnými prostředky, např. ICC 2 přes telekomunikační sít. Po přesunutí modulu je modul uložen do schránky modulů. Když je požadována jeho funkce, použije terminál 2 nebo karta 5 ·«·· « «· ««·« ·« ·* « · · · » «··· • · · · · · · · · • · · « · 9 9 999 999
9 9 9 9 9 9 · · ·· a»· ·* 99 99 99 zaváděcí/interpretační program 7 3 symbolů oprávnění, aby zpracoval symboly oprávnění k provedení v CPU 2 terminálu. Tento proces se skládá z provedení funkce připojené ke každému symbolu oprávnění. Zaváděcí/interpretační program 72 symbolů oprávnění je poskytnut strojem VM 20 v souladu s tímto vynálezem.
Software vztažený v terminálu i k VM může být rozdělen na Čtyři hlavní kategorie:
Jádro, které obsahuje realizace budiCů 1/0 závislé na terminálu a všechny funkce požadované v této specifikaci pro podporu VM 20. Každý jiný software vztažený k VM 20 je napsán v symbolech oprávnění závislých na stroji.
Trvale uložené služby terminálu (TRS - Terminál Resident Services) tvoří alespoň jeden modul, který je provozován na VM 20 jako řídicí program aplikací a obsahuje vSechny neaplikaCní funkce, knihovny podporující tyto funkce, funkce zavádění modulů a hlavní smyCku definující chování terminálu. Speciální symboly oprávnění (např. DIOCTL) umožňují aspekty 1/0 zařízení závislé na terminálu, které mají být definovány jako vložené funkce.
• Vybrané služby terminálu (TSS - Terminál Selected Services) obsahují takové aplikace jako funkce platebních služeb a knihovny podporující tyto služby. TSS obsahují jen symboly oprávnění nezávislé na terminálu a jsou trvale uloženy v terminálu _1_, Hlavní programová smyCka TRS vybere a zavolá funkce TSS, jak jsou potřebné pro urěitou transakci.
Služby vybrané kartou (CSS - Card Selected Services) obsahují funkce podporující terminálové transakce takové, jako jsou funkce platebních služeb, které se používají jako část aplikací TSS. CSS jsou trvale uloženy na ICC 5. a jsou podle požadavku přesunuty do terminálu 1_. Pro terminály i s »44·
4444 • ·· 4 4 · 4 4 4 4 • 4 · · 4 44·· • 4 4 4 4 4 4 444 44« • 44 *444 4 *
444 4« · 4 »4 4» dvěma čtečkami 2 ICC (pozn. překladatele: v originálu nesprávně 8) (např. jedna pro normální transakce a druhá pro údržbu) mohou existovat dvě nezávislé sady CSS (CSS1 a CSS2).
Všechen software v terminálu 2 nad jádrem je v souladu s tímto vynálezem organizován jako sada oddělených modulů. Základní charakteristikou modulu je to, že je sbírkou definicí nebo programových funkcí, které prošly kompilujícím programem 71 symbolů oprávnění a jsou uzavřeny v jediném bloku pro dodání do cílového prostředí, např. do terminálu 2 nebo ICC 5.. Hlavní program (TRS) terminálu, každá aplikace, každá knihovna a každá přesunutá CSS jsou příklady modulů. Všechny moduly s výhodou používají standardní formát. V souladu s tímto vynálezem jádro v systému definuje VM 20. který poskytuje rozličné služby vysoké úrovně těmto modulům, takovým jako je:
• CPU pro obecné účely a instrukční sada, představovaná symboly oprávnění;
• I/O podpora pro obecné účely pro společná zařízení s opatřeními pro obecně použitelné I/O k podpoře přídavných zařízení, která mohou být přidána;
funkce řízení báze dat;
• řízení přenosu datových objektů, obsahující převody formátů a jiné funkce;
• řízení modulů symbolů oprávnění, obsahující jejich údržbu v paměti (aktualizaci jak je to nutné) a provádějící je podle požadavku. V preferovaném provedení tohoto vynálezu zůstává provedení modulů stále pod kontrolou VM 20. Moduly tak nikdy nepřebírají kontrolu základního procesoru, ale jsou vzhledem k VM 20 pouze pasivní. VM 20 s výhodou vždy pracuje v dohlížecím způsobu a může provést jen instrukce definované ve formě jeho sady symbolů oprávnění a žádný modul nemůže
• · ·· - · » . * · • ·. · »
pracovat uživatelským způsobem, tj . uv a žu j/ kontrolu stroje VM 20, Tak při realizaci VM 20 použitím mapy paměti může být vytvořena Jen jedna mapa paměti, a to mapa dohlížecího l'i ogramu .
Žádný modul · '-může ohrozit operaCní systém doFinovaný strojem VM 20. Toto je zajištěno, protože modul může obsahovat jen symboly oprávnění ze sady symbolů oprávnění VM a žádný z třXito symbolů oprávnění nedovoluje přístup do prostoru kódů. kde je uloženo jádro. Jestliže dojde k setkání VM 20 sc symbol iii oprávnění, který Ježí mimo definovanou sadu, je vhozena vý j : ’:a (ILLOP).
Jak je schematicky uvedeno na obr. 4 terminál J obsahuje terminálový specifický operační systém SO (pozn. pYek ladt f e l e : v originálu nesprávní $) terminálu o'povědný z.': zavedeni modulu TRS si. loje VM 20 (zaváděcí procedíme j<popsána dál?). Kód pro VM 20 je uh žen v permanentní en rge t i e'-. y nezávislé paměti J.l,. Před zavedením TRS jc terminálová energeticky závislá paměť 19 terminálu vyprázdněna od všech dat vztažených na transakci, energeticky nezávislá paměť PS terminálu pro čtení/zápis obsahuje aplikace, které mají být provedeny s'rojem VM 20. ve formě modulů 72 ve schránce modulů, energeticky nezávislé báze dat obsahují specifická data uživatele a knihovny takové, jako je za únorate1ná knihovna., která bude popsána později. Jestliže je VM 20 realizován také na ICC 5. použijí se stejné principy, jak byly popsány výše, vzhledem k permanentní energeticky nezávislé paměti 13, energeticky závislé paměti 14 a energeticky nezávislé paměti 15 pro čtení/zápis ICC 5.
Protože VM 20 je virtuální stroj, adresuje všechny formy ♦ 00 0
0 0* ·
0 · 0 0 0 •0 00» ·* 00 pamětí 11 , 18. 19; _13., 14 , 15 terminálu nebo ICC jako virtuální paměť, tj. všechny jsou z pohledu VM 20 adresovány v prostoru logických adres. Ve skutečném provedení VM 20 jsou tyto prostory logických adres mapovány do skutečných prostorů adres v paměti terminálu i nebo ICC 5. mapou paměti nebo podobně. V dalším bude udělána odvolávka na energeticky závislou paměť, energeticky nezávislou paměť pro Čtení/zápis a permanentní energeticky nezávislou paměť, které jsou částí VM 20. Je třeba pochopit, že toto se vztahuje na prostor logicky adresované paměti, pokud není udělána specifická zmínka o skutečných adresách v realizaci VM 20 v terminálu 1 nebo ICC 5.. Energeticky závislá paměť nevydrží zavedení programu nebo vypnutí zdroje a/nebo znovu spuštění. Energeticky závislá paměť s výhodou nevydrží z bezpečnostních důvodů vypnutí zdroje. Energeticky nezávislá paměť vydrží zavedení programu, vypnutí zdroje nebo znovu spuštění.
Popis virtuálního stroje
Schematické znázornění stroje VM 20 v souladu s tímto vynálezem je uvedeno na obr. 5. VM 20 je s výhodou zásobníkový stroj a má ukazatel zásobníku dat (uložený v registru 32 ukazatele zásobníku dat), který ukáže na zásobník 27 dat s výhodou v paměti na čipu. Všechny operace se provedou na tomto zásobníku 27 . Zásobník 27 dat se používá k tomu, aby obsahoval parametry procedur a dočasné výsledky z vyhodnocení výrazů. Data jsou rychle zasunuta nebo vyjmuta ze zásobníku 27 dat. VM 20 obsahuje také zásobník 28 návratu. Zásobník 28 návratu může být strojem VM 20 použit, aby obsahoval adresy návratu a může být také použit jako dočasná paměť. Tato násobná architektura zásobníků je známá z programovacího jazyka Fvrth (ANSI X3.215-1994). Tato ·· · · ·· ·*·« ft* ftft* ♦ · · • ftft ft· ·· architektura byla dále modifikována pro přenosnost, hustotu kódů, bezpečnost, snadnou kompilaci a pro použití s jinými programovacími jazyky. Obsahuje např. opatření pro místní proměnné rámce používané v programovacích jazycích vysoké úrovně takových, jako je jazyk C. Kompilující programy 7 1 symbolů oprávnění mohou tak být v souladu s tímto vynálezem napsány nejen v jazyku Forth, ale také v jazyku C a jiných programovacích jazycích.
souladu s tímto vynálezem je k VM 20 připojen jen jeden zásobník 27 dat a jeden zásobník 28 návratu. Zásobník 27 dat a zásobník 28 návratu nejsou vytvořeny pro každé vlákno zpracování. V souladu s tímto vynálezem mohou aplikační programy vyhledat ze zásobníku 28 návratu jen to, co do něj uvnitř běžné procedury výslovně vložily a musí odstranit data umístěná v zásobníku 28 návratu během běžné procedury před vystoupením z procedury. VM 20 také podle volby obsahuje bezpečnostní řídicí program pro poskytnutí integrity doby provozu a který monitoruje každou aktivitu v zásobníku návratu a kontroluje všechna data odstraněná během běžné procedury. V dodatku k datům tam umístěným výslovně pro přechodné uložení, může VM 20 obsahovat stavovou informaci pro výjimečné provedení, rámce pro místní proměnné, kontrolní parametry smyčky a souvislost báze dat v zásobníku 28 návratu.
V souladu s tímto vynálezem může VM 20 obsahovat množství zásobníků. Např. spíše než použít jen zásobník 28 návratu mohou být podle volby poskytnuty další zásobníky 29 , takové jako je zásobník výjimek nebo zásobník rámců. Zásobník výjimek se používá k uložení provedení stavu během výjimečného provedení. Zásobník rámců se používá k udržování • fcfcfc • fc · · · * fcfc · * • · · · fc fcfcfc fcfcfc • fc fcfc ·· fc· ·’ místních proměnných informací a také k aktívizačním záznamům jazyků podobných jazyku C. Jak bylo zmíněno výše, zásobníky 29 výjimek a rámců mohou být realizovány v zásobníku 2.8 návratu.
Zásobník 27 dat a zásobník 28 návratu a jiné zásobníky 29, takové jako zásobník výjimek, nejsou v prostoru paměti přímo přístupné žádným aplikačním programem. Zásobník 27 dat a zásobník 28 návratu nemohou být adresovány přímo, jsou přístupné jen přes operace zásobníků. Z bezpečnostních důvodů není žádné omezení na to, jak jsou data uložena ve skutečné realizaci, takže klamající osoby nemohou udělat žádné předpoklady na to, jak jsou Jata fyzicky uložena.
VM 20 obsahuje virtuální ústřední procesorovou jednotku 22, která obsahuje virtuální aritmetickou logickou jednotku (ALU - arithmetic logic unit) 23. VM 20 adresuje prostor 24 virtuálních nebo logických dat, se kterými VM 20 zachází jako s pamětí s libovolným vstupem (RAM) a které by byly normálně realizovány jako část energeticky závislé paměti 19. např. v RAM ve skutečném terminálu i nebo kartě 5, Prostor 24 logických dat je přístupný jen pro uložení dat. Proud symbolů oprávnění modulu je uložen strojem VM 20 v paměti 26 kódů, se kterou VM 20 zachází jako s permanentní pamětí (ROM). Jen VM 20 může číst symboly oprávnění. Paměř 26 kódů není přístupná ani pro aplikační programy, ani pro jakýkoli symbol oprávnění.
VM 20 může také obsahovat virtuální registry 30. Registry 3.0 stroje VM .20 mohou obsahovat registr 31 ukazatele symbolu oprávnění, který obsahuje ukazatel, který ukazuje na příští symbol oprávnění k provedení, registr 32 ukazatele zásobníku φφ · φ • φ φ φ φ φ dat, který obsahuje ukazatel, který ukazuje na běžný vrchol místa zásobníku 27 dat (TOS - top of data stack), registr 3 3 ukazatele zásobníku návratu, který obsahuje ukazatel, který ukazuje na běžný vrchol místa zásobníku návratu, registr 34 ukazatele rámce, který obsahuje ukazatel, který ukazuje na začátek rámce v prostoru 24 dat, registr 35 ukazatele konce rámce, který obsahuje ukazatel, který ukazuje na konec rámce v prostoru 24 dat. Není poskytnut Žádný přímý přístup do registrů 31 až 36 pomocí sady symbolů oprávnění, ale jen přes symboly oprávnění přístupu k registrům.
Konečně virtuální I/O zařízení 25 jsou spojena s CPU 22 virtuálním sběrni covým sys t émem 21, který spojuje také zásobníky 27 - 29, ALU 23, registry 30, parně í 26 kódů a prostor 24 dat.
VM 20 v souladu s tímto vynálezem je s výhodou definován jako by tově adresovaný, dvoudop1ňkový, 32 b i t ový stroj s 32 bitovými registry a s prvky zásobníků, avšak vynález není na toto omezen. Velikost registru/zásobníku je uváděna jako velikost bulíky VM 20, když buňka je základní manipulační jednotka v zásobnících a u registrů 31 až 36 VM. O velikosti buňky používané strojem VM 20 se neuvažuje, že má materiální dopad na tento vynález.
VSechny programy provozované z modulů musí sledovat následující pravidla:
Programy nesmí uvažovat, že data v jakékoli z výše uvedených kategorií mají zaručeno, že jsou obsažena v zásobníku 28 návratu a tak mohou použít jen vyhledávací mechanismus výlučně specifikovaný pro danou kategorii, protože bezpečnostní řídicí program může odstranit jakákoli
9 9 9*9 99 · *
taková data.
• Programy, které propouštějí data v jedné z těchto kategorií do VM 20 , musí provést vhodnou činnost, aby se zotavilo uložení dat z VM 20 před výstupem z procedury, ve které jsou propuštěna, jinak VM 20 uvolní příslušnou část paměti.
• Programy musí uvažovat, Že jakákoli data dříve umístěná v zásobníku 28 návratu jsou poskytnuta jako nepřístupná při průchodu dat v jedné z těchto kategorií do VM 20.
• Programy musí uvažovat, že jakákoli data v jedné z těchto kategorií, propuštěná do VM 20, jsou poskytnuta jako nepřístupná provedením kódu, který umístí hodnoty do zásobníku 28 návratu až do takové doby, kdy jsou tyto hodnoty odstraněny, protože zásobník návratu je přístupný jen pomocí specifikovaných procedur symbolů oprávnění.
V souladu s tímto vynálezem definuje operační systém stroje VM 20 jediný prostor 24 adres dostupný každému modulu. Tento prostor 24 adres bude přístupný jen pro ukládání dat a bude označován jako prostor dat 24.
Prostor 24 dat je rozdělen do tří a jedné volitelné logické oblasti, z nichž každá je individuálně souvislá:
1. prostor inicializovaných dat 41, který obsahuje počáteční hodnoty specifikované v době kompilace a nastavené když je aktivováno jádro VM a následně, když je zaveden modul obsahující inicializovaná data;
2. prostor neiniciali zovaných dat 42, který obsahuje proměnné a statické vyrovnávací paměti přidělené během kompilace programu. Tento prostor 42 dat je inicializován na nulu strojem VM 20;
3. pamčl 46 rámců, který je řízen symboly oprávnění rámců;
4. podle volby rozšiřitelná parná! 45, která obsahuje jednu
44
444 4
4* nebo více vyrovnávacích pamětí dynamicky přidělených během provádění programu.
Jsou dvě dodatečné oblasti dat, které nejsou přímo adresovatelne:
5. rozšířená parně? 43 typicky velkokapacitní paměť, která se používá, aby obsahovala datové objekty a energeticky závislé báze dat;
6. energeticky nezávislá parně? 44 je používána, aby obsahovala data, která jsou strojem VM 20 zaručena, aby vydržela zavedení modulu nebo vypnutí zdroje nebo znovu spuštění (uvnitř omezení hardwaru terminálu), obsahující schránku modulů a energeticky nezávislé báze dat. To může být realizováno v RAM s podporou baterie, disku nebo jiné stálé paměti. Energeticky nezávislá paměť 44 může být realizována jako část permanentní paměti 18 pro čtení/zápis.
Ke zvětšení bezpečnosti dat je k rozšířené paměti 43 a energeticky nezávislé paměti 44 přístup jen prostřednictvím symbolů oprávnění, které poskytují okna do vybraných dat ve formě vyrovnávacích pamětí v prostoru 4 2 ne inici a 1 izovaných dat. Programátor tudíž může jen požádat o záznam a nemůže znát přesné umístění dat, aby k nim přistoupil. S výhodou tam není ani žádný soubor ani struktura stromu, která by umožňovala programátorovi umístit osobní soubory nebo báze dat.
Uvnitř každého prostoru 24 dat používaného modulem je paměť přidělena relativním adresováním a jen v době provozu. Toto znamená, že adresa má význam jen uvnitř každého modulu, když je zaveden. Absolutní adresování se nepoužívá, není možné, aby modul získal přístup k datům jiného modulu s výjimkou
mechanismu přístupu bezpečnostního modulu, popsaného dále.
Mechanizmus rámce umožňuje VM 20 uspokojit požadavky jazyků, takových jako je jazyk C, které umožňují definovat místní proměnné během doby provozu. Rámec obsahuje parametry procedury, které prošly v zásobníku 27 dat a také jako místní proměnné (dočasné uložení dat, která budou automaticky uvolněna, když je uvolněn rámec, normálně na konci provedení procedury). Ukazatel začátku a konce rámce je automaticky udržován strojem VM 20 uvnitř rámce. Registr 34 ukazatele rámce ukazuje logickou základnu rámce a ukazatel 25 konce rámce ukazuje logický konec rámce v prostoru 24 dat. Parametry mohou být vyvolány z rámce použitím symbolů oprávnění pro přístup k rámci.
VM 2_Q. může podle volby poskytovat dynamicky přidělenou společnou oblast rozšiřitelné paměti 45 jako jediné rozšiřitelné vyrovnávací paměti řízené strojem VM 20, která se objeví mimo prostor 42 ne inici a lizovaných dat programu. Programy mohou požadovat přidělení specifikované velikosti rozšiřitelné paměti 45 a vrací ukazatel do základní adresy pro tu paměť 45 . Následně mohou programy uvolnit paměť 45 z dané adresy, např. při ukončení programu, způsobením toho, aby všechna přidělení za tou adresou byla uvolněna.
Dává se přednost tomu, aby moduly byly provedeny v jediném vláknu dat, ale vynález není na toto omezen. To znamená, že volá-li jeden modul druhý modul, ukončí druhý modul a všechny zdroje druhého modulu jsou uvolněny před tím, než VM 20 se vrátí k prvnímu modulu a pokračuje ve zpracování. Obr. 6 uvádí schematické znázornění logické paměti z pohledu VM 20. Jak je schematicky uvedeno na obr, 6, první modul (vlevo) s • · · · » · · * » 0 0 ·
000 ··· inicializovanou pamětí 41 , neinicial izovanou pamětí 42 a pamětí 46 rámců a prostorem 26 kódů symbolů oprávnění, byl zaveden do paměti pro čtení/zápis počínaje adresou 1. První modul také volal a byl přidělen do části 45 rozšiřitelné vyrovnávací paměti. Když je druhý modul (vpravo) volán prvním modulem (např. pro přejmutí funkce fgh, která je ve výlučném seznamu v záhlaví modulu 1 funkcí, které mohou být přejaty), je prostor 24 ’ dat, obsahující inicializovanou paměť 41’, neinicializovanou paměť 42’ a paměť 46’ rámců, přidělen jako požadovaný začátek v adrese 2. Symboly oprávnění modulu 2 jsou přečteny přímo strojem VM 20 ze schránky modulů, což je dovolené volba v souladu s tímto vynálezem. Při volání z modulu 2 je rozšiřitelná paměť 45 ’ pro druhý modul přidělena strojem VM 20 v paměti větší než v rozšiřitelné paměti 45 pro první modul. Když je druhý modul dokončen, je uvolněna celá paměť nad adresou 4 (metoda pružných Čar). Všechna dočasně uložená data jsou s výhodou při uvolnění vymazána. Jestliže je to nutné, mohlo by být při návratu k prvnímu modulu voláno více rozšiřitelné paměti 45.. Jestliže je potom druhý modul volán znovu, bude pro rozšiřitelnou paměť 45’přidělena rozdílná zahajovací adresa, než když byl modul volán poprvé.
U všech symbolů oprávnění, mimo symboly oprávnění EXTEND, CEXTEND a RELEASE řídicí rozšiřitelnou paměť a symbolů oprávnění THROW a QTHROW pro výjimečné zpracování, se požaduje, aby neměly žádný čistý účinek na ukazatel rozšiřitelné paměti. Jestliže symbol oprávnění přidělí rozšiřitelnou paměť 45 , musí ji také uvolnit, včetně jakéhokoli účinku na vyrovnání buněk. Postupná přidělení rozšiřitelné paměti 45 jsou s výhodou sousedící uvnitř modulu, ale nemusí být sousedící mezi moduly, kromě toho, ze mezimodulová volání, používající symboly oprávnění IMCALL • · nebo DOSOCKET, zachovají sousedství. K automatickému uvolnění dynamicky přidělené rozšiřitelné paměti 45 má dojít, když je dokončeno provedení modulu, omezením účinků selhání programu pro čisté uvolnění paměti. Dále jestliže se vyskytne výjimka THROW, může být přidělení dynamicky přidělené rozšiřitelné paměti 45 obnoveno na její podmínku v době působení výjimky CATCH.
Proměnné uživatele jsou proměnné velikosti buňky, ve kterých VM 20 má pro programy klientů informace o souvislostech. Paměť pro proměnné uživatele je předem přidělena strojem VM
20. Může být poskytnut omezený počet proměnných, např. šestnáct proměnných (označených jako 0 až 15). Realizace VM 20, která podporuje souběžné zpracování úloh, může poskytnout jednu sadu proměnných uživatele pro každý úkol.
VM 20 poskytuje jediný mechanizmus pro manipulaci s výjimkou přes symboly oprávnění CATCH, THROW a QTHROW. Tyto symboly oprávnění jsou odvozeny z mechanizmu zpracování výjimky Lisp a vyskytují se v ANS Forth jako CATCH a THROW. Cílem tohoto mechanizmu je poskytnout místní manipulaci s výjimkami při kontrole programu na rozličných úrovních softwaru. Koncepce tkví v tom, že program projde ukazatelem provedení funkce k symbolu oprávnění CATCH, který provede tuto funkcí a vrátí kód ukazující jaká výjimka, je-li nějaká, se vyskytla během jejího provedení. CATCH zaznamená informaci závislou na realizaci, která je dostatečná pro obnovení jejího běžného stavu provedení, když by se měl objevit symbol THROW ve funkci prošlé pro provedení CATCH. Toto obsahuje (ale není omezeno na toto) hloubky zásobníků dat a návratu, ukazatel rámce a v některých případech ukazatel rozšiřitelné paměti. Sbírka informací představu jící stav provedení se označuje • « «»· ··<
I • * · · jako rámec výjimek. Rámce výjimek jsou obsaženy v zásobníku výjimek. Program může po CATCH přezkoušet jakýkoli kód výjimky, který mohl být vrácen a zvolí, aby byl manipulován místně nebo jej vhodí (THROW) do vyšší úrovně pro zpracování. VM 20 poskytuje standardní hodnotu nejvzdá 1enější úrovně, na které budou výjimky chyceny. Tato nejvzdá 1enější úroveň bude aktivována, když nebyla vytvořena žádná vnitřní úroveň CATCH. Manipulační program výjimek ?. t andardní ch hodnot zruší jakékoli běžné terminálové transakce a pokusí se znovu zavést moduly TRS a znovu vstoupit do hlavní smyčku TRS. VM 20 vhodí ANS Forth výjimku -10 (dělení nulou), jestliže by se taková podmínka vyskytla. VM 20 může také vhodit jiné obecné výjimky podporované ANS Forth, např. takové, jako jsou uvedeny v připojeném dodatku.
Pro manipulaci se zařízeními a vstupní mi/výstupni mi (I/O) službami, je každému zařízení, včetně těch zařízení, jejichž provoz na nízké úrovni je skryt strojem VM 20 za funkcemi specifickými pro zařízení, přidělen typ zařízení (použitému pro kategorizaci kódů výsledku) a zvláštní Číslo zařízení. Čísla zařízení jsou libovolná, avšak odvolání na čísla zařízení - 1 až 15 (4 bity) - mohou být udělána jen jediným symbolem oprávnění a tak jsou tato čísla přidělena nejběžnějším zařízením jako jsou klávesnice, čtečky ICC, čtečky karet s magnetickým páskem, displeje, tiskárny, zařízení pro řízení napájení nebo prodejní automaty. Obecná I/O vybavení jsou poskytnuta funkcemi, které přebírají Číslo zařízení jako vstupní parametr.
Terminál _1 v souladu s tímto vynálezem obsahuje alespoň tři větší energeticky nezávislé báze dat: transakční zaprotoko1 ování specifické podle aplikace, bázi dat zpráv v »*♦ φ • φ φ··φ
jednom nebo více jazycích a bázi dat modulů. VM 20 chrání báze dat tak, jak je to možné, protože mohou obsahovat soukromé informace. Přístup do bází dat je omezen. VM 20 poskytuje mechanizmus pro manipulaci s bázemi dat (VM 20 je server), který skrývá detaily realizace z aplikačního softwaru (aplikace jako klient). Není dovolen žádný přímý vstup do báze dat z modulu, který je v provozu na VM 20. Služby realizují následující vlastnosti, které budou popsány s odvoláním na obr. 7:
• V jakékoli dané době má klient, tj. program provozovaný v modulu, přístup do jedné běžně vybrané báze dat (DBCURRENT) a k jednomu běžně vybranému číslu záznamu (DBRECNUM), které je sdíleno přes všechny definované báze dat.
• Informace o každé bázi dat jsou přeneseny mezi klientem a serverem prostřednictvím bloku 51 parametrů báze dat (DPB Database Parametr Block), do kterého může server pro čtení a zápis vstoupit. Klient vlastní DPB 51 v tom smyslu, že je to prostor 24 dat klienta; klientovi ale není dovoleno do něj přistoupit přímo. Místo toho mohou být pro přístup k datům použity jen symboly oprávnění pro služby bází dat. DPB 51 má s t andardn í strukturu, obsahuj ící po 1 e a 1 e s poří pro spo j ení DPB, ukazatel báze dat, označení typu báze dat a velikosti záznamu a příští dostupné číslo záznamu. Všechny informace pro specifikaci báze dat musí být předem nastaveny v DPB 51 . Software klienta nesmí udělat žádný následující přímý přístup do DPB 51 a nesmí udělat žádné předpoklady o hodnotách přímo obsažených v DPB 5 1 , potom co modul definující DPB 51 byl zaveden k provedení. Bloky 51 parametrů báze dat projdou do zaváděcí ho/interpretačního programu symbolů oprávnění ve formě ukazatele (spojení DPB) k připojenému seznamu v sekci inicializovaných dat modulu. Toto pole musí být předem nastaveno na adresu v inicializovaných datech dalšího DPB 5 2 •· «·«* fcfcfcfc a
• a · ·· • · · » «· ♦ » ·· fc *«« ·«* « · «« ·· v seznamu nebo na nulu, jestliže tento DPB 51 je poslední nebo v seznamu je jenom DPB 5 1 . Pro kompilované báze dat, které existují v prostoru inicializovaných dat klienta, musí ukazatel báze dat (DB) být předem nastaven na původní adresu v inicializovaných datech. Pro báze dat, jejichž parně! je řízena serverem, musí být pole předem nastaveno na nulu. Typ báze dat (DB) poskytuje detaily báze dat v kódované formě. Jsou alespoň tři druhy báze dat:
Energeticky závislé báze dat, jejichž obsah nepotřebuje být zachován mezi zaváděním modulů nebo při vypnutí zdroje terminálu i, na kterém jsnu pevně umístěna.
Energeticky nezávislé báze dat, jejichž obsah musí být zachován mezi zaváděním modulů nebo při vypnutí zdroje. Jestliže modul definující energeticky nezávislou parně! je nahrazen, je báze dat zničena, když je vyjmut starý modul. Kompilované báze jsou konstruovány kompi lačním programem 7 1 symbolů oprávnění v sousední oblasti inicializovaných dat jako záznamy pevné délky. Záznamy nesmí být přidány nebo vymazány z kompilované báze dat a báze dat nesmí být inicializována v době provozu, ale jinak bude podporována plná kapacita pro čtení/zápis.
Další dostupné pole čísla záznamu bude nastaveno na číslo jedna plus poslední přidělené číslo záznamu v bázi dat pro kompilované báze dat. Pro jakoukoli jinou bázi dat je toto pole nastaveno na nulu.
Adresa okna do běžného záznamu (vyrovnávací parně! 5 3 záznamu) je poskytnuta klientovi serverem pro každou bázi dat klienta. Pro určité operace báze dat může klient propustit do serveru adresy vyrovnávacích pamětí 52 řetězců a klíčů. Pro každou bázi dat, která byla serveru známá pomocí modulu • ••t *
ΒΒ »·
Β Β ·
Β ♦ · ·
Β « Β· ··♦
Β ♦
ΒΒ Β· klienta, je strojem VM 20 poskytnuta vyrovnávací paměí 53 záznamů. Tato vyrovnávací paměí 53 začíná u zarovnané adresy. Obsah vyrovnávací paměti 53 záznamů, připojené k určité bázi dat po určitém výběru záznamu, zůstává dostupná pokud klient nevybere z báze dat jiný záznam. Kromě těchto vyrovnávacích pamětí 53 záznamů, kompilovaných bází dat a parametrů prošlých do zásobníku 27 dat pomocí specifických funkcí báze dat, není mezi klientem a serverem sdílen žádný jiný prostor 54 dat. Programy nesmí uvažovat, že záznamy v bázi dat jsou v paměti sousední.
• Báze dat je konkretizována zaváděcím procesem pro modul, ve kterém je definován její DPB. Energeticky závislé báze dat instalované aplikačními moduly nejsou serverem automaticky a transparentně konkretizovány, když je aplikace ukončena trvale uloženými službami terminálu (TRS), když jsou uvolněna všechna uložení dat přidělených serverem do těchto bází dat.
Server vymaže energeticky nezávislé báze dat když je nahrazen modul, který je definoval. Jestliže je modul zaveden když je nahrazen, např. v případě modulu TRS, musí server vymazat energeticky nezávislé báze dat modulu, když je modul uvo1něn.
Činnost použitá strojem VM 20, když je báze dat konkretizována v době zavedení modulu, závisí na hodnotě typu DB a ukazateli DB v DPB 51 a na tom, zda je báze dat energeticky závislá nebo nezávislá. Jestliže báze dat je energeticky nezávislého typu, použije se adresy DPB ve spojení s modulem identifikace (modul ID) k identifikaci jakýchkoli dřívějších dat, která patří do báze dat. Jestliže dřívější data existují, je další dostupné číslo záznamu ···
444 4
• 4 ·
4 4
4 4 4
4 4 4
44 ·4
44
4 4 4 <4 4
4·4 444 *
44 obnoveno v jeho dřívější hodnotě. Jinak server (VM 20) konkretizuje nový energeticky nezávislý ukládací prostor a nastaví příští dostupné ěíslo záznamu na nulu, V obou případech je vyrovnávací paměť 53 poskytnuta pro běžný záznam v bázi dat. Jestliže ukazatel DB je nulový a typ DB je nekompi 1 ováného typu, potom server konkretizuje nebo učiní dostupnou paměť požadovanou pro bázi dat, inicializuje paměť na všechny nuly, poskytne vyrovnávací paměť 53 pro běžný záznam báze dat a nastaví další dostupné číslo záznamu (DBAVAIL) na nulu. Jestliže ukazatel DB je nenulový a typ DB je kompilovaného typu, potom server nastaví vnitřní struktury tak, aby použily strukturu dat klienta, jejíž původní adresa prošla ukazatelem DB a nastaví další dostupné Číslo záznamu (DBAVAIL) na hodnotu, která prošla v dalším dostupném poli Čísel záznamů DPB 5 1 . Server udržuje skutečné záznamy báze 55 dat, vztah mezi místem adresy a záznamem v kontrolním bloku báze 56 dat a záznam k jaké bázi modul běžně přistupuje v informačním bloku 57 souvislostí.
Procedura manipulace bezpečných modulů v souladu s tímto vynálezem bude nyní popsána s odvoláním na obr. 6. V obr. 6 je uvedena oblast paměti pro logické čtení/zápis. Oblast paměti, do které může přistoupit levý modul (první modul), má hranici s tečkovanou čarou. Oblast paměti, do které nemůže přistoupit první modul má hranici se spojitou čarou. Oblast paměti, do které může přistoupit více než jeden modul je ukázána čerchovanou čarou. VM 20 chrání báze dat DB1 a DB2 a schránku báze dat a moduly ve schránce modulů tak, že nejsou přístupné žádným modulem. Po zavedení prvního modulu, se k ne inici a 1 izovaným datům v paměti 42 může přistoupit prvním modulem, ale VM 20 nedovolí, aby se k jakékoli oblasti mimo tento modul mohlo modulem přímo přistoupit. Přístup k
4 4 4
4 · · · registrům, zásobníkům nebo paměti 46 rámců může být proveden jen prostřednictvím odpovídajících symbolů oprávnění, K bázím dat se může přistoupit jen přes proceduru oken, zmíněnou výše. Zvláště nemůže první modul přistoupit ke své vlastní programové paměti 26., kde jsou umístěny symboly oprávnění, ani přistoupit k jakémukoli jinému modulu. Toto je důležité pro ochranu proti virům. V souladu s tímto vynálezem je paměť přidělená prvnímu modulu definovaná a chráněná. Je definována přidělením paměti v souladu s údajem o velikosti paměti, která má být přidělena, obsaženým uvnitř modulu. Je chráněna, protože žádný jiný modul nemůže přistoupit do přiděleného prostoru a žádný jiný zaváděcí mechanizmus není poskytnut pro žádný jiný program než pro moduly. Preferovaný způsob provozu modulů je jednovláknový, jakákoli paměť přidělená v rozšiřitelné vyrovnávací paměti 45 je uvolněna před tím, než se jakýkoli jiný modul může stát aktivním. Uvulněná paměť je s výhodou vymazána.
Výlučný seznam přejmutí prvního modulu je v jeho záhlaví, do kterého nemůže první modul přistoupit přímo. VM 20 Čte záhlaví a volá druhý modul, který je zmíněn v seznamu přejmutí (funkce fgh z druhého modulu). VM 20 zavede druhý modul a přidělí paměť pro ne inici a 1 izovaná data 42 ’ , paměť 46’ rámců a pro inicializovaná data 41’. První modul nemůže přistoupit do žádné části druhého modulu a naopak. V záhlaví druhého modulu byla funkce fgh umístěna ve výlučném seznamu funkcí, které mohou být převedeny. Toto činí funkci fgh dostupnou pro jiné moduly. VM 20 hledá funkci fgh v prostoru 26 ’ paměti kódů druhého modulu a provede proud symbolů oprávnění s odpovídajícími vloženými daty (představovanými proudem TITTITT). V tomto příkladu tato část kódu vyžaduje přístup do báze dat DB2. Báze dat v souladu s tímto vynálezem fcfc ··
I · * · > fcfc · fcfcfc ··· fc · • · ·· fc · · · · je vlastněna modulem, tj. do báze dat se může přistoupit jen modulem, který ji konkretizoval při prvním zavedení modulu. Symboly oprávnění pro přístup do báze dat přečtené z prostoru 26 ’ kódů, jsou provedeny strojem VM 20, který při zavedení přidělí vyrovnávací paměf 5 3 ’ v prostoru 42’ ne inici a 1 izovaných dat druhého modulu. Funkce fgh vyžaduje přístup do třetího záznamu DB2. VM 20 potom přenese referenční záznam do okna 53 ’ v druhém modulu, ze kterého je převeden do ne iniciálizovaného prostoru 42 prvního modulu. Použitím stejné procedury okna báze dat, může první modul získat ze své vlastní báze dat DB1 také záznam, který je přenesen do vyrovnávací paměti 53 v prostoru 42 neinici a 1 izovaných dat. První modul může nyní být provozován na výsledcích dvou procedur.
VM 20 se s výhodou zabývá datovými objekty prostředky základních kódovacích pravidel (BER - Basic Encoding Rules) nebo prostředky příznaku, délky, hodnoty (BER-TLV zkráceno na TLV (Tag, Lengh, Value) pro tuto aplikaci), jak je to popsáno v ISO/IEC 8825 (1990). Datové objekty TLV se skládají ze dvou nebo tří následných polí: pole pŤíznaků, specifikující jeho třídu, typ a počet, pole délek, specifikující velikost dat a když délka není nulová, pole hodnot obsahující data. Protože odezvy karty ICC jsou obecně co do velikosti omezeny řekněme na 255 bytů nebo méně, je maximální velikost objektu TLV v souladu s tímto vynálezem. Pole příznaků je s výhodou jednobytové nebo dvoubytové, pole délek je s výhodou jednobytové nebo dvoubytové a tak maximální velikost pole hodnot je s výhodou 252 bytů (pole této délky vyžaduje byty dvou délek, jak je vysvětleno níže). První byt pole příznaků je rozlomen do tří polí. Bity 7 a 8 specifikují třídu objektu. Bit 6 určuje, zda pole hodnot ♦ · ···· • * · 0 «Φ • 0 0 0 0 0 0 0 0 0 0 000 000 0 · · 00 0 0 » · 0 « 00 00 obsahuje primitivní data nebo jestli je to konstruovaný objekt obsahující jiná pole kódovaná TLV, Konstruované objekty se také nazývají šablony. Způsobují, aby jejich pole hodnot byla oddělena pro sekvence TLV, když dojde k setkání s nimi. Bity 1 až 5 specifikují počet objektů nebo, když jsou všechny tyto bity sadou, ukazují, že následují dodatečné příznakové byty. Dodatečné příznakové byty mají svou osmibitovou sadu, jestliže následuje ještě jiný byte. Všechny bity až do dvou bytů se používají k určení jména příznaku. Pole délek obsahuje jeden až tři následné byty, typicky dva. Jestliže bit 8 prvního bytu je nula, potom bity 1 až 7 udávají velikost pole hodnot. Jestliže bit 8 prvního bytu je 1, potom bity 1 až 7 udávají počet bytů, které následují. Následující byty, jsou-li nějaké, ukazují velikost pole hodnot a vyskytují se s nejvýznamnějším bytem první. Pole hodnot může obsahovat primitivní data nebo může být konstruovaným polem s dodatečnými kódovanými sekvencemi TLV. Jestliže bit 6 prvního bytu je v poli příznaků nastaven, potom pole hodnot obsahuje dodatečné sekvence TLV, Primitivní objekty mohou být kódovány v několika různých formátech: binární kódované desítkové půlbyty s počátečními nulami nebo koncovými půlbyty se sadou všech bitů, binární čísla nebo sekvence bytů, sekvence alfanumerických znaků nebo bytů ASCII nebo nedefinované formáty. S každým objektem se manipuluje rozdílně podle toho, jak je použit. ICC 5 může také použít seznam datových objektů (DOL - Data Object List) k vyžádání hodnot specifických jmen příznaků. Karta 5 vyšle DOL obsahující seznum pole příznaků a pole délek a terminál 1 vrátí odpovídající pole hodnot bez oddělovače.
Každý TLV, který se má použít, musí být definován terminálem nebo aplikačními programy, aby vytvořil jeho datový typ a • · * · • ·
jméno. Protože program terminálu a aplikační programy jsou vyvinuty odděleně, VM 20 v souladu s tímto vynálezem používá spojovací strukturu {vyvážený binární strom), aby umožnil rychlé přidání nebo odstranění jmen příznaků z globálního seznamu jmen příznaků. Toto vyžaduje, aby byly kompilovány následující struktury pro každý TLV v prostoru 4 1 inicializovaných dat v modulu definujícím TLV:
Link Buňka s levou (dva byty vysokého pořadí) nebo pravou (dva byty nízkého pořadí) složkou poskytující spojení s prvky stromu.
Link left 16 bitový relativní ukazatel se znaménkem od tohoto parametru přístupu TLV k parametru přístupu záznamu TLV, jehož příznak je numericky menší než tento příznak záznamu. Hodnota nula udává, že tento TLV není připojen k TLV s příznakem numericky menším než je tento TLV.
Link right 16 bitový relativní ukazatel se znaménkem od tohoto parametru přístupu TLV k parametru přístupu záznamu TLV, jehož příznak je numericky větší než tento příznak záznamu. Hodnota nula udává, že tento TLV není připojen k TLV s příznakem numericky větším než je tento TLV.
Tag Dvoubytový řetězec, jehož velká koncová numerická hodnota je pří znak TLV.
Type Jeden byt, který specifikuje kontrolní informace. Reserved Byte, který musí být kompilujícím programem 21. inicializován na nulu.
Data Buňka, která má informace specifické pro VM, obsahující přístup k poli délek a k poli hodnot tohoto TLV. Toto pole musí být kompilujícím programem 71 inicializováno na nulu. Systém musí také udržet byte statusu pro každý TLV. Toto může být rezervovaný byte ve výše uvedené struktuře. Bit nízkého řádu tohoto bytu má být nastaven, jestliže TLV byla přidělena hodnota jako výsledek toho, že je v sekvenci, která byla •0 ·*·· * · li • · · · • φ φ · φφ · ·♦· • φ φ φ φ φ ·>
zpracována symboly oprávnění TLVPARSE nebo TLVSTORE. Účelem udržení přiděleného statusu je identifikovat hodnoty TLV, které obsahují platná data (která mohou být nulová) a rozlišit je od hodnot TLV, které nebyly nikdy nastaveny a proto jsou neplatné. Jádro VM řídí globální seznam příznaků TLV udržováním seznamu ukazatelů a prostoru 41 inicializovaných dat, obsahujícího jejich skutečné definice, jak je popsáno výše. Když je modul zaveden, jsou jeho definice TLV přidány do tohoto seznamu jako ěást jeho inicializace; když je vyjmut, mají být definice TLV z tohoto seznamu automaticky odstraněny strojem VM 20. Může být vhozena výjimka, jestliže modul obsahuje definici TLV, která již existuje. Adresa pole LINK popsaná výše se vrátí k parametru přístupu pro reference TLV. Programátor by neměl přistoupit do těchto polí přímo, ani by neměl dělat žádný předpoklad o jejich obsahu potom, co VM 20 konkretizoval definice TLV.
Reference k definicím TLV jsou ve zdrojovém kódu kompilovány bučí jako přímé reference k definiční struktuře definované výše, nebo jako numer ické hodnoty příznaků. Uvnitř určitých binárních definicí TLV jsou jednotlivé bity nebo skupiny bitů definovány, aby měly určité významy. Označují se jako bity TLV. Reference na bity TLV mohou být kompilovány ukázáním literálu na bit uvnitř pole hodnot TLV. Bit 0 je nejméně významný bit prvního bytu, bit 7 je nejvýznamnější bit stejného bytu, bit 8 je nejméně významný bit druhého bytu atd .
Data přidělená definici TLV jsou podrobena aplikaci prostřednictvím 252 bytové oblasti pracovní zápisníkové paměti udržované strojem VM 20 ve formě okna báze dat (viz ·· ··*· • 4 • «4 · • · · · · ·
44 obr. 7). Aplikačnímu programu je umožněno změnit obsahy této oblasti pracovní zápisníkové paměti. Jestliže změny mají být uchovány, musí adresa a délka uvnitř oblasti pracovní zápisníkové paměti projít zpět do symbolu oprávnění TLVSTORE. Adresa a obsah oblasti pracovní zápisníkové paměti se může stát neplatnou, když je postupně zpracován jakýkoli symbol oprávnění TLV.
Jako část bezpečnostního řízení karet 5., zavedených do čtečky 7, se proved ; kontrola karet 5., které jsou známé jako ztracené nebo neplatné. Seznam takových karet 5. je znám jako seznam černých nebo horkých karet. Řízení seznamu černých nebo horkých karet je poskytnuto sadou jednoúčelových funkcí, které jsou specifické pro řízení velkého seznamu horkých karet. Typický seznam může obsahovat 10000 primární čísel kont (PAN - primary account number) až s 10 byty pro každé číslo nebo 20 binárně kódovaných desítkových (BCD - binary coded decimal) číslic. Vstupy PAN jsou uloženy v komprimovaném numerickém (cn - compressed numeric) formátu, správně vyplněné hexadecimálními FH. Protože PAN je maximálně devatenáct BCD číslic, bude vstup do seznamu vždy vyplněn alespoň jedním FH. Při hledání v seznamu horkých karet uvažují se FH v seznamu jako divoké karty nebo číslice bez zájmu, ale jakékoli FH v PAN použité jako vstup nejsou divoké karty. Divoké karty se mohou objevit jen na pravém konci vstupu. PAN se má považovat za nalezené v seznamu horkých karet, jestliže existuje vstup seznamu, který je identický k prvnímu FH ve vstupu.
Jiná část bezpečnostního řízení je opatření kódovacích služeb pro kódovaná a dekódovaná data. Může se použít jakákoli vhodná kódovací metoda. Pro VM 20 se zvláště poskytují tři
9· • · • · • · · ·*
kódovací algoritmy: násobení modulem a povyšování na modulus. které se používají v algoritmu RSA a bezpečnostní algoritmus SHA-1 přepočtu klíče, vynález ale není omezen na tyto způsoby. Násobení modulem provádí násobení dvou hodnot x a y bez znaménka, kde součin je redukován při použití modulu z. Vzorec je výsledek = mod(x*y,z)
Všechny vstupní hodnoty (x, y, z) mají stejnou délku. Jsou představovány řetězcem bytů a mohou být jakýmkoli násobkem 8 bitů až do 1024 bitů včetně. Hodnoty musí být ve velkém bitově končícím pořadí bytu.
Bezpečnostní algoritmus značky čísla (SHA-1 - Secure Hash Algorithm) je standardizován jako FIPS 180-1. SHA-1 odebírá jako vstupní zprávy libovolné délky a vytváří 20 bytové hodnoty značek čísel. Povyšování na modulus povyšuje hodnotu x bez znaménka na mocninu danou exponentem y bez znaménka, kde výsledek se redukuje použitím modulu z. Vzorec je výsledek = modíx/v.z)
Vstupní hodnota x a modulus z jsou představovány bytovými řetězci a mohou být jakýmkoli násobkem 8 bitů až do 1024 bitů včetně. Hodnoty musí být ve velkém bitově končícím pořadí bytu .
Služby a proto software a také 1/0 zařízení se mohou Časem měnit v závislosti na požadavcích trhu. Když se požadují větší změny, aktualizace softwaru v terminálu 2 se může provést ručně nebo dálkově přes telekomunikační síť. Avšak pro služby závislé na uživateli je výhodnější mít dynamický, ale bezpečný způsob pro provedení menších nebo uživatelem specifikovaných zlepšení služeb poskytovaných terminálem 2Softwarový mechanismus zástrčka a zásuvka” v souladu s tímto • fe fe··· ·· • ·· fefe fefe • fefe · ♦ fefe · fefefe fefefe • · • » · · vynálezem poskytuje pružnou a bezpečnou cestu přímé konfigurace různých modulů, které vytvářejí terminálové programy a aplikace. Jak je schematicky uvedeno na obr. 8, může být v transakčním systému v souladu s tímto vynálezem definována řada procedur (označených jako 'zásuvky’ 60) , které mohou být vloženy programátorem aplikací (a tudíž bezpečně, protože jsou pod kontrolou nabyvatele a pod dozorem platebního systému) do aplikací 61 , 62, aby působily jako držitelé místa pro přidání dodatečného rozSiřovacího kódu (označeného jako zástrčky 66.) během zpracování transakce. Všechny dodatečné kódy, které mají být zasunuty do zásuvky 60, musí být napsány ve formě sady symbolů oprávnění stroje VM 20. Zásuvky 60 jsou s výhodou umístěny v rozličných vhodných bodech v existujících aplikacích 61 , 62 terminálu nebo i v samotném programu terminálu. Používají se, aby odkazovaly na funkce knihovny a mohou se také vyskytnout uvnitř funkce knihovny, jestliže platební systém předvídá potřebu změnit cestu, ve které pracuje funkce knihovny. Zásuvky 60 jsou inicializovány strojem VM 20 na standardní chování. Jestliže se programem terminálu neprovede Žádná další činnost, bude standardní chování zásuvky 60 takové, aby neudělalo nic, když jsou prováděny (tj. žádný provoz).
Zástrčky 66 obsahují proveditelný kód, napsaný v symbolech oprávnění, podporovaný terminálem j_, který může být vložen v bodech definovaných zásuvkami 60, aby rozšířil standardní logiku terminálu. Zástrčky 66 mohou v terminálu i již existovat v knihovně zástrček 63, aby byly vyvolány z ICC 5., např. identifikačními programy 67 zásuvky/zástrčky v ICC 5. a logikou v terminálu _1 . Identifikační programy 67 zásuvl>/zústrčky obsahují odvolání jak na zástrčku, tak na zásuvku pro zasunutí, Čímž zástrčka není na ICC 5., ale je v • 9 9000 *9 99
00·· ·
knihovně 62- Zástrčky 66 mohou také pocházet ze vstupního zařízení 65 (takového jako ICC 5. nebo základního systému připojeného na terminál 2), ale jen když je souhlas všech
Členů platebního systému, např. vydavatele, nabyvatele nebo obchodní ka.
9
9*· 9 9
9 9
9* ··
99
Při ukončení transakce jsou zásuvky 60 obnoveny na jejich původní aplikační standardní chování. V souladu s tímto vynálezem se preferuje, aby ICC 2 neobsahovala celé aplikace, ale jen zástrčky 66. které rozšiřují existující aplikace terminálu, protože toto vyžaduje méně pamětí.
Zásuvky 60 mají ukazatele provedení, známé ukazatele procedury, které umožňují vytvoření jejíž chování může být změněno v době provedení. 6θ se může pohlížet (a mohou být realizovány) také jako procedury, Na zásuvky jako pole procedur, ke kterým se přistupuje prostřednictvím symbolu oprávnění DOSOCKET, který přebírá číslo zásuvky jako vložený byte nebo prostřednictvím symbolu oprávnění IDOSOCKET, který přebírá číslo zásuvky ze zásobníku 27 dat.
Zásuvky 60 umožňují změnit konfiguraci terminálového programu nebo aplikace k poskytnutí změn nebo rozšíření v toku zpracování transakcí. Alternativně mohou zásuvky v ICC 5 umožnit zlepšení ICC 5. z terminálu J_. Zásuvky 60 poskytují rozhraní mezi moduly softwaru a procedurami, které mohou přicházet z několika různých zdrojů (nabyvatel, vydavatel atd,). Protože nabyvatel a vydavatel mají smluvní vztah, mohou souhlasit s použitím specifických zásuvek 60 poskytnutých v terminálu programem nabyvatele tak, Že vydavatel může rozšířit chování programu, např. aby poskytl funkci loajality (letecké míle, kupony atd.).
ftft ftft ftftftft ftft ftftftft • ftft • ft • ftft ft* ftft
Modul může specifikovat, když je zaveden pro provedení, aby zásuvky 60 byly automaticky rekonfigurovány, nebo program klienta může programově přiřadit novou proceduru k zásuvce v době provozu. Poskytnuté bezpečnostní podmínky dovolují to, že zásuvkám 60 v aplikaci může být přiděleno standardní chování a potom se mohou do nich následujícími moduly znovu zasunout nové procedury, aby se poskytla specializovaná chování. K zamezení neurčitých situací se dává přednost tomu, aby všechny procedury zaměřené na použití určité zásuvky £0 neměly žádný účinek na zásobník dat (kromě zásuvky nula, jak je vysvětleno dále). Toto zajišťuje spojitost programu bez ohledu na to, která zaměřená verze procedury se provádí. Standardní činnost všech zásuvek 60 před modifikací má být alespoň taková, že jsou bez provozu.
Nabyvatel může umožnit rozšíření transakce kódem na ICC 5 jako části CSS uvedených výše. Je-li tomu tak, mohou být realizovány zásuvkami 60 . Knihovna nebo proveditelný modul může obsahovat definici nových zásuvek 60 pro pozdější zástrčky 66 přicházející z ICC 5,. V tomto případě by modul definoval zásuvku 60 a potom použil symbol oprávnění SETSOCKET, aby k ní přiřadil standardní chování (často nulové chování). Jestliže to kontrola přístupu dovolí, mohla by ICC 5. později přesunout zástrčku 66 obsahující symboly oprávnění, které definují nové chování a potom použít symbol oprávnění SETSOCKET k jejímu uložení v této stejné zásuvce 60, vyřazením standardního chování.
Modifikace chování je vhodná a pružná, ale může poskytnout příležitost klamajícím osobám modifikovat chování k jejich prospěchu. Může se požadovat zvláštní péče pro zástrčky 66 od ·· fcfc • fcfc · fc fcfc · • fcfc fcfcfc « · fcfc fcfc fc · fcfcfcfc fcfc
fc fcfcfc
ICC 5, jestliže mohou modifikovat chování zásuvky nebo mohou být umístěny do toku programu dříve před úspěšným ověřením karty. Pro bezpečnost může software terminálu v souladu s tímto vynálezem specifikovat proceduru kontroly zásuvky, která kontroluje, zda každá individuální zásuvka 60 může být modifikována nebo ne. Tak např. provedení kódu odstraněného z ICC 5 může být přísně kontrolováno nabyvatelem tak, že do Žádné zásuvky nemůže dojít k zasunutí z ICC 5, pokud nejsou na kartě provedeny všechny standardní programy oprávnění, např. přezkoušení elektronického podpisu.
V souladu s tímto vynálezem bezpečnost zásuvky obsahuje specifikaci procedury kontroly zásuvky tak, aby byla použita při následujících pokusech zasunutí do zásuvky 6.0 (symbol oprávnění SETPLUGCONTROL). Procedura PLUGCONTROL musí být napsána tak, aby pro dané číslo zásuvky vrátila, zda ta zásuvka 60 může být nyní modifikována. Když je seznam modulů zásuvek postupně zpracován v době zavedení modulu nebo když zásuvka 60 je programově zasunuta, VM 20 nejdříve provede uživatelem napsanou proceduru PLUGCONTROL, aby se určilo, zda může skutečně dojít k zasunutí do zásuvky 60 a zachová existující chování zásuvky 60, jestliže k tomu nemůže dojít.
Modul, který si přeje omezit přístup k jakýmkoli zásuvkám 60 před zavedením jiného modulu k provedení, může provést proceduru definovanou symbolem oprávnění SETPLUGCONTROL na zasunovatelné zásuvce (zásuvka nula) zvolenou funkcí PLUGCONTROL jako parametrem před zavedením toho modulu. Když další modul a jakékoli jiné moduly zavedené k jejich provedení mají zpracované své seznamy zásuvek, zásuvky .60, do kterých je odepřen přístup uživatelem definovanou procedurou PLUGCONTROL, mají zachovat jejich existující chování. Tato
4« ··*·
4 ·
B 4 • 4 B 4 4 4 který si přeje • >4« •
• Β • 4 podmínka nemá být uvažována jako chyba. Kód, omezit přístup k jakýmkoli zásuvkám 60 před provedením dalšího kódu, může provést proceduru definovanou symbolem oprávnění SETPLUGCONTROL se zvolenou procedurou PLUGCONTROL jako parametrem ve vhodném bodě toku programu. Programovací požadavek na zasunutí do zásuvky 60 může určit, zda byl požadavek přijat nebo odmítnut voláním do SETSOCKET. Jakákoli zásuvka .60, jejíž chování bylo modifikováno bučí zaváděcím procesem modulu nebo dynamicky programovaným příkazem, je obnovena na chování, které měla, když poslední proveditelný modul byl zaveden k provedení jako část ukončovací procedury zabalené uvnitř procedury definované modulem provedení symbolu oprávnění (EXECUTEMODULE).
Jako příklad funkce specifické pro nabyvatele uvažujme, že základní transakční kód obsahuje větu 27 SOCKET LOYALTY, která definuje LOYALTY a dělá ji dostupnou pro pozdější provedení. Kód programu transakce nabyvatele dále definuje kód, který nastaví označení dovolení pro tuto zá.uvku jen když je vydavatel stejný jako nabyvatel a velikost transakce překračuje určité minimum. Během transakce existuje příkaz, který čte libovolný kód z ICC 5. Část kódu ICC by mohla definovat standardní program REWARD, který aktualizuje uživatelovy časté letové míle a potom zkouší provést větu PLUG REWARD INTO LOYALTY. Tato věta spojuje provedení REWARD s provedením LOYALTY. J >!. tíže označení dovolení zásuvky LOYALTY je nastaveno podle výše uvedené logiky, zaujme místo SETSOCKET; jinak LOYALTY zachová její standardní chování, pravděpodobně bez provozu. Potom, když kód aplikace provede svou funkci LOYALTY později, umožní REWARD definovanou ICC jen podle pravidel definovaných nabyvatelem.
• φ · φ
• · φφφ
VM 20 typicky provozovaný na terminálu i může mít omezený počet zásuvek 60, např. 64 zásuvek číslovaných od 0 do 63. V nejzák1adnějŠí formě by skelet programu terminálu mohl být složen téměř úplně ze zásuvek 60 a toku základního programu od zásuvky k zásuvce. Do zásuvek 60 by potom byly zasunuty procedury zpracování transakcí jinými moduly zavedenými v době výběru aplikace buď z terminálu i nebo z ICC 2· Zásuvky 60, vyskytující se v programu skeletu před volbou aplikace, mají přiděleno pomocí TRS nulové standardní chování. Jestliže dojde k zasunutí procedury do dané zásuvky 6.0 více než jedním modulem, nahradí jednoduše poslední operace jakékoli dřívější operace.
Zavedení, manipulace a provedení modulů
Kód napsaný tak, aby byl provozován na VM 20 (včetně trvale uložených služeb terminálu, kompilovaných jako moduly symbolů oprávnění) může uvažovat, že po zapnutí zdroje software jádra specifikovaný terminálem podporující VM 20 provedl jakoukoli nutnou iniciáli/aci zapnutí zdroje specifikované terminálem a zahájil provedení hlavní smyčky zpracování trvale uložených služeb terminálu (TRS) prostřednictvím procesu zavedení modulu, který je popsán níže. Jestliže se vystoupí z hlavní smyčky zpracování TRS, vrátí se kontrola do vrstvy softwaru specifické pro terminál, odpovědné za obnovení TRS a nový vstup do hlavní smyčky. Všechny zdroje VM jsou uvolněny kdykoli existuje TRS, kromě dat v energeticky nezávislých bázích dat, K uvolnění zdrojů dojde, když je terminál odepnut od zdroje, výstup TRS se provede nebo TRS se znovu spustí operačním systémem terminálu (pokud existuje). Jestliže byla získána aktualizovaná verze jakéhokoli modulu TRS od doby kdy byl poslední vstup do hlavní smyčky TRS, jsou všechny zdroje
·« 0 0 0 0 • 0 0 • · · 0 0 0 • 0
00
TRS včetně dat v jeho energeticky nezávislých bázích dat uvolněny, když existují.
Provoz softwaru na terminálu i nebo ICC 5 je řízen strojem VM 20 formou jednoho nebo více modulů, kde každý modul může obsahovat jakoukoli z následujících kategorií informací:
• Kód v symbolu oprávnění • Inicializovaná data • Přidělení ne inici a 1 izovaných dat • Definice bází dat • Definice TLV • Seznam zásuvek • Vzájemné závislosti modulů
Každý nu 'du 1 je s výhodou dodán do terminálu χ ve formátu dodání modulu (MDF - Module Delivery Formát). VM 20 udržuje energeticky nezávislou schránku v energeticky nezávislé paměti 18 pro Ctení/zápis modulů, které byly dodány a instalovány v terminálu χ. Každý modul má být identifikován v zásobníku identifikačním programem modu 1u nebo ID modulem. Po registraci ve schránce modulů jsou informace modulu dostupné prostřednictvím energeticky nezávislé báze dat udržované strojem VM 20 a jsou uloženy v energeticky nezávislé paměti 1 8. V souladu s tímto vynálezem VM 20 chrání moduly uvnitř schránky před modifikací jakýmkoli jiným modulem, protože pro takový přístup neexistují žádné symboly oprávnění. VM 20 dále dělá opatření pro novou verzi daného modulu k umístění ve schránce, zatímco existuje modul stejného ID modulu pro účely provedení.
Koncepčně jsou dvě fáze zpracování modulu: za prvé je zaveden”, což znamená, že je učiněn přístupným a jeho data,
4 4444
4*4 4444 4 4 • 4 444 44 44 44 44 báze dat atd. jsou konkretizovány a za druhé, jestli je to proveditelný modul, začne VM 20 zpracovávat jeho symboly oprávnění počínaje od jejich vstupního bodu. Procedura provedení bude popsána s odvoláním na vývojový diagram na obr. 9.
Za prvé v kroku 100 jsou zdroje označeny a trvale uloženy. VM 20 před provedením modulu označí jeho stav a trvale uloží jakékoli zdroje potřebné tak, že tento stav může být později obnoven. Stav obsahuje:
Polohu ukazatele rozšiřitelné paměti, ukazatele rámce a ukazatele konce rámce.
Obsahy celého běžného seznamu zásuvek.
• TLV registrované v seznamu jmen příznaků TLV.
• Jiná vnitřní data, která potřebuje realizace VM, aby řídila aktivaci a provedení modulů.
Dále je modul v kroku 102 zaveden. ID modul modulu k provedení je propuštěn do standardního podprogramu zaveď modul, kteiý bude popsán později. Když je modul zaveden bez chyby, jak je zjištěno v kroku 104, může být proveden a piogram pokročí do kroku 108. Jestliže je v kroku 104 zjištěna chyba, je provedení modulu zrušeno a všechny zdroje, potřebné pro provedení modulu, jsou v kroku 105 uvolněny. Toto vyžaduje, aby stroj VM 20 provedl následující činnosti:
• Celá energeticky závislá paměť požadovaná pro zavedení modulu a jakýkoli modul, který ji požaduje k zavedení, musí být uvolněny a vymazány na nulu. Toto má obsahovat, ale není omezeno na:
Prostor potřebný pro všechna inicializovaná a neinicializovaná data modulu.
• Prostor potřebný pro jakékoli vnitřní vyrovnávací paměti
TLV a struktury řízení dat definované těmito moduly.
• Prostor potřebný pro jakékoli vnitřní vyrovnávací paměti a struktury řízení dat požadované bázemi dat definované těmito modu 1y.
• Seznam jmen TLV udržovaný strojem VM pro vyhledání příznaku musí být obnoven do jeho stavu bezprostředně před provedením modu lu.
Seznam obsahu zásuvek udržovaný strojem VM musí být obnoven do jeho stavu bezprostředně před provedením modulu.
Obsahy ukazatele rámce, ukazatele konce rámce a ukazatele rozšiřitelné paměti jsou obnoveny na jejich hodnoty okamžitě před provedením modulu.
Po úspěšném zavedení modulu je v kroku 106 zjištěno, zda je modul proveditelný nebo je modulem knihovny. Jestliže je modulem knihovny neuskuteční se žádné provedení modulu a VM 20 uvolní všechny zdroje v kroku 110, jak je to popsáno pro krok 105. Jestliže je modul proveditelný, určí se pole specifikující vstupní bod modulu,
VM 20 spustí modul voláním symbolu oprávnění, spécif i kovaného ve vstupním bodu pole. Potom každý symbol oprávnění je proveden postupně v kroku 108. Modul končí použitím symbolu oprávnění RETURN, po kterém jsou všechny zdroje v kroku 110 uvolněný.
Proces požadovaný pro zavedení modulu, standardní podprogram zaved modul, bude popsán s odvoláním na vývojový diagram znázorněný na obr. 10. Jestliže je zjištěna chyba během zavádění modulu, toto způsobí, že standardní podprogram zaveď modul okamžitě vrátí falše. Obecná chyba je taková chyba jako mimo paměf, kde nejsou dostatečné zdroje k poskytnutí prostoru pro inicializovaná data, ne inici a 1 izovaná
·· data, báze dat nebo TLV; když se zjistí duplicitní příznak TLV atd. Inicializovaná data musí být nastavena před zpracováním báze dat a sekce TLV, protože tyto jsou částí sekce inicializovaných dat. V kroku 120 se určí, zda byl modul již zaveden do paměti. Když byl již zaveden, nezavede se podruhé a bezprostředně následuje zaved modul s návratem true. Dále se v kroku 122 určí, zda je modul ve schránce. Jestliže není, nemůže být zaveden, takže standardní podprogram zavecí modul selže s návratem falše. V kroku 124 se urěí , kolik bytů dat je zapotřebí pro oblast 42 (pozn. překladatele: v originálu nesprávná 4_1) ne i n i c i a 1 i zovaných dat modulu a požadovaná velikost je rezervována. Tato oblast 42 (pozn. překladatele: v originálu nesprávná 4J_) se nastaví strojem VM 20 na všechny nuly. Podobně v kroku 126 se rezervuje požadovaný počet bytů dat pro oblast 41 (pozn, překladatele: v originálu nesprávná _42) inicializovaných dat modulu. Potom se do této oblasti kopírují inicializovaná data. V kroku 128 (pozn. překladatele: v originálu nesprávná 18) jsou TLV, definované v modulu k zavedení, přidány strojem VM 20 do seznamu vnitřních jmen, použitého pro vyhledání TLV. Kořenový uzel struktury dat TLV je uložen. Potom jsou v kroku 130 strojem VM 20 inicializovány báze dat, definované v modulu k uložení. Kroky 128 a 130 mohou být provedeny v jakémkoli pořadí. V kroku 132 jsou přejaté moduly vybrány pro běžný modul. V kroku 134 je seznam přejatých modulů příčný, zavádějící postupně rekurzivně každý modul. Jestliže přejatý modul nemůže být z nějakého důvodu zaveden, jak se určí v kroku 136, je modul, který přejal modul, také považován, že selhal při zavedení, protože nemůže přistoupit k přejatým službám modulu. V tom případě zavecí modul vrací falše. V kroku 138 se určí, zda se má přejímat další modul. Je-li tomu tak, vrátí se procedura do kroku 132. Po určení v kroku 138,
4··· ·· 44 · · 4 · * 4 · · 4 4·» · 44 444 444
4 4« 4 4 «4 44 »4 « · 4 4 že poslední přejatý modul byl rekurzivně uložen, běžný modul měl před tím své zdroje přidělené, zavedené a inicializované bez chyby, takže zaved modul zasune v kroku 139 do zásuvek 60 v jejich seznamu a potom vrátí true ukazující, že modul byl úspěšně zaveden. Jakýkoli pokus zasunout do zásuvky nulu musí být strojem VM 20 ignorován. Jestliže zásuvka nulu potřebuje, aby došlo k jejímu zasunutí, může toho být dosaženo použitím symbolu oprávnění SETSOCKET.
Procedura pro zasunutí do zásuvek 60 v kroku 140 bude popsána s odvoláním na obr. 11. V kroku 140 je v zavedeném modulu konkretizováno pro každou zásuvku standardní chování. V kroku 141 se určí zda je tam zástrčka. Jestliže tomu tak není, potom je modul proveden v kroku 149. Jestliže tomu tak je, vybere se v kroku 142 první zástrčka. V kroku 143 se určí, zda bezpečnostní označení připojené zásuvky je nebo není nastaveno. Jestliže tomu tak není, je v kroku 146 provedeno zasunutí do zásuvky. Jestliže tomu tak je, provede se bezpečnostní funkce specifikovaná pro zásuvku. Jestliže je vyhodnocení bezpečnosti kladné, provede se zasunutí do zásuvky v kroku 146. V kroku 148 se určí , zda je zástrčka poslední zástrčkou. Jestliže tomu tak není, je vybrána pro vyhodnocení další zástrčka. Jestliže vyhodnocení bezpečnosti jc záporné, určí se v kroku 147 zda je zástrčka poslední zástrčkou. Jestliže v kroku 147 nebo v kroku 148 se určí, že zástrčka je poslední, modul se provede se standardním chováním pro všechny zásuvky, do kterých nebylo provedeno zasunutí a pro chování při zasunutí pro ty zásuvky, do kterých bylo provedeno zasunutí. Těmito prostředky se může dosáhnout bezpečné modifikace chování.
S moduly, které byly zavedeny z ICC 2 symbolem oprávnění φφ φ* ··♦· · * φ φ φ φ**· * φ φφφ φφφφ φ * φφ φ φφ ΦΦΦΦΦΦ φφφ φφφφ φ « φφ φφφ φφ φ· «· »>
LOADCARDMODULE se musí manipulovat odlišně než s moduly zavedenými ze schránky v terminálu 2 použitím symbolu oprávnění EXECUTEMODULE. Vývojový diagram pro symbol oprávnění LOADCARDMODULE je uveden na obr. 12. Před provedením modulu karty označí VM 20 jeho stav a uloží trvale jakékoli potřebné zdroje v kroku 150 tak, že tento stav může být později znovu obnoven. Stav obsahuje:
• Polohu ukazatele rozšiřitelné paměti, ukazatele rámce a ukazatele konev rámce.
• Obsahy celého seznamu běžných objímek.
• TLV registrované v seznamu jmen příznaků TLV.
Jiná vnitřní data, která potřebuje provedení VM, aby řídilo aktivizaci modulů karty.
Modul je v kroku 152 zaveden použitím standardního programu zaveď modul, popsaného výše s odvoláním na obr. 9; rozdíl je v tom, že modul je na kartě ICC 5. a že není ve schránce zásobníku a není ještě zaveden.
Jestliže je v kroku 154 určeno, že modul karty není úspěšně zaveden, jsou v kroku 155 všechny zdroje vráceny do stavu, ve kterém byly bezprostředně před provedením symbolu oprávnění LOADCARDMODULE. Toto vyžaduje:
• Celá energeticky závislá paměť, požadovaná pro zavedení modulu a jakýkoli modul, který ji požadoval aby byl zaveden, musí být uvolněn a vymazán na nulu. Toto má obsahovat, ale není omezeno na:
• Prostor potřebný pro všechna inicializovaná a neinici a 1 izovaná data modulu.
• Prostor potřebný pro jakékoli vnitřní vyrovnávací paměti TLV a struktury řízení dat definované těmito moduly.
• Prostor potřebný pro jakékoli vnitřní vyrovnávací paměti a *· ··· · • ·« *
·· struktury řízení dat požadované bázemi dat definované těmito modu 1y.
• Seznam jmen TLV udržovaný strojem VM pro vyhledání příznaku musí být obnoven do jeho stavu bezprostředně před provedením modu 1u.
• Obsahy seznamu objímek udržované strojem VM musí být obnoveny do jejich stavu okamžitě před provedením modulu.
• Obsahy ukazatele rámce, ukazatele konce rámce a ukazatele rozšiřitelné paměti jsou obnoveny na jejich hodnoty bezprostředně před provedením modulu.
Jestliže je modul karty úspěšně zaveden, je stav trvale uložený v kroku 150 označ a trvale ulož zdroje” jednoduše v kroku 156 odložen. Tak byl modul karty pevně připojen do provozovaného systému. Aby byl modul karty užitečný, musí být zasunut do zásuvek, jinak neexistuje žádná cesta pro provedení jakéhokoli kódu, který je obsažen v modulu karty. Následně se v kroku 158 určí, zda je modul proveditelným modulem a je-li tomu tak, je v kroku 160 proveden, jak bylo popsáno s odvoláním na kroky 106 a 108 na obr. 9.
Specifické provedení vynálezu popsané výše je zaměřeno tak, aby bylo jen ilustrativní a může z něj být uděláno mnoho obměn a modifikací v souladu s principy tohoto vynálezu. Všechna taková jeho provedení a obměny a modifikace jsou uvažovány, že jsou v rozsahu vynálezu, jak je definován v následujících nárocích.
fc* fcfcfc·
PCT/EP97/O3355 • fc fcfc fc · fcfcfc· • fc · · · fc * fcfc fcfcfc fcfcfc fcfcfc · · fcfc fcfc fcfc
WO 97/50063 PŘ í LOHA
1. Definice symbo1u oprávnění
1.1 Přehled
Symboly oprávnění EPICode jsou sadou instrukcí virtuálního stroje s dvěma zásobníky s dodatečným ukazatelem rámců. Se symboly oprávnění se může zacházet jako se zprostředkujícím jazykem kompilujícího programu. Některá provedení programu překladače mohou skutečně kompilovat symboly oprávnění EPICode do strojového kódu.
Symboly opráv ční EPICode jsou bytové symboly opiávnění. dovolující maximálně 256 symbolů oprávnění. Symboly oprávnění s jednobytovou předponou dovolují rozšířit rozsah symbolů oprávnění na teoretické maximum 65536 symbolů oprávnění s ohledem na předpony definující strany, z nichž každá má 256 symbolů oprávnění. Ve .kuteěnosti je definován omezený počet symbolů oprávnění s předponou. Každá hodnota symbolu oprávnění je uvedena hexadecimálně jako dvoučís1 icový hexadecimální kód s jeho odpovídajícím jménem.
Symboly oprávnění bez předpony (jednobytové symboly oprávnění) se označují jako primární symboly oprávnění, kdežto symboly oprávnění s předponami (dvoubytové symboly oprávnění) se označují jako sekundami symboly oprávnění.
Provedení jakéhokoli primárního nebo sekundárního symbolu oprávnění, který není definován v níže uvedeném seznamu, způsobuje výjimku ILLOP.
1.1.1 Funkce Forth pro symboly oprávnění EPICode
Tato sekce uvádí abecední seznam she lv slov Forth používaných jako symboly oprávnění EPICode. Každá řádka obsahuje zleva doprava:
Jméno definice velkými písmeny >e stejnou šířkou • Výslovnost v přirozeném jazyku česky • Speciální označení, při použití:
A Forth slovo ANS (včetně všech sad slov podle volby) ,
C diiokliva kompilujícího programu; musí být použita uvnitř definice.
» 9 • 99 ··· • 9
99
PCT/EP97/O3355 « · ♦ · · • ·9 9 • · * • 9 9 9 » 9 * * ·· 99* ·· «» 9999
WO 97/50063 r>K í LOHA
G obecně použitelné slovo Forth (při obecném použití, např. zájmová skupina Forth, ale ne v Forth ANS).
Hlavní (kompilační) slovo, které může nebo nesmí přispívat symbolům oprávnění k cíli.
• Ekvivalentní symbol (symboly) oprávnění EPICode.
S 1 ovo Výs1ovnos t Kódy Symboly oprávnění EPICode
- minus A SUB
1 ulož A STORE
# značka čísla A NMBR
#> značka čísla větší než A NMBRGT
#s značka čísla s A NMBRS
* hvězdi čka A MUL
/ 1omí t ko A DIV
dvoj tečka A , 11 PROČ
J st řední k A . C , H ENDPROC
?DO dotaz na udě 1ání A,C,H RQDO <+addr>
?DUP dotaz na reprodukci A QDUP
7THROW dotaz na vhození G QTHROW
vyvo1e j A FETCH
I ’ ] .. čárka v hranaté závorce A , C , H LITC <+addr>
[CHAR] znak v hranaté závorce A,C,H PLIT <n>
• 4
PCT/EP97/03355
VO 97/50063 PŘíLOHA
p 1 us A ADD
+ ! plus ulož A INCR
+ LOOP plus smyčka A,C RPLUSLOOP <+addr>
< menší než A CMPLT
<# menší než značka čísla A LTNMBR
o nerovná se A CMPNE
rovná se Λ CMPEQ
> větší než A CMPGT
>BODY do tělesa A , H WLIT <+addr>
>NUMBER do Čísla A TONUMBER
>R do r A , C TOR
0< nula menší než A SETLT
0<> nula se nerovná A SETNE
0 = nula se rovná A SETEQ
O> nula větší než A SETGT
1- jedna minus A SSUBLIT 1
1 + jedna plus A SADDLIT 1
2 ! dvě ulož A VSTORE
2 * dvě hvězd iΓ·ka A SHL
2/ dvě lomeno A S1IR
2@ dvě vyjmi A VFETCH
2>R dvě do r A.C TWOTOR
2DR0P dvě vynech A TWODROP
· 0 0
0 0 0 • · 0 · · · ·
0· V*
WO 97/50063
PŘíLOHA
PCT/EP97/O3355 ·· 0000
2DUP dvě reprodukuj A TWODUP
2OVER dvě přes A TWOOOVER
2R@ dvě r vyjmi A,C TWORFETCH
2R> d ě r z A.C TWOR1 ROM
2 ROT dvě chod textu A TWOROT
2SWAP dvě přesuň A TWOSWAP
2VARIABLE dvě proměnné A,H LITU <+addr>
ABS ab signál i zace A ABS
AGAIN znovu A,C,H BRA <+addr>
AND a A AND
BASE základ A USERVAR 1
BUFFER: vyrovnávací parně ϊ dvoj tečka G,H LITU <+addr>
C ! c ulož A BSTORE
C í<Š c vyvo1e j A BFETCHU
C+! c plus ulož G BINCR
CATCH zachyF A CATCH
CELL buňka G FOLK
CELL+ buňka plus A SADDI Ι Ί 4
CELLS buňky A SMULLIT 4
CHAR znak A PLIT <n>
CHAR + znak plus A SADDLIT 1
CHARS znaky A NOOP
• to toto·· • · · • 44
4 4
4 · 4
WO 97/50063
Pří í LOHA
PCT/EP97/O3355 • 4 ·4
4 4 • · 4 4 • ·· 444 • ·
COMPARE srovnej A BCMP
CONSTANT konst ant a A,H LIT <x>
D+ d plus A VADD
DEPTH h1oubka Λ DEPTH
DNEGATE d neguj A VNEGATE
DO udě 1ej A, C, IJ RDO
DROP vynechej A DROP
DUP reprodukuj A DUP
ELSE j i nak A,C,H BRA <+addr>
ENDCASE koncový pří pad A,C,H DROP
ENDOF konec (čeho) A,C,H BRA <+addr>
EXECUTE proveů A ICALL
EXIT výstup A ,C RETURN
FILL vyplň A BULL
GET_MSECS dostaň mi 1 i sekundy G GETMS
HOLD uchovej A HOLD
I i A , C RI
IF jest 1 i že A,C,H BZ <+addr>
INVERT obrať A INVERT
J j A,C RJ
LEAVE vynechej A,C RLEAVE <+addr>
LITERAL 1 i t erá1 A,C.H LIT <n>
LOCALS) 1 oka lity s čarou A,C,H <method> <addr>
LOOP smyčka A,C,H RLOOP <+addr>
• ft ftftft· » ft
WO 97/50063
I»řt í LOHA
PCT/EP97/O3355 • ft ftft ft · ft · · • « ftftft· ft ftft ftftft ftftft ftftft ftftftft · ft ft* ftft· ftft ftft ftft ftft
LSHIFT 1 přeřaS A SHLN
M* m hvězdička A MMUL
M/MOD m lomítko modu 1us G MSLMOD
MAX maximum A MAX
MIN mi n imum A MIN
MOD modu 1us A MOD
MOVE přesuň A BMOVE
MS milí sekunda A MS
NEGATE neguj A NEGATE
NIP odděl A NIP
NOT ne SETEQ
OF z A,C,H ROF <+addr>
OR nebo A OR
OVER přes A OVER
PICK vyber A PICK
PLUG zasuň H LITC <+addr>
RECURSE rekurze A,H CALL
REPEAT opaku j A,C,H BRA <+addr>
-ROT minus chod textu G ROTB
R@ r vyvolej A,C RFETCH
R> r z A,C RFROM
ROT chod textu A ROT
RSHIFT v r přeřad A SHRNU
SIGN znaménko A SIGN
9·*· * 9 • 0 9
9 · » 9 9 0 • 9 9 9 9 9 9
9· ··· 9*9 • 0 9 9 0 9 • 0 99 99 09
WO 97/50063 í loha
PCT/EP97/O3355
SOCKET zásuvka H DOSOCKET <n>
SWAP přesuň A SWAP
THROW vhod A THROW
TIME&DATE čas a datum A GETTIME
-TRAILING minus koncové A ΜINUSTRAILING
TUCK schovej A TUCK
U< u menší než A CMPLTU
U< = u menší než nebo rovno G CMPLEU
U> u větší než A CMPGTU
U> = u větší než nebo rovno G CMPGEU
UM* um hvězdička A MMULU
UM/MOD um 1 orní t ko modulus A MSLMODU
UMOD u modulus G MODU
UNTIL až do A,C,H B Z < + addr>
USER uživatel G USERVAR <n>
VALUE hodnota A,H LITD <+addr> <method>
VAIU ABLE proměnná A,H J I Ti <n>
WHILE žatí mco A,C,H BZ <+addr>
WITHIN uvn i t ř A WITHIN
XOR vy iučovací nebo A XOR
4444 • · •
* 4 • 4 4
WO 97/50063
PŘ í LOHA
PCT/EP97/O3355 • 4 4··· 44 44
4 4 4 4 *4 * 4 4 4 **4 • 4 4 4 4·· 444
4 4 4 4 4
4« 4· ·4
1.2 Ujednání
1.2.1 Formáty čísel
Čísla větší než jeden byte jsou přenášena v programech symbolů oprávnění ve velké končící dvojí doplňkové formě, nejvýznamnější byte je první. Uvnitř programu EPICode by měli k číslům vždy přistupovat operátory správného formátu, aby umožnily programům uložit čísla ve formě nejvhodnější pro podloženou aίihitekturu.
Násobné precizní typy dat jsou drženy v zásobníku s nejvýznamnější buňkou na samém vrcholu. Tyto typy dat jsou drženy v paměti s nejvýznamnější buňkou v nejníže adresovatelné buňce uvnitř typu s mnoha buňkami.
1.2.2 Kontrolní struktury a relativní ukazatele
Kontrolní struktury jsou tvořeny kontrolními symboly oprávnění (BRA, RLOOP atd.) následované čtyřbytovým, dvoubytovým nebo jednobytovým relativním ukazatelem se znaménkem. Relativní ukazatel následující kontrolní symbol oprávnění je přidán k ukazateli symbolu oprávnění (TP - Token Pointer), když byl vyvolán relativní ukazatel. Jestliže je tak symbol oprávnění větve v addr, je adresa místa určení addr+2+offset pro jednobytový relativní ukazatel (SBRA). addr+3+offset pro dvoubytový relativní ukazatel (BRA) a v addr+5+offset pro čtyřbytový relativní ukazatel (EBRA).
Symboly oprávnění přebírající Čtyřbytové relativní ukazatele jsou dostupné jen kódům specifickým pro terminál při realizacích virtuálního stroje, která podporuje 32 bitový lineární adresovací prostor pro kód.
1.2.3 Adresy
Procedury definované uživatelem jsou definovány jejich adresami uvnitř programu EPICode. Jestliže symboly oprávnění jsou přeloženy nebo strojový jazyk kompilován pro větší procesory, nebude adresa prostoru symbolu oprávnění odpovídat skutečné adrese kódu.
Φ* ΦΦΦΦ
Φ Φ Φ
ΦΦΦ
ΦΦΦ Φ
Φ Φ Φ Φ
ΦΦ ΦΦ
ΦΦ ΦΦ
Φ Φ » ·
Φ Φ Φ Φ
Φ ΦΦΦ ΦΦΦ
Φ Φ
ΦΦ ΦΦ ···« 4 • *Φ ♦ ·
Φ Φ *Φφ
ΦΦ ΦΦΦ
W0 97/50063
Pit ί LOHA
PCT/EP97/O3355
1.3. Typování dat
Většina symbolů oprávnění pracuje s veličinami s velikostí dat a s interpretací se znaménkem nebo bez znaménka určenou symbolem oprávnění, avšak instrukce, které přistupují do paměti v paměti rámců mohou převzít potlačení typu dat, určené symbolem oprávnění s předponou. Sada bytových kódů uvedená v tab. 1 je rezervována pro takové symboly oprávnění s předponou, avšak běžně se používají jen SBYTE a UBYTÉ.
Typy dat, které požadují méně než jednu buňku (1 byte) jsou vyvolány z paměti použitím bytového operátoru nebo operátorem s potlačenou předponou. Jestliže typ dat se znaménkem je implicitní nebo specifikovaný, jsou data rozšířena o znaménko do Šířky buňky. Jestliže typ dat bez znaménka je implicitní nebo specifikovaný, jsou data rozšířena nulově.
Předpona Zkratka Popis Vel i kos t
SBYTE SB byte se znaménkem 1 byte
UBYTÉ UB byte bez znaménka 1 byte
SLONG SL dlouhý se znaménkem 4 byty
ULONG UL dlouhý bez znaménka 4 byty
SVLONG SV velmi dlouhý se znaménkem 8 bytů
UVLONG UV velmi dlouhý bez znaménka 8 bytů
Tab. 1: Předpony typů dat
1.4 Aritmetika
Operace sečítání a odčítání, které přeplní velikost specifikovanou pro vrácené výsledky vrátí ten výsledek modulo [maximální hodnota bez znaménka přizpůsobená tomu rozměruj+1.
Operace uložení, jejichž místo určení pro uložení je menší než velikost prošlé hodnoty, uloží hodnotu omezenou na šířku místa určení.
• •00
00
0 0 0
0 0 0
0*0 000 • ·
00
0000
00« ·
WO 97/50063
PŘí L,OHA
PCT/EP97/O3355
0 00
Operace dělení jsou symetrické, tj. zaokrouhlení je vždy k nule bez ohledu na znaménko.
1.5 Primární symboly oprávnění
Symboly oprávnění se dělí za účelem vhodnosti do několika logických sad a jsou uvedeny níže v oddělených sekcích. Všechny hodnoty symbolů oprávnění jsou hexadecimální.
Předpony typů dat použitelné pro symboly oprávnění jsou uvedeny explicitně v seznamu použitím zkratek uvedených v tab. 1. Jakýkoli primární symbol oprávnění, který je opatřen předponou pomocí symbolu oprávnění nikoli v jeho předponě, je neplatný a provedení takového symbolu oprávnění způsobí, aby byla vhozena výjimka ILLOP. Standardní typ pro symbol oprávnění je vysázen kurzivou a je vždy uveden v seznamu první. Standardní předpona typu dat je redundantní a je neplatná, jestliže je použita pro předponu symbolu oprávnění jako výše.
1.5.1 Sada operací
NOOP ( ~ )
Není vzata žádná činnost.
BFETCHS ( addr — num )
Vyvolej osmibitový byte z dané adresy, znaménko jej rozšiřuje.
LIT ( - x )
Vrať buňku, která následuje vložená jako data.
LITC ( — addr )
Vrať buňku, která následuje vložená jako literál, který je adresou v obraze kódu. Hodnota literálu může být v i <>in obraze přemístěna zaváděcím programem.
4*44 •4 4444
4 4 « >4 4
4 4· 4 44
4
44
4 • 4
4
WO 97/50063 í LOM A
PCT/EP97/O3355
OA
OB
OC
OD
OE · 4
4*4 4 4 4 4
4 4 4
4 4 4 4
LITD ( — addr )
Vrať buňku, která následuje vložená jako literál, který je adresou v prostoru inicializovaných dat. Hodnota literálu může být v tom obraze přemístěna zaváděcím programem.
LITU ( — addr )
Vrať buňku, která následuje vložená jako literál, který je adresou v prostoru ne inici a 1 izovaných dat. Hodnota literálu může být v tom obraze přemístěna zaváděcím programem,
PLIT ( }
Vrat byte, který následuje vložený. Byte je nulově rozšířený na 32 bitů.
NLIT ( — num )
Vrať byte, který následuje vložený, nulově rozšířený na 32 bitů a potom negovaný.
HLIT ( )
Vr. y 1, ,.>ubytovou hodnotu, ktejá následuje vložená. Hodnota je nulově rozšířená na 32 bitů.
HLITC ( — addr )
Vrať adresu vyplývající z přidání dvoubytové hodnoty bez znaménka, která následuje vložená do základní adresy obrazu kódu. Hodnota je nulově rozSířena na 32 bitů.
SLITD ( — a-addr )
Vrať a’iv,u vyplývající z přidání bytu bez znaménka, která následuje vložená interpretovaná jako kladný relativní ukazatel v buňkách do základní adresy inicializovaných dat. Byte je nulově rozSířen na 32 bitů a násoben 4, aby dal
I · · « • · » · ··
WO 97/50063
PŘf LOHA
PCT/EP97/O3355 « *· · ·» ♦· • · · Β • · · • « · Φ· » relativní ukazatel v bytech.
HLITD ( — addr )
Vrať adresu vyplývající z přidání dvoubytové hodnoty, která následuje vložená do základní adresy inicializovaných dat. Hodnota je znaménkem rozšířena na 32 bitů.
SLITU ( — addr }
Vrař adresu vyplývající z přidání bytu bez znaménka, která následuje vložená, interpretovaná jako kladný relativní ukazatel v buňkách do základní adresy ne inici a 1 izovanýcb dat. Byte jc nulové rozšířen na 32 bitů a násoben 4, aby dal relativní ukazatel v bytech.
HLITU ( — addr )
Vrař adresu vyplývající z přidání dvoubytové hodnoty, která následuje vložená do základu ne inici a 1 izovaných dat. Hodnota je znaménkem rozšířena na 32 bitů.
ADDLIT f xt - X? )
Přidej data do buňky, která následuje vložená do x}, poskytující
SADDLIT í x{ - x, )
Přidej Iiterál z jednobytové vložené hodnoty se znaménkem Xj, poskytující x?.
SUBLIT f X, - x, )
Odečti ďata v buňce, která následují vložená z x poskytující Xj.
1A SSUBLIT ( x, - Xft )
Odečti jednobytovou vloženou hodnotu se znaménkem • » « « *0 0« <0 0
0 0 0
000 000 • 0
00
WO 97/50063 í LOHA
PCT/EP97/O3355
0 0 • · 0
0 0 0 *0 · <0 00 od Xj, poskytující Xj.
ÍC VSUBLIT ( d — d-lit )
Odečti osmibytovou vloženou hodnotu se znaménkem od dvojitého čísla d.
ID
IE
3A
SMULLIT ( num — num*1 i t )
Násob num jednobytovým literálem se znaménkem, který následuje vložený.
SDIVLIT ( num — num/lit )
Děl num jednobytovým literálem se znaménkem, který následuje vložený.
DIVU ( Uj U - Uj )
Děl Uj pomocí u·, (bez znaménka), dávající Uj.
SHRU ( u — U>>1 )
Logické přeřazení u vpravo jeden bit. vložením nulového bitu.
Poznámka. Operátory SETXX provádějí srovnání s nulou, označení je nastaveno podle výsledků tohoto srovnání.
SETGE ( num — flag )
Vrať TRUE, jestliže num < 0 (se znaménkem)
SETLE ( num — flag )
Vrať TRUE, jestliže num > 0 (se znaménkem)
CMPGEU ( Uj u^ - flag )
Srovnej hodnotu Uj a u^ bez znaménka, vracením TRUE, jestliže uj > Uj.
4C CMPGE ·· ···· • · · • · · • · » • · · · ·· ·· ·« fcfc • ·
WO 97/50063
F>K. f LOHA
PCT/EP97/O3355 ·· · *· • 4 • · ··« a
«· ( nunij nunij — flag )
Srovnej hodnoty num< a nunij se znaménkem vrácením TRUE, jestliže πιατί] > num^.
4F CMPLE ( nunij nunij — flag )
Srovnej hodnotu nunij a num? se znaménkem, vrácením TRUE, jestliže nunij < nunij.
Následující symboly oprávnění poskytují přístup do paměti rámců.
50..53
60..63
PFRFETCH2...PFRFETCH5 ( — num )
Ekvivalenty krátké formy pro SFRFETCH n (q.v.), kde n je 2..5. Možná potlačení typu dat obsahují: SL, SB, UB.
TFRFETCH12...TFRFETCH1 ( — num )
Ekvivalenty krátké formy pro SFRFETCH n (q.v.), kde n je -12..-1. Možná potlačení typu dat obsahují: SL, SB, UB.
PFRSTORE2...PFRSTORE5 ( num — }
Ekvivalenty krátké formy pro SFRSTORE π (q.v.), kde n je 2..5. Možná potlačení typu dat obsahují: SL, SB.
. . 6F TFRSTORE12...TFRSTORE1 ( num — )
Ekvivalenty krátké formy pro SFRSTORE n (q.v.), kde n je -12..-1. Možná potlačení typu dat obsahují: SL, SB.
SFRFETCH ( num )
Vyvolej hodnotu num (standardním programem, buňkou) při vloženém jednobytovém relativním ukazateli se znaménkem z ukazatele rámců. Relativní ukazatel je interpretován jako index buňky (tzn. že je násoben 4, aby dal bytem adresovaný relativní ukazatel) pro pl/ <?<?
·· ··*·
WO 97/50063 FÍt í LOHA
PCT/EP97/O3355 standardní typ dat a jako index bytu pro potlačení dat bytové velikosti. VSimněme si. že SFRFETCH 0 a SFRFETCH 1 vrací řídicí data vnitřního rámce s žádným významem zprávy pro volací program a tak nevytváří platné odkazy do rámce. Tak parametry zahájí u SFRFETCH 2 a dočasné proměnné zahájí u SFRFETCH -1, protože zásobníky rámců se zvětšují v paměti směrem dolů. Možná potlačení typu dat obsahují: SL, SB, UB.
SFRSTORE ( — nu ni )
Ulož hodnotu num (standardním programem, buňkou) v argumentu při vloženém jednobytovém relativním ukazateli se znaménkem z ukazatele rámců. Relativní ukazatel je dodán jako vložená hodnota, se kterou se zachází jako s indexem buňky (tzn. že je násoben 4, aby dal bytově adresovaný relativní ukazatel) pro standardní typ dat a jako bytový index pro potlačení dat bytové velikosti. Viz SFRFETCH pro další podrobnosti. Možná potlačení typu dat obsahují: SL. SB.
FRFETCH ( — num )
Vyvolej hodnotu num při relativním ukazateli se znaménkem z ukazatele rámců. Relativní ukazatel je poskytnut dvoubytovou vloženou hodnotou. Viz popis SFRFETCH pro více podrobností. Možná potlačení tjfu dat obsahují: SL, SB, UB.
FRSTORE ( num — )
Ulož hodnotu num v argumentu při relativním ukazateli se znaménkem z ukazatele rámců. Relativní ukazatel je poskytnut dvoubytovou vloženou hodnotou. Viz SFRSTORE pro další podrobnosti. Možná potlačení typu dat obsahují: SL, SB.
SFRADDR ( — addr )
Vrať adresu do rámce při relativním ukazateli se znaménkem z ukazatele rámců. Relativní ukazatel je • · · * • · · · • · • ·
WO 97/50063 E>řt í LOHA
PCT/EP97/O3355 poskytnut jednobytovou vloženou hodnotou, která se násobí 4, aby dala bytový relativní ukazatel pro standardní typ dat a je použita přímo jako index bytu pro potlačení dat bytové velikosti. Možná potlačení typu dat obsahují: Sl,, SB.
FRADDR ( — addr )
Vrať adresu do rámce při relativním ukazatel i buňky se znaménkem z ukazatele rámců. Relativní ukazatel je poskytnut dvoubytovou vloženou hodnotou, která se násobí 4, aby dala bytový relativní ukazatel pro standardní typ dat a je použita přímo jako index bytu pro potlačení dat bytové velikosti.
Funkce přeměny čísel pro symboly oprávnění poskytující podporu pro standard Forth; NMBR ve jménech symbolu oprávnění se vyslovuje číslo. Symboly oprávnění LTNMBR. NMBRS a TONUMBER využívají proměnného základu (BASE) uživatele jako základu přeměny čísel.
8C UNDER (XjX^ - X{XjXj /
Reprodukuj druhou položku v zásobníku.
9C ZERO ( - 0 )
Vynechej hodnotu 0 v zásobníku.
9D ONE ( - 1 )
Vynechej hodnotu 1 v zásobníku.
9E MINUSONE ( - -1 )
Vynechej hodnotu -1 v zásobníku.
AO INDEX (addrjnum — addr?)
Násob num Čtyřmi a přičti do addrj, aby dalo addrj·
A2 EDOCREATE ( — a-addr )
I
WO 97/50063 f LOHA
PCT/EP97/O3355
A3
A4
A5
Vrať adresu do prostoru dat, jehož relativní ukazatel sleduje vloženou buňku bezprostředně po tomto symbolu oprávnění a proved standardní podprogram návratu. Tento symbol oprávnění je použit k identifikaci oblasti dat voláním jí odpovídající procedury, dovo 1 enímvytvoření tabulek dat nezávislých na pozici.
EDOCLASS ( — a-addr )
Větvi do adresy prostoru kódů, jejíž relativní ukazatel je obsažen ve vložené buňce. která následuje po vtlačení adresy do zásobníku dat, vyplývající z přidání relativního ukazatele bez znaménka, který následuje v další vložené buňce (tj. po relativním ukazateli kódu) do základu adresy prostoru inicializovaných dat. Tento symbol oprávnění je použit k identifikaci struktury dat v paměti programu a k přenosu kontroly do standardního programu, který ji zpracuje a poskytuje základ jednoduchého mechanizmu třídy.
DOCREATE ( — a-addr )
Vrať adresu do prostoru dat, jehož relativní ukazatel následuje vloženou dvoubytovou hodnotu bezprostředně po tomto symbolu oprávnění a proved standardní podprogram návratu. Tento symbol oprávnění se používá k identifikaci relativního ukazatele dat voláním jemu odpovídající procedury, dovolující vytvoření tabulek dat nezávislých na pozici.
DOCLASS ( — a-addr )
Větvi do adresy prostoru kódů, jehož relativní ukazatel je obsažen ve vložené buňce, která následuje po vtlačení adresy do zásobníku dat, vyplývající z přidání relativního ukazatele bez znaménka, který následuje ve dvou bytech dá! vložených (tj. po relativním ukazateli kódu) do adresy základu prostoru inicializovaných dat. Tento symbol oprávnění je použit k identifikaci * « · · · ·
WO 97/50063 řš í l.OHA
PCT/EP97/O3355
A6
A7
AS
AB struktury kont ro ly zpracu j e mechani zmu dat v paměti programu a k přenosu do standardního programu, který ji a poskytuje základ jednoduchého třídy.
ECALL ( )
Následován vloženou buňkou volá proceduru použitím této buňky jako bytového relativního ukazatele se znaménkem do prostoru kódů.
SCALL ( - )
Nás 1edován použitím tohoto bytu ukazatele se znaménkem jedním vloženým bytem volá proceduru jako bytového relativního do prostoru kódů.
CALL ( - )
Nás 1edován ukazat e1em vloženým dvoubytový relativním volá proceduru použitím této hodnoty jako bytového relativního ukazatele se znaménkem do prostoru kódů.
parametry procedury a potom temys, počet dočasných proměnných. Přidělí pa; uns + temps+2 rámců, aby oprávnění a dočasným
SMAKEFRAME
Z γ x — J ’ P3ΓdíB$ * Λ y '
Následován dvěma jednobytovými literáty bez znaménka obsahujícími první params, počet buněk tvoří buněk buňky a potom nastaví běžný ukazatel ukázal k novému rámci. Tento symbol umožní přístup k parametrům procedury proměnným pomocí FRFETCH a FRSTORE.
Virtuálnímu stroji je umožněno vytvořit rámce v zásobníku návratu, takže použití rámců je omezeno které se aplikují obecně na použití návratu. Parametry procedury ze zásobníku dat do rámce takže se k nim může přistoupit pravidly, zásobní ku přesunuty SMAKEFRAME, budou pomocí pomocí
FRFETCH a Jest 1 i že ve 1ikost i
FRSTORE. není možné bude vhozen vytvořit rámec požadované FRAME_ STACK_ERROR.
WO 97/50063
PRf LOHA
PCT/EP97/03355
AC
AD fr · » 9
9
Ná^í^dov/rí
MAKEFRAME
- ~) dvěma dvoubytovými literály bez znaménka obsahujícími první params, počet buněk tvoří parametry procedury a potom temps, počet buněk dočasných proměnných. Viz SMAKEFRAME pro další podrobnosti.
RELFRAME ( “ )
Obnov ukazatel rámce do jeho předchozí hodnoty a uvolni běžný rámec.
1.5.2 Sada větví
Tyto symboly oprávnění obsahují obvyklé operátory větví zásobníkového stroje plus doby provozu pro Forth slova DO ?D0 LOOP +LOOP LEAVE I a J .
A ΙΒΟ
EBRA
Větvi vždy. Čtyřbytový vložený relativní ukazatel.
EBZ ( num — )
Větvi jestliže num = 0. Čtyřbytový vložený relativní ukazatel.
B1
B2
B3
FlíNZ (num — )
Větvi jestliže num * 0. Čtyřbytový vložený relativní ukazatel.
SBRA ( ~ )
Krátká větev. Bytový vložený relativní ukazatel se znaménkem.
SBZ ( num — )
Krátká větev jestliže num = 0. Bytový vložený relativní ukazatel se znaménkem.
PCT/EP97/O3355
WO 97/50063 F* í LOHz\
B4 SBNZ ( num — )
Krátká větev jestliže num * 0. Bytový vložený relativní ukazatel.
B5 BRA ( ~ )
Nepodmíněná větev. Dvoubytový vložený relativní ukazatel se znaménkem.
B7 BNZ ( num — )
Větvi jestliže num * 0. Dvoubytový vložený relativní ukazatel se znaménkem.
1.5.3 Potlaěení typu dat a stránky kódů
Tato skupina umožňuje překonat omezení osmibitových symbolů oprávnění. Všimněme si, že jejich zásobníkové působení závisí na následujících symbolech oprávnění. Pár symbolů oprávnění se oznaěuje jako sekundární symbol oprávnění.
Rozšířené symboly oprávnění pro typy dat obsazují symboly oprávnění CO až CF. Nepoužité symboly oprávnění v tomto rozsahu jsou rezervovány pro budoucí použití, když jsou požadovány dodatečné předpony typů dat.
Cl SBYTE ( - )
Byte se znaménkem.
C2 UBYTÉ ( ~ )
Byte bez znaménka.
C5 SLONG ( ~ )
Dlouhý 32 bitový se znaménkem.
C6 ULONG r - i
Dlouhý 32 bitový bez znaménka.
WO 97/50063
17* ÍÁ í I.OHA
PCT/EP97/O3355 ·* ftft·· • ft • · • · ft · · · * ftft ft · · · · ftft ftft ftftft ftftft ftftftft ft ft • ftft ·· ftft ftft
1.5.4 Symboly oprávnění pro manipulaci objímek
D2 DOSOCKET ( - )
Následován vloženým bytem (0..63), který specifikuje požadované číslo funkce. Účinek zásobníku je definován funkcí připojenou k zásuvce.
D3 IDOSOCKET ( u - )
Provádí funkci zásuvky, jejíž číslo zásuvky (0..63) je specifikováno pomocí u. Účinek zásobníku nižší úrovně je definován funkcí připojenou k zásuvce. Výjimka 24 ANS Forth (neplatný numerický argument) bude vhozena, jestliže u je větší než 63.
1.5.5 Kontrolní sada
E6 IMCALL ť Proved funkci z modulu, jehož číslo modulu (0 255) je dáno v dalším vloženém bytu a jehož číslo funkce (0-255) je dáno v následujícím vloženém bytu. Účinky zásobníku závisí na volané funkci.
E7
F9
CLASSPROC ( ~ )
Během zavedení CLASSPROC označí vstup do kódu třídy manipulace. Je použit pro pomoc kompilace a může být realizován jako NOOP.
SYSFUNC ( )
Se stránkou rozšiřujícího symbolu oprávnění se zachází jako s prvním bytem sekundárního symbolu oprávnění. Volá standardní program specifikovaný následujícím vloženým bytem. Podporovaná sada symbolů oprávnění je definována v Účinek zásobníku je definován sekundární ch sekci 1.7.
specifikovaným standardním programem.
φφφφ • φ φφφφ • Φ • ·
I Φ Φ 4
ΦΦ ΦΦ
Φ φ
PCT/EP97/O3355 • Φ *
Φ·Φ ΦΦΦ • Φ
ΦΦ Φ Φ
WO 97/50063 JPÍt í LOIIA
1.6 Ζά,-. ιι vky
Prvních osm sekundárních symbolů oprávnění zásuvek je rezervováno pro funkce řízení zásuvek a níže jsou popsány definované funkce řízení. Zbývající zásuvky (D2 08 až D2 3F) jsou pro aplikační použití.
F9 91 SETSOCKET ( χρ υ — flag 1
Nastav ukazatel provedení xp, aby byl manipulačním programem funkce u zásuvky, který způsobí , aby bylo provedeno xp následujícím provedením DOSOCKET <u> . Předtím než je nastaven ukazatel provedení je pulzována procedura instalovaná pomocí SETPLUGCONTROL, aby se určilo, zda může dojít k zasunutí do zásuvky tímto novým xp. flag je hodnota vrácená touto procedurou. SETSOCKET pouze nastaví ukazatel, jestliže flag je FALŠE, jinak je ukazatel odložen. Výjimka -24 {neplatný numerický argument) bude vhozena, jestliže u je větší než 63.
D2 00 SETPLUGCONTROL / xp - )
Uloží ukazatel provedení vp procedury napsané uživatelem, která bude provozována pomocí SETSOCKET, aby se určilo, zda může dojít k zasunutí do zásuvky.
Činnost této procedury (která se pro účely ilustrace označuje jako PLUGCONTROL) musí být:
( u — flag 1 kde u je číslo zásuvky a flag vrací FALŠE, jestliže může dojít k zasunutí do zásuvky nebo TRUE, jestliže k zasunutí nemůže dojít. Dále ještě procedura PLUGCONTROL musí vyvolat výjimku - 24 (neplatný numerický argument) pro hodnoty u mimo rozsah 0-63.
Standardní činnost procedury PLUGCONTROL je instalována virtuálním strojem k vrácení FALŠE pro všechny hodnoty u. umožňující aby došlo k zasunutí do všech objímek.
D2 03 OSCALLBACK ( dev fn nun^numj — ior )
PCT/EP97/O3355
0*0· · 0· 0·0· ·· 00 0·· 00 · · · 0 0 · 000 · 0 0 0 • 0 · · 0 0· «00 000
000 00·« · · • 0 ··· ·· «· 00 00
WO 97/50063 F>ří í LOMA
Volá standardní program operačního systému s parametry: dev vybírá požadované 1/0 zařízení pro Funkci fn s num, 32 bitovými parametry obsaženými v poli numj* vracející ior, který je závislý na realizaci. Všimněme si, že num^ je na vrcholu zásobníku. num^ a nunij odpovídajícím způsobem odpovídají arvc a argv při použití jazyka C.
Všimněme si. že tato zásuvka je závislá na realizaci a je poskytnuta tak, že programy specifikované terminálem (TRS - terminál specific program), napsané použitím EPICode, mohou mít I/O závislé na terminálu. Jestliže není specifická funkce podporovaná, je vhozena výjimka -21 (nepodporovaná operace).
D2 04 EPICALLBACK ( dev fn nutily num — ior )
Zasii· ' ·ί o standardní program i PÍOode, která^může být volána podloženým operačním systémem. Čtyři parametry jsou 32 bitové hodnoty určené k použití následovně: der vybere požadované 1/0 zařízení pro funkci fn s 32 bitovými parametry num:, obsaženými v poli nunip vracející ior, jehož význam závisí na realizaci. nunij a num, odpovídajícím způsobem odpovídají arvc a argv při použití jazyka C.
Všimněme si, že tato zásuvka je závislá na realizaci a je poskytnuta tak, že specifický program terminálu (TRS), napsaný použitím EPICode, může poskytnout pro operační systém standardní programy zpětného volání. Jestliže není specifikovaná funkce podporována, je vhozena výjimka -21 (nepodporovaná operace).
1.7 Sada SYSFUNC I/O
Tato sada definuje funkce, které jsou dostupné přes symbol oprávnění SYSFUNK, který působí jako zobecnělé rozhraní pro podložené standardní programy operačního systému.
PCT/EP97/O3355
0 0 0«· ·· 0 0 • 0 0 · 0 0 · 0« · 0 0 0 0 0 0 00 ·· 0 0 0 0 0 0 0 0 0 0 • 0 00 00 00
WO 97/50063 PŘ í L,OHA
1.7.1 Přístup k zařízení
Každému zařízení je přiděleno jednoznačné číslo zařízení. Kódy statusu ior jsou závislé na zařízení, kromě toho že kód ior 0 vždy označuje úspěch.
F9 00 DKEY / dev — echar )
Čti znak ze vstupního zařízení dev.
F9 01 DKEYTEST ( dev — flag )
Vrař TRUE, jestliže znak je připraven, aby bvi přečten ze vstupního zařízení dev.
F9 02 DEM1T ( char dev — )
Přenes char na výstupní zařízení dev.
E9 03 BEEP ( u dev — )
V.; ř-iticj si výstupní zařízení dev, aby generovalo zvuk po dobu trvání u milisekund. Tato funkce může pozastavit zpracování po specifikovanou dobu t rváni .
F9 04 DREAD ( addr len dev — ior )
Přečti řetězec ze vstupního zařízení dev, vrácením ior závislého na zařízení. Vrácený řetězec obsahuje jen byte nižšího řádu znaků přečtený ze zařízení klávesnice.
F9 05 DWRITE ( addr len dev — ior )
Napiš řetězec do výstupního zařízení dev, vrácením ior závislého na zařízení.
Γ9 06 DSTATUS ( dev — ior )
Vrať status ior zdroje připojeného k zařízení dev, kde v obecném případě připraven” nebo schopný služby je označen 0 a nepřipraven je označen «>·· 4 4· «··· 44 44
44· 44 4 4 4 4 4 • 4 4 4 4444 • 4 44 4 44 ·····
444 4444 4 4
444 4· «4 4» «4
WO 97/50063 í L OH A
PCT/EP97/O3355 jakoukoli jinou hodnotou. Specifické zařízení může vrátit nenulové hodnoty, které jsou významné pro toto zařízení. Jestliže bylo zařízení vybráno předchozím provedením symbolu oprávnění OUTPUT, mělo by DSTATUS vrátit nepřipraven, dokud se nedokončí provedení funkce propuštěné do OUTPUT.
F9 07 DIOCTL { dev fn num s-addr — i oř )
Provečí funkci fn IOCTL pro kanál dev s argumenty num velikosti buněk v poli v a-addr.
F9 OS OUTPUT ( xp dev — i oř )
Proveď proceduru, jejíž ukazatel provedení je dán xp s výstupem směřujícím k zařízení dev. Při návratu z OUTPUT není běžné výstupní zařízení ovlivněno (viz GETOP). ior je vráceno jako nula, jestliže je procedura proved ite1ná. Všechny výjimky vznikající z provedení xp jsou chyceny virtuálním strojem a způsobí okamžité ukončení OUTPUT.
F9 09 DWRITESTRING ( dev — )
Tento symbol oprávnění je následován řetězcem zraků uložených v proudu symbolů oprávnění jako Citaci byte následovaný tolika byty. Symbol oprávnění DWRITESTRING píše znaky do vybraného zařízení dev. Provedení pokračuje bezprostředně po po?sledním znaku.
F9 0A GETOP ( — dev )
Vrací zařízení dev posledně vybrané pomocí SETOP nebo během provedení funkce prošlé do OUTPUT. Používán k nalezení standardního zařízení pro I/O operace orientované zařízením. Tato funkce umožňuje, aby funkce závislé na běžném zařízení byly snadno realizovány.
1'9 OB SETOP ( dev — i
Používán pro nastavení standardního zařízení dev
PCT/EP97/O3355
0* ···« «· 90
0 · V 0 0 · • 0 * 0 0*0 0 0 9 9 0«0·00
0 0 9 9 • 0 00 00 00
WO 97/50063 PŘÍLOHA vráceného pomocí GETOP pro 1/0 operace orientované zařízením. Tato funkce umožňuje, aby funkce závislé na běžném zařízení byly snadno realizovány.
F9 OC FORMFEED ( dev — )
Provádí na zařízení dev činnost nová forma závislou na zařízení, takovou jako vymaž stínítko (displej terminálu) nebo vhočí stránku (tiskárnu).
F9 OD CR ( devv~ )
Proved na zařízení dev činnost nový řádek závislou na zařízení.
F9 0E SETXY ( num^ nunij dev — )
Proved na zařízení dev Činnost nastav absolutní polohu závislou na zařízení použitím numj jako souřadnice x a num7 jako souřadnice y.
1.7.2 Manipulace času
Standardní slova Forth.
1.7.3 Manipulace jazyků a zpráv
Symboly oprávnění v této skupině poskytují mechani zmus pro manipulaci jazyků a pro výběr a zobrazení zpráv.
F9 20 CHOOSELANG ( addr — flag )
Vyber jazyk, jehož jazykový kód ISO 639 je dán dvěma znaky v addr. Jestliže flag je TRUE, jazyk byl nalezen a je nyní běžným jazykem. Jinak by měl volací program vybrat jiný jazyk. Vždy je k dispozici alespoň jeden jazyk (strojový jazyk terminálu).
F9 21 CODEPAGE ( num — flag )
Pokusí se vybrai livale uloženou stránku rum kódů. Stránky kódů jsou číslovány v souladu s ISO 8859 *444 · ·· ···· 4· ·· *44 *4 * · · · ·
4 * 4 · 4 · · · * 44 4 44 444*44
44* *4*4 · ·
44* *4 44 ·4 44
WO 97/50063 Ρΐί ί LOHA
PCT/EP97/O3355 (0= běžná sada znaků, 1 = latinská 1 atd.). flag je TRUE, jestliže stránka kódů byla vybrána.
F9 22 LOADPAGE ( addr — flag )
Instaluj v addr terminálu stránku kódů (tato stránka bude obvykle nalezena v kartě), flag udává úspěšné přisunutí stránky. Instalace stránky může být udělána, když byla zavedena nová tabulka zpráv z ICC, která vyžaduje stránku kódů, která není k dispozici v terminálu,
F9 23 INITMESSAGES ( - )
Tato funkce vymaže soukromé zprávy vydavatele Číslované od CO do FF (hexadecimálně) a jakékoli zprávy instalované pomocí LOADMESSAGES. Tato funkce by měla být volána po každé relaci uživatele.
F9 24 LOADMESSAGES ( c-addr — )
Instaluj tabulku zpráv na vhodném místě v bázi dat dočasných zpráv. c-addr dává umístění definice tabulky zpráv, obsahující kód stránky k použití pro zprávy, dvoupísmenný kód jazyka v souladu s ISO 639 a pro zprávy, které mají být instalovány.
F9 25 GETMESSAGE ( num — c-addr len )
Vrací parame try řetězce pro num zprávy. Koncové prostory jsou odstraněny z délky len řetězce.
F9 27 UPDATEMESSAGES ( addr len — )
Instaluj tabulku zpráv do trvale uložených tabulek jazyků. Jestliže je již obsažen jazyk se stejným kódem, bude nahrazen; jinak bude přidán nový jazyk. Jestliže tam není dostatečný prostor pro nový jazyk, bude vydán THROW s kódem 22 (TOO_ MANY_LANGUAGES) .
addr dává umístění TLV. obsahující definici tabulky zpráv, včetně kódu stránky k použití pro zprávy, dvoupísmenný kód jazyka v souladu s ISO 639 • ·
PCT/EP97/O3355
WO 97/50063 F>]& í LOHA a pro zprávy, které mají být instalovány.
F9 28 MESSAGESIZE ( - len )
Vrací standardní délku zpráv pro terminál.
F9 29 typemessagi;
( addr Jen — )
Zobrazí daný řetězec na řádce zpráv terminálu.
1.7.4 Manipulace karet ICC
Symboly oprávnění této skupiny poskytují mechanizmus pro manipulaci ěteěek karet s integrovanými obvody.
F9 30 INITCARD ( num — ior )
Vyber čtečku num ICC, kde num je 0 nebo 1.
F9 31 CARD ( c-addr^ Jenj c-addr^ l enp-c-add r; lenj }
Pošli data ve vyrovnávací paměti c-addrj len^ do karty a přijmi data v c-addr? Jep. Vrácená len·, dává skutečnou délku přijatého řetězce.
Vyrovnávací paměť c-addr^ len^ musí obsahovat : Ctyřbytové záhlaví standardu ISO (třída, instrukce, Pl, Ρ2).
Data podle volby (length následována byty length^ kde length může být 0-255).
Vyrovnávací paměť c-addr? len? musí poskytnout dostatečný prostor pro odpověd z karty plus dva byty statusu obsahující SW1 a SW2.
Manipulace chyb je udělána interně uvnitř CARD.
F9 32 CARDON (c-addr Jen? — c-addr len?por )
Připoj zdroj k ICC a proveď funkci obnovení karty. c-addr len, poskytuje vyrovnávací paměť, do které bude umístěna odpověd na obnovení; len? je skutečná délka vráceného řetězce.
F9 33 CARDOFF ( ~ ) ·· ···* • ·
WO 97/50063 í LOH A
PCT/EP97/O3355
Odpojení ICC od zdroje. Je provedeno, když jsou všechny transakce úplné.
F9 34 CARDABSENT ( - flag )
Vrat TRUE, jestliže karta ICC není v čtečce přítomna, jinak vrat FALŠE.
1.7.5 Manipulace magnetických pásků
Symboly oprávnění v této skupině poskytují mechanismus pro manipulaci zařízení magnetických pásků,
F9 38 FROMMAG j c-addr lení num — c-addr len, i oř )
Čti jeden nebo více magnetických pásků ISO. Operace může být přerušena uživatelem klávesou CANCEL nebo časovou prodlevou, num je identifikátor ISO dráhy (drah) magnetického pásku pro čtení , caddr je adresa místa určení pro řetězec a lenj je maximální délka (alespoň 78 bytů pro ISO1, 41 bytů pro IS02 a 108 bytů pro ISO3, nebo jejich součet pro čtení násobných magnetických pásků). Při návratu dává lény skutečnou délku čteného řetězce.
F9 39 TOMAG ( c-addr len num — ior )
Napiš jeden magnetický pásek ISO. Data jsou ve vyrovnávací paměti c-addr len a budou napsána do pásku num (1-3). Operace může být uživatelem přerušena klávesou CANCEL nebo časovou prodlevou.
1.7.6 Manipulace modemů
Symboly oprávnění v této skupině poskytují mechanizmus pro manipulaci se zařízením modemu.
F9 40 MODEMCALL (num^ num- numj num^ num , c-addr len —ior)
Volá číslo použitím vnitřního modemu terminálu. numj a num^ udávájí rychlost vstupního a výstupního spojení k použití (od 75 do 19200 baudů). Skutečné podporované rychlosti jsou definovány realizací.
PCT/EP97/O3355
WO 97/50063 í LOHA num? udává rovnost (0 = žádná, 1 = lichá, 2 = such). nunjj udává počet bitů k použití (7 nebo 8). num? udává počet závěrečných bitů použitých pro přenos (1 nebo 2 bity).
c-addr len je řetězec obsahující telefonní číslo k volání. může být vsunuta pro volací tón
čekání. Jestliže první znak tohoto řetězce je ’P’,
je použita pulzní volba místo standaidní volby. tónové
F9 41 MODEMHANGUP ( - ior) Tato funkce se používá k ukončení běžné modemu. relace
19 4 2 TOMODEM { c-addr len — ior ) Přenes řetězec v c-addr len do vytvořené modemu. re 1ace
F9 43 FROMMODEM (c-addr len, — c-addr len? ior)
Přijme řetězec z modemu, c-addr je adresa určení pro řetězec a len? je maximální délka. Při návratu dává len? skutečnou délku Čteného řetězce. Jestliže se po specifické období nepřijmou žádné znaky, nastane časová prodleva.
F9 44 MODEMBREAK ( - ior)
Tato funkce vyšle přerušení do připojené relace modemu.
1.7.7 Řízení černého seznamu
Symboly oprávnění v této skupině poskytují mechanizmus pro manipulaci se souborem černého seznamu.
F9 48 INITBLACKLIST ( ~ )
1-91 ι· ΦΦ·· φ φ
W0 97/50063 F»ÍÍ. ί LOHA
PCT/EP97/O3355
Tato Funkce inicializuje černý seznam do prázdného s t avu.
F9 49
F9 4A
BLACKLISTINSERT ( c-addr len — flag )
Tato funkce vloží vstup v c-addr len v seznamu, který je udržován v roztříděném pořadí.
Tato funkce musí být použita při íiktualizaci seznamu.
Vrácené flag je FALŠE, jestliže vložení bylo úspěšné (nebyl nalezen vstup v existujícím seznamu a seznam nebyl plný).
INBLACKLIST ( c-addr, Jen! — c-addr^ lenj flag )
Tato funkce se pokouší nalézt klíč c-addrj lenj v seznamu.
c-addr^ len^ obsahují výsledek hledání (obsahující zbývající byty z vybraného vstupu a možná nějaké jiné informační byty), jestliže byl klíč nalezen. Vrácené flag je FALŠE, jestliže číslo bylo nalezeno.
F9 4B BLACKLISTDELETE ( c-addr len — flag )
Tato funkce odstraní ze seznamu vstup, kde c-addr len je klíč pro vstup k odstranění. Může být dlouhá až 18 bytů.
Vrácené flag je FALŠE, jestliže odstranění bylo úspěšné (vstup byl nalezen).
1.7.8 Podpora pro bezpečnostní algoritmy
Symboly oprávnění v této skupině poskytují podporu pro inicializaci a použití bezpečnostních služeb.
F9 50 INITSECALGO ( c-addr len num — flag ) c-addr je adresa inicializace vyrovnávací paměti a len je její délka. Vstupní parametr (parametry) se mohou pro každý algoritmus lišit, ačkoli by klíč měl obyčejně projít do této inicializace, flag je FALŠE, jestliže inicializace byla úspěšná.
PCT/EP97/O3355
WO 97/50063 PŘÍ LOHA
F9 51 SECALGO f c-addr, len c-adá^ nurJ} ~ flag )
Kde c-addr, je vstupní vyrovnávací paměť dat pro výpočet a len je jejich délka, c-addr^ je výstupní vyrovnávací paměť pro uložení výsledku.
flag je FALŠI·:, jestliže výpočet proběhl úspěšně.
1.7.9 Terminálové služby
F9 58 POWERLESS ( - flag)
Vrací FALŠE, jestliže je dostatek výkonu k dokončení běžné transakce.
1.7.10 Služby bází dat
Následující symboly oprávnění poskytují mechanizmus pro manipulaci s bázemi dat.
F9 61 DBMAKECURRENT ( a-addr — )
Udolej bázi dat, jejíž DPB je v a-addr běžné báze dat .
F9 62 DBS I ZE ( - len )
Vrací velikost vyrovnávací paměti záznamů, která poskytuje okno do běžného záznamu v běžné bázi dat.
F9 63 DBFETCHCELL ( numj — num^ )
Vrací 32 bitovou hodnotu num? z buňky v bytovém relativním ukazateli nung zarovnaného buňkou v běžném záznamu běžné báze dat.
F9 64 DBFETCHBYTE ( num — char )
Vracú jednobitovou hodnotu char z bytového relativního ukazatele num v běžném záznamu běžné báze dat.
F9 65 DBFETCHSTRING
PCT/EP97/O3355
WO 97/50063 F j& í LOKÁ
F9 66
F9 67
F9 68
F9 69
F9 6B ( num len — addr len )
Vrací parametry řetězce addr a len bytové sekvence v relativním ukazateli num a s délkou len v běžném záznamu běžné báze dat .
DBSTORECELL ( numl num? — )
Uloží 32 bitovou hodnotu num^ do buňky v relativním ukazateli num, zarovnaného buňkou v běžném záznamu běžné báze dat a aktualizuje zá/na i báze dat.
DBSTOREBYTE ( char num — )
Uloží jednobytovou hodnotu char v bytovém relativním ukazateli num v běžném záznamu běžné báze dat a aktualizuje záznam báze dat.
DBSTORESTRING ( addr len^ num len; — )
Uloží nejvýše len, bytů bytové sekvence v addr do relativního ukazatele num v běžném záznamu běžné báze dat a aktualizuje záznam báze dat. Jestliže lenj je menší než íen^ potom je místem určení ve vyrovnávací paměti záznamu báze dat prostor vyplněný do len^.
DBINITIALIZE ( ~ )
Inicializuje běžnou bázi dat na všechny nuly a nastaví běžná” a dostupná” čísla záznamů báze dat (viz DBRECNUM a DBAVAIL) na 0.
DBRECNUM ( - u)
Vrací číslo běžného záznamu.
DBCAPACITY ( - u )
Vrací celkový počet záznamů, které může obsahovat běžná báze dat.
F9 6C
DBAVAIL ( ~ num )
PCT/EP97/O3355
WO 97/50063 Ε>ΐί ί Τ,ΟΙΙΑ
Vrací počet záznamů dalšího dostupného záznamu v běžném souboru.
F9 6D DBADDREC ( ~ )
Pfidej záznam na konec běžné báze dat s číslem záznamu daným DBAVAIL.
E9 6F DBSELECT ( num — )
Vyber záznam num v běžně vybrané bázi dat.
F9 70 DBMATCHBYKEY (addr len — flag )
Hledej běžnou bázi dat pro srovnání v poli klíčů proti řetězci specifikovanému pomocí addr a len. Len může být kratší než definovaná délka pole klíčů pro tuto strukturu se zbývajícími znaky, které se srovnávají s prázdnými znaky (20. ASCII). Jestliže srovnání je úspěšné, stane se srovnávací záznam běžným a flag je FALŠE.
Tento symbol oprávnění může být použit jen s uspořádanou bází dat.
F9 71 DBADDBYKEY (addr len— flag )
Hledej běžnou bázi dat pro srovnání v poli klíčů proti řetězci specifikovanému pomocí addr a len. Len může být kratší než definovaná délka pole klíčů pro tuto strukturu se zbývajícími znaky, které se srovnávají s prázdnými znaky (20. ASCII). Jestliže je srovnání úspěšné, stane se srovnávací záznam běžným a flag je TRUE. Jestliže je srovnání neúspěšné, je nový záznam vložen do správné polohy v bázi dat a fíag je FALŠE. Tento nový záznam bude inicializován s výjimkou pro jeho pole klíčů, které bude obsahovat daný klíč.
Tento symbol oprávnění může být použit jen s uspořádanou bází dat.
F9 72 DBDELBYKEY ( addr len — flag )
Hledej běžnou bázi dat pro srovnání v poli klíčů
PCT/EP97/O3355 ·« ·* • * · * « · ··· * · » · ·
WO 97/50063
GlX f LOIJy\ proti řetězci specifikovanému pomocí addr ά len. len může být kratší než definovaná délka pole klíčů pro tuto strukturu se zbývajícími znaky, které se srovnávají , prázdnými znaky (20. AM'l[). Jestliže srovnání je úspěšné, je srovnávací záznam odstraněn a flag je FALŠE. Činnost odstranění uzavírá jakoukoli možnou díru ve fyzické realizaci provedením vhodné činnosti na fyzické přesunutí nebo přeřádkování záznamů v předem inicializované bázi dat.
Tento symbol oprávnění může být použit jen s uspořádanou bází dat.
F9 73
F9 74
DBSAVECONTEXT ( - )
Způsobí, že souvislostí,
Číslo záznamů a jakékoli podřízené informace. Server je oprávněn použít paměť návratu virtuálního stroje, aby trvale uložil informace souvislostí a software klienta musí proto zachovávat obecná pravidla, která se aplikují při použití zásobníku návratu.
server hromadí běžné informace obsahující běžnou bázi dat, běžné
DBRESTORECONTEXT ( - )
Způsobuje, že server obnoví nejnovější uložené informace souvislostí (viz DBSAVECONTEXT). Server je oprávněn použít paměť návratu virtuálního stroje, aby trvale uložil informace souvislostí a software klienta musí proto zachovávat obecná pravidla, která se aplikují pro použití zásobníku návratu.
1.8 Řízení TLV
Symboly oprávnění popsané v této sekci poskytují řízení TLV a funkci přístupu.
1-8.1 Podpora zpracování řetězce
F9 78 PLUGSTRING ( c-addr^ lenj c-addr^ len^ — c-addr^ len^ )
WO 97/50063
E>řt í LOHA
PCT/EP97/O3355 «· ···» · · * * • · · · · · · • a · · · · · «4 · · · ·· · ··· » · · * · · »9 ·· · · ··
F9 79
F9 7A
F9 7B
F9 7C
Ulož řetězec v c-adá^ při len^ bytů na konci řetězce v c-addrj při 7en, bytů. Vraf začátek řetězce místa určení (c-addrj) a součet dvou délek (Jen,). Na konci řetězce místa určení musí být prostor, aby obsahoval oba řetězce.
CPLUSSTRING ( char c-addr len — c-addr len+1 )
Ulož znak char na konci řetězce v c-addr při len bytů. Vrať začátek řetězce místa určení ( c-addr) a délku výsledného řetězce (len plus 1). Na konci řetězce místa určení musí být prostor, aby obsahoval dodatečný znak.
ΜΓNUSTRAILING ( c-addr lení — c-addr )
Jestliže len, je větší než nula, len, se rovná len^ méně počet mezer (20. ASCII) na konc i' ře t ězce znaku specifikovaného pomocí c-addr len,. Jestliže Ion, je nula nebo celý řetězec se skládá' z mezer, je nula.
MINUSZEROS ( c-addr lenj — c-addr 1 cn, )
Jestliže Je/iy je větší než nula. len, se rovná méně počet nul (0. ASCII) na konci ‘řetězce znaku specifikovaného pomocí c-addr len,. Jestliže len, je nula nebo celý řetězec se skládá z nul, je lon^ nula.
STORECOUNT ( char c-addr — )
Ulož číslo char do bytu v c-addr. Generuj kód vhození STRING_TOO LARGE, jestliže char je větší než 255.
1.8.2 Přístup do vyrovnávací paměti TLV
F9 80 TLV (num — c-addr len fmt)
Vraf parametry přístupu pro TLV, jehož příznak je num. Toto může generovat kód vhození UNDEFINED_TLV.
• ft ftftftft ·· • ft ft*
WO 97/50063 í LOHA
PCT/EP97/O3355 ftft · ftftftft • · · · ft V · • ft ftft ···♦·· • « · · « ft ftftftft ftft ftft
F9 81
F9 82
F9 83
TLVFETCH ( c-addrj len^ fmt — num / c-addr^ len? )
Vrať obsahy vnitřní vyrovnávací paměti TLV podle jejího pole TYPE, což je dolních osm bitů fmt. Typové kódy 0 a 2 vrací čísla do zásobníku, zatímco jiné kódy vrací ukazatele řetězce. Adresa vrácená poli typového kódu 3 je dočasná a musí být přesunuta okamžitě do trvalejšího umístění. vrácená pro řetězce je stejná jako ta poslední uložená ve vyrovnávací paměti.
TLVSTORE (num c-addin len^ fmt} c-add r} lenj c-addr^ len, fmt—) Nastav obsahy vnitřní vyrovnávací paměti TLV podle jejího pole TYPE, což je dolních osm bitů fmt. Kódy typu 0 a 2 berou čísla v zásobníku, zatímco jiné kódy berou ukazatele řetězce. Tato činnost nastaví bit odděleného statusu pro tuto TLV.
TLVBITFETCH ( c-addr — flag )
Vrať výsledky maskování obsahů vnitřní vyrovnávací paměti TLV uvedené sekvencí v c-addr proti poli hodnot v tom umístění. Toto může generovat kód vhození UNDEFINED_TLV. flag vrátí TRUE, jestliže všechny bity definované v masce jsou ve vnitřní vyrovnávací paměti. Jinak se vrátí FALŠE. Kontrolují se jen byty zaujímající kratší ze dvou umí s těm' .
F9 84 TLVBITSTORE ( flag c-addr — )
Nastav obsahy vnitřní vyrovnávací paměti TLV uvedené sekvencí v c-addr založené na poli hodnot v tom umístění. Jestliže flag je FALŠE (0) potom všechny bity tam definované budou vypnuty. Jinak budou všechny zapnuty.
1.8.3 Zpracování TLV
F9 85 PARSETLV ( c-addr len — )
Zpracuj lí· b, tu v c-addr pro sekvence TLV, Toto » ·
WO 97/50063
PCT/EP97/O3355
F9 86
F9 86
F9 8 7
F9 8 7
F9 89
F9 89
mŮŽe generovat kód vhození UNDEFINED_TLV. Každé pole příznaků, na LH -é se narazí, umístí byty délky pole z jeho pole hodnot do vnitřní vyrovnávací paměti a nastaví bit odděleného statusu. Když se narazí na konstruované pole příznaků, jsou všechny vnitřní vyrovnávací paměti TLV, které jsou definovány jako k fiěiiiu připojené, vymazány před tím, než je pole hodnot odděleno pro sekvence TLV. Nebude generována žádná výjimka, jestliže se narazí na TLV v konstruované šabloně, do které nebyl definován, protože je k ní připojen.
PLUSDOL ( c-addi'i ler>i c-addr^ — c-addr^ lerij )
Zpracuj lenl bytů v c-addr y pro po 1 é'pří znaků a pole délek. Toto může generovat kód vhození UNDEFINED.TLV. Každé pole příznaků, na které se narazí, umístí byty pole délek z jeho vnitřní vyrovnávací paměti do pole hodnot na konci výstupního řetězce v c-addr^ při lenj bytů. Vrať / , šátek řetězce místa určení { c-addr^) a součet dvou délek ( lenj) . Na konci výstupního řetězce musí být místo, aby obsahoval oba řetězce.
PLUSTLV ( c-addr lenj num — c-addr lcn^ )
Přidej sekvenci TLV, jejíž příznak je num, na kcnec výstupního řetězce v c-addr při 7en,bytů. Toto může generovat kód vhozeni UNDEFINED_TLV. Pole příznaků, délek a hodnot jsou formátovány podle pravidel TLV, založených na datech v jeho vnitřní vyrovnávací paměti. Vrať začátek řetězce místa určení (c-addr) a součet dvou délek (len?). Na konci výstupního řetězce musí být místo, abv obsahoval oba řetězce.
TLVSTATUS ( fmt — num char )
Dekóduj status parametru fmt přístupu TLV. Vrácený num je indikátor 0- formátu a bity ve vráceném char mají následující význam, kde bit 0 je nejméně výzπamný bit:
• *
Β ♦ ·
WO 97/50063
F>ří ί LOU Α
PCT/EP97/O3355 ♦ ·
Β · Β · • Β Β Β
Β·· ···
Β Β
Β Β ΒΒ
0 0 = neoddělený, 1 = oddělený
1-7 Rezervováno pro budoucí použití
1.8.4 Přístup k sekvencím TLV
F9 SA
F9 8B
F9 8C
F9 8D
STOREBCD ( u c-addr Jen — )
Ulož číslo u jako binárně kódovanou decimální sekvenci do řetězce v c-addr při Jen bytů. Číslo je formátováno pro každou číslici představující čtyřbitový půlbyte ve výstupním řetězci. Vedoucí půlbyty budou naplněny nulami, jestliže je to třeba. Nejdůležitější část čísla bude zkrácena, jestliže Jen není dostatečně dloubá, aby obsahovala všechny číslice.
FETCHBCD ( c-addr Jen — u )
Vyvolej číslo u z binárně kódované decimální sekvence v c-addr při Jen bytů. Číslo je formátováno pro každou číslici představující čtyřbitový půlbyte ve vstupním řetězci. Výjimka DIGIT_TOO_LARGE je vhozena, jestliže jakýkoli půlbyte není platná BCD číslice.
STORPHN ( u c-addr Jen — )
Ulož Číslo u jako binární číslo do řetězce v caddr při len bytů. Ne j dů 1 e ž i t ě j ší byte čísla je uložen první. Vedoucí byty budou naplněny nulami, jestliže je to třeba. Nejdů1ežitější část čísla bude zkrácena, jestliže len není dostatečně dlouhá, aby obsahovala všechny byty.
FETCHBN ( c-addr Jen — u }
Vyvolej číslo u jako binární číslo z řetězce v caddr při Jen bytů. Nej důležitější byte čísla je vyvolán první, Jestliže tam není více než čtyři byty dat v tom umístění, budou nejdů1ežitější byty ztraceny.
100
0000 0· *· • 0 0 0 0 0 0 0 0 0 0 0 0 0 «0 0 00 000 000
0 0 0 0 0
00 00 00
WO 97/50063 PCT/EP97/O3355 í LOHA_
F9 8E STORECN ( c-addr, lenj c-addr? len? — )
Ulož číslo v c-addr} při len/ bytů jako komprimované číslo do řetězce v c-addr? při Jen? bytů. Číslo je formátováno pro každý znak představující čtyřbitový půlbyte ve výstupním řetězci. Koncové půlbyty budou naplněny F, jestliže je to třeba. Číslo bude zkráceno, jestliže len?není dostatečně dlouhá, aby obsahovala všechny znaky {len? < [len,+lJ/2). Bude generován kód vhození DIGIT/1'OO^LARGE, jestliže znak ve vstupním řetězci není číslo.
F9 8F FETCHCN { c-addr^ len^ — c-addr? len? )
Vyvolej řetězec do dočasného umístění c-addr? při len? bytů, který představuje komprí m uié číslo v řetězci v c-addr, při lenj bytů. Číslo je formátováno pro každý znak ve výstupním řetězci představujícím čtyřbitový půlbyte ve vstupním řetězci. Výstupní řetězec bude ukončen, jestliže se narazí na půlbyte se všemi bity nastavenými na konec řetězce. Bude generován kód vhození
DIGIT_TOO_LARGE, jestliže půlbyte ve vstupním řetězci není číslo. Výstupní řetězec musí být okamžitě přesunut do trvalejšího umístění.
F9 90 TLVFETCHNAME ( c-addri — c-addr? num )
Odděl sekvenci TLV v c-addrj pro pole příznaků. Vrať adresu c-addr která je mimo pole příznaků a num pole příznaků.*
F9 91 TLVFETCHLENGTH ( c-addr, — c-addr? len )
Odděl sekvenci TLV v c-addr^ pro pole délek. Vrat adresu c-addr?, která je mimo pole délek a len obsaženou v tom poli.
1.9 Manipulace s moduly
Následující symboly oprávnění poskytují uložení a provedení modulů EPICode ve virtuálním stroji.
101 • fc ·· · • · · · • · fcfcfc fcfc · «fcfcfc e · ··· ···« • fc «fc fc efc ····* ··· «fc·· fc fc fcfc fcfcfc ·· fc· ·· fcfc
WO 97/50063
PŘ í LOHA
PCT/EP97/O3355
F9 A0 EXECUTEMODULE ( c-addr Jen — flag )
Zaved modul z adresáře modulů použitím AID specifikovaného pomocí c-addr Jen. Jestliže se objeví chyba je vhozena výjimka CANNOT_LOAD_MODULE. fíag je TRUE, jestliže modul není nalezen, FALŠE je zaveden úspěšně.
F9 Al INITMODULEBUFFER ( ~ )
Pfiprav pro získání nového modulu.
F9 A2 MODULEBUFFERAPPEND ( c-addr Jen — )
Připoj obsahy vyrovnávací paměti definované pomocí c-addr a Jen k vyrovnávací paměti získání modulu. Výjimka CANNOT_ADD_T() MODULE je vhozena, jestliže vyrovnávací paměť modulů nebyla připravena nebo jestliže kapacita vyrovnávací paměti modulů je překročena.
F9 A3 REGISTERMODULE ( c-addr Jen — )
Zaznamenej vyrovnávací paměí modulů do adresáře modulů pod daným AID EPICode specifikovaným pomocí c-addr Jen. Zdroje spojené s řízením vyrovnávací paměti modulů jsou automaticky uvolněny.
F9 A4 RELEASEMODULEBUFFER f - J
Uvolni zdroje použité ve vnitřní vyrovnávací paměti modulů. Toto se vyžaduje, jestliže předčasné zavedení modulu musí být ukončeno aplikací bez zaznamenání modulu do adresáře modulů.
F9 A5 DELETEMODULE ( c-addr Jen — fJag )
Odstraň modul jehož AID je specifikován pomocí caddr Jen z adresáře modulů, flag je nula, jestliže se operace pod.iřila.
F9 A6 MODULEINFO
102
4 4 •4 **«·
WO 97/50063
FÍÍ í LOHA
PCT/EP97/O3355
44
4 4 4 4 4 4
4< 4 4 4 4 4
44 444444
4 * 4 4 * »4 »4 44 ( c-addr^ len^ — c-addr^ len^ flag )
Vrať veřejné informace v modulu, který je zaznamenán v adresáři modulů pod AID specifikovaným pomocí c-addrj len^ flag je nula, jestliže se operace podařila a data c-addrj jsou platná. Struktura vyrovnávací paměti, vrác n.í tímto symbolem oprávnění , je definována informací záhlaví modulu. Touto funkcí se vrací jenom vstupní zápisy EPF_VER prostřednictvím EPF_ENTRY.
F9 A7 LOADCAUDMODULE ( a-atddr — )
Zaved modul v a-addr. a-addr je adresa záhlaví modulu EPICode doručeného do vnitřní paměti z karty. Výjimka BAD CARD_MODULE j·· hozena, jestliže modul porušuje jakoukoli předběžnou podmínku pro zavedení modulu karty.
F9 AS MODULESCHANGED ( - u )
Vrať hodnotu u, udávající zda se modu i y změn i 1y. Bity 0 až 7 definují, které třídy modulů byly zaznamenány v adresáři modulů od posledního provedení tohoto symbolu oprávnění. Např. modul zaznamenaný s počátečním bytem AID, který je F4, nastaví bit 4 ve statusu návratu. Bity 8 až 31 jsou rezervovány i>ro budoucí rozšíření.
1.10 Manipulace rozšiřitelné paměti
Následující symboly oprávnění poskytuji přístup k rozšířitelné vyrovnávací paměti s pružným páskem lineární paměti v datovém prostoru poskytnutém a řízeném virtuálním strojem.
F9 BO EXTEND ( len — a-addr )
Rozšiř vyrovnávací paměť pružného pásku pomocí len buněk vrácením adresy a-addr vyrovnané buňkou první buňky v přidělené vyrovnávací paměti. ZERO EXTEND vran ukazatel do další nepřidělené buňky. Výjimka OUT_OF_MEMORY je vhozena, jestliže není k dispozici dostatečná paměť.
103 ···· • 4 ··«· • ·
·>
WO 97/50063 řt í LOHA
PCT/EP97/O3355
9 9 9 9 9 9
9 9 9 9 9 9
9 9 9 9 999 999
9 9 9 9 9 « »♦ ft· ·· ··
F9 B1 BEXTEND (Jen — c-addr )
Rozšiř vyrovnávací paměť pružného pásku pomocí len bytů vrácením adresy a-addr prvního bytu v přidělené vyrovnávací paměti. ZERO BEXTEND vrací ukazatel do dalšího nepřiděleného bytu. Výjimka OUT_OF MEMORY je vhozena, jestliže není k dispozici dostatečná paměť.
F9 B2 RELEASE ( addr — )
Uvolni paměť získanou prostřednictvím EXTEND nebo BEXTEND nastavením volného ukazatele do addr. Jestliže addr je neplatná (před spuštěním vyrovnávací paměti pružného pásku nebo za běžným volným ukazatelem”) vhodí se výjimka ANS -9 (neplatná adresa paměti).
Další symboly oprávnění:
F9 B0 DSCHECK í u — fIag )
Zkontroluj, že existuje alespoň u buněk dat zůstávajících v zásobníku dat. Vrať FALŠE, jestliže je to tento případ, jinak vrať TRUE.
F9 B1 RSCI1ECK ( u - flag )
Zkontroluj, že existuje alespoň u buněk dat zůstávajících v zásobníku návratu. Vrať FALŠE, jestliže je to tento případ, jinak vrať TRUE.
1.11 Bezpečnostní příkazy
Zpracování bezpečnostních algoritmů může na některých terminálech trvat několik vteřin. Tento vynález obsahuje, aby přítomný jediný příkaz SECALGO byl rozložen do iniciační a ukoněovací složky k usnadnění použití realizací souběžného zpracování. Toto je zkoumáno a následující návrhy jsou udělány jako alternativa k SECALGO.
F9 56 SECALGOBEGIN
104
7>O2?»7-W • *
WO 97/50063
JPft f LOHA
PCT/EP97/O3355 ( c-addrj len c-addr, num — flag )
Toto vypočítá použití algoritmu typu num. c-addrj je vstupní vyrovnávací paměť dat pro výpočet a len je její délka, c-addrj je výstupní vyrovnávací taěť pro uložení výsledku. Tato funkce vrátí flag udávající FALŠE, jestliže výpočet mohl být úspěšně iniciali zován.
F9 57 SECALGOEND ( - ior )
Tato funkce vrací ior pro ukázání: 0 = výpočet dokončen úspěšně; -1 = výpočet ještě pokračuje; 1 = výpoče t selhal.
Výjimečné kódy
Tato sekce obsahuje všechny kódy použité jako argumenty ke standardní funkci manipulace výjimek THROW.
Následující Hibulka uvádí kódy ANS Forth použité v jádrech EPIC.
Číslo rezervováno pro Číslo rezervováno pro
-3 přeplnění zásobníku -23 výjimka vyrovnání adresy
-4 nenaplnění zásobníku -24 neplatný numerický argument
-5 přeplnění zásobníku návratu -25 nerovnováha zásobníku návratu
-6 nenaplnění zásobníku návratu -26 parametry smyčky nedostupné
-7 proveď smyčky vnořené příliš hluboko během provedení -27 neplatné opakování
-9 neplatná adresa paměti -2S uživatelské přerušení
-10 dělení nulou -36 neplatná poloha souboru
-11 výsledek mimo rozsah -37 1/0 výjimka souboru
105
PCT/EP97/O3355
W0 97/50063
PŘ ί LOUA φ φ »··· φ o · · • * « φ φ φ • · · φ φ • · φ φφφ φφφ
ΦΦΦ Β * • Φ Φ· · · · ·
-12 nesprávné přizpůsobení typu argumentu -38 neexistující soubor
-17 přeplnění vzorového numerického výstupního řetězce -39 neočekávaný konec souboru
-20 napiš ke čtení jen umístění -53 výjimečné přeplnění zásobní ku
-21 nepodpořená operace -57 výjimečné vyslání nebo příjem znaku
106
0 0 0 τ>\) Ρ
0 0 * 00 00
0 • 0 · 0

Claims (6)

1. TransfUční řídicí systém pro provádění transakcí nic i prvním zařízením a druhým zařízením, řečené první a druhé zařízení je přizpůsobeno pio vzájemnou komunikaci a alespoň jedno z řečeného prvního a druhého zařízení je karta s integrovanými obvody, řečení systém vyznačuj í c í se tím. Že obsahuje:
alespoň jedno vstupní/výstupní zařízení:
přenosný virtuální stroj pro interpretaci počítačového pi ,;i-if,ii.i v řečeném prvním znřízení. řečený virtuální stroj obsahující vi . ' uálni mikroprot mm' a budič pro řečené alespoň jedno vstupní/výstupní zařízení: a prováděcí prostředky . > <ujíci na řečený i η i orpřetováný program pro proveden' v· ěcného programu.
2. Terminál obsahující první zařízení pro provedení transakce s druhým zařízením, alespoň jedno z řečeného prmího a druhého zařízení je karta s integrovanými obvody, vyznačující se tím. že obsahuje:
přenosný virtuální stroj interpretující počítačový program v řečeném prvním zařízení. řečený přenosný virtuální stroj obsahující virti 1 mikroprocesor a budič pro řečené alespoň jedno vstupni/výslupuí zařízení: a prováděcí prostředky reagující na řečený interpretovaný program pro provedení řečeného programu.
3. Do sebe uzavřená přenosná inteligentní karta obsahující první zařízení pro provedení r insakce s druhým zařízením, řečená inteligentní karta vyznačující sc tím, že obsahuje:
přenosný virtuální stroj obsahující virtuální mikroprocesor
107 • 0 * · ·« a budič pro alespoň jedno vslupní/výstupni zaří/cní.
4. Systém podle nároku 1 nebo Lerminál podle nároku 2 nebo inteligentní karta podle nároku 3 vyznačující s e tím. že v nich strojové instrukce řečeného virtuálního stroje jsou sadou symbolů oprávnění, řečené symboly oprávnění jsou zakázkové bytové kódy.
5. Inteligent ií bn-ta podle nároku 3 nt ‘ o 4 vyznačující se tím. že dále obsahuje počítačový program uložený ra řečené inteligentní l·a·!o. řečený virtuální stroj interpretující řečený počítačový program a prováděcí prostředky reagující na řečený interpretovaný program pro
provedení řečeného progr amu . 6, Systém nebo t e r iii i o á 1 P o d 1 e nároku 4 nebo inteligentní karta t d 1 nároku 5 v y z i ‘1 .i í c í s e tím, /.i: v nich řečený povítařo ý P r o g r am j e n a ρ s á i; .i a k o proud symboiú oprávnění vybraných z řečené sady symboIů oprávnění a odpovídá j í cích vložených dat . 7 . Sys t ém nebo t erm i ná 1 nebo i n t e 1 i ge u tni karta podle nároku 6 v v z n a č u j í c í s e t í í i , b; v nich řečený proud
symbolů oprávnění je přenesen v modulu, modul obsahuje proud symbolů oprávnění spolu s odpovídajícími vloženými daty požadovanými pjo provedení modulu.
8. Systém nebo terminál nebo inteligentní karta podle nároku 7 vyznačující se tím, že v nich řečený modul také obsahuje údaj požadavků na pamět pro provedeni řečeného modu 1u.
108 ···* tttt • · • *
9. Systém nebo terminál nebo inteligentní karta podle nároku
8 vyznačující se tím. že v nich virtuální stroj obsahuje také prostředky pro zavedení řečeného modulu a pro interpretaci symbolů oprávnění v něm obsažené.
ÍO. Systém nebo terminál nebo inteligentní karta podle nároku
9 vyznačující > o tím. že v nich řečené prostředky pro zavedeni a interpretaci symbolů oprávnění čtou řečené symboly oprávnění v řečeném modulu a vhodí se výjimka, jestliže je čten symbol oprávnění, který nenáleží do řečené sady.
11. Systém nebo terminál nebo inteligentní karta podle jakéhokoli z nároků 7 až 10 vyznačující se tím. že \ j í fl) řečený virtuální si * j obsahuje prostor pro čtení/zápis logických adres, který má schránku alespoň pro řečený modul, řečený modul obsahuj? údaj o velikosti prostoru pro fctení/zápis logických adres potřebného pro jeho P i > e d e π í : a řečení virtuální stroj také obsahuje prostře ύ ky pro přidělení velikosti prostoru pro Čtení/zápis logických adres k uložení řečeného modulu v souladu s řečeným údajem. řcv iý přidělený prostor pro čtení/zápis logických adres má definované a chráněné bianice.
12. Systém nebo terminál nebo inteligentní karta podle nároku 11 vyznačující s e tím. že dále obsahuje prostředky pro uvolnč?' řečené přidělené velikosti prostoru pro čtení/zápis logických adres při ukončení řečeného modulu.
13. Systém nebo terminál nebo inteligentní karta podle jakéhokoli z nároků 9 až I2 vyznačující se
109 + « * · · · * • « · » * · · • · ·« * · · * * · • ·* ·* ** tím, že v nich řečené druhé zařízení obsahuje prostředky pro poskytnutí alespoň jedné programové instrukce schopné alespoň modifikovat chování časového provedení řečeného počítačového programu: a potom co řečené prostředky pro zavedení a interpretaci zavedly řečený modul a zatímco řečený modul je provozován, řečené prostředky pro zavedení a interpretaci zavedl,u a interpretují řečenou alespoň jednu programovou instrukci závislou na předem definované bezpečnostní podmínce: a řečené prováděcí prostředky reagují na řečenou zavedenou programovou instrukci jak je interpretována řečeným virtuálním sl rojem a provedou řečený počítačový program s řečeným modifikovaným chováním.
14. Systém nebo terminál nebo inteligentní karta podle nároku J-3 v y z na č u j í c i s c tím. že v nich řečen;! bezpečnostní podmínka je poskytnuta funkcí.
15. Systém nebo terminál nebo inteligentní karta podle jakéhokoli z nároků 9 až 14 v y z n a č u j í c í s e tím. Že dále obsahuji prostor pro čtení/zápis logických adres \vei. ně alespoň jedné báze dat. obs;·' h j í c i alespoň jeden záznam, řečený modul obsahuje údaj o velikosti prostoru pro čtení/zápis ne i n i c i a 1 i zovaných logických .-ni ros potřebného pro provedení řečeného modulu: řečený zaváděcí program přiděluje požadovanou velikost prostoru neίnici a 1 izovaných logických adres v souladu s řečeným údajem: a prostředky pro přístup k záznamu v řečené bázi dat, řečený záznam v řev né bázi dat je přístupný jen prostřednictvím řečeného modulu a řečené prostředky pro přístup poskytují okno do běžného záznamu v řečené bázi dat a kopírují řečený záznam do Části řečeného prostoru pro čtení/zápis neinicializováných logických adres adresovatelných řečeným
110 • · · · • fc • · fcfc · · · · « • · · · · · · fcfc · fcfc fcfcfc fcfcfc fc · · · fc · • fc fcfc fcfc fcfc aplikačním prog iniem.
16. Transakční řídicí systém vyznačující se tím, že obsahuje:
první zařízení a druhé zařízení, řečené první a druhé zařízení je přizpůsobeno pro vzájt mou komunikaci, alespoň jeden z řečeného prvního a druhého zařízení je kartou s integrovanými obvody;
řečené druhé zařízení obsahuje prostředky pro poskytnutí alespoň jedné programové instrukce liopné alespoň modifikovat chování doby provedení počítačového programu v řečeném prvním zařízení;
řečené první zařízení obsahuje virtuální stroj, řečený virtuální . i loj obsahující pro.uředky pro zavedení a interpretaci řečeného počítačového programu, řečené prostředky pro zat d a interpretaci jsou dál·; přizpůsobeny pro zaveden a interpretaci řečené alespoň jedné programové i ' .;kce závislé na přede definované bezpečnostní podmínce potom co řečené prostředky pro zavedení a interpretaci cdly řečený počítač ' ι-iogram a zatímco řečený počítačový program je provozován; a prováděcí pros! čodky pro prov kní řečeného zavedeného a interpretovaného počítačového programu s řečeným modifikovaným chováním při odezvě ra řečenou zavedenou a interpretovanou programovou instrukci.
i7. Terminál vyznačující se tím, že obsahuje první zařízení pro pmclení transakce Έ -dým zařízením a alespoň jedno z řečeného prvního a druhého zařízení je karta s intrgrovanými obvody. řečené druhé zařízení obsahuje prostředky pro poskytnutí alespoň jedné programové instrukce sele pné alespoň modifikovat chování doby provedení
1 1 1 • · · · •
fe · fefe • « ·*·a počítačového programu v řečeném prvním zařízení:
řečený terminál obsahuje:
řečené první zařízení obsahující virtuální stroj. řečený virtuální stroj obsahující prostředky pro zavedení a interpretaci řečeného počítačového programu. řečené prostředky pro zavedení a interpretaci jsou dále přizpůsobeny pro uvilení a interpretaci řečené alespoň jedné programové instrukce závislé na předem definované bezpečnostní todmince potom, co řečené prostředky pro zavedení a interpretaci zavedly řečený počítačový program a zatímco řečený počítačový program je provozován: a
;.·· ovádČcí prostředk. ;ίό provedení řečeného . iveth-ného a interpretovaného počítačového programu s řečeným modifikovaným chováním při odezvě na řečenou zavedenou a interpretovanou programovou instrukci.
18. Do sebe uzavřená přenosná inteligentní karta v y z n a č u j í c j e tím, že obsahuje první zařízení pro provedení transakce s druhým zařízením, řečené druhé zařízení obsahující prostředky pro poskytnutí alespoň jedné programové instrukce schopné alespoň modifikovat chováni doby provedení počítačového programu v řečeném prvním zařízení. řečená inteligentní karta obsahuje:
řečené první zařízení obsahující virtuální stroj, řečený virtuální sl roj obsahující prostředky pro zavedení a interpretaci řečeného počítačového programu, řečené prostředky pro zavedení a interpretaci jsou dáie přizpůsobeny pro zavedení a interpretaci řečené alespoň jedné programové instrukce závislé na předem definované bezpečnostní podmínce potom, co řečené prostředky pro zavedení a interpretaci zavedly řečený počítačový program a zatímco řečený počítačový program je provozován; a
112 prováděcí prostředky pro provedení řečeného zavedeného a interpretovaného počítačového programu s řečeným modifikováním chováním při odezvě na řečenou zavedenou a interpretovanou programovou instrukci.
Φ· · • ·
19. Systém podle nároku 16 nebo terminál podle nároku 17 nebo inteligentní karta podle nároku 1S v y z n a č u j í c í s e tím. ře v nich řečená bezpečnostní po ' ií nka je poskytnuta funkcí.
20. Systém nebo terminái nebo inteligentní karta podle nároku 19 vyznačující se tím. že v nich řečená alespoň jedna programová instrukce je první programovou instrukcí a řečené první zařízení obsahuje druhou programovou instrukci schopnou ale-poň modifikovat chování doby provedení řečeného počítačového programu. řečená první programová instrukce obsahuje odvolání na řečenou druhou programovou instrukci: a řečené prostředky pro zavedení řečený odkaz k řečené prováděcí program s řečeným interpretaci reaguji na .dění řečené druhé programové instrukce, prostředky ; i uvedou řečený počítačový moci i f i 1 o va ným chováním. jak je určeno řečenou druhou programovou instrukcí.
21. Systém nebo terminál nebo inteligentní karta podle náioku že v nich řečený druhá programová s e tím. první a
20 vyznačující počítačový program a řečená instrukce je napsána ve formě proudu symbolů op >.n2n í a odpovídajících vložených dat, každý symbol oprávnění je zakázkový bytový kód vybraný ze sady zakázkových bytových kódů.
113 ·♦*· ·* ···· · · ·· • * · · · · • · · · · · • 0 · « · 0 ·· · • · · · · ·« ·0 ·· ·*
2 2 . Systém nebo terminál nebo intc1 i gentní karta podle nán ' u
21 vyznačující se tím. že v nich virtuální st‘< j směřuje řečený proud symbolů oprávnění a řečená vložená data řečené první a druhé programové instrukce do řečeného proudu symbolů oprávnění řečeného počítačového programu.
23. Systém nebo terminál nebo inteligentní karta podle nároku 2 1 nebo 2 2 vyznačující se tím, Že v nich alespoň každý proud symbolů oprávnění řečeného počítačového pro,! 'friu t alespoň každá řečená druhá programová instrukce je přenesena v modulu, každý modul obsahuje příslušný proud syn/·. ! i oprávnění spolu s odpovídajícími vloženými daty. požadovanými pro provedení řečeného moduiu.
24. Systém nebo terminál nebo inteligentní karta podle nároku 23 vyznač u j i c í se tím. že v nich řečení modul obsahuje také údaj o paměti požadované pro provedeni řečeného moduiu.
25. Systém nebo terminál nebo inteligentní karta podle nároku 2 3 ne bo 24 vyznačující se t i m. Že v π i ', modul řečeného počítačového programu obsahuje také výluční seznam alespoň jedné modifi kovate 1 né zásuvky, řečená alespoň jedna zásuvka definuje polohu v proudu symbolů oprávnění a vložených dat řečeného modulu počítačového programu, do ktere řečený virtuální stroj směřuje řečenou první programovou i n i i , i i .
26. Systém nebo terminál nebo inteligentní karta podle nároku 25 v yznačující se tím. že v nich řečená alespoň jedna modifi kováte1ná zásuvka v řečeném modulu počítačového programu obsahuje vektor provedení do
114 ·« *··· • · • · · · · » · · · • · · · · · * · · • · · · · · · ·»···· « · · · * * · « ·· ·♦· ·· ·· «» *· standardního chování.
27. Systém nebo terminál nebo inteligentní karta podle nároku 26 vyznačující se tím. že v nich řečené prováděcí prostředky provádějí řečený počítačový program s řečeným standardním chováním. jestliže řečená předem definovaná bezpečnostní podmínka nedovolí zavedení řečené alespoň jedné programové instrukce.
28. Systém nebo terminál nebo inteligentní karta podle jakéhokoli z nároků 23 až 27 vyznačující se tím, že v nich řečený virtuální stroj obsahuje prostor pro čtení/zápis logických adres, řečený modul obsahuje údaj o velikosti prostoru pro čtení/zápis logických adres potřebného pro jeho provedení: a řečený v iι lαάI η í stroj také obsahuje prostředky pro přidělení velikosti prostoru pro čtení/zápis logických adres k uložení řečeného modulu počítačového programu v souladu s řečeným údajem, řečený přidělený prostor pro Čtení/zápis logických adres má definované a chráněné hranice: a prostředky pro uvolnění řečené velikosti prostoru pro čtení/zápis logických adres při ukončení řečeného modulu počítačového programu.
29. Systém nebo terminál nebo inteligentní karta podle jakéhokoli z nároků 23 až 2S vyznačující se tím, že dále obsahují prostor pro čtení/zápis logických adres obsahující alespoň jednu bázi dat obsahující množství záznamů, řečený modul obsahuje údaj o velikosti prostoru pro či ; 11 í/zápis ne inici a 1 izovaných logických adres potřebného pro provedení řečeného modulu:
čei.é prostředky pro zavedení přidělí požadovanou velikost
115
4444
4« ···· • 4 • 44 4
4 4 prostoru ne inici a 1 izovaných logických adres v souladu s řečeným údajem; a prostředky pro přístup k zá/namu v řečené bázi dat, záznamy v řečené bázi dat jsou přístupné jen prostřednictvím řečeného modulu. řečené prostředky pro přístup poskytují okno do ^žncho záznamu v řečené bází <btt a pro kopírování řečeného zá/namu do části řečeného prostoru pro čtení/zápis neinicializovauých logických adres adresovatelného řečeným aplikačním programem.
30. Systém nebo 1eir ’ná1 nebo inteligentní karta podle jakéhokoli z nároků 16 až 27 v y z n a č u j í c í s e tím. že v nich řečená bezpečnostní podmínka obsahuje prostředky pro ověření alespoň původu a úplnosti dat a programových instrukcí v řečeném druhém září oni.
31. Transakční systém pro provádění transakcí mezi prvním zařízením a druhým zařízením vyznačující se tím. že řečený systém obsahuje:
virtuální stroj pro interpretaci v něm použité sady symbolů oprávnění zakázkových bytových kódů:
řečený virtuální stroj obsahující viituální procesorovou jednotku a prostor pro čtení/zápis logických adres: alespoň jeden první aplikační program obsahující údaj o velikosti prostoru pro čtení/zápis logických adres potřebného pro jeho provedení, řečený alespoň jeden první aplikační program je napsán jako proud symbolů oprávnění vybraných z řečené s. · .mboIů oprávnění a od; . í ' l j í cí ch v 1 ožených da 1 : řečený virtuální stroj také obsahuje:
zaváděcí program pro zavedení ab.-poň jednoho prvního aplikačního programu; a prostředky pro přidělení první velikosti prostoru pro
116 • Φ φφφφ » · · · φφ ·· ·· φφ
I Φ Φ * » Φ Φ 4 ·*Φ ··« ·* č t cílí / z á i' i s logických adres specificky pro Tečený alespoň jeden první aplikační program v souladu s Tečeným údajem, řečený přidělený prostor pro čtení/zápis logických adres má definované a chráněné Hranice.
32. Terminál vyznačující se tím. že obsahuje první zařízení pro provedení transakcí s druhým zařízením, první zařízení obsahuje:
virtuální stroj pro interpretaci v něm použité sady symbolů i'Í'rávnění zakázkových b} '<,>/ch kódů:
řečený virtuální stroj obsahující virtuální procesorovou jednotku a prostor pro Čtení/zápis logických adius: alespoň jeden první aplikační program obsahující údaj o velikosti prostoru pro čtení/zápis logických adres potřebného pro jeho provedení, řečený alespoň jeden první aplikační program je napsán jako proud symbolů oprávnění vybraných z řečené sudy symbolů oprávnění a odpovídajících ·. ložených dat: řečený virtuální stroj také obsahuje:
zaváděcí program pro zavedení řečeného alespoň jednoho prvního aplikačního programu; a prostředky pro přidělení první velikosti prostoru pro čtení/zápis logických adres specificky pro řečený alespoň jeden první aplikační program v souladu s řečeným údajem, řečený přidělený prostor pro čtení/zápis logických adres má definované a chráněné hranice.
33. Do sebe uzavřená přenosná inteligentní karta vyznačující se tím. Že obsahuje první zařízení pro provedení transakce s druhým zařízením, řečené první zařízení obsahuj e:
virtuální stroj pro interpretaci v něm použité sady symbolů oprávnění zakázkových bytových kódů:
117 • · Β Β · · ·· Β · Β
Β •
• · ΒΒ ·· ΒΒ Β Β · · β ·
Β Β Β β · • Β Β β Β· ·· ·
ΒΒΒ Β Β ·» ΒΒ ΒΒ řečený virtuální stroj obsahující virtuální procesorovou jednotku a prostor pro čtení/zápis logických adres; alespoň jeden první aplikační program obsahující údaj o velikosti prostoru pro čtení/zápis logických adres potřebného pro jeho provedení, řečený alespoň jeden první aplikační program je napsán jako proud symbolů oprávnění vybraných z řečené sady symbolů oprávnění a odpovídajících vložených dat: řečený virtuální stroj také obsahuje:
zaváděcí program pro zavedení řečeného alespoň jednoho prvního aplikačního programu: a prostředky pro přidělení první velikosti prostoru pro čtení/zápis logických adres specificky pro řečený alespoň jeden první aplikační program v souladu s řečeným údajem, řečený přidělený prostor pro čti. ·ί/ ópis logických adres má definované a chráněné hranice.
34. Systém podle nároku 31 nebo terminál podle nároku 32 nebo inteligentní karta podle nároku 33 vyznačují c í s e ' ΐ η, ge dále obsahují pro i.řckky pro výslovné uvolnění řečené první velikosti prostoru pro Čtení/zápis logických adres při ukončení řečeného alespoň jednoho programu.
35. Systém nebo terminál nebo inteligentní karta podle jakéhokoli z nároku 31 až 34 vyznačující se
i. í i, že v nich alespoň jedno z prvního nebo druhého zařízení je ICC.
36. Systém nebo terminál nebo inteligentní karta podle jakéhokoli z nároků 31 ač 3? vyznačující se tím, že v nich řečený první aplikační program také obsahuje první výlučný seznam alespoň jedné funkce, která může být převedena do jiných aplikačních programů, dále obsahuje
118 • a ···« • a
• aaa · ·····« • a a a · · a • a a*· · • a a · * · a • · a a · · · a· ·*· · ·· • a a a « « · a a · • a a · a · ♦ a aa aa prostředky je dostupná pro způsobení toho, jiným programům. že řečená alespoň jedna funkce 37. System nebo terminál nebo inteligentní karta pod 1 e j. 1 'boko! i z nároků 31 až 36 vy z načuj ící s e
tím, že v nich řečený první program je první modul a řečené jiné aplikační programy jsou jiné moduly. každý modul obsahuje alespoň proud symbolů oprávnění vybraných z řečené sady symbolů oprávnění, odpovídajících vložených dat, první výlučný sezenu alespoň jedné funkce, která má být převedena a údaj o velikosti prostoru pro čtení/zápis logických adres potřebného pro provedení modulu.
38. Systém nebo terminál podle nároku 37 vyznačující se tím, že v nich řečený první modul obsahuje druhý výlučný seznam identifikující alespoň jeden druhý modul, ze kterého má být alespoň jedna funkce přejata a řečený zaváděcí program zavádějící řečený alespoň druhý modul v souladu s řečeným druhým seznamem na zavedeni řečeného prvního modulu.
39. Systém nebo terminál nebo inteligentní karta podle nároku 38 vyznačující se tím. že v nich řečený první modu i je ukončen, jestliže řečený aiespoň jeden druhý modul k přejmutí není úspěšně zaveden.
40. Systém nebo terminál nebo inteligentní karta podle jakéhokoli z nároků 37 až 39 vyznačující se tím, že v nich řečené prostředky pro přidělení přidělí řečenou první velikost prostoru pro čtení/zápis logických adres na zavedení řečeného prvního modulu a přidělí jen druhou nebo další velikost prostoru pro čtení/zápis logických
1 19 • 4 · · *
4 · 4 • 4
4 4
4 4 4 • 4 >44 • 4 *·44 44 ··
4 4 4 4 4 4
4 4 > 4 4 ·
4 44 ♦·· 44» • 4 4 · *
44 44 4« ·· adres pro řečený první modul v jediné rozšiřitelné vyrovnávací paměti počínaje u první adresy; a při uvolnění řečené druhé velikosti prostoru pro čtení/zápis logických adres řečeným prvním modulem, řečené uvolňovací prostředky uvolní řečenou druhou velikost prostoru pro čtení/zápis logických adres a všechna další přidělení za řečenou první adresou.
41. Systém nebo terminál nebo inteligentní karta podle nároku 40 vyznačující se tím, že v nich řečené uvolňovací prostředky uvolní řečenou druhou velikost prostoru pro čtení/zápis logických adres a pro všechna další přiděleni za řečenou p ,ι ί n1resou při ukončení řečeného prvního modu lu ,
42. Systém nebo terminál nebo inteligentní karta podle jakéhokoli z nároků 37 a? 41 vyznačující se tím, že v nich řečený prostor pro Čtení/zápis logických adres obsahuje alespoň jednu bázi dat. obsahující alespoň jeden záznam, řečený modul obsahuje údaj o velikosti prostoru pro čtení/zápis neinicia1 izovaných logických adres potřebného pro provedení řečeného modulu a záznamy v řečené bázi dat jsou přístupné jen prostřednictvím řečeného modulu;
řečený zaváděcí program přidělující požadovanou velikost prostoru ne i π ici a i izovaných logických adres v souladu s řečeným údajem; a prostředky pro přístup k záznamu v řečené bázi dat, řečené prostředky pro přístup poskytují okno do běžného záznamu v řečené bázi dat a kopírují řečený záznam do části řečeného prostoru pro čtení/zápis neinicializovaných logických adres adresovatelného řečeným aplikačním programem.
120
43. Systém nebo terminál nebo inteligentní karta podle jakéhokoli z nároků 34 až 42 vyznačující se tím, že v nich řečené uvolňovací prostředky vymažou jakoukoli velikost přiděleného prostoru pro čtení/zápis logických adres při ukončení řečeného prvního modulu.
fcfcfcfc fc fcfc *··· fcfc ·· fcfcfc · · fc fcfcfcfc fc · fcfcfc fcfcfcfc fc fc fcfc fcfc «fcfcfcfcfc • fcfc fcfcfcfc · fc fcfc fcfcfc fcfc fcfc fcfc fcfc
44. Transakční systém pro provádění transakcí mezi prvním zařízením a druhým zařízením vyznačující se tím. že alespoň jedno z řečeného prvního a druhého zařízeni je karta s integrovanými obvody, řečený systém obsahuje: virtuální stroj pro interpretaci v nčír použité sady symbolů oprávnění zakázkových bytových kódů:
řečený virtuální stroj obsahující virtuální procesorovou jednotku a prostor pro čtení/zápis logických adres; alespoň jednu bázi dat obsahující alespoň jeden záznam a alespoň jeden počítačový program pro provedení řečcnjm virtuálním strojem. řečený počítačový progra je modul napsaný ve formě proudu řečených symbolů oprávnění vybraných z řečené sady a obsahující údaj o ve 1 i kos t i prošt or u pr o čtení/zápis neinici a 1 izovanýeh logických adres potřebného pro provedení řečeného modulu:
zaváděcí program pro zavedení řečeného modulu pro přiděleni požadované velikosti prostoru pro ne inici a 1 izované logické adresy v souladu s řečeným údajem:
prostředky pro i řίΆup k záznamu v íí řečené bázi dat. záznamy v řečené bázi dat jsou přístupné jenom prostřednictvím řečeného modulu a řečené prostředky pro přístup poskytují řečené bázi dat a kopírují řečený pro Čtení/zápis okno do běžného záznamu v záznam do části řečeného prostoru ne i n i ci a 1 izovanýeh logických adres adresovatelného řečeným aplikačním prošramem.
121 φφ ·*· • ΦΦ φφ φφ φφ φ φ · φ φφφφ φ φ φφφ *·· φ · · φφ φφ φφ
45. Terminál obsahující první zařízení pro provedeni transakci s druhým zařízením v y z n a č u j i c í s e tím, že alespoň jedno z řečeného prvního a druhého zařízení je karta s integrovanými obvody. řečené první zařízení obsahuje: virtuální stroj pro interpretaci v něm použité sady symbolů oprávnění zakázkových bytových kódů:
řečený virtuální stroj obsahující virtuální procesorovou jednotku a prostor pro Čtení/zápis logických adres: alespoň jednu bázi dat obsahující alespoň jeden záznam a alespoň jeden počítačový program pro provedení řečeným virtuálním strojem. řečený počítačový program je modul napsaný ve formě proudu symbolů oprávnění vybraných z řečené sady a obsahující údaj o velikosti prostoru pro čtení/zápis neinicializovaných logických adres potřebného pro provedeni řečeného modu Iu :
zaváděcí program pro z. ui řečeného modulu a pro přidělení požadované velikosti prostoru pro ne inici a 1 izované logické adresy v souladu s řečeným údajem; a prostředky pro přístup k záznamu v v řečené bázi řečeného modulu řečené bázi dat. záznamy dat jsou přístupné jenom prostřednictvím a řečené prostředky pro přístup poskytuji okno do běžného záznamu v řečené bázi dat a kopírují řečený záznam do části řečeného prostoru pro čtení/zápis neinicializovaných logických adres ailresovatelného řečeným aplikačním programem.
46. Do sebe uzavřená přenosná inteligentní karta obsahující první zařízení pro provedení transakce s druhým zařízením vyznačující se tím. že řečené první zařízení obsahuje: virtuální stroj pro interpretaci v něm použité sady symbolů oprávnění zakázkových bytových kódů;
řečený virtuální stroj obsahující virtuální procesorovou
122 • 4 • *· * .jednotku a prostor pro čtení/zápis logických adres:
alespoň jednu bázi dat obsahující alespoň jeden záznam a alespoň jeden počítačový program pro provedení řečeným virtuálním strojem, řečený počítačový program je modul napsaný ve fojmě proudu symbolů oprávnění vybraných z řečené sady a obsahující údaj o velikosti prostoru pro čtení/zápis ne inici a 1 izovaných logických adres potřebného pro provedení řečeného modulu;
zaváděcí program pro zavedení řečeného modulu a pro přidělení požadované velikosti prostoru pro ne inici a 1 izované logické adresy v souladu s řečeným údajem: a prostředky pro přistup k záznamu v ř· čené bázi dat, záznamy v řečené bázi dat jsou přístupné jenom prostřednictvím řečeného modulu, řečené prostředky pro přístup poskytují okno dc- běžného záznamu v řečené bázi dat a kopírují řečený záznam do části řečeného prostoru pro čtení/zápis ne inici a 1 izovaných logických adres adresovatelného řečeným aplikačním programem.
47. Systém podle nároku 44 nebo terminál podle nároku 45 nebo inteligentní karta podle nároku 46 v y z n a Č u j í c í s e tím. že v nich řečená báze dat je konkretizována při prvním zavedení řečeného moduiu.
48. Systém nebo terminál nebo inteligentní karta podle jakéhokoli z předchozích nároků 1 až 47 vyznačujíc í s e tím. že v nich řečený virtuální stroj je zásobníkový stroj.
49. Systém nebo terminál nebo inteligentní karta podle nároku 4S vyznačující se tím, že v nich řečený virtuální stroj je alespoň dvouzásobníkový stroj, ve
123 kterém první zásobník je zásobník dat a druhý zásobník je /1 'i bn í k návratu.
50. Systém nebo terminál nebo inteligentní karta podle jakéhokoli z předchozích nároku 1 až 49 vyznačující se tím, že v nich řečený virtuální stroj obsahuje paměť rámců místních proměnných, registr ukazatele rámců pro uložení ukazatele rámců ukazujícího v paměti na začátek rámce a registr ukazatele konce rámce ukazujícího na konec rámce v parně t i .
5J, Systém nebo terminál nebo inteligentní karta podle nároků 49 nebo 50 vy z n a č u ,i í c i s e tím. že v nich řečené zásobníky dat a ná · i 1 1 u nejsou v paměti přímo adresovatelné řečeným počítačovým programem. ale jsou přístupné přes operace zásobníků definované symboly oprávnění a interpretované řečeným virtuálním strojem.
52. Systém nebo terminál podle jakéhokoli z předchozích nároků v y z n a č u j í c i s e tím. že v nich řečené první zařízení je příruční zařízení.
53. Systém nebo terminál podle nái oku 52 vvznačuj í c í s e tím. že v nich příruční zařízení obsahuje kartu s integrovanými obvody (ICC).
54. Systém nebo terminál podle jakéhokoli z předchozích n á r o k ů 1 a ž 5 3 vyznačující se t í m . ž e v n i c h řečené druhé zařízení obsahuje ICC.
55. Systém podle jakéhok! i z předchozích nároků 1 až 54 vyznačující se tím. Že v něm řečené první
124 zařízení je terminál.
eó. Systém nebo terminál nebo inteligentní karta podle jakéhokoli z předchozích nároků 1 až 55 vyznačují c í s e tím, že v nich jak řečené , .ní. tak druhé zařízení obsahuje ICC.
57. Systém nebo terminál nebo inteligentní karta podle jakéhokoli z předchozích nároků 1 až 56 vyznaču jí c í s e tím. že v nich transakce obsahuje alespoň jedno provedení následující sekvence:
a. vytvoření komunikačního spojení mezi řečeným prvním a druhým zařízením:
b. výběr aplikace obsahující řečený počítačový program a sadu připojených dat. které definují transakci:
c. provedení řečené aplikace; a
d. ukončení transakce.
5S, Systém nebo terminál nebo inteligentní karta podle jakéhokoli z předchozích nároků 1 až 57 vyznačují c í se tím. že v nich transakce je finanční tniisakce a řečený systém je finanční transakční řídicí systém.
59. Karta s integrovanými obvody v y z n a č u j í c í s c tím. že obsahuje programovou instrukci schopnou modifikovat chování programu probíhajícího v systému podle jakéhokoli z nároků 1 až 58. v terminálu podle jakéhokoli z nároků 2 ač '3 nebo v inteligentní lartS podle jakéhokoli z nároků 3 až 58.
60. Způsob provádění transakcí mezi prvním zařízením a druhým zařízením vy zn a ču j í c í s e tím. že alespoň
1 25 ···* • · * « jedno z řečeného prvního a druhého zařízení je karta s integrovanými obvody, obsahující poskytnutí alespoň jedné programové instrukce v řečeném druhém zařízení schopné alespoň modifikovat chování doby provedení počítačového programu v řečeném ρ, ηí m zařízení:
zavedení a interpretaci řečeného počítačového programu; zavedení a interpretaci řečené alespoň jedné programové instrukce závislé na předem definované bezpečnostní podmínce, zatímco řečený počítačový program probíhá; a provedení řečeného zavedeného interpretovaného počítačového programu s řečeným modifikovaným chováním při odezvě na řečenou zavedenou a interpretovanou programovou instrukci.
úl. Způsob provedení transakce mezi prvním zařízením a druhým zařízením v y z n a č u j icí se tím. že obsahuje: interpretaci alespoň jednoho aplikačního programu napsaného jako proud symbolů oprávnění bytových kódů. vybraných ze sad> symbolů oprávnění a odpovídajících vložených dat;
zavedení řečeného alespoň jednoho aplikačního programu; přiděleni první velikosti prostoru pro čtení/zápis logických adres specificky pro řečený alespoň jeden aplikační program v souladu s údajem obsaženým uvnitř řečeného aplikačního programu velikosti prostoru pro čtení/zápis logických adres potřebného k jeho provedeni; a definování a ochranu hranic řečeného přiděleného ; toru pro čtení/zápis logických adres.
6?. Způsob podle nároku 61 vyznačující se tím, že dále obsahuje:
výlučné uvolnění řečené první velikosti prostoru pro čtení/zápis logických adres při ukončení řečeného alespoň jednoho prvního aplikačního programu.
126 • · * »·* • « k ♦ « I ·· ««
63. Způsob provedení transakčního systému mezi prvním zařízením a druhým zařízením vyznačující se tím. že alespoň jedno z řečeného prvního a druhého zařízení je karta s i n L t·.·. rovaným i obvody obsahující :
interpretaci symbolů oprávněni v modulu napsaném ve formě proudu řečených symbolů oprávnění vybraných ze sady symbolů o p r á v n ě η í :
přidělení velikosti prostoru pro ne iníci a 1 izované logické adresy v souladu s údajem v řečeném modulu pro velikost prostoru pro Čtení/zápis ne i π ici a 1 izovaných logických adres potřebného k provedeni řečeného modulu:
přístup k záznamu v bázi dat poskj t tu i · m okna do běžného řečené bázi dat.
za známům h á z i dat lze přistoupit jen prostřednictvím řečeného modulu: a kopírováni řečeného záznamu do části řečeného prostoru pro čtení/zápis ne in icial izovanýeh ioakkýeh adres adresovatelného řečeným modulem.
64. Způsob provedení transakce mezi prvním zařízením a druhým s e tím. že a 1 espoň 7. a ř í z e π í je karta s zařízením. v y z n a Č u j í c í jedno z řečeného prvního a druhého integrovanými obvody obsahující: poskytnutí přenosného virtuálního virtuální mikroprocesor a b ti d i č vsLupní/výstupni zařízení:
interpretaci počítačového programu v řečeném prvním zařízení použitím řečeného přenosného virtuálního stroje; a provedeni řečeného programu při odezvě na řečený interpretovaný program.
CZ984235A 1996-06-27 1997-06-26 Přenosný bezpečný transakční systém pro programovatelná inteligentní zařízení CZ423598A3 (cs)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GBGB9613450.7A GB9613450D0 (en) 1996-06-27 1996-06-27 Payment system

Publications (1)

Publication Number Publication Date
CZ423598A3 true CZ423598A3 (cs) 1999-10-13

Family

ID=10795955

Family Applications (1)

Application Number Title Priority Date Filing Date
CZ984235A CZ423598A3 (cs) 1996-06-27 1997-06-26 Přenosný bezpečný transakční systém pro programovatelná inteligentní zařízení

Country Status (22)

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

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0932865B1 (en) 1996-10-25 2002-08-14 SCHLUMBERGER Systèmes Using a high level programming language with a microcontroller
US6934945B1 (en) * 1997-03-14 2005-08-23 Cardsoft, Inc. 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
US20030165130A1 (en) * 2002-01-11 2003-09-04 Sierra Wireless, Inc., A Canada Corporation Host extensible wireless application interface
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
JP7430795B2 (ja) 2019-12-16 2024-02-13 華為技術有限公司 緊急呼方法及び装置、及び、システム

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

Similar Documents

Publication Publication Date Title
US7444631B2 (en) Token-based linking
US7171655B2 (en) Verifier to check intermediate language
KR100329063B1 (ko) 마이크로컨트롤러를 이용한 고급 프로그래밍 언어 사용
US5999732A (en) Techniques for reducing the cost of dynamic class initialization checks in compiled code
US6883163B1 (en) Populating resource-constrained devices with content verified using API definitions
EP2364481B1 (en) Method for securing java bytecode.
US20040153827A1 (en) Remote incremental program verification using API definitions
CZ423598A3 (cs) Přenosný bezpečný transakční systém pro programovatelná inteligentní zařízení
KR101544731B1 (ko) 실행형 컨텐츠의 분리 실행이 가능한 저장 장치 및 그의 네이티브 실행 환경 구현 장치
CN116661910B (zh) 一种应用调用的方法及装置
US7168625B2 (en) Making secure downloaded application in particular in a smart card
US6339820B1 (en) Method and device for carrying out a function assigned to an instruction code
CN101593258B (zh) 一种在软件保护装置中实现.Net虚拟机的系统和方法
CN113760193B (zh) 用于资源受限制装置的数据读写方法、装置及指令集
CA2422634A1 (en) Populating binary compatible resource-constrained devices with content verified using api definitions
MXPA99000076A (en) Portable system of safe transaction for intelligent devices and programab
Bouffard et al. Java Card Virtual Machine Memory Organization: a Design Proposal
Markantonakis Java card technology and security

Legal Events

Date Code Title Description
PD00 Pending as of 2000-06-30 in czech republic