Question : I had downloaded from KEIL Web site the file "mon51_ds5000.zip" with Mon51, expanded it to "ds5000_mon_9600_110592.hex" and loaded it into my DALLAS DS 5000FP 32-16 using "kit.exe" loader with MCON = "E8". Then I 1.assembled an application : ----------------------------------------------- void main (void) { unsigned char a, b ,c; ES = ENAB ; /* for mon51 only */ a = 2; b = 3; c = a+b; while (1) { _nop_(); }; } ----------------------------------------------- 2. set in startup.a51 : CSEG AT 2000H 3. set in MVision : C51 - Interrupt vectors at 0x2000 : BL51 Locate - Code Range : 0x2000-0x6FFF : Debug - Keil monitor 51 driver, - load application at startup - YES - go till main - NO - Settings :9600 Bd, : stop program execution with serial input - Initialization file : debug_mon51.ini (I wrote down in the ini file : $ = 0x2000) 4.compiled all the files above successfully together 5. loaded intelhex of the application to my DS 5000 via mon51 (without receiving any error mesages). After loading the application I can see in MVision on the monitor, that program counter is set to main function, but after a short while program counter "crash" to address 0x0000. The thing is that program counter is hunged on address 0x0000 and I am not able to run program using single stepping. However, I can successful place a breakpoint anywhere in main function, When I enter command "$ - main" I can see a code of my application with break point placed, but I can't single step the application. When trying it, program counter everywhrere "crashes" to address 0x0000. Could someone to tell me what I am doing incorecctly ? I have tried manually create mon51 modifying file Install.a51 according to instructions on Keil Web site and added this code in install.a51 : ---------------------------------------------------------------------- USER_PGM_START EQU 2000H USER_PGM_MCON EQU 048H ; partition CODE/DATA : 0x2000 USER_XRAM_MCON EQU 0E8H ; partition CODE/DATA : 0x7000 sfr MCON = 0C6h; sfr TA = 0C7h; INT_ADR_OFF EQU USER_PGM_START ; INTERRUPT VECTOR OFFSET IF MONITOR ; IS INSTALLED AT ADDRESS 0000H DEF_PC_VAL EQU USER_PGM_START ; DEFAULT PC VALUE AFTER START UP $IF (SERIAL = 0) ;******************************************************************** ;* Using TIMER 1 to Generate Baud Rates * ;* Oscillator frequency = 11.059 MHz * ;* Set Baudrate to 9600 Baud * ;******************************************************************** InitSerial: PROMCHECK ; Check if PROM in System MOV TA,#0AAH ; timed access 1