RESPUESTA A LA PREGUNTA 3612 - VISUAL BASIC ' LA SOLUCION DEL GURÚ... ' Puede que al principio te resulte un poco complicado... ' Pero esto que funciona en QBASIC (y cómo!!!) ' quizás con pocas modificaciones podrás utilizarlo ' también en VISUAL BASIC! ' CONSEJO DEL GURÚ: Pruébalo con QBASIC 4.5 arrancado así: QB/L ' para que cargue la librería que maneja las interrupciones ' Debes saber cuántos cilindros, cabezas y sectores ' tiene el disco Y NO INTENTES CAMBIAR ABSOLUTAMENTE NADA DEL CODIGO ' porque puede producir resultados impredecibles!!! ' Modestamente este es el nivel más avanzado de programación ' y como veo que tienes interés en avanzar en tus ' conocimientos TE OFREZCO esta poderosa rutina... ' A PARTIR DE AQUI EL ESFUERZO POR APRENDER MAS CORRE POR TU CUENTA ' DEVOTO PROGRAMADOR!!! ES TU BAUTISMO DE FUEGO CON INTERRUPCIONES!!! TYPE RegTypeX ax AS INTEGER bx AS INTEGER cx AS INTEGER dx AS INTEGER bp AS INTEGER si AS INTEGER di AS INTEGER flags AS INTEGER ds AS INTEGER es AS INTEGER END TYPE DECLARE SUB INTERRUPTX (intnum AS INTEGER, inreg AS RegTypeX, outreg AS RegTypeX) DIM n%(0 TO 511) DIM SHARED d AS STRING * 512 ' SUPONE SECTORES DE 512 bytes DIM SHARED re AS RegTypeX sd& = VARSEG(d) ad& = VARPTR(d) d = STRING$(512, 0) Disco& = 0 ' Vas a leer el SECTOR 1 DE LA PISTA 0 LADO 0 Pista& = 0 ' del diskette!!! EL MAS IMPORTANTE!!! Lado& = 0 ' Discos: A=0, B=1, C=2 Sector& = 1 ' p& = 256 * (Pista& AND 255) + (Pista& \ 256) * 64 + Sector& IF p& > 32767 THEN p& = p& - 65536 IF Disco& > 1 THEN Disco& = Disco& - 2 + 128 ld& = 256 * Lado& + Disco& IF ld& > 32767 THEN ld& = ld& - 65536 re.ax = 513 re.cx = p& re.dx = ld& re.es = sd& re.bx = ad& INTERRUPTX &H13, re, re CLS DEF SEG = &HB800 ' FIJA EL SEGMENTO DONDE SE ESCRIBIRA FOR a% = 0 TO 511 ' En este caso la memoria de video!!! ch% = ASC(MID$(d, a% + 1, 1)) ' NO SE CONFORMA CON LEERTE EL SECTOR aa% = 2 * a% ' MAS IMPORTANTE DEL DISCO POKE aa%, ch% ' TAMBIEN TE LO PONE EN PANTALLA!!! NEXT 'La VARIABLE FIJA 'd' contiene los datos del sector leído pero si no 'se utiliza un procedimiento como el famoso PEEK y POKE cuando 'quieras imprimir los datos en pantalla debido a los caracteres 'especiales no podrás ver nada o verás una pantalla descalabrada!!! 'Esta es mi desinteresada contribución 'Marcelino Rafael Francisco Benítez 'Sábado 16 de Septiembre de 2000