Friends: I have made the circuit that attached to read and to record in the memory 93c46, but not with himself that work. I accede to her by the parallel port of the computer with the program that attached (in qbasic) Somebody sees where this the error? Anticipated thanks Attachment converted: wonderland:93c46.gif 1 (GIFf/JVWR) (00012165) DECLARE SUB SoloReloj (Ciclos%) DECLARE SUB GenStop () DECLARE SUB RecibeDatos (D$) DECLARE SUB GenStart () DECLARE SUB Retarda (V%) DECLARE SUB EnviaDireccion (DATO$) DECLARE SUB CheckStatus (Ok%) CONST SETCS = 0 CONST NOTCS = 2 CONST DATAOUT = 64 CONST RELOJ = 2 CONST DATAIN = 1 CONST TEMPO = 1000 COMMON SHARED PuertoD%, PuertoM%, PuertoH% PuertoD% = &H378 PuertoM% = PuertoD% + 1 PuertoH% = PuertoD% + 2 Inicial% = INP(PuertoH%) OUT PuertoD%, 0 OUT PuertoM%, 0 OUT PuertoH%, 0 + NOTCS CALL GenStart A$ = "00110000" ' ERASE/WRITE enable CALL EnviaDireccion(A$) CALL GenStop ' borrar todo CALL GenStart A$ = "00100000" ' ERASE/WRITE enable CALL EnviaDireccion(A$) CALL GenStop CALL SoloReloj(100) ' inicio CALL GenStart A$ = "00110000" ' ERASE/WRITE enable CALL EnviaDireccion(A$) CALL GenStop ' grabar un dato CALL GenStart A$ = "01000000" ' escribir desde la direccion 0 CALL EnviaDireccion(A$) A$ = "10101010" ' escribir valor AA CALL EnviaDireccion(A$) A$ = "01010101" ' escribir valor 55 CALL EnviaDireccion(A$) CALL GenStop CALL SoloReloj(11) OUT PuertoH%, 255 - SETCS ' apagar CALL Retarda(5) OUT PuertoH%, 255 - SETCS - 8 ' encender ' leer los bites CALL GenStart A$ = "10000000" ' escribir desde la direccion 0 CALL EnviaDireccion(A$) A$ = "" CALL RecibeDatos(A$) CALL RecibeDatos(A$) PRINT A$ CALL GenStop OUT PuertoH%, NOTCS CALL Retarda(5) OUT PuertoH%, 255 - SETCS SUB CheckStatus (Ok%) Ok% = 0 OUT PuertoH%, NOTCS OUT PuertoD%, 0 CALL Retarda(1) OUT PuertoD%, RELOJ CALL Retarda(1) OUT PuertoD%, 0 B = B * B OUT PuertoH%, SETCS CALL Retarda(1) SW% = 64 PRINT INP(PuertoM%) AND DATAOUT FOR i% = 1 TO 2000 OUT PuertoD%, RELOJ CALL Retarda(1) SW% = INP(PuertoM%) AND DATAOUT PRINT SW%, OUT PuertoD%, 0 CALL Retarda(1) IF SW% = 0 THEN i% = 3000 NEXT PRINT PRINT IF SW% = 64 THEN STOP ELSE Ok% = 1 END SUB SUB EnviaDireccion (DATO$) FOR i% = 1 TO LEN(DATO$) IF MID$(DATO$, i%, 1) = "1" THEN A% = DATAIN ELSE A% = 0 END IF OUT PuertoD%, A% CALL Retarda(1) OUT PuertoD%, A% + RELOJ CALL Retarda(1) OUT PuertoD%, 0 NEXT END SUB SUB GenStart OUT PuertoD%, 0 OUT PuertoH%, NOTCS ' Aseguro las lineas a cero B = B * B ' Pierde tiempo CALL Retarda(10) OUT PuertoH%, SETCS CALL Retarda(2) OUT PuertoD%, RELOJ CALL Retarda(2) OUT PuertoD%, 0 CALL Retarda(2) OUT PuertoD%, DATAIN CALL Retarda(2) OUT PuertoD%, DATAIN + RELOJ CALL Retarda(1) OUT PuertoD%, 0 END SUB SUB GenStop OUT PuertoD%, 0 OUT PuertoH%, NOTCS CALL Retarda(2) OUT PuertoD%, RELOJ CALL Retarda(2) OUT PuertoD%, 0 CALL Retarda(2) ' OUT PuertoH%, SETCS ' CALL Retarda(2) END SUB SUB RecibeDatos (D$) N% = 0 FOR i% = 7 TO 0 STEP -1 OUT PuertoD%, RELOJ CALL Retarda(1) V% = INP(PuertoM%) AND DATAOUT OUT PuertoD%, 0 IF V% = 0 THEN D$ = D$ + "1" ELSE D$ = D$ + "0" NEXT END SUB SUB Retarda (V%) FOR x% = 1 TO V% FOR i = 1 TO TEMPO: NEXT NEXT END SUB SUB SoloReloj (Ciclos%) OUT PuertoH%, SETCS CALL Retarda(5) FOR i% = 1 TO Ciclos% OUT PuertoD%, 0 CALL Retarda(1) OUT PuertoD%, RELOJ CALL Retarda(1) NEXT OUT PuertoH%, NOTCS CALL Retarda(5) END SUB