Ga naar inhoud


vervolg studie seca2


Azazel

Aanbevolen berichten

Hallo satvrienden,

 

na heel wat denkwerk en testen, etc., blijken de tot nog toe onbekende ins. toch echt een struikelblok te zijn bij de studie van seca2.

De volgende stap die ik probeer is om de waardes in bin van de data die we tot nu toe kennen v/d blackcard en de ins. die verstuurd worden te analiseren.

De methode die ik wil gaan toepassen is het berekenen van de binaire waarde van alle bytes v/d ins., om te weten te komen of ik enkele concrete nano's kan indentificeren.

Op het moment ben ik 3c aan het analiseren waarbij ik probeer bit voor bit te vergelijken om te kijken of er enige byte (referentie) bestaat die me kan helpen om te weten waar mogelijk de vaste posities van enige nano's bevinden.

 

Saludos!

 

'Azazel miembro del equipo RAIDEN, la resistencia.'

[color:"red"] LLORAMOS JUNTOS, GANAREMOS JUNTOS! [/color]
Link naar reactie
Delen op andere sites


  • Reacties 93
  • Aangemaakt
  • Laatste reactie

Beste reacties in dit topic

Beste reacties in dit topic

mischien dat ik een klein beetje van gedachten kan laten veranderen <img src="/ubbthreads/images/icons/smile.gif" alt="" />

en welicht op een ander spoor kan brengen. wat nu als je het juiste replay van de card en cam weet . op een ins ?? of anders gezegt het cw weet te onderscheppen . Ja onmogelijk zeg je mischien <img src="/ubbthreads/images/icons/smile.gif" alt="" /> . maar met een dvbsatkaart en poormanscam plugin gebeuren er dus vreemde dingen <img src="/ubbthreads/images/icons/smile.gif" alt="" /> . met s1 kan je dus gewoon 1 kaart sharen over het net, en wat word er verstuurd naar de andere kant? juist alleen het cw en hoppa beeld .dit zou natuurlijk ook met s2 kaart kunnen .

wat ik probeer te zeggen is niks anders zoals het er nu voor staat lijkt het op dit 1+?=? en hier valt dus weinig mee doen . Maar als het nu eens is

1+?=3. NU hebben ze hier toevallig op het board 1 mod die erg HAPPY is met zijn dvb kaartje en er vast meer afweet wat er mee kan als ikke <img src="/ubbthreads/images/icons/smile.gif" alt="" /> mischien dat hij dit al heeft uitgeprobeerd. en ook kan zeggen werkt of werkt niet .

Link naar reactie
Delen op andere sites

Hallo satvrienden,

 

Ik zal eerst een voorbeeld geven van wat ik bedoel, dan maakt het

mischien een beetje duidelijker wat ik nu precies bedoel:

 

Mischien zie ik het fout, maar zoals ik al vaker heb gezegd, men moet

elke mogeklijke weg bewandelen eerdat deze genegeerd / overgeslagen wordt.

Als iemand twijfels, ideeen, toevoegingen heeft, dan zie ik dat

graag tegenmoet (a.u.b. twijfel niet, maar reageer).

 

Het is wel een beetje ingewikkeld om uit te leggen, maar toch zie

hier een poging.

 

Elk log m.b.v. de season kunnen we een lijst van bv INS 3c verkrijgen

en deze paralel byte voor byte vergelijken.

Met andere woorden:

C1 3C 0D BD 5C 10 01 AE 19 9F 5E 52....

C1 3C 0D BD 5C 10 01 06 18 90 4F 24...

 

AE tegenover 06

19 tegenover 18

9F tegenover 90

5E tegenover 4F

etc.etc...

 

Altijd er van uit gaan dat wat we hier vergelijken de positie is van

de bytes.

Deze paren van bytes verander ik individueel in binaire waardes:

10101110 AE

011 06

 

011001 19

011000 18

 

10011111 9F

10010000 90

 

01011110 5E

01001111 4F

En zo verder met de rest van de INS....

Het resultaat van de binaire waarde moeten we in 'even' veranderen,

hier mee bedoel ik te zeggen dat bv 19 = 11001 we er een nul aan de

linkerkant van deze binaire waarde teovoegen om zo drie paren

van bytes te verkrijgen - 01 10 01.

Deze nul zal ik alleen toepassen op deze bytes die dankzij

deze nul dezelfde lengte krijgt als de vergelijkbare byte.

Vergelijkende bytes met dezelfde lengte van aantal paren ga ik vanuit

dat deze 'data' zijn, en bytes (ook met toevoeging met de nul),

niet dezelfde lengte zijn zal ik 'mogelijke nano' noemen.

 

Verder onderzoekend met dit systeem, zou ik mischien de posities van

belangrijke nano's van de INS kunnen achterhalen, zo ook de data

corresponderend aan de encryptie.

Als ik bv. de nano weet die de sn checked van de kaart, degenen die dus

de 'capture' realiseerd, zou deze de waarde van de sn in encrypt en

decrypte (gecodeerde) vorm kunnen zijn, waarmee ik dan m.b.v. berekeningen

enige key's zou kunnen verkrijgen die gebruikt worden voor de codering van seca2.

 

Natuurlijk ga ik er dan vanuit dat men mede dankzij dit protocol, gebruikt bij het coderen van seca2........ maar goed als dit niet zo is, dan kunnen we weer

iets aan het lijstje toevoegen om uit te sluiten.

 

 

Hoop het een en ander hiermee een beetje duidelijk heb gemaakt van

mijn plannen met het vervolg van de studie.

 

 

Saludos!

 

'Azazel miembro del equipo RAIDEN, la resistencia.'

[color:"red"] LLORAMOS JUNTOS, GANAREMOS JUNTOS! [/color]
Link naar reactie
Delen op andere sites

@Azazel

 

De INS 3C is compleet nieuw opgebouwd? <img src="/ubbthreads/images/icons/confused.gif" alt="" />

Bij SECA1 werd 3C voor ECM communicatie gebruikt. Volgens mij moet de opbouw van de INS 3C vrijwel gelijk zijn aan de oude SECA1 3C. Dit omdat de oude seca1 kaarten nog wel moeten blijven werken? Of zou de software update voor de decoders deze 3C aangepakt hebben?

Ik denk dat het vereweg het eenvoudigste was om een uitbreiding op de nanos te doen. En denk dan ook dat je moet kijken of er niewe nanos bij gekomen zijn.

Dit zou je kunnen doen door een log te pakken van communicatie en deze te vergelijken met een log van SECA1. Misschien heb je dit al gedaan en zoek je naar een nieuwe nano maar sla dan eerst de bekende nanos uit dit scheelt tijd.

 

Zo maar ene paar gedachtes. <img src="/ubbthreads/images/icons/grin.gif" alt="" />

 

P.S. volgens mij heb jij je blackcard maar weinig in de deco zitten.

 

Link naar reactie
Delen op andere sites

@allround,

 

Dus ja, de structuur van de 3C zijn wel degelijk veranderd.

Er zijn nu nano's die een 'hash buffer' activeren, en deze zijn de nano's die we moeten zien te vinden.

Zoals jezelf al zegt, de ins zijn dezelfde als seca 1, maar met het verschil dat er nu nano's zijn die 'volledige funkties' activeren zodat deze de exacte lengtes berijken (bij de 3C is de lengte altijd 5C).

Als we deze nano's met corresponderende data weten te vinden, dan neem ik aan dat de "rest" de klassieke ins 3C zijn.

Het ideale beeld zou zijn, zoals jezelf ook zegt, om 2 logs van dezelfde ins van formaat seca 1 en seca 2 te hebben, en deze volgens mijn eerder beschreven idee, bit voor bit te vergelijken, en met de data die we reeds kennen van de 'oude' ins, zou het mogelijk moeten zijn om 'data (zonder aanvulling)' te vinden om deze te vergelijken met de 'oude' ins, en zo kunnen zien of en waar de ins veranderd zijn.

 

Zoals je kunt zien, ben ik met een mentale oorlog bezig (hier boven in mijn hoofd), en ik weet niet of ik er zelf uit zal komen, maar ik kan je verzekeren dat ik me absoluut geen minuut verveel. <img src="/ubbthreads/images/icons/crazy.gif" alt="" />

 

Saludos!

 

'Azazel miembro del equipo RAIDEN, la resistencia.'

[color:"red"] LLORAMOS JUNTOS, GANAREMOS JUNTOS! [/color]
Link naar reactie
Delen op andere sites

Clas: C1

SIN : 3C

P1 : 01

P2 : 0D

LEN : 29

Serienummer kaart wordt zichtbaar !!!

 

Clas: C1

SIN : 3A

P1 : 00

P2 : 00

LEN : 10

Niet te herleiden

 

Clas: C1

SIN : 3C

P1 : 02

P2 : SEA

LEN : 5C

Aardig resultaat (2 A4'tjes hexen)

 

Nu ik er vanuit ga dat SIN 3C de juiste codering is en me houdt aan 8 bytes heb ik het volgende geconstateerd.

 

Er lijkt een verschuiving te ontstaan ???.

 

Pak block 1 : 01 01 01 01 01 01 01 01

Encryptie : 32 94 00 37 04 C9 FB DE

Nu met XOR : 33 95 01 36 05 DE C8 DF

 

Data block1 : 11 22 33 44 55 66 77 88

Berekening : 33 95 01 36 05 FA C8 DF

Resultaat : 1F A8 78 OD 35 C2 85 6C

 

Eindresultaat 32 94 00 37 04 C9 FB DE 88 1F A8 78 OD 35 2C 85 6C

 

En dit komt overeen met de SECA2. Pak je nu de verschuiving met een ander

serienummer dan klopt de hele berekening niet meer.

 

Zou het iets te maken hebben met de checksum van het serienummer??

 

De ins lijken allemaal hetzelfde te zijn, en dat verklaard tevens dat je zomaar een V7 kaart in je "oude" Seca1 doos kan duwen.

 

Vreemd is wel dat bij het reorganiseren van de PPV records vanaf Provider 0064 op 00 1C er een sprong wordt gemaakt naar 00 78 waar een zelfde record staat als bij record 00 04 (PPV credit record Provider 0000).

Dit wordt nog eens 3x herhaald.

 

Ik ga me verdiepen in de nano's en 0x3C met SIN. Over de checksum krijg ik her en der goede mails binnen die wellicht bruikbaar zijn.

 

(Het slechte nieuws is dus SECA2 is op 15-8-02 22:53:14 nog steeds BlackCard)

Link naar reactie
Delen op andere sites

Azazel

 

je doet fantasch werk je verdiend naast de 5 sterren ook een grandiose pluim voor je werk en de hulp die je geeft fantasctich ik denk dat 5 sterren nog te weinig is Wanneer wordt iemand moderator.als dat een promotie is dan ben ik de eertste die op je stemt

 

Heel veel succes en bedankt

DUSKE

GELUKKIG ZIJN ER NOG SAT-VRIENDEN DIE JE WILLEN HELPEN ..

Als je het weet is het gemakkelijk.

Beter 2 keer vragen dan 1 keer fout doen.

Dreambox600 800Hd strong 8000

Link naar reactie
Delen op andere sites

@Azazel

Nano 36-38 zijn in gebruik op V7 en doen iets maar wat ????????

 

 

Hieronder voor de geintereseerde wat info over wat instructiesets

en hoe zo'n kaartje er nou in routines uitziet.

 

; RAM 4.1 RAM 6.x

; 00-01 00-01 r0-r7

; 08 08 total byte received counter

; 09 09 data buffer byte counter (bytes to output)

; 0A-0B 0A-0B record offset (must be added to 8070h)

; 0C-0D 0C-0D record number (max 127h)

; 0E-0F 0E-0F indicators for record seeking

; 10-1B 10-1B record buffer

; 1C-1D 1C-1D record address (eeprom)

; 28 22 current provider number

; 41 23 Nano counter

; 42-43 24-25 starting address of current provider area

; 48 10 Status Code H

; 49 11 Status Code L

; 4a 62 First serie address

; 59 2a Ram indicator

; 5a 2b Nano address

; 5b 2c Nano address

; 5c 2d Source address

; 5d 2e Source address

; 5e 2f Source address

; 5f 34 ?

; 81 7c command

; 82 7d ins (cam-to-card bit 1 clear, card-to-cam bit 1 set)

; 83 7e P1

; 84 7f P2

; 85 80 length

; 86-E4 81-DF data buffer

; E5-FF E0-FF stack pile

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; Mapping EEPROM

;

;-------------------------------------------------------------------------------

;

;-------------------------------------------------------------------------------

; RMS SFR

; bit add 0 1 2 3 4 5 6 7

; p2 A0 A1 A2 A3 A4 A5 A6 A7

; eectrl D8 D9 DA DB DC DD DE DF

; a E0

; b F0

;

; eedata D9

; WDTREL 86 |Watchdog Timer, Reload Register

;-------------------------------------------------------------------------------

org 00000h

;-------------------------------------------------------------------------------

; Main loop

;-------------------------------------------------------------------------------

L0000: ljmp Lxxxx ;0000 02 xx xx ;jump to boot operations

;-------------------------------------------------------------------------------

Not completly analysed (RMS 0x0000-0x01FF)

;-------------------------------------------------------------------------------

5*xx

subb a,@r1 ;0008 97 ;

mov 18h,#86h ;0009 75 18 86 ;

add a,r0 ;000C 28 ;

subb a,r0 ;000D 98 ;

mov 59,r0 ;000E 88 59 ;

cpl a ;0010 F4 ;

mov a,r7 ;0011 EF ;

mov F1,r7 ;0012 8F F1 ;

orl a,r3 ;0014 4B ;

8*xx

mov r0,#78 ;001D 78 78 ;

mov xx,r5 ;001F 8D xx ;

3*xx

mov r0,#xx ;0024 78 xx ;

6*xx

mov @r1,78 ;002C A7 78 ;

mov 87,r5 ;002E 8D 87 ;

mov a,@r1 ;0030 E7 ;

2*xx

??? ;0033 xx 71 ;

dec @r0 ;0035 18 ;

cjne r0,#87,xx ;0036 B8 87 xx ;

dec @r1 ;0039 17 ;

mov 87,@r1 ;003A 87 87 ;

xx

mov r0,#71 ;003D 78 71 ;

mov xx,r5 ;003F 8D xx ;

4*xx

;-------------------------------------------------------------------------------

L0044: ???? ;0044 xx xx xx

sjmp L006A ;0048 80 20 ;

sjmp L0060 ;004A 80 14 ;

sjmp L0064 ;004C 80 16 ;

sjmp L005C ;004E 80 0C ;

sjmp L0058 ;0050 80 06 ;

;-------------------------------------------------------------------------------

cpl 90 ;0052 B2 90 ;

???? ;0054 xx xx ;

???? ;0056 xx xx ;

L0058: ???? ;0058 xx xx ;

???? ;005A xx xx ;

L005C: ???? ;005C xx xx ;

???? ;005E xx xx ;

L0060: ???? ;0060 xx xx ;

???? ;0062 xx xx ;

L0064: ???? ;0064 xx xx ;

???? ;0066 xx xx ;

sjmp L0088 ;0068 80 1E ;

L006A: mov r3,#03 ;006A 7B 03 ;

sjmp L0088 ;006C 80 1A ;

;-------------------------------------------------------------------------------

L006E: jc L0082 ;006E 40 12 ;

mov a,r2 ;0070 EA ;

add dptr,a ;0071 F1 64 ;

acall 56 ;0073 F1 56 ;

mov a,dph ;0075 E5 83 ;

add a,#80 ;0077 24 80 ;

clr c ;0079 C3 ;

subb a,p6 ;007A 95 FA ;

6*xx

L0082: ???? ;0082 xx xx ;

sjmp L00FA ;0084 80 74 ;

;-------------------------------------------------------------------------------

mov r3,#00 ;0086 7B 00 ;

;-------------------------------------------------------------------------------

L0088: mov r7,p2.0 ;0088 AF A0 ;

mov a,r2 ;008A EA ;

jz L00FA ;008B 60 6D ;

mov eedata,dph ;008D 85 83 D9 ;

mov r4,a ;0090 FC ;

3*xx

orl c,/80 ;0094 A0 80 ;

mov r1,#02 ;0096 79 02 ;

movx a,@r1 ;0098 E3 ;

mov FD,a ;0099 F5 FD ;

mov p2,r3 ;009B 8B A0 ;

mov a,dph ;009D E5 83 ;

cjne a,#xx,L006E ;009F B4 xx CC ;

mov a,dpl ;00A2 E5 82 ;

subb a,#20 ;00A4 94 20 ;

jnc L00B7 ;00A6 50 0F ;

jnb a.4,L0082 ;00A8 30 E4 D7 ;

jb p2.1,L00F8 ;00AB 20 A1 4A ;

setb p2.4 ;00AE D2 A4 ;

mov a,F6 ;00B0 E5 F6 ;

jb a.7,L00B7 ;00B2 20 E7 02 ;

2*xx

L00B7: ?????? ;00B7 xx

jc L00DA ;00B8 40 20 ;

ajmp L00C1 ;00BA A1 05 ;

;-------------------------------------------------------------------------------

L00BC xrl a,#60 ;00BC 64 60 ;

mov D9h,83h ;00BE 85 83 D9 ;

;-------------------------------------------------------------------------------

L00C1: setb eectrl.6 ;00C1 D2 DF ;

mov r3,a ;00C3 FB ;

movx a,@dptr ;00C4 E0 ; read eeprom

mov a,r3 ;00C5 EB ;

xch a,eectrl ;00C6 C5 D8 ;

jnb a.2,L00F8 ;00C8 30 E2 2D ;

mov a,xx ;00CB E5 xx ;

3*xx

anl c,b.4 ;00D0 82 F4 ;

mov r3,a ;00D2 FB ;

inc r3 ;00D3 0B ;

cpl a ;00D4 F4 ;

add a,r2 ;00D5 2A ;

jc L00DA ;00D6 40 03 ;

mov a,r2 ;00D8 EA ;

mov r3,a ;00D9 FB ;

L00DA: clr a ;00DA E4 ;

mov r2,a ;00DB FA ;

jnb p2.2,L00E7 ;00DC 30 A2 08 ;

mov a,r6 ;00DF EE ;

L00E0: movx @dptr,a ;00E0 F0 ;write in EEPROM

inc r0 ;00E1 08 ;

inc dptr ;00E2 A3 ;

djnz r3,L00E0 ;00E3 DB FB ;

2*xx

L00E7: ¿???? ;00E7 xx

inc dptr ;00E8 A3 ;

rrc a ;00E9 13 ;

L00EA: inc 86 ;00EA 05 86 ;

movx a,@dptr ;00EC E0 ;read EEPROM

inc dptr ;00ED A3 ;

dec 86 ;00EE 15 86 ;

movx @dptr,a ;00F0 F0 ;write in EEPROM

inc dptr ;00F1 A3 ;

djnz r3,L00EA ;00F2 DB F6 ;r3 times

xx

inc r5 ;00F5 0D ;

sjmp L00C1 ;00F6 80 C9 ;

;-------------------------------------------------------------------------------

L00F8: mov a,#AB ;00F8 74 AB ;

L00FA: ljmp 01CC ;00FA 02 01 CC ;

;-------------------------------------------------------------------------------

L00FD: mov a,@r0 ;00FD E6 ;load data

movx @dptr,a ;00FE F0 ;write in EEPROM

inc r0 ;00FF 08 ;inc address

inc dptr ;0100 A3 ;inc pointer

djnz r3,L00FD ;0101 DB FA ;loop r3

setb eectrl.0 ;0103 D2 D8 ;set byte

mov a,FC ;0105 E5 FC ;load eeprom timing

clr c ;0107 C3 ;clear carry

rrc a ;0108 13 ;rotate right

clr c ;0109 C3 ;clear carry

rrc a ;010A 13 ;rotate right

L010B: djnz a,L010B ;010B D5 E0 FD ;wait

mov a,FD ;010E E5 FD ;

jb eectrl.5,L0114 ;0110 20 DD 01 ;jump if bit set

swap a ;0113 C4 ;swap

L0114: anl a,#0F ;0114 54 0F ;and

add a,#FC ;0116 24 FC ;add

jnc L00F8 ;0118 50 DE ;jump if not carry

inc a ;011A 04 ;i

mov r3,a ;011B FB ;save

setb eectrl.1 ;011C D2 D9 ;

L011E: mov a,FC ;011E E5 FC ;

clr c ;0120 C3 ;

rrc a ;0121 13 ;

addc a,#FB ;0122 34 FB ;

jnc L012A ;0124 50 04 ;

inc a ;0126 04 ;

L0127: dec a ;0127 14 ;wait

jnz L0127 ;0128 70 FD ;loop

L012A: inc eectrl ;012A 05 D8 ;

djnz r3,L011E ;012C DB F0 ;

mov a,FC ;012E E5 FC ;

jb eectrl.6,L0135 ;0130 20 DE 02 ;

clr c ;0133 C3 ;

rrc a ;0134 13 ;

L0135: mov r3,#31 ;0135 7B 31 ;

L0137: djnz r3,L0137 ;0137 DB FE ;

dec a ;0139 14 ;

jnz L0135 ;013A 70 F9 ;

mov a,#84 ;013C 74 84 ;

xch a,eectrl ;013E C5 D8 ;

anl a,#60 ;0140 54 60 ;

L0142: jbc eectrl.3,L0142 ;0142 10 DB FD ;

mov eedata,dph ;0145 85 83 D9 ;

orl eectrl,#84 ;0148 43 D8 84 ;

jz L01F8 ;014B 60 AB ;

L014D: cjne r2,#00,L01F6 ;014D BA 00 A6 ;

mov r2,a ;0150 FA ;

mov a,r4 ;0151 EC ;

jnb p2.3,L015D ;0152 30 A3 08 ;

inc 86 ;0155 05 86 ;

???? ;0157 F1 47 ;

dec 86 ;0159 15 86 ;

sjmp L0160 ;015B 80 03 ;

;-------------------------------------------------------------------------------

 

L015D: xch a,r0 ;015D C8 ;

subb a,r0 ;015E 98 ;

xch a,r0 ;015F C8 ;

L0160: ???? ;0160 F1 47 ;

xch a,r2 ;0162 CA ;

mov c,A0 ;0163 A2 A0 ;

orl c,/E5 ;0165 A0 E5 ;

jnc (PC+xx52h) ;0167 51 xx 52 ;

jb eectrl.3,(PC+xx) ;016A 20 DB xx ;

3*xx

movx a,@dptr ;0170 E0 ;

xrl eectrl,#C4 ;0171 63 D8 C4 ;

movx @dptr,a ;0174 F0 ;write eeprom

setb eectrl.0 ;0175 D2 D8 ;

mov a,#12 ;0177 74 12 ;

L0179: djnz a,L0179 ;0179 D5 E0 FD ; wait

setb eectrl.1 ;017C D2 D9 ;

xrl eectrl,#C3 ;017E 63 D8 C3 ;

L0181: jbc eectrl.3,L0181 ;0181 10 DB FD ;

mov a,r4 ;0184 EC ;

???? ;0185 F1 40 ;

mov r5,a ;0187 FD ;

mov a,#86 ;0188 74 86 ;

xrl eedata,#40 ;018A 63 D9 40 ;

mov eectrl,a ;018D F5 D8 ;

xrl eedata,#40 ;018F 63 D9 40 ;

mov eectrl,a ;0192 F5 D8 ;

jnb p2.2,L01A1 ;0194 30 A2 0A ;

mov a,r6 ;0197 EE ;

L0198: ¿???

4*xx

inc dptr ;019C A3 ;

djnz r2,L0198 ;019D DA F9 ;

sjmp L01BA ;019F 80 19 ;

;-------------------------------------------------------------------------------

L01A1: jnb p2.3,L01B2 ;01A1 30 A3 0E ;

L01A4 movx a,@dptr ;01A4 E0 ;read EEPROM

inc 86 ;01A5 05 86 ;

¿??? ;01A7 E1 C0 34 ;

inc dptr ;01AA A3 ;

dec 86 ;01AB 15 86 ;

inc dptr ;01AD A3 ;

djnz r2,L01A4 ;01AE DA F4 ;

sjmp L01BA ;01B0 80 08 ;

;-------------------------------------------------------------------------------

L01B2 movx a,@dptr ;01B2 E0 ;load data

xrl a,@r0 ;01B3 66 ;compare

jnz L01E0 ;01B4 70 2A ;jump if not equal

inc r0 ;01B6 08 ;inc counter

inc dptr ;01B7 A3 ;inc pointer

djnz r2,L01B2 ;01B8 DA F8 ;loop

;-------------------------------------------------------------------------------

L01BA: clr a ;01BA E4 ;

xrl eedata,#40 ;01BB 63 D9 40 ;

setb eectrl.0 ;01BE D2 D8 ;

clr eedata ;01C0 C2 D9 ;

xrl eedata,#xx ;01C2 63 D9 xx ;

setb eectrl.0 ;01C5 D2 D8 ;

clr eedata ;01C7 C2 D9 ;

jbc eectrl.2,L014D ;01C9 10 DA 81 ;

;-------------------------------------------------------------------------------

L01CC: xrl eedata,#40 ;01CC 63 D9 40 ;

anl eectrl,#00 ;01CF 53 D8 00 ;

xrl eedata,#40 ;01D2 63 D9 40 ;

3*xx

mov p2.0,r7 ;01D8 8F A0 ;

mov r7_a ;01DA FF ;

ljmp L0044 ;01DB 02 00 44 ;

;-------------------------------------------------------------------------------

dec 86 ;01DE 15 86 ;

L01E0: mov a,#AA ;01E0 74 AA ;

sjmp L01CC ;01E2 80 E8 ;

;-------------------------------------------------------------------------------

L01F6: ¿?

20*xx

;-------------------------------------------------------------------------------

db 20,20,20 ;01F8 20 20 20 ;

db 20,20,20 ;01FB 20 20 20 ;

db 20,66 ;01FE 20 66 ;

;-------------------------------------------------------------------------------

L0200: ljmp L3260 ;0200 02 32 60 ;jump to user ROM

;-------------------------------------------------------------------------------

; Ins 40 : process nanocommands

; for seca only

; nano 18 : delete service preview record

; nano 1B : ?

; nano 1D : set 802E eeprom location

; nano 1E : set 802C eeprom location

; nano 1F : set 802D eeprom location

; nano 20 : ?

; nano 23 : add new provider

; nano 24 : apply next nanos to given provider

; nano 25 : delete given provider

; nano 26 : modify provider space for records and flags

; nano 2E : set 802F,8030 eeprom location

; nano xx : ?

; nano 33 : create or modify service preview record

; nano 34 : ?

; nano 50 : ?

; nano 92 : ?

; nano f6 : ?

; nano f7 : ?

; for all providers

; nano 01 : set nano 24 flag to FF

; nano 02 : set nano 24 flag to 00

; nano 03 : delete pin code

; nano 10 : delete given key (primary and secondary)

; nano 11 : delete seca record of a given type

; nano 17 : write regional bitmap

; nano 21 : set expiration date

; nano 22 : verify expiration date

; nano 28 : delete a ppv preview record

; nano 30 : store a type of credit in ppv credits record

; nano 32 : seek or create record for a given event-id

; nano 40 : delete ppv event record with event-id between min-max

; nano 41 : set PPUA

; nano 42 : store data and new credits in ppv credits record

; nano 43 : update data and add credits in ppv credits record

; nano 80 : set provider bitmap package

; nano 82 : signature

; nano 87 : set provider data for ins 44

; nano 90 : write primary key

; nano 91 : write secondary key

; nano B0 : store seca record of a given type

; nano D0 : change provider name

; nano F0 : verify CUSTWP

;------------------------------------------------------------------------------

--

L0203: clr a ;0203 E4 ;clear

mov 034h,a ;0204 F5 34 ;clear buffer counter

L0206: mov 023h,a ;0206 F5 23 ;clear nano counter

L0208: mov a,34fh ;0208 E5 34 ;load counter

clr c ;020A C3 ;clear carry

mov r0,#080h ;020B 78 80 ;load value

subb a,@r0 ;020D 96 ;verify length

jc (PC+#09C0h) ;020E xx 09 C0 ;jump if not len (L0BD1)

L0211: mov 00fh,#080h ;0211 75 0F 80 ;used records

lcall L54B3 ;0214 12 54 b3 ;point to record 1

mov a,#081h ;0217 74 81 ;load value

add a,034h ;0219 25 34 ;add offset

mov r1,a ;021B F9 ;save

clr a ;021C E4 ;clear

mov 02ah,a ;021D F5 2A ;ram indicator

mov 02bh,a ;021F F5 2B ;nano address

mov 02ch,r1 ;0221 89 2C ;nano address

mov r0,#07Eh ;0223 78 7E ;load value

mov a,@r0 ;0225 E6 ;load P1

anl a,#00fh ;0226 54 0F ;only low nibble

jnz (PC+0562h) ;0228 71 05 62 ;jump if not seca (L078D)

mov r3,02ah ;022B AB 2A ;ram indicator

mov r2,02bh ;022D AA 2B ;nano address

mov r1,02ch ;022F A9 2C ;nano address

lcall L2BA0 ;0231 12 2B A0 ;load nano

lcall L2CDE ;0234 12 2C DE ;jump to corresponding routine

;-------------------------------------------------------------------------------

;Ins 40 SECA only

;Nanocommands table and corresponding routine address

;-------------------------------------------------------------------------------

db 04 76 18 ;0237 04 76 18 ;nanocommand 18

db 03 C3 1B ;023A 03 C3 1B ;nanocommand 1B

db 03 45 1D ;023D 03 45 1D ;nanocommand 1D

db 02 E3 1E ;0240 02 E3 1E ;nanocommand 1E

db 03 14 1F ;0243 03 14 1F ;nanocommand 1F

db 04 97 20 ;0246 04 97 20 ;nanocommand 20

db 02 71 23 ;0249 02 71 23 ;nanocommand 23

db 02 87 24 ;024C 02 87 24 ;nanocommand 24

db 02 9D 25 ;024F 02 9D 25 ;nanocommand 25

db 02 BF 26 ;0252 02 BF 26 ;nanocommand 26 (26)

db 03 9A 2E ;0255 03 9A 2E ;nanocommand 2E (2E)

db 07 44 33 ;0258 07 44 33 ;nanocommand 33

db 07 66 34 ;025B 07 66 34 ;nanocommand 34

db 05 73 50 ;025E 05 73 50 ;nanocommand 50

db 06 4B 92 ;0261 06 4B 92 ;nanocommand 92

db xx xx xx ;0264 xx xx xx ;nanocommand ??

db 03 FF F6 ;0267 03 FF F6 ;nanocommand F6

db 06 12 F7 ;026A 06 12 F7 ;nanocommand F7

db 00 00 ;026D 00 00 ;not found indicator

db 07 8D ;026F 07 8D ;next nanocommand

;-------------------------------------------------------------------------------

; Nanocommand 23 : add new provider

; for seca only

; 23 xx xx : provider ident

;-------------------------------------------------------------------------------

L0271: mov r3,02ah ;0271 AB 2A ;ram indicator

mov r2,02bh ;0273 AA 2B ;nano address

mov r1,02ch ;0275 A9 2C ;nano address

mov dptr,#0001 ;0277 90 00 01 ;offset

lcall L2C4F ;027A 12 2C 4F ;load new provider ident

mov r7,a ;027D FF ;save

mov r6,b ;027E AE F0 ;save

lcall L34FC ;0280 12 34 FC ;add provider

jc (PC+0507h) ;0283 41 05 07 ;jump if ok (L078D)

ret ;0286 22 ;return

;-------------------------------------------------------------------------------

; Nanocommand 24 : apply next nanos to given provider (if flag 24 = 0)

; for seca only

; 24 xx xx : provider ident

;-------------------------------------------------------------------------------

L0287: mov r3,02ah ;0287 AB 2A ;ram indicator

mov r2,02bh ;0289 AA 2B ;nano address

mov r1,02ch ;028B A9 2C ;nano address

mov dptr,#0001 ;028D 90 00 01 ;offset

lcall L2C4F ;0290 12 2C 4F ;load provider ident

mov r7,a ;0293 FF ;save

mov r6,b ;0294 AE F0 ;save

lcall L4D7D ;0296 12 4D 7D ;set provider number

jc (PC+04f1h) ;0299 41 04 F1 ;jump if ok (L078D)

ret ;029B 22 ;return

;-------------------------------------------------------------------------------

; Nanocommand 25 : delete given provider

; for seca only

; 25 xx xx : provider ident

;-------------------------------------------------------------------------------

L029D: mov r3,02ah ;029D AB 2A ;ram indicator

mov r2,02bh ;029F AA 2B ;nano address

mov r1,02ch ;02A1 A9 2C ;nano address

mov dptr,#0001 ;02A3 90 00 01 ;offset

lcall L2C4F ;02A6 12 2C 4F ;load provider ident

mov r7,a ;02A9 FF ;save

mov r6,b ;02AA AE F0 ;save

lcall L36DF ;02A2 12 36 DF ;delete provider

jnc (PC+0926h) ;02AF 51 09 26 ;jump if errors (ret) (0BD8)

mov r0,#07eh ;02B2 78 7E ;load value

mov @a,r0 ;02B4 E6 ;load P1

anl a,#00fh ;02B5 54 0F ;only low nibble

mov 022h,a ;02B7 F5 22 ;set provider number

lcall L51CE ;02B9 12 51 CE ;compute provider area address

ljmp L078D ;02BC 02 07 8D ;next nanos

;-------------------------------------------------------------------------------

; Nanocommand 26 : modify provider space for records and flags

; for seca only

; 26 xx xx : new value

; use after nano 24

;-------------------------------------------------------------------------------

L02BF: mov r3,02ah ;02BF AB 2A ;ram indicator

mov r2,02bh ;02C1 AA 2B ;nano address

mov r1,02ch ;02C3 A9 2C ;nano address

mov dptr,#0001 ;02C5 90 00 01 ;offset

lcall L2C4F ;02C8 12 2C 4F ;load new value

mov 02eh,b ;02CB 85 F0 2E ;save

mov 02fh,a ;02CE F5 2F ;save

mov a,024h ;02D0 E5 24 ;load prov area address

add a,#002h ;02D2 24 02 ;add

mov r7,a ;02D4 FF ;save

clr a ;02D5 E4 ;clear

addc a,021h ;02D6 35 21 ;add carry

mov r6,a ;02D8 FE ;save

mov r5,#02eh ;02D9 7D 2E ;source address

mov r3,#002h ;02DB 7B 02 ;number of bytes

lcall L4C15 ;02DD 12 4C 15 ;write new values to eeprom

ljmp L078D ;02E0 02 07 8D ;next nanos

;-------------------------------------------------------------------------------

; Nanocommand 1E : set [802C] eeprom location ([8020] in 4.1)

; for seca only

; 802C must be 00h or 55h

; 1E xx : if xx=00 then 802C=55h ; if xx=55h then 802C=FFh

;-------------------------------------------------------------------------------

L02E3: mov dptr,#802C ;02E3 90 80 2C ;set pointer

clr a ;02E6 E4 ;clear

movc a,@a+dptr ;02E7 93 ;load data

mov r7,a ;02E8 FF ;save

jz L02F0 ;02E9 60 05 ;jump if zero

xrl a,#055h ;02EB 64 55 ;compare with 55

jnz (PC+049D) ;02ED 71 04 9D ;jump if nequal (L078D)

L02F0: mov r3,02ah ;02F0 AB 2A ;ram indicator

mov r2,02bh ;02F2 AA 2B ;nano address

mov r1,02ch ;02F4 A9 2C ;nano address

mov dptr,#0001 ;02F6 90 00 01 ;offset

lcall L2BB9 ;02F9 12 2B B9 ;load data

jnz L0302 ;02FC 70 04 ;jump if not zero

mov r7,#055h ;02FE 7F 55 ;load value

sjmp L0304 ;0300 80 02 ;jump

L0302: mov r7,#0ffh ;0302 7F FF ;load value

L0304: mov 02dh,r7 ;0304 8F 2D ;save

mov r6,#080h ;0306 7E 80 ;destination address

mov r7,#02ch ;0308 7F 2C ;destination address

mov r5,#02dh ;030A 7D 2D ;source address

mov r3,#001h ;030C 7B 01 ;number of bytes

lcall L4C15 ;030E 12 4C 15 ;write data in eeprom

ljmp L078D ;0311 02 07 8D ;next nanos

;-------------------------------------------------------------------------------

; Nanocommand 1F : set [802D] eeprom location [8021] en 4.1

; for seca only

; 802D location must be 00h or 55h

; 1F xx : if xx=00 then 802D=55h ; if xx=55h then 802D=FFh

;-------------------------------------------------------------------------------

L0314: mov dptr,#802D ;0314 90 80 2D ;set pointer

clr a ;0317 E4 ;clear

movc a,@a+dptr ;0318 93 ;load data

mov r7,a ;0319 FF ;save

jz L031D ;031A 60 05 ;jump if zero

xrl a,#055h ;031C 64 55 ;compare with 55

L031D: jnz (PC+046C) ;031E 71 04 6C ;jump if nequal (L078D)

mov r3,02ah ;0321 AB 2A ;ram indicator

mov r2,02bh ;0323 AA 2B ;nano address

mov r1,02ch ;0325 A9 2C ;nano address

mov dptr,#0001 ;0327 90 00 01 ;offset

lcall L2BB9 ;032A 12 2B B9 ;load data

jnz L0333 ;032D 70 04 ;jump if not zero

mov r7,#055h ;032F 7F 55 ;load value

sjmp L0335 ;0331 80 02 ;jump

L0333: mov r7,#0ffh ;0333 7F FF ;load value

L0335: mov 02dh,r7 ;0335 8F 5C ;save

mov r6,#080h ;0337 7E 80 ;destination address

mov r7,#02Dh ;0339 7F 2D ;destination address

mov r5,#02dh ;033B 7D 2D ;source address

mov r3,#001h ;033D 7B 01 ;number of bytes

lcall L4C15 ;033F 12 4C 15 ;write data in eeprom

ljmp L078D ;0342 02 07 8D ;next nanos

;-------------------------------------------------------------------------------

; Nanocommand 1D : set [802E] (?) eeprom location [8022] en 4.1

; for seca only

; 802E location must be 00h or 55h

; 1F xx : if xx=00 then 802E=55h ; if xx=55h then 802E=FFh

;-------------------------------------------------------------------------------

L0345: mov dptr,#802E ;0345 90 80 2E ;set pointer

clr a ;0348 E4 ;clear

movc a,@a+dptr ;0349 93 ;load data

mov r7,a ;034A FF ;save

jz L031D ;034B 60 05 ;jump if zero

xrl a,#055h ;034D 64 55 ;compare with 55

L034F: jnz (PC+046C) ;034F 71 04 xx ;jump if nequal (L078D)

mov r3,02ah ;0352 AB 2A ;ram indicator

mov r2,02bh ;0354 AA 2B ;nano address

mov r1,02ch ;0356 A9 2C ;nano address

mov dptr,#0001 ;0358 90 00 01 ;offset

lcall L2BB9 ;035B 12 2B B9 ;load data

jnz L1125 ;035E 70 04 ;jump if not zero

mov r7,#055h ;0360 7F 55 ;load value

sjmp L0335 ;0362 80 02 ;jump

L0364: mov r7,#0ffh ;0364 7F FF ;load value

L0366: mov 02dh,r7 ;0366 8F 5C ;save

mov r6,#080h ;0368 7E 80 ;destination address

mov r7,#02Eh ;036A 7F 2E ;destination address

mov r5,#02dh ;036C 7D 5C ;source address

mov r3,#001h ;036E 7B 01 ;number of bytes

lcall L4C15 ;0370 12 4C 15 ;write data in eeprom

ljmp L078D ;0373 02 07 8D ;next nanos

;-------------------------------------------------------------------------------

; Nanocommand 2E : set [802F,8030] (?) eeprom no equivalent in 4.1

; for seca only

; 802F location must 59h, 8030 must be 00h or 59h

; 2E xx yy : 802F=xxh ; 8030=yyh

;-------------------------------------------------------------------------------

L0376: mov dptr,#802F ;0376 90 80 2F ;set pointer

clr a ;0379 E4 ;clear

movc a,@a+dptr ;037A 93 ;load data

mov r7,a ;037B FF ;save

cjne a,#059,L039A ;037E B4 59 19 ;jump if ne 59

mov r3,02ah ;0381 AB 2A ;ram indicator

mov r2,02bh ;0383 AA 2B ;nano address

mov r1,02ch ;0385 A9 2C ;nano address

mov dptr,#0001 ;0387 90 00 01 ;offset

lcall L2BB9 ;038A 12 2B B9 ;load data

mov 2dh,a ;038D F5 2D ;save

mov r6,#80h ;308F 7E 80 ;destination address

mov r7,#2fh ;0391 7F 2F ;destination address

mov r5,#2D ;0393 7D 2D ;source address

mov r3,#01h ;0395 7B 01 ;number of bytes

lcall L4C15 ;0397 12 4C 15 ;write data in eeprom

L039A: mov dptr,#8030 ;039A 90 80 30 ;set pointer

clr a ;039D E4 ;clear

movc a,@a+dptr ;039E 93 ;load data

mov r7,a ;039F FF ;save

jz L03A7 ;03A0 60 05 ;jump if 0

xrl a,#59 ;03A2 64 59 ;compare with 59h

jnz (PC+03E6) ;03A4 71 03 E6 ;jump if nequal 59h(L078D)

L03A7: mov r3,2A ;03A7 AB 2A ;ram indicator

mov r2,2B ;03A9 AA 2B ;nano address

mov r1,2C ;03AB A9 2C ;nano addres

mov dptr,#0002 ;03AD 90 00 02 ;offset

lcall 2BB9 ;03B0 12 2B B9 ;load data

mov 2dh,a ;03B3 F5 2D ;save

mov r6,#80h ;03B5 7E 80 ;destination address

mov r7,#30h ;03B6 7F 30 ;destination address

mov r5,#2D ;03B9 7D 2D ;source address

mov r3,#01 ;03BB 7B 01 ;number of bytes

lcall L4C15 ;03BD 12 4C 15 ;write data in eeprom

ljmp L078D ;03C0 02 07 8D ;next nano

;-------------------------------------------------------------------------------

; Nanocommand 1B eeprom no equivalent in 4.1

; ¿????

;

;

;-------------------------------------------------------------------------------

L03C3: clr a ;03C3 E4 ;

xx xx xx xx

mov r3,2A ;03C8 AB 2A ;ram indicator

mov r2,2B ;03CA AA 2B ;nano address

mov r1,2C ;03CC A9 2C ;nano address

mov dptr,#0001 ;03CE 90 00 01 ;set pointer

lcall L2BB9 ;03D1 12 2B B9 ;load data

mov 2Dh,a ;03D4 F5 2D ;save

jb a.5,L03E0 ;03D6 20 E5 07 ;jump if set bit 5

mov 10h,#90 ;03D9 75 10 90 ;status bytes

mov 11h,#31 ;03DC 75 11 31 ;status bytes

ret ;03DF 22 ;return

L03E0: mov a,2Dh ;03E0 E5 2D ;load

swap a ;03E2 C4 ;swap nbbles

rrc a ;03E3 13 ;rotate right

rrc a ;03E4 13 ;rotate right

anl a,#03 ;03E5 54 03 ;bits 5,6

mov dptr,#xxxx ;03E7 90 xx xx ;

xx xx xx xx xx xx xx xx xx xx

rlc a ;03F4 33 ;

ret ;03F5 22 ;return

L03F6: mov 30h,#00h ;03F6 75 30 00 ;set flags

mov 31h,#1Bh ;03F9 75 31 1B ;set flags

ljmp L078D ;03FC 02 07 8D ;next nanos

;-------------------------------------------------------------------------------

; Nanocommand F6 no equivalent in 4.1

;

;

;

;-------------------------------------------------------------------------------

mov a,xx ;03FF E5 xx ;

25*xx

ajmp xx ;0418 01 xx ;

7 *xx

ljmp 078D ;0421 02 07 8D ;next nanos

;-------------------------------------------------------------------------------

; Nanocommand ?? no equivalent in 4.1

;

;

;

;-------------------------------------------------------------------------------

mov r3,2A ;0424 AB 2A ;ram indicator

mov r2,2B ;0426 AA 2B ;nano address

mov r1,2C ;0428 A9 2C ;nano address

mov dptr,#0001 ;042A 90 00 01 ;set pointer

lcall 2BB9 ;042D 12 2B B9 ;load data

anl a,#40 ;0430 54 40 ;only bit 6

xx

swap a ;0433 C4 ;swap

4*xx

mov 2Dh,a ;0438 F5 2D ;load

mov dptr,#802F ;043A 90 80 2F ;set pointer

movc a,@a+dptr ;043D 93 ;read eeprom

xrl a,#59 ;043E 64 59 ;compare with 59h

jnz (PC+0795) ;0440 71 07 95 ;ret if ne (L0BD8)

mov a,xx ;0443 E5 xx ;

7*xx

push 80 ;044C C0 80 ;

inc @r0 ;044E 06 ;

mov 32,#8E ;044F 75 32 8E ;set high address

mov 33,#E0 ;0452 75 33 E0 ;set low address

mov r7,33h ;0455 AF 33 ;load

mov r6,32h ;0457 AE 32 ;load

mov r3,2Ah ;0459 AB 2A ;ram indicator

mov r2,2Bh ;045B AA 2B ;nano address

mov r1,2Ch ;045D A9 2C ;nano address

mov a,r1 ;045F E9 ;

add a,#09 ;0460 24 09 ;

mov r1,a ;0462 F9 ;

clr a ;0463 E4 ;

8*xx

mov a,r7 ;046C EF ;

2*xx

mov 10,#90 ;0470 75 10 90 ;set staus bits

mov 11,#31 ;0473 75 11 31 ;set staus bits

ret ;0475 22 ;ret

L0476: mov dptr,#802F ;0476 90 80 2F ;set pointer

mov a,2Dh ;0479 E5 2D ;load a

add dptr,a ;047B F1 64 ;increment pointer

mov r7,dpl ;047D AF 82 ;set low add destination

mov r6,dph ;047F AE 83 ;set high add destination

mov r3,2A ;0481 AB 2A ;ram indicator

mov r2,2B ;0483 AA 2B ;nano address

mov r1,2C ;0485 A9 2C ;nano address

mov a,r1 ;0487 E9 ;

add a,#02 ;0488 24 02 ;

mov r1,a ;048A F9 ;r1+=2

clr a ;048B E4 ;clear

addc a,r2 ;048C 3A ;

mov r5,01h ;048D AD 01 ;source address (r1)

mov r3,#01h ;048F 7B 01 ;number of bytes

lcall L4C15 ;0491 12 4C 15 ;write data in eeprom

ljmp L078D ;0494 02 07 8D ;next nano

;-------------------------------------------------------------------------------

; Nanocommand 20 no equivalent in 4.1

;

;

;

;-------------------------------------------------------------------------------

mov r3,2Ah ;0497 AB 2A ;ram indicator

mov r2,2Bh ;0499 AA 2B ;nano address

mov r1,2Ch ;049B A9 2C ;nano address

mov dptr,#0001 ;049D 90 00 01 ;set pointer

lcall 2BB9 ;04A0 12 2B B9 ;load data

setb c ;04A3 D3 ;set carry

subb a,#02h ;04A4 94 02 ;compare with 2h

jnc (PC+02E4) ;04A6 51 02 E4 ;jump if >2 (L078D)

clr a ;04A8 E4 ;clear

mov r3,2Ah ;04A9 AB 2A ;ram indicator

mov r2,2Bh ;04AB AA 2B ;nano address

mov r1,2Ch ;04AD A9 2C ;nano address

mov dptr,#0001 ;04AF 90 00 01 ;set pointer

lcall 2BB9 ;04B2 12 2B B9 ;load data

mov dptr,#8036 ;04B5 90 80 36 ;set pointer

movc a,@a+dptr ;04B8 93 ;load data

jz L04D1 ;04B9 60 15 ;jump if eq 0

mov r3,2A ;04BB AB 2A ;ram indicator

mov r2,2B ;04BD AA 2B ;nano address

mov r1,2C ;04BF A9 2C ;nano address

mov dptr,#0001 ;04C1 90 00 01 ;set pointer

lcall 2BB9 ;04C4 12 2B B9 ;load data

mov dptr,#8036 ;04C7 90 80 36 ;set pointer

movc a,@a+dptr ;04CA 93 ;load data

xrl a,#59 ;04CB 64 59 ;compare with 59h

jnz (PC+02BD) ;04CD 71 02 BD ;jump if not equal L078D

L04D0: mov r3,2A ;04D0 AB 2A ;ram indicator

mov r2,2B ;04D2 AA 2B ;nano address

mov r1,2C ;04D4 A9 2C ;nano address

mov dptr,#0002 ;04D6 90 00 02 ;set pointer

lcall 2BB9 ;04D9 12 2B B9 ;load data

4*xx

mov r3,2A ;04E0 AB 2A ;ram indicator

mov r2,2B ;04E2 AA 2B ;nano address

mov r1,2C ;04E4 A9 2C ;nano address

mov dptr,#0001 ;04E6 90 00 01 ;set pointer

lcall 2BB9 ;04E9 12 2B B9 ;load data

2*xx

mov r3,2A ;04EE AB 2A ;ram indicator

mov r2,2B ;04F0 AA 2B ;nano address

mov r1,2C ;04F2 A9 2C ;nano address

mov dptr,#0001 ;04F4 90 00 01 ;set pointer

lcall 2BB9 ;04F7 12 2B B9 ;load data

mov b,#08 ;04FA 75 F0 08 ;b=8h

mul ab ;04FD A4 ;a*=b

mov dptr,#807C ;04FE 90 80 7C ;set pointer

add dptr,ab ;0501 F1 65 ;inc pointer

clr a ;0503 E4 ;clear

movc a,@a+dptr ;0504 93 ;load data

5*xx

mov r3,2A ;040A AB 2A ;ram indicator

mov r2,2B ;050C AA 2B ;nano address

mov r1,2C ;050E A9 2C ;nano address

mov dptr,#0001 ;0510 90 00 01 ;set pointer

lcall 2BB9 ;0513 12 2B B9 ;load data

dec a ;0516 14 ;a-=1

mov r5,a ;0517 FD ;load

lcall L3600 ;0518 12 36 00 ; ????

mov a,r7 ;051B EF ;load

12*xx

mov r3,2A ;0528 AB 2A ;ram indicator

mov r2,2B ;052A AA 2B ;nano address

mov r1,2C ;052C A9 2C ;nano address

mov dptr,#0001 ;052E 90 00 01 ;set pointer

lcall 2BB9 ;0531 12 2B B9 ;load data

mov b,#08 ;0534 75 F0 08 ;b=8h

mul ab ;0537 A4 ;a*=b

mov dptr,#807E ;0538 90 80 7E ;set pointer

add dptr,ab ;053B F1 65 ;inc pointer

mov r7,dpl ;053D AF 82 ;load high address

mov r6,dph ;053F AE 83 ;load low address

7*xx

mov r3,2A ;0548 AB 2A ;ram indicator

mov r2,2B ;054A AA 2B ;nano address

mov r1,2C ;054C A9 2C ;nano address

mov dptr,#0001 ;054E 90 00 01 ;set pointer

lcall 2BB9 ;0551 12 2B B9 ;load data

mov dptr,#8036 ;0554 90 80 36 ;set pointer

add dptr,a ;0557 F1 64 ;inc pointer

mov r7,dpl ;0559 AF 82 ;destination

mov r6,dph ;055B AE 83 ;destination

mov r3,2A ;055D AB 2A ;crap

mov r2,2B ;055F AA 2B ;nano address

mov r1,2C ;0561 A9 2C ;nano address

mov a,r1 ;0563 E9 ;load

add a,#02 ;0564 24 02 ;r1+=2

mov r1,a ;0566 F9 ;save

clr a ;0567 E4 ;clear

addc a,r2 ;0568 3A ;add r2

mov r5,01h ;0569 AD 01 ;source

mov r3,#01 ;056B 7B 01 ;number of bits

lcall L4C15 ;056D 12 4C 15 ;write in eeprom

ljmp L078D ;0570 02 07 8D ;next nanos

;-------------------------------------------------------------------------------

; Nanocommand 50 no equivalent in 4.1

; [8036]=59h

; 50 xx aa bb dd ee

; xx<=2 aa=[5456] bb=[5457]

;-------------------------------------------------------------------------------

clr a ;0573 E4 ;clear

2*xx

mov r3,2A ;0576 AB 2A ;ram indicator

mov r2,2B ;0578 AA 2B ;nano address

mov r1,2C ;057A A9 2C ;nano address

mov dptr,#0001 ;057C 90 00 01 ;set pointer

lcall 2BB9 ;057F 12 2B B9 ;load data

setb c ;0582 D3 ;set carry

subb a,#00 ;0583 94 00 ;compare

jc L0598 ;0585 40 11 ;jump if 0

mov r3,2A ;0587 AB 2A ;ram indicator

mov r2,2B ;0589 AA 2B ;nano address

mov r1,2C ;058B A9 2C ;nano address

mov dptr,#0001 ;058D 90 00 01 ;set pointer

lcall 2BB9 ;0590 12 2B B9 ;load data

setb c ;0593 D3 ;set carry

subb a,#02 ;0594 94 02 ;compare

jc L059F ;0596 40 07 ;jump gt 2

L0598: mov 10,#90 ;0598 75 10 90 ;status bytes

mov 11,#2C ;059B 75 11 2C ;status bytes

ret ;059E 22 ;return

L059F: mov dptr,#8036 ;059F 90 80 36 ;set pointer

clr a ;05A2 E4 ;clear

movc a,@a+dptr ;05A3 93 ;load data

cjne a,#59,L05BB ;05A4 B4 59 14 ;jump if ne 59h

mov r3,2A ;05A7 AB 2A ;ram indicator

mov r2,2B ;05A9 AA 2B ;nano address

mov r1,2C ;05AB A9 2C ;nano address

mov dptr,#0001 ;05AD 90 00 01 ;set pointer

lcall L2BB9 ;05B0 12 2B B9 ;load data

mov dptr,#xxxx ;05B3 90 xx xx ;set pointer

12*xx

L05BB:

mov r3,2A ;05C2 AB 2A ;ram indicator

mov r2,2B ;05C4 AA 2B ;nano address

mov r1,2C ;05C6 A9 2C ;nano address

mov dptr,#0004 ;05C8 90 00 04 ;set pointer

lcall L2BB9 ;05CB 12 2B B9 ;load data

mov r7,a ;05CE FF ;save

mov dptr,#5456 ;05CF 90 54 56 ;set pointer

clr a ;05D2 E4 ;clear

movc a,@a+dptr ;05D3 93 ;load data

cjne a,07h,L05EC ;05D4 B5 07 15 ;compare n4 with [5456]

mov r3,2A ;05D7 AB 2A ;ram indicator

mov r2,2B ;05D9 AA 2B ;nano address

mov r1,2C ;05DB A9 2C ;nano address

mov dptr,#0005 ;05DD 90 00 05 ;set pointer

lcall 2BB9 ;05E0 12 2B B9 ;load data

mov r7,a ;05E3 FF ;save

mov dptr,#5457 ;05E4 90 54 57 ;set pointer

clr a ;05E7 E4 ;clear

movc a,@a+dptr ;05E8 93 ;load data

xrl a,r7 ;05E9 6F ;compare n5 with [5457]

jz L05F3 ;05EA 60 07 ;jump if ne

L05EC: mov 10,#90 ;05EC 75 10 90 ;status bytes

mov 11,#2E ;05EF 75 11 2E ;status bytes

ret ;05F2 22 ;return

L05F3: mov r3,2A ;05F3 AB 2A ;ram indicator

mov r2,2B ;05F5 AA 2B ;nano address

mov r1,2C ;05F7 A9 2C ;nano address

lcall L2BA0 ;05F9 12 2B A0 ;load nano

2*xx

mov r3,2A ;05FE AB 2A ;ram indicator

mov r2,2B ;0600 AA 2B ;nano address

mov r1,2C ;0602 A9 2C ;nano address

mov dptr,#0002 ;0604 90 00 02 ;set pointer

lcall L2C4F ;0607 12 2C 4F ;load n2,n3

mov xx,b ;060A 85 F0 xx ;save

5*xx

;-------------------------------------------------------------------------------

; Nanocommand F7 no equivalent in 4.1

;

;

;

;-------------------------------------------------------------------------------

2*xx

xrl a,#50h ;0614 64 50 ;compare with #50h

jz L061F ;0616 60 07 ;if equal jump

mov 10h,#90h ;0618 75 10 90 ;else

mov 11h,#2Fh ;061B 75 11 2F ;status codes 90 2F

ret ;061E 22 ;return

L061F: mov a,31h ;061F E5 31 ;#1bh set by nano 1b

mov r6,30h ;0621 AE 30 ;#00h set by nano 1b

mov r0,#05h ;0623 78 05 ;load r0

clr c ;0625 C3 ;clear carry

rlc a ;0626 33 ;

xch a,r6 ;0627 CE ;

rlc a ;0628 33 ;

xch a,r6 ;0629 CE ;

djnz r0,F9 ;062A D8 F9 ;

add a,#00 ;062C 24 00 ;

mov r1,a ;062E F9 ;

mov a,#80 ;062F 74 80 ;

addc a,r6 ;0631 3E ;

mov r6,a ;0632 FE ;

mov r7,01 ;0633 AF 01 ;

mov r3,2A ;0635 AB 2A ;

mov r2,2B ;0637 AA 2B ;

mov r1,2C ;0639 A9 2C ;

mov a,r1 ;063B E9 ;

add a,#01 ;063C 24 01 ;

mov r1,a ;063E F9 ;

clr a ;063F E4 ;

addc a,r2 ;0640 3A ;

mov r5,01 ;0641 AD 01 ;source @r1

mov r3,#20h ;0643 7B 20 ;number of bytes

lcall L4C15 ;0645 12 4C 15 ;write in eeprom

ljmp L078D ;0648 02 07 8D ;next nanos

 

;-------------------------------------------------------------------------------

; Nanocommand 92 no equivalent in 4.1

;

;

;

;-------------------------------------------------------------------------------

mov r3,2A ;064B AB 2A ;

mov r2,2B ;064D AA 2B ;

mov r1,2C ;064F A9 2C ;

mov dptr,#0001 ;0651 90 00 01 ;

lcall 2BB9 ;0654 12 2B B9 ;

setb c ;0657 D3 ;

4*xx

mov r3,2A ;065C AB 2A ;

mov r2,2B ;065E AA 2B ;

mov r1,2C ;0660 A9 2C ;

mov dptr,#0001 ;0662 90 00 01 ;

lcall 2BB9 ;0665 12 2B B9 ;

setb c ;0668 D3 ;

subb a,#02 ;0669 94 02 ;

jc 07 ;066B 40 07 ;

mov 10,#90 ;066D 75 10 90 ;

mov 11,#2C ;0670 75 11 2C ;

ret ;0673 22 ;

mov dptr,#8036 ;0674 90 80 36 ;

clr a ;0677 E4 ;

4*xx

mov r3,2A ;067C AB 2A ;

mov r2,2B ;067E AA 2B ;

mov r1,2C ;0680 A9 2C ;

mov dptr,#0001 ;0682 90 00 01 ;

lcall 2BB9 ;0685 12 2B B9 ;

mov dptr,#8036 ;0688 90 80 36 ;

movc a,@a+dptr ;068B 93 ;

xrl a,#59 ;068C 64 59 ;

jz 07 ;068E 60 07 ;

mov 10,#90 ;0690 75 10 90 ;

mov 11,#2D ;0693 75 11 2D ;

ret ;0696 22 ;

mov r3,2A ;0697 AB 2A ;

mov r2,2B ;0699 AA 2B ;

mov r1,2C ;069B A9 2C ;

mov dptr,#0008 ;069D 90 00 08 ;

lcall 2BB9 ;06A0 12 2B B9 ;

mov r7,a ;06A3 FF ;save

mov dptr,#5456 ;06A4 90 54 56 ;

clr a ;06A7 E4 ;

4*xx

mov r3,2A ;06AC AB 2A ;

mov r2,2B ;06AE AA 2B ;

mov r1,2C ;06B0 A9 2C ;

mov dptr,#0009 ;06B2 90 00 09 ;

lcall 2BB9 ;06B5 12 2B B9 ;

mov r7,a ;06B8 FF ;save

mov dptr,#5457 ;06B9 90 54 57 ;

clr a ;06BC E4 ;

movc a,@a+dptr ;06BD 93 ;

xrl a,r7 ;06BE 6F ;

jz 07 ;06BF 60 07 ;

mov 10,#90 ;06C1 75 10 90 ;

4*xx

mov r3,2A ;06C8 AB 2A ;

mov r2,2B ;06CA AA 2B ;

mov r1,2C ;06CC A9 2C ;

mov dptr,#0001 ;06CE 90 00 01 ;

lcall 2BB9 ;06D1 12 2B B9 ;

mov b,#08 ;06D4 75 F0 08 ;

mul ab ;06D7 A4 ;

mov dptr,#8078 ;06D8 90 80 78 ;

add dptr,ab ;06DB F1 65 ;

mov r7,82 ;06DD AF 82 ;

mov r6,83 ;06DF AE 83 ;

mov r3,2A ;06E1 AB 2A ;

mov r2,2B ;06E3 AA 2B ;

mov r1,2C ;06E5 A9 2C ;

mov a,r1 ;06E7 E9 ;

add a,#01 ;06E8 24 01 ;

mov r1,a ;06EA F9 ;

clr a ;06EB E4 ;

4*xx

ajmp F9 ;06F0 01 F9 ;

clr a ;06F2 E4 ;

addc a,r2 ;06F3 3A ;

mov r5,01 ;06F4 AD 01 ;

mov r3,#06 ;06F6 7B 06 ;

lcall 4C15 ;06F8 12 4C 15 ;

mov r3,2A ;06FB AB 2A ;

mov r2,2B ;06FD AA 2B ;

mov r1,2C ;06FF A9 2C ;

mov dptr,#0001 ;0701 90 00 01 ;

lcall 2BB9 ;0704 12 2B B9 ;

mov b,#08 ;0707 75 F0 08 ;

mul ab ;070A A4 ;

mov dptr,#807C ;070B 90 80 7C ;

add dptr,ab ;070E F1 65 ;

clr a ;0710 E4 ;

movc a,@a+dptr ;0711 93 ;

mov r6,a ;0712 FE ;

mov a,#01 ;0713 74 01 ;

movc a,@a+dptr ;0715 93 ;

mov r7,a ;0716 FF ;save

mov r3,2A ;0717 AB 2A ;

mov r2,2B ;0719 AA 2B ;

mov r1,xx ;071B A9 xx ;

40*xx

;-------------------------------------------------------------------------------

; Nanocommand 33 : create or modify service preview record

; for seca only

; 33 xx xx xx : ident and counter

;-------------------------------------------------------------------------------

mov r3,2A ;0744 AB 2A ; ram

mov r2,2B ;0746 AA 2B ; nano address

mov r1,2C ;0748 A9 2C ; nano address

mov dptr,#0001 ;074A 90 00 01 ; offset

lcall 2BB9 ;074D 12 2B B9 ; load ident

mov r7,a ;0750 FF ; save

mov r3,2A ;0751 AB 2A ; ram

mov r2,2B ;0753 AA 2B ; nano address

mov r1,2C ;0755 A9 2C ; nano address

mov dptr,#0002 ;0757 90 00 02 ; offset

lcall 2C4F ;075A 12 2C 4F ; load counter

mov r5,a ;075D FD ; save

mov r4,b ;075E AC F0 ; save

6*xx

;-------------------------------------------------------------------------------

; Nanocommand 34 : ??

; for seca only

; 34 xx xx xx : ident and counter

;-------------------------------------------------------------------------------

2*xx

mov r2,2B ;0768 AA 2B ;

mov r1,2C ;076A A9 2C ;

mov dptr,#0001 ;076C 90 00 01 ;

lcall 2BB9 ;076F 12 2B B9 ;

mov r7,a ;0772 FF ; save

acall xx ;0773 F1 xx ;

15*xx

rr a ;0784 03 ;

lcall 2B77 ;0785 12 2B 77 ;

acall 5F ;0788 F1 5F ;

lcall 434F ;078A 12 43 4F ;

;-------------------------------------------------------------------------------

; Process provider nanos (different than seca)

;-------------------------------------------------------------------------------

mov r3,2A ;078D AB 2A ;

mov r2,xx ;078F AA xx ;

8*xx

;-------------------------------------------------------------------------------

;-------------------------------------------------------------------------------

; Nanocommands table and corresponding routine address

;-------------------------------------------------------------------------------

db xx xx 01 ;799 xx xx 01 ;nanocommand 01

db xx xx 02 ;79C xx xx 02 ;nanocommand 02

db xx xx 03 ;79F xx xx 03 ;nanocommand 03

db xx xx 10 ;7A2 xx xx 10 ;nanocommand 10

db 0B 13 11 ;7A5 0B 13 11 ;nanocommand 11

db 0B A8 14 ;7A8 0B A8 14 ;nanocommand 14(?)

db 08 5F 17 ;7AB 08 5F 17 ;nanocommand 17

db 0B A8 18 ;7AE 0B A8 18 ;nanocommand 18

db 0B A8 1B ;7B1 0B A8 1B ;nanocommand 1B

db 0B A8 1D ;7B4 0B A8 1D ;nanocommand 1D

db 0B A8 1E ;7B7 0B A8 1E ;nanocommand 1E

db 0B A8 1F ;7BA 0B A8 1F ;nanocommand 1F

db 0B A8 20 ;7BD 0B A8 20 ;nanocommand 20

db 09 BA 21 ;7C0 09 BA 21 ;nanocommand 21

db 09 90 22 ;7C3 09 90 22 ;nanocommand 22

db 0B A8 23 ;7C6 0B A8 23 ;nanocommand 23

db xx xx 24 ;7C9 xx xx 24 ;nanocommand 24

db xx xx 25 ;7CC xx xx 25 ;nanocommand 25

db xx xx 26 ;7CF xx xx 26 ;nanocommand 26

db xx xx 28 ;7D2 xx xx 28 ;nanocommand 28

db 0B A8 2E ;7D5 0B A8 2E ;nanocommand 2E

db 0A CF 30 ;7D8 0A CF 30 ;nanocommand 30

db 09 35 32 ;7DB 09 35 32 ;nanocommand 32

db 0B A8 33 ;7DE 0B A8 33 ;nanocommand 33

db xx xx 34 ;7E1 xx xx 34 ;nanocommand 34

db xx xx 40 ;7E4 xx xx 40 ;nanocommand 40

db xx xx 41 ;7E7 xx xx 41 ;nanocommand 41

db 0A 85 42 ;7EA 0A 85 42 ;nanocommand 42

db 0A AA 43 ;7ED 0A AA 43 ;nanocommand 43

db 0B A8 50 ;7F0 0B A8 50 ;nanocommand 50

db 08 8E 80 ;7F3 08 8E 80 ;nanocommand 80

db 0B D8 82 ;7F6 0B D8 82 ;nanocommand 82

db 0B 59 87 ;7F9 0B 59 87 ;nanocommand 87

db 08 D6 90 ;7FC 08 D6 90 ;nanocommand 90

db 08 D6 91 ;7FF 08 D6 91 ;nanocommand 91

db 0B A8 92

Link naar reactie
Delen op andere sites

@Kimble

 

Clas: C1

SIN : 3C

P1 : 02

P2 : SEA

LEN : 5C

 

Klopt P2 wel moet dit niet EA zijn.

 

De brekening met de XOR van serienummer vind ik wat ver gezocht maar wel interessant.

 

 

Link naar reactie
Delen op andere sites

@Kimble

 

zou je de encryptie kunnen herhalen met de volgende input:

01 01 01 01 01 01 01 02

01 01 01 01 01 01 02 01

02 01 01 01 01 01 01 01

02 01 01 01 01 01 01 02

 

Gr,

 

Melt_Down

 

Link naar reactie
Delen op andere sites

@Kimble,

 

Als je bedoeld de INS 38/36, de eerste soliciteerd data van een PPV event. De tweede, nadat de kaart gelezen is copieert deze data, vooral dankzij de bug 38/36 in de vorige versie kaarten. Toen konden we koop van 'PPV events' emuleren.

Als je bedoelt de nanos 38/36..... weet je dan ook welke instructies deze nanos hebben????

 

Saludos!

 

'Azazel miembro del equipo RAIDEN, la resistencia.'

[color:"red"] LLORAMOS JUNTOS, GANAREMOS JUNTOS! [/color]
Link naar reactie
Delen op andere sites

@Azazel

Soliciteerd is vraagt op?(sollictated).

Is geen muggeziften maar niet IT mensen zullen deze term niet zo makkelijk (her)kennen.

@Kimble

Mischien is het een idee om de assembler mnenomics(of een verwijzing naar) uit te leggen. Ik begrijp dat jij een ervaren prgm bent en met cjne dus weet dat dit compare jump not equal betekent. Mov move is etc. Ik denk dat er veel hobbyisten zijn die zich best in deze materie willen verdiepen alleen de weg naar het toch niet eenvoudige assembler kunnen vinden bij gebrek aan informatie. Mischien een apart forum waard zelfs? Ik heb ooit eens een student gehad die ik moest begeleiden voor een stage projekt(marketing). Die knul was erg leergierig en leerde binnen 3 weken in assembler te programmeren(de 370/158 assembler dan he). Eerst met dit is je eerste programma maar in bijzonder rap tempo wist hij zich heel duidelijk als een begenadigd assembler programmeur te profileren. Ongetwijfeld zullen er onder onze medehobbyisten zich personen bevinden die net zo leergierig zijn en zich als behoorlijk assemblerprogrammeur nog zeer verdienstelijk kunnen maken.

Avensis

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...