( Visualisation des ressources du systeme sous forme graphique. Version 2.00 du 13 Mai 2012. Ecrit par jpb.forth . ) DECIMAL START 2@ CONSTANT DEBUT_RESSOURCES 0 VARIABLE F_PERF 0 VARIABLE ETAT_PERF 0 VARIABLE RAF_PERF 0 VARIABLE PRECIS_PERF 0 VARIABLE NIVEAU_PERF 0 VARIABLE TACHE_PERF 0 VARIABLE RS232_PERF 42 VARIABLE CODE_PERF 42 VARIABLE RAM_PERF 42 VARIABLE FLASH_OCCUPE_PERF 42 VARIABLE FLASH_LIBERABLE_PERF 0 VARIABLE PRE_PERF 0 VARIABLE MAX_DON_PERF 0 VARIABLE DON_PERF 0 VARIABLE MAX_RET_PERF 0 VARIABLE RET_PERF 0 VARIABLE IDX_PERF 0 VARIABLE PRIORITE_PERF 0 VARIABLE CNT_PERF 0 VARIABLE M_CNT_PERF 0 VARIABLE TEMPS_PERF HERE 128 ALLOT CONSTANT MEM_PERF HERE 128 ALLOT CONSTANT MEM_DON HERE 128 ALLOT CONSTANT MEM_RET HERE 128 ALLOT CONSTANT MEM_NIV FEN_STRING" S_DESCRIPTIF Moniteur RESSOURCES FORTH Version 2.00 du 13/05/2012 http://jpb.forth.free.fr/ jpb_forth@yahoogroups.com Que le FORTH soit avec TOI! " FORTH RESOURCES monitor Version 2.00 in 05/13/2012 http://jpb.forth.free.fr/ jpb_forth@yahoogroups.com May the FORTH be with you! " FEN_STRING" S_TITRE RESSOURCES" RESOURCES" FEN_STRING" S_MENU SORTIE RS232.ESC G FERMER.......ESC F MENU.........ESC N" RS232 OUTPUT.ESC G CLOSE........ESC F MENU.........ESC N" FEN_STRING" S_PERF C FORTH DONNEES RETOUR PRIORITE VIVE FLASH " FORTH C DATA RETURN PRIORITY RANDOM ACCESS FLASH " 1234567890 CW_PNTT CW@ CW@ = [IF] FEN_STRING" S_PERF1 COEUR FORTH 32b PILE DES DONNEES PILE DE RETOUR PRIORITE MOYENNE MEMOIRE VIVE 0 256K 512K 768K 1M MEMOIRE FLASH " FORTH CORE 32b DATA STACK RETURN STACK AVERAGE PRIORITY RANDOM ACCESS MEMORY 0 256K 512K 768K 1M FLASH MEMORY " [ELSE] FEN_STRING" S_PERF1 COEUR FORTH 16b PILE DES DONNEES PILE DE RETOUR PRIORITE MOYENNE MEMOIRE VIVE 0 256K 512K 768K 1M MEMOIRE FLASH " FORTH CORE 16b DATA STACK RETURN STACK AVERAGE PRIORITY RANDOM ACCESS MEMORY 0 256K 512K 768K 1M FLASH MEMORY " [THEN] FEN_STRING" S_UC UC: " CPU: " FEN_STRING" S_DONNEE % DONNEES: " % DATA: " FEN_STRING" S_RETOUR RETOUR: " RETURN: " FEN_STRING" S_NIVEAU PRIORITE MOYENNE: " AVERAGE PRIORITY: " BIN HERE 0110011001100110 , CONSTANT PERF_POINTILLE HERE 1000000110000001 , CONSTANT PERF_INTERMEDIAIRE HERE 0011110000111100 , CONSTANT PERF_TIRET HERE 0000000000000000 , 1000000000000000 , 1000000000000000 , 0000000000000000 , 0000000000000000 , 1000000000000000 , 1000000000000000 , 0000000000000000 , 0000000000000000 , 1000000000000000 , 1000000000000000 , 0000000000000000 , 0000000000000000 , 1000000000000000 , 1000000000000000 , 0000000000000000 , CONSTANT PERF_POINT_V HERE 0000000000000000 , 0000000000000000 , 0000000000000000 , 0000000000000000 , 0000000000000000 , 0000000000000000 , 0000000000000000 , 0000000000000000 , 0000000000000000 , 0000000000000000 , 0000000000000000 , 0000000000000000 , 0000000000000000 , 0000000000000000 , 0000000000000000 , 0000000000000000 , CONSTANT PERF_ICONE DECIMAL : TEINTE_MOYENNE ( c1,c2 --> c ) 2 0 DO I IF 4 ROLL ELSE SWAP THEN DUP -4 LSH 12 AND OVER 3 AND + SWAP DUP 4/ 12 AND OVER 3 AND + SWAP 15 AND LOOP >R >R >R ROT R> + 2/ ROT R> + 2/ ROT R> + 2/ ROT DUP 3 AND DUP >R - 4 LSH ROT DUP 3 AND DUP >R - 4* + SWAP DUP 3 AND DUP >R - + R> R> + R> + 3 / + ; FEN: AF_ANIMATION >R FEN_TEINTES_? R@ FEN_DEVANT_? 255 AND 171 OR R@ FEN_TAILLE_? DROP 64 < IF PERF_ICONE DUP 32 0 FILL 30+ IDX_PERF @ 224+ 32 0 DO DUP 30 I - + 254 AND MEM_PERF + @ 1+ 2/ ?DUP IF 1 I 2/ LSH SWAP 2* 0 DO DUP 4 PICK I - +! 2 +LOOP DROP THEN 2 +LOOP DROP DUP XOR R@ FEN_TAILLE_? >R 16- 2/ R> 16- 2/ OVER 15+ OVER 15+ R@ FEN_TRACE_REC 16 DUP 3 PICK R@ FEN_TAILLE_? >R 16- 2/ R> 16- 2/ PERF_ICONE R@ FEN_TRACE_MOTIF >R >R DROP DROP 1 85 R> R> 7+ PERF_TIRET R@ FEN_TRACE_MOTIF 8+ PERF_POINTILLE R@ FEN_TRACE_MOTIF DROP DROP DROP DROP DROP ELSE R@ RAF_PERF @ DUP 15 AND IF IDX_PERF @ 8 0 DO I 1+ 4* 4* DUP 16- DO OVER 1 AND IF DUP MEM_PERF + @ 31 AND DUP IF 5 PICK [ 2 16 7 * + 6+ LITERAL ] I + 35 4 PICK - OVER 35 9 PICK FEN_TRACE_REC THEN 31- ?DUP IF 0 [ 2 16 7 * + 6+ LITERAL ] I + 4 OVER OVER 6 ROLL - 8 PICK FEN_TRACE_REC THEN ELSE OVER 2 AND IF DUP MEM_DON + @ 31 AND DUP IF 5 PICK [ 2 16 7 * + 6+ LITERAL ] I + 71 4 PICK - OVER 71 9 PICK FEN_TRACE_REC THEN 31- ?DUP IF 0 [ 2 16 7 * + 6+ LITERAL ] I + 40 OVER OVER 6 ROLL - 8 PICK FEN_TRACE_REC THEN ELSE OVER 4 AND IF DUP MEM_RET + @ 31 AND DUP IF 5 PICK [ 2 16 7 * + 6+ LITERAL ] I + 107 4 PICK - OVER 107 9 PICK FEN_TRACE_REC THEN 31- ?DUP IF 0 [ 2 16 7 * + 6+ LITERAL ] I + 76 OVER OVER 6 ROLL - 8 PICK FEN_TRACE_REC THEN ELSE OVER 8 AND IF DUP MEM_NIV + @ 31 AND DUP IF 5 PICK [ 2 16 7 * + 6+ LITERAL ] I + 143 4 PICK - OVER 143 9 PICK FEN_TRACE_REC THEN 31- ?DUP IF 0 [ 2 16 7 * + 6+ LITERAL ] I + 112 OVER OVER 6 ROLL - 8 PICK FEN_TRACE_REC THEN THEN THEN THEN THEN 2+ 254 AND LOOP 16 1 85 [ 2 16 7 * + 6+ LITERAL ] I 4* 4* + 6 PICK DUP 1 AND IF DROP 11 ELSE DUP 2 AND IF DROP 47 ELSE 4 AND IF 83 ELSE 119 THEN THEN THEN PERF_INTERMEDIAIRE 9 PICK FEN_TRACE_MOTIF 8+ PERF_TIRET 9 PICK FEN_TRACE_MOTIF 8+ PERF_INTERMEDIAIRE 9 PICK FEN_TRACE_MOTIF 8+ PERF_POINTILLE 9 PICK FEN_TRACE_MOTIF DROP DROP DROP DROP DROP LOOP DROP ELSE DUP 16 AND IF CODE_PERF @ DUP IF >R 3 PICK [ 2 16 7 * + 6+ LITERAL ] 154 OVER R@ + OVER 15+ 7 PICK FEN_TRACE_REC R> THEN DUP 127 < IF RAM_PERF @ ?DUP IF 1- OVER + 127 MIN >R >R 3 PICK 3 XOR [ 2 16 7 * + 6+ LITERAL ] R@ + 154 OVER R> - R@ + OVER 15+ 7 PICK FEN_TRACE_REC R> THEN DUP 127 < IF >R 0 [ 2 16 7 * + 6+ LITERAL ] R@ + 154 OVER 127+ R> - OVER 15+ 7 PICK FEN_TRACE_REC ELSE DROP THEN ELSE DROP THEN ELSE DUP 32 AND IF FLASH_OCCUPE_PERF @ DUP IF >R 3 PICK [ 2 16 7 * + 6+ LITERAL ] 180 OVER R@ + OVER 15+ 7 PICK FEN_TRACE_REC R> THEN DUP 127 < IF FLASH_LIBERABLE_PERF @ ?DUP IF 1- OVER + 127 MIN >R >R 3 PICK 3 XOR [ 2 16 7 * + 6+ LITERAL ] R@ + 180 OVER R> - R@ + OVER 15+ 7 PICK FEN_TRACE_REC R> THEN DUP 127 < IF >R 0 [ 2 16 7 * + 6+ LITERAL ] R@ + 180 OVER 127+ R> - OVER 15+ 7 PICK FEN_TRACE_REC ELSE DROP THEN ELSE DROP THEN THEN THEN DUP 48 AND IF 16 DUP 85 [ 2 16 7 * + 6+ LITERAL ] 154 6 PICK 16 AND 0= 26 AND + 4 0 DO PERF_POINT_V 8 PICK FEN_TRACE_MOTIF >R 32+ R> LOOP DROP DROP DROP DROP DROP THEN THEN DROP DROP THEN DROP DROP DROP DROP DROP DROP DROP R> DROP ; : SP_NB_CAR ( adr_s --> adr_s,n ) 0 BEGIN OVER OVER + C@ 13- IF 1+ 0 ELSE -1 THEN UNTIL ; FEN: CHRONO_FEN RAF_PERF DUP >R @ DUP 0< IF 63 AND ELSE 1 6 0 DO OVER OVER AND IF LEAVE ELSE 2* THEN LOOP XOR THEN DUP R> ! IF >R 1 AF_ANIMATION CHRONO_FEN R> FEN_CHRONO ELSE DROP THEN ; FEN: AFFICHE_PERF >R FEN_TEINTES_? DROP >R DROP DROP >R DROP R> R> ( c_fond_2,c_car ) OVER 0 DUP [ 2 16 7 * + 5+ LITERAL ] 16383 R@ FEN_TRACE_REC OVER [ 2 16 7 * + 6+ LITERAL ] 0 OVER 127+ 3 R@ FEN_TRACE_REC OVER [ 2 16 7 * + 6+ LITERAL ] 36 OVER 127+ 39 R@ FEN_TRACE_REC OVER [ 2 16 7 * + 6+ LITERAL ] 72 OVER 127+ 75 R@ FEN_TRACE_REC OVER [ 2 16 7 * + 6+ LITERAL ] 108 OVER 127+ 111 R@ FEN_TRACE_REC OVER [ 2 16 7 * + 6+ LITERAL ] 144 OVER 127+ 153 R@ FEN_TRACE_REC OVER [ 2 16 7 * + 6+ LITERAL ] 170 OVER 127+ 179 R@ FEN_TRACE_REC OVER [ 2 16 7 * + 6+ LITERAL ] 196 OVER 127+ 16383 R@ FEN_TRACE_REC SWAP [ 2 16 7 * + 6+ 128+ LITERAL ] 0 16383 DUP R@ FEN_TRACE_REC CARACTERES_GRAPHIQUES 1 3 S_PERF 1+ S_PERF1 1+ R> 16 0 DO SWAP >R >R SP_NB_CAR ?DUP IF R@ FEN_TRACE_CHAINE THEN >R >R DROP 3 R> R> 1+ R> R> SWAP ROT >R >R SP_NB_CAR ?DUP IF R@ FEN_TRACE_CHAINE THEN 1+ R> R> ROT ROT >R >R >R >R DROP 4 R> 12+ R> R> R> LOOP -1 RAF_PERF ! >R 1 AF_ANIMATION CHRONO_FEN R> FEN_CHRONO DROP DROP DROP DROP DROP DROP ; FEN: ICONE_PERF >R FEN_TEINTES_? DROP DROP DROP DROP >R DROP R> R@ FEN_TAILLE_? >R 22- 2/ R> 22- 2/ OVER 21+ OVER 21+ R@ FEN_TRACE_REC R> AF_ANIMATION EXECUTE ; FEN: FERME_PERF >R ICONE_PERF R> FEN_ICONE ; FEN: A_PROPOS_PERF >R S_DESCRIPTIF R> FEN_DIALOGUE_MESSAGE ; : MESURE_PERF PRIORITE @ DUP IF 65535 AND -10 LSH ELSE 1 CNT_PERF +! THEN PRIORITE_PERF DUP >R @ 65535 AND DUP -10 LSH - + R> ! FPGA_IT >R ; FIND MESURE_PERF 18 2! TACHE: T_PERF_RS232 S_UC COUNT 0 DO DUP C@ RS232_EMET 1+ LOOP DROP 1000 PRECIS_PERF @ - DUP 999 > IF DROP 0 49 RS232_EMET 48 RS232_EMET 48 ELSE 32 RS232_EMET DUP 99 > IF DUP DUP 100 MOD - 100 / 48+ RS232_EMET 48 ELSE 32 RS232_EMET DUP 9 > IF DUP DUP 10 MOD - 10 / 48+ ELSE 48 THEN THEN THEN RS232_EMET 44 RS232_EMET 10 MOD 48+ RS232_EMET S_DONNEE COUNT 0 DO DUP C@ RS232_EMET 1+ LOOP DROP DON_PERF @ 65535 AND DUP 99 > IF 100 0 ELSE DUP 9 > IF 10 1 ELSE 1 2 THEN THEN ?DUP IF 0 DO 32 RS232_EMET LOOP THEN BEGIN DUP 1 > WHILE DUP >R /MOD 48+ RS232_EMET R> 10 / REPEAT DROP 48+ RS232_EMET S_RETOUR COUNT 0 DO DUP C@ RS232_EMET 1+ LOOP DROP RET_PERF @ 65535 AND DUP 99 > IF 100 0 ELSE DUP 9 > IF 10 1 ELSE 1 2 THEN THEN ?DUP IF 0 DO 32 RS232_EMET LOOP THEN BEGIN DUP 1 > WHILE DUP >R /MOD 48+ RS232_EMET R> 10 / REPEAT DROP 48+ RS232_EMET S_NIVEAU COUNT 0 DO DUP C@ RS232_EMET 1+ LOOP DROP NIVEAU_PERF @ 65535 AND DUP 9999 > IF 10000 0 ELSE DUP 999 > IF 1000 1 ELSE DUP 99 > IF 100 2 ELSE DUP 9 > IF 10 3 ELSE 1 4 THEN THEN THEN THEN ?DUP IF 0 DO 32 RS232_EMET LOOP THEN BEGIN DUP 1 > WHILE DUP >R /MOD 48+ RS232_EMET R> 10 / REPEAT DROP 48+ RS232_EMET 13 RS232_EMET 10 RS232_EMET T_PERF_RS232 T_RETIRE ; TACHE: T_PERF_RELEVE 255 DUP 2 CW@ OVER AND - MAX_DON_PERF DUP >R @ MAX R> ! 3 CW@ OVER AND - MAX_RET_PERF DUP >R @ MAX R> ! 0 T_PERF_RELEVE T_ACTIVE TEMPS 2@ TEMPS_PERF 2@ - 1000 < IF EXIT THEN 1000 TEMPS_PERF +2! IDX_PERF DUP >R @ DUP 2+ 254 AND R> ! 0 MAX_DON_PERF DUP @ DUP DON_PERF ! 31 255 */ 4 PICK MEM_DON + ! ! 0 MAX_RET_PERF DUP @ DUP RET_PERF ! 31 255 */ 4 PICK MEM_RET + ! ! 31 DUP CNT_PERF @ DUP M_CNT_PERF DUP >R @ - SWAP R> ! 65535 AND 1000 MIN DUP PRECIS_PERF ! 1000 */ - OVER MEM_PERF + ! >R PRIORITE_PERF @ DUP NIVEAU_PERF ! 65535 AND 31 65535 */ MEM_NIV R> + ! TACHE_PERF @ 7 AND CASE 2 OF HERE 127 [ 1024 1024 * LITERAL ] */ 127 MIN CODE_PERF ! MEMOIRE_ADRESSE 2@ ?DUP IF 0 BEGIN OVER 2@ WHILE >R DUP >R 2@ DUP 7 AND IF -8 AND DUP R> - ELSE R> DROP 0 THEN R> + REPEAT 127 [ 1024 1024 * LITERAL ] */ RAM_PERF ! DROP THEN 16 ENDOF 4 OF MEMOIRE_FLASH 2@ ?DUP IF DUP >R 44+ 2@ [ 128 1024 512 */ LITERAL ] + 127 R@ 48+ 2@ 127 R@ 32+ @ [ 128 64 / LITERAL ] + R> 34+ 2@ * DUP >R */ FLASH_LIBERABLE_PERF ! R> */ FLASH_OCCUPE_PERF ! THEN 32 ENDOF 0 ENDCASE [ 32768 15+ LITERAL ] + F_PERF @ FEN_DEVANT_? DUP ETAT_PERF @ - IF ETAT_PERF ! 48 OR ELSE DROP THEN RAF_PERF DUP >R @ OR R> ! 1 TACHE_PERF +! RS232_PERF @ IF 49152 T_PERF_RS232 DUP >R T_AJOUTE 0 R> T_ACTIVE THEN 1 AF_ANIMATION CHRONO_FEN F_PERF @ FEN_CHRONO ; FEN: MENU_PERF BEGIN 4 S_MENU 0 4 PICK FEN_DIALOGUE_CHOIX CASE 1 OF RS232_PERF DUP >R @ NOT R> ! -1 ENDOF 2 OF DUP FERME_PERF EXECUTE -1 ENDOF 3 OF 0 ENDOF -1 ENDCASE UNTIL DROP ; FEN: CLAVIER_PERF SWAP PRE_PERF @ 27 = IF 31 AND 0 ELSE DUP 27 = IF 0 SWAP ELSE 0 THEN THEN PRE_PERF ! DUP 6 = ( fermeture ) IF DROP DUP FERME_PERF EXECUTE 0 THEN DUP 7 = ( % sur RS232 ) IF DROP RS232_PERF DUP >R @ NOT R> ! 0 THEN DUP 14 = ( menu ) IF DROP DUP MENU_PERF EXECUTE 0 THEN IF BELL THEN DROP ; : RESSOURCES F_PERF @ ?DUP IF FEN_SELECTIONNE ELSE FEN_CREE ?DUP IF DUP >R F_PERF ! 0 ETAT_PERF ! ECRAN 4+ @ 1+ [ 36 7 * 4+ LITERAL ] - 2/ ECRAN 6+ @ 1+ [ 17 12 * 4+ LITERAL ] - 2/ R@ FEN_POSITION [ 36 7 * 4+ LITERAL 17 12 * 4+ LITERAL ] R@ FEN_TAILLE S_TITRE R@ FEN_NOM FERME_PERF R@ FEN_FERME MENU_PERF R@ FEN_MENU A_PROPOS_PERF R@ FEN_A_PROPOS AFFICHE_PERF R@ FEN_AFFICHE CLAVIER_PERF R@ FEN_CLAVIER R@ FERME_PERF EXECUTE 65535 T_PERF_RELEVE DUP >R T_AJOUTE TEMPS 2@ TEMPS_PERF 2! 0 R> T_ACTIVE R> FEN_ACTIVE ELSE ." IMPOSSIBLE de creer l'application RESSOURCES FORTH!" ABORT THEN THEN ; ' RESSOURCES 4- DUP DEBUT_RESSOURCES 4- - SWAP 2! DICO_INIT RESSOURCES ( FIN )