Hi again, Here's a real live example of Microchip code that won't assemble in the Parallax PASM and I don't know why. The error I get is in the first line of the "test program". The error says: "data was already entered at 000h" and the line that generated it is: "main movlw 0F3h" So ... what data was already entered? There is no mention of a location 000h in the first place. Perhaps this is one of those instances where the assembler is totally confused by something else, but prints that as the error. You know how these software things are. Any ideas? Tnx, Jim Johnson jjohnson@hpl.hp.com ;******************************************************************* ; include "mpreg.h" include 'dbl_add.asm' ; JJ - attempt at including a file include 'dbl_jj.asm' ; JJ - another include file ; org 0 ; LupCnt equ 10 ; Number of iterations ; SqrtLo equ 10 ;ACCaLO SqrtHi equ 11 ;ACCaHI ; NumLo equ 1Dh NumHi equ 1Eh count equ 1Fh ; ; init movlw LupCnt movwf count movf NumHi,W movwf SqrtHi movf NumLo,W ; set initial guess root = NUM/2 movwf SqrtLo bcf STATUS,CARRY rrf SqrtHi rrf SqrtLo retlw 0 ; div2 bcf STATUS,CARRY rrf 13,W ;ACCbHI movwf SqrtHi rrf 12,W ;ACCbLO movwf SqrtLo retlw 0 ; Sqrt call init sloop movf NumLo,W movwf 12 ;ACCbLO movf NumHi,W movwf 13 ;ACCbHI ; call D_divS ; double precision division call D_add ; double precision addition ; ; the above 2 routines are listed ; ; as seperate routines call div2 decfsz count goto sloop goto over ; all iterations done ; ; branch back to desired location ; ;************************************************************* ; Test Program ;************************************************************* ; main movlw 0F3h movwf NumHi movlw 0F6h ; Set input test number = 62454 movwf NumLo ; = F3F6h ; goto Sqrt ; cannot use CALL : Math routines ; ; use up all the stack. over nop ; all iterations done ; self goto self ; result = 00F9h = 249 ; ; exact sqrt(62454) = 249.9 ; org 0 goto main ; END