Gast Geplaatst: 20 oktober 2003 Geplaatst: 20 oktober 2003 Set eeprom user key Code: L5467: mov 0f4h,#0ffh ;5467 75 F4 FF ;eeprom unlockedmov dptr,#8060 ;546A 90 80 60 ;set pointermov a,#008h ;546D 74 08 ;set lengthmov @0f2h,a,@dptr ;546F F1 40 F2 ;set eeprom user keymov 0f4h,#015h ;5472 75 F4 15 ;eeprom lockedret ;5475 22 ;return Jump to user algo r6-r7 : user algo starting address Code: L5476: nop ;5476 00 ;no operationpop r1r0 ;5477 F1 7C ;add more stack to user algopop r1r0 ;5479 F1 7C ;add more stack to user algomov a,r7 ;547B EF ;load starting addressmov b,r6 ;547C 8E F0 ;load starting addressmov dptr,ba ;547E F1 54 ;saveclr a ;5480 E4 ;clearjmp @a+dptr ;5481 73 ;jump to user algoret ;5482 22 ;return (crap) Point to previous record Code: L5483: mov a,00dh ;5483 E5 0D ;loaddec 00dh ;5485 15 0D ;decrement record numberjnz L548B ;5487 70 02 ;jump if not zerodec 00ch ;5489 15 0C ;decrement record numberL548B: lcall L4E31 ;548B 12 4E 31 ;verify and compute rec offsetret ;548E 22 ;return Point to next record Code: L548F: inc 00dh ;548F 05 0D ;increment record numbermov a,00dh ;5491 E5 0D ;loadjnz L5497 ;5493 70 02 ;jump if not zeroinc 00ch ;5495 05 0C ;incrementL5497: lcall L4E31 ;5497 12 4E 31 ;verify and compute rec offsetret ;549A 22 ;return Output eeprom error codes and quit Code: L549B: mov 010h,#090h ;549B 75 10 90 ;load status codemov 011h,#001h ;549E 75 11 01 ;load status codelcall L5458 ;54A1 12 54 58 ;send status codes to I/OL54A4: sjmp L54A4 ;54A4 80 FE ;infinite loopret ;54A6 22 ;crap Write data from internal ram to eeprom r6-r7 : destination address r5 : source address r3 : number of bytes (max 20h) Code: L54A7: mov r2,003h ;54A7 AA 03 ;number of bytes (max 20h)mov r0,005h ;54A9 A8 05 ;source address (int. ram)mov dpl,r7 ;54AB 8F 82 ;set destination addressmov dph,r6 ;54AD 8E 83 ;set destination addresslcall L0046 ;54AF 12 00 46 ;write in eeprom (RMS)ret ;54B2 22 ;return Point to record 1 Code: L54B3: mov 00ch,#000h ;54B3 75 0C 00 ;set record numbermov 00dh,#001h ;54B6 75 0D 01 ;set record numberlcall L5356 ;54B9 12 53 56 ;compute record addressret ;54BC 22 ;return Load in r7 card version (60h) Code: L54BD: mov dptr,#5456 ;54BD 90 54 56 ;set pointerclr a ;54C0 E4 ;clearmovc a,@a+dptr ;54C1 93 ;load card versionmov r7,a ;54C2 FF ;saveret ;54C3 22 ;return Load in r7 software version (06h) Code: L54C4: mov dptr,#5457 ;54C4 90 54 57 ;set pointerclr a ;54C7 E4 ;clearmovc
Aanbevolen berichten