From: Jean-Paul <tch...@fr...> - 2009-01-21 06:57:19
|
On Tue, 20 Jan 2009 21:13:45 +0100, Gudjon I. Gudjonsson <gu...@gu...> wrote: > Hi > Thanks for the answers to the last question about the function call > to an > absolute address. I am trying to use the iap routines for the NXP p89v664 > device. The first test is just to get the manufacturers ID but it doesn't > work. Hi, in case it could help, here is a snipet in asm I took from the datasheet some time ago, to be embedded in a PLM (yes!!) program for an 89C664. I don't remember all of the details, but I remember it worked out of the box. It looks like you don't execute: orl AUXR1,#20h to enable flash programming. As to French: écriture = write effacement = erase identité = identity lecture = read Greetings --------------------------------------------------------------------------- name fiap ; nom du module In App Programming enbas segment code ; segment o. le mettre rseg enbas ; relogeable PGM_MTP equ 0FFF0h AUXR1 equ 0A2h public flefface public flid public flecris extrn data (bloc) ; param. entree extrn data (retour) ; donnees sortie extrn data (adresiich, adresiicb) ; adresse pour ecriture extrn data (longiic) ; nombre d'octets flecris: ; ecriture un octet orl AUXR1,#20h mov R0,#11 ; mov R1,#2 mov DPH, adresiich mov DPL, adresiicb mov A,bloc lcall PGM_MTP mov retour,acc anl AUXR1,#NOT 20h ret flefface: ; effacement bloc orl AUXR1,#20h mov R0,#11 ; numéro dans bloc -> dph mov R1,#1 mov DPH,bloc mov DPL,#0 lcall PGM_MTP mov retour,acc anl AUXR1,#NOT 20h ret flid: ; lecture identité ; 0 Manuf. 1, 2 type orl AUXR1,#20h mov R0,#11 ; numéro dans bloc -> dph mov R1,#0 mov DPH,#0 mov DPL,bloc lcall PGM_MTP mov retour,acc anl AUXR1,#NOT 20h ret end; -------------------------------------------------------------------------- -- NEVER jump into a LOOP! |