' FšK verbessert, mit Einzelbits CONST LPTport% = &H378 DIM scanc%(7), symb%(7) FOR i% = 0 TO 7 READ scanc%(i%), symb%(i%) NEXT i% DATA 72, 24, 80, 25, 75, 27, 77, 26 DATA 57, 83, 28, 82, 74, 45, 78, 43 CLS PRINT "Bedienung mit Pfeiltasten/Return/Leertaste/+/-" PRINT "Ende mit Esc" COLOR 8 FOR i% = 0 TO 7 LOCATE 7, 3 + 2 * i% PRINT CHR$(symb%(i%)); NEXT i% altMsk% = -1 msk% = 0 druckAlt% = -1 drin% = -1 WHILE drin% druck% = INP(&H60) dummy$ = INKEY$ IF druck% <> druckAlt% THEN ' Bit 7 ist immer, ob heruntergedrckt oder losgelassen ' Bits 6-0 sind Scancode der jeweiligen Taste bitw% = 1 FOR i% = 0 TO 7 IF (druck% AND 127) = scanc%(i%) THEN ' Bet„tigte Taste entspricht der Liste IF (druck% AND 128) = 0 THEN ' herunterdrcken msk% = msk% OR bitw% COLOR 12 ELSE ' loslassen msk% = msk% AND NOT bitw% COLOR 8 END IF LOCATE 7, 3 + 2 * i% PRINT CHR$(symb%(i%)) END IF bitw% = bitw% * 2 NEXT i% IF msk% <> altMsk% THEN COLOR 7 LOCATE 9, 2 PRINT USING "###"; msk% altMsk% = msk% OUT LPTport%, msk% END IF IF druck% = 129 THEN ' Bei (losslassen) beenden drin% = 0 END IF altDruck% = druck% END IF WEND ' Am Schluss definierter Zustand: Alles auf 0 OUT LPTport%, 0 COLOR 7