Brief Source Explanation

Explanation, using a piece of source code:
Below is an example of how a Processor communicates with the Eeprom.
The source code used, can be downloaded from the download section (the folder "Seca-divers").
It is the Secanix source code.

Do not despair just yet, if you don't understand assembler. I don't either, certainly not this version :-)
It is only the general idea you need to grasp from this explanation, not the details.
Because this is a Seca file set, the INS (instructions) are Seca specific.
Information about the Seca INS can be found in the chapter Coding Systems on the Seca pages.
I have commented this source code in red italics.
The bold printed texts are the real assembler commands.
All the rest is comment in the source file.

Code in the processor file:
;*************************************************
; function : 0E C1 CLASS instruction             *
; request smartcard serial number                *
; command : C1 0E 00 00 08                       *
; answer : 0E 00 03 00 00 00 CA 13 66 90 00      *
; i.e. region is 03, UA is 00 00 00 CA 13 66     *
; It corresponds to serial number 013.243.238    *
;*************************************************
; Instr. 0E: send the byte sequence stored from offset 0x00 in the external EEPROM
; The number of bytes to be sent was stored in file register 0x0F (it should be 8)
Instr_0E           MOVLW      0x00                      ; Offset in the external EEPROM

- Look in the eeprom file, hex-position 00.

COMM_EEPR     CALL          EEPROM_send     ; Transmit data from external EEPROM
- Read the content of x consecutive bytes from the eeprom, starting at the mentioned position.
  (This is the content of the procedure "EEPROM_send")

              GOTO          TX9000          ; Transmit status bytes
- If all was OK, proceed to procedure "TX9000".
  (Procedure TX9000 gives the standard Seca answer for "All was OK", so"90 00").


Code in the eeprom file:
ORG 0x000
Hex location 00

; 0000-0007
; Answer to 0e (smartcard serial number)
DATA 0x00,0x03,0x00,0x00,0x00,0xCA,0x13,0x66

The serial number in hexadecimal (8 bytes)

; 0008-000E
; Answer to 16 (number of providers):
; 00 00 nn nn 00 00 FF
; nn nn: 1 bit per provider
DATA 0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF ; <=== UPDATE

The number of providers, supported on the card (7 bytes)

ORG 0x010
Hex location 10

; 0010-0189
; Answers to 12 (ident):
; ii ii bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
; 00 xx xx xx zz zz
; ii ii: provider channel
; bb..bb: provider name
; xx..xx: smartcard address
; zz zz: termination date (7 bits year since 1990 + 4 bits month + 5 bits day)
DATA 0x00,0x00,'S','E','C','A',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '
DATA 0x00,0x00,0x00,0x00,0xFF,0xFF ; Id: 00 00, PPUA: 00 00 00, Date: FF FF

Next are the key data for all providers on the card
As you can see in this example, the data starts with provider 00 00, the SECA provider


The organization:
As you can see in the above example, the organization of the Eeprom is very simple.
All data is written as 1 long line of data with fixed length fields, so fixed offsets in the Eeprom.
In database terms, this would be called a fixed length structure with fixed field- and record length.