From 60f6365f6e87e3d39e1739af063bb5fdd42b6a8c Mon Sep 17 00:00:00 2001 From: epetrich Date: Tue, 16 Dec 2003 05:02:50 +0000 Subject: [PATCH] (committed on Frieder's behalf) * src/mcs51/main.c: fixed the fix for bug #737001 git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3059 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 5 +++++ src/mcs51/main.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6fe9b2e4..9e8acf65 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2003-12-16 Frieder Ferlemann + + (committed by Erik Petrich on Frieder's behalf) + * src/mcs51/main.c: fixed the fix for bug #737001 + 2003-12-15 Borut Razem * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4 diff --git a/src/mcs51/main.c b/src/mcs51/main.c index 20f721fe..0bf2d114 100644 --- a/src/mcs51/main.c +++ b/src/mcs51/main.c @@ -157,17 +157,17 @@ _mcs51_genIVT (FILE * of, symbol ** interrupts, int maxInterrupts) This clears XSEG, DSEG, BSEG, OSEG, SSEG */ static void _mcs51_genRAMCLEAR (FILE * of) { fprintf (of, "; _mcs51_genRAMCLEAR() start\n"); - fprintf (of, " mov r1,#l_XSEG\n"); - fprintf (of, " mov a,r1\n"); + fprintf (of, " mov r0,#l_XSEG\n"); + fprintf (of, " mov a,r0\n"); fprintf (of, " orl a,#(l_XSEG >> 8)\n"); fprintf (of, " jz 00005$\n"); - fprintf (of, " mov r0,#((l_XSEG + 255) >> 8)\n"); + fprintf (of, " mov r1,#((l_XSEG + 255) >> 8)\n"); fprintf (of, " mov dptr,#s_XSEG\n"); fprintf (of, " clr a\n"); fprintf (of, "00004$: movx @dptr,a\n"); fprintf (of, " inc dptr\n"); - fprintf (of, " djnz r1,00004$\n"); fprintf (of, " djnz r0,00004$\n"); + fprintf (of, " djnz r1,00004$\n"); /* r0 is zero now. Clearing 256 byte assuming 128 byte devices don't mind */ fprintf (of, "00005$: mov @r0,a\n"); fprintf (of, " djnz r0,00005$\n"); -- 2.30.2