Programa de mejora de control por detección de Interrupción:Buffer en anillo

marocho
03 de Mayo del 2006
Hola a todos.Ante todo daros las gracias por leer este mensaje.Va ser algo largo de explicar mi problema.
Espero que alguien me lo pueda solucionar pues me urge bastante.
Mi problema es que tengo que pasar el siguiente programa escrito en qbasic a visual basic.net o visual 6 y llevo un monton de días buscando como hacerlo pero no puedo.Aquí os va el código.
100 RANDOMIZE TIMER \'PERMITE QUE LA FUNCION RND, DEL PROCESO DE LA
LINEA 180, GENERE UNA SECUENCIA DISTINTA CADA VEZ QUE SE EJECUTA EL PROGRAMA
110 CLS:CLOSE:OPEN "COM1:300,N,8,1" FOR RANDOM AS #1
120 DIM BUFFER$(1024):LEIDO=0:GUARDADO=0
130 ON COM(1) GOSUB 1000 \'LLAMA A LA SUBRUTINA CUANDO SE PRODUCE LA
INTERRUPCION
140 COM(1) ON
150 REM ------------------------------------- INICIO PROCESO -----------------
160 REM .......
170 REM .......
180 FOR I=1 TO RND*100:NEXT I \' SE SIMULA UN PROCESO DE DURACIÓN
ALEATORIA
190 REM .......
200 REM .......
210 REM -------------------------------------- FIN PROCESO ---------------------
220 IF LEIDO = GUARDADO THEN GOTO 150 \'EL ANILLO ESTA VACIO
230 IF LEIDO >= 1024 THEN LEIDO=1 ELSE LEIDO=LEIDO+1
240 PRINT BUFFER$(LEIDO); \'PROCESAMOS LOS CARACTERES RECIBIDOS COMO
PROCEDA, EN ESTE CASO LOS VISUALIZAMOS
250 GOTO 220
1000 \'AL ACTIVARSE LA INTERRUPCIÓN LEEMOS DE LA UART Y VOLCAMOS AL BUFFER
1010 IF GUARDADO >= 1024 THEN GUARDADO=1 ELSE
GUARDADO=GUARDADO+1
1020 BUFFER$(GUARDADO)=INPUT$(1,#1)
1030 RETURN
El tema en concreto es hacer algo parecido a lo que hacen las tarjetas de red.
Se trata de comunicar un emisor y un receptor mediante puerto serie con un modem nulo y hacer que se comuniquen y hagan esta especie de "buffer en anillo",o sea que el receptor guarde en un buffer en forma de array la información que le va llegando por el puerto serie.
Saludos a todos y muchas gracias de antemano por leer mi problema.