主题:readbyte 的程序如何理解?
SUB readbyte (byt%)
hinib% = 0: lownib% = 0
v% = INP(ctrlport%): v% = v% AND 252
OUT ctrlport%, v% 'Set strobe low & nibsel low.
FOR v = 1 TO 100: NEXT v
hinib% = 240 AND INP(statport%)
IF hinib% > 127 THEN
hinib% = hinib% - 128
ELSE
hinib% = hinib% + 128
END IF
v% = INP(ctrlport%): v% = v% OR 2: OUT ctrlport%, v%
FOR v = 1 TO 100: NEXT v
lownib% = INP(statport%) \ 16
IF lownib% > 7 THEN
lownib% = lownib% - 8
ELSE
lownib% = lownib% + 8
END IF
buf% = hinib% + lownib%
'PRINT buf%
v% = INP(ctrlport%): v% = v% OR 1
OUT ctrlport%, v% 'Set strobe hi.
'PRINT : INPUT mk$
'PRINT v%: INPUT mk$
END SUB
其中 ctrlport% 为25针的打印机的控制口,
hinib% = 0: lownib% = 0
v% = INP(ctrlport%): v% = v% AND 252
OUT ctrlport%, v% 'Set strobe low & nibsel low.
FOR v = 1 TO 100: NEXT v
hinib% = 240 AND INP(statport%)
IF hinib% > 127 THEN
hinib% = hinib% - 128
ELSE
hinib% = hinib% + 128
END IF
v% = INP(ctrlport%): v% = v% OR 2: OUT ctrlport%, v%
FOR v = 1 TO 100: NEXT v
lownib% = INP(statport%) \ 16
IF lownib% > 7 THEN
lownib% = lownib% - 8
ELSE
lownib% = lownib% + 8
END IF
buf% = hinib% + lownib%
'PRINT buf%
v% = INP(ctrlport%): v% = v% OR 1
OUT ctrlport%, v% 'Set strobe hi.
'PRINT : INPUT mk$
'PRINT v%: INPUT mk$
END SUB
其中 ctrlport% 为25针的打印机的控制口,