Ez volt az eredeti program, ami hibátlanul lefordítható és utána hibálanul működik a korábbi hardveren: ; Convert digit to segment form SEGMENTS_TABLE ANDLW 0x7F ADDWF PCL,F DT 7D,30,6B,3B,36,1F,5F,38,7F,3F ; -ebc afgd ; (0) [0111 1101] (0x7D) ; (1) [0011 0000] (0x30) ; (2) [0110 1011] (0x6B) ; (3) [0011 1011] (0x3B) ; (4) [0011 0110] (0x36) ; (5) [0001 1111] (0x1F) ; (6) [0101 1111] (0x5F) ; (7) [0011 1000] (0x38) ; (8) [0111 1111] (0x7F) ; (9) [0011 1111] (0x3F) Nekem más kiosztásban kellenek a szegmensek, ezért így alakítottam át: ; Convert digit to segment form SEGMENTS_TABLE ANDLW 0xFE ADDWF PCL,F DT EE,0C,D6,9E,3C,BA,FA,0E,FE,BE ; defg cba- ; (0) [1110 1110] (0xEE) ; (1) [0000 1100] (0x0C) ; (2) [1101 0110] (0xD6) ; (3) [1001 1110] (0x9E) ; (4) [0011 1100] (0x3C) ; (5) [1011 1010] (0xBA) ; (6) [1111 1010] (0xFA) ; (7) [0000 1110] (0x0E) ; (8) [1111 1110] (0xFE) ; (9) [1011 1110] (0xBE) Viszont így nem fordítható le! Ezt üzeni: Error[113] D:\*** : Symbol not previously defined (EE) Error[113] D:\*** : Symbol not previously defined (D6) Error[113] D:\*** : Symbol not previously defined (BA) Error[113] D:\*** : Symbol not previously defined (FA) Error[113] D:\*** : Symbol not previously defined (FE) Error[113] D:\*** : Symbol not previously defined (BE) Úgy látom, hogy kizárólag a két betűből álló hexadecimális értékeket kifogásolja. Az ANDLW utasítást próbáltam az eredeti 0x7F értékkel is, de a hiba nem változott. Szerintem itt FE a helyes. Mi lehet a probléma? Hogyan oldjam meg?