( Pilote du petit clavier. Version 0.10 du 22 Novembre 2009. Ecrit par jpb.forth . ) DECIMAL ( Petit clavier: -------------- Bits[15..4] = 0xFFF ei touche enfoncee, 0x000 sinon Bits[3,2] = numero de la ligne (0 en haut) Bits[1,0] = numero de la colonne (0 a gauche) Les bits[3..0] sont memorises lorsque la touche est relachee ) 278 CONSTANT CW_CLAVIER HERE 49 C, 50 C, 51 C, 43 C, 52 C, 53 C, 54 C, 45 C, 55 C, 56 C, 57 C, 09 C, 42 C, 48 C, 35 C, 08 C, CONSTANT TABLE_CLAV 0 VARIABLE MEM_CLAV 0 VARIABLE REP_CLAV 0 VARIABLE PRG_CLAV TACHE: T_CLAV REP_CLAV @ ?DUP IF 20- 0 MAX CW_CLAVIER CW@ DUP MEM_CLAV ! 0< IF DUP 0= IF 100+ MEM_CLAV @ 15 AND TABLE_CLAV + C@ PRG_CLAV 2@ EXECUTE THEN ELSE DUP XOR DUP PRG_CLAV 2@ EXECUTE THEN REP_CLAV ! ELSE CW_CLAVIER CW@ DUP MEM_CLAV @ - IF DUP MEM_CLAV ! DUP 0< IF 15 AND TABLE_CLAV + C@ 500 REP_CLAV ! ELSE DUP XOR THEN PRG_CLAV 2@ EXECUTE ELSE DROP THEN THEN ; : SYNC_CLAVIER ( adr_prg --> - ) DUP IF PRG_CLAV 2! CW_CLAVIER CW@ MEM_CLAV ! 20 T_CLAV 49152 OVER T_AJOUTE T_PERIODE ELSE DUP MEM_CLAV ! REP_CLAV ! T_CLAV T_RETIRE THEN ; ' SYNC_CLAVIER 4- DUP ' TABLE_CLAV 4- DUP 2@ - - SWAP 2! DICO_INIT ( FIN )