aqui te mando el programa ,no se si podras ver la numeracion de las lineas pero no se me ocurre como hacer para que lo veas
yo lo abro con microcodestudio pero creo que no esta escrito para microcode.La linea 76 seria esta:
rt = 0: y1 = y1 - 1: y = y - 28: yx = yx - 28: down = down - 2: EXIT FOR
'HEART204 18APR02: READ/DISPLAY SERIAL DATA FROM EPE BIOPIC (c) JOHN BECKER
'Version V1
'*** WILL RUN UNDER QuickBASIC AND QBASIC ***
'*** QuickBASIC MUST BE LOADED WITH QB/L COMMAND FOR IT TO WORK **
'*** THE NORMAL QB COMMAND ON ITS OWN COULD RESULT IN A CRASH! ***
'*** NOTE THAT SOME QuickBASICS MAY HAVE QB/L ALREADY IN THEIR .BAT FILE ***
'*** QBASIC DOES NOT NEED THE QB/L COMMAND ***
'*** A STAND-ALONE VERSION OF THIS PROGRAM ALSO EXISTS, WITH .EXE ENDING ***
'$INCLUDE: 'QB.BI':' THIS FILE MUST BE IN YOUR QB LIBRARY
SCREEN 9: COLOR 15, 1: CLS : LOCATE 10, 35: PRINT "SETTING UP"
DATA " ",JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC
DIM month$(12), inary%(7), outary%(7)
CONST ax = 0: bx = 1: cx = 2: dx = 3: bp = 4: si = 5: di = 6: flags = 7
version$ = "V1 ": shift = 0
FOR a = 0 TO 12: READ month$(a): NEXT
sp$ = " "
sp$ = sp$ + " "
comport% = 1: ' For COM1 set comport%= 0. For COM2 set comport%=1
GOSUB setcomport: GOTO 100
setcomport:
baudset: 'See Table 4.081 page 4-55 PC Sourcebook
baud% = 7: ' 9600 baud
baud% = baud% * 32: ' set baud val into bits 7 to 5
baud% = baud% OR 3: ' set for 8-bit data, no parity, 1 stop bit
inary%(ax) = baud%: inary%(dx) = comport%
CALL INT86OLD(&H14, inary%(), outary%()): 'set PC baud & comport factors
'(see also QBasic/QuickBASIC Help screen on CALL INTERRUPT)
COLOR 14: LOCATE 23, 3: PRINT "<C> "; : COLOR 11: PRINT "INPUT VIA "; :
COLOR 14: PRINT "COM"; : PRINT comport% + 1;
COLOR 11: LOCATE 23, 58: PRINT "LINES (1 or 10)"; : COLOR 14: PRINT " <L>"
RETURN
100 : LOCATE 10, 35: PRINT " "
COLOR 10: LOCATE 2, 3: PRINT "EPE BIOPIC "; version$;
COLOR 11: PRINT "END OF LINE DATE AND TIME "
LOCATE 2, 66: PRINT "BPM RATE 0": d = VAL(LEFT$(DATE$, 2))
d$ = MID$(DATE$, 4, 2) + month$(d) + RIGHT$(DATE$, 4)
COLOR 14: LOCATE 2, 46: PRINT d$; " "; TIME$: LOCATE 2, 74: PRINT bpm$
LOCATE 2, 29: PRINT "0": hold = 12
LOCATE 24, 58: COLOR 11: PRINT "HOLD "; : COLOR 14
PRINT "<H> "; : COLOR 11: PRINT "QUIT "; : COLOR 14: PRINT "<Q>";
'***************
NORMAL:
LOCATE 23, 30: PRINT " "
FOR down = 4 TO 22: LOCATE down, 2: PRINT sp$: NEXT
LOCATE 1, 1: col = 14: col2 = 11: y = 3 * 14: ' col2=2
FOR a = 1 TO 10: LINE (8, y - 14)-(630, y - 14), col2: ' 11
LINE (8, y + 14)-(630, y + 14), col2: y = y + 28: NEXT:
LINE (2, 2)-(637, 347), 15, B
COLOR 11: LOCATE 24, 3: COLOR 14: PRINT "<+-> ";
COLOR 11: PRINT "DISPLAY STEP "; : COLOR 14: PRINT "1 /"; hold;
LINE (5, 5)-(634, 344), 15, B: PAINT (3, 3), 7, 15
y = 42: yx = 3 * 14: down = 3
320 : GOSUB cominput: s = (jin - 128) \ 12: t = 0
FOR y1 = 1 TO 10: PSET (8, y + s), col: count = 0: tim1 = TIMER
FOR x = 8 TO 630 STEP (1 / hold): z$ = INKEY$: IF z$ = "" THEN GOTO 130
GOSUB 330: IF UCASE$(z$) = "Q" THEN EXIT FOR
IF rt = 1 THEN
rt = 0: y1 = y1 - 1: y = y - 28: yx = yx - 28: down = down - 2: EXIT FOR
END IF
130 : GOSUB cominput: s = (jin - 128) \ 12
LINE -(x, y + s), col: IF s > 5 THEN t1 = 1
IF s < -5 THEN t1 = -1
IF t1 <> t THEN count = count + 1
t = t1: NEXT: tim2 = TIMER: t3 = tim2 - tim1
IF t3 < 1 THEN t3 = 1: count = 0
bpm = (count / 2) * (60 / t3): bpm$ = LEFT$(STR$(CINT(bpm)) + " ", 5)
LOCATE 2, 28: COLOR 14: PRINT y1: d = VAL(LEFT$(DATE$, 2))
d$ = MID$(DATE$, 4, 2) + month$(d) + RIGHT$(DATE$, 4)
LOCATE 2, 46: PRINT d$; " "; TIME$: LOCATE 2, 74: PRINT bpm$
IF UCASE$(z$) = "Q" THEN EXIT FOR
IF holdit = 0 THEN GOTO 140
COLOR 15: LOCATE 24, 30: PRINT "HOLDING - PRESS ANY KEY "; : LOCATE 1, 1
135 : IF INKEY$ = "" THEN GOTO 135 ELSE holdit = 0
LOCATE 24, 30: PRINT " "; : LOCATE 1, 1
140 : y = y + 28: yx = yx + 28: down = down + 2
IF down > 22 THEN down = 3: y = 42: yx = 3 * 14
LOCATE down, 2: PRINT sp$: LOCATE down + 1, 2: PRINT sp$
LINE (8, yx - 14)-(630, yx - 14), col2
LINE (8, yx + 14)-(630, yx + 14), col2
PSET (8, y + s), col: NEXT: IF UCASE$(z$) = "Q" THEN GOTO quit
GOTO 320
330 : rt = 0: IF z$ = "+" THEN hold = hold + 1: GOTO 355
IF z$ = "-" THEN hold = hold - 1: GOTO 355
IF UCASE$(z$) = "C" THEN
comport% = (comport% + 1) AND 1: GOSUB setcomport:
LOCATE 1, 1: col = 14: col2 = 11: y = 3 * 14
FOR a = 1 TO 10: LINE (8, y - 14)-(630, y - 14), col2
LINE (8, y + 14)-(630, y + 14), col2: y = y + 28: NEXT
y = 42: yx = 3 * 14: down = 3: count = 0: GOTO 355
END IF
IF UCASE$(z$) = "L" THEN
COLOR 11: LOCATE 23, 30: PRINT "SHIFT ";
COLOR 14: PRINT "<UP/DN ARROWS> "; : COLOR 11: PRINT shift
FOR down = 3 TO 22: LOCATE down, 2: PRINT sp$: NEXT
LINE (8, 28)-(630, 28), col2
LINE (8, 308)-(630, 308), col2
y1 = 0: LOCATE 2, 28: COLOR 14: PRINT y1: bpm = 0
bpm$ = LEFT$(STR$(CINT(bpm)) + " ", 5)
LOCATE 2, 74: PRINT bpm$: GOTO LARGE
END IF
IF UCASE$(z$) <> "H" THEN RETURN
holdit = 1: COLOR 10: LOCATE 24, 30: PRINT "WILL HOLD AT END OF LINE";
LOCATE 1, 1: RETURN
355 : rt = 1: IF hold > 50 THEN hold = 50
IF hold < 1 THEN hold = 1
rate$ = LEFT$(STR$(hold) + " ", 3)
LOCATE 24, 24: COLOR 14: PRINT rate$; : LOCATE 1, 1: COLOR 15: RETURN
'************************
hold: z$ = INKEY$: IF z$ = "" THEN GOTO hold ELSE RETURN
'************************
quit: SYSTEM
'************************
cominput: inary%(ax) = 512: inary%(dx) = comport%
CALL INT86OLD(&H14, inary%(), outary%())
jin = 255 - (outary%(0) AND 255): RETURN
'******************
LARGE: y = 170: y1 = 0
420 : GOSUB cominput: s = (jin - 128) \ 12: t = 0: prev = y + s
PSET (8, y + s), col: count = 0: tim1 = TIMER
LINE (8, 30)-(8, 306), 0
FOR x = 8 TO 630 STEP (1 / hold): z$ = INKEY$: IF z$ = "" THEN GOTO 530
GOSUB 430: IF UCASE$(z$) = "Q" THEN EXIT FOR
IF rt = 1 THEN EXIT FOR
530 : GOSUB cominput: s = (jin - 128) - shift
IF (y + s) > 306 THEN s = 306 - y
IF (y + s) < 30 THEN s = s + (30 - (y + s))
LINE (x + 1, 30)-(x + 1, 306), 0: LINE (x + 2, 30)-(x + 2, 306), 7
PSET (x, y - 20), 10: PSET (x, y + 20), 10
LINE (x, prev)-(x, y + s), col: prev = y + s
IF s > 20 THEN t1 = 1
IF s < -20 THEN t1 = -1
IF t1 <> t THEN count = count + 1
t = t1: NEXT
tim2 = TIMER: t3 = tim2 - tim1
IF t3 < 1 THEN t3 = 1: count = 0
IF count < 2 THEN count = 0
bpm = (count / 2) * (60 / t3): bpm$ = LEFT$(STR$(CINT(bpm)) + " ", 5)
LINE (x + 2, 30)-(x + 2, 306), 0
d = VAL(LEFT$(DATE$, 2))
d$ = MID$(DATE$, 4, 2) + month$(d) + RIGHT$(DATE$, 4)
COLOR 14: LOCATE 2, 46: PRINT d$; " "; TIME$: LOCATE 2, 74: PRINT bpm$
IF holdit = 0 THEN GOTO 540
COLOR 15: LOCATE 24, 30: PRINT "HOLDING - PRESS ANY KEY "; : LOCATE 1, 1
535 : IF INKEY$ = "" THEN GOTO 535 ELSE holdit = 0
LOCATE 24, 30: PRINT " "; : LOCATE 1, 1
540 : IF UCASE$(z$) = "Q" THEN GOTO quit
GOTO LARGE
430 : rt = 0: IF z$ = "+" THEN hold = hold + 1: GOTO 555
IF z$ = "-" THEN hold = hold - 1: GOTO 555
IF UCASE$(z$) = "C" THEN
comport% = (comport% + 1) AND 1: GOSUB setcomport
LINE (8, y + 138)-(630, y + 138), col2: y = y + 28
count = 0: GOTO 555
END IF
IF UCASE$(z$) = "L" THEN
FOR down = 3 TO 22: LOCATE down, 2: PRINT sp$: NEXT
y1 = 0: LOCATE 2, 28: COLOR 14: PRINT y1: bpm = 0
bpm$ = LEFT$(STR$(CINT(bpm)) + " ", 5)
LOCATE 2, 74: PRINT bpm$: z$ = "": GOTO NORMAL
END IF
IF MID$(UCASE$(z$), 2) = "H" THEN
shift = shift + 1: IF shift > 140 THEN shift = 140
LOCATE 23, 51: COLOR 11: PRINT shift
LINE (8, yx + 266)-(630, yx + 266), col2
END IF
IF MID$(UCASE$(z$), 2) = "P" THEN
shift = shift - 1: IF shift < -138 THEN shift = -138
LOCATE 23, 51: COLOR 11: PRINT shift
LINE (8, yx + 266)-(630, yx + 266), col2
END IF
IF UCASE$(z$) <> "H" THEN RETURN
holdit = 1: COLOR 10: LOCATE 24, 30: PRINT "WILL HOLD AT END OF LINE";
LOCATE 1, 1: RETURN
555 : rt = 1: IF hold > 50 THEN hold = 50
FOR down = 3 TO 22: LOCATE down, 2: PRINT sp$: NEXT
LOCATE 1, 1: y = 3 * 14
LINE (8, y - 14)-(630, y - 14), col2
IF hold < 1 THEN hold = 1
rate$ = LEFT$(STR$(hold) + " ", 3)
LOCATE 24, 24: COLOR 14: PRINT rate$; : LOCATE 1, 1: COLOR 15: RETURN